2020年1月4日 星期六

Clock divide by 4

Clock divide by 4




module clock_divide_4 (input clk,input rst_n,output reg o_clk);

 reg [1:0] cnt;

always@(posedge clk or negedge rst_n) begin
   if (!rst_n)
     cnt <= 0;
   else if (cnt == 3) // 0 ~ 3
     cnt <= 0;
   else
     cnt <= cnt + 1;
 end

always@(posedge clk or negedge rst_n) begin
   if (!rst_n)
     o_clk <= 0;
   else if (cnt < 2) // 0 ~ 1
     o_clk = 0;
   else              // 2 ~ 3
     o_clk = 1;   
 end

endmodule


`timescale 1ns/10ps
module Test_bench;
 reg clk;
 reg rst_n;
 wire o_clk;

clock_divide_4 UUT (
   .clk(clk),
   .rst_n(rst_n),
   .o_clk(o_clk)
 );

 initial begin
   clk   = 1'b1;
   rst_n = 1'b1;
 end

 // 50MHz clk
 always #10 clk = ~clk;
endmodule

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...