利用FPGA實(shí)現的任意波形發(fā)生器的研究設計
下面就將前5級采用超前進(jìn)位加法器的32位累加器和宏模塊中調用的4位全加器組成的32位相位累加器性能進(jìn)行比較。
普通流水線(xiàn)累加器的模塊是由4位D觸發(fā)器,5位D觸發(fā)器和4位全加器作為基本元件,采用原理圖輸入的方法設計FPGA的流水線(xiàn)累加器。該模塊的設計參照流水線(xiàn)累加器結構進(jìn)行,不同之處在于:由于相位累加器只用高位尋址,所以低位上為了和高位結果同時(shí)輸出而做延時(shí)作用的D觸發(fā)器件均被去掉了。這樣做的結果是,相位累加器輸出的低20位會(huì )因為提前輸出而混亂,但是由于高12位的輸出一定是正確的,這樣做既節省了資源,對結果又沒(méi)有任何影響。仿真結果證明假如不用流水線(xiàn)結構,32 bit相位累加器工作頻率最高達到約25 MHz。消耗的資源是82個(gè)LEs,而用了8級流水線(xiàn)結構后,編譯工作頻率最高達到了約317.79 MHz,資源消耗為186個(gè)LEs??梢?jiàn)在資源上的消耗換來(lái)了在性能上的極大提高。
流水線(xiàn)累加器的時(shí)序仿真如圖7所示:可以看出當輸入數據確定后,輸出結果要經(jīng)過(guò)8個(gè)時(shí)鐘周期的延時(shí)后輸出,這是因為采用了8級流水結構。采用多少級流水結構,輸出就會(huì )延時(shí)多少個(gè)周期。同時(shí)也說(shuō)明,對于輸入數據切換來(lái)說(shuō),該系統會(huì )有8個(gè)時(shí)鐘周期的延時(shí),這是累加器采用流水線(xiàn)結構所不可避免的后果。事實(shí)上目前許多DDS專(zhuān)用芯片由于也采用流水線(xiàn)結構,所以本身也存在這樣的問(wèn)題。由于8個(gè)時(shí)鐘周期的延時(shí)與系統時(shí)鐘相比,實(shí)際上還是很小的,在一般的應用場(chǎng)合下也是可以接受的。由于輸出的低20位未用,被省略了,只用了輸出的高12位,所以仿真波形中只有高12位的輸出結果。從輸出結果來(lái)看,高12位的輸出值是沒(méi)有錯誤的,與設計思想吻合。
下面介紹超進(jìn)位流水線(xiàn)累加器的構成,比較流水線(xiàn)累加器內部結構圖和超前進(jìn)位加法器的32位相位累加器的結構圖,可以看出兩個(gè)圖的區別,經(jīng)過(guò)編譯以后的報告如圖8所示,可以看出經(jīng)過(guò)改進(jìn)后,編譯的最大工作頻率提高到了336.7 MHz。比單純的流水線(xiàn)累加器提高了將近20 MHz。
圖9是其時(shí)序仿真圖,從圖上可以看出,其值完全和功能仿真一致。
評論