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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于流水線結(jié)構(gòu)的DDS多功能信號發(fā)生器設(shè)計

          基于流水線結(jié)構(gòu)的DDS多功能信號發(fā)生器設(shè)計

          作者: 時間:2012-05-22 來源:網(wǎng)絡(luò) 收藏

          摘要:在應(yīng)用FPGA進(jìn)行系統(tǒng)設(shè)計過程中,選擇芯片的運(yùn)行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,從發(fā)展趨勢和運(yùn)算要求看,系統(tǒng)速度指標(biāo)的意義比面積指標(biāo)更趨重要。基于此,介紹了一種來優(yōu)化傳統(tǒng)的相位累加器,在QuartusⅡ開發(fā)環(huán)境下搭建系統(tǒng)模型、仿真及下載,并采用嵌入式邏輯分析儀分析和驗(yàn)證了實(shí)驗(yàn)結(jié)果。該系統(tǒng)可以完成多位頻率控制字的累加,能夠產(chǎn)生正弦波、方波和三角波,具有良好的實(shí)時性。

          本文引用地址:http://www.ex-cimer.com/article/190355.htm

          關(guān)鍵詞:流水線技術(shù);超高速集成電路硬件描述語言;現(xiàn)場可編程門陣列;相位累加器

          隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,在通信系統(tǒng)中往往需要在一定頻率范圍內(nèi)提供一系列穩(wěn)定和準(zhǔn)確的頻率信號,一般的振蕩器已不能滿足要求,這就需要頻率合成技術(shù)。是第3代頻率合成器,它采用全數(shù)字技術(shù),具有頻率切換時間短、頻率精度和分辨率高、輸出相位連續(xù)、易于控制等優(yōu)點(diǎn)。

          現(xiàn)場可編程門陣列(FPGA)器件具有工作速度快、集成度高、可靠性高和現(xiàn)場可編程等優(yōu)點(diǎn),并且FPGA支持系統(tǒng)現(xiàn)場修改和調(diào)試,采用FP GA設(shè)計的具有電路簡單,性能穩(wěn)定等特點(diǎn),也能滿足絕大多數(shù)通信系統(tǒng)的使用要求。而在DDS相位累加器的設(shè)計當(dāng)中,傳統(tǒng)的累加器采用多位全加器直接相加的方式來實(shí)現(xiàn),但隨著頻率控制字位數(shù)的增加,系統(tǒng)的實(shí)時性會大幅降低。針對這一問題,本文提出了一種的相位累加器,該結(jié)構(gòu)能夠縮短運(yùn)算時間,提高整個系統(tǒng)的實(shí)時性。

          本文介紹了DDS的基本原理,闡述了基于的累加器的設(shè)計方案及具體的設(shè)計方法,采用嵌入式邏輯分析儀分析了正弦波、方波、鋸齒波和三角波等波形,并給出了計算機(jī)仿真和實(shí)驗(yàn)結(jié)果,最后總結(jié)了該系統(tǒng)的特點(diǎn)。

          1 DDS基本原理

          如圖1所示,基本的DDS結(jié)構(gòu)一般由4個模塊構(gòu)成,分別是相位累加器、波形存儲器ROM,D/A轉(zhuǎn)換器和低通濾波器LPF。

          a.JPG

          系統(tǒng)時鐘fc為基準(zhǔn)頻率源,K為頻率控制字,通過改變K的數(shù)值可以改變DDS的輸出頻率,在fc上升沿到來時,相位累加器會對頻率控制字K進(jìn)行相位累加,累加結(jié)果即是波形存儲器ROM中幅值的地址數(shù)據(jù),經(jīng)過尋址,幅值由ROM輸出到D/A轉(zhuǎn)換器中,D/A轉(zhuǎn)換器將由二進(jìn)制編碼的數(shù)字信號轉(zhuǎn)換為模擬信號輸出,該模擬信號再經(jīng)過低通濾波器的濾波就可以得到平滑的波形曲線。

          DDS的輸出頻率為:

          fo=(K/2N)fc (1)

          式中:N為相位累加器的位數(shù);fc作為基準(zhǔn)頻率源一般是給定的數(shù)值,因此,決定DDS輸出頻率的因素分別是頻率控制字K和相位累加器的位數(shù)N。當(dāng)K取最小值1時,DDS的輸出頻率即是它的最小分辨率:

          fo=fc/2N (2)

          2 流水線相位累加器的設(shè)計

          相位累加器是DDS的重要組成部分,在基準(zhǔn)時鐘控制下,它用來實(shí)現(xiàn)線性數(shù)字信號的逐級累加,信號范圍從0加到累加器的滿偏值,由此得到相應(yīng)的相位數(shù)據(jù),而相位累加器的頻率就是DDS輸出信號的頻率。在通常的電路優(yōu)化設(shè)計中,累加器模塊采用超前進(jìn)位加法器,這種結(jié)構(gòu)克服了串行進(jìn)位引起的時間滯后,很大程度上提高了加法器的運(yùn)算速度,但仍有不足。為了提高DDS頻率轉(zhuǎn)換速度和實(shí)時性,本文提出了一種流水線結(jié)構(gòu)來優(yōu)化DDS的相位累加器。

          FPGA的結(jié)構(gòu)特點(diǎn)很適合采用流水線設(shè)計,以Altera低成本系列CycloneⅡ?yàn)槔?,不僅有最多達(dá)68 416個邏輯單元(LE),每個LE均含有1個四輸入查找表LUT、1個可編程觸發(fā)器等。設(shè)計中可將1個算術(shù)操作分解成一些小規(guī)模的基本操作配置到LUT中,將進(jìn)位和中間值存儲在寄存器中,在下一個時鐘內(nèi)繼續(xù)運(yùn)算,整個系統(tǒng)只需要極少或不需要額外的資源成本。

          流水線結(jié)構(gòu)的基本原理是將整個電路劃分為若干個流水線級,每級之間設(shè)置寄存器鎖存上一級輸出的數(shù)據(jù);每一級只完成數(shù)據(jù)處理的一部分,一個時鐘周期完成一級數(shù)據(jù)處理,然后在下一個時鐘到來時將處理后的數(shù)據(jù)傳遞給下一級。第一組數(shù)據(jù)進(jìn)入流水線后,經(jīng)過1個時鐘周期傳到第二級,同時第二組數(shù)據(jù)進(jìn)入第一級,數(shù)據(jù)隊列依次前進(jìn)。每組數(shù)據(jù)都要經(jīng)過所有的流水線級后才能得到最后的計算結(jié)果,但對整個流水線而言,每個時鐘都能計算出一組結(jié)果,所以平均計算一組數(shù)據(jù)只需要一個時鐘周期的時間,這樣就大大提高了數(shù)據(jù)處理速度。圖2為在QuartusⅡ開發(fā)環(huán)境下用原理圖輸入法搭建的流水線相位累加器結(jié)構(gòu)圖。該結(jié)構(gòu)由四級流水線構(gòu)成,每一級流水線的輸入字節(jié)為8位,分別由8位數(shù)據(jù)鎖存器,8位數(shù)據(jù)全加器,1位數(shù)據(jù)鎖存器構(gòu)成,整個系統(tǒng)可實(shí)現(xiàn)32位輸入控制字的相位累加功能。根據(jù)流水線相位累加器的工作原理,首先將32位輸入控制字a由低位到高位平均分為4段,每一段為8位,分別以a[0..7]到a[24..32]來命名。將a[0..7]作為第一級的輸入控制字輸入到8位數(shù)據(jù)鎖存器reg8中,在時鐘信號clk上升沿到來之時,reg8暫存的控制字會送入到8位數(shù)據(jù)全加器adder8中與另一個加法數(shù)和進(jìn)位信號進(jìn)行全加運(yùn)算。另一個加法數(shù)是來自本級運(yùn)算結(jié)果的反饋,為保持時鐘節(jié)拍的一致性,該反饋先輸入到另一個reg8中暫存,然后在時鐘上升沿到來之時輸入到全加器進(jìn)行運(yùn)算;進(jìn)位信號來自第四級,該信號也是先暫存在一個1位數(shù)據(jù)鎖存器reg1中再輸入到全加器中進(jìn)行運(yùn)算。

          b.JPG


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();