有限状态机(FSM)
moduledivideby3FSM(inputclk, inputreset, outputq); parameters02'b00parameters12'b00parameters22'b00reg[1:0]state; reg[1:0]nextstate; always@(posedgeclk,posedgereset)if(reset)state <s0; elsestate <nextstate; always@()case(state)s0: nextstates1; s1: nextstates2; s2: nextstates0; default:nextstates0; endcaseassignq(states0); endmodule// 其中,第一个always为FSM的第一段;第二个always块为FSM的第二段;// 最后的assign语句为FSM的第三段。如有多个信号,可继续使用assign或always语句进行处理。