clock 偶数倍分频就是进行计数器计数,奇数倍分频如果不要求占空比的话也是进行计数,如果要求0.5的占空比的话,则需要进行两个计数器,
对于实现占空比为50%的N倍奇数分频,我们可以分解为两个通道:
- 上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,
然后经过(N-1)/2再次进行翻转得到一个占空比为非50%奇数N分频时钟; - 下降沿触发进行模N计数,到和上升沿触发输出时钟翻转选定值相同值时,
进行输出时钟时钟翻转,同样经过(N-1)/2时,
输出时钟再次翻转生成占空比非50%的奇数N分频时钟。
将这两个占空比非50%的N分频时钟或运算,得到占空比为50%的奇数n分频时钟。
具体例子:5分频等占空比,可以通过待分频时钟下降沿和上升沿触发0~4计数,
- 对于待分频时钟的上升沿,当计数器cnt1计数到1时,
clk_p翻转;当计数器计数到3(1 + (5 - 1) / 2 = 3)时,clk_p再次反转; - 对于待分频时钟的下降沿,当计数器cnt2计数到1时,
clk_n翻转;当计数器计数到3(1 + (5 - 1) / 2 = 3)时,clk_n再次反转; - 然后下降沿产生的5分频时钟和上升沿产生的5分频时钟进行或运算,
即可得到占空比为50%的N分频时钟。
这种方法可以实现任意的奇数分频。
倍频
两种思路:PLL(锁相环)或者利用门延时来搭建
分频与倍频的简单总结:
https://www.cnblogs.com/wangdaling/p/12376090.html
clock ip核的使用方法如下:
https://blog.csdn.net/weixin_45239657/article/details/127161465
文章写的很仔细
我的仿真如下
收获:
经过一个简单的IP核的使用和例化,首先了解 了ip核的设置,接着经过层层打包封装,把IP核设置出了输入输出接口,熟悉了打包的流程,最后进行模块的仿真,veo文件中是例化模板,也就是例化的头文件,可以直接编写仿真文件的时候使用复制粘贴使用。