Prévia do material em texto
Step 1 of 2 8.079E Refer to Table 8-31 from the textbook for the ABEL ring-counter implementation. The design is not the self- synchronizing. If the outputs [P1_L, P2_L, P3_L, P4_L, P5_L, P6_L] are initially 0 and if the RUN input is asserted without ever asserting the RESET and RESTART then the all the states will stick to [0, 0, 0, 0, 0, 0]. It is not possible to generate the six-phases as there is no chance of assigning P1 to the PHASES. To make the design self-synchronizing, assert RUN after asserting RESTART so that the initial state P1 is assigned to the PHASES. Step 2 of 2 Modify the program in Table 8-31 from the textbook to make the design self-synchronizing. module TIMEGEN6 title Master Timing Input and Output pins MCLK, RESET, RUN, RESTART pin; 'reg'; definitions SRESET = [1,1,1,1,1,1]; P1 = 1, 1, 1, 1, 1]; equations T1.CLK = MCLK; PHASES.CLK = MCLK; when RESET then := 1; PHASES SRESET;} else when (PHASES == SRESET )# RESTART then 1; PHASES :=P1;} else when if (RESTART & RUN & T1) then T1 := 0; PHASES := PHASES; else if (RESTART & RUN & !T1) then T1 := 1; PHASES := NEXTPH; else {T1 := T1; PHASES := PHASES;}; end TIMEGEN6 Hence, the modified program is provided.