基於FPGA的數字分頻器設計
發布時間:2017-09-13 來源:趙厲,張誌國,唐芳福 責任編輯:susan
【導讀】隨著FPGA技術的發展,基於FPGAjishudeyingjianshejishuzifenpinqiyichengweishuzixitongshejideyanjiuzhongdian。shuzifenpinqitongchangfenweizhengshufenpinqihexiaoshufenpinqi。zaiyouxiexuqiuxiahaiyaofenshufenpinqi。benshejishijiyuFPGA的數字分頻器,通過VHDL硬件設計語言,在Modelsim6.5上對設計的分頻器進行仿真驗證。
1.概述
隨著集成電路技術的快速發展,半導體存儲、微處理器等相關技術的發展得到了飛速發展。FPGA以其可靠性強、運行快、並行性等特點在電子設計中具有廣泛的意義。作為一種可編程邏輯器件,FPGA在短短二十年中從電子設計的外圍器件逐漸演變為數字係統的核心。伴隨著半導體工藝技術的進步,FPGA器件的設計技術取得了飛躍發展及突破。
分fen頻pin器qi通tong常chang用yong來lai對dui某mou個ge給gei定ding的de時shi鍾zhong頻pin率lv進jin行xing分fen頻pin,以yi得de到dao所suo需xu的de時shi鍾zhong頻pin率lv。在zai設she計ji數shu字zi電dian路lu中zhong會hui經jing常chang用yong到dao多duo種zhong不bu同tong頻pin率lv的de時shi鍾zhong脈mai衝chong,一yi般ban采cai用yong由you一yi個ge固gu定ding的de晶振時鍾頻率來產生所需要的不同頻率的時鍾脈衝的方法進行時鍾分頻。
在FPGA的設計中分頻器是使用頻率較高的基本設計,在很多的設計中也會經常用到芯片集成的鎖相環資源,如用Xilinx的DLL以及Altera的PLL來進行時鍾的分頻、倍頻與相移。在一些對時鍾精度不高的場合,會經常利用硬件描述語言來對時鍾源進行時鍾分頻。
分頻器是一種基本電路,一般包括數字分頻器、模mo擬ni分fen頻pin器qi和he射she頻pin分fen頻pin器qi。根gen據ju不bu同tong設she計ji的de需xu要yao,有you時shi還hai會hui要yao求qiu等deng占zhan空kong比bi。數shu字zi分fen頻pin器qi采cai用yong的de是shi計ji數shu器qi的de原yuan理li,權quan值zhi為wei分fen頻pin係xi數shu。模mo擬ni分fen頻pin器qi就jiu是shi一yi個ge頻pin率lv分fen配pei器qi,用yong帶dai阻zu帶dai通tong實shi現xian(比如音箱上高中低喇叭的分配器)。射頻分頻器也是濾波器原理,用帶內外衰減,阻抗匹配實現。
隨著FPGA技術的發展,基於FPGAjishudeyingjianshejishuzifenpinqiyichengweishuzixitongshejideyanjiuzhongdian。shuzifenpinqitongchangfenweizhengshufenpinqihexiaoshufenpinqi。zaiyouxiexuqiuxiahaiyaofenshufenpinqi。
本設計是基於FPGA的數字分頻器,通過VHDL硬件設計語言,在Modelsim6.5上對設計的分頻器進行仿真驗證。
2.數字分頻器的設計
shuzifenpinqideshejiyumonifenpinqideshejibutong,shuzifenpinqikeyishiyongchufaqishejidianluduishizhongmaichongjinxingshizhongfenpin。fenpinqideyigezhongyaozhibiaojiushizhankongbi,jizaiyigezhouqizhonggaodianpingmaichongzaizhenggezhouqizhongsuozhandebili。zhankongbiyibanhuiyou1:1,1: N等不同比例的要求,由於占空比的比例要求不一樣,所以采用的時鍾分頻原理也各不同。在FPGA的數字分頻器設計中,主要分為整數分頻器、小數分頻器和分數分頻器。現在分別介紹整數分頻器的設計、小數分頻器的設計和分數分頻器的設計。
2.1 整數分頻器的設計
zhengshufenpinqishizhijizhunshizhongyusuoxudeshizhongpinlvchengzhengshubeiguanxi。zhengshufenpinqidefenpinzhongleiyibanbaokuoqishufenpinheoushufenpin。suiranshizhongfenpinyuanlihuigenjushizhongfenpindeyaoqiubutongerbutong,danjunkecaiyongbiaozhunjishuqiyuanlilaishixian。
偶數分頻器的設計原理較為簡單,主要是利用計數器來實現。假設要進行n(n為偶數)分頻,設定一個在分頻時鍾上升沿觸發的計數器循環計數來實現。當計數器值為0-((n/2)-1)時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,由此不斷循環。
奇數分頻器的設計原理與偶數分頻的設計方法很相似,都是通過計數器來實現的。如果要進行n(n為奇數)分頻,直接設計n進製的計數器即可。還有一種方法就是選擇兩個計數器cnt1和cnt2,分別在時鍾上升沿和下降沿觸發計數。cnt1和cnt2均當計數器值為0-((n/2)-1)時shi,輸shu出chu時shi鍾zhong信xin號hao進jin行xing翻fan轉zhuan,同tong時shi給gei計ji數shu器qi一yi個ge時shi鍾zhong複fu位wei信xin號hao,使shi下xia一yi個ge時shi鍾zhong上shang升sheng沿yan到dao來lai時shi,計ji數shu器qi重zhong新xin開kai始shi計ji數shu,如ru此ci進jin行xing循xun環huan下xia去qu。由you此ci可ke知zhi,計ji數shu器qicnt1和cnt2的實現方法一樣,隻是翻轉邊沿不一樣,最終輸出的時鍾為clkout = clk1 + clk2。
2.2 小數分頻器的設計
xiaoshufenpindejibenyuanlishicaiyongmaichongtuntujishuqihesuoxianghuanjishuxianshejilianggebutongfenpinbidezhengshufenpinqi,ranhoutongguokongzhidanweishijianneiliangzhongfenpinbichuxiandebutongcishulaihuodesuoxudexiaoshufenpinzhi,fenpinxishuweiN-0.5(N為整數)時,可控製扣除脈衝的時間,以使輸出成為一個穩定的脈衝頻率,而不是一次N分頻,一次N-1分頻。
xiaoshufenpinqiyouhenduozhongshejifangan,danqijibenyuanlishiyiyangde,doushizairuogangefenpinzhouqizhongcaiqumouzhongfangfashijigezhouqiduojiyigeshuhuoshaojiyigeshu,congerzaizhenggejishuzhouqidezongtipingjunyiyishanghuodeyigexiaoshufenpinbi。haiyouyizhongfenpinfangfajiushi,liyongzhuangtaijihejishuqi。jiasheshizhongxinhaodepinlvwei1khz,需要產生750khz的分頻信號,其分頻係數為6/8。基本設計思想是,在8個時鍾信號中保留6個ge時shi鍾zhong信xin號hao。這zhe種zhong方fang法fa是shi需xu要yao預yu先xian設she定ding狀zhuang態tai機ji的de個ge數shu,主zhu要yao用yong於yu已yi經jing知zhi道dao需xu要yao使shi用yong哪na一yi個ge小xiao數shu分fen頻pin係xi數shu的de情qing況kuang下xia。如ru果guo分fen頻pin係xi數shu發fa生sheng變bian化hua,則ze需xu要yao在zai程cheng序xu內nei部bu進jin行xing修xiu改gai。
雙模前置小數分頻的設計方法是,假設要進行m,n時鍾分頻(其中m、n都是整數,且n<10),因為隻有一位小數,所以總共要進行10次分頻。總的規律是:進行n次m+1分頻,10-n次m分頻。例如,設計一個分頻係數為3.6的分頻器,將小數部分的6按倍累加,假設累加的值為a,如果a<10,則進行3分頻,如果a<10下一次則加上6。此後,如果a>=10,則進行4分頻,4分頻過後再將累加值減去4後與10比較以決定下一次分頻是4分頻還是3分頻,這樣分頻器設計成6次4分頻,4次3分頻,總的分頻值為(6×4+4×3)/(6+4) = 3.6。
2.3 分數分頻器的設計
分(fen)數(shu)分(fen)頻(pin)器(qi)的(de)數(shu)據(ju)輸(shu)入(ru)部(bu)分(fen)與(yu)小(xiao)數(shu)分(fen)頻(pin)基(ji)本(ben)相(xiang)同(tong),差(cha)別(bie)僅(jin)在(zai)於(yu)數(shu)碼(ma)管(guan)顯(xian)示(shi)部(bu)分(fen)顯(xian)示(shi)三(san)位(wei)分(fen)頻(pin)係(xi)數(shu)。由(you)於(yu)分(fen)數(shu)在(zai)一(yi)定(ding)情(qing)況(kuang)下(xia)可(ke)以(yi)轉(zhuan)化(hua)為(wei)小(xiao)數(shu)進(jin)行(xing)計(ji)算(suan),所(suo)以(yi)分(fen)數(shu)分(fen)頻(pin)的(de)設(she)計(ji)思(si)想(xiang)與(yu)小(xiao)數(shu)分(fen)頻(pin)的(de)很(hen)相(xiang)似(si)。假(jia)設(she)進(jin)行(xing)分(fen)頻(pin),總(zong)分(fen)頻(pin)數(shu)由(you)分(fen)母(mu)m決定,規律是進行n次j+1分頻和m-n次j分頻。兩種分頻交替進行的計算方法和小數分頻的很類似。累加分結果是大於等於分母還是小於分母決定是進行j分頻還是j+1分頻。
3.數字分頻器的FPGA設計及仿真
利用FPGA對8192kHz的基準時鍾進行時鍾分頻,分別得到1024kHz、512kHz、256kHz和1kHz的時鍾頻率,需要分別進行8分頻、16分頻、32分頻和8192分頻。在利用FPGA進行設計整數分頻器時,通過VHDL硬件描述語言利用計數器方式來實現。
3.1 1024kHz時鍾分頻
根據所需的時鍾頻率為1024kHz的時鍾,而晶振時鍾的頻率為8192kHz,晶振時鍾與所需的時鍾頻率恰巧是8倍的整數倍關係,因此需要對8192kHz的晶振時鍾進行8分頻來獲得所需要的時鍾。根據整數倍分頻器的設計方法原理,通過ISE9.1邏輯設計工具,利用VHDL硬件描述語言來進行8分頻的分頻器設計。然而8又是偶數,所以需要設計的是偶數分頻器。對設計的內容通過Modelsim6.5仿真軟件進行仿真驗證,結果如圖3-1所示。

圖3-1 1024kHz時鍾分頻
由圖3-1得知,當8192kHz的晶振時鍾輸入8個時鍾,係統輸出1個時鍾,即一個1024kHz頻率的時鍾。程序設計中采用計數器來實現,當計數器值為0-((n/2)-1)=-3時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,不斷循環下去。
3.2 512kHz時鍾分頻
根據所需的時鍾頻率為512kHz的時鍾,而晶振時鍾的頻率為8192kHz,晶振時鍾與所需的時鍾頻率恰巧是16倍的整數倍關係,因此需要對8192kHz的晶振時鍾進行16分頻來獲得所需要的時鍾。根據整數倍分頻器的設計方法原理,通過ISE9.1邏輯設計工具,利用VHDL硬件描述語言來進行16分頻的分頻器設計。然而16又是偶數,所以需要設計的是偶數分頻器。對設計的內容通過Modelsim6.5仿真軟件進行仿真驗證,結果如圖3-2所示。

圖3-2 512kHz時鍾分頻
由圖3-2得知,當8192kHz的晶振時鍾輸入16個時鍾,係統輸出1個時鍾,即一個512kHz頻率的時鍾。程序設計中采用計數器來實現,當計數器值為0-((n/2)-1)=-7時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,不斷循環下去。
3.3 256kHz時鍾分頻
根據所需的時鍾頻率為256kHz的時鍾,而晶振時鍾的頻率為8192kHz,晶振時鍾與所需的時鍾頻率恰巧是32倍的整數倍關係,因此需要對8192kHz的晶振時鍾進行32分頻來獲得所需要的時鍾。根據整數倍分頻器的設計方法原理,通過ISE9.1邏輯設計工具,利用VHDL硬件描述語言來進行32分頻的分頻器設計。然而32又是偶數,所以需要設計的是偶數分頻器。對設計的內容通過Modelsim6.5仿真軟件進行仿真驗證,結果如圖3-3所示。

圖3-3 256kHz時鍾分頻
由圖3-3得知,當8192kHz的晶振時鍾輸入32個時鍾,係統輸出1個時鍾,即一個256kHz頻率的時鍾。程序設計中采用計數器來實現,當計數器值為0-((n/2)-1)=-15時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,不斷循環下去。
3.4 1kHz時鍾分頻
根據所需的時鍾頻率為1kHz的時鍾,而晶振時鍾的頻率為8192kHz,晶振時鍾與所需的時鍾頻率恰巧是8192倍的整數倍關係,因此需要對8192kHz的晶振時鍾進行8192分頻來獲得所需要的時鍾。根據整數倍分頻器的設計方法原理,通過ISE9.1邏輯設計工具,利用VHDL硬件描述語言來進行8192分頻的分頻器設計。然而8192又是偶數,所以需要設計的是偶數分頻器。對設計的內容通過Modelsim6.5仿真軟件進行仿真驗證,結果如圖3-4所示。

圖3-4 1kHz時鍾分頻
由圖3-4得知,當8192kHz的晶振時鍾輸入8個時鍾,係統輸出1個時鍾,即一個1kHz頻率的時鍾。程序設計中采用計數器來實現,當計數器值為0-((n/2)-1)=-4095時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,不斷循環下去。
4.結束語
本文給出了基於FPGA的數字分頻器設計方法。采用計數器設計方法實現了對8192kHz的基準時鍾進行分頻,分別得到1024kHz、512kHz、256kHz和1kHz的時鍾頻率。其他的偶數倍分頻也可采用類似的方法分頻的到需要的頻率時鍾。通過在Modelsim6.5仿真工具驗證了設計的正確性。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索





