Professional Documents
Culture Documents
Exercise 1
//Every positive edge of the clock
always @ (posedge clk) if (rst == 0) //if rst port is pressed state <= 8'b11111111; else state [0] <= 0; endmodule
COMP306L UST-ECE engradc (c)2009
Activity 1
Modify exercise1.v wherein the display of upper nibble LEDs will be the complement of the lower nibble LEDs if SW3, SW4 and dip SW8 is at ON (low) state.
Modify exercise1.v so that the D1 LED is controlled by a push button that is, when the push button is pressed and D1 LED is turned off, D1 LED will light up. However, when the push button is pressed and D1 LED is lit up, D1 LED will be turned off.
Modify exercise3.v such that the delay is controlled by push-button SW4. If SW4 is pressed, the delay is 2 sec, when SW4 is high the delay is 0.5 sec. Provide pins for reset (SW1) and clock.
SW_NOT (reg)
AND
TRIG (reg)
SW
SW_NOT TRIG
TRIG
CLK
Modify activity 4. The display of the LEDs is controlled by push-button switch SW4. Provide pin for reset (SW1).
assign {m4, m3, m2, m1} = state; assign {a, b, c, d, e, f, g} = number; assign dp = 1;
COMP306L UST-ECE engradc (c)2009
Activity 6
Using the debounce switch in exercise5, modify exercise6.v such that the seven-segment will display a count-up sequence every time push-button SW2 is pressed. Provide reset button (SW1)
assign {m4, m3, m2, m1} = state; assign {a, b, c, d, e, f, g} = number; assign dp = 1;
COMP306L UST-ECE engradc (c)2009
Activity 7
Modify exercise7.v such that the four LED-segment will shift to the right the display characters 1234 for every 1 second. Provide reset button (SW1)
Exercise 8: Counter
module exercise8 (clk, rst, m1, m2, m3, m4, a, b, c, d, e, f, g, dp); input clk, rst; output m1, m2, m3, m4; output a, b, c, d, e, f, g, dp; reg [23:0] counter; reg [19:0] state; reg [7:0] number; assign {m1, m2, m3, m4} = state; assign {a, b, c, d, e, f, g} = number; assign dp = 1; parameter parameter parameter parameter parameter parameter parameter parameter parameter parameter number1 number2 number3 number4 number5 number6 number7 number8 number9 number0 = = = = = = = = = = 7'b1001111; 7'b0010010; 7'b0000110; 7'b1001100; 7'b0100100; 7'b0100000; 7'b0001111; 7'b0000000; 7'b0000100; 7'b0000001;
Exercise 8: Counter
always @ (posedge clk) if (rst == 0) counter <= 0; else if (counter == 16000000) counter <= 0; else counter <= counter+1;
always @ (posedge clk) if (rst == 0) state <= 4'b0000; else state <= 4'b0001;
COMP306L UST-ECE engradc (c)2009
Exercise 8: Counter
always @ (posedge clk) if (rst == 0) number <= number0; else if (counter == 16000000) case (number) number0: number <= number1; number1: number <= number2; number2: number <= number3; number3: number <= number4; number4: number <= number5; number5: number <= number6; number6: number <= number7; number7: number <= number8; number8: number <= number9; number9: number <= number0; default: number <= number0; COMP306L UST-ECE endcase engradc (c)2009 endmodule
Activity 8
1.
2.
Create Verilog HDL code that will count from 00 to 99, use 1 second delay. Create Verilog HDL code that will count from 00 to 99 every time SW4 is triggered (refer to exercise5)