在Verilog语言中经常用到有限状态机,处理相对复杂的逻辑,设定好不同的状态,根据触发条件跳转到对应的状态,在不同的状态下进行相应的处理。在程序中设计8位寄存器,① Idle状态下,判断shift_start是否为高,若高,则进入Start状态;②在Start状态延迟100个周期,进入Run状态,进行移位处理;第一种Melay状态机采用一段式写法,一个always语句中包括状态转移,状态转换台条件判断,数据输出;
第二种Moore状态机采用三段式写法,状态转移用一个always语句,判断状态转移的条件是组合逻辑,采用一个always语句,数据输出也是单独的always语句,直观清晰;
1