为什么用vhdl语言编好程序后,用modelsim仿真的时候,值(value)都是U,波形都是红线··

发布网友 发布时间:2022-04-23 07:57

我来回答

3个回答

热心网友 时间:2023-10-08 16:59

LIBRARY IEEE;
USE IEEE.STD_LOGIC_11.ALL;

ENTITY decoder_tb IS
END ENTITY;

ARCHITECTURE behaviour OF decoder_tb IS

COMPONENT decoder IS
PORT(a,b,c,e1,e2,e3 : IN STD_LOGIC;
y : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;

--定义测试信号
SIGNAL a,b,c,e1,e2,e3 : STD_LOGIC;
SIGNAL y : STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN
U1: decoder PORT MAP(a,b,c,e1,e2,e3,y);--元件实例化

test_vector:PROCESS--测试进程
BEGIN
e1<='0';
e2<='0';
e3<='1';
a<='1';--测试输入101
b<='0';
c<='1';
WAIT FOR 100 ns;--等待一段时间变换测试向量,这样才能在波形图中看到输出
a<='0';--测试输入011
b<='1';
c<='1';
WAIT FOR 1000 ns;
END PROCESS;
END behaviour;
--百度一把testbench就能找到很多教写testbench的文章

热心网友 时间:2023-10-08 16:59

在MODELSIM中红线的意思是未知值。
您可以给它赋一个初值,它就有值了。
寄存器是二值逻辑,0或者1
线网型除去0或者1还有高阻态Z。
其它强0强1态什么的就不说了,最好去查阅相关资料

热心网友 时间:2023-10-08 16:59

仿真的时候,你的mole里面所有用到的input都需要给激励;不然就会是红线(unknown)
仿真:写一个testbench,在里面对需要的input添加激励

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com