module TIMEGN6X title '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'; T1 pin istype 'reg'; " State definitions TSTATE = [T1, P1_L, P2_L, P3_L, P4_L, P5_L, P6_L]; SRESET = [1, 1, 1, 1, 1, 1, 1]; P1F = [1, 1, 1, 1, 1, 1, 1]; P1S = [0, 0, 1, 1, 1, 1, 1]; P2F = [1, 1, 1, 1, 1, 1, 1]; P2S = [0, 1, 0, 1, 1, 1, 1]; P3F = [1, 1, 1, 1, 1, 1, 1]; P3S = [0, 1, 1, 0, 1, 1, 1]; P4F = [1, 1, 1, 1, 1, 1, 1]; P4S = [0, 1, 1, 1, 0, 1, 1]; P5F = [1, 1, 1, 1, 1, 1, 1]; P5S = [0, 1, 1, 1, 1, 0, 1]; P6F = [1, 1, 1, 1, 1, 1, 1]; P6S = [0, 1, 1, 1, 1, 1, 0]; equations TSTATE.CLK = MCLK; WHEN RESET THEN TSTATE := SRESET; state_diagram TSTATE state SRESET: IF RESET THEN SRESET ELSE P1F; state P1F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P1S ELSE P1F; state P1S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P2F ELSE P1S; state P2F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P2S ELSE P2F; state P2S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P3F ELSE P2S; state P3F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P3S ELSE P3F; state P3S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P4F ELSE P3S; state P4F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P4S ELSE P4F; state P4S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P5F ELSE P4S; state P5F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P5S ELSE P5F; state P5S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P6F ELSE P5S; state P6F: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P6S ELSE P6F; state P6S: IF RESET THEN SRESET ELSE IF RESTART THEN P1F ELSE IF RUN THEN P1F ELSE P6S; end TIMEGN6X