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

architectureBehavioralofnx3_topistypestate_typeis(S0,S1,S2,S3);signalstate:state_type... 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;
展开
 我来答
nereus78e904
2016-11-12 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1943万
展开全部
VHDL中的if语句和case语句都是顺序语句,因此,描述的顺序不同,对应的硬件也是不同的。这与并行语句是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式