vhdl - VHDL 仿真无法运行
问题描述
我刚刚拿起了 VHDL 设计指南,我正在完成第一章的练习。我的 2 位多路复用器遇到了一个我不理解的问题。
我的多路复用器的代码:
library ieee;
use ieee.std_logic_1164.all;
entity multi2 is
port
(
a,b : in bit;
sel : in boolean;
z : out bit
);
end multi2;
architecture behave of multi2 is
begin
storage : process is
variable stored_d0 : bit;
begin
wait for 1 ns;
if sel then
z <= a;
else
z <= b;
end if;
end process storage;
end architecture behave;
我不知道为什么我需要“等待 1 ns;” 线。如果我将它移到“end if”行下方,则模拟将无法工作,并且我不会从 GHDL 获得我的 .vcd 输出。如果没有等待线,或者它位于错误的位置,我的 vcd 文件中就会出现关于开始时间和结束时间相同的错误。
我的流程中是否需要等待语句才能工作?
我的测试台代码如下:
library ieee;
use ieee.std_logic_1164.all;
entity multi2_tb is
end multi2_tb;
architecture test of multi2_tb is
component multi2
port
(
a,b : in bit;
sel : in boolean;
z : out bit
);
end component;
signal a,b : bit;
signal sel : boolean;
signal z : bit;
begin
multiplexer2: multi2 port map (a => a, b => b, sel => sel, z => z);
process begin
a <= '0';
b <= '1';
sel <= false;
wait for 3 ns;
a <= '0';
b <= '1';
sel <= true;
wait for 3 ns;
a <= '0';
b <= '1';
sel <= false;
wait for 3 ns;
assert false report "Reached end of test";
wait;
end process;
end test;
解决方案
推荐阅读
- javascript - 在模态而不是新窗口中打开目标空白
- java - How to deny the Multi-Window feature?
- html - :last-of-type Or :nth-of-type(n) Where n Is Last Element
- python - 使用 sudo pip install 从运行 python 3.6 的 ubuntu 18.04 安装后如何删除“pafy”?
- veins - Veins+SUMO 变道行为
- sql - 为什么不是所有日期都在“group by”SQL 查询中得到输出?
- javascript - Auth.currentSession 说没有当前用户
- javascript - plotly.js:当悬停模式为 x/y 且不是“最近”时,如何获取被点击的最近点
- android - 删除在闭包内创建的实时数据观察者
- python - 在 Django 中过滤多对多关系中的一个