标签:
半整数分频器:计数器是通过上升沿触发,故在计数为N-1时对计数触发进行翻转,时钟的下降沿变为上升沿,因此计数值为0,所以每产生n+0.5分频时钟的周期,触发时钟都要翻转一次。如图所示,采用异或门和2分频模块设计脉冲扣除电路,脉冲扣除是输入频率和2分频输出相异或的结果。
module fenpin(clk,rst_n,clk_out); input clk; input rst_n; output clk_out; reg clk_out2; wire clk_out1; reg [1:0] cnt; reg FB_CLK; always@(posedge clk_out2,negedge rst_n) begin if (!rst_n) FB_CLK<=0; else FB_CLK<=~FB_CLK; end always@(posedge clk_out1,negedge rst_n) begin if (!rst_n) begin cnt<=0; clk_out2<=0; end else if (cnt==2) begin cnt<=0; clk_out2<=1; end else begin cnt<=cnt+1‘b1; clk_out2<=0; end end xor xor1(clk_out1,clk,FB_CLK); wire CLK_OUT_R; assign CLK_OUT_R=(cnt==1) ? 1‘b0:1‘b1; assign clk_out=clk_out2 | CLK_OUT_R; endmodule
标签:
原文地址:http://www.cnblogs.com/Fun-with-FPGA/p/4703252.html