奇数分频器
在Verilog中,偶数频分频较容易实现,只需要设定一个计数器,计数器值为分频数的一半,当计数记满后,输出信号取非,计数值清零。但这样并不能奇数分频,因为奇数分频数的一半包含0.5,无法只通过上升沿得到。但是设置两个不同的偶数分频时钟,通过上升沿和下降沿一同触发的模式,可以实现奇数分频。
在下面的代码中,需要修改div1,div2两个参数的值以实现分频,div1为分频数除以二的商,div2为余数。
module divfreq(clk, clk_o, rst_n, clk_pose, clk_nege, cntpose, coutnege);
input clk;
input rst_n;
output clk_o;
output clk_pose;
output clk_nege;
output [2:0] cntpose;
output [2:0] cntnege;
reg clk_pose;
reg clk_nege;
reg [2:0] cntpose;
reg [2:0] cntnege;
parameter div1 = 2, div2 = 4; //div1 = 5/2, div2 = 5-1
assign clk_o = clk_pose | clk_nege;
always@(posedge clk or negedge rst_n)
begin
if(rst_n)
clk_pose =

最低0.47元/天 解锁文章
903

被折叠的 条评论
为什么被折叠?



