FPGA基础设计(二):任意分频器(奇数,偶数,小数) |
您所在的位置:网站首页 › pll原理分频 › FPGA基础设计(二):任意分频器(奇数,偶数,小数) |
分频器
前言分频原理偶数分频 6分频 代码 tb 仿真波形
奇数分频 仿真波形 代码 tb
小数分频 说明
半整数分频:N+0.5 仿真波形 代码 tb
小数分频 5.3分频 代码 tb 仿真波形
最后
前言
FPGA开发板上一般只有一个晶振,即一种时钟频率。数字系统设计中,时间的计算都要以时钟作为基本单元,对基准时钟进行不同倍数的分频而得到各模块所需时钟频率,可通过Verilog代码实现;倍频可通过锁相环【PLL】实现。 分频原理把输入信号的频率变成成倍的低于输入频率的输出信号;每经历几个单位时钟周期就输出一个时钟周期。 例:clk_in为12MHz; clk_out为2MHz.则分频系数为6。那么如何实现6分频: 把输入信号作为计数脉冲(边沿触发一次,计数一次), 当计数6次,为输出信号的一个周期,此时输入信号经历了6个周期,置0,重新开始计数,循环往复。(前提:输入信号占空比50%) 而输出信号的不同占空比的实现无非是输出信号经历的单位周期输出高低电平不同; 偶数分频 6分频占空比50%:6分频电路:一个always块实现一个模3计数器。 另一个always块实现当计数到2(从0计数到2,计数,3次)输出信号翻转, 占空比50%。 占空比不是50%:先实现模6计数器,然后可任意设计当计数到某个值输出高电平,再计数到另一个值输出低电平。 代码 //不带标志位占空比50% module divider_six(clk,reset,clk_out,cnt); input clk; input reset; output reg clk_out; output reg [1:0] cnt;//用于计数的寄存器; always块内,reg型变量 always@(posedge clk) if(reset == 1'b0) cnt ms>us>ns>ps) initial begin clk = 0; reset = 1; #10 reset = 0; #110 reset = 1; #100000 $stop; end div_half_1 u1( .rst_n(reset), .clk(clk), .clk_div(clk_out), .clk1(clk1), .clk2(clk2), .cnt(cnt) ); endmodule 小数分频 5.3分频53/10=5.3 设5分频a次;6分频次 a+b=10; 5a+6b=53 ->a=7 ; b=3 如何插入排序:6556556555 Verilog实现: 脉冲删除:53个单位周期删除43个 算法:分母作为累加值,在clk的上升沿cnt加上分母10,判断是否大于分子,若小于(脉冲删除标志为1,删除)继续累加,若大于(脉冲删除标志为0,不删除)在下一周期减去分子。结果刚好是6556556555(由来:分母-余数=7,作为累加值,大于分母,输出N分频,然后减去分母,继续累加7,;小于分母,输出N+1分频) 代码 //脉冲删除小数分频 module div_5_3_1(clk,rst_n,clk_out,cnt); input clk; input rst_n; output clk_out; parameter fra = 6'd53;//分子 parameter den = 6'd10;//分母 output reg[5:0] cnt; reg flag_del;//脉冲删除标志位 always@(posedge clk or negedge rst_n) begin if(!rst_n)begin cnt fra) begin cnt ms>us>ns>ps) initial begin clk = 0; reset = 0; #10 reset = 0; #110 reset = 1; #100000 $stop; end div_5_3_1 u1 ( .clk(clk), .rst_n(reset), .clk_out(clk_out), .cnt(cnt) ); endmodule 仿真波形不足之处:未实现参数化编程; 参考: https://blog.csdn.net/weixin_43698385/article/details/122773225 https://blog.csdn.net/Reborn_Lee/article/details/97553078 https://blog.csdn.net/wangyanchao151/article/details/81204126?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%B0%8F%E6%95%B0%E5%88%86%E9%A2%91&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-81204126.nonecase&spm=1018.2226.3001.4187 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |