Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Lab2(
- input CLOCK_50, //50Mhz input clock
- input [3:0] KEY, //4 Pushbuttons
- output reg [7:0] HEX0, //7-seg display 0
- output reg [7:0] HEX1, //7-seg display 0
- output reg [17:0] LEDR
- );
- reg [7:0] count; //8-bit counter
- reg [7:0] push2; //count when pushbutton 3/KEY[2] is pushed
- reg flag; //set once pushbutton3/KEY[2] is pushed
- reg [7:0] elapsed; //elapsed time between pushbutton3/KEY[2] and pushbutton2/KEY[1]
- wire [7:0] h0,h1;
- seg7 s1(elapsed[7:4], h1);
- seg7 s0(elapsed[3:0], h0);
- always @ (posedge CLOCK_50)
- begin
- if(count==16'b1100001101010000) //divider by 50 000 -->resulting count ever 1ms
- count <= 4'b0000; //reset to 0
- else count <= count+1; //increment counter
- if(KEY[2]) begin
- push2 <= count;
- flag = 1;
- end
- if(flag && KEY[1]) begin
- elapsed <= count-push2;
- HEX1=h1;
- HEX0=h0;
- end
- if(~flag && KEY[1]) begin //KEY[1] enabled first
- LEDR[0] = 1; //error LED
- HEX0 = 8'b0; //output 0
- HEX1 = 8'b0; //output 0
- end
- end
- endmodule
- module seg7(input [3:0] DEC, //4-bit decimal value to output on LED
- output reg [7:0] LED //8-bit Value of value of LED
- );
- always @(DEC)
- case(DEC)
- 0: LED = 7'b1111110;
- 1: LED = 7'b0110000;
- 2: LED = 7'b1101101;
- 3: LED = 7'b1111001;
- 4: LED = 7'b0110011;
- 5: LED = 7'b1011011;
- 6: LED = 7'b1011111;
- 7: LED = 7'b1110000;
- 8: LED = 7'b1111111;
- 9: LED = 7'b1111011;
- 10: LED = 7'b1110111;
- 11: LED = 7'b0011111;
- 12: LED = 7'b1001110;
- 13: LED = 7'b0111101;
- 14: LED = 7'b1001111;
- 15: LED = 7'b1000111;
- default: LED = 7'bx;
- endcase
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment