我正在用VHDL编写一个基本CPU控制单元的FSM。在一个过程中,我使用case语句来解码指令代码。我的问题是,“...”的顺序是>陈述是重要的/改变什么,或者推断的“电路”是否相同?我怀疑它会,但我想确定。
我宁愿将这些案例按顺序排列,而不是按价值排序。
答案 0 :(得分:2)
when "..." =>
语句的顺序在模拟或综合中可能无关紧要/改变任何内容,因为在VHDL中它们必须互斥。
答案 1 :(得分:1)
订单没有任何效果。
case State is
when A => ...
when B => ...
end case;
与
相同case State is
when B => ...
when A => ...
end case;
我想一些综合工具可以根据顺序生成不同的状态编码,但这不应该是您应该担心的事情。
答案 2 :(得分:0)
您的订单没有区别,因为综合工具将收集case语句的所有分支并将它们放在一个大型多路复用器中。多路复用器将根据您的不同分支条件(显然是您的输入)进行评估。
不要忘记when others =>
陈述;)
有关“案例陈述”的更多信息: http://www.vhdl-online.de/courses/system_design/vhdl_language_and_syntax/sequential_statements/case_statement