微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > modelsim仿真遇到问题 激励全有但是输出没有是红线

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

时间:10-02 整理:3721RD 点击:
测试文件
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 '0');                                --复位清零
                        elsif cp'event and cp='1' then
                                if load='1'then
                    key_out '0');                                --复位清零
                elsif data_rst='1' then sequ_out '0');
                elsif clk'event and clk='1' then
                        if en='1'then
                        sequ_out<=key xor aa;
                                end if;
                        end if;
end process;
end a;

上面是两个模块的程序

求大神帮助啊aaaaaaaaaaaaaa

一般用modelsim仿真是编译的时候把所有模块文件和tb一起编译,然后simulation的时候只选中tb即可,估计小编是在仿真的时候选了顶层文件而不是tb?

不太明白 。我是用QUARTUS ii直接调用modelsim 而且激励信号都能出来。就是输出信号是UUUUUU红线

谢谢分享学习一下

可以参考明德扬的视频,我记得有这方面的讲解。

遇到同样的问题了,不是怎么解决

怎么解决的啊,我也遇到了同样的问题啊

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top