module TIMEG12 title 'Modified six-phase Master Timing Generator' " Input and Output pins MCLK, RESET, RUN, RESTART pin; P1_L, P2_L, P3_L, P4_L, P5_L, P6_L pin istype 'reg'; P1A, P2A, P3A, P4A, P5A, P6A pin istype 'reg'; " State definitions PHASES = [P1A, P1_L, P2A, P2_L, P3A, P3_L, P4A, P4_L, P5A, P5_L, P6A, P6_L]; NEXTPH = [P6_L, P1A, P1_L, P2A, P2_L, P3A, P3_L, P4A, P4_L, P5A, P5_L, P6A]; SRESET = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; P1 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; equations PHASES.CLK = MCLK; WHEN RESET THEN PHASES := SRESET; ELSE WHEN RESTART # (PHASES == SRESET) THEN PHASES := P1; ELSE WHEN RUN THEN PHASES := NEXTPH; ELSE PHASES := PHASES; end TIMEG12