**
Verilog代码实现序列检测状态机学习记录
Verilog代码实现序列检测状态机学习记录
**
//检测1100_1101
序列检测的核心就是状态机的画图实现,仔细分析各个状态的流向和最后一个状态的判断,如果最后一个状态会重复之前的序列,则回到符合的状态继续检测,否则返回到空闲状态重新检测序列,比如检测八位的1100—1101,第一个状态是空闲状态实际上是检测第一位1,如果为1检测第二位,否则在空闲状态继续检测,只要画出图,基本就完成了六七成。

上面的图片就是序列检测的状态机,照着这个图片写代码就很容易了。
源代码
module sequence_detection(
input i_sys_clk ,
input i_sys_rst ,
input i_data ,
output o_result
);
reg result = 0 ;
reg [3:0] c_st = 0 ;
reg [3:0] n_st = 0 ;
parameter idle = 4'd0 ;
parameter st0 = 4'd1 ;
parameter st1 = 4'd2 ;
parameter st2 = 4'd3 ;
parameter st3 = 4'd4 ;
parameter st4 = 4'd5 ;
parameter
本文记录了使用Verilog代码实现序列检测状态机的过程,重点在于理解状态机的流程图绘制,通过分析状态流向来编写代码。示例中检测序列1100_1101,当检测到该序列时,输出结果为1。提供的源代码展示了模块的实现,并附有最终的波形图验证结果。
最低0.47元/天 解锁文章
3572

被折叠的 条评论
为什么被折叠?



