STATE  MACHINE  DESIGN  STYLES


  1. One unclocked always block and one clocked always block.
    • One unclocked always block to assign output and to assign next state.
    • One clocked always block to update state register.
    • moore1.v
    • tb_moore1.v

  2. Two always blocks and a signal assignment statement.
    • One unclocked always block to assign next state.
    • One clocked always block to update state register.
    • One signal assignment statement to assign output.
    • moore2.v
    • tb_moore2.v

  3. Two clocked always blocks and one unclocked always block.
    • One clocked always block to update state register.
    • One unclocked always block to assign next state.
    • One clocked always block to register output.
    • moore3.v
    • tb_moore3.v

  4. One clocked always block.

  5. Two unclocked always block and one clocked always block.
    • One unclocked always block to assign output.
    • One unclocked always block to assign next state.
    • One clocked always block to update state register.
    • moore5.v
    • tb_moore5.v