Advertisement
evage

mod_clk

Nov 27th, 2022
1,597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2.  
  3. module clk_func #(
  4.     parameter width = 64,
  5.     parameter step = 32,
  6.     parameter up_down = 1,
  7.     parameter M = 28)
  8. (
  9.     input clk,
  10.     output reg [width-1:0] out
  11. );
  12.     initial begin
  13.         out <= 0;
  14.     end
  15.     always @(posedge clk) begin
  16.         if (up_down) begin
  17.             if (out >= M-1) begin
  18.                 out = 0;
  19.             end else begin
  20.                 out = out + step;
  21.             end
  22.         end else begin
  23.             if (out == 0) begin
  24.                 out = M-1;
  25.             end
  26.             else begin
  27.                 out = out - step;
  28.             end
  29.         end
  30.     end
  31. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement