任青蓮,李東紅,2
(1.太原科技大學(xué) 電子信息工程學(xué)院,山西 太原 030024;2.太原科技大學(xué) 華科學(xué)院,山西 太原 030024)
?
一種基于Verilog代碼的任意分?jǐn)?shù)分頻器的設(shè)計*
任青蓮1,李東紅1,2
(1.太原科技大學(xué) 電子信息工程學(xué)院,山西 太原 030024;2.太原科技大學(xué) 華科學(xué)院,山西 太原 030024)
分頻器是數(shù)字系統(tǒng)設(shè)計中最常見的單元電路,對高穩(wěn)定和準(zhǔn)確的基準(zhǔn)時鐘源進(jìn)行不同倍數(shù)的分頻,以得到同樣穩(wěn)定和準(zhǔn)確的信號,為各模塊提供所需的時鐘頻率。介紹了一種分?jǐn)?shù)分頻器的實(shí)現(xiàn)方法,該分頻器能對時鐘源信號進(jìn)行任意分?jǐn)?shù)或小數(shù)倍分頻,給出了該方法的設(shè)計原理及實(shí)現(xiàn)的Verilog代碼,并利用Quartus Ⅱ軟件進(jìn)行了仿真,仿真波形與硬件結(jié)果都驗證了設(shè)計的正確性。該方法結(jié)構(gòu)簡單,可避免出現(xiàn)競爭冒險和毛刺問題,并且修改方便,具有很好的可移植性,對任何分頻器的設(shè)計都具有一定的借鑒意義。
分?jǐn)?shù)分頻;Verilog;設(shè)計;仿真
分頻器廣泛應(yīng)用于近代電子系統(tǒng)中,是近代通信系統(tǒng)的重要組成單元電路。它利用一個高穩(wěn)定和高準(zhǔn)確度的基準(zhǔn)頻率產(chǎn)生出一系列等間隔的離散頻率信號,這些離散頻率信號與基準(zhǔn)頻率具有同樣的穩(wěn)定度和準(zhǔn)確度。
分頻器有整數(shù)分頻和分?jǐn)?shù)分頻。當(dāng)所需頻率與給定基準(zhǔn)頻率不成整數(shù)關(guān)系時,或需要對輸入信號頻率微調(diào)整時,可采用分?jǐn)?shù)分頻器進(jìn)行分頻。分?jǐn)?shù)分頻器輸出頻率的精度為分頻比的小數(shù)部分和參考時鐘頻率的乘積,這樣在參考時鐘很大時,小數(shù)部分如果很小,仍可以得到很小的頻率分頻率。
本文介紹一種基于Verilog代碼的任意分?jǐn)?shù)分頻器的設(shè)計方法,給出其設(shè)計原理和實(shí)現(xiàn)方法,該方法可以很方便地實(shí)現(xiàn)各種分?jǐn)?shù)分頻,而且結(jié)構(gòu)簡單,修改也很方便。與傳統(tǒng)的分?jǐn)?shù)分頻器相比,可避免出現(xiàn)競爭冒險和毛刺問題[1-3]。
假設(shè)基準(zhǔn)時鐘源的頻率為fin,期望得到的輸出頻率為fout,則其分頻比為:
(1)
其中N>1,假設(shè)M (2) 其中N1、N2為整數(shù)。當(dāng)N1、N2取不同整數(shù)時,就可實(shí)現(xiàn)任意分?jǐn)?shù)分頻。 根據(jù): (3) 可得分?jǐn)?shù)分頻是通過可變分頻比和多次平均的方法實(shí)現(xiàn)的。分頻器設(shè)置兩個分頻模數(shù),分別為M和M+1,它們的分頻次數(shù)分別設(shè)置在N2和N1,在一個輸出信號的完整的周期(N1+N2)中,若輸入信號的周期為N2·M+N1·(M+1),即在周期為N2·M+N1·(M+1)的輸入信號中,進(jìn)行了N2次M分頻和N1次(M+1)分頻,則可得到周期為(N1+N2)的輸出信號,所以,分頻器的分頻比為: 令Q=N1+N2,P=N2·M+N1(M+1),則分頻比又可以寫成: (4) 其中P、Q均為整數(shù),且P>Q??傻卯?dāng)基準(zhǔn)時鐘源每輸入P個脈沖時,按照一定規(guī)律刪除(P-Q)個脈沖,并使刪除的(P-Q)個脈沖位置相對均勻地分布在時鐘源相對應(yīng)的P個脈沖中,輸出Q個脈沖,便實(shí)現(xiàn)了平均意義上的N分頻。 通過分析可知,分?jǐn)?shù)分頻的兩種分頻比可通過脈沖刪除電路來實(shí)現(xiàn)。具體設(shè)計思路為:設(shè)置一個計數(shù)器,設(shè)其初始值為0;在基準(zhǔn)時鐘源的每個上升沿到來時,計數(shù)器加上Q,若結(jié)果大于等于P,則將計數(shù)器的值減去P,并不刪除脈沖;若結(jié)果小于P,則刪除脈沖。 例如,要從36 MHz的基準(zhǔn)時鐘源產(chǎn)生21 MHz的時鐘信號,由公式(1)可得分頻比為: 設(shè)計數(shù)器的初始值為0,在基準(zhǔn)時鐘源的每個上升沿到來時,計數(shù)器加上7,若結(jié)果大于等于12,則將計數(shù)器的值減去12,并不刪除脈沖;若結(jié)果小于12,則刪除脈沖,這樣當(dāng)基準(zhǔn)時鐘源每輸入12個脈沖時,刪除5(12-7)個脈沖,并使刪除的5個脈沖位置相對均勻地分布在時鐘源相對應(yīng)的12個脈沖中,輸出7個脈沖,便實(shí)現(xiàn)了平均意義上的12/7分頻。 又因為: 可知在輸出信號的7個脈沖中,其中有5次是對輸入信號2分頻得到,2次是1分頻得到的。 其工作過程如表1所示。 表1 12/7分頻器的工作過程 從表1可知,在基準(zhǔn)時鐘源每輸入12個脈沖信號,輸出端就會得到7個脈沖信號,其中2個脈沖是對輸入進(jìn)行次1分頻得到,5個脈沖是對輸入信號進(jìn)行2分頻得到的,所以分頻比為12/7[3-7]。 設(shè)分?jǐn)?shù)分頻器的分頻比為N=P/Q,P、Q均為整數(shù),且P>Q。任意分?jǐn)?shù)分頻器Verilog代碼如下。 本例中P=12,Q=7。應(yīng)用中只要根據(jù)實(shí)際需要求出相應(yīng)的P和Q,改變代碼中的P、Q參數(shù)值即可。 module clk_divider(rst,clkin,clkout); input rst,clkin; output clkout; reg clkout,delete; integer count; parameter P=12,Q=7; always @(posedge clkin or posedge rst) begin if(rst) begin count=0;delete=1′b0;end else begin count=count+Q; if(count>=P) begin count<=count-P; delete=1′b0; end else delete=1′b1; end end always @(delete) begin if(delete) clkout=1′b0; else clkout=clkin; end endmodule 當(dāng)分頻比為小數(shù)時,可以將其化為分?jǐn)?shù)形式,求出相應(yīng)的P和Q值。例如分頻比為8.7,化為分?jǐn)?shù)形式為87/10,即P為87,Q為10,輸入信號每87個周期輸出端得到10個脈沖,其中有3個脈沖是對輸入進(jìn)行了8分頻得到,7個脈沖是對輸入進(jìn)行9分頻得到的[3-10]。 分?jǐn)?shù)分頻器設(shè)計FPGA器件選擇Cyclone 系列中EP1C12Q240C8N芯片,在QuartusII軟件中設(shè)計并仿真。分頻比為12/7的仿真結(jié)果如圖1所示??梢钥闯鼋?jīng)過基準(zhǔn)時鐘源12個周期,輸出7個周期信號,實(shí)現(xiàn)了12/7的分頻輸出。當(dāng)輸入36 MHz的基準(zhǔn)時鐘源時,輸出端可得到21 MHz的時鐘信號。 圖1 12/7分頻仿真結(jié)果 當(dāng)分頻比N>2,比如分頻比為87/10的仿真結(jié)果如圖2,如果希望信號的占空比盡量接近50%時,可將分母擴(kuò)大2倍作為Q值,最后再對輸出進(jìn)行2分頻。只要改變Verilog代碼中的Q值,再加入一個二分頻進(jìn)程即可,仿真結(jié)果如圖3所示。 圖2 8.7分頻仿真結(jié)果 圖3 8.7分頻擴(kuò)大占空比后的仿真結(jié)果 從圖2和圖3的仿真結(jié)果可以看出,輸入每87個脈沖,輸出端就會得到10脈沖,均實(shí)現(xiàn)了87/10分頻。并且圖3輸出脈沖的占空比要比圖2輸出脈沖的占空比大。仿真波形與硬件結(jié)果都驗證了該設(shè)計的正確性。 本文給出了一種基于Verilog代碼的任意分?jǐn)?shù)分頻器設(shè)計方法。設(shè)計思路簡單,結(jié)構(gòu)清晰,能夠非常方便地實(shí)現(xiàn)各種分?jǐn)?shù)和小數(shù)分頻,只需根據(jù)實(shí)際要求計算得出所需分頻的分?jǐn)?shù)值,根據(jù)得出分子和分母修改代碼中的參數(shù)即可,該實(shí)現(xiàn)方法具有良好的可移植性,對任意分?jǐn)?shù)或小數(shù)分頻器的設(shè)計都具有一定的指導(dǎo)意義。 [1] 董尚斌.電子線路(Ⅱ)[M].北京:清華大學(xué)出版社,2008:334-337. [2] 孟令部.2~2.4 GHz分?jǐn)?shù)分頻頻率綜合器設(shè)計[D].上海:復(fù)旦大學(xué),2010:20-26. [3] 王金明,徐志軍,蘇勇.EDA技術(shù)與Verilog HDL設(shè)計[M].北京:電子工業(yè)出版社,2013:213-250. [4] 李雪梅,周思敏.基于FPGA的數(shù)字分頻器設(shè)計與實(shí)現(xiàn)[J].北京電子科技學(xué)院學(xué)報,2013,21(4):80-84. [5] 周冬成,王永斌,鄭亞平.基于FPGA的小數(shù)分頻頻率合成器設(shè)計[J].電子測量技術(shù),2006,29(3):79-80. [6] 袁泉,陳曉龍,王家禮.基于FPGA的小數(shù)分頻實(shí)現(xiàn)方法[J].電子技術(shù)應(yīng)用,2010,36(11):99-101. [7] 王晉偉,崔永俊,賈磊,等.高精度模擬分頻電路的設(shè)計與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2015,15(15):44-48. [8] 楊承光.應(yīng)用于GPS中的∑-Δ小數(shù)分頻電路的研究[D].西安:西安電子科技大學(xué),2012:7-19. [9] 李廣參,馮永新,錢博,等.基于FPGA的BPSK信號載頻估計單元設(shè)計與實(shí)現(xiàn)[J].電子技術(shù),2014,7:38-41. Design of Arbitrary Fractional Frequency Divider Based-on Verilog Ren Qinglian1,Li Donghong1,2 (1.CollegeofInformationEngineering,TaiyuanUniversityofScienceandTechnology,TaiyuanShanxi030024,China; 2.CollegeofInformationEngineering,HuakeUniversity,TaiyuanShanxi030024,China) Frequency divider is a common unit circuit in digital system.The high stable and accurate signal is divided into different frequency signal with the same stability and curacy that provides the required clock frequency for each module.A realization method of arbitrary fraction or decimal fraction frequency division is presented.The principle of the design and the code based on Verilog are also presented,and their functions are simulated using Quartus.The simulation waveforms and hardware results verify the correctness of the design.This method is simple and can avoid competition risks and burr.The design method can also be easily modified and has good portability,so it has reference for the design of any arbitrary frequency divider. fractional frequency; Verilog; design; simulation 2016-06-30 山西省2014年教育教學(xué)改革研究項目(J2014152) 任青蓮(1973-),女,山西長治人,副教授,碩士,研究方向:無線通信及電子技術(shù)應(yīng)用。 1674-4578(2016)05-0020-03 TN74 A2 Verilog代碼實(shí)現(xiàn)
3 仿真結(jié)果及分析
4 結(jié)論