声明:内容来自明德扬FPGA培训视频部分内容,本文为部分讲师讲解内容和作者的理解摘记。
state_c 是当前状态(现态);state_n是下一个状态(次态);IDLE表示初始状态(当然,不需要专门为复位信号设计idle作为初始状态,初始化就是s1,然后几个状态之间转换);s1、s2、s3表示第一、二、三种状态;s12s2中第一个2是“to”的音译化用,短句表示从第一个状态to(到)第二个状态;
一、状态机第一段
同步时序的always模块,格式化描述次态迁移到现态寄存器
//状态机第一段verilog代码:
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
state_c <= IDLE;
end
else begin
state_c <= state_n;
end
end
二、状态机第二段
组合逻辑的always模块,描述状态转移条件判断,但是!具体判断条件不在第二段描述。重要一点,组合逻辑一定要写补全条件,else begin。
always@(*)begin
case(state_c)
IDLE:begin
//现在的状态是IDLE
if(idle2s1_s

最低0.47元/天 解锁文章
420





