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条回答
TT24593638
1楼-- · 2019-07-16 03:59
LIBRARY IEEE;
        USE IEEE.STD_LOGIC_1164.ALL;
        USE IEEE.STD_LOGIC_ARITH.ALL;
        USE IEEE.STD_LOGIC_UNSIGNED.ALL;
        --*********************************************
        ENTITY huancun is
                        PORT(
                         clr,load,cp                          : IN                STD_LOGIC;
                         key                                        : in                 std_logic_vector(15 downto 0);
                         key_out                                : buffer        std_logic_vector(15 downto 0)--缓冲状态,从处理器送到端口的数据可以等待外设取走
                          );
        END huancun;
        --*********************************************
        ARCHITECTURE a OF huancun IS
        BEGIN
        --****************************************
        process(cp,clr,load)
        begin
                if clr='1' then  key_out<=(others=>'0');                                --复位清零
                        elsif cp'event and cp='1' then
                                if load='1'then
                    key_out<=key;                       
                                end if;
                                end if;
        end process;
        end a;
TT24593638
2楼-- · 2019-07-16 05:25
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--*********************************************
ENTITY miyaoxulie is
                PORT(
                 clk,rst,en                 : IN        STD_LOGIC;
                 aa                                  : in        STD_LOGIC_VECTOR(15 DOWNTO 0);
                 key                          : in        STD_LOGIC_VECTOR(15 DOWNTO 0);
         sequ_out                 : buffer        STD_LOGIC_VECTOR(15 DOWNTO 0);
         data_rst                 : IN        STD_LOGIC
                  );
END miyaoxulie;
--*********************************************
ARCHITECTURE a OF miyaoxulie IS
begin
--****************************************
process(clk,rst,en,data_rst)
begin
        if rst='1' then sequ_out<=(others=>'0');                                --复位清零
                elsif data_rst='1' then sequ_out<=(others=>'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;
TT24593638
3楼-- · 2019-07-16 10:48
 精彩回答 2  元偷偷看……
TT24593638
4楼-- · 2019-07-16 16:10
求大神帮助啊aaaaaaaaaaaaaa
juventus_yang
5楼-- · 2019-07-16 18:35
一般用modelsim仿真是编译的时候把所有模块文件和tb一起编译,然后simulation的时候只选中tb即可,估计楼主是在仿真的时候选了顶层文件而不是tb?
TT24593638
6楼-- · 2019-07-16 23:13
juventus_yang 发表于 2015-10-10 21:08
一般用modelsim仿真是编译的时候把所有模块文件和tb一起编译,然后simulation的时候只选中tb即可,估计楼主是在仿真的时候选了顶层文件而不是tb?

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

一周热门 更多>