找回密码
 注册
搜索
查看: 663|回复: 0

[讨论] 请高手解答状态机和if语句

[复制链接]
发表于 2006-6-2 08:29:00 | 显示全部楼层 |阅读模式
我的问题是:在设计状态机的时候,很多时候都可以用if语句做比较器来代替,而且往往要简单的多,
最常见的是序列检测的设计,如果用状态机来实现,每来一位数据就要判断并转换相应的状态,如果序列长度比较长,那状态相应就要多些,而如果用if语句来判断相应的序列是否为待检测序列,就很简单,给出简化的主要的程序:
假设要检测一个10010的序列,符合输出1,不符合输出0
用状态机:
case (state)
A:begin
      if(input==1)
       state<=B;
      end
B:(同A类似)...........
C:..........
D:.........
E:........
当最后一个状态state=E时,证明检测出10010的序列,然后输出1,个人觉得比较繁琐

如果用if语句比较,
reg [4:0] compare;
always @(posedge clk)
begin
if (compare==5'10010)
output<=1;
else
output<=0;
end
那样的话不是很方便么?
有那位高手说说其中的利弊?
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-29 12:26 , Processed in 0.059919 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表