FPGA学习记录
题目四:三段式状态机
题目描述
使用三段式状态机设计一个序列检测器:
当检测到序列“101110”时,输出结果为1,否则输出为0。
要求:画出状态转移图、状态转移表,并且写出对应的三段式状态机代码。(状态转移图与状态转移表手画拍照即可,与设计代码打包)
系统输入时钟clk为100MHz;
低电平复位有效,信号为rst_n;
输入数据信号为data_in;
输出检测结果信号data_out;
设计思路
原理详见FPGA学习记录(2)——序列检测器
序列检测模块代码
module Sequential_Detector(clk,rst_n,data_in,data_out);
input clk,rst_n,data_in;
output data_out;
//*********************
//INNER SIGNAL DECLARATION
//*********************
//REGS
reg [7:0] c_state ;//current_state
reg [7:0] n_state ;//next_state
reg data_out;
//*******************
//DEFINE LOCAL PARAMETER
//*******************
parameter IDLE = 3'd0,
s1 = 3'd1,
s2 = 3'd2,
s3 = 3'd3,
s4 = 3'd4,
s5 = 3'd5,
s6 =