基于Verilog的分数分频电路设计

上一篇文章时钟分频系列——偶数分频/奇数分频/分数分频,ic君介绍了各种分频器的设计原理,其中分数分频器较为复杂,这一篇文章ic君再跟大家聊聊分数分频的具体设计实现。
一个分数分频器由两部分组成:以zn和zn+1为分频系数的多路分频器,还有一个acc计数器。
1zn/zn+1分频器设计
zn/zn+1分频器的设计包含了偶分频器和奇分频器,首先定义zn/zn+1分频器的模块名字mdiv。 下图是mdiv的引脚信号的名字,及功能定义:
废话不多说,verilog硬件描述语言实现mdiv的代码如下:
mdiv调用方法如下:
具体的仿真波形如下所示:
2acc计数器设计
acc计数器就是控制做n次zn分频和m次zn+1次分频,具体控制过程可以分为以下几种情况:
第1种情况 :先做n次zn分频,再做m次zn+1次分频;
第2种情况: 先做m次zn+1次分频,再做n次zn分频;
第3种情况 :把n次zn分频平均插入到m次zn+1分频中;
第4种情况 :把m次zn+1次分频平均插入到n次zn分频中。
组合n次zn分频和m次zn+1次分频的情况很多。 第1、2种情况前后时钟频率不太均匀,因此相位抖动比较大;
第3、4种情况前后时钟频率均匀性稍好,因此相位抖动会减小。
下面以8.7分频为例子设计acc计数器模块名acct,下图为模块acct的引脚:
8.7分频的原理是用3次8分频和7次9分频的对应的时钟总时间来等效原时钟87个周期的总时间。
下图选用前面所述的第3种情况,把3次8分频平均地插入到7次9分频中,这个过程也叫混频。
采用第3种情况设计acct的verilog代码代码如下所示:
代码的92-102行就是第3种情况混频,修改98行的数字可以得到不同的混频。
38.7分频器设计
完成了模块mdiv 和acct之后,就可以用组成一个8.7分频器,这个分频器的模块名是fendiv,框图如下所示:
verilog代码如下:
最终生成的clkout波形如下所示:
有兴趣的可以试试用mdiv 和acct设计一个10.3分频器?

深度学习与机器学习的区别是什么
人工智能认识存在有哪一些误区
车规芯片的AEC-Q100测试标准
蓝宝石光纤与石英光纤中横向位置对于FBG反射率的影响
功率MOSFET及其发展浅说
基于Verilog的分数分频电路设计
SuperGLUE正式上线:NLP模型们,来迎接挑战吧!
基于RTX51实时操作系统的用户专用键盘软件设计
Linux关于Makefile的用法介绍
京东数科推出AI虚拟数字人 可应用于招募、客服等多场景
防止老年人摔倒的MEMS传感装置
叉车防撞系统解决方案应用场景解析
名词解释:无线电频率,无线电台(站),无线电干扰,无线电管制
电源测试软件|电源模块的检测NSAT-8000
李彦宏现身贵州数博会称:无人车将在7月量产
Mouser Electronics荣获Murata Americas总裁奖
如何解决传感器的零点漂移问题
基于TMS34020的图形显示处理模块的设计
万众瞩目的OPPO R11开售在即,价格2999起,明天十点不见不散
Razer炼狱蝰蛇标准版评测 各方面特性都很均衡