- 相關(guān)推薦
高速數(shù)字串行加法器及其應(yīng)用
摘要:與傳統(tǒng)加法器相比,數(shù)字串行加法器具有工作頻率高、占用資源少、設(shè)計(jì)靈活等優(yōu)點(diǎn)。介紹了數(shù)字串行加法器的原理,說明了該加法器在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)算中,加法是最常用的。常見的加法器是位并行的(Bit-parallel),在一個時鐘周期內(nèi)完成加法運(yùn)算。其速度較高,占用的資源較多。但是,在很多應(yīng)用中,并不需要這么高的速度,而且希望減小資源消耗。這時可以采用數(shù)字串行(Digit-serial)加法器,利用多個時鐘周期完成一個完整的加法運(yùn)算,從而使占用的資源大幅度減少。為了使數(shù)字串行加法器具有更廣泛的應(yīng)用范圍,設(shè)計(jì)的關(guān)鍵是要使電路達(dá)到盡可能高的工作頻率,以取得高的數(shù)據(jù)吞吐量(Throughput),從而滿足系統(tǒng)其它部分的速度要求。
。睌(shù)字串行加法器
在數(shù)字串行加法器中,字長為W的操作數(shù)被分為P個位寬為N(N能被W整除,P=W/N)的數(shù)字,然后從低位開始相加,在P個時鐘內(nèi)完成加法操作。P個時鐘周期稱為一個采樣周期(SamplePeriod)。
。危剑驳臄(shù)字串行加法器結(jié)構(gòu)如圖1所示。如果輸入操作數(shù)的字長為8,那么串行加法器可以在4個時鐘周期內(nèi)完成加法運(yùn)算。這個加法器只用了兩個全加器的資源,比一般的8bit行波進(jìn)位加法器小。
數(shù)字串行加法器的控制也比較簡單,輸入移位寄存器完成并行-串行轉(zhuǎn)換功能,通過移位操作不斷為加法器提供位寬為N的操作數(shù);Control信號指示了新采樣周期的開始,此時carry清零;輸出移位寄存器完成串行-并行轉(zhuǎn)換,輸出計(jì)算結(jié)果。
對于特定的輸入字長,通過選擇不同的N,可以實(shí)現(xiàn)速度、面積不同的數(shù)字串行加法器。這樣,設(shè)計(jì)者可以根據(jù)實(shí)際情況加以選擇,提高了設(shè)計(jì)的靈活性。
圖22bit全加器連接示意圖
。哺咚贁(shù)字串行加法器在FPGA上的實(shí)現(xiàn)
由于數(shù)字串行加法器要用P個時鐘周期才能完成整個加法操作,因此其工作頻率必須足夠高。這樣,在FPGA上實(shí)現(xiàn)時,如何使串行加法器具有盡量高的工作頻率就將成為關(guān)鍵問題。下面以Xilinx公司的VirtexE系列FPGA為例,說明如何設(shè)計(jì)高速數(shù)字串行加法器。
。郑椋颍簦澹诺囊粋CLB(ConfigurableLogicBlock)包含兩個slice,圖2為在一個slice上實(shí)現(xiàn)2bit全加器的連接示意圖(不相關(guān)的邏輯已略去)。
數(shù)字串行加法器的結(jié)構(gòu)是行波進(jìn)位加法器,因此必須盡量減小進(jìn)位邏輯上的延遲。VirtexE的slice中提供了專用的進(jìn)位邏輯和布線,充分利用這些資源可以提高加法器的性能。
對VirtexE系列,數(shù)字串行加法器應(yīng)選用奇數(shù)位寬,這是因?yàn)樵冢郑椋颍簦澹胖幸粋slice包括兩個LUT(查找表)、兩個觸發(fā)器和一些其它的組合邏輯,因此使用一個slice剛好可以實(shí)現(xiàn)一個1bit的全加器,使用兩個slice可以實(shí)現(xiàn)一個3bit的全加器。如果要實(shí)現(xiàn)2bit的全加,則需要一個slice完成2bit的相加和保存,另外還需要一個slice中的一個寄存器用來存儲進(jìn)位,這樣兩個slice整體的利用率就降低很多。數(shù)據(jù)位寬為2、4、6、8等偶數(shù)時都存在這樣的問題。圖3為N=3時加法器的布局布線示意圖。由于專用的進(jìn)位鏈布線資源僅存在于縱向的兩個slice之間,所以在實(shí)現(xiàn)3bit加法器時,使用縱向相鄰的兩個slice。
加法器的關(guān)鍵路徑在進(jìn)位鏈上,其延時為:
。裕茫耍希浴纾危澹簦撸茫幔颍颍撸颍澹纾裕拢兀茫伲浴纾危澹簦撸茫幔颍颍撸铮酰簦裕茫耍茫
。剑保埃浴纾危澹簦撸茫幔颍颍撸颍澹纾埃担矗浴纾危澹簦撸茫幔颍颍撸铮酰簦保
。剑玻福矗浴纾危澹簦撸茫幔颍颍撸颍澹纾浴纾危澹簦撸茫幔颍颍撸铮酰
式中,TCKO為DFF的CLK到XQ/YQ的延時,
。裕拢兀茫贋椋拢氐剑茫希眨缘难訒r,TCKCY為CIN到DFF的建立時間。這些延時的數(shù)值可以從手冊獲得。連線延時包括$Net_Carry_reg和$Net_Carry_out的延時。前者是進(jìn)位鏈,延時為0;后者為普通連線,延時約為0.47ns。因此,總延時約為3.31ns,即工作頻率約為300MHz。
為了減小延時、提高工作頻率,使用FPGAEditor?qū)Σ季植季進(jìn)行精確控制,并把加法器做成硬宏,有利于保證多次實(shí)例化時的性能,F(xiàn)將使用宏完成的設(shè)計(jì)和使用HDL語言完成的設(shè)計(jì)在工作頻率上做一個比較。使用Virtex50E-6pq240器件、xst綜合器時,用宏完成的3bit數(shù)字串行加法器的最高工作頻率為300MHz,而用HDL完成的相同設(shè)計(jì)的最高工作頻率只有186MHz。這是由于設(shè)計(jì)用HDL輸入時,布局布線工具用了3個slice,第一個slice完成2bit全加器,第二個slice完成1bit全加器,第三個slice只用了內(nèi)部的一個觸發(fā)器來存儲進(jìn)位,第一、二個slice之間用進(jìn)位鏈連接,延時為0,但是第二、三個slice之間只能使用普通連線,而且第三個slice的輸入CIN到觸發(fā)器的建立時間較大,因而影響了串行加法器的運(yùn)行速度。
。硵(shù)字串行加法器的應(yīng)用
數(shù)字串行加法器可以代替?zhèn)鹘y(tǒng)加法器用在濾波器、乘法器、累加器等電路的設(shè)計(jì)中,能大大減小資源占用。下面以在CDMA/WCDMA系統(tǒng)中廣泛應(yīng)用的匹配濾波器為例說明數(shù)字串行加法器的應(yīng)用。
匹配濾波器是一種無源相關(guān)技術(shù),它可以快速實(shí)現(xiàn)相關(guān)器的功能。匹配濾波器的沖激響應(yīng)為:
h(t)=s(T-t)(0≤t≤T)
設(shè)s(t)為輸入波形,則其輸出波形為:
可知濾波輸出R(t-T)是輸入信號的自相關(guān)函數(shù)。
在CDMA、WCDMA等系統(tǒng)中,匹配濾波使用本地碼系列來匹配輸入到接收機(jī)的采樣數(shù)據(jù)。在濾波器中,本地碼序列與接收數(shù)據(jù)進(jìn)行相乘、求和操作,得到相關(guān)值,相關(guān)值越大說明相關(guān)程度越高。其工作過程如圖4所示。匹配濾波器可以使用移位寄存器和加法器來實(shí)現(xiàn),結(jié)構(gòu)如圖5所示,其中,濾波器的系數(shù)因子h(n)為本地碼序列,輸入x(n)為接收數(shù)據(jù),數(shù)據(jù)每移位一次,濾波器計(jì)算一次輸出結(jié)果。當(dāng)移動到兩個序列相位對齊時,就產(chǎn)生一個相關(guān)峰值輸出。
系統(tǒng)對匹配濾波的設(shè)計(jì)要求是:匹配長度為256,輸入四路數(shù)據(jù),每一路經(jīng)過7bit量化、速率為7.68MHz,即濾波器的處理速度為4×7.68=30.72MHz。對于這樣一個匹配濾波器,有很多種實(shí)現(xiàn)方法,例如在高速率下可以通過旋轉(zhuǎn)數(shù)據(jù)/旋轉(zhuǎn)本地碼序列或者通過動態(tài)、靜態(tài)數(shù)據(jù)互換來簡化設(shè)計(jì)。這些方法都用到一個比較大型的加法樹,如果用一般加法器實(shí)現(xiàn),將占用大量的資源,因此有必要加以改進(jìn)。
設(shè)計(jì)中用到的加法樹有256個7bit輸入,計(jì)算結(jié)果為15bit。采用一般加法器實(shí)現(xiàn)的結(jié)構(gòu)如圖6(a)所示,在VirtexE中約占1100個slice,資源消耗過大。為了減小資源消耗、提高設(shè)計(jì)密度,使用上述3bit數(shù)字串行加法器對加法樹進(jìn)行改進(jìn),改進(jìn)后的結(jié)構(gòu)如圖6(b)所示。由于減小了加法器的運(yùn)算寬度,大大降低了使用的邏輯資源,整個加法樹大約只用512個slice。
使用數(shù)字串行加法樹完成加法運(yùn)算需要的時鐘周期與加法器的位寬有關(guān),增加加法器的位寬可以減小運(yùn)算需要的時鐘周期、提高濾波器的數(shù)據(jù)吞吐量,但是也增加了硬件資源的消耗。所以在處理能力滿足的條件下,應(yīng)該選擇比較小的位寬。列出了用不同位寬的數(shù)字串行加法器實(shí)現(xiàn)的加法樹的工作頻率和占用資源,選用器件為XCV200E-6BG352,綜合工具為XST。
對于本設(shè)計(jì),如果使用1bit的數(shù)字串行加法器,數(shù)據(jù)經(jīng)過加法樹之后從7bit擴(kuò)展成15bit,所以數(shù)據(jù)完全輸出需要15個時鐘周期。根據(jù)這些要求,為了使得濾波器達(dá)到30.72MHz的處理速度,1bit的串行加法器必須工作在15×30.72=460.8MHz。如果使用3bit串行加法器,數(shù)據(jù)完全輸出需要15/3個時鐘周期,即加法器的工作頻率應(yīng)為5×30.72=153.6MHz。3bit的數(shù)字串行加法樹可以滿足設(shè)計(jì)要求,而資源占用是一般加法樹的50%。
【高速數(shù)字串行加法器及其應(yīng)用】相關(guān)文章:
ADμC812的串行外設(shè)接口(SPI)及其應(yīng)用08-06
基于高速串行BCD碼除法的數(shù)字頻率計(jì)的設(shè)計(jì)08-06
高速數(shù)字光電耦合器HCPL-260L/060L及其應(yīng)用08-06
串行擴(kuò)展應(yīng)用平臺設(shè)計(jì)08-06
淺析數(shù)字電視地面廣播技術(shù)及其應(yīng)用08-06
串行接口鍵盤控制器SK5278及其在單片機(jī)系統(tǒng)中的應(yīng)用08-06