The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
Code
By Guest on 14th May 2019 04:16:55 PM | Syntax: VERILOG | Views: 1



New paste | Download | Show/Hide line no. | Copy text to clipboard
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date:    10:37:33 04/30/2019
  7. // Design Name:
  8. // Module Name:    counter
  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 counter(
  22.         input wire clk_1hz,
  23.         input wire clk_3hz,
  24.         input wire pauseButton,
  25.         input wire resetButton,
  26.         output reg [3:0] s0,
  27.         output reg [3:0] s1,
  28.         output reg [3:0] m0,
  29.         output reg [3:0] m1
  30.         );
  31.  
  32.     //reg [3:0] s0;
  33.     //reg [3:0] s1;
  34.     //reg [3:0] m0;
  35.     //reg [3:0] m1;
  36.    
  37.     reg play;
  38.     reg adjust_seconds;
  39.     reg adjust_minutes;
  40.     reg adjust_none;
  41.    
  42.     initial begin
  43.         s0 = 0;
  44.         s1 = 0;
  45.         m0 = 0;
  46.         m1 = 0;
  47.         play = 1;
  48.         adjust_seconds = 0;
  49.         adjust_minutes = 0;
  50.         adjust_none = 1;
  51.     end
  52.    
  53.      always @(posedge clk_1hz)
  54.      begin
  55.      
  56.         if (resetButton) begin
  57.             s0 = 0;
  58.             s1 = 0;
  59.             m0 = 0;
  60.             m1 = 0;
  61.         end
  62.         else begin
  63.         if (pauseButton) play = !play;
  64.      
  65.         if (play && adjust_none) begin
  66.         if (m1 == 5 && m0 == 9 && s1 == 5 && s0 == 9) begin
  67.             s0 = 0; s1 = 0; m0 = 0; m1 = 0;
  68.         end
  69.         else if (m0 == 9 && s1 == 5 && s0 == 9) begin
  70.             m1 = m1 + 1; m0 = 0; s1 = 0; s0 = 0;
  71.         end
  72.         else if (s1 == 5 && s0 == 9) begin
  73.             m0 = m0 + 1;  s1 = 0; s0 = 0;
  74.         end
  75.         else if (s0 == 9) begin
  76.             s1 = s1 + 1; s0 = 0;
  77.         end
  78.         else
  79.             begin
  80.             s0 = s0 + 1;
  81.             //$display(s0);
  82.         end
  83.         end
  84.        
  85.         if (adjustButton) begin
  86.             if (adjust_none) begin
  87.                 adjust_none = 0;
  88.                 adjust_minutes = 1;
  89.             end
  90.             else if (adjust_minutes) begin
  91.                 adjust_seconds = 1;
  92.                 adjust_minutes = 0;
  93.             end
  94.             else if (adjust_seconds) begin
  95.                 adjust_none = 1;
  96.                 adjust_seconds = 0;
  97.             end
  98.         end
  99.  
  100.         if (play && adjust_minutes) begin
  101.             if (m1 == 5 && m0 >= 5) begin
  102.                 m1 = 0; m0 = (m0 + 5) % 10 ;
  103.             end
  104.             else if (m0 >= 5) begin
  105.                 m1 = m1 + 1; m0 = (m0 + 5) % 10 ;
  106.                 end
  107.             else begin
  108.                     m0 = m0 + 5;
  109.             //$display(s0);
  110.                 end
  111.         end
  112.  
  113.         if (play && adjust_seconds) begin
  114.             if (s1 == 5 && s0 >= 5) begin
  115.                 s1 = 0; s0 = (s0 + 5) % 10 ;
  116.             end
  117.             else if (m0 >= 5) begin
  118.                 s1 = s1 + 1; s0 = (s0 + 5) % 10 ;
  119.                 end
  120.             else begin
  121.                     s0 = s0 + 5;
  122.             //$display(s0);
  123.             end
  124.         end
  125.      end
  126. endmodule



  • Recent Pastes
  • Fdsfd
    29 mins 32 secs ago
  • Sdfsdf s
    30 mins 28 secs ago
  • Surung
    46 mins 8 secs ago
  • Cozy
    48 mins 33 secs ago
  • V4a
    55 mins 40 secs ago