可综合的状态机设计T最常用:alwayscaseOTONG22025/12/3
2025/12/3 12 可综合的状态机设计 ❖最常用:always case
状态转移图1909ALISTNOTONGIAA/G=0StartIReset/F=0G=0!Reset/F=0G=0IdleIReset/F=0G=0StopClearIReset|1A/F=0G=1A/F=1状态转移图132025/12/3
2025/12/3 13 状态转移图 Idle Start Stop Clear A/G=0 !A A/F=1 !Reset /F=0 G=0 !Reset /F=0 G=0 !Reset | !A/F=0 G=1 状态转移图 !Reset /F=0 G=0
状态转移图大支上面的状态转移图表示了一个四状态的有限状态O机,它的同步时钟是Clock,输入信号是A和Reset.输出信号是F和G。状态的转移只能在同步时钟(Clock)的上升沿时发生,往哪个状态的转移则取决于目前所在的状态和输入的信号(Reset和A)。2025/12/3
2025/12/3 14 状态转移图 ❖上面的状态转移图表示了一个四状态的有限状态 机,它的同步时钟是Clock,输入信号是 A 和 Reset,输出信号是 F 和 G。状态的转移只能在同 步时钟(Clock)的上升沿时发生,往哪个状态 的转移则取决于目前所在的状态和输入的信号 (Reset 和 A)
大支心VerilogHDL中,状态必须明确赋值,通常使用TONG参数(parameters)或宏定义(define)语句加上赋值语句来实现。使用参数(parameters)语句赋状态值见下例:152025/12/3
2025/12/3 15 ❖Verilog HDL中,状态必须明确赋值,通常使用 参数(parameters)或宏定义(define)语句加上赋 值语句来实现。使用参数(parameters)语句赋状 态值见下例:
Tparameter state1=2'h1,state2=2'h2OTONG/把currentstate设置成current state=state2;2'h2使用宏定义(define)语句赋状态值见下例:definestate12'h1definestate22'h2currentstate=state2;l/把currentstate设置成2h262025/12/3
2025/12/3 16 ❖ parameter state1 = 2 'h1, state2 = 2 'h2; ❖ . ❖ current_state = state2; //把current state设置成 2'h2 ❖ . ❖ 使用宏定义(define)语句赋状态值见下例: ❖ `define state1 2 'h1 ❖ `define state2 2 'h2 ❖ . ❖ current_state = `state2; //把current state设置成 2 'h2