modelsim仿真遇到问题 激励全有但是输出没有是红线

2019-07-15 23:26发布

测试文件
LIBRARY ieee;                                               
USE ieee.std_logic_1164.all;                                

ENtiTY ex1_vhd_tst IS
END ex1_vhd_tst;
ARCHITECTURE ex1_arch OF ex1_vhd_tst IS
-- constants                                                
-- signals                                                   
SIGNAL aa : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL clk : STD_LOGIC;
SIGNAL clr : STD_LOGIC;
SIGNAL cp : STD_LOGIC;
SIGNAL data_rst : STD_LOGIC;
SIGNAL en : STD_LOGIC;
SIGNAL key : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL key_out : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL load : STD_LOGIC;
SIGNAL rst : STD_LOGIC;
SIGNAL sequ_out : STD_LOGIC_VECTOR(15 DOWNTO 0);
COMPONENT ex1
        PORT (
        aa : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
        clk : IN STD_LOGIC;
        clr : IN STD_LOGIC;
        cp : IN STD_LOGIC;
        data_rst : IN STD_LOGIC;
        en : IN STD_LOGIC;
        key : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
        key_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
        load : IN STD_LOGIC;
        rst : IN STD_LOGIC;
        sequ_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
        );
END COMPONENT;
BEGIN
        i1 : ex1
        PORT MAP (
-- list connections between master ports and signals
        aa => aa,
        clk => clk,
        clr => clr,
        cp => cp,
        data_rst => data_rst,
        en => en,
        key => key,
        key_out => key_out,
        load => load,
        rst => rst,
        sequ_out => sequ_out
        );
init: PROCESS                                                                                 
BEGIN                                                        
clk<='1';
wait for 20ns;
clk<='0';
wait for 20ns;                                                                              
END PROCESS init;                                          
tb: PROCESS                                                                                
BEGIN                                                         
aa<="0000000000000000";
key<="0000000000000000";
clr<='1';
load<='0';
rst<='1';
data_rst<='1';
en<='0';
cp<='0';
wait for 40ns;
aa<="1111111111000001";
key<="1111000011111110";
clr<='0';
load<='1';
rst<='0';
data_rst<='0';
en<='1';
cp<='1';     
WAIT for 500ns;                                                        
END PROCESS;                                          
END ex1_arch;


捕获.PNG
捕获14.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
阴阳家少司命
2019-07-17 15:41
好难啊123456 发表于 2016-6-30 16:16
怎么解决的啊,我也遇到了同样的问题啊

modelsim默认未初始化的值为未知值(即红线),一般出现在sum <= sum + 1'b1 //sum为输出值
而sum <= 0;则不会;       modelsim会把第一种情况认为sum未知,而第二中认为初始化。    对与Verilog中输出端口可在被测试文件中用initial begin 。。。end进行初始化,输入端口可在testbench中初始化。

一周热门 更多>