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

相关推荐
moxiaoran57533 小时前
uni-app学习笔记二十九--数据缓存
笔记·学习·uni-app
自小吃多6 小时前
STC8H系列 驱动步进电机
笔记·单片机
moxiaoran57538 小时前
uni-app学习笔记三十--request网络请求传参
笔记·学习·uni-app
明月醉窗台10 小时前
qt使用笔记二:main.cpp详解
数据库·笔记·qt
Shaoxi Zhang11 小时前
NVM常用命令记录
笔记
wind_one112 小时前
STM32[笔记]--1.前置准备
笔记·stm32·单片机
jackson凌13 小时前
【Java学习笔记】String类(重点)
java·笔记·学习
a_1571532498614 小时前
SpringCloud学习笔记-4
笔记·学习·spring cloud
sponge'15 小时前
opencv学习笔记2:卷积、均值滤波、中值滤波
笔记·python·opencv·学习
ljt272496066117 小时前
Compose笔记(二十六)--DatePicker
笔记·android jetpack