基於FPGA的數字分頻器設計
發布時間:2017-09-13 來源:趙厲,張誌國,唐芳福 責任編輯:susan
【導讀】隨著FPGA技術的發展,基於FPGA技ji術shu的de硬ying件jian設she計ji數shu字zi分fen頻pin器qi已yi成cheng為wei數shu字zi係xi統tong設she計ji的de研yan究jiu重zhong點dian。數shu字zi分fen頻pin器qi通tong常chang分fen為wei整zheng數shu分fen頻pin器qi和he小xiao數shu分fen頻pin器qi。在zai有you些xie需xu求qiu下xia還hai要yao分fen數shu分fen頻pin器qi。本ben設she計ji是shi基ji於yuFPGA的數字分頻器,通過VHDL硬件設計語言,在Modelsim6.5上對設計的分頻器進行仿真驗證。
1.概述
隨著集成電路技術的快速發展,半導體存儲、微處理器等相關技術的發展得到了飛速發展。FPGA以其可靠性強、運行快、並行性等特點在電子設計中具有廣泛的意義。作為一種可編程邏輯器件,FPGA在短短二十年中從電子設計的外圍器件逐漸演變為數字係統的核心。伴隨著半導體工藝技術的進步,FPGA器件的設計技術取得了飛躍發展及突破。
fenpinqitongchangyonglaiduimougegeidingdeshizhongpinlvjinxingfenpin,yidedaosuoxudeshizhongpinlv。zaishejishuzidianluzhonghuijingchangyongdaoduozhongbutongpinlvdeshizhongmaichong,yibancaiyongyouyigegudingde晶振時鍾頻率來產生所需要的不同頻率的時鍾脈衝的方法進行時鍾分頻。
在FPGA的設計中分頻器是使用頻率較高的基本設計,在很多的設計中也會經常用到芯片集成的鎖相環資源,如用Xilinx的DLL以及Altera的PLL來進行時鍾的分頻、倍頻與相移。在一些對時鍾精度不高的場合,會經常利用硬件描述語言來對時鍾源進行時鍾分頻。
分頻器是一種基本電路,一般包括數字分頻器、monifenpinqiheshepinfenpinqi。genjubutongshejidexuyao,youshihaihuiyaoqiudengzhankongbi。shuzifenpinqicaiyongdeshijishuqideyuanli,quanzhiweifenpinxishu。monifenpinqijiushiyigepinlvfenpeiqi,yongdaizudaitongshixian(比如音箱上高中低喇叭的分配器)。射頻分頻器也是濾波器原理,用帶內外衰減,阻抗匹配實現。
隨著FPGA技術的發展,基於FPGA技(ji)術(shu)的(de)硬(ying)件(jian)設(she)計(ji)數(shu)字(zi)分(fen)頻(pin)器(qi)已(yi)成(cheng)為(wei)數(shu)字(zi)係(xi)統(tong)設(she)計(ji)的(de)研(yan)究(jiu)重(zhong)點(dian)。數(shu)字(zi)分(fen)頻(pin)器(qi)通(tong)常(chang)分(fen)為(wei)整(zheng)數(shu)分(fen)頻(pin)器(qi)和(he)小(xiao)數(shu)分(fen)頻(pin)器(qi)。在(zai)有(you)些(xie)需(xu)求(qiu)下(xia)還(hai)要(yao)分(fen)數(shu)分(fen)頻(pin)器(qi)。
本設計是基於FPGA的數字分頻器,通過VHDL硬件設計語言,在Modelsim6.5上對設計的分頻器進行仿真驗證。
2.數字分頻器的設計
數(shu)字(zi)分(fen)頻(pin)器(qi)的(de)設(she)計(ji)與(yu)模(mo)擬(ni)分(fen)頻(pin)器(qi)的(de)設(she)計(ji)不(bu)同(tong),數(shu)字(zi)分(fen)頻(pin)器(qi)可(ke)以(yi)使(shi)用(yong)觸(chu)發(fa)器(qi)設(she)計(ji)電(dian)路(lu)對(dui)時(shi)鍾(zhong)脈(mai)衝(chong)進(jin)行(xing)時(shi)鍾(zhong)分(fen)頻(pin)。分(fen)頻(pin)器(qi)的(de)一(yi)個(ge)重(zhong)要(yao)指(zhi)標(biao)就(jiu)是(shi)占(zhan)空(kong)比(bi),即(ji)在(zai)一(yi)個(ge)周(zhou)期(qi)中(zhong)高(gao)電(dian)平(ping)脈(mai)衝(chong)在(zai)整(zheng)個(ge)周(zhou)期(qi)中(zhong)所(suo)占(zhan)的(de)比(bi)例(li)。占(zhan)空(kong)比(bi)一(yi)般(ban)會(hui)有(you)1:1,1: N等不同比例的要求,由於占空比的比例要求不一樣,所以采用的時鍾分頻原理也各不同。在FPGA的數字分頻器設計中,主要分為整數分頻器、小數分頻器和分數分頻器。現在分別介紹整數分頻器的設計、小數分頻器的設計和分數分頻器的設計。
2.1 整數分頻器的設計
整(zheng)數(shu)分(fen)頻(pin)器(qi)是(shi)指(zhi)基(ji)準(zhun)時(shi)鍾(zhong)與(yu)所(suo)需(xu)的(de)時(shi)鍾(zhong)頻(pin)率(lv)成(cheng)整(zheng)數(shu)倍(bei)關(guan)係(xi)。整(zheng)數(shu)分(fen)頻(pin)器(qi)的(de)分(fen)頻(pin)種(zhong)類(lei)一(yi)般(ban)包(bao)括(kuo)奇(qi)數(shu)分(fen)頻(pin)和(he)偶(ou)數(shu)分(fen)頻(pin)。雖(sui)然(ran)時(shi)鍾(zhong)分(fen)頻(pin)原(yuan)理(li)會(hui)根(gen)據(ju)時(shi)鍾(zhong)分(fen)頻(pin)的(de)要(yao)求(qiu)不(bu)同(tong)而(er)不(bu)同(tong),但(dan)均(jun)可(ke)采(cai)用(yong)標(biao)準(zhun)計(ji)數(shu)器(qi)原(yuan)理(li)來(lai)實(shi)現(xian)。
偶數分頻器的設計原理較為簡單,主要是利用計數器來實現。假設要進行n(n為偶數)分頻,設定一個在分頻時鍾上升沿觸發的計數器循環計數來實現。當計數器值為0-((n/2)-1)時,輸出時鍾信號進行翻轉,同時給計數器一個複位信號,使下一個時鍾上升沿到來時,計數器重新開始計數,由此不斷循環。
奇數分頻器的設計原理與偶數分頻的設計方法很相似,都是通過計數器來實現的。如果要進行n(n為奇數)分頻,直接設計n進製的計數器即可。還有一種方法就是選擇兩個計數器cnt1和cnt2,分別在時鍾上升沿和下降沿觸發計數。cnt1和cnt2均當計數器值為0-((n/2)-1)shi,shuchushizhongxinhaojinxingfanzhuan,tongshigeijishuqiyigeshizhongfuweixinhao,shixiayigeshizhongshangshengyandaolaishi,jishuqizhongxinkaishijishu,rucijinxingxunhuanxiaqu。youcikezhi,jishuqicnt1和cnt2的實現方法一樣,隻是翻轉邊沿不一樣,最終輸出的時鍾為clkout = clk1 + clk2。
2.2 小數分頻器的設計
小(xiao)數(shu)分(fen)頻(pin)的(de)基(ji)本(ben)原(yuan)理(li)是(shi)采(cai)用(yong)脈(mai)衝(chong)吞(tun)吐(tu)計(ji)數(shu)器(qi)和(he)鎖(suo)相(xiang)環(huan)技(ji)術(shu)先(xian)設(she)計(ji)兩(liang)個(ge)不(bu)同(tong)分(fen)頻(pin)比(bi)的(de)整(zheng)數(shu)分(fen)頻(pin)器(qi),然(ran)後(hou)通(tong)過(guo)控(kong)製(zhi)單(dan)位(wei)時(shi)間(jian)內(nei)兩(liang)種(zhong)分(fen)頻(pin)比(bi)出(chu)現(xian)的(de)不(bu)同(tong)次(ci)數(shu)來(lai)獲(huo)得(de)所(suo)需(xu)的(de)小(xiao)數(shu)分(fen)頻(pin)值(zhi),分(fen)頻(pin)係(xi)數(shu)為(wei)N-0.5(N為整數)時,可控製扣除脈衝的時間,以使輸出成為一個穩定的脈衝頻率,而不是一次N分頻,一次N-1分頻。
小xiao數shu分fen頻pin器qi有you很hen多duo種zhong設she計ji方fang案an,但dan其qi基ji本ben原yuan理li是shi一yi樣yang的de,都dou是shi在zai若ruo幹gan個ge分fen頻pin周zhou期qi中zhong采cai取qu某mou種zhong方fang法fa使shi幾ji個ge周zhou期qi多duo計ji一yi個ge數shu或huo少shao計ji一yi個ge數shu,從cong而er在zai整zheng個ge計ji數shu周zhou期qi的de總zong體ti平ping均jun意yi義yi上shang獲huo得de一yi個ge小xiao數shu分fen頻pin比bi。還hai有you一yi種zhong分fen頻pin方fang法fa就jiu是shi,利li用yong狀zhuang態tai機ji和he計ji數shu器qi。假jia設she時shi鍾zhong信xin號hao的de頻pin率lv為wei1khz,需要產生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 分數分頻器的設計
fenshufenpinqideshujushurubufenyuxiaoshufenpinjibenxiangtong,chabiejinzaiyushumaguanxianshibufenxianshisanweifenpinxishu。youyufenshuzaiyidingqingkuangxiakeyizhuanhuaweixiaoshujinxingjisuan,suoyifenshufenpindeshejisixiangyuxiaoshufenpindehenxiangsi。jiashejinxingfenpin,zongfenpinshuyoufenmum決定,規律是進行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可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光


