分布式運(yùn)算單元的原理及其實(shí)現(xiàn)方法
隨著FPGA集成度的不斷提高,在單片F(xiàn)PGA中完成復(fù)雜的數(shù)字信號(hào)處理過(guò)程變成了現(xiàn)實(shí)。譬如:FIR濾波器、FFT以及雷達(dá)信號(hào)處理中的數(shù)字脈沖壓縮、數(shù)字鑒相等,都可以在單片F(xiàn)PGA中實(shí)現(xiàn)。在基于Xilinx XC4000系列FPGA設(shè)計(jì)的DSP中,分布式運(yùn)算單元DA扮演著重要的角色。本文介紹其原理及其實(shí)現(xiàn)方法。
1 分布式運(yùn)算單元原理
DA的運(yùn)算原理非常簡(jiǎn)單,但是它的應(yīng)用卻十分廣泛。
一個(gè)線性時(shí)不變網(wǎng)絡(luò)的輸出可以用下式表示:
其中, y(n)為第n時(shí)刻網(wǎng)絡(luò)的輸出;Xk(n)為第n時(shí)刻的第k個(gè)輸入變量;Ak為第k個(gè)輸入變量的權(quán)值。
在線性時(shí)不變系統(tǒng)中,對(duì)于所有n時(shí)刻,Ak都是常量。如果該網(wǎng)絡(luò)表現(xiàn)為濾波器,常量Ak 即為濾波器系數(shù),變量Xk為單一數(shù)據(jù)源的抽樣數(shù)據(jù)(如A/D的輸出)。而在時(shí)-頻轉(zhuǎn)換系統(tǒng)中(如離散傅立葉變換及快速傅立葉變換),常數(shù)Ak即為旋轉(zhuǎn)因子值,變量Xk為單一數(shù)據(jù)源的數(shù)據(jù)塊(多源數(shù)據(jù)的例子可以在圖像處理系統(tǒng)中發(fā)現(xiàn))。
仔細(xì)觀察式(1)可以看出,單個(gè)輸出y(n) 需要將k個(gè)乘積累加。在以XC4000系列FPGA中的可配置邏輯功能塊(CLB)的查找表(Look-Up Table)結(jié)構(gòu)[1]為基礎(chǔ)的DA中,這種乘積累加可以由查找表來(lái)實(shí)現(xiàn)。XC4000系列的CLB結(jié)構(gòu)特點(diǎn)使得它很容易被高效的配置。
為了使得乘法之后的數(shù)據(jù)寬度不至于展寬,先把數(shù)據(jù)源數(shù)據(jù)格式規(guī)定為浮點(diǎn)數(shù)2的補(bǔ)碼形式。需要注意的是,常數(shù)Ak 不一定要進(jìn)行格式轉(zhuǎn)換來(lái)匹配輸入數(shù)據(jù)的格式,它可以根據(jù)所要求的精度進(jìn)行定義。
變量Xk可以用下式表示:
其中,Xkb為二進(jìn)制數(shù),即取值為0或1;Xk0為符號(hào)位,Xk0為1表示數(shù)據(jù)為負(fù),為0表示數(shù)據(jù)為正。
將式(2)代入式(1)可以得到:
可以看出,每個(gè)方括號(hào)中進(jìn)行的是輸入變量的某一個(gè)數(shù)據(jù)位和所有常數(shù)(A1~Ak)的每一位進(jìn)行位與并求和。而指數(shù)部分則說(shuō)明了求和結(jié)果的位權(quán)。現(xiàn)在就可以建立查找表來(lái)實(shí)現(xiàn)方括號(hào)中的操作了,其查找表用所有輸入變量的同一位進(jìn)行尋址,如圖1所示。
圖1中所示的DA查找表,其寬度為對(duì)常數(shù)Ak 定義的寬度,深度為2K,K是能夠?qū)?shù)據(jù)源抽樣數(shù)據(jù)進(jìn)行處理的數(shù)據(jù)長(zhǎng)度,對(duì)于濾波器就表現(xiàn)為濾波器階數(shù);對(duì)于FFT就表現(xiàn)為FFT點(diǎn)數(shù)。
這樣,式(1)所表示的方程就可以由加法、減法和二進(jìn)制除法來(lái)實(shí)現(xiàn)了。但是,DA僅僅是運(yùn)算方程(1)的核心,要完成式(1)還需要根據(jù)系統(tǒng)對(duì)時(shí)間以及FPGA資源的考慮,選擇相應(yīng)的方法。
2 幾種實(shí)現(xiàn)方法
2.1 全并行實(shí)現(xiàn)方法
市場(chǎng)上已經(jīng)有大量的通用DSP芯片,這些芯片以并行的乘法、加法運(yùn)算,地址產(chǎn)生器和片內(nèi)存儲(chǔ)器為主要特點(diǎn),如TMS320C620x、 ADSP2106x、及各種通用的FFT芯片(如PDSP16510)。為什么還要選擇FPGA呢?主要是考慮速度。要實(shí)現(xiàn)一個(gè)64階FIR濾波器,如果采用全并行方式,F(xiàn)PGA可做到50MHz的數(shù)據(jù)率,可以和系統(tǒng)時(shí)鐘相匹配,這是通用DSP芯片無(wú)法做到的。下面就舉出全并行的例子。
評(píng)論