Due date is 4/23. HDL examples 6.1 and 6.2 on Pages 270-272 model a 4-bit universal shift register (shown in Figure 6.7 on Page 252) using behavioral description and structural description, respectively. (1) Write a test bench to stimulate the two modules (Shift_Register_4_beh and Shift_Register_4_str). Add display statements (such as $monitor or $display, see Page 171 for details) into the code to print out inputs/outputs. All typical input cases listed in Table 6.3 (on Page 253) should be included in your test. In your submission, include the code, printout (running log) of the runs, and the waveforms. Please use your pen to highlight each of the test cases in your waveforms. (75 points) (2) Replace four D flip-flops used in the design of the 4-bit universal shift register (shown in Figure 6.7 on Page 252) with four T flip-flops. The specification of the register's functionalities is the same. Draw your circuit diagram and briefly show the design steps related to the use of T flip-flops. Modify the code in HDL Example 6.2 (Page 271) accordingly. Specifically, replace module D_flip_flop on Page 272 with a module for T flip-flop (module T_flip_flop) and make other necessary changes in the code. In your submission, include the modified code, printout (running log) of its run, and the waveform. Confirm that the result of the simulation is the same as the original module (Shift_Register_4_str). (25 points)