在 verilog HDL 语言里面 case 语句分支 表示一个范围,如3~80 该怎么写。

如题所述

可以在一个always @语句中定义一个状态变量state,比如在3——80时是state=1,当然也可以用逻辑语句。然后再在主状态机里进行对于state的判断。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-28
比如你定义一个14位状态变量A_cnt[13:0],那么代码编写如下:
alawys @(*)
begin
case(A_cnt[13:0])
14'b00000000000011://3
begin
#######
end
14'b00000000000100://4
begin
#######
end



14'b00000001010000://80
begin
#######
end

default
begin
end
endcase
end

个人认为是这样,或者是我理解错了你的意思。
不过你要是从3写道80,这样太麻烦了,你可以用嵌套来写就简单多了。有问题大家继续讨论。
第2个回答  2011-11-15
case语句只能全部列出来。用case语句有利于对电路状态的裁割,可以适当提高工作时钟频率,而用if语句不行,所以用case语句还是好些的,只是多列一些而已。。
第3个回答  2011-11-15
如果是范围的话,case语句要全部列出的,还不如用if语句方便
相似回答