• 沒有找到結果。

新型貪婪式演算法

在文檔中 自動化FIR濾波器晶片設計 (頁 37-73)

在前一章節中我們探討了一些現有 FIR 設計技術中存在的一些缺

點,都是與效能改進方面有所關聯,尤其是在群組的部份浮現出了諸多 可以改善的空間。在本章節先提出有效結合 BSD 與 CSD 的混合式(Mix) 表示法,再為 FIR 設計之 MCM 化簡提出新型貪婪演算法,也分別闡述 無償反覆式HCSE、有益 HCSE 簡化和最佳解尋找等演算法重點,最後呈 現該演算法在不同係數表示法、不同Taps、不同字組長度下的化簡數據,

以申明該演算法的化簡效益。

3-1 新型貪婪式演算法流程

數位FIR 濾波器的設計重點,主要是如何使用最少的位元加法器實現 其多重係數乘法器(Multiple Coefficient Multipliers)。

圖 3-1 新型貪婪演算法流程圖

如圖 3-1 所示,本文提出一種新型貪婪式演算法,首先將濾波器的係 數乘積項分別表示成BSD、CSD 以及混合式(Mixed Mode)等表示式,然 後分別進行第一階段無償反覆式HCSE 化簡,以找出最大可能之化簡。

隨之,進行第二階段有益的(Effective) HCSE 化簡,再進一步找出共用項,

最後階段是從這三種表示法中找出最佳解。

無償反覆式化簡演算法如下:

圖 3-2 無償反覆式 HCSE 化簡演算法

如圖 3-2 中的演算法所示,無償反覆式化簡演過程中,首先在係數表 示法的二維陣列中進行無償群組的搜尋,並將群組記錄至列表中,同時 標記旗標(fg)來記錄有無搜尋到群組。搜尋完畢後計算列表中各群組的 SG(Selected Gain)值,然後將 SG 值最高的群組作為該次搜尋到的群組,

保留該群組並取代至原陣列中,然後再次進行搜尋直到無群組為止,也 就是根據旗標(fg)來決定無償群組搜尋的結束。本文定義選取效益 SG 作 為選用群組的準則依據。無償反覆式演算法的時間複雜度可以用下列式 3-1 來表示:

2 2 1

n n

O

無償反覆式 式 3-1 如圖 3-3 的演算法所示,在有益 HCSE 化簡過程中,首先在係數表示 法的二維陣列中進行有益HCSE 群組的搜尋。本文定義了一個有益群組

判別值,計算該群組的化簡效益,藉由計算有益群組判別值以區分有益

各的優勢。雖然BSD 在表示式中的非零項無法比 CSD 少的多,但在後 續的群組化簡中有時BSD 確實有較多的群組項可尋找出並化簡,因此這 兩者之優點可以藉由選擇性結合的方式來達到更有效的化簡效果。因此 本文提出一種簡易的選擇法來結合BSD 與 CSD 而成為一種新型的混合 式(Mix)表示法。

圖 3-4 位元密集度

本文對不同係數表示法中的每個表示式皆計算其位元密集度。如圖 3-4所示,從左起的最高位元(MSB)找尋第一個非零項做為基準點,並往 下尋找下一個非零項,在兩個非零項之間的間距不可超過定值(本文將該 定值定為3),並計算有效深度作為位元密集度。由於圖3-1中的第3個間距 達到4 (超過3),所以僅僅記算前面的兩次搜尋,故此例中的位元密集度 為2。本文對每個係數皆運算出BSD和CSD表示式,並且分別計算其位元 密集度,把位元密集度較高的表示式作為該係數的表示式,藉此求得一 合成的Mix表示式。採用與2-2節相同規格之SRRC濾波器,運算出Mix表 示法結果如圖3-5所示:

圖3-5 SRRC之Mix係數表示法

3-3 無償反覆式 HCSE 化簡

本 文 所 用 之 化 簡 法 為 水 平 共 同 項 簡 化 法 (Horizontal Common Subexpression Elimination,HCSE)。如同前一章節中對圖2-7所描述,在 coefficient為21、22的係數中,在>>{3、5、7、9}具有相同的群組,將較 接近MSB之S21>>3+S22>>3作為基本的群組G,而在>>{5、7、9}處可以用 移 位 的 方 式 也 就 是G>>{246}來 取 代 , 減 少 了{S21>>5+S22>>5} 、

{S21>>5+S22>>5}和{S21>>5+S22>>5}所需使用的加法器,此為本文所用之

HCSE的化簡方式。

圖3-6 無償HCSE與HCSE[9-10]之化簡方法比較

以圖3-6的coef15和coef17為例,橢圓型紅框的部份是HCSE演算法 [9-10]所尋得的群組組合、方型藍框是本文所用之無償HCSE。可從圖中

明顯看出,由於HCSE演算法是採用群組模組{10-1CSD}、{1001 CSD}等等 的模組比對來尋找群組,故其Y=S15×coef15+ S17×coef17的例子中,僅僅 只找尋到{-S15>>11, S15>>13}、{-S17>>11, S17>>13}以及{S17>>4, -S17>>6}的 {-101CSD}組合,因而有G=S15>>11+S17>>4+S17>>11(共使用兩組16位元加法 器)及Y=G+G>>2+S15>>6 (再使用兩組16位元加法器),一共使用四組16位元 加法器的化簡結果;然而本文所提出之演算法會先以G=S15>>6+S17>>6(共 使用一組14位元加法器)做為群組G,然後不再經由加法器(移位的方式) 無償求得-(G>>5)、G>>7,便可得到Y=G-G>>5+G>>7+ S17>>4(再使用16位元、

14位元、9位元各一組加法器),一共使用四組共53位元加法器來將 Y=S15×coef15+ S17×coef17進行化簡,不但有效利用無償群組的本身優 勢,且比Vinod [9-10]等人的HCSE化簡的多(就本例而言,可以再減少17%

位元加法器)。也不會因為VCSE中係數延遲所增加的暫存器而抵銷減 免,這就是我們所謂的無償HCSE。

圖3-7 無償反覆式群組

前面已簡單的闡述無償與有償的差異,本文在化簡之前會將無償與有 償的群組區分出來,使無償群組可以善用其本身的化簡效益。然而,我 們在此階段中卻發現到許多群組都具有”再群組”的可能性,故將已化簡 之群組更進一步的對其他群組進行配成對,再行化簡的動作,這是目前 所有文獻研究中尚未看到的做法。如圖3-7(a),圖中的方型藍框是新型貪 婪演算法所用之群組法,可找到{S15>>6+S17>>6}、{S15>>11+S17>>11}和

{S15>>13+S17>>13}等群組,並且G1={S15>>6+S17>>6},分別以G1、G1>>5

G1>>7等群組來表示,將所在位置偏較低位元的G1>>5和G1>>7等群組都一一

替代群組代號G1作為新的非零項,其結果如圖3-7(b)。但從圖3-7(b)中 coef15、coef17與coef20的>>6行與>>11行,有{S15>>6+S17>>6+S20>>6 }與 {-S15>>11-S17>>11-S20>>11 }類似的組合存在,也就是{G1+S20>>6}與

{G1>>5+S20>>11}的組合。因此若有G2=G1+S20>>6,G2>>5就等於G1>>5+

S20>>11。圖3-4(c)便是化簡後的結果,從圖中可看到{coef15、coef17、coef20}

>>11的運算,可經由{coef15、coef17、coef20}在>>6的運算結果直接移位

取得,完全節省了此三個coefficient在>>11的加法器個數。同理coef{15、17}

>>13的加法器,也是可以省略的。本文藉由此方法將可群組的項目經由

反覆的搜尋與替代,一再地進行群組來節省加法器個數,此方法所謂的 無償反覆式HCSE化簡。

圖3-8 另一個無償反覆式HCSE化簡範例

將無償的群組經由反覆搜尋和簡化後,整個MCM表示式就可以有很 大效益地化簡。以圖3-8為例,可以分別得到G1=S21>>3+ S22>>3

G2=S19>>11+S20>>11和G3=-S21>>3- S22>>3+ S19>>3(=-G1+ S19>>3)三個群 組,並分別將較低位元的群組一一取代後,其結果為圖3-8(b)。本文訂定 了一個化簡增益(Select Gain,SG)值做為群組選用的化簡準則。當我們發 現到某個非零位元可以跟另一非零位元形成群組時,就需去計算該群組 所能化簡的量。以圖3-5的G1為例,在>>{579}的位置可經由>>3來獲得,

而假設該濾波器的字組(word)長度為16 bits,則在>>5的SG值便為 16-5=11,而得到11 bits的化簡效益,故在G1的例子中便可算出其

3-4 有益的(Effective)HCSE 簡化

圖3-9 有益與過償HCSE化簡

在前面的章節中已將coef21、coef22的G1群組以無償的群組演算來取 得,然而我們可以在觀察圖3-9中,可以發現:

{-S24>>9-S24>>11}+ {S23>>12+S23>>14}

= -G4 + SB(2)G4>>2 其中G4={-S24>>9+SB(3)S23>>12} 式3-4

這種化簡現象如圖3-9所示(n=3),加法器組由4組減為三組,位元加法 器使用也由7+7+4+4 減少為7+7+7,獲益1(4-n)個位元加法器,這就是稱 之為有益HCSE化簡。但另外也可以發現:

{S24>>5+S24>>7}+ {S23>>12+S23>>14}

= -G4 + SB(2)G4>>2 其中G4={-S24>>5+SB(7)S23>>12} 式3-5 這種化簡現象就如圖3-9所示(n=7),加法器組由4組減為三組,但位元 加法器使用卻由11+11+4+4 增加為11+11+11 ,獲益-3(4-n)個位元加法 器,這就是過償HCSE化簡。其中,位元加法器為了不影響最後加總結果,

{Sa>>S1+Sa>>(S1+x)}+ {Sb>>S2+Sb>>(S2+x)}

=G+SB(x)G>>x 其中G={Sa>>S1+SB(n)Sb>>S2} 式3-6

原式 O=(W-S1)+(W-S1)+(W-S2)+(W-S2)=(W-S1)×2+(W-S2) 2 化簡式 S=(W-S1)+ (W-S1)+ (W-S1)=(W-S1)×3

若O>S則為有效化簡,反之O≤S為過償化簡,所以:

 (O-S)>0

 ((W-S1)×2+(W-S2)×2-(W-S1) ×3)>0

 (W-2S2+S1)>0 式3-7 因此在有效益的群組化簡過程中,我們在找到群組配對後,將群組配對 套用3-6式所用之架構,若計算出來符合3-7式則該群組為有效益群組並化 簡,反之此群組配對則為過償群組,將保持現狀而不將其群組化簡。

圖3-10 本文所提出的HCSE化簡圖說

圖3-10是本文提出的HCSE化簡圖說,配合圖3-9中有益HCSE群組做 說明。圖3-10左邊是原本{-S24>>9-S24>>11}+{S23>>12+S23>>14}的加總,我 們把它改成{-S24>>9+S23>>(9+3)}+{ -S24>>11 +S23>>(11+3)}的方式來表示,並 將{-S24>>9+ SB(3)S23>>(9+3)}作為群組項G,若用圖3-10左邊的方式做一般 的加總將會需要3個加法器組,倘若採用圖3-10右邊的形式則可變成

G={-S24>>9+ SB(3)S23>>(9+3)}、SUM=G+G>>2,可輕易減少1個加法器組的 具有{1001CSD}和{10-1CSD}兩個群組模組,所以對[10]等人的CSE演算法來 說會有群組選用的問題,然而CSE群組的搜尋是屬於地毯式的搜索,在群

3-6 SRRC 設計實例

本節中將以SRRC 濾波器為範例完整示範整個化簡的過程。這個 SRRC 濾波器規格為49 Taps、20bits (Integer 為 5Bits、Float 為 15Bits)字組長度,

函數參數採用2-2 章節中所示之規格。我們從圖 2-4、圖 2-5 及圖 3-2 所

>>5: -S16,-S17, S18, S19,-S21,-S22,-S23, S24

>>6: -S12, S14, S15,-S17, S20

>>7: S6,-S8, S10, S14, S19,-S21,-S22

>>8: S2,-S3,-S4,-S16, S24

>>9: S1,-S4, S5, S12,-S13,-S18, S20,-S22

>>10: S1,-S9, S10, S11,-S13,-S19, S20,-S21, S24

>>11: -S2, S3,-S8,-S15, S16, S18,-S21, S24

>>12: S1,S4,S5,-S6,-S9,S10,S11,S12,S14,-S16,-S17,S18,S19,S20,S23

>>13: S2, S14, S15,-S17, S19, S20,-S22, S24

>>14: S1, S3,-S4, S5,-S7,-S9,-S13, S18, S21, S23

>>5: -S16,-S17,S18,S19,-S21,-S22,-S23,S24 (20-5) ×8+1 121

>>6: -S12,S14,S15,-S17,S20 (20-6) ×5+2 72

>>7: S6,-S8,S10,S14,S19,-S21,-S22 (20-7) ×7+1 92

>>8: S2,-S3,-S4,S16,S24 (20-8) ×5+8 68

>>9: S1,-S4,S5,S12,-S13,-S18,S20,-S22 (20-9) ×8+1 89

>>10: S1,-S9,S10,S11,-S13,-S19,S20,-S21,S24 (20-10) ×9+2 92

>>11: -S2,S3,-S8,-S15,S16,S18,-S21,S24 (20-11) ×8+1 73

>>12: S1,S4,S5,-S6,-S9,S10,S11,S12,S14,-S16,-S 17,S18,S19,S20,S23

(20-12)

×15+4

124

>>13: S2, S14, S15,-S17, S19, S20,-S22, S24 (20-13) ×8+1 57

>>14: S1, S3,-S4, S5,-S7,-S9,-S13, S18, S21, S23 (20-14)×10+2 62

>>15: -S4,-S7,S8,-S9,-S11,-S13,S16,S20,-S22 (20-15)×9+1 46

總位元加法器數 1029

>>1: S24

>>7: S6,-S8,S19,G1>>4,G9

>>8: -S4, G4>>3,G6

>>9: -S18,G11, G15

>>10: S10,-S13,-S19,G2>>1,G7,G12

>>11: -S8,-S15, S16, S18,-G6>>3, G7>>1

>>12: S4,-S6,-S16, S23, G8>>7, G9>>5, G11>>3, G12>>2

>>13: S2,-S22, S24,G3>>8,G14>>7

>>14: S1,S3,S5,S18,S21,S23,G5>>5,G16

>>15: S8, -S11,S16, S20, G15>>6,G16>>1 式 3-9

EG1

S24>>1+S23>>2 19 20-2*2+1=17

EG2

S19>>4+G4 (15)+16=31 20-2*5+4=14

EG3

G8+G14 (30+28)+15=73 20-2*6+5=11

EG4

S6>>7-S18>>9 13 20-2*9+7=9

EG5

EG2+G11 (31+33)+16=80 20-2*9+4=6

EG6

-S4>>8-S8>>11 12 20-2*11+8=6

EG7

G1>>2+G12 (10)+15=25 20-2*10+5=5

EG8

G6-S16>>12 (12)+12=24 20-2*12+8=4

EG9

G7+G16 (10+6)+10=26 20-2*14+10=2

總量 303 74

>>4: EG5 80+(20-4)×1+4 100

>>5: -S23, EG3, EG7 73+25+(20-5)

×3+1

144

>>6: -S12, -S17 (20-6) ×2+2 30

>>7: -S8, G9,EG4, EG5>>3, EG7>>2 13+13+(20-7)

×5+1

92

>>8: EG6, EG8 12+24+(20-8) 68

×2+8

>>9: G15 22+(20-9) ×1+1 34

>>10: S10, -S13, -S19, G2>>1, EG9 26+(20-10) ×5+2 78

>>11: -S15, S16, S18,-EG8>>3, EG9>>1 (20-11) ×5+1 46

>>12: S23,G9>>5,EG3>>7,-EG4>>5,-EG6>>4 (20-12) ×5+4 44

>>13: S2, -S22, G3>>8, EG1>>12 (20-13) ×4+1 29

>>14: S1,S3, S5, S21, G5>>5 (20-14)×5+2 32

>>15: -S11, S20, G15>>6 (20-15)×3+1 16

>>2:S23,-S24

>>3: S19,-S21,-S22 (20-3) ×3+1 52

>>4: -S17 (20-4) ×1+4 20

>>5: S14,-S16,S18,-S19,-S21,-S22,-S23,S24 (20-5) ×8+1 121

>>6: -S12,S15,S17,S20 (20-6) ×4+2 58

>>7: -S4,S6,-S8,S10,-S14,S19,-S21,-S22,S24 (20-7) ×9+1 118

>>8: S1,S2,-S3,-S13,-S16,S20 (20-8) ×6+8 80

>>9: S4,S5,-S9,S12,-S21,-S22,-S24 (20-9) ×7+1 78

>>10: -S1,S10,S11,S13,-S18 (20-10) ×5+2 52

>>11: -S2,S3,-S8,S9,S14,-S15,-S17,-S19,-S20,S21,-S24

(20-11) ×11+1 100

>>12: S1,S5,-S6,S10,S11,S12,S16,-S18,S23 (20-12) ×9+4 76

>>13: S2,S4,-S7,S9,-S13,-S14,S15,S17,-S19,-S20,-S 22,S24

(20-13) ×12+1 85

>>14: S1,S3,S5,S18,S21,S23 (20-14)×6+2 38

>>15: S4,S7,S8,S9,-S11,S13,S16,S20,-S22 (20-15)×9+1 46

總位元加法器數 1002

G2

(S14>>5-S19>>5) 15 22

>>5: G1>>2,G2,-G4>>3,G9

>>6: -S12,G7

>>7: S6,-S8,S10,G1>>4,-G2>>2,G5

>>8: -S16,-S20,G6,G8

>>9: -S9, G1>>6,-G5>>2, G10

>>10: -S18,-G6>>2,G11

>>11: -S8,S9,S21,-S24,G2>>6,-G7>>5,-G8>>3

>>12: -S6,-G9>>7,G10>>3,G11>>2,G12

>>13:S2,-S14,-S19,S24,G3>>7,G15,G16

>>14:S3,S5,S18,S21,G12>>2

EG2

G7+S6>>7 (28)+14=42 20-2*7+6=12

EG3

G9-S16>>8 (15)+15=30 20-2*8+5=9

EG4

-S18>>10-S8>>11 10 20-2*11+10=8

EG5

G10+S21>>11 (11)+11=22 20-2*11+9=7

EG6

G12+G16 (8+14)+8=30 20-2*13+12=6

EG7

G5+G6 (13+12)+13=38 20-2*8+7=11

EG8

G4+G8 (18+12)+18=48 20-2*8+2=6

EG9

-S9>>9+G15 (14)+11=25 20-2*13+9=3

EG10

EG7-S24>>11 (38)+13=51 20-2*11+7=5

EG11

G1>>2+EG6 (30)+15=45 20-2*12+5=1

EG12

EG11+G11 (45+10)+15=70 20-2*10+5=5

總量 460 86

在取得表3-7 有效益群組的同時將有效益群組項取代原本的式 3-11

在取得表3-7 有效益群組的同時將有效益群組項取代原本的式 3-11

在文檔中 自動化FIR濾波器晶片設計 (頁 37-73)

相關文件