Ta3ik

Lab4_DD

Jun 7th, 2020
408
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 20.04.2020 23:30:17
  7. // Design Name:
  8. // Module Name: Lab_4
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //////////////////////////////////////////////////////////////////////////////////
  21. module convertNumToDigit
  22. (
  23.     input logic [4:0] num,
  24.     output logic [7:0] digit
  25.     );
  26.   always_comb
  27.     begin
  28.         case(num)
  29.         //012345
  30.         4'b0000: begin digit=8'b11111100;end
  31.         //12
  32.         4'b0001: begin digit=8'b01100000;end
  33.         //01346
  34.         4'b0010: begin digit=8'b11011010;end
  35.         //01236
  36.         4'b0011: begin digit=8'b11110010;end
  37.         //1256
  38.         4'b0100: begin digit=8'b01100110;end
  39.         //02356
  40.         4'b0101: begin digit=8'b10110110;end
  41.         //023456
  42.         4'b0110: begin digit=8'b10111110;end
  43.         //012
  44.         4'b0111: begin digit=8'b11100000;end
  45.         //0123456
  46.         4'b1000: begin digit=8'b11111110;end
  47.     endcase
  48.     end
  49. endmodule
  50.  
  51. module Lab_4(
  52.     input reset,
  53.     input clk12,
  54.     input prm,
  55.     output logic [7:0] digit1,
  56.     output logic [7:0] digit10,
  57.     output logic [7:0] digit100,
  58.     output logic [7:0] digit1000
  59.     );
  60.     logic [4:0] decSec;
  61.     logic [4:0] unSec;
  62.     logic [4:0] decMin;
  63.     logic [4:0] unMin;
  64.    
  65.     assign decSec = 0;
  66.     assign unSec = 0;
  67.     assign decMin = 0;
  68.     assign unMin = 0;
  69.    
  70.     logic [5:0] countTick;
  71.    
  72.     assign  countTick = 0;
  73.    
  74.     always_comb
  75.         begin
  76.             digit1 = convertNumToDigit(unSec);
  77.             digit10 = convertNumToDigit(decSec);
  78.             digit100 = convertNumToDigit(unMin);
  79.             digit1000 = convertNumToDigit(decMin);
  80.         end
  81.    
  82.     always @(posedge clk12, posedge prm, posedge reset)
  83.         begin
  84.             if(reset)
  85.                 begin
  86.                    decSec = 0;
  87.                    unSec = 0;
  88.                    decMin = 0;
  89.                    unMin = 0;
  90.                    digit1 = convertNumToDigit(unSec);
  91.                    digit10 = convertNumToDigit(decSec);
  92.                    digit100 = convertNumToDigit(unMin);
  93.                    digit1000 = convertNumToDigit(decMin);
  94.                 end
  95.              else
  96.                 begin
  97.                     if (prm)
  98.                         begin
  99.                             if(clk12)
  100.                                 begin
  101.                                     countTick = countTick + 6'b000001;
  102.                                     if(countTick > 6'b010011)
  103.                                         begin
  104.                                             countTick = 0;
  105.                                             unSec = unSec + 5'b00001;
  106.                                            
  107.                                             if(unSec > 5b'01001) begin decSec = decSec + 5'b00001; unSec = 0; end;
  108.                                             if(decSec > 5b'00101) begin unMin = unMin + 5'b00001; decSec = 0; end;
  109.                                             if(unMin > 5b'01001) begin decMin = decMin + 5'b00001; unMin = 0; end;
  110.                                             if(decMin > 5b'00101) begin decMin = 0; end;
  111.                                            
  112.                                             digit1 = convertNumToDigit(unSec);
  113.                                             digit10 = convertNumToDigit(decSec);
  114.                                             digit100 = convertNumToDigit(unMin);
  115.                                             digit1000 = convertNumToDigit(decMin);
  116.                                         end
  117.                                 end
  118.                         end        
  119.                 end
  120.         end
  121. endmodule
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×