用verilog实现检测1的个数_【数字IC工程师】数据流序列检测Verilog实现

该博客介绍了如何使用Verilog实现数据流中特定序列‘10010’的检测。通过状态机设计,当检测到目标序列时,输出检测命中标志。文章包括了Verilog代码实现和测试构造。
摘要由CSDN通过智能技术生成

功能描述

通过Verilog实现数据流中特定序列的检测,输出发现指定序列标志:从输出数据流中检测序列“10010”.

检测状态设计

Verilog代码实现

module SEQ_CHK(

input clk ,

input rst_n,

input seq ,

output hit

);

//定义设计中使用到的参数

parameter DLY = 1;

parameter IDLE = 3'b000,

A = 3'b001,

B = 3'b010,

C = 3'b011,

D = 3'b100,

E = 3'b101;

//状态寄存器定义

reg[2:0] state;

//在数据流中检测到序列"10010"输出检测命中标志

assign hit = (state == D && seq == 1'b0) ? 1'b1 : 1'b0;

//数据流检测序列状态变化

always@(posedge clk or negedge rst_n)begin

if(rst_n == 1'b0)begin

state <= #DLY IDLE;

end

else begin

case(state)

IDLE:begin

if(seq =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值