基于CPLD的任意整數(shù)半整數(shù)分頻器設(shè)計
0 引言
在數(shù)字系統(tǒng)設(shè)計中,根據(jù)不同的設(shè)計需要,經(jīng)常會遇到偶數(shù)分頻、奇數(shù)分頻、半整數(shù)分頻等,有的還要求等占空比。在基于cpld(復(fù)雜可編程邏輯器件)的數(shù)字系統(tǒng)設(shè)計中,很容易實現(xiàn)由計數(shù)器或其級聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇數(shù)分頻,但對等占空比的奇數(shù)分頻及半整數(shù)分頻的實現(xiàn)較為困難。
本文利用vhdl(甚高速集成電路硬件描述語言),通過quartus ⅱ 4.2開發(fā)平臺,設(shè)計了一種能夠?qū)崿F(xiàn)等占空比的整數(shù)和近似等占空比的半整數(shù)分頻器,這種設(shè)計方法原理簡單,而且只需很少的cpld邏輯宏單元。
1 設(shè)計原理
系統(tǒng)設(shè)計框圖如圖1所示。
根據(jù)不同分頻系數(shù)設(shè)置適當?shù)挠嫈?shù)器周期,每個計數(shù)值對應(yīng)輸入時鐘信號fi的一個周期,讓q0只在fi的上升沿及適當?shù)挠嫈?shù)范圍內(nèi)產(chǎn)生高電平,最后將q0和q1進行邏輯或操作,進而得到所需的分頻信號fo。q1的作用是在奇數(shù)分頻中補足下降沿處半個時鐘周期,使其等占空比,以及在半整數(shù)分頻中,在時鐘下降沿處產(chǎn)生分頻信號的上升沿,以實現(xiàn)半整數(shù)分頻。
下面介紹如何確定計數(shù)器周期以及q0、q1產(chǎn)生高電平輸出時各自的計數(shù)范圍。為敘述方便,現(xiàn)規(guī)定如下標記:分頻系數(shù)為divide(max
downto 0),其中max是分頻數(shù)對應(yīng)二進制數(shù)的最高位,對于半整數(shù)分頻,最低位即第0位為小數(shù)位;q 0_count和q1_count分別為q0和q1產(chǎn)生高電平的計數(shù)范圍,并記divide(max
downto 1)為a,divide(max downto 2)為b,divide(max downto 0)-1為c。
1.1 偶數(shù)及奇數(shù)分頻
計數(shù)器周期都為0到c。等占空比的偶數(shù)分頻很容易實現(xiàn),在此不加敘述。對奇數(shù)分頻,只需當q0_count<a時q0輸出高電平,當q1_count=a-1時q1輸出一個周期的高電平,其他情況下q0和q1都為低電平,然后把q0和q1邏輯或,所得的輸出fo就是所需的基數(shù)分頻時鐘信號。
1.2 半整數(shù)分頻
計數(shù)器周期為0到c。如果整數(shù)部分是偶數(shù),只需當q0_count<b時q0輸出高電平,當b≤q1_count<a+b時q1輸出高電平,其他情況下,q0和q1都為低電平;如果整數(shù)部分是奇數(shù),只需當q0_coun≤b時q0輸出高電平,當b≤q1_count≤a+b輸出高電平,其他情況下q0和q1都為低電平,然后把q0和q1邏輯或所得輸出f0即所需的半整數(shù)分頻時鐘信號。
2 仿真結(jié)果及硬件電路測試
根據(jù)上面的原理,利用quartus ⅱ 4.2開發(fā)的7分頻和7.5分頻的仿真波形如圖2和圖3所示。
只要稍微修改程序,即可實現(xiàn)任意整數(shù)和半整數(shù)分頻。
本設(shè)計在altera公司的epm7064slc84-10構(gòu)成的一個數(shù)據(jù)采集系統(tǒng)測試通過,性能良好。
3 結(jié)束語
本分頻方法原理簡單,具有一定的通用性,而且使用的cpld邏輯宏單元數(shù)較少,如在epm7064中,上面仿真的兩個分頻器均只用7個邏輯宏單元。
評論