【正文】
(x==0) nstate=s1。 end Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 36 //第二段 always,指定新態(tài)的變化 always(state or x) begin casex(state) s0: begin if(x==1) nstate=s0。 ?③最后的輸出采用組合邏輯電路 Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 35 三段式狀態(tài)機(jī) ?除 always外無區(qū)別 //第一段 always,完成原態(tài)到新態(tài)的轉(zhuǎn)換 always (posedge clk or posedge reset) begin if(reset) state=s0。 end end default: nstate=s0。 end else begin nstate=s2。 end end s4: begin if(x==0) begin nstate=s1。 end else begin nstate=s0。 end end Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 33 ?s3 ?s4 s3: begin if(x==0) begin nstate=s4。 end else begin nstate=s3。 end end s2: begin if(x==0) begin nstate=s1。 end else begin nstate=s2。 end end Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 32 ?s1 ?s2 s1: begin if(x==0) begin nstate=s1。 end else begin nstate=s1。 end always(state or x) begin casex(state) s0: begin if(x==1) begin nstate=s0。 Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 31 ?第一段 always ?第二段 always always (posedge clk or posedge reset) begin if(reset) state=s0。d3,s4=39。d1,s2=39。 //state表示原態(tài), nstate表示新態(tài) parameter s0=39。 reg z。 input x,clk,reset。 end end default: state=s0。 end else begin state=s2。 end end Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 27 ?S4狀態(tài) ?結(jié)束 s4: begin if(x==0) begin state=s1。 end else begin state=s0。 end end s3: begin if(x==0) begin state=s4。 end else begin state=s3。 end end Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及仿真 26 ?S2狀態(tài) ?S3狀態(tài) s2: begin if(x==0) begin state=s1。 end else begin state=s2。 end end s1: begin if(x==0) begin state=s1。 end else begin