大家在參加IC相關(guān)工作筆試或者面試的時候,經(jīng)常會碰到類似的題目:
怎樣用D觸發(fā)器、與或非門組成二分頻電路?
用D觸發(fā)器實現(xiàn)3倍分頻的Verilog描述?
任意切換1-8分頻,且無論奇分頻還是偶分頻,占空比均為50%,寫出verilog代碼;
時鐘分頻電路(分頻器)在IC設計中經(jīng)常會用到,其目的是產(chǎn)生不同頻率的時鐘,滿足系統(tǒng)的需要。 比如一個系統(tǒng),常規(guī)操作都是在1GHz時鐘下完成,突然要執(zhí)行一個操作涉及到模擬電路,所需時間是us量級的,顯然用1GHz(周期是1ns)的時鐘進行操作是不合適的。
時鐘分頻器電路可以分為數(shù)字分頻器、模擬分頻器和射頻分頻器等。 數(shù)字分頻器通過一個計數(shù)器來進行分頻,權(quán)值為分頻系數(shù)。 模擬分頻器就是一個頻率分配器,用帶阻帶通實現(xiàn)。 射頻分頻器也是濾波器原理,用帶內(nèi)外衰減,阻抗匹配實現(xiàn)。
這篇文章IC君就跟大家聊一聊數(shù)字分頻器。 對于精度不高的場合,數(shù)字分頻器分出的時鐘就可以滿足要求。 常用到數(shù)字分頻器有2,4,6,8,…… 偶數(shù)分頻,也會有3,5,7,9…… 奇數(shù)分頻,甚至還會有8.7,11.2,6.432,…… 分數(shù)分頻。
偶數(shù)分頻是最容易掌握的,奇數(shù)分頻就有些技巧,如果你不知道奇數(shù)分頻技巧,就可能會被一些公司的面試或者考試題目給難住,錯失一些機會。 而像8.7,11.2,6.432,…… 這種分數(shù)分頻器就更需要技巧。 掌握這些通用的技巧就能很快的實現(xiàn)各種分頻器,滿足系統(tǒng)的需求。 下面IC君就跟大家分別聊一下偶數(shù)分頻、奇數(shù)分頻、分數(shù)(小數(shù))分頻器。
1偶數(shù)分頻
偶數(shù)分頻器的實現(xiàn)簡單,用計數(shù)器在上升沿或者下降沿計數(shù),當計數(shù)器的值等于分頻系數(shù)的一半或等于分頻系數(shù)時,信號翻轉(zhuǎn)。 偶數(shù)分頻器分頻原理如下圖所示:
上圖的的分頻系數(shù)是4,就是4分頻。 電路原理是用一個上升沿計數(shù)的計數(shù)器,每次計數(shù)到2時輸出信號clkout翻轉(zhuǎn)一次,每次計數(shù)到4時clkout再翻轉(zhuǎn)一次,一直周期重復下去。 其他的偶數(shù)分頻器原理也是一樣。 從波形中可以看出cnt
從00->01->10->11->00......一直循環(huán)記數(shù),如果你夠仔細,就可以看出cnt的最高位其實也是一個4分頻的時鐘。
如果偶數(shù)分頻系數(shù)是2的冪,就可以用2分頻器級聯(lián)得到; 例如4分頻就是兩個2分頻級聯(lián),下圖就是用兩個2分頻器級聯(lián)得到4分頻器。
2奇數(shù)分頻
奇數(shù)分頻器跟偶數(shù)分頻器一樣,當計數(shù)器的值等于分頻系數(shù)(加1或者減1)的一半或等于分頻系數(shù)時,時鐘信號翻轉(zhuǎn)。 奇數(shù)分頻器分頻原理如下圖:
上圖的分頻系數(shù)是3,用一個計數(shù)器在上升沿計數(shù),每次計數(shù)到1翻轉(zhuǎn)一次,每次計數(shù)到3再翻轉(zhuǎn)一次,然后周期重復得到信號clkp1,它的周期就是clk的3倍,但是它的占空比不是50%(占空比就是clk為高的時間占整個時鐘周期的百分比)。 奇數(shù)分頻想通過計數(shù)器直接分頻出占空比是50%的時鐘是不可能的,必須要通過中間的臨時波形,做一些邏輯“與”“或”的動作才能得到占空比50%的分頻時鐘。
用一個下降沿的D觸發(fā)器鎖存clkp1得到信號clkn1,把信號clkp1和信號clkn1做邏輯“與”就得到了占空比50%的3分頻時鐘信號clkout。
另外一種產(chǎn)生3分頻時鐘的方法:假設計數(shù)器在計數(shù)到1的下降沿分頻后的時鐘信號clkn2翻轉(zhuǎn)一次,計數(shù)到2的下降沿clkn2再翻轉(zhuǎn)一次,
再利用下圖電路調(diào)整占空比到50%:
用一個正常的D觸發(fā)器鎖存clkn2得到信號clkp2, clkn2“或”上clkp2就可以得到占空比50%的3分頻時鐘信號clkout。
其他的奇數(shù)分頻器調(diào)整占空比的原理也是相同的。
3分數(shù)分頻
分數(shù)分頻也叫小數(shù)分頻器,比如8.7分頻。 因為沒辦法用計數(shù)器表示0.7這種數(shù)字,所以就用一個等效的概念來進行8.7分頻,原時鐘87個周期的總時間等于分頻后的時鐘10個周期的總時間;
先做3次8分頻得到時鐘周期數(shù)是24,再做7次9(8加1)分頻得到時鐘周期數(shù)63,總共就87個時鐘周期; 在這87個時鐘周期里面分頻時鐘跳變20次總共10個周期。 分數(shù)分頻器的原理可以用下圖來概括。
用整數(shù)部分zn(=8)作為一個分頻系數(shù),zn加1(=9)作為另外一個分頻系數(shù)組成一個小數(shù)分頻器。
根據(jù)上面的原理可以列出下面的二元一次方程組
zn*N+(zn+1)*M=87 ......(1)
N+M=10 ...(2)
可以解出N和M的值分別是3和7。
如果分頻系數(shù)6.432,那么有下面的二元一次方程組,zn是6
zn*N+(zn+1)*M=6432 ......(1)
N+M=1000 ......(2)
解出N和M的值分別是568和432,這個值就很大了,計數(shù)器的位寬也變大了,也就是說小數(shù)部分位數(shù)越多,需要的計數(shù)器的位寬越大,消耗的硬件資源越多。 不過568,432,1000這幾個數(shù)有公約數(shù),可以除以最大公約數(shù),把計數(shù)數(shù)值減小。
如下圖所示:一個小數(shù)分頻器就有兩部分組成:ZN和ZN+1為分頻系數(shù)的多路分頻器,還有一個ACC計數(shù)器。
分頻器在輸入信號enout=0的時候是ZN分頻;
分頻器在輸入信號enout=1的時候是ZN+1分頻;
ACC計數(shù)器的作用對ZN分頻和ZN+1分頻的次數(shù)計數(shù),對于一位小數(shù)計數(shù)總次數(shù)為10(兩位小數(shù)為100...),輸出信號enout決定下次是ZN分頻還是ZN+1分頻。
由于篇幅關(guān)系,小數(shù)分頻器的具體電路設計就留到下一篇文章講。
-
分頻器
+關(guān)注
關(guān)注
43文章
447瀏覽量
49911 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110100 -
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131480 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61155 -
分頻電路
+關(guān)注
關(guān)注
7文章
45瀏覽量
35947
發(fā)布評論請先 登錄
相關(guān)推薦
評論