ghdlで自分のパッケージを使用しようとしています。誰かが構造とコンパイルで私を助けることができますか?現時点では私のコードは次のようになります。ghdlでパッケージを使用する
[email protected] my_package$ ghdl -a --work=my_package my_package.vhd
を、その後./uses_my_packageに次のように私はmy_packageでこれをコンパイルしてい
library IEEE;
use IEEE.std_logic_1164.all;
package my_package is
constant my_constant : std_logic_vector(3 downto 0) := "1111";
end my_package;
./my_package/my_package.vhdで
/uses_my_package.vhd
library IEEE;
use IEEE.std_logic_1164.all;
entity uses_my_package is
port(
vector_in : in std_logic_vector(3 downto 0);
vector_out : out std_logic_vector(3 downto 0));
end uses_my_package;
architecture impl of uses_my_package is
begin
vector_out <= vector_in;
end impl;
と./uses_my_package/testbench.vhdで:
library IEEE;
use IEEE.std_logic_1164.all;
library work;
use work.my_package.all;
entity testbench is
end testbench;
architecture tb of testbench is
component uses_my_package is
port (
vector_in : in std_logic_vector(3 downto 0);
vector_out : out std_logic_vector(3 downto 0));
end component;
signal vector_in_signal : std_logic_vector(3 downto 0);
signal vector_out_signal : std_logic_vector(3 downto 0);
constant clk_period : time := 1 ms;
begin
dut : uses_my_package
port map (vector_in_signal, vector_out_signal);
process
begin
vector_in_signal <= "0000";
wait for clk_period;
assert vector_out_signal = my_constant report "fail 0000" severity error;
vector_in_signal <= "1111";
wait for clk_period;
assert vector_out_signal = my_constant report "fail 1111" severity error;
wait;
end process;
end tb;
このプログラムをどのようにコンパイルして、ghdlのパッケージとライブラリについてのチュートリアルを教えてもらえますか?私のgoogle-fooは現時点では静かなようです。ありがとうございました!
ブライアンの答えに加えて、あなたは他のライブラリで分析リソースを作ることができますghdlの[-P](https://ghdl.readthedocs.io/en/latest/Invoking_GHDL.html#ghdl-options)コマンドラインオプションで利用できます。これにより、あなたのパッケージは仕事から別の参照ライブラリに置かれます。 –
user1155120