【設(shè)計(jì)要求】
實(shí)現(xiàn)占空比為50%的奇數(shù)分頻器(示例以三分頻為例).
【原理分析】
在進(jìn)行數(shù)字電路設(shè)計(jì)的過(guò)程中,分頻器是設(shè)計(jì)中使用頻率較高的一種基本設(shè)計(jì)之一,雖然很多廠家都提供特定的電路模塊對(duì)時(shí)鐘進(jìn)行分頻、倍頻以及特定相移等,但是對(duì)于時(shí)鐘要求不高的邏輯,特別是在仿真過(guò)程中,使用硬件描述語(yǔ)言實(shí)現(xiàn)分頻還是較為方便快捷的,同時(shí)通過(guò)硬件描述語(yǔ)言實(shí)現(xiàn)的時(shí)鐘分頻器對(duì)于鞏固和加深對(duì)于硬件描述語(yǔ)言理解不無(wú)裨益.
常用的分頻器有偶數(shù)分頻和奇數(shù)分頻,因?yàn)榕紨?shù)分頻相較奇數(shù)分頻實(shí)現(xiàn)較為方便,此處路過(guò)不進(jìn)行贅述.而奇數(shù)分頻又有占空比(占空比是指在一個(gè)脈沖循環(huán)內(nèi),高電平持續(xù)時(shí)間在所在整個(gè)周期中占據(jù)的比例)為50%和不為50%的情況,為了加深理解,本文僅以占空比為50%的奇數(shù)分頻為例進(jìn)行說(shuō)明.
占空比為50%的奇數(shù)分頻器:當(dāng)需要進(jìn)行(2N+1)分頻時(shí),偶數(shù)分頻所使用的的方法已經(jīng)不適用了,這是因?yàn)?N+1的一半是N+0.5,單獨(dú)對(duì)一個(gè)時(shí)鐘計(jì)數(shù)是得不到0.5個(gè)時(shí)鐘,因?yàn)橐粋€(gè)計(jì)數(shù)器只能在時(shí)鐘的上升沿或者下降沿被采樣,所以一個(gè)周期之內(nèi)只能計(jì)數(shù)一次,無(wú)法得到0.5個(gè)計(jì)數(shù).但是需要注意的是在一個(gè)時(shí)鐘周期內(nèi)時(shí)鐘上升沿和下降沿之間剛好相差0.5個(gè)時(shí)鐘周期.
那么結(jié)合上升沿和下降沿相差的0.5個(gè)時(shí)鐘周期,就可以得到設(shè)計(jì)奇數(shù)分頻器的思路:采用兩個(gè)完全一樣的時(shí)鐘,其中一個(gè)計(jì)數(shù)器通過(guò)上升沿計(jì)數(shù),一個(gè)計(jì)數(shù)器通過(guò)下降沿計(jì)數(shù),然后利用兩個(gè)計(jì)數(shù)器的計(jì)數(shù)值結(jié)合偶數(shù)分頻的方法分別得到兩個(gè)中間時(shí)鐘(兩個(gè)中間時(shí)鐘的相差為原時(shí)鐘周期的奇數(shù)倍),因?yàn)橐@取的最終的奇數(shù)分頻后的時(shí)鐘的半周期為原時(shí)鐘周期半周期的奇數(shù)倍,所以通過(guò)兩個(gè)中間時(shí)鐘進(jìn)行邏輯操作,即可衍生出奇數(shù)倍個(gè)原時(shí)鐘的半周期,從而獲取到最終的時(shí)鐘.
即奇數(shù)分頻器的分頻出時(shí)鐘的特點(diǎn)是:時(shí)鐘周期的半周期為原時(shí)鐘周期半周期的奇數(shù)倍。
【源代碼】
方法一:時(shí)鐘相或產(chǎn)生
第一步:分別使用原時(shí)鐘上升沿和下降沿產(chǎn)生兩個(gè)兩位計(jì)數(shù)器(基于上升沿計(jì)數(shù)的cnt1和基于下降沿計(jì)數(shù)的cnt2),計(jì)數(shù)器在計(jì)數(shù)到2(即2N)時(shí),計(jì)數(shù)器歸零重新從零開(kāi)始計(jì)數(shù),依次循環(huán);
第二步:cnt1計(jì)數(shù)到0或者計(jì)數(shù)到1(即N)時(shí),clk1翻轉(zhuǎn),從而得到占空比為1:3的clk1;
第三步:cnt2計(jì)數(shù)到0或者計(jì)數(shù)到1(即N)時(shí),clk2翻轉(zhuǎn),從而得到占空比為1:3的clk2;
第四步:因?yàn)閏lk1和clk2相差半個(gè)原時(shí)鐘周期,兩個(gè)中間時(shí)鐘進(jìn)行或操作后,即可得到輸出時(shí)鐘clk_out;
方法二:時(shí)鐘相與產(chǎn)生
第一步:分別使用原時(shí)鐘上升沿和下降沿產(chǎn)生兩個(gè)兩位計(jì)數(shù)器(基于上升沿計(jì)數(shù)的cnt1和基于下降沿計(jì)數(shù)的cnt2),計(jì)數(shù)器在計(jì)數(shù)到2(即2N)時(shí),計(jì)數(shù)器歸零重新從零開(kāi)始計(jì)數(shù),依次循環(huán).
第二步:cnt1計(jì)數(shù)到0或者計(jì)數(shù)到2(即2N)時(shí),clk1翻轉(zhuǎn),從而得到占空比為2:3的clk1;
第三步:cnt2計(jì)數(shù)到0或者計(jì)數(shù)到2(即2N)時(shí),clk2翻轉(zhuǎn),從而得到占空比為2:3的clk2;
第四步:因?yàn)閏lk1和clk2相差半個(gè)原時(shí)鐘周期,兩個(gè)中間時(shí)鐘進(jìn)行與操作后,即可得到輸出時(shí)鐘clk_out;
方法三:時(shí)鐘異或產(chǎn)生
第一步:實(shí)現(xiàn)計(jì)數(shù)功能;
通過(guò)時(shí)鐘上升沿實(shí)現(xiàn)計(jì)數(shù)器功能,在計(jì)數(shù)到2(即2N)時(shí),計(jì)數(shù)器歸零重新從零開(kāi)始計(jì)數(shù),依次循環(huán);
第二步:上升沿產(chǎn)生中間時(shí)鐘clk1;
在計(jì)數(shù)器計(jì)數(shù)到2時(shí),clk1翻轉(zhuǎn),實(shí)現(xiàn)周期為6(2*(2N+1))的clk1;
第三步: 下降沿產(chǎn)生中間時(shí)鐘clk2
時(shí)鐘下降沿采樣計(jì)數(shù)器的計(jì)數(shù)值,在計(jì)數(shù)器計(jì)數(shù)到1(N)時(shí),clk2翻轉(zhuǎn),實(shí)現(xiàn)周期為6的clk2,此時(shí)clk1和clk2相位差為1(N)個(gè)原時(shí)鐘周期加半個(gè)愿時(shí)鐘周期;
第四步:clk1和clk2異或,即可得到輸出時(shí)鐘clk_out;
前兩種方法使用了兩個(gè)計(jì)數(shù)器,最后一種方法使用了一個(gè)計(jì)數(shù)器.因?yàn)榕紨?shù)分頻的半時(shí)鐘周期為原時(shí)鐘周期的偶數(shù)倍,奇數(shù)分頻時(shí)鐘周期的半周期為原來(lái)時(shí)鐘周期整數(shù)倍加半個(gè)時(shí)鐘周期,因此在進(jìn)行奇數(shù)分頻時(shí)一定要注意獲取到原時(shí)鐘周期的半個(gè)周期,這樣才能在進(jìn)行各種邏輯操作后獲取到期望的奇數(shù)分頻器.
【仿真結(jié)果】
【總結(jié)】
奇數(shù)分頻器實(shí)際上就是通過(guò)兩個(gè)分頻器輸出邏輯操作后獲得,關(guān)鍵點(diǎn)在于兩個(gè)分頻器需通過(guò)待分頻時(shí)鐘的上升沿和下降沿分別進(jìn)行設(shè)計(jì)。
-
分頻器
+關(guān)注
關(guān)注
43文章
447瀏覽量
49946 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94614 -
占空比
+關(guān)注
關(guān)注
0文章
109瀏覽量
29108 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17176
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論