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