VHDL语言编程的错误谁给解决一下啊?谢啦
答案:1 悬赏:80 手机版
解决时间 2021-11-25 03:37
- 提问者网友:寂寞梧桐
- 2021-11-24 23:24
VHDL语言编程的错误谁给解决一下啊?谢啦
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-11-25 00:21
std_logic_vector是要定义长度的。
if
(e=1,a+b+c+d=2 or a+b+c+d=3) then f<=1;
end if
这边的判断和赋值也要注意长度。后续代码相同修改。追问怎么定义长度啊?
(a,b,c,d,e:in std_logic_vector(3 downto 0)
这样么?追答嗯,是的追问改完 还是出现这个错误
(e=1,a+b+c+d=10 or a+b+c+d=11) then f<=1;
end if;
if
(e=1,a+b+c+d=0 or a+b+c+d=100) then f<=0;
end if;
if
(e=0,a+b+c+d=11) then f<=1;
end if;
if
(e=0,a+b+c+d/=11) then f<=0;
end if;追答if((e="0001") or (a+b+c+d="0000") or (a+b+c+d="0100")) then f<="0000";
-- 第一个逗号有误吧?被我改成了or,根据你的要求修改。
--那些数值是十进制还是要对应的二进制的?二进制要加" ",才满足std_logic_vector类型
--后面的 f 赋值最好也是根据长度来赋值
--程序其他地方作相应修改啊
if
(e=1,a+b+c+d=2 or a+b+c+d=3) then f<=1;
end if
这边的判断和赋值也要注意长度。后续代码相同修改。追问怎么定义长度啊?
(a,b,c,d,e:in std_logic_vector(3 downto 0)
这样么?追答嗯,是的追问改完 还是出现这个错误
(e=1,a+b+c+d=10 or a+b+c+d=11) then f<=1;
end if;
if
(e=1,a+b+c+d=0 or a+b+c+d=100) then f<=0;
end if;
if
(e=0,a+b+c+d=11) then f<=1;
end if;
if
(e=0,a+b+c+d/=11) then f<=0;
end if;追答if((e="0001") or (a+b+c+d="0000") or (a+b+c+d="0100")) then f<="0000";
-- 第一个逗号有误吧?被我改成了or,根据你的要求修改。
--那些数值是十进制还是要对应的二进制的?二进制要加" ",才满足std_logic_vector类型
--后面的 f 赋值最好也是根据长度来赋值
--程序其他地方作相应修改啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯