TheLegace

3215_Lab5

Mar 11th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Lab5(
  2.                 input CLOCK_50,
  3.                 input [3:0] KEY,
  4.                 output reg [1:0] LEDR,
  5.                 inout [35:0] GPIO_0,
  6.                 output reg [6:0] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7
  7. );
  8.    
  9.      reg [31:0] time4k, time50, count;
  10.      reg flag;
  11.      wire [6:0] h0,h1,h2,h3,h4,h5,h6,h7;
  12.  
  13.     hex_7seg(count%10, h0);
  14.      hex_7seg(count/10%10, h1);
  15.      hex_7seg(count/100%10, h2);
  16.      hex_7seg(count/1000%10, h3);
  17.  
  18.     initial begin
  19.         time50 = 0;
  20.           time4k = 0;
  21.     end
  22.     always @(posedge CLOCK_50) begin
  23.         if(time50 >= 12500) begin
  24.             time4k = time4k + 1;
  25.             if(time4k >=4000) begin
  26.                     LEDR[0] = 1'b1;
  27.                     flag = 1;
  28.             end
  29.             else begin
  30.                 LEDR[0] = 1'b0;
  31.                 flag = 0;
  32.             end
  33.             time50 = 0;
  34.         end
  35.        
  36.         time50 = time50+1;
  37.         HEX0 <= h0;
  38.         HEX1 <= h1;
  39.         HEX2 <= h2;
  40.     end
  41.      
  42.      always@(negedge GPIO_0[0] && !flag) begin
  43.         count <= count + 1;
  44.      end
  45.      
  46. endmodule
  47.  
  48.  
  49. module hex_7seg(hex_digit,seg);
  50. input [3:0] hex_digit;
  51. output [6:0] seg;
  52. reg [6:0] seg;
  53. // seg = {g,f,e,d,c,b,a};
  54. // 0 is on and 1 is off
  55.  
  56. always @ (hex_digit)
  57. case (hex_digit)
  58.         4'h0: seg = 7'b1000000;
  59.         4'h1: seg = 7'b1111001;     // ---a----
  60.         4'h2: seg = 7'b0100100;     // |      |
  61.         4'h3: seg = 7'b0110000;     // f      b
  62.         4'h4: seg = 7'b0011001;     // |      |
  63.         4'h5: seg = 7'b0010010;     // ---g----
  64.         4'h6: seg = 7'b0000010;     // |      |
  65.         4'h7: seg = 7'b1111000;     // e      c
  66.         4'h8: seg = 7'b0000000;     // |      |
  67.         4'h9: seg = 7'b0011000;     // ---d----
  68.         4'ha: seg = 7'b0001000;
  69.         4'hb: seg = 7'b0000011;
  70.         4'hc: seg = 7'b1000110;
  71.         4'hd: seg = 7'b0100001;
  72.         4'he: seg = 7'b0000110;
  73.         4'hf: seg = 7'b0001110;
  74. endcase
  75. endmodule
Advertisement
Add Comment
Please, Sign In to add comment