我如何在ModelSim中使用通用数组类型?

时间:2019-11-18 19:47:01

标签: vhdl modelsim quartus

这是我的第一个问题,我真的希望你能帮助我

编辑2019年12月3日:

我们已经解决了声明类型的问题,但是现在,我们还有其他问题 因此,当我尝试在modelim上运行测试平台进行仿真时,我们遇到了这些错误。

 # Conv_rev3_run_msim_rtl_vhdl.do 
# invalid command name "Conv_rev3_run_msim_rtl_vhdl.do"

这是我们用于声明类型

的包
-- synthesis VHDL_INPUT_VERSION VHDL_2008 

library ieee;
use ieee.std_logic_1164.all;

package conv_p is
  type slv_array_t is array (natural range <>) of std_logic_vector;
end package;

主文件的实体

entity Conv_rev3 is
  generic(
    LEN : natural := 8;   -- Bits in each input
    NUM : natural := 4);  -- Number of inputs
  port(
     clk    : in    std_logic;
     D      : in  conv_p.slv_array_t(0 to NUM - 1)( LEN - 1 downto 0);
     W      : in  conv_p.slv_array_t(0 to NUM - 1)( LEN - 1 downto 0);
    z_o  : out std_logic_vector(LEN*2 - 1 downto 0));
end entity;

这是我们测试平台的样本:

    LIBRARY IEEE;                                               
USE ieee.std_logic_1164.all;
USE work.conv_p;                               

ENTITY Conv_rev3_vhd_tst IS
END Conv_rev3_vhd_tst;
ARCHITECTURE Conv_rev3_arch OF Conv_rev3_vhd_tst IS
-- constants                                                 
-- signals                                                   
SIGNAL clk : STD_LOGIC;
SIGNAL D : conv_p.slv_array_t(0 to 3)(7 downto 0);
SIGNAL W : conv_p.slv_array_t(0 to 3)(7 downto 0);
SIGNAL z_o : STD_LOGIC_VECTOR(15 DOWNTO 0);
COMPONENT Conv_rev3
    PORT (
    clk : IN STD_LOGIC;
    D : IN conv_p.slv_array_t(0 to 3)(7 downto 0);
    W : IN conv_p.slv_array_t(0 to 3)(7 downto 0);
    z_o : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
    );
END COMPONENT;

最好的问候

1 个答案:

答案 0 :(得分:0)

在您的第一个问题中,您在代码中指定的实体名称很可能是错误的,这就是为什么它无法找到该实体并显示该错误的原因。因此,不用说,如果它甚至没有找到实体,那么它将无法编译它。 现在,我认为不需要回答第二个问题,因为其中肯定有错误。