中易网

VHDL 语言问题 在process里面 1 if语句块和2 case语句块两个我换下位置 结果不一样

答案:2  悬赏:70  
解决时间 2021-12-23 03:27
architecture Behavioral of nx3_top is
type state_type is (S0,S1,S2,S3);
signal state: state_type;
begin

process(clk)

begin

if(rising_edge(clk)) then
if state=S0 then --1
leds(0)<='0';leds(1)<='0';leds(2)<='1';leds(3)<='0';
end if;

case state is --2
when S0=> if buttons='1' and switches(0)='0' and switches(1)='0' and switches(2)='0' and switches(3)='0' then leds(0) <='1'; state<=S1;end if;
when S1=> if buttons='1' and switches(0)='0' and switches(1)='1' and s w itches(2)='1' and switches(3)='0' then leds(1) <='1';state<=S2;end if;
when S2=> if buttons='1' and switches(0)='1' and switches(1)='0' and switches(2)='0' and switches(3)='0' then leds(2) <='1';state<=S3; end if;
when S3=> if buttons='1' and switches(0)='1' and switches(1)='0' and switches(2)='1' and switches(3)='0' then leds(3) <='1';state<=S0; end if;
when others=> state<=S0;
end case;

end if;
end process;

先写1 if语句块在写case语句块是对的 反一下就不对了 但是我感觉没什么关系啊

end Behavioral;
最佳答案
VHDL中的if语句和case语句都是顺序语句,因此,描述的顺序不同,对应的硬件也是不同的。这与并行语句是不一样的。
全部回答
process里的敏感信号是作为触发条件的 无论a b还是c,只要发生变化了,那么process内部的所有阻塞和非阻塞语句都会执行 e虽然不在敏感信号列表里,但d <= e or b;也是会执行的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
学校合唱比赛 站起来和同一首歌 求一个班级简
【作文】春日里的童年记忆
束馆镇第一幼儿园地址好找么,我有些事要过去
黄肠的意思是什么?黄肠的释义是什么啊?
妄匠的意思是什么啊?请解释下!
优患与安乐造句
失踪的马航客机编号为什么叫MH370
撑驾的意思是什么?撑驾的释义是什么啊?
丽限的意思是什么?丽限的释义是什么啊?
为什么我英雄联盟一上线就叫我重连,最近一局
蜜炬的意思是什么啊?请解释下!
莱茵阳光地板安国专卖店怎么去啊,有知道地址
五佐的意思是什么?五佐的释义是什么啊?
貂禅的禅用五笔怎么打
那有,每天看一遍家庭和睦天下太平《圣贤教育
推荐资讯
軍港的意思是什么?軍港的释义是什么啊?
原阳县国土资源局地址在哪,我要去那里办事
西陵区宜昌市西陵区宏飞五金地址是什么,有没
剥皮的读音是什么
车店村委会地址有知道的么?有点事想过去!
心胸的意思是什么啊?请解释下!
没打针的小猫就不能洗澡吗
液晶屏里的FOG是什么意思
小腿骨裂一个月了,脚踝还有点肿不能动怎么回
尿毒症早期指标
西方古董家具有哪些类别谁能介绍下?
壁挂炉 暖气片热,却屋子不热
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?