分布式計算(DA)技術
DA是專門針對乘積和方程的一種計算技術,方程中的一項乘積因子是常數(shù)。DA設計可實現(xiàn)門級高效率、串行位算法及高性能位并行運算,它是經(jīng)典的串/并綜合方案。DA技術可應用于很多重要的線性、時不變數(shù)字信號處理算法,如濾波器(FIR和IIR)、變換(快速傅立葉變換[FFT])及矩陣向量乘積,如8 x 8離散余弦變換(DCT)。
二十多年前就有了DA技術,已經(jīng)證實它不適于可編程DSP的定點指令集結構。然而,DA非常適于FPGA實現(xiàn),尤其是如Xilinx CLB的LUT邏輯模塊。用Xilinx XC3000系列的FPGA設計DA FIR濾波器早在1992年就已提出。
DA電路中沒有獨立的乘法器。乘法是由LUT完成的。DA預存一個方程式中所有部分乘積項的和,并且根據(jù)所有輸入變量位查表(此處為DALUT)運算。串行DA電路有一個獨立的DALUT,它從最低的有效位開始查表。部分乘積的輸出和存儲在累加器中,這種方法讓我們想起了早期計算機中的移位相加子程序,連續(xù)的DALUT輸出累加到部分乘積的二進制下移累加和中。這樣可得到一個真正的雙精度結果。
濾波器的實現(xiàn)
平方根升余弦濾波器的數(shù)據(jù)通道由已可轉換為CLB的標準功能模塊定義。每隔200ns將映射器輸出的3比特I、Q信號傳至并串轉換移位寄存器(PSR)。RAM移位寄存器(SR)鏈中存儲了七個先前的碼元。前三個濾波器響應Y b , Y c , Y d與移位寄存器中的循環(huán)數(shù)據(jù)一起運算。PSR還需要一個反饋通道,但RAM SR在只讀時循環(huán)受到模塊尋址的影響。這里的模塊有六個,前三次移位用于Y b,緊接著的三次用于Y c,最后三次則是用于Y d。在計算Y e時,數(shù)據(jù)沿SR鏈下移。這種模塊尋址模式隨著前級傳輸(寫)的數(shù)據(jù)不斷重復。所有十二次移位和相應的PSR加載、RAMSR尋址及寫控制都來源于60MHz系統(tǒng)時鐘。
由于相同的系數(shù)組要用于兩個采樣周期,一個用于I通道數(shù)據(jù)計算,另一個用于Q通道數(shù)據(jù)計算,用一組DALUT和2/1復用器將串行數(shù)據(jù)流導向相應的地址端口。這些端口可以表示DALUT的
結構。h 3端口的邏輯高電平選擇部分乘積和包含h 3的所有內存地址。與此類似,h 7端口的邏輯高電平選擇所有包含h 7的所有地址,h 3和h 7端口的邏輯高電平選擇所有包含h 3和h 7的地址。剩余的六個系數(shù)仍采用這種模式。事實上,八個系數(shù)將需要2 8或256個字存儲。對于12比特系數(shù)的情況,將需要 (每個CLB為256/32 字) x 12 = 96 個CLB。另一個訣竅是使用兩個DALUT,每個需要四個系數(shù)并增加它們的輸出。這樣CLB的數(shù)目則減少到(2 x 24)/32 x 12 + 13/2 (并行加法器) = 18.5 個CLB.
同樣的簡化也可用到以h 1開始的第二套濾波器系數(shù)中。采用2/1復用器可分時共享并行加法器。該加法器擴展為13個比特后,輸入到前述執(zhí)行移位和加法運算的標量累加器。當輸入變量的符號位傳輸給DALUT時,就進行減運算。此過程可通過在DALUT輸出增加EXOR門并向累加器第一級進位的標準方法來完成。對于負響應Y d和Y e,數(shù)據(jù)采樣可不管符號位,而對所有的DALUT輸出數(shù)據(jù)取反來求補。
對于分數(shù)二進制補碼格式的I、Q數(shù)據(jù),濾波器系數(shù)要進行調整以防在最后輸出中溢出。十個最高有效位可加載到D/A轉換驅動寄存器中。
濾波器數(shù)據(jù)通道的CLB總數(shù)為71.5個,F(xiàn)PGA輸出端口帶有觸發(fā)器,可作為D/A轉換的驅動寄存器。算上編碼器(31個CLB)及定時和控制功能(估計要少于50個CLB)在內,總數(shù)大約為159個CLB,正好可置于Xilinx XC4000系列中較小(稍大于最小)的芯片中,即XC4005 (196個CLB)。如果采用Xilinx Virtex等更高級的FPGA器件,則可減少CLB的數(shù)量并提高性能。
整個設計可確保60MHz系統(tǒng)時鐘條件下的性能。數(shù)據(jù)流采取統(tǒng)一形式且單向傳輸??梢圆迦牍艿兰拇嫫?不增加CLB)以縮短組合路徑。通過標量累加器的十四級的進位鏈是最長的組合路徑。然而,通過內置預進位電路可確保足夠的速度余量。