在VHDL中使用来自不同包的类型

时间:2018-02-06 20:04:41

标签: vhdl ghdl

我想创建一个包含类型的包,我可以将其加载到其他地方并在那里使用。但我不能让它发挥作用。

就我而言,我有类似的东西:

types.vhdl

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

package types is
    constant number : integer := 42;
    subtype fancy_vector is std_logic_vector(10 downto 0);
    type fancy_vector_array is array (4 downto 0) of fancy_vector;
end types;

tb_types.vhdl

library ieee;

use work.types.all;

entity tb_types is
end tb_types;

-- If I comment this entity out, everything works as expected
entity dummy is
    port (
        test : in fancy_vector_array
    );
end dummy;

architecture implementation of tb_types is
begin
    main: process begin
        assert (number = 42);
        report "Everything went well";
        wait;
    end process;
end implementation;

我使用ghdl分析和编译测试平台,如下所示:

$ ghdl -i types.vhdl tb_types.vhdl
$ ghdl -m tb_types
tb_types.vhdl:10:26:error: no declaration for "fancy_vector_array"

如果我将虚拟实体注释掉,一切都按预期正常工作。断言没有触发,它报告"一切顺利"。

我在这里做错了什么?

我也试过没有.all以及types.fancy_vector_arraytypes.number。然后它说:no declaration for "types"

0 个答案:

没有答案