LIU Bing,GAO Bo,GONG Min,ZHANG Jie
(Key Laboratory of Micro-Electronics Technology of Sichuan Province,Chengdu 610064,China)
The Implementation of DDFS by Using Six Segments QLA Algorithm
LIU Bing,GAO Bo*,GONG Min,ZHANG Jie
(Key Laboratory of Micro-Electronics Technology of Sichuan Province,Chengdu 610064,China)
In order to improve the performance and the resource utilization of DDFS,researches about symmetry of sine and line approximation method(QLA)have been done.The proposed DDFS design uses six evenly distributed lines whose values are less than sine to approximate the sine value,and QE-ROM to store the different values of sine and six-segments,and the design obtains results less algorithm hardware complexity and less ROM in the condition of the same error.The experiment shows for 9 bits output’s DDFS,this method only uses 336 bit ROM,4 adder 3 multiplexer,and achieves a max frequence of 210 MHz.In FPGA,this method uses 110 LEs,49 registers,which have higher ROM compression ratio.
FPGA;DDFS(Direct Digital Frequency Synthesizer);six segment QLA;phase convert;ROM compression
數(shù)字頻率合成器是現(xiàn)代電子系統(tǒng)中的重要組成部分,它的作用是產(chǎn)生所需頻率的正弦、余弦波形以實(shí)現(xiàn)信號(hào)的調(diào)制和解調(diào)。相對(duì)于其他合成器,DDFS具有開關(guān)速度快,頻率分辨率高,相位噪聲小,頻率切換時(shí)相位連續(xù),輸出頻率非常穩(wěn)定等特點(diǎn)[1]。DDFS是基于Tierney,Rader和Gold于1971年提出的數(shù)字頻率合成器的概念[2],但是該結(jié)構(gòu)的數(shù)字頻率合成器需要大量的存儲(chǔ)器存儲(chǔ)幅值,如果采用傳統(tǒng)LUT的結(jié)構(gòu),假設(shè)輸出是S位,輸入是K位,那么就會(huì)需要S×2K位的存儲(chǔ)空間,如此大的存儲(chǔ)器設(shè)計(jì),存取時(shí)間長,面積大,功耗也很高,不利于集成化設(shè)計(jì);如果采用CORDIC算法循環(huán)迭代會(huì)使延遲增大[3-4],分段線性插值的辦法雖然能達(dá)到較高的性能要求,但是使用到了乘法器,加法器和RAM,硬件資源消耗多[5],為了適應(yīng)目前高速度,低功耗要求,低延遲,引入線性幅值逼近算法,減小存儲(chǔ)器每個(gè)數(shù)據(jù)的位寬,大幅減小存儲(chǔ)器的存儲(chǔ)量、簡(jiǎn)化邏輯以達(dá)到設(shè)計(jì)需求[6-8]。在此基礎(chǔ)上提出了一種6段的線性分段方法,然后采用QE-ROM的存儲(chǔ)方式,成功的降低了系統(tǒng)的復(fù)雜度,減少了硬件消耗。
1.1分段算法原理與分析
頻率合成器的結(jié)構(gòu)圖如圖1所示。
圖1 數(shù)字頻率合成器結(jié)構(gòu)圖
由此得到的正弦信號(hào)的頻率為:
傳統(tǒng)的DDFS分段算法是對(duì)相位分成2K段,對(duì)每一段用一段線段模擬,如文獻(xiàn)[9]中利用三角函數(shù)的對(duì)稱性和一次泰勒展式近似,通過兩個(gè)查找表將相位Φ變換為sin(Φ):
其中a代表每個(gè)分段點(diǎn)的相位值。ROM存儲(chǔ)b(a)和m(a),其中b(a)是分段線性函數(shù)的起始點(diǎn),b(a)表達(dá)式為:
ΔΦ是Φ與小于Φ的最近分段點(diǎn)的相位差:
m(a)是兩個(gè)相鄰的分段點(diǎn)之間連線的斜率:
存儲(chǔ)器存儲(chǔ)b(a),m(a)的值,壓縮比只能達(dá)到10.3∶1。
分段線性算法采用各段均分的線段逼近正弦值,然后用ROM存儲(chǔ)差值的,以減小ROM存儲(chǔ)的位寬[7]。利用三角函數(shù)近似:
然后分別存儲(chǔ)sin(α+β)和cos(α)sin(γ)的值,針對(duì)sin(α+β)考慮α+β=θ,存儲(chǔ)sin(θ)可以使用四線線性逼近的方法,4條直線是相對(duì)于π/4對(duì)稱的其實(shí)現(xiàn)了存儲(chǔ)位寬減少4位,壓縮比也只能達(dá)到50.08[6];優(yōu)化以后最終實(shí)現(xiàn)了壓縮比78.2∶1[9]。使用一階泰勒展式近似實(shí)現(xiàn),使用了3個(gè)存儲(chǔ)器,1個(gè)乘法器,2個(gè)加法器[10]。使用dual-slope近似在文獻(xiàn)[9]的基礎(chǔ)上進(jìn)一步減小了存儲(chǔ)空間。上述文章中使用線性逼近算法和插值技術(shù)實(shí)現(xiàn)了高的壓縮比,但是他們的方法中硬件結(jié)構(gòu)復(fù)雜,控制電路復(fù)雜,實(shí)現(xiàn)難度相對(duì)較大。所以需要提出一個(gè)結(jié)構(gòu)簡(jiǎn)單,實(shí)現(xiàn)難度低的分段方法。
1.2分段算法實(shí)現(xiàn)
綜合考慮硬件實(shí)現(xiàn)的復(fù)雜性和整體硬件面積,在適當(dāng)提高壓縮比的前提下,少量增加硬件復(fù)雜度,并利用三角函數(shù)對(duì)稱性和六線線性逼近的方法,提出如式(8)~式(13)的分段方法。其中在存儲(chǔ)器存儲(chǔ)的值為sin[(π/2)Φ]-Φ-f(Φ)其中Φ為輸入相位,f(Φ)為:
圖2 sin((π/2)*Φ)-Φ和六段線性曲線圖(幅值單位1,設(shè)正弦最大幅值為1)
通過計(jì)算可得:
所以對(duì)于正弦值每個(gè)數(shù)據(jù)點(diǎn)將節(jié)省5位。
誤差存儲(chǔ)器使用量化和誤差存儲(chǔ)的方法(QEROM)實(shí)現(xiàn),量化存儲(chǔ)器(Q-ROM)利用函數(shù)的連續(xù)性,將2K個(gè)地址均勻分成2L份,每一段有Q-bits量化的值,E-ROM(誤差存儲(chǔ))存儲(chǔ)被存儲(chǔ)的原始值與QROM之間的差值,所以E-ROM中數(shù)據(jù)的大小將遠(yuǎn)小于被存儲(chǔ)原始值,本文設(shè)計(jì)過程中實(shí)現(xiàn)采用212地址輸入9位輸出,量化之時(shí)將的值乘以210,在第1象限,210個(gè)地址輸入被分成24段,每個(gè)數(shù)據(jù)5位,數(shù)據(jù)量化方式如圖3所示。
圖3中,橫軸表示相位值,縱軸為存儲(chǔ)量化值的210倍。依據(jù)最小誤差選取不同量化方法分段設(shè)置存儲(chǔ)位寬信息,從而保證在誤差范圍內(nèi)達(dá)到最小存儲(chǔ)位寬設(shè)計(jì)。
圖3 Q-ROM里存儲(chǔ)的數(shù)據(jù)(幅值單位為1,正弦最大幅值為210-1)
在本文的實(shí)現(xiàn)中E-ROM只需將210個(gè)地址輸入被分成26段,每個(gè)數(shù)據(jù)位寬為4 bit,E-ROM的值為小于原始值和Q-ROM存儲(chǔ)值之間的差值的最大整數(shù)加上2,并在輸出之前進(jìn)行溢出判斷。
系統(tǒng)的運(yùn)算單元將線性分段函數(shù)與QE-ROM的存儲(chǔ)值相加得到最終的正弦值,余弦值的計(jì)算方式可以通過相移得到,系統(tǒng)包括4個(gè)加法器,3個(gè)多路選擇器,和2個(gè)存儲(chǔ)器,與一個(gè)比較器。系統(tǒng)硬件結(jié)構(gòu)圖如圖4所示。
圖4 系統(tǒng)結(jié)構(gòu)圖
按照六段線性逼近算法原理中描述,安排3個(gè)選擇器輸出線性函數(shù)的值,使線性函數(shù)的求值過程無需復(fù)雜單元而只用加法器就可以實(shí)現(xiàn)。
系統(tǒng)設(shè)計(jì)采用Altera的CycloneⅡEP2C5AF256A7芯片實(shí)現(xiàn),Verilog源代碼在Altera的Quartus 10.1軟件版本中綜合實(shí)現(xiàn)的,共四分之一個(gè)周期的硬件共消耗資源110個(gè)LE,49個(gè)存儲(chǔ)器,最大的工作頻率達(dá)到了210 MHz;和其他方法的對(duì)比如表1所示。
表1 本文的技術(shù)與其他技術(shù)對(duì)比
針對(duì)系統(tǒng)誤差的仿真編寫了相應(yīng)的測(cè)試模塊,考慮到三角函數(shù)的對(duì)稱性,只需仿真第1象限的結(jié)果,即能反映出整體設(shè)計(jì)指標(biāo),在Modelsim 6.5se中的仿真,當(dāng)相位累加器的輸入為1時(shí)的部分波形時(shí)序圖如圖5所示。
圖5 當(dāng)相位累加器的輸入為1時(shí)的Modelsim仿真
將Modelsim仿真產(chǎn)生的正弦值(變量名是sin)輸出之后導(dǎo)入到MATLAB和MATLAB中正弦函數(shù)的精確結(jié)果進(jìn)行對(duì)比得到如圖6的仿真圖。
圖6 系統(tǒng)誤差仿真圖:精確的正弦值與HDL算法得到的值之差(幅值單位為1,最大幅值為210-1)
最終誤差的最大值為1.565×2-9,按照誤差原理和正弦函數(shù)的對(duì)稱性驗(yàn)證了該設(shè)計(jì)可以達(dá)到9位輸出有效。
通過系統(tǒng)綜合和時(shí)序分析過程得到該設(shè)計(jì)電路最大時(shí)鐘為210.35 MHz,消耗的硬件資源為110個(gè)LE,49個(gè)寄存器。使用quartus ii10.1的TimQuest Timing Analyzer分析HDL設(shè)計(jì)的時(shí)序:
表2 時(shí)序分析報(bào)告結(jié)果
文章結(jié)合三角函數(shù)對(duì)稱性和六線逼近法,減小存儲(chǔ)器的大小,完成了DDFS 9位輸出有效,通過改變輸入到累加器中的fword值,可以調(diào)整該DDFS輸出波形的最小頻率為51.2 kHz(系統(tǒng)工作時(shí)鐘為210 MHz),通過調(diào)整QE-ROM存儲(chǔ)位寬也可以將輸出有效位寬調(diào)整為想要的位寬。文章提出的六線逼近算法成功將存儲(chǔ)器的存儲(chǔ)總量減小,實(shí)現(xiàn)高壓縮比的DDFS設(shè)計(jì),通過邏輯綜合和仿真驗(yàn)證獲得優(yōu)于同類算法的硬件資源消耗??傮w設(shè)計(jì)采用1個(gè)3選1,2個(gè)6選1選擇器,4個(gè)加法器和2個(gè)存儲(chǔ)單元,1個(gè)比較器實(shí)現(xiàn),其中存儲(chǔ)器只需要336 bit。設(shè)計(jì)算法實(shí)現(xiàn)了高壓縮比的直接數(shù)字頻率計(jì)的設(shè)計(jì),并通過FPGA電路的綜合和仿真驗(yàn)證了該設(shè)計(jì)方案的正確性。
[1]王春林,吳建輝,葉雙應(yīng),等.一種基于非均勻分段線性插值的直接數(shù)字頻率合成器[J].電子器件,2006,29(2):508-511,588.
[2]Tierney J,Rader C M,Gold B.A Digital Frequency Synthesizer[J].Audio and Electroacoustics,IEEE Transactions on,1971,19:48-57.
[3]Hatai I C I.A Novel Low-Latency,High-Speed DDFS Architecture[C]//India Conference(INDICON),2010 Annual IEEE,2010: 1-4.
[4]王佳琪,熊先越.基于FPGA的流水線CORDIC算法的DDFS設(shè)計(jì)[J].光通信技術(shù),2012(4):61-62.
[5]代向明.線性插值的任意函數(shù)發(fā)生器及其實(shí)現(xiàn)[J].電子器件,2008,31(4):1397-1400,1404.
[6]Zhao X,Qi J,Tu B H,et al.Design Parallel Direct Digital Frequency Synthesizer Using Interpolation and QLA Technology[C]//Signal Processing,2006 8th International Conference on,vol.1,2006:16-20.
[7]Byung-Do Y,Jang-Hong C,Seon-Ho H.An 800-MHz Low-Power Direct Digital Frequency Synthesizer with an On-Chip D/a Converter[J].Solid-State Circuits,IEEE Journal of,2004,39:761-774.
[8]Cao X,Ni W,Yuan L.A Compact Direct Digital Frequency Synthesizer for System-On-Chip[C]//Solid-State and Integrated-Circuit Technology,2008.ICSICT 2008.9th International Conference on,2008:1863-1866.
[9]Shiann-Shiun J,Hsing-Chen L,Chen-Yu W.High-Performance DDFS Design Using the Equi-Section Division Method[J].Ultrasonics,F(xiàn)erroelectrics and Frequency Control,IEEE Transactions on,2010,57:2616-2626.
[10]De Caro D,Strollo A G M.High-Performance Direct Digital Frequency Synthesizers in 0.25 μm CMOS Using Dual-Slope Approximation[J].Solid-State Circuits,IEEE Journal of,2005,40:2220-2227.
劉兵(1990-),男,漢,四川遂寧,碩士研究生,研究方向?yàn)槌笠?guī)模集成電路設(shè)計(jì);
龔敏(1961-),男,四川大學(xué)教授,博士生導(dǎo)師,從事新型半導(dǎo)體材料與器件工藝、集成電路設(shè)計(jì)和工藝及半導(dǎo)體器件的輻照效應(yīng)研究;
高博(1975-),男,四川大學(xué)副教授,主要從事CMOS集成電路芯片設(shè)計(jì)和生物醫(yī)學(xué)成像領(lǐng)域的研究;
張杰(1989-),男,漢族,四川達(dá)州,碩士研究生,研究方向?yàn)槌笠?guī)模集成電路。
EEACC:7250E10.3969/j.issn.1005-9490.2015.01.046
基于六線逼近法的DDFS算法的實(shí)現(xiàn)
劉兵,高博*,龔敏,張杰
(四川省微電子技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都610064)
為了提高直接數(shù)字頻率合成技術(shù)的資源利用率,結(jié)合三角函數(shù)的對(duì)稱性和線性幅值逼近算法對(duì)正弦信號(hào)分段算法進(jìn)行研究,提出基于六線線性逼近優(yōu)化算法,使用6段不大于正弦值的均與分段的線段逼近之后,使用QE-ROM(量化-誤差存儲(chǔ))存儲(chǔ)線段與正弦值差值的辦法,在不影響頻率特征和最大誤差特性基礎(chǔ)上,實(shí)現(xiàn)了算法的簡(jiǎn)化,并壓縮了誤差補(bǔ)償存儲(chǔ)器所需存儲(chǔ)空間。實(shí)驗(yàn)結(jié)果表明對(duì)于9 bit正弦輸出只需使用336 bit存儲(chǔ)器和4個(gè)加法器3個(gè)選擇器一個(gè)比較器即可實(shí)現(xiàn)整個(gè)系統(tǒng),并且最大的工作頻率達(dá)到了210 MHz,共消耗110個(gè)LE,49個(gè)存儲(chǔ)器。壓縮比遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的壓縮算法。
FPGA,直接數(shù)字頻率合成器;六線線性逼近優(yōu)化算法;相位轉(zhuǎn)換;存儲(chǔ)器壓縮
TN402
A文獻(xiàn)標(biāo)識(shí)碼:1005-9490(2015)01-0218-04
2014-03-26修改日期:2014-04-23