verilog检测10010序列

module squence_check

(

input clk,

input rst_n,

input i_din,

output o_flg

)

//syte 1

//always @(posedge clk or negedge rst_n)

// if(!rst_n)

// dat_sequence <= 5'd0;

// else

// dat_sequence <= {dat_sequence[3 : 0],i_din};

//

//assign flg = {dat_sequence[3 : 0],i_din} == 5'b10010;

//

//always @(posedge clk or negedge rst_n)

// if(!rst_n)

// o_flg <= 1'd0;

// else

// o_flg <= flg;

//

always @(posedge clk or negedge rst_n)

if(!rst_n)

curr_state <= IDLE;

else

curr_state <= nxt_state;

always@ (*)

case(curr_state)

IDLE:

if(i_din == 1'd1)

nxt_state = S0;

else

nxt_state = IDLE;

S0:

if(i_din == 1'd0)

nxt_state = S1;

else

nxt_state = S0;

S1:

if(i_din == 1'd0)

nxt_state = S2;

else

nxt_state = S0;

S2:

if(i_din == 1'd1)

nxt_state = S3;

else

nxt_state = IDLE;

S3:

if(i_din == 1'd0)

nxt_state = S4;

else

nxt_state = S0;

S4:

if(i_din == 1'd0)

nxt_state = IDLE;

else

nxt_state = S0;

default:

nxt_state = IDLE;

endcase

assign o_flg = (curr_state == S4);

endmodule

相关推荐
小陈phd33 分钟前
多模态大模型学习笔记(三十)—— 基于YOLO26 Pose实现车牌检测
笔记·学习
野指针YZZ1 小时前
XV6操作系统:trap机制学习笔记
笔记·学习
-许平安-3 小时前
MCP项目笔记九(插件 bacio-quote)
c++·笔记·ai·plugin·mcp
Xudde.3 小时前
班级作业笔记报告0x10
笔记·学习·安全·web安全·php
降临-max4 小时前
Git 协同开发与冲突解决
笔记·git
南境十里·墨染春水6 小时前
Linux学习进展 进程管理命令 及文件压缩解压
linux·运维·笔记·学习
航Hang*6 小时前
第2章:进阶Linux系统——第4节:配置与管理NFS服务器
linux·运维·服务器·笔记·学习·vmware
ZhiqianXia6 小时前
Pytorch 学习笔记(8): PyTorch FX
pytorch·笔记·学习
xuhaoyu_cpp_java6 小时前
Boyer-Moore 投票算法
java·经验分享·笔记·学习·算法
雨浓YN7 小时前
OPC UA 通讯开发笔记 - 基于Opc.Ua.Client
笔记·c#