可以在一个always @语句中定义一个状态变量state,比如在3——80时是state=1,当然也可以用逻辑语句。然后再在主状态机里进行对于state的判断。
比如你定义一个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,这样太麻烦了,你可以用嵌套来写就简单多了。有问题大家继续讨论。
case语句只能全部列出来。用case语句有利于对电路状态的裁割,可以适当提高工作时钟频率,而用if语句不行,所以用case语句还是好些的,只是多列一些而已。。
如果是范围的话,case语句要全部列出的,还不如用if语句方便