高速數(shù)字串行加法器及其應(yīng)用
高速數(shù)字串行加法器及其應(yīng)用
深圳南山區(qū)科技園中興通訊IC開(kāi)發(fā)一部(518057) 鐘信潮
上海盛立亞光網(wǎng)絡(luò)系統(tǒng)有限公司 薛小剛
深圳南山區(qū)科技園中興通訊3G開(kāi)發(fā)(518057) 王 誠(chéng)
摘 要:與傳統(tǒng)加法器相比,數(shù)字串行加法器具有工作頻率高、占用資源少、設(shè)計(jì)靈活等優(yōu)點(diǎn)。介紹了數(shù)字串行加法器的原理,說(shuō)明了該加法器在FPGA上的實(shí)現(xiàn)要點(diǎn)及其在匹配濾波器設(shè)計(jì)中的應(yīng)用。
關(guān)鍵詞:加法器 位并行 數(shù)字串行 FPGA 匹配濾波器
與傳統(tǒng)DSP相比,定制DSP具有速度更高、設(shè)計(jì)靈活、易于更改等優(yōu)點(diǎn),常常應(yīng)用于設(shè)計(jì)方案和關(guān)鍵算法的驗(yàn)證。
在DSP運(yùn)算中,加法是最常用的。常見(jiàn)的加法器是位并行的(Bit-parallel),在一個(gè)時(shí)鐘周期內(nèi)完成加法運(yùn)算。其速度較高,占用的資源較多。但是,在很多應(yīng)用中,并不需要這么高的速度,而且希望減小資源消耗。這時(shí)可以采用數(shù)字串行(Digit-serial)加法器,利用多個(gè)時(shí)鐘周期完成一個(gè)完整的加法運(yùn)算,從而使占用的資源大幅度減少。為了使數(shù)字串行加法器具有更廣泛的應(yīng)用范圍,設(shè)計(jì)的關(guān)鍵是要使電路達(dá)到盡可能高的工作頻率,以取得高的數(shù)據(jù)吞吐量(Throughput),從而滿(mǎn)足系統(tǒng)其它部分的速度要求。
1 數(shù)字串行加法器
在數(shù)字串行加法器中,字長(zhǎng)為W的操作數(shù)被分為P個(gè)位寬為N(N能被W整除,P=W/N)的數(shù)字,然后從低位開(kāi)始相加,在P個(gè)時(shí)鐘內(nèi)完成加法操作。P個(gè)時(shí)鐘周期稱(chēng)為一個(gè)采樣周期(Sample Period)。
圖1 N=2的數(shù)字串行加法器
N=2的數(shù)字串行加法器結(jié)構(gòu)如圖1所示。如果輸入操作數(shù)的字長(zhǎng)為8,那么串行加法器可以在4個(gè)時(shí)鐘周期內(nèi)完成加法運(yùn)算。這個(gè)加法器只用了兩個(gè)全加器的資源,比一般的8bit行波進(jìn)位加法器小。
數(shù)字串行加法器的控制也比較簡(jiǎn)單,輸入移位寄存器完成并行-串行轉(zhuǎn)換功能,通過(guò)移位操作不斷為加法器提供位寬為N的操作數(shù);Control信號(hào)指示了新采樣周期的開(kāi)始,此時(shí)carry清零;輸出移位寄存器完成串行-并行轉(zhuǎn)換,輸出計(jì)算結(jié)果。
對(duì)于特定的輸入字長(zhǎng),通過(guò)選擇不同的N,可以實(shí)現(xiàn)速度、面積不同的數(shù)字串行加法器。這樣,設(shè)計(jì)者可以根據(jù)實(shí)際情況加以選擇,提高了設(shè)計(jì)的靈活性。
2 高速數(shù)字串行加法器在FPGA上的實(shí)現(xiàn)
由于數(shù)字串行加法器要用P個(gè)時(shí)鐘周期才能完成整個(gè)加法操作,因此其工作頻率必須足夠高。這樣,在FPGA上實(shí)現(xiàn)時(shí),如何使串行加法器具有盡量高的工作頻率就將成為關(guān)鍵問(wèn)題。下面以Xilinx公司的VirtexE系列FPGA為例,說(shuō)明如何設(shè)計(jì)高速數(shù)字串行加法器。
圖2 2bit全加器連接示意圖
VirtexE的一個(gè)CLB(Configurable Logic Block)包含兩個(gè)slice,圖2為在一個(gè)slice上實(shí)現(xiàn)2bit全加器的連接示意圖(不相關(guān)的邏輯已略去)。
數(shù)字串行加法器的結(jié)構(gòu)是行波進(jìn)位加法器,因此必須盡量減小進(jìn)位邏輯上的延遲。VirtexE的slice中提供了專(zhuān)用的進(jìn)位邏輯和布線(xiàn),充分利用這些資源可以提高加法器的性能。
對(duì)VirtexE系列,數(shù)字串行加法器應(yīng)選用奇數(shù)位寬,這是因?yàn)樵赩irtexE中一個(gè)slice包括兩個(gè)LUT(查找表)、兩個(gè)觸發(fā)器和一些其它的組合邏輯,因此使用一個(gè)slice剛好可以實(shí)現(xiàn)一個(gè)1bit的全加器,使用兩個(gè)slice可以實(shí)現(xiàn)一個(gè)3bit的全加器。如果要實(shí)現(xiàn)2bit的全加,則需要一個(gè)slice完成2bit的相加和保存,另外還需要一個(gè)slice中的一個(gè)寄存器用來(lái)存儲(chǔ)進(jìn)位,這樣兩個(gè)slice整體的利用率就降低很多。數(shù)據(jù)位寬為2、4、6、8等偶數(shù)時(shí)都存在這樣的問(wèn)題。圖3為N=3時(shí)加法器的布局布線(xiàn)示意圖。由于專(zhuān)用的進(jìn)位鏈布線(xiàn)資源僅存在于縱向的兩個(gè)slice之間,所以在實(shí)現(xiàn)3bit加法器時(shí),使用縱向相鄰的兩個(gè)slice。
圖3 N=3時(shí)數(shù)字串行加法器布局布線(xiàn)圖
加法器的關(guān)鍵路徑在進(jìn)位鏈上,其延時(shí)為:
式中,TCKO為DFF的CLK到XQ/YQ的延時(shí),TBXCY為BX到COUT的延時(shí),TCKCY為CIN到DFF的建立時(shí)間。這些延時(shí)的數(shù)值可以從手冊(cè)[1]演獲得。連線(xiàn)延時(shí)包括$Net_Carry_reg和$Net_Carry_out的延時(shí)。前者是進(jìn)位鏈,延時(shí)為0;后者為普通連線(xiàn),延時(shí)約為0.47ns。因此,總延時(shí)約為3.31ns,即工作頻率約為 300MHz。
為了減小延時(shí)、提高工作頻率,使用FPGA Editor對(duì)布局布線(xiàn)進(jìn)行精確控制,并把加法器做成硬宏,有利于保證多次實(shí)例化時(shí)的性能?,F(xiàn)將使用宏完成的設(shè)計(jì)和使用HDL語(yǔ)言完成的設(shè)計(jì)在工作頻率上做一個(gè)比較。使用Virtex50E-6pq240器件、xst綜合器時(shí),用宏完成的3bit數(shù)字串行加法器的最高工作頻率為300MHz,而用HDL完成的相同設(shè)計(jì)的最高工作頻率只有186MHz。這是由于設(shè)計(jì)用HDL輸入時(shí),布局布線(xiàn)工具用了3個(gè)slice,第一個(gè)slice完成2bit全加器,第二個(gè)slice完成1bit全加器,第三個(gè)slice只用了內(nèi)部的一個(gè)觸發(fā)器來(lái)存儲(chǔ)進(jìn)位,第一、二個(gè)slice之間用進(jìn)位鏈連接,延時(shí)為0,但是第二、三個(gè)slice之間只能使用普通連線(xiàn),而且第三個(gè)slice的輸入CIN到觸發(fā)器的建立時(shí)間較大,因而影響了串行加法器的運(yùn)行速度。
3 數(shù)字串行加法器的應(yīng)用
數(shù)字串行加法器可以代替?zhèn)鹘y(tǒng)加法器用在濾波器、乘法器、累加器等電路的設(shè)計(jì)中,能大大減小資源占用。下面以在CDMA/WCDMA系統(tǒng)中廣泛應(yīng)用的匹配濾波器為例說(shuō)明數(shù)字串行加法器的應(yīng)用。
匹配濾波器是一種無(wú)源相關(guān)技術(shù),它可以快速實(shí)現(xiàn)相關(guān)器的功能。匹配濾波器的沖激響應(yīng)為:
可知濾波輸出R(t-T)是輸入信號(hào)的自相關(guān)函數(shù)。
在CDMA、WCDMA等系統(tǒng)中,匹配濾波使用本地碼系列來(lái)匹配輸入到接收機(jī)的采樣數(shù)據(jù)。在濾波器中,本地碼序列與接收數(shù)據(jù)進(jìn)行相乘、求和操作,得到相關(guān)值,相關(guān)值越大說(shuō)明相關(guān)程度越高。其工作過(guò)程如圖4所示。匹配濾波器可以使用移位寄存器和加法器來(lái)實(shí)現(xiàn),結(jié)構(gòu)如圖5所示,其中,濾波器的系數(shù)因子h(n)為本地碼序列,輸入x(n)為接收數(shù)據(jù),數(shù)據(jù)每移位一次,濾波器計(jì)算一次輸出結(jié)果。當(dāng)移動(dòng)到兩個(gè)序列相位對(duì)齊時(shí),就產(chǎn)生一個(gè)相關(guān)峰值輸出。
系統(tǒng)對(duì)匹配濾波的設(shè)計(jì)要求是:匹配長(zhǎng)度為256,輸入四路數(shù)據(jù),每一路經(jīng)過(guò)7bit量化、速率為7.68MHz,即濾波器的處理速度為4
評(píng)論