基于FPGA的數(shù)字分頻器設(shè)計(jì)
發(fā)布時(shí)間:2017-09-13 來源:趙厲,張志國,唐芳福 責(zé)任編輯:susan
【導(dǎo)讀】隨著FPGA技術(shù)的發(fā)展,基于FPGA技術(shù)的硬件設(shè)計(jì)數(shù)字分頻器已成為數(shù)字系統(tǒng)設(shè)計(jì)的研究重點(diǎn)。數(shù)字分頻器通常分為整數(shù)分頻器和小數(shù)分頻器。在有些需求下還要分?jǐn)?shù)分頻器。本設(shè)計(jì)是基于FPGA的數(shù)字分頻器,通過VHDL硬件設(shè)計(jì)語言,在Modelsim6.5上對(duì)設(shè)計(jì)的分頻器進(jìn)行仿真驗(yàn)證。
1.概述
隨著集成電路技術(shù)的快速發(fā)展,半導(dǎo)體存儲(chǔ)、微處理器等相關(guān)技術(shù)的發(fā)展得到了飛速發(fā)展。FPGA以其可靠性強(qiáng)、運(yùn)行快、并行性等特點(diǎn)在電子設(shè)計(jì)中具有廣泛的意義。作為一種可編程邏輯器件,F(xiàn)PGA在短短二十年中從電子設(shè)計(jì)的外圍器件逐漸演變?yōu)閿?shù)字系統(tǒng)的核心。伴隨著半導(dǎo)體工藝技術(shù)的進(jìn)步,F(xiàn)PGA器件的設(shè)計(jì)技術(shù)取得了飛躍發(fā)展及突破。
分頻器通常用來對(duì)某個(gè)給定的時(shí)鐘頻率進(jìn)行分頻,以得到所需的時(shí)鐘頻率。在設(shè)計(jì)數(shù)字電路中會(huì)經(jīng)常用到多種不同頻率的時(shí)鐘脈沖,一般采用由一個(gè)固定的晶振時(shí)鐘頻率來產(chǎn)生所需要的不同頻率的時(shí)鐘脈沖的方法進(jìn)行時(shí)鐘分頻。
在FPGA的設(shè)計(jì)中分頻器是使用頻率較高的基本設(shè)計(jì),在很多的設(shè)計(jì)中也會(huì)經(jīng)常用到芯片集成的鎖相環(huán)資源,如用Xilinx的DLL以及Altera的PLL來進(jìn)行時(shí)鐘的分頻、倍頻與相移。在一些對(duì)時(shí)鐘精度不高的場合,會(huì)經(jīng)常利用硬件描述語言來對(duì)時(shí)鐘源進(jìn)行時(shí)鐘分頻。
分頻器是一種基本電路,一般包括數(shù)字分頻器、模擬分頻器和射頻分頻器。根據(jù)不同設(shè)計(jì)的需要,有時(shí)還會(huì)要求等占空比。數(shù)字分頻器采用的是計(jì)數(shù)器的原理,權(quán)值為分頻系數(shù)。模擬分頻器就是一個(gè)頻率分配器,用帶阻帶通實(shí)現(xiàn)(比如音箱上高中低喇叭的分配器)。射頻分頻器也是濾波器原理,用帶內(nèi)外衰減,阻抗匹配實(shí)現(xiàn)。
隨著FPGA技術(shù)的發(fā)展,基于FPGA技術(shù)的硬件設(shè)計(jì)數(shù)字分頻器已成為數(shù)字系統(tǒng)設(shè)計(jì)的研究重點(diǎn)。數(shù)字分頻器通常分為整數(shù)分頻器和小數(shù)分頻器。在有些需求下還要分?jǐn)?shù)分頻器。
本設(shè)計(jì)是基于FPGA的數(shù)字分頻器,通過VHDL硬件設(shè)計(jì)語言,在Modelsim6.5上對(duì)設(shè)計(jì)的分頻器進(jìn)行仿真驗(yàn)證。
2.數(shù)字分頻器的設(shè)計(jì)
數(shù)字分頻器的設(shè)計(jì)與模擬分頻器的設(shè)計(jì)不同,數(shù)字分頻器可以使用觸發(fā)器設(shè)計(jì)電路對(duì)時(shí)鐘脈沖進(jìn)行時(shí)鐘分頻。分頻器的一個(gè)重要指標(biāo)就是占空比,即在一個(gè)周期中高電平脈沖在整個(gè)周期中所占的比例。占空比一般會(huì)有1:1,1: N等不同比例的要求,由于占空比的比例要求不一樣,所以采用的時(shí)鐘分頻原理也各不同。在FPGA的數(shù)字分頻器設(shè)計(jì)中,主要分為整數(shù)分頻器、小數(shù)分頻器和分?jǐn)?shù)分頻器?,F(xiàn)在分別介紹整數(shù)分頻器的設(shè)計(jì)、小數(shù)分頻器的設(shè)計(jì)和分?jǐn)?shù)分頻器的設(shè)計(jì)。
2.1 整數(shù)分頻器的設(shè)計(jì)
整數(shù)分頻器是指基準(zhǔn)時(shí)鐘與所需的時(shí)鐘頻率成整數(shù)倍關(guān)系。整數(shù)分頻器的分頻種類一般包括奇數(shù)分頻和偶數(shù)分頻。雖然時(shí)鐘分頻原理會(huì)根據(jù)時(shí)鐘分頻的要求不同而不同,但均可采用標(biāo)準(zhǔn)計(jì)數(shù)器原理來實(shí)現(xiàn)。
偶數(shù)分頻器的設(shè)計(jì)原理較為簡單,主要是利用計(jì)數(shù)器來實(shí)現(xiàn)。假設(shè)要進(jìn)行n(n為偶數(shù))分頻,設(shè)定一個(gè)在分頻時(shí)鐘上升沿觸發(fā)的計(jì)數(shù)器循環(huán)計(jì)數(shù)來實(shí)現(xiàn)。當(dāng)計(jì)數(shù)器值為0-((n/2)-1)時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),由此不斷循環(huán)。
奇數(shù)分頻器的設(shè)計(jì)原理與偶數(shù)分頻的設(shè)計(jì)方法很相似,都是通過計(jì)數(shù)器來實(shí)現(xiàn)的。如果要進(jìn)行n(n為奇數(shù))分頻,直接設(shè)計(jì)n進(jìn)制的計(jì)數(shù)器即可。還有一種方法就是選擇兩個(gè)計(jì)數(shù)器cnt1和cnt2,分別在時(shí)鐘上升沿和下降沿觸發(fā)計(jì)數(shù)。cnt1和cnt2均當(dāng)計(jì)數(shù)器值為0-((n/2)-1)時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)時(shí)鐘復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),如此進(jìn)行循環(huán)下去。由此可知,計(jì)數(shù)器cnt1和cnt2的實(shí)現(xiàn)方法一樣,只是翻轉(zhuǎn)邊沿不一樣,最終輸出的時(shí)鐘為clkout = clk1 + clk2。
2.2 小數(shù)分頻器的設(shè)計(jì)
小數(shù)分頻的基本原理是采用脈沖吞吐計(jì)數(shù)器和鎖相環(huán)技術(shù)先設(shè)計(jì)兩個(gè)不同分頻比的整數(shù)分頻器,然后通過控制單位時(shí)間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù)來獲得所需的小數(shù)分頻值,分頻系數(shù)為N-0.5(N為整數(shù))時(shí),可控制扣除脈沖的時(shí)間,以使輸出成為一個(gè)穩(wěn)定的脈沖頻率,而不是一次N分頻,一次N-1分頻。
小數(shù)分頻器有很多種設(shè)計(jì)方案,但其基本原理是一樣的,都是在若干個(gè)分頻周期中采取某種方法使幾個(gè)周期多計(jì)一個(gè)數(shù)或少計(jì)一個(gè)數(shù),從而在整個(gè)計(jì)數(shù)周期的總體平均意義上獲得一個(gè)小數(shù)分頻比。還有一種分頻方法就是,利用狀態(tài)機(jī)和計(jì)數(shù)器。假設(shè)時(shí)鐘信號(hào)的頻率為1khz,需要產(chǎn)生750khz的分頻信號(hào),其分頻系數(shù)為6/8。基本設(shè)計(jì)思想是,在8個(gè)時(shí)鐘信號(hào)中保留6個(gè)時(shí)鐘信號(hào)。這種方法是需要預(yù)先設(shè)定狀態(tài)機(jī)的個(gè)數(shù),主要用于已經(jīng)知道需要使用哪一個(gè)小數(shù)分頻系數(shù)的情況下。如果分頻系數(shù)發(fā)生變化,則需要在程序內(nèi)部進(jìn)行修改。
雙模前置小數(shù)分頻的設(shè)計(jì)方法是,假設(shè)要進(jìn)行m,n時(shí)鐘分頻(其中m、n都是整數(shù),且n<10),因?yàn)橹挥幸晃恍?shù),所以總共要進(jìn)行10次分頻??偟囊?guī)律是:進(jìn)行n次m+1分頻,10-n次m分頻。例如,設(shè)計(jì)一個(gè)分頻系數(shù)為3.6的分頻器,將小數(shù)部分的6按倍累加,假設(shè)累加的值為a,如果a<10,則進(jìn)行3分頻,如果a<10下一次則加上6。此后,如果a>=10,則進(jìn)行4分頻,4分頻過后再將累加值減去4后與10比較以決定下一次分頻是4分頻還是3分頻,這樣分頻器設(shè)計(jì)成6次4分頻,4次3分頻,總的分頻值為(6×4+4×3)/(6+4) = 3.6。
2.3 分?jǐn)?shù)分頻器的設(shè)計(jì)
分?jǐn)?shù)分頻器的數(shù)據(jù)輸入部分與小數(shù)分頻基本相同,差別僅在于數(shù)碼管顯示部分顯示三位分頻系數(shù)。由于分?jǐn)?shù)在一定情況下可以轉(zhuǎn)化為小數(shù)進(jìn)行計(jì)算,所以分?jǐn)?shù)分頻的設(shè)計(jì)思想與小數(shù)分頻的很相似。假設(shè)進(jìn)行分頻,總分頻數(shù)由分母m決定,規(guī)律是進(jìn)行n次j+1分頻和m-n次j分頻。兩種分頻交替進(jìn)行的計(jì)算方法和小數(shù)分頻的很類似。累加分結(jié)果是大于等于分母還是小于分母決定是進(jìn)行j分頻還是j+1分頻。
3.數(shù)字分頻器的FPGA設(shè)計(jì)及仿真
利用FPGA對(duì)8192kHz的基準(zhǔn)時(shí)鐘進(jìn)行時(shí)鐘分頻,分別得到1024kHz、512kHz、256kHz和1kHz的時(shí)鐘頻率,需要分別進(jìn)行8分頻、16分頻、32分頻和8192分頻。在利用FPGA進(jìn)行設(shè)計(jì)整數(shù)分頻器時(shí),通過VHDL硬件描述語言利用計(jì)數(shù)器方式來實(shí)現(xiàn)。
3.1 1024kHz時(shí)鐘分頻
根據(jù)所需的時(shí)鐘頻率為1024kHz的時(shí)鐘,而晶振時(shí)鐘的頻率為8192kHz,晶振時(shí)鐘與所需的時(shí)鐘頻率恰巧是8倍的整數(shù)倍關(guān)系,因此需要對(duì)8192kHz的晶振時(shí)鐘進(jìn)行8分頻來獲得所需要的時(shí)鐘。根據(jù)整數(shù)倍分頻器的設(shè)計(jì)方法原理,通過ISE9.1邏輯設(shè)計(jì)工具,利用VHDL硬件描述語言來進(jìn)行8分頻的分頻器設(shè)計(jì)。然而8又是偶數(shù),所以需要設(shè)計(jì)的是偶數(shù)分頻器。對(duì)設(shè)計(jì)的內(nèi)容通過Modelsim6.5仿真軟件進(jìn)行仿真驗(yàn)證,結(jié)果如圖3-1所示。
圖3-1 1024kHz時(shí)鐘分頻
由圖3-1得知,當(dāng)8192kHz的晶振時(shí)鐘輸入8個(gè)時(shí)鐘,系統(tǒng)輸出1個(gè)時(shí)鐘,即一個(gè)1024kHz頻率的時(shí)鐘。程序設(shè)計(jì)中采用計(jì)數(shù)器來實(shí)現(xiàn),當(dāng)計(jì)數(shù)器值為0-((n/2)-1)=-3時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),不斷循環(huán)下去。
3.2 512kHz時(shí)鐘分頻
根據(jù)所需的時(shí)鐘頻率為512kHz的時(shí)鐘,而晶振時(shí)鐘的頻率為8192kHz,晶振時(shí)鐘與所需的時(shí)鐘頻率恰巧是16倍的整數(shù)倍關(guān)系,因此需要對(duì)8192kHz的晶振時(shí)鐘進(jìn)行16分頻來獲得所需要的時(shí)鐘。根據(jù)整數(shù)倍分頻器的設(shè)計(jì)方法原理,通過ISE9.1邏輯設(shè)計(jì)工具,利用VHDL硬件描述語言來進(jìn)行16分頻的分頻器設(shè)計(jì)。然而16又是偶數(shù),所以需要設(shè)計(jì)的是偶數(shù)分頻器。對(duì)設(shè)計(jì)的內(nèi)容通過Modelsim6.5仿真軟件進(jìn)行仿真驗(yàn)證,結(jié)果如圖3-2所示。
圖3-2 512kHz時(shí)鐘分頻
由圖3-2得知,當(dāng)8192kHz的晶振時(shí)鐘輸入16個(gè)時(shí)鐘,系統(tǒng)輸出1個(gè)時(shí)鐘,即一個(gè)512kHz頻率的時(shí)鐘。程序設(shè)計(jì)中采用計(jì)數(shù)器來實(shí)現(xiàn),當(dāng)計(jì)數(shù)器值為0-((n/2)-1)=-7時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),不斷循環(huán)下去。
3.3 256kHz時(shí)鐘分頻
根據(jù)所需的時(shí)鐘頻率為256kHz的時(shí)鐘,而晶振時(shí)鐘的頻率為8192kHz,晶振時(shí)鐘與所需的時(shí)鐘頻率恰巧是32倍的整數(shù)倍關(guān)系,因此需要對(duì)8192kHz的晶振時(shí)鐘進(jìn)行32分頻來獲得所需要的時(shí)鐘。根據(jù)整數(shù)倍分頻器的設(shè)計(jì)方法原理,通過ISE9.1邏輯設(shè)計(jì)工具,利用VHDL硬件描述語言來進(jìn)行32分頻的分頻器設(shè)計(jì)。然而32又是偶數(shù),所以需要設(shè)計(jì)的是偶數(shù)分頻器。對(duì)設(shè)計(jì)的內(nèi)容通過Modelsim6.5仿真軟件進(jìn)行仿真驗(yàn)證,結(jié)果如圖3-3所示。
圖3-3 256kHz時(shí)鐘分頻
由圖3-3得知,當(dāng)8192kHz的晶振時(shí)鐘輸入32個(gè)時(shí)鐘,系統(tǒng)輸出1個(gè)時(shí)鐘,即一個(gè)256kHz頻率的時(shí)鐘。程序設(shè)計(jì)中采用計(jì)數(shù)器來實(shí)現(xiàn),當(dāng)計(jì)數(shù)器值為0-((n/2)-1)=-15時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),不斷循環(huán)下去。
3.4 1kHz時(shí)鐘分頻
根據(jù)所需的時(shí)鐘頻率為1kHz的時(shí)鐘,而晶振時(shí)鐘的頻率為8192kHz,晶振時(shí)鐘與所需的時(shí)鐘頻率恰巧是8192倍的整數(shù)倍關(guān)系,因此需要對(duì)8192kHz的晶振時(shí)鐘進(jìn)行8192分頻來獲得所需要的時(shí)鐘。根據(jù)整數(shù)倍分頻器的設(shè)計(jì)方法原理,通過ISE9.1邏輯設(shè)計(jì)工具,利用VHDL硬件描述語言來進(jìn)行8192分頻的分頻器設(shè)計(jì)。然而8192又是偶數(shù),所以需要設(shè)計(jì)的是偶數(shù)分頻器。對(duì)設(shè)計(jì)的內(nèi)容通過Modelsim6.5仿真軟件進(jìn)行仿真驗(yàn)證,結(jié)果如圖3-4所示。
圖3-4 1kHz時(shí)鐘分頻
由圖3-4得知,當(dāng)8192kHz的晶振時(shí)鐘輸入8個(gè)時(shí)鐘,系統(tǒng)輸出1個(gè)時(shí)鐘,即一個(gè)1kHz頻率的時(shí)鐘。程序設(shè)計(jì)中采用計(jì)數(shù)器來實(shí)現(xiàn),當(dāng)計(jì)數(shù)器值為0-((n/2)-1)=-4095時(shí),輸出時(shí)鐘信號(hào)進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào),使下一個(gè)時(shí)鐘上升沿到來時(shí),計(jì)數(shù)器重新開始計(jì)數(shù),不斷循環(huán)下去。
4.結(jié)束語
本文給出了基于FPGA的數(shù)字分頻器設(shè)計(jì)方法。采用計(jì)數(shù)器設(shè)計(jì)方法實(shí)現(xiàn)了對(duì)8192kHz的基準(zhǔn)時(shí)鐘進(jìn)行分頻,分別得到1024kHz、512kHz、256kHz和1kHz的時(shí)鐘頻率。其他的偶數(shù)倍分頻也可采用類似的方法分頻的到需要的頻率時(shí)鐘。通過在Modelsim6.5仿真工具驗(yàn)證了設(shè)計(jì)的正確性。
特別推薦
- 音頻放大器的 LLC 設(shè)計(jì)注意事項(xiàng)
- 服務(wù)器電源設(shè)計(jì)中的五大趨勢
- 電子技術(shù)如何助力高鐵節(jié)能?
- 利用創(chuàng)新FPGA技術(shù):實(shí)現(xiàn)USB解決方案的低功耗、模塊化與小尺寸
- 加速度傳感器不好選型?看這6個(gè)重要參數(shù)!
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十三)——使用熱系數(shù)Ψth(j-top)獲取結(jié)溫信息
- IGBT并聯(lián)設(shè)計(jì)指南,拿下!
技術(shù)文章更多>>
- 解鎖AI設(shè)計(jì)潛能,ASO.ai如何革新模擬IC設(shè)計(jì)
- 汽車拋負(fù)載Load Dump
- 50%的年長者可能會(huì)聽障?!救贖的辦法在這里
- ADI 多協(xié)議工業(yè)以太網(wǎng)交換機(jī)
- 攻略:7種傾斜傳感器的設(shè)計(jì)選擇
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)