ModelSIM ALTERA错误

时间:2015-01-19 18:46:51

标签: vhdl

我有以下代码,在Altera ModelSim中测试一个内存ROM。

LIBRARY ieee;                                               
USE ieee.std_logic_1164.all;
USE ieee.numeric_std_unsigned.all;

ENTITY hex_vhdl_vhd_vec_tst IS
END hex_vhdl_vhd_vec_tst;

ARCHITECTURE hex_vhdl_arch OF hex_vhdl_vhd_vec_tst IS
-- constants                                                 
-- signals                                                   
SIGNAL t_sig_address : STD_LOGIC_VECTOR(10 DOWNTO 0);
SIGNAL t_sig_clock   : STD_LOGIC;
SIGNAL t_sig_q       : STD_LOGIC_VECTOR(7 DOWNTO 0);

COMPONENT hex_vhdl
  PORT(
    address : IN STD_LOGIC_VECTOR(10 DOWNTO 0);
    clock   : IN STD_LOGIC;
    q       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
  );
END COMPONENT;

BEGIN
  tb : hex_vhdl
  PORT MAP(
    -- list connections between master ports and signals
    address => t_sig_address,
    clock   => t_sig_clock,
    q       => t_sig_q
  );


TEST: PROCESS
variable L : natural;
begin
  --clock
  for L in 0 to 2048 loop
    t_sig_clock <= '0';
    WAIT FOR 25 ns;
    t_sig_clock <= '1';
    WAIT FOR 25 ns;
    t_sig_address <= std_logic_vector(to_unsigned(L, 11));
  end loop;
  t_sig_clock <= '0';
  wait;
END PROCESS TEST;

END hex_vhdl_arch;

PROCESS部分中的代码是由我设计的。

我很想不再一步一步地使用地址更改......

之前,我必须为每个位地址进行处理。

唯一不编译的行是

t_sig_address <= std_logic_vector(to_unsigned(L, 11));

# ** Error: hex_vhdl.vht(70): (vcom-1136) Unknown identifier "to_unsigned".

所以我在开头添加了以下行

USE ieee.numeric_std_unsigned.all;

但是,开始出现以下错误

# ** Error: (vcom-11) Could not find ieee.numeric_std_unsigned.
# ** Error: hex_vhdl.vht(30): (vcom-1195) Cannot find expanded name "ieee.numeric_std_unsigned".
# ** Error: hex_vhdl.vht(30): Unknown expanded name.

我用线索做了这些安排,我在下面的链接中找到了

Illegal type conversion VHDL

Convert Integer to std_logic_vector in VHDL

我不知道为什么不工作!!!

这些库在Quartus II中正常工作,但似乎在ModelSim中无效。

有人可以帮我吗? :)

1 个答案:

答案 0 :(得分:4)

to_unsigned()的正确包是ieee.numeric_std,其中包括thr unsigned类型以及相关的运算符重载和转换函数。另一方面,numeric_std_unsigned只有函数重载,当你想隐含地将std_logic_vector信号视为无符号时,即没有显式类型转换或转换。