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

RT刚学的VHDL语言,用quartus10.1写好一个3-8译码器后,经过startcompilation=>starttestbenchtempltewriter,生... RT
刚学的VHDL语言,用quartus10.1写好一个3-8译码器后,经过start compilation =>start test bench templte writer,生成了.vho和.vht2个文件,然后调用modelsim仿真,可是出现的只有红线,是不是少了什么激励信号啊?如果是的话应该怎样用VHDL写这个激励信号,然后加入工程进行仿真呢?是不是所有的激励信号都差不多呢?小弟初学quartus,还有好多不明白的地方啊,一个仿真搞得头都大了,哪位达人具体介绍一下吧····
3-8译码器程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_ARITH.ALL;
use ieee.std_logic_UNSIGNED.ALL;

entity decoder is
port(a,b,c,e1,e2,e3:in std_logic; --in design
y:out std_logic_vector(7 downto 0) --out design
);
end decoder;
architecture rt1 of decoder is
signal indata: std_logic_vector(2 downto 0); --signal design
begin
indata<= c&b&a;
process(indata,e1,e2,e3)
begin
if(e1='0'and e2='0'and e3='1') then
case indata is
when "000"=>y<="11111110";
when "001"=>y<="11111101";
when "010"=>y<="11111011";
when "011"=>y<="11110111";
when "100"=>y<="11101111";
when "101"=>y<="11011111";
when "110"=>y<="10111111";
when "111"=>y<="01111111";
when others=>y<="11111111";
end case;
else
y<="00000000";
end if;
end process;
end rt1;
采用的芯片是max7000s的epm7128slc84-5
展开
 我来答
斯里哇啦
2011-05-10 · TA获得超过210个赞
知道小有建树答主
回答量:342
采纳率:100%
帮助的人:302万
展开全部
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.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的文章
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flamingwave
2011-05-08 · TA获得超过358个赞
知道小有建树答主
回答量:196
采纳率:100%
帮助的人:176万
展开全部
在MODELSIM中红线的意思是未知值。
您可以给它赋一个初值,它就有值了。
寄存器是二值逻辑,0或者1
线网型除去0或者1还有高阻态Z。
其它强0强1态什么的就不说了,最好去查阅相关资料
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaowind000
2011-05-07 · TA获得超过550个赞
知道小有建树答主
回答量:237
采纳率:85%
帮助的人:73.2万
展开全部
仿真的时候,你的module里面所有用到的input都需要给激励;不然就会是红线(unknown)
仿真:写一个testbench,在里面对需要的input添加激励
更多追问追答
追问
那怎样添加激励呢,也就是这个testbeach怎样写,比如说这个38译码器的激励
追答
大概说一下:
你在testbench里面对你design的input赋值,然后将其连到design里面
你学习VHDL的资料里面应该有参考,你看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式