Basic example.. hope it helps in some way..
jelydonut
// Update the current state
always @(posedge rclk or posedge rst)
if(rst)
receivefsm = RIDLE;
else
receivefsm = next_receivefsm;
// FSM next state and decodes
always @(receivefsm or sin or rxdsampletime or startbitdet or
rxbitcntdone or pen or rxdbittime or rxdlatchtime)
begin
setrxbufregld = 1'b0;
case(receivefsm)
RIDLE :begin
if(startbitdet)
next_receivefsm = RECEIVING;
else
next_receivefsm = RIDLE;
end
more cases...
endcase......