n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现
IC君的第47篇原創(chuàng)文章
上一篇文章時鐘分頻系列——偶數(shù)分頻/奇數(shù)分頻/分?jǐn)?shù)分頻,IC君介紹了各種分頻器的設(shè)計原理,其中分?jǐn)?shù)分頻器較為復(fù)雜,這一篇文章IC君再跟大家聊聊分?jǐn)?shù)分頻的具體設(shè)計實現(xiàn)。
一個分?jǐn)?shù)分頻器由兩部分組成:以ZN和ZN+1為分頻系數(shù)的多路分頻器,還有一個ACC計數(shù)器。
1
ZN/ZN+1分頻器設(shè)計
ZN/ZN+1分頻器的設(shè)計包含了偶分頻器和奇分頻器,首先定義ZN/ZN+1分頻器的模塊名字MDIV。下圖是MDIV的引腳信號的名字,及功能定義:
廢話不多說,Verilog硬件描述語言實現(xiàn)MDIV的代碼如下:
MDIV調(diào)用方法如下:
具體的仿真波形如下所示:
2
ACC計數(shù)器設(shè)計
ACC計數(shù)器就是控制做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分頻為例子設(shè)計ACC計數(shù)器模塊名ACCT,下圖為模塊ACCT的引腳:
8.7分頻的原理是用3次8分頻和7次9分頻的對應(yīng)的時鐘總時間來等效原時鐘87個周期的總時間。
下圖選用前面所述的第3種情況,把3次8分頻平均地插入到7次9分頻中,這個過程也叫混頻。
采用第3種情況設(shè)計ACCT的Verilog代碼代碼如下所示:
代碼的92-102行就是第3種情況混頻,修改98行的數(shù)字可以得到不同的混頻。
3
8.7分頻器設(shè)計
完成了模塊MDIV 和ACCT之后,就可以用組成一個8.7分頻器,這個分頻器的模塊名是FENDIV,框圖如下所示:
Verilog代碼如下:
最終生成的clkout波形如下所示:
有興趣的可以試試用MDIV 和ACCT設(shè)計一個10.3分頻器?
IC君寫一篇原創(chuàng)文章非常不容易,麻煩大家轉(zhuǎn)發(fā)、分享、點“在看”哦,謝謝!
往期精彩回顧
時鐘分頻系列——偶數(shù)分頻/奇數(shù)分頻/分?jǐn)?shù)分頻
中秋快樂!這款芯片有搞頭嗎?
Verdi使用技巧——搜索查找
總結(jié)
以上是生活随笔為你收集整理的n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java rsaprivatekey_用
- 下一篇: 百度热力图颜色说明_大数据下的龙港、鳌江