新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于FPGA的多種分頻設計與實現

        基于FPGA的多種分頻設計與實現

        ——
        作者:陳英梅,席亮亮 時間:2007-07-16 來源:電子元器件應用 收藏

        引言

          分頻器是設計中使用頻率非常高的基本單元之一。盡管目前在大部分設計中還廣泛使用集成鎖相環(如altera的PLL,Xilinx的DLL)來進行時鐘的分頻、倍頻以及相移設計,但是,對于時鐘要求不太嚴格的設計,通過自主設計進行時鐘分頻的實現方法仍然非常流行。首先這種方法可以節省鎖相環資源,再者,這種方式只消耗不多的邏輯單元就可以達到對時鐘操作的目的。

        1 整數分頻器的設計

        1.1 偶數倍分頻

          偶數分頻器的實現非常簡單,通過計數器計數就完全可以實現。如進行N倍偶數分頻,就可以通過由待分頻的時鐘觸發計數器計數,當計數器從0計數到N/2-1時,輸出時鐘進行翻轉,并給計數器一個復位信號,以使下一個時鐘從零開始計數。以此循環,就可以實現任意的偶數分頻。圖1所示是占空比為1:1的36分頻的仿真波形圖。
         

        1.2 奇數倍分頻

          奇數倍分頻有兩種實現方法,其中之一完全可以通過計數器來實現,如進行三分頻,就可通過待分頻時鐘上升沿觸發計數器來進行模三計數,當計數器計數到鄰近值時進行兩次翻轉。比如可以在計數器計數到1時,輸出時鐘進行翻轉,計數到2時再次進行翻轉。這樣,就在計數值鄰近的1和2進行了兩次翻轉。如此便實現了三分頻,其占空比為1/3或2/3。

          占空比1/15的15分頻設計的主要代碼如下:
         


          如果要實現占空比為50%的三分頻時鐘,則可通過待分頻時鐘下降沿觸發計數,并以和上升沿同樣的方法計數進行三分頻,然后對下降沿產生的三分頻時鐘和上升沿產生的時鐘進行相或運算。即可得到占空比為50%的三分頻時鐘這是奇數分頻的第三種方法。這種方法可以實現任意的奇數分頻。如將其歸類為一般的方法:對于實現占空比為50%的N倍奇數分頻,首先要進行上升沿觸發以進行模N計數,計數選定到某一個值再進行輸出時鐘翻轉,然后過(N-1)/2再次進行翻轉,就可得到一個占空比非50%的奇數n分頻時鐘。再同時進行下降沿觸發的模N計數,當其到達與上升沿觸發輸出時鐘翻轉選定值相同時,再進行輸出時鐘翻轉,同樣,經過(N-1)/2時,輸出時鐘再次翻轉以生成占空比非50%的奇數n分頻時鐘。將這兩個占空比非50%的n分頻時鐘相或運算,就可以得到占空比為50%的奇數n分頻時鐘。圖2所示是占空比為1:1的3分頻電路原理圖。圖3為其仿真波形。


         


         
        2 半整數分頻器設計

          進行n+0.5分頻一般需要對輸入時鐘先進行操作。其基本設計思想是:首先進行模n的計數,在計數到n-1時,將輸出時鐘賦為'1',而當回到計數0時,又賦為0,這樣,當計數值為n-1時,輸出時鐘才為1,因此,只要保持計數值n-1為半個輸入時鐘周期,即可實現n+0.5分頻時鐘。因此,保持n-1為半個時鐘周期即是該設計的關鍵。從中可以發現,因為計數器是通過時鐘上升沿計數,故可在計數為n-1時對計數觸發時鐘進行翻轉,那么,時鐘的下降沿就變成了上升沿。即在計數值為n-1期間的時鐘下降沿變成了上升沿,也就是說,計數值n-1只保持了半個時鐘周期。由于時鐘翻轉下降沿變成上升沿,因此,計數值變為0。所以,每產生一個n+0.5分頻時鐘的周期,觸發時鐘都要翻轉一次。圖4給出了通用的半整數分頻器的電路原理圖。

          圖5所示是一個分頻系數為2.5的分頻器電路,該電路是用來設計半整數分頻器的。它由模3計數器、異或門和D觸發器組成。圖6是其仿真波形圖。


         
        3 任意整數帶小數分頻

          任意整數帶小數分頻的基本原理是采用脈沖吞吐計數器和鎖相環技術先設計兩個不同分頻比的整數分頻器,然后通過控制單位時間內兩種分頻比出現的不同次數來獲得所需要的小數分頻值。若設計一個分頻系數為10.1的分頻器,即可以將分頻器設計成9次10分頻和1次11分頻,這樣,總的分頻值為:

        F=(9

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
        分頻器相關文章:分頻器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苏尼特左旗| 东乡县| 平谷区| 福泉市| 措美县| 寿宁县| 明水县| 静宁县| 唐河县| 星座| 磐石市| 从江县| 荃湾区| 大名县| 清河县| 沧源| 广饶县| 政和县| 铜鼓县| 池州市| 大冶市| 泰顺县| 卫辉市| 峡江县| 永清县| 瓮安县| 阜宁县| 锡林郭勒盟| 香港| 庄浪县| 嘉鱼县| 新昌县| 申扎县| 江津市| 武清区| 许昌县| 九寨沟县| 克山县| 岳阳市| 黄梅县| 祁阳县|