TheLegace

Lab7

Nov 7th, 2011
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Lab7(
  2.                 input CLOCK_50,
  3.                 input [3:0] KEY,
  4.                 output reg [6:0] HEX0,
  5.                 output reg [6:0] HEX1,
  6.                 output reg [6:0] HEX2
  7. );
  8.     wire [6:0] h0,h1,h2;
  9.     reg [32:0] count,tenths,seconds,secd,tenthsd,t0,t2;
  10.     reg flag, flagc;
  11.    
  12.     hex_7seg s0(tenths%10,h0);
  13.     hex_7seg s1(seconds%10,h1);
  14.     hex_7seg s2(seconds/10%10,h2);
  15.     /*initial begin
  16.         count <= 0;
  17.         HEX0 <= 7'b1000000;
  18.         HEX1 <= 7'b1000000;
  19.         HEX2 <= 7'b1000000;
  20.     end*/
  21.     initial begin
  22.         flag = 0;
  23.         flagc = 1;
  24.     end
  25.     always @(posedge CLOCK_50) begin
  26.         if(flag) begin
  27.             count <= count + 1;
  28.        
  29.             if(count >= 5000000) begin
  30.                 tenths <= tenths + 1;
  31.                 if(tenths >= 10) begin
  32.                     seconds <= seconds + 1;
  33.                     tenths <= 0;               
  34.                 end
  35.                 count <= 0;
  36.             end
  37.         end
  38.         if(!KEY[0]) begin
  39.             count <=0;
  40.             tenths <=0;
  41.             seconds <=0;
  42.             flag = 0;
  43.         end
  44.        
  45.         if(!KEY[1]) begin
  46.             flag = 1;
  47.             flagc = 1;
  48.         end
  49.         if(!KEY[2])
  50.             flag = 0;
  51.         if(!KEY[3]) begin
  52.             flagc = 0;
  53.         end
  54.            
  55.         if(flagc) begin
  56.             HEX0 <= h0;
  57.             HEX1 <= h1;
  58.             HEX2 <= h2;
  59.         end
  60.        
  61.     end
  62.  
  63.    
  64. endmodule
  65.  
  66.  
  67. module hex_7seg(hex_digit,seg);
  68. input [3:0] hex_digit;
  69. output [6:0] seg;
  70. reg [6:0] seg;
  71. // seg = {g,f,e,d,c,b,a};
  72. // 0 is on and 1 is off
  73.  
  74. always @ (hex_digit)
  75. case (hex_digit)
  76.         4'h0: seg = 7'b1000000;
  77.         4'h1: seg = 7'b1111001;     // ---a----
  78.         4'h2: seg = 7'b0100100;     // |      |
  79.         4'h3: seg = 7'b0110000;     // f      b
  80.         4'h4: seg = 7'b0011001;     // |      |
  81.         4'h5: seg = 7'b0010010;     // ---g----
  82.         4'h6: seg = 7'b0000010;     // |      |
  83.         4'h7: seg = 7'b1111000;     // e      c
  84.         4'h8: seg = 7'b0000000;     // |      |
  85.         4'h9: seg = 7'b0011000;     // ---d----
  86.         4'ha: seg = 7'b0001000;
  87.         4'hb: seg = 7'b0000011;
  88.         4'hc: seg = 7'b1000110;
  89.         4'hd: seg = 7'b0100001;
  90.         4'he: seg = 7'b0000110;
  91.         4'hf: seg = 7'b0001110;
  92. endcase
  93. endmodule
  94.            
  95.                
  96.                
  97.  
Advertisement
Add Comment
Please, Sign In to add comment