module TIMEG12X title 'Counter-based 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'; CNT3..CNT0 pin istype 'reg'; " Definitions CNT = [CNT3..CNT0]; P_L = [P1_L, P2_L, P3_L, P4_L, P5_L, P6_L]; equations CNT.CLK = MCLK; P_L.CLK = MCLK; WHEN RESET THEN CNT := 15 ELSE WHEN RESTART THEN CNT := 0 ELSE WHEN (RUN & (CNT < 11)) THEN CNT := CNT + 1 ELSE WHEN RUN THEN CNT := 0 ELSE CNT := CNT; WHEN (RESET # RESTART) THEN P_L := [1, 1, 1, 1, 1, 1]; WHEN RUN THEN P1_L := !(CNT == 0) ELSE P1_L := P1_L; WHEN RUN THEN P2_L := !(CNT == 2) ELSE P2_L := P2_L; WHEN RUN THEN P3_L := !(CNT == 4) ELSE P3_L := P3_L; WHEN RUN THEN P4_L := !(CNT == 6) ELSE P4_L := P4_L; WHEN RUN THEN P5_L := !(CNT == 8) ELSE P5_L := P5_L; WHEN RUN THEN P6_L := !(CNT == 10) ELSE P6_L := P6_L; end TIMEG12X