<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計(jì)應(yīng)用 > DDS邏輯優(yōu)化設(shè)計(jì)及Verilog實(shí)現(xiàn)

          DDS邏輯優(yōu)化設(shè)計(jì)及Verilog實(shí)現(xiàn)

          作者:■ 西安電子科技大學(xué)微電子研究所 史吉吉 楊銀堂 時(shí)間:2005-04-27 來源:eaw 收藏

          摘    要:本文主要介紹了在DDS系統(tǒng)中,為了提高芯片運(yùn)算速度,加大輸出帶寬,減小芯片規(guī)模從而提高可靠性和頻譜純度而采用的優(yōu)化方法及其VerilogHDL實(shí)現(xiàn)。
          關(guān)鍵詞:;

          概述
          由于DDS頻率合成方法具有低頻率轉(zhuǎn)換時(shí)間、低失真輸出波形、高分辨率、高頻譜純度、可編程和寬頻率輸出范圍等優(yōu)良性能,在現(xiàn)代頻率合成領(lǐng)域中具有越來越重要的地位。在許多應(yīng)用領(lǐng)域中,如通信、導(dǎo)航、雷達(dá)和電子對(duì)抗等, DDS頻率源都是主流的關(guān)鍵部件。

          DDS的改進(jìn)構(gòu)想
          DDS電路的關(guān)鍵是利用高速存儲(chǔ)器做查找表,通過高速DAC產(chǎn)生已經(jīng)以數(shù)字形式存入的正弦波,并用頻率控制字K來調(diào)制DDS的輸出頻率。
          從算法可以看出,DDS的工作主頻決定它輸出的頻率:fout=fclk*K/2N(N為相位累加器的位數(shù),K為頻率控制字,位寬32位,fclk是芯片主頻),所以提高DDS的主頻就可以提高它的輸出頻率和輸出帶寬,同時(shí)對(duì)于ROM的實(shí)現(xiàn)來說,如果用32根地址線來尋址,則需要一個(gè)非常大的ROM,要232那么大。這種ROM從存取時(shí)間、可靠性和制造上來說是不實(shí)際的,所以要對(duì)算法進(jìn)行改進(jìn)。

          DDS設(shè)計(jì)優(yōu)化
          這一部分對(duì)DDS設(shè)計(jì)進(jìn)行了優(yōu)化,目的是在保持其原有優(yōu)點(diǎn)的基礎(chǔ)上,盡量減少硬件復(fù)雜性,降低芯片面積和功耗等,提高芯片速度。核心結(jié)構(gòu)如圖1所示。圖中相位累加器為32位,如果主頻為75MHz,則確定頻率分辨率為0.0174Hz。相位-幅值轉(zhuǎn)換部分由查找表邏輯實(shí)現(xiàn)。查找表用字長(zhǎng)為13位的ROM實(shí)現(xiàn),存儲(chǔ)壓縮后的SIN值。本芯片在相位累加器和查找表之間插入了一個(gè)地址轉(zhuǎn)換器,負(fù)責(zé)進(jìn)行地址轉(zhuǎn)換。在查找表和DAC之間插入了一個(gè)數(shù)據(jù)轉(zhuǎn)換器,負(fù)責(zé)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。相位累加器輸出的地址碼位寬為16位, Data[12:0]為查找表輸出的二進(jìn)制SIN值,它經(jīng)過數(shù)據(jù)轉(zhuǎn)換器后和adri[15]反拼接成14位數(shù)據(jù)輸入DAC,變換成連續(xù)的正弦信號(hào)V輸出。
          對(duì)DDS優(yōu)化如下:
          1. 引入對(duì)累加器進(jìn)行優(yōu)化。將32位累加器分成4條,每條流水線完成8位的加法運(yùn)算,流水線的進(jìn)位進(jìn)行級(jí)聯(lián)。運(yùn)用流水線實(shí)現(xiàn)加法器可以提高累加器的運(yùn)算速度3倍之多。為了提高運(yùn)算速度,加法器算法采用的是目前速度最快的預(yù)先進(jìn)位算法。為了避免因預(yù)先進(jìn)位加法器中進(jìn)位傳輸鏈過長(zhǎng)而影響速度,每8位加法器由兩個(gè)4位的預(yù)先進(jìn)位加法器級(jí)聯(lián)而成。因引入流水線而多加入80個(gè)寄存器中的48個(gè)可以通過改進(jìn)的輸入數(shù)據(jù)寄存器減少,詳見圖2。對(duì)進(jìn)行優(yōu)化,以降低硬件復(fù)雜度,減小芯片面積,從而進(jìn)一步提高運(yùn)行速度。在設(shè)計(jì)中增加一個(gè)時(shí)鐘分配器,通過時(shí)鐘的分配時(shí)序,可以節(jié)省保存輸入頻率控制字的級(jí)聯(lián)寄存器。還同時(shí)節(jié)約芯片的24個(gè)I/O口,唯一的缺點(diǎn)是數(shù)據(jù)要保持4個(gè)時(shí)鐘周期,會(huì)降低系統(tǒng)跳頻的跳轉(zhuǎn)頻率。
          2. 從圖1可知,從相位累加器的32位輸出中提取高16位作為ROM的查找地址,相位累加器的輸出截尾可以減少ROM的尺寸到原來的1/216,把ROM容量的單元數(shù)從232降到216。損失的低16位相位累加數(shù)值對(duì)應(yīng)0.02度的間斷,在絕大部分應(yīng)用中都是可以忽略的,在生成波形的精確度上已經(jīng)可以滿足要求了。但由此而產(chǎn)生的截尾誤差卻會(huì)對(duì)頻譜純度和輸出帶寬產(chǎn)生影響。相應(yīng)的解決辦法如圖3所示:將D觸發(fā)器的輸出端連接到相位累加器最低位的c0,相位累加器字長(zhǎng)變?yōu)?2+1位,頻率控制字的值相當(dāng)于2K+1,而截尾誤差為2,即頻率控制字(奇數(shù))和截尾誤差(2的整數(shù)次冪)之間互質(zhì)。這樣帶來的地址上1/2LSB的誤差影響,在實(shí)際應(yīng)用中可以忽略。

          主要優(yōu)化算法的Verilog實(shí)現(xiàn)
          VerilogHDL語言專門面向硬件與系統(tǒng)設(shè)計(jì)??梢栽谛酒惴ā⒐δ苣K、層次結(jié)構(gòu)和測(cè)試向量等方面進(jìn)行描述。VerilogHDL簡(jiǎn)單、靈活,可直接描述硬件單元結(jié)構(gòu),而且具有很好的可讀性。
          流水線加法器陣列和加法器最低進(jìn)位修正實(shí)現(xiàn)
          dffn gate1(ci,ci,clk,rst);
          lineadd gate2(q[7:0],co0,ci,clk1, clk,datain,k,rst);
          twolineadd gate3(q[15:8],co1, co0,clk2,clk,k,rst);
          trilineadd gate4(q[23:16], co2,net1,net3, co1,clk3,clk,k,rst);
          forlineadd gate5(q[31:24],co,co2, clk4,clk,k,rst);
          這是用VerilogHDL的結(jié)構(gòu)描述方法實(shí)現(xiàn)的,對(duì)應(yīng)于用電路圖輸入邏輯。其中的lineadd,twolineadd, trilineadd,forlineadd是帶寄存器的加法器流水線。Dffn是輸出為QN的D觸發(fā)器,其輸出端接加法器最低進(jìn)位。
          波形折疊及抬高算法
          波形折疊(地址轉(zhuǎn)換器)
           always@(adri)
                          if(adri[14])
                            adro=14'h1fff^adri[13:0];
                          else
          adro=adri;
          根據(jù)adri[14]的數(shù)值可以判斷地址碼是否需要對(duì)p/2進(jìn)行折疊。這里用^是按位異或,作用是用全1減去adri值,從而實(shí)現(xiàn)地址碼對(duì)p/2的折疊。因?yàn)楸粶p數(shù)是確定的而且是全1,所以可以用異或?qū)崿F(xiàn)減法,這樣比用減法器要節(jié)約門數(shù)。
          抬高算法(數(shù)據(jù)轉(zhuǎn)換器)
          always@(data,adri[15])
                     begin 
           if(adri[15])
                        datum=13'h3fff^data;
                      else
          {datum}=data-13'h0001;
          end
           result={ !adri[15],datum};
                          end
          根據(jù)adri[15]的數(shù)值可以判斷波形值應(yīng)該是正是負(fù),如果是正,則用全1和從ROM中取出的數(shù)相加,就相當(dāng)于原數(shù)據(jù)減1后再在最高位拼接1,以1LSB的偏移量為代價(jià),可以省略減法器。如果是負(fù),則用按位異或?qū)崿F(xiàn)相減,得到經(jīng)過抬高處理的數(shù)據(jù)。抬高處理是為了滿足DAC的輸入全為正值的需要。
          壓縮sin值ROM查找表邏輯的結(jié)構(gòu)描述實(shí)現(xiàn)
          ROM1 gate1(daone,adro[13:5], clk,ren,dinone);
          ROM2 gate2(datwo,{adro[13:9], adro[4:0]},clk,ren,dintwo);
          adderone gate3(daone, datwo,result[11:0]);
          addertwo gate4(adro[13:5], result[11:0],data[12:0]
          ROM1和ROM2是兩個(gè)讀寫存儲(chǔ)器,ROM1是主值存儲(chǔ)器,ROM2是修正存儲(chǔ)器,分別存放預(yù)先計(jì)算好的主值和修正值。dinone和dintow是ROM的數(shù)據(jù)寫入端,daone和datwo是數(shù)據(jù)讀出端。Allader是一個(gè)12位加法器,將主值和修正值相加。addertwo是13位加法器,完成 [Sin(p x/2)-p x/2]+p x/2,從而得到Sin(p x/2)的值。
          結(jié)語
          總體而言,DDS可以得到下面的改進(jìn):使用流水線算法和輸入數(shù)據(jù)寄存器可以在不過多增加門數(shù)的條件下,大幅提高芯片的工作頻率;修正加法器最低進(jìn)位位帶來3dB左右的頻譜性能提高,提高了輸出波形的頻譜純度;而在保證芯片使用精度的情況下減少了大部分面積,利用SIN函數(shù)的對(duì)稱性和三角恒等式以及最后的SIN值壓縮算法經(jīng)過具體實(shí)驗(yàn)可以達(dá)到79.24:1的壓縮率,大大節(jié)約了ROM的容量,可以使芯片在滿足性能要求的基礎(chǔ)上,節(jié)約相當(dāng)大的芯片面積,同時(shí)節(jié)約了功耗提高了芯片的可靠性。按照此優(yōu)化方法設(shè)計(jì)的芯片可以工作在75MHz頻率上,輸出信號(hào)諧波小于-60dB,而芯片規(guī)模是13000門左右。■

          參考文獻(xiàn)
          1 J Vankka, M Waltari, and M Kosunen, 褹 Direct Digital Synthesizer with an On-chip D/A-Converter? IEEE JSolStaCirc,1998;33(2):218-227
          2 J. Vankka, 襍pur Reduction Techniques in Sine Output Direct Digital Synthesis?, in Proc. 1996 IEEE Frequency Control Symp., June 1996; 951?59
          3 S.  Mortezapour, E. K. F. Lee, 褼esign of  Low-Power ROM-Less Direct  Digital Frequency Synthesizer Using Nonlinear Digital-to-Analog Converter?on IEEE Journal of Solid-State Circuits,Vol. 34, No. 10, October 1999:1350-1359
          4. L.  K. Tan and H.  Samueli, “A 200 MHz Quadrature Digital Synthesizer/Mixer in 0.8mm CMOS”  on  IEEE Journal of Solid-State Circuits Vol. 30, No. 3, March 1995:193-200



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();