基于流水線結(jié)構(gòu)的DDS多功能信號發(fā)生器設(shè)計(jì)
摘要:在應(yīng)用FPGA進(jìn)行DDS系統(tǒng)設(shè)計(jì)過程中,選擇芯片的運(yùn)行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,從發(fā)展趨勢和運(yùn)算要求看,系統(tǒng)速度指標(biāo)的意義比面積指標(biāo)更趨重要?;诖?,介紹了一種流水線結(jié)構(gòu)來優(yōu)化傳統(tǒng)的相位累加器,在QuartusⅡ開發(fā)環(huán)境下搭建系統(tǒng)模型、仿真及下載,并采用嵌入式邏輯分析儀分析和驗(yàn)證了實(shí)驗(yàn)結(jié)果。該系統(tǒng)可以完成多位頻率控制字的累加,能夠產(chǎn)生正弦波、方波和三角波,具有良好的實(shí)時性。
本文引用地址:http://butianyuan.cn/article/190355.htm關(guān)鍵詞:流水線技術(shù);超高速集成電路硬件描述語言;現(xiàn)場可編程門陣列;相位累加器
隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,在通信系統(tǒng)中往往需要在一定頻率范圍內(nèi)提供一系列穩(wěn)定和準(zhǔn)確的頻率信號,一般的振蕩器已不能滿足要求,這就需要頻率合成技術(shù)。DDS是第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è)計(jì)的DDS具有電路簡單,性能穩(wěn)定等特點(diǎn),也能滿足絕大多數(shù)通信系統(tǒng)的使用要求。而在DDS相位累加器的設(shè)計(jì)當(dāng)中,傳統(tǒng)的累加器采用多位全加器直接相加的方式來實(shí)現(xiàn),但隨著頻率控制字位數(shù)的增加,系統(tǒng)的實(shí)時性會大幅降低。針對這一問題,本文提出了一種流水線結(jié)構(gòu)的相位累加器,該結(jié)構(gòu)能夠縮短運(yùn)算時間,提高整個系統(tǒng)的實(shí)時性。
本文介紹了DDS的基本原理,闡述了基于流水線結(jié)構(gòu)的累加器的設(shè)計(jì)方案及具體的設(shè)計(jì)方法,采用嵌入式邏輯分析儀分析了正弦波、方波、鋸齒波和三角波等波形,并給出了計(jì)算機(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。
系統(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è)計(jì)
相位累加器是DDS的重要組成部分,在基準(zhǔn)時鐘控制下,它用來實(shí)現(xiàn)線性數(shù)字信號的逐級累加,信號范圍從0加到累加器的滿偏值,由此得到相應(yīng)的相位數(shù)據(jù),而相位累加器的頻率就是DDS輸出信號的頻率。在通常的電路優(yōu)化設(shè)計(jì)中,累加器模塊采用超前進(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è)計(jì),以Altera低成本系列CycloneⅡ?yàn)槔粌H有最多達(dá)68 416個邏輯單元(LE),每個LE均含有1個四輸入查找表LUT、1個可編程觸發(fā)器等。設(shè)計(jì)中可將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ù)隊(duì)列依次前進(jìn)。每組數(shù)據(jù)都要經(jīng)過所有的流水線級后才能得到最后的計(jì)算結(jié)果,但對整個流水線而言,每個時鐘都能計(jì)算出一組結(jié)果,所以平均計(jì)算一組數(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)算。
評論