序列检测器设计Verilog代码Vivado仿真

名称:序列检测器设计Verilog代码Vivado仿真(文末获取)

软件:Vivado

语言:Verilog

代码功能:

QQ图片20240106112859.png

1. 序列检测

1.1 重复判断

工程文件

程序文件

程序编译

Testbench

仿真图

1.2 不重复判断

工程文件

程序文件

程序编译

Testbench

仿真图

部分代码展示:

//带重复判断的序列检测器011
module sequence_detection(
input clk,//时钟
input rst_n,//复位
input data_in,//序列输入
output detection_result//检测结果
);
reg [2:0] state=3'd0;//定义状态
parameter s_idle=3'd0;
parameter s_d0=3'd1;
parameter s_d01=3'd2;
parameter s_d011=3'd3;
always@(posedge clk or negedge rst_n)
if(rst_n==0)//复位
state<=s_idle;
else
case(state)
s_idle://初始状态
if(data_in==1'b0)//输入0
state<=s_d0;
else
state<=s_idle;
s_d0://已检测到0
if(data_in==1'b1)//输入1
state<=s_d01;
else//输入0
state<=s_d0;
s_d01://已检测到01
if(data_in==1'b1)//输入1
state<=s_d011;
else//输入0
state<=s_d0;
s_d011://已检测到011
if(data_in==1'b1)//输入1
state<=s_idle;
else//输入0
state<=s_d0;
default:
state<=s_idle;
endcase
reg detection_result_reg=0;
always@(posedge clk)
if(state==s_d011)//已检测到011
detection_result_reg<=1;//检测结果
else
detection_result_reg<=0;
assign detection_result=detection_result_reg;//输出
endmodule
源代码

 扫描文章末尾的公众号二维码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值