Advertisement
Krystian102

Untitled

Apr 9th, 2020
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module zad1(
  2.     input [0:2] KEY,
  3.     output [9:0] LEDR);
  4.    
  5.     counter_modulo_k ex1(KEY[0], KEY[1], KEY[2], LEDR[4:0], LEDR[9]);
  6.    
  7. endmodule
  8.  
  9. module counter_modulo_k
  10.     #(parameter k=20)
  11.     (input clk, aclr, enable,
  12.     output reg [N-1:0] Q,
  13.     output reg rollover);
  14.    
  15.     localparam N=clogb2(k-1);
  16.     function integer clogb2(input [31:0] v);
  17.     for(clogb2=0;v>0;clogb2=clogb2+1)
  18.         v=v>>1;
  19.     endfunction
  20.    
  21.     always@(posedge clk, negedge aclr)
  22.         if(!aclr)
  23.             Q<=0;
  24.         else
  25.             if(enable==1)
  26.                 begin
  27.                     if(Q==(k-1))
  28.                         begin
  29.                             rollover<=1;
  30.                             Q<=0;
  31.                         end
  32.                     else
  33.                         begin
  34.                             rollover<=0;
  35.                             Q<=Q+1;
  36.                         end
  37.                 end
  38.    
  39. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement