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

相关推荐
蒙奇D索大2 小时前
【计算机网络】408考研核心考点:物理层设备(中继器/集线器)深入解析
经验分享·笔记·计算机网络·考研·改行学it
code_ing-3 小时前
【Linux】命令行参数与环境变量
linux·c++·windows·笔记
bnsarocket6 小时前
Verilog和FPGA的自学笔记9——呼吸灯
笔记·fpga开发·verilog·自学·硬件编程
锦瑟弦音7 小时前
2048游戏开发笔记4 & 音效 cocos3.8.7
笔记·typescript·cocos2d
崎岖Qiu8 小时前
【设计模式笔记10】:简单工厂模式示例
java·笔记·设计模式·简单工厂模式
ouliten8 小时前
C++笔记:std::variant
开发语言·c++·笔记
俊俊谢9 小时前
【第一章】金融数据的获取——金融量化学习入门笔记
笔记·python·学习·金融·量化·akshare
大白的编程日记.9 小时前
计算机网络学习笔记】初始网络之网络发展和OSI七层模型
笔记·学习·计算机网络
Cathy Bryant11 小时前
智能模型对齐(一致性)alignment
笔记·神经网络·机器学习·数学建模·transformer
buyicn11 小时前
低成本低成本低成本
笔记