序列检测器

序列检测器是在数字码流中检测特定序列,利用同步状态机的方式可以较容易的实现。

比如设计一个检测序列为10010的检测器。

ST1:确定状态机的状态数亮;

ST2:确定每个状态下的变量的值;

ST3:状态之间切换的条件;

ST4:触发状态机的条件;

module xulie(x,z,clk,rst);

input x,clk,rst;

output z;

wire z;

reg[2:0]state;

parameter idle = 3'd0;

parameter a = 3'd1;

parameter b = 3'd2;

parameter c = 3'd3;

parameter d = 3'd4;

parameter e = 3'd5;

parameter f = 3'd6;

parameter g = 3'd7;

assign  z = (state==d && x==0) ?1:0;

always @(posedge clk or negedge rst)

begin

if (!rst)

begin

state <= idle;

end

else

casex(state)

idle :if (x==1)

state <= a;

else state <= idle;

a: if (x==0)

state <= b;

else state <= a;

b : if (x==0) 

state <= c;

else state <= f;

c : if(x==1)

state <= d;

else state <= g;

d : if(x==0)

state <= e;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值