VHDL语言程序出错

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytvsisport... library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity tvs is port
(a,b,c,d,e:in std_logic;
clk: in std_logic;
f:out std_logic);
end tvs;
architecture tvs_arch of tvs is
begin
process(a,b,c,d)
begin
if
((e=1) and (a+b+c+d=10) ) then f<=1;
elsif
((e=1) and (a+b+c+d=11)) then f<=1;
elsif
((e=1) and (a+b+c+d=100)) then f<=0;
elsif
((e=1) and (a+b+c+d=0)) then f<=0;
elsif
((e=0) and (a+b+c+d=11)) then f<=1;
elsif
((e=0) and (a+b+c+d/=11)) then f<=0;
end if;
end process;
end tvs_arch;
程序出现错误,我想把adcdef都定义成二进制数,不知道咋定义,求大神帮忙修改
展开
 我来答
nereus78e904
推荐于2016-05-30 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1930万
展开全部
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity tvs is

port(a,b,c,d,e:in std_logic;
-- clk: in std_logic;--clk信号没有用处
f:out std_logic);
end tvs;
architecture tvs_arch of tvs is
begin
process(a,b,c,d,e)
variable sum:std_logic_vector(2 downto 0):="000";
begin
sum := sum + a;
sum := sum + b;
sum := sum + c;
sum := sum + d;
if e='1' then
case sum is
when "010"|"011" => f <= '1';
when "000"|"100" => f <= '0';
when others => f <= '-';
end case;
else
if sum="011" then f <= '1';
else f <= '0';
end if;
end if;
end process;
end tvs_arch;
追问
为啥我仿真你给写的程序,没有输出啊
追答
抱歉,少了一句给变量sum赋初值的语句。在process的begin之后加一句sum := (others => '0');:
begin
sum := (others => '0');--少了这一句
sum := sum + a;
sum := sum + b;
sum := sum + c;
sum := sum + d;
百度网友cd2b797
2014-05-28 · TA获得超过180个赞
知道答主
回答量:63
采纳率:0%
帮助的人:47.2万
展开全部
BIT可以定义二进制 a:in bit;....
追问
改完后程序出错
追答
bit包括‘0’和‘1’,
std_logic包括9种不同的值
'U'——初始值
'X'——不定
'0'——0
'1'——1
'Z'——高阻
'W'——弱信号不定
'L'——弱信号0
'H'——弱信号1
'-'——不可能的情况

所以你要是单纯定义二进制的话选择bit是没有错的,应该是其它错误。虽然不知道你描述的是什么功能 但是很明显的错误 例如:a+b+c+d=10 如果你的a b c d 都是二进制的‘0’或者‘1’,是不可能加到10 或者100的。除非你的10和100是“10”或者“100”,前者表示十进制后者表示的是二进制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式