DDS流水線結(jié)構(gòu)的改進
摘要:分析了DDS中流水線結(jié)構(gòu)及輸入數(shù)據(jù)在其中移動的特點,提出了一種DDS流水線結(jié)構(gòu)的改進方案,給出了實現(xiàn)的方法并作了仿真,分析了對DDS電路性能的改進方案。
本文引用地址:http://m.butianyuan.cn/article/201609/304708.htm關(guān)鍵詞:DDS 流水線 改進的流水線結(jié)構(gòu)
DDS(Direct Digital Synthesizer)以其頻率分辨率高、轉(zhuǎn)換速率快及波形變換靈活等特點,已廣泛應(yīng)用于通訊、雷達、GPS、蜂窩基站有HDTV等領(lǐng)域。DDS相位字長及運算速度決定了DDS的性能[1],相位累加器、移相加法器及LUT的字長越長,頻率分辨率及波形精度越高,相位截尾誤差越小[2]。目前DDS相位累加器的位數(shù)一般在32~48位之間;而時鐘頻率越高,輸出頻率的范圍越大。流水線是高速電路中一種常用的技術(shù)[3],高速、高精度DDS的相位累加器、相移加法器、用于調(diào)幅及正交調(diào)制的乘法器都采用了流水線結(jié)構(gòu)。
普通的流水線結(jié)構(gòu)所占用的寄存器資源和其級數(shù)的平方比正比,無論是現(xiàn)有的專用DDS集成電路,還是采用FPGA等可編程器件實現(xiàn),都將占用大量寄存器資源。其實,DDS中的輸入數(shù)據(jù)一般在一個較長的時間內(nèi)保持不變?;谶@一特點,本文提出一種改進的DDS流水線結(jié)構(gòu),可以大大減少占用的寄存器資源。
1 問題的提出
1.1 DDS結(jié)構(gòu)及工作原理
圖1是包含移相及調(diào)幅部分的相位累加型DDS的結(jié)構(gòu)框圖。每一時鐘周期,N位相位累加器PA與N位頻率控制字FW累加一次。其結(jié)果的高M位作波形表LUT(Look-Up Table)的地址,如果加上PSR的值可實現(xiàn)移相,從LUT中讀出D位波形數(shù)據(jù)送DAC。若乘以AR的值還可實現(xiàn)調(diào)幅。改變FW的值可改變輸出頻率,改變PSR的值可實現(xiàn)調(diào)相,改變AR的值可以實現(xiàn)調(diào)幅。一般情況下,F(xiàn)W、PSR及AR刷新頻率要比DDS系統(tǒng)時鐘慢得多。
1.2 DDS中流水線結(jié)構(gòu)
當DDS的相位字長較長、速度較高時,相位累加器、移相加法器或其綜合及調(diào)幅乘法器一般都采用流水線結(jié)構(gòu)。以下僅以相位累加器為例,分析流水線的結(jié)構(gòu)、性能及其改進。當相位累加器采用m級n位流水線結(jié)構(gòu)時,有, 這里PA,F(xiàn)W分別是相位累加器的值和相位階距,PAm是各級加法器的部分和。其中,輸入緩沖流水線為m級n位,占用寄存器[(m-1)×m×n]/2 位,而相位累加器輸出的高M位需m1=int[(m-1)/m]+1級流水線,占用[(m1-1) ×m1×n]/2+m1×(M mod m)(int[·]是取整運算)。圖2、3分別是m=4、n=4、M=8時相位累加器的結(jié)構(gòu)及時序圖。此時,輸入流水線占用24位寄存器;m=8、n=4 時(32位相位累加器),輸入流水線占用112位寄存器;m=12、n=4,(48位相位累加器),占用264位寄存器;若選取m=48、n=1,則占用 1128位寄存器。如果省去輸入流水線,改變相位階距時,將導(dǎo)致相位紊亂。
2 改進的流水線結(jié)構(gòu)
2.1 結(jié)構(gòu)及其工作原理
一般來說,DDS控制數(shù)據(jù)刷新速率遠低于系統(tǒng)時鐘。以相位累加器為例,進入各組加法器的頻率控制字值,只在數(shù)據(jù)更新后的前m個時鐘周期變化。以后各個周期不再變化。基于這種情況,可以對累加器進行改進,從而節(jié)省部分寄存器。圖4是改進輸入流水線的相位累加器結(jié)構(gòu)圖,圖5是輸入數(shù)據(jù)及控制信號的時序圖。
在輸入數(shù)據(jù)D0~15(N)準備好后,由外部控制系統(tǒng)向流水線刷新控制電路 CON發(fā)出一啟動信號Start,CON在Start下降沿后的第一時鐘上升沿到來時,輸入寫入脈沖WR0,將D0~3(N)寫入第一級流水線寄存器;第二時鐘上升沿到來時,輸出寫入脈沖WR1,將D4~7(N)寫入第二級流水線寄存器;依次類推,到第四上升沿到來時,輸出寫入脈沖WR3,將 D12~15(N)寫入第四級流水線寄存器,完成一次數(shù)據(jù)的刷新。在以后的周期內(nèi),這些數(shù)據(jù)將保持不變,直至新的Start到來。
改進后的流水線所占用的寄存器位數(shù)和相位的字長相等,
與流水線的級數(shù)無磁。相位字長較長時,這種改進的效果是非常明顯的。
2.2 刷新控制器的設(shè)計
刷新控制器實質(zhì)上是一種陣發(fā)式脈沖分配器,由Start啟動,當完成一個周期的脈沖分配輸出后,便停止計數(shù)。陣發(fā)式脈沖分配器的設(shè)計及實現(xiàn)方法很多,以下是基于Altera的FPGA,以MAX+Plus Ⅱ的HDL實現(xiàn)的陣發(fā)式脈沖分配器,流水線中的寄存器為上升沿有效,延遲時間為12.5ns,速度可達80MHz(FLEX 10K20RC240-4),圖6是其仿真結(jié)果。
(FLEX 10K20RC240-4),圖6是其仿真結(jié)果。
SUBDESIGN control
(cp,start : INPUT;
q3,q2,q1,q0 : OUTPUT;)
VARIABLE
s:MACHINE OF BITS (q3,q2,q1,q0)WITH STATES
(s0=b0000,s1=b0001,s2=b0010,
s3=b0100,s4=b1000);
BEGIN
s.clk = cp;
s.reset = start;
TABLE s=>s;
s0=>s1;s1=>s2;s2=>s3;s3=>s4;s4=>s4;
END TABLE;
END;
2.3 性能改善
2.3.1 寄存器的減少
輸入流水線結(jié)構(gòu)改后后,寄存器的位數(shù)和相位累加器的位數(shù)呈線性關(guān)系,位數(shù)大大減少,特別是對級數(shù)較多的流水線,即使對寄存器密集型的FPGA,這也是有益的。
2.3.2 功耗降低
由于僅在刷新數(shù)據(jù)時,流水線中觸發(fā)器的狀態(tài)發(fā)生改變,在以后很長一段時間內(nèi),狀態(tài)不再改變,這對降低電路功耗是有益的。
2.4 應(yīng)用
在刷新數(shù)據(jù)時,只要輸出一個啟動信號,使用方法和方案一樣便捷。啟動信號通常由外部控制電路給出,上例中,
刷新動作從啟動信號Start后的第一個時鐘上升沿開始。
需要注意的是,在刷新數(shù)據(jù)時,每一組數(shù)據(jù)保持的時鐘周期數(shù)必須大于流水線的級數(shù)。上命名中,數(shù)據(jù)必須保持4個時鐘周期以上,否則高位數(shù)據(jù)將不能傳送到相應(yīng)級的累加器。
本文分析了高速DDS中的頻率控制字、相移字等輸入數(shù)據(jù)的變化特點。提出了一種 DDS流水線結(jié)構(gòu)的改進方案,給出了具體實現(xiàn)的方法及仿真,并成功地用于高頻高精度AWG的研制。用這種方法設(shè)計的DDS及NCO等電路,降低了寄存器的占用,也降低了系統(tǒng)的功耗,可有效提高電路的性能價格比。這種設(shè)計方法對其它的流水線結(jié)構(gòu)設(shè)計也有一定的參考價值。
評論