Isim 仿真中未显示信号

问题描述

我正在编写一个 vhdl 代码,它应该可以完成许多功能。我的代码和我的测试平台都运行良好。但在模拟中什么都没有初始化。我真的不明白为什么以及我的错误到底在哪里。如果有人帮助我解决我的问题,我将不胜感激。 “当启用为'1'并且在上升沿时钟中时代码应该工作。并且使用不同的S值它应该做不同的事情。

我的模拟错误是:

ERROR: at 0 ps: Delay 20000 fs 不大于先前分配给目标信号 a 的波形元素延迟 20000 fs 错误:正在处理 MyProject_tb.vhd:34

我的代码是:

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE IEEE.NUMERIC_STD.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY alu_test IS
END alu_test;

    ARCHITECTURE test of alu_test IS
       COMPONENT ALU IS
          port(
          A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
          B : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
          enable : IN STD_LOGIC;
          clk : IN STD_LOGIC;
          s : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
          carry : OUT STD_LOGIC;
          c : INOUT STD_LOGIC_VECTOR(3 DOWNTO 0)   
       );
       END COMPONENT;
    
    SIGNAL a : STD_LOGIC_VECTOR(3 downto 0);
    SIGNAL b : STD_LOGIC_VECTOR(3 downto 0);
    SIGNAL c : STD_LOGIC_VECTOR(3 downto 0);
    SIGNAL s : STD_LOGIC_VECTOR(1 downto 0) := "00";
    SIGNAL en : STD_LOGIC := '1';
    SIGNAL cl : STD_LOGIC := '1';
    SIGNAL car : STD_LOGIC;
    
    BEGIN
       uut : ALU PORT MAP(a,b,en,cl,s,car,c);
    en <= '1';
    cl <= not cl AFTER 20 NS;
    a <= "0001","1101" AFTER 20 NS,"1110" AFTER 20 NS;
    b <= "1101","0101" AFTER 20 NS,"1111" AFTER 20 NS;
    s <= "01","00" AFTER 20 NS,"10" AFTER 20 NS;
    
    END test;

还有我的测试台:

Error in names(filedatatypelist_DHS) <- paste0("filedatatypelist_",qdapRegex::rm_between(filedatatypelist_DHS_line,:  'names' attribute [1] must be the same length as the vector [0]

以及我的模拟的样子: enter image description here

解决方法

线条

 a <= "0001","1101" AFTER 20 NS,"1110" AFTER 20 NS;
 b <= "1101","0101" AFTER 20 NS,"1111" AFTER 20 NS;
 s <= "01","00" AFTER 20 NS,"10" AFTER 20 NS;

不要做你最有可能期望他们做的事情。

对于信号 a,您很可能需要“0001”、“1101”和“1110”的序列,其间有 20 ns。否则(如错误消息所示),您将同时将“1101”和“1110”分配给 a(在 20 ns 之后),这是不可能的。因此,将您的行重新格式化为:

a <= "0001","1110" AFTER 40 NS;

不过,我更喜欢使用 wait 语句(在进程内)来摆动刺激信号,例如:

process
begin
    a <= "0001";
    wait for 20 ns;
    a <= "1101";
    -- and so on...

在此之后,您的设计 (ALU) 中会出现一些错误,但修复它们将是另一个问题...

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...