亞東技術學院
資訊與通訊工程研究所
碩士論文
自動化 FIR 濾波器晶片設計
Automatic
Chip Design of FIR filters
研 究 生:廖士弼
指導教授:蕭如宣
致 謝
首先感謝蕭如宣指導教授,研究所就讀期間給了我在 PCB、Embedded 等領域中的指導,也感謝董慧香老師在 VLSI 領域中給我極大的幫助,有 了兩位嚴師的教誨,才能在短短的時間內撰寫完成這篇論文。也感謝我 的父母親,在讀研究所的期間,在生活中給我的種種幫助、作為我背後 的推力,使我不必擔心生活上的諸多困擾,感謝堂哥士霆給了我許多生 活上的啟發,我才能夠有如此的成長。 研究所期間,有著癸辰、智宏、琪勝和亞生等學長的教學,課業上的 問題總是能夠迎刃而解,還有同儕的耿賢、展岳也一同為了畢業而互相 打氣努力。論文撰寫期間的壓力相當的大,也多虧有柏緯、昇達在許多 方面上的協助,才能醉心於撰寫論文之中,修瑋、仁楷、郁盛、得榮、 小寅和書銘在這段壓力極大的時間內,陪著我一同歡樂的走過來,為我 抒解了許多的壓力,才能撐到現在。對於原本走在 Embedded 領域中的 我,突然要進入到 VLSI 的領域是相當困難的一件事,好在有瑞霖、政嘉、 明智、柏葦在這方面的協助,才有辦法在極短的時間內掌握到其基礎, 也多虧了昆源、至剛、旻辛、盈琪、浩瑋等學弟妹的支援,才得以將這 篇論文盡可能的做到最好。要感謝的人實在太多太多了,最後祝你們都 能身體健康、平安快樂,走上最好的人生旅途。摘 要
本研究以 Microsoft Visual Studio(MVS) 2010 軟體實現視窗化 FIR 濾 波器整合式設計自動化系統(Integrated FIR IP/Chip Design Automation, IFICDA),提供使用者簡單的 GUI 設計介面設定濾波器參數,系統自動 合成該濾波器之優化 RTL Code,自動合成邏輯閘電路,進而電路模擬驗 證,以及最後自動化晶片佈局設計。該系統以數種 FIR 數位濾波器晶片 設計實例進行驗證,其晶片效能良好且設計程序順暢簡潔。
[9] [10] 等人的 CSE(Canonic Signed Digit)演算法與 [11] [12]布斯 (Booth)演算法在 FIR 數位濾波器設計化簡上都有良好的化簡成效,但研 究中發現[10]在群組化簡的優勢中同時也出現了過償化簡的疑慮,足以影 響其群組化簡的成效。在 IFICDA 中提出一種新型貪婪式演算法,首先將 濾波器的係數乘積項分別表示成 Booth、CSD 以及使用前兩者結合的混 合式(Mixed Mode)表示式,接著分別進行無償反覆式 HCSE(Horizontal Common Subexpression Elimination)化簡、有益的(Effective) HCSE 化簡, 分別來解決浪費無償及使用過償化簡的缺陷。在無償反覆式 HCSE 化簡 中定義 SG(Select Gain)值做為群組有效選用的準則與依據,讓化簡群組的 選用標準化,而不會在群組化簡過程中錯失效率較佳的群組。在有益的 HCSE 化簡中也定義有益之衡量準則,避免使用過償化簡。最後,進行最 佳解選擇來選用三種表示法中效能優化最好的一種,作為 FIR 數位濾波 器的 IP 產生,輸出性能較佳的 RTL Code。
本研究在 IFICDA 中結合了晶片設計領域,設計了一套 Cell Based 晶 片設計自動化的 CDA 流程。CDA 流程中產生一 ACD.scr 檔,該檔使用 本校電子系”晶片實現與應用”研究室成果”OitCellLibrary”,結合 Design Compiler 軟體的邏輯合成功能,將前述之 RTL Code 合成邏輯閘階層的 Gate Level 檔,並用 Encounter 軟體對 Gate Level 檔進行 APR(Auto Place & Route)程序,產生 FIR 數位濾波器晶片設計。系統也結合 Hspice 模擬功
能,提供對 Gate Level 檔進行電路模擬驗証。
本文中以 49Taps、20 位元字組(5Integer+15Float)之各類 FIR 數位濾波 器規格,實際應用在 IFICDA 系統上進行自動化設計驗證。該新型貪婪 式演算法化簡效率可達到 68.0%以上,平均每顆晶片設計的生成時間也在 短短的 10 分鐘之內。這證實 IFICDA 軟體使用新型貪婪式演算法改善 FIR 數位濾波器效能,產生 RTL Code 結合 CDA 流程快速跑通晶片設計流程 而產生晶片雛型,大大的縮短 FIR 數位濾波器晶片設計的開發時程。
關鍵字:無償反覆式 HCSE 化簡、有益 HCSE 化簡、FIR、Booth、CSD、 CSE
Abstract
In this study, we used the Microsoft Visual Studio(MVS) software to achieve Integrated FIR IP/Chip Design Automation(IFICDA) system, provide user a simple GUI interface to set the filter parameters, automatically synthesize the filters of optimize RTL Code, automatic synthesis of logic gates and thus the circuit simulations, and automated chip layout design in final. Validate examples of the system for several FIR digital filter chip design, and the chip performs well and the design process is smooth and simple.
CSE (Canonic Signed the Digit) algorithm [9-10] and Booth algorithms have well effectively simplification in the simplification of FIR digital filter design. However, the study found the advantages of simplification group but also concerns of overhead in simplification. That affects the effectiveness of the simplification group. We proposed a new greedy algorithm in IFICDA, first the product term of the filter coefficients are represented as the Booth and CSD as well as Mix expression using a combination of both, and then were the free-paid iterative HCSE (Horizontal Common Subexpression Elimination) simplification and effective HCSE simplification. Respectively, that solves defects of the ungrouped free-paid group and award use of over-paid grouped simplification. The definition of the SG (Select Gain) values as a criterion of group selecting in free-paid iterative HCSE simplification algorithm, this standardization of selecting of simplification group will not miss the group of better efficiency in the process of group simplification. We also defined useful measurement criteria in effective HCSE simplification, and avoid the award use of over-paid simplification. Finally, we select optimal solution from these simplifications of three represents, to generate the IP of the FIR digital filter, to export the better performance of
RTL Code.
In this study, chip layout design included in IFICDA, proposed a chip design automation of CDA process based on Cell-based. CDA process generates an “ACD.scr" file automatically. In IFICDA, the ACD file uses “OitCellLibrary" of OIT Lab results of chip and application, launches Design Compiler to synthesis the logic gates using aforementioned RTL code, and then runs APR (Auto Place & Route) program by Encounter to produce the FIR digital filter chip layout design. The system is also combined with Hspice simulation, provides circuit simulation and verification of the Gate Level file.
A few various types of FIR digital filter specifications of 49taps, 20-bit word (5 integer bits + 15 float bits), have been applied in the IFICDA system for automated design verification. The efficiency of the greedy algorithm can reach more than 68.0%, and the average generation time for each chip design is also in 10 minutes. These application practical confirm the greedy algorithm improving the FIR digital filter design performance in IFICDA, from efficient RTL Code generation to quickly run through the chip design process, greatly shorten the development time of FIR digital filter chip design.
Keywords : free-paid iterative HCSE simplification 、 effective HCSE
目 錄
致謝 ... I 摘要 ... II Abstract ... IV 目錄 ... VI 表目錄 ... VIII 圖目錄 ... X 第一章 緒論... 1 第二章 數位濾波器技術探討 ... 4 2-1 FIR 濾波器基礎架構 ... 4 2-2 FIR 濾波器設計探討 ... 7 2-3 CSE 演算法 ... 10 2-4 SRRC 設計範例應用 CSE 演算法 ... 12 第三章 新型貪婪式演算法 ... 23 3-1 新型貪婪式演算法流程 ... 23 3-2 混合式表示法 ... 24 3-3 無償反覆式 HCSE 化簡 ... 27 3-4 有益的(Effective)HCSE 簡化 ... 30 3-5 最佳解尋找 ... 33 3-6 SRRC 設計實例 ... 343-7 更多 FIR 設計實例驗證與效能比較 ... 51
第四章 整合式 FIR 自動化晶片設計 ... 59
4-1 FIR 自動化晶片流程 ... 59
4-2 Specific Definition ... 61
4-3 Automatic Chip Design (ACD) ... 70
第五章 研究數據 ... 84
5-1 FIR 濾波器自動化晶片設計成果 ... 84
第六章 結論與未來展望 ... 96
表 目 錄
表 2-1:SRRC 濾波器之加法樹單元表及其實現所需加法器數(2 補數) 13 表 2-2:SRRC 濾波器之加法樹單元表及其實現所需加法器數(CSD) .. 17 表 2-3:CSE 演算法之 HCSE 化簡群組成果(101) ... 18 表 2-4:SRRC 濾波器之加法樹單元表及其實現所需加法器數(CSD) .. 19 表 2-5:CSE 演算法之 HCSE 化簡群組成果(10-1,1001,100-1) ... 20表 2-6:CSE 演算法之 HCSE Group 的加法器位元總和 ... 21
表 2-7:SRRC 濾波器之 CSE 演算法成果 ... 21 表 3-1:BSD 加法樹單元表及其實現所需加法器數 ... 35 表 3-2:BSD 表示法無償化簡群組 ... 36 表 3-3:BSD 表示法有效益 HCSE 化簡群組 ... 37 表 3-4:經過演算法化簡後的 BSD 加法樹單元表及其實現所需加法器數 ... 38 表 3-5:CSD 加法樹單元表及其實現所需加法器數 ... 40 表 3-6:CSD 表示法無償化簡群組 ... 41 表 3-7:CSD 表示法有效益 HCSE 化簡群組 ... 43 表 3-8:經過演算法化簡後的 CSD 加法樹單元表及其實現所需加法器數 ... 44 表 3-9:Mix 加法樹單元表及其實現所需加法器數 ... 46 表 3-10:Mix 表示法無償化簡群組 ... 47
表 3-11:Mix 表示法有效益 HCSE 化簡群組 ... 48 表 3-12:經過演算法化簡後的 Mix 加法樹單元表及其實現所需加法器數 ... 48 表 3-13:不同演算法化簡後的效能比較 ... 49 表 5-1:自動晶片設計效能與耗時 ... 84
圖 目 錄
圖 1-1:ARM SoC 架構 ... 1 圖 2-1:FIR 濾波器基礎架構 ... 4 圖 2-2:線性相位型式 FIR 濾波器設計架構方塊圖 ... 6 圖 2-3:BSD 表示法範例 ... 7 圖 2-4:SRRC 之 BSD 係數表示法 ... 8 圖 2-5:SRRC 之 CSD 係數表示法 ... 9 圖 2-6:CSD 表示法中 HCSE 群組範例 ... 10 圖 2-7:本文與 CSE 的群組方式比較 ... 11 圖 2-8:二元加法樹結構 X 值示意圖 ... 15 圖 3-1:新型貪婪演算法流程圖 ... 23 圖 3-2:無償反覆式 HCSE 化簡演算法 ... 24 圖 3-3:有益 HCSE 化簡演算法 ... 25 圖 3-4:位元密集度 ... 26 圖 3-5:SRRC 之 Mix 係數表示法 ... 26 圖 3-6:無償 HCSE 與 HCSE [9-10]之化簡方法比較 ... 27 圖 3-7:無償反覆式群組 ... 28 圖 3-8:另一個無償反覆式 HCSE 化簡範例 ... 29 圖 3-9:有益與過償 HCSE 化簡 ... 30 圖 3-10:本文所提出的 HCSE 化簡圖說 ... 32圖 3-11:RTL Code 模擬驗證波形(33.3MHz) ... 50 圖 3-12:新型貪婪演算法之 SRRC 濾波器設計 ... 52 圖 3-13:新型貪婪演算法之 Low Pass 濾波器設計 ... 53 圖 3-14:新型貪婪演算法之 High Pass 濾波器設計 ... 54 圖 3-15:新型貪婪演算法之 Band Pass 濾波器設計 ... 55 圖 3-16:新型貪婪演算法之 Band Reject 濾波器設計 ... 56 圖 3-17:各濾波器在 799taps、Word Length(16、20、24、28)、SG 的差 異 ... 57 圖 4-1:自動化晶片設計流程 ... 60 圖 4-2:整合式 FIR 濾波器設計軟體 ... 61 圖 4-3:設計專案檔案結構 ... 62 圖 4-4:IFICDA 整合式設計軟體 ... 63 圖 4-5:FIR 濾波器專案建立 ... 64 圖 4-6:SRRC 濾波器係數的有號數大小表示法資料列式 ... 64 圖 4-7:資訊欄位(a)與檔案列表(b) ... 65 圖 4-8(a):SRRC 濾波器 BSD 係數表示式 ... 66 圖 4-8(b):SRRC 濾波器 BSD 的化簡資料 ... 66 圖 4-9(a):SRRC 濾波器 CSD 係數表示式 ... 67 圖 4-9(b):SRRC 濾波器 CSD 的化簡資料 ... 67 圖 4-10(a):SRRC 濾波器 Mix 係數表示式 ... 68
圖 4-10(b):SRRC 濾波器 Mix 的化簡資料 ... 68
圖 4-11:選擇最佳函式輸出 RTL ... 69
圖 4-12:SRRC 濾波器 RTL 碼產生(.v) ... 69
圖 4-13:Script File 生成頁面 ... 70
圖 4-14:CDA 流程之階段性 Script File ... 71
圖 4-15:ACD.scr 檔之執行流程 ... 72 圖 4-16:Cell Library 資料夾架構 ... 73 圖 4-17:Design Compiler 的合成範例 ... 76 圖 4-18:Design Compiler 單一暫存器合成範例 ... 76 圖 4-19:Design Compiler 加法器組合成範例 ... 76 圖 4-20:Design Compiler 合成後之 SRRC 濾波器成果圖 ... 77 圖 4-21:Encounter 軟體的 APR 程序流程圖 ... 78 圖 4-22:Encounter (Floorplanning) ... 80 圖 4-23:Encounter(Placement 佈線前) ... 81 圖 4-24:Encounter(Placement 佈線後) ... 82
圖 5-1:SRRC 濾波器晶片的 Max Timing Path ... 85
圖 5-2:SRRC 濾波器晶片設計成果圖(Power) ... 86
圖 5-3:SRRC 濾波器晶片設計成果圖(Place & Route) ... 86
圖 5-4:Low Pass 濾波器晶片的 Max Timing Path ... 87
圖 5-6:Low Pass 濾波器晶片設計成果圖(Place & Route) ... 88
圖 5-7:High Pass 濾波器晶片的 Max Timing Path ... 89
圖 5-8:High Pass 濾波器晶片設計成果圖(Power) ... 90
圖 5-9:High Pass 濾波器晶片設計成果圖(Place & Route) ... 90
圖 5-10:Band Pass 濾波器晶片的 Max Timing Path ... 91
圖 5-11:Band Pass 濾波器晶片設計成果圖(Power) ... 92
圖 5-12:Band Pass 濾波器晶片設計成果圖(Place & Route) ... 92
圖 5-13:Band Reject 濾波器晶片的 Max Timing Path ... 93
圖 5-14:Band Reject 濾波器晶片設計成果圖(Power) ... 94
圖 5-15:Band Reject 濾波器晶片設計成果圖(Place & Route) ... 94
第一章 緒論
近幾年來,製程技術的持續進步,使得晶片設計在面積的縮小下,能 讓更大量的電路元件可以被製作在單一晶片上。尤其是整合度高的系統 晶片(System of Chip,SoC),其內部有嵌入式運算引擎、嵌入式記憶體、 控制邏輯電路、匯流排介面、嵌入式週邊元件等等架構迴異的單元需整 合在單一晶片中(如圖 1.1),其設計難度自然不在話下。尤其現在的 SoC 市場趨勢更講求低功率、體積小、高效能、高精確性等等,要達到這些 優點已屬高難度挑戰。更何況每一項 SoC 產品的生命週期已壓縮在一年 之下,當然其開發時間也僅能有數個月時間,這麼繁雜的晶片開發作業 就必須仰賴設計自動化(Electronic Design Automation,EDA)軟體。因應 SoC 的廣泛應用,通常會將各類週邊電路設計成 IP(Intellectual Property) 形式,以利日後快速整合。IP 形式可分為 Soft-IP 與 Hard-IP,Soft-IP 較 不受半導體所限制、且較有整合彈性,Hard-IP 的優點在於其效能、面積 與功效為可預期的。Soft-IP 多半指的是易變動的電路,通常是使用 HDL (Hardware Description Language)語法所組成,經由 IP Generator 或參數變 動所產生出來。為了迅速建構一個 SoC platform,經常需使用各種 IP 做 為其組成元件。DSP(Digital Signal Processor)是一獨特卻又常見的微處理器,其涉 及許多學科且應用廣泛,隨著電腦和資訊技術的飛速發展,在過去四十 多年來已在通信領域得到極為廣泛的應用。DSP 主要是利用電腦或專門 處理設備,以數位形式對訊號進行採集、轉換、濾波、壓縮、識別等處 理,以得到符合使用者的訊號形式,故有許多 SoC 都有整合進 DSP 的硬 體核心。數位濾波功能在 DSP 訊號處理上是一個相當重要的一環,而數 位濾波中又分成有限脈衝響應(Finite Impulse Response,FIR)濾波器和無 限脈衝響應(Infinite Impulse Response,IIR)濾波器,各有設計上的特色與 限制。FIR 的相位特性較好,故多應用在數位變頻、信號分析中,其應用 相當廣泛,在困難的雜訊處理上極為有用。為此,[2-11]都專門針對 FIR 濾波器的設計架構在不斷探討及改善,在研讀這些文章後,發現在設計 架構的演算法[9-10]上仍有許多尚可改善的空間,本論文將針對 FIR 濾波 器設計架構提出一套新型貪婪演算法,嘗試結合了部份演算法的優點, 目的在於改善 FIR 濾波器的設計效能。 如前段所述,晶片設計是繁雜且耗時的,為了提高晶片開發效率,本 研究提出一套基於 Cell Based 加速設計的流程,使用 GUI (Graphical User Interface)開發軟體完成整合開發設計。本研究利用 Microsoft Visual Studio 2010 設計出一套整合式 FIR 濾波器晶片設計自動化系統,使用者操作的 GUI 只需輸入所需的 FIR 參數,該系統便會根據使用者的參數導入公式 並採用本文所提出之新型演算法,使用者可重複操作直到符合自身想要 的設計後,便可選擇該結果產生適當的濾波器 RTL code,此 IP Core 可提 供 SOPC(System of Program Chip)開發者使用。該系統更提供整合至晶片 所需的操作檔(Script File),使用者只需提供所擁有的 library 相關資訊後, 該系統便根據環境產生一連串 Cell Based 流程所需的文檔,只需在工作站 配合 RTL Code 並執行 Script File,電腦便會依序執行 Design Compiler、 Encounter、Laker 和 Hspice 等軟體且在最後提供 Gate Level 層級的摸擬結
果來驗証 IC 成效。 在本章提及了研究的背景、動機、目的與方法。第二章中會簡單的介 紹 FIR 濾波器的設計原理,並對現有技術進行探討。在第三章節將更加 詳述本文所提出的新型貪婪式演算法並以範例完整展示該演算法的應 用。第四章節將會呈現 IFICDA 軟體的使用和階段性成果,並呈現晶片設 計自動生成流程的設計方法。第五章節展示了雛型晶片的設計結果和效 能數據並進行探討。最後在第六章節做簡短的結論與未來展望。
第二章 FIR 數位濾波器基礎原理
本章將針對FIR 濾波器進行現有技術的探討,在 2-1 節中提及舊有 的設計方式與架構,在第2-2 節將探討濾波器設計的效能改善方案,包含 BSD、CSD 等係數表示法概念,並提出本文在群組方式中所發現到的部 份問題。 2-1 FIR 濾波器基礎架構 FIR 濾波器在通訊領域中應用廣泛且常見,其脈衝響應是有限長的, 所以當輸入的數位訊號為有限長時,其輸出數位訊號也同樣為有限長。 其特別的線性相位特性造成系統函數的結果有奇對稱或偶對稱的特性, 其脈衝響應也是有限長,比起IIR 濾波器也更容易做到最佳化(optimize) 的處理。從[1-4]中可得知,FIR 濾波器的系統函數的形式為: 式 2-1 而其差分程式y(n)為 式 2-2 濾波器的階數是M-1,而其係數個數為 M。從式 2-2,不難發現整體 函數是由每一級的暫存輸入值與係數值乘積再累加的結果,因此其基本 架構可如圖2-1 所示的係數乘法器累加結構。 圖 2-1 FIR 濾波器基礎架構在通訊領域中有幾種應用非常廣泛的濾波器如平方根升餘弦濾波器 (square root raise cosine filter,SRRC filter)、低通濾波器(Low Pass filter)、 高通濾波器(High Pass filter)、帶通濾波器(Band Pass filter)以及帶拒濾波 器(Band Reject filter)等等。對這些濾波器脈衝響應函數分別描述如下: 1. 平方根升餘弦濾波器(Square Root Raise Cosine filter,SRRC filter)
式 2-3
2. 低通濾波器(Low Pass filter)
式 2-4
3. 高通濾波器(High Pass filter)
式 2-5
4. 帶通濾波器(Band Pass filter)
式 2-6
5. 帶拒濾波器(Band Reject filter)
式 2-7
然而,如蕭[5-6]等人所做之研究,在上述濾波器的脈衝響應函數中, 都具有線性卷積的特性,經由函數所求得之係數有一半左右是重複、相
器的架構設計便從圖2-1 的串聯形式改為圖 2-2 的線性相位型式,其運算 式如式2-8 所示。 圖 2-2 線性相位型式 FIR 濾波器設計架構方塊圖 式2-8 如圖2-2 所示,每一筆資料都具有 Flag、Integer、Float 三個資料段, 其係數變化較大的多半在Float 的資料段。從圖中可看到 Buffer(Z-1)的傳 輸順序如卷積的方式,在相加後與Coef 項進行相乘動作,最後再加總所 得到的結果後並輸出,此為FIR 濾波器設計之線性相位特性架構。圖 2-2 的架構中採用了大量的係數乘法器,由於係數乘法器中的乘法器運算會 耗費掉大量的時間與資源,在許多研究中便採用移位加法的設計方式來 降低使用資源,藉此取代係數乘法器的設計架構。在多重乘法模組
進制表示法中非零項的位置,將輸入值進行移位後才進行加總,除了省 去了係數中為零的加法器個數,也可節省移位加法器的長度。因此係數 表示法中的非零項各數之多寡以及它們的位置,直接地影響設計資源的 使用程度,也就是說直接決定移位加法器的使用資源而影響整體效能。 2-2 FIR 濾波器設計探討 在2 的補數表示法中,表示負數的二進制值中會因為補數運算 (Complement operator)而增加表示法中的非零項。因此 2 的補數表示法,
不適合直接用來設計FIR 數位濾波器。A.P.Vinod 等人的 FIR 研究中提出
CSD (Canonic Signed Digit)表示法進行 CSE(Common Sub-expression Elimination)化簡,而蕭如宣等人則提出另一種布斯(Booth Signed Digit, BSD)表示法再行化簡。本章節所用之 SRRC 濾波器函數規格如下。 (1) Coefficient Quantity(Taps):49
(2) Words:5Bits(Interger)+15Bits(Float) (3) Roll-off(β):0.22 for WCDMA
(4) Chip duration(Tc):0.26us
接下來將分別對BSD、CSD 進行說明:
2-2-1 BSD(Booth Signed Digit) 表示法
蕭如宣與曾智宏[11]的研究中提出使用 BSD 的表示法,是針對以二 進制表示的係數值中,將連續3 個(含)以上的非零值化簡,以減少非零項 數。其化簡方式如圖2-3 所示,假設連續的 3 個 1 表示成{1112}也就是 7 的話,便可用7=8+(-1)的方式獲得,也就是以{1000CSD} + {000-1CSD} = {100-1BSD}的方式來表示。從圖 2-3(b)得知圖 2-3(a)的二進制值所做的加 法器運算,至少需要5 個加法器才能運算出來;若將圖 2-3(a)的二進制值 先經過Booth 演算化簡後,就可以像圖 2-3(c)一樣只用 3 個加(減)法器來 完成該運算,藉此達到減少加法器的使用目的。圖2-4 為 SRRC 濾波器 採用BSD 表示法的係數表示式。 圖 2-4 SRRC 之 BSD 係數表示法
2-2-2 CSD (Canonic Signed Digit) 表示法
CSD 表示法有兩大特徵,其一是在表示法中具有 0、1、-1 等數值且 非零項(1、-1)與非零項不會相鄰,同時該表示法相較於其他的表示法的 非零項數量是最少的;[9]等人基於 CSD 表示法為基礎,提出 CSE 簡化 法來做濾波器架構的化簡,正是因為其具有最少非零項的優勢,在係數 本身就降低了設計濾波器所需的資源。Parhi[13]的書中撰寫了找出 CSD 表示式的演算法,其方法如下:
假設A 為 2 的補數二進制表示,則: CSD 表示演算法如下: for( i=0 to W-1 ) { ..} SRRC 濾波器函數根據 2-2-1 之函數規格、使用 CSD 演算法所得之係數 表示式如圖2-5 所示。 圖 2-5 SRRC 之 CSD 係數表示法
2-3 CSE 演算法
FIR 濾波器基於 CSD 係數表示法, Vinod 和 Lai[9-10]等人提出 CSE 簡化演算法。他們所設計之CSE 演算法分成以{101CSD}、{10-1CSD}、{1001 CSD}、{100-1CSD}為主的 HCSE (Horizontal Common Sub-expression
Elimination)和以{11 CSD}與{1-1 CSD}為主的 VSCE(Vertical Common
Sub-expression Elimination)兩種類型。以圖 2-6 的表示係數為範例,用 CSE 演算法搜尋到之群組如紅圈部位所示。 圖 2-6 CSD 表示法中 HCSE 群組範例 圖2-6 是截取圖 2-5 的部份係數內容。在該圖的紅圈處是依據 Vinod [9-10] 之 HCSE 演算法搜尋{101CSD}群、{10-1CSD}群或{1001CSD}群而得 的可簡化群組,一共找到有22 組,所以號稱可以減少了 22-1 個加法器組。 然而,我們在實作這種做法時發現尚有許多的問題存在。以圖2-6 中的 Y22=S22*coef22 為例,化簡部份可表示為 G= -S22>>3 - S22>>7 - S22>>13、 Y22=G+G>>2,但其中為了化簡而將 S22>>13的值提升至與 S22>>3同樣的位 階來相加,因而多使用了10 個加法器位元。在此例中雖然減少了一組加 法器組,但加法器的位元數總量,反而是增加了一個9 位元的加法器(請 參閱3-3 節),本文將此現象稱為過償化簡。另外還有一種無償化簡的群 組,就如同-S21>>3- S22>>3和-S21>>5-S22>>5等群組,令G=-S21>>3-S22>>3 而-S21>>5- S22>>5=G >>2,直接節省了一個加法器組;而-S22>>13- S22>>15
可與S23>>12+S23>>14做群組的化簡,雖然有一個位元的提升,但不會增加 到前述所說的9 個位元的過償負擔。對於加法器的總位元數不至於因提 升的太多而造成過償化簡,就稱之為有益化簡。CSE 演算法會將所有相 似的群組總算起來以節省約33%到 50%左右的加法器組數量,卻沒有區 分有償與無償反而還額外增加了不少加法器的總位元數,導致在總算加 法器組的總位元數(資源消耗)時也需額外負擔不少的資源。 另外,有一影響化簡效能發現,以圖2-7 的 21 和 22 的係數為例說明。 圖2-7 中的紅色橢圓形所圈的群組是使用 Vinod [9-10]所提出的CSE 演算 法所取得,其化簡式為Ga=-S21>>3-S21>>7-S22>>3-S22>>7、Ya=Ga+Ga>>2, 總共需4 個加法器組來加總。我們的群組方式如圖 2-7 中的藍色方形所圈 之範圍,其加總算式為Gb=-S21>>3-S22>>3、Gb2=Gb+Gb>>2、Ya=Gb2+Gb2 >>4,因為在>>{5、7、9}的 3 個群組可經由 Gb>>2、Gb>>4、Gb>>6所得,也 就是不需要加法器。單就此例來說,CSE 演算法需要 4 個加法器組,而 我們的方法僅需3 個加法器組,因此下一章我們要提出新型貪婪演算法, 並以設計實例證明比CSE 演算法[9-10]所使用的加法器要來的更少。 圖 2-7 本文與 CSE 的群組方式比較 Vinod[9-10]等人還提出 VCSE 群組化簡,群組方式如同圖 2-7 中的藍 框方式成垂直狀,但其加總算式是把前一係數項的值(ex. coef21)暫存至下 一係數(ex.coef22)後才作加總的動作,然而為了最後加總的正確性,電路 在合成時必會加入暫存器使得前後值可在同一時間進行加總的動作。我 們可從IC 設計經驗得知,通常一個加法器所佔電路的資源若訂為 1 個單 位,那麼暫存器大約為0.8,也就是說該次的減免便為-1+0.8=-0.2,表示
該次運算僅僅只有0.2 左右的減免。況且暫存器在合成時的使用量,可能 會隨著設計架構而不預期的增減量,如此的結果會造成在合成時所減免 掉的加法器資源會被增加的暫存器量完全抵銷,無法達到原本化簡的目 的。因此,本文並不採用VCSE 的群組化簡作為濾波器設計效能的改善 手段之一。 2-4 SRRC 設計範例應用 CSE 演算法 承前節探討了CSE 演算法[9-10]後,本節遵照該演算法來求得設計實 現的資源消耗。採用2-2 章節所用的 SRRC 濾波器規格,經由函數所求 得之係數,轉換成二進制表示,並根據式2-1 的架構於式 2-9 列出二補數 之展開式: O=A25+S1(9,10,12,14)+S2(9,10,11,13)+S3(0,1,2,3,4,5,6,7,8,11,14)+S4(0,1,2 ,3,4,5,6,7,9,13,15)+S5(9,12,14)+S6(8,9,10,11,12)+S7(0,1,2,3,4,5,6,7,8,9,10,1 1,12,13,15)+S8(0,1,2,3,4,5,6,8,9,10,11,15)+S9(0,1,2,3,4,5,6,7,8,9,11,13,15)+ S10(7,10,12)+S11(10,13,14,15)+S12(0,1,2,3,4,5,6,9,12)+S13(0,1,2,3,4,5,6,7, 8,11,12,13,15)+S14(6,7,12,13)+S15(7,8,9,10,11,13)+S16(0,1,2,3,4,6,7,8,12,1 5)+S17(0,1,2,3,4,7,8,9,10,11,13)+S18(6,7,8,9,11,12,14)+S19(4,5,8,9,10,11,12 )+S20(6,9,10,12,13,15)+S21(0,1,2,4,6,8,9,11,14)+S22(0,1,2,4,6,8,10,11,12,14 ,15)+S23(3,4,5,12,14)+S24(1,2,5,8,10,11,13) 式 2-9 再將式2-9 的展開式以移位數分類成>>0 到>>15(根據 Word Length 的 Float Bits 所定義,此例的規格中為 15),列於式 2-10 並以表 2-1 呈現: >>0: A25,S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22 >>1: S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22,S24 >>2: S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22,S24
>>4: S3,S4,S7,S8,S9,S12,S13,S16,S17,S19,S21,S22,S23 >>5: S3,S4,S7,S8,S9,S12,S13,S19,S23,S24 >>6: S3,S4,S7,S8,S9,S12,S13,S14,S16,S18,S20,S21,S22 >>7: S3,S4,S7,S9,S10,S13,S14,S15,S16,S17,S18 >>8: S3,S6,S7,S8,S9,S13,S15,S16,S17,S18,S19,S21,S22,S24 >>9: S1,S2,S4,S5,S6,S7,S8,S9,S12,S15,S17,S18,S19,S20,S21 >>10: S1,S2,S6,S7,S8,S10,S11,S15,S17,19,S20,S22,S24 >>11: S2,S3,S6,S7,S8,S9,S13,S15,S17,S18,S21,S22,S24 >>12: S1,S5,S6,S7,S10,S12,S13,S14,S16,S18,S19,S20,S22,S23 >>13: S2,S4,S7,S9,S11,S13,S14,S15,S17,S19,S20,S24 >>14: S1,S3,S5,S11,S18,S21,S22,S23 >>15: S4,S7,S8,S9,S11,S13,S16,S20,S22 式 2-10 表 2-1 SRRC 濾波器之加法樹單元表及其實現所需加法器數(2 補數) 移位數 加法樹單元 (W-S)*N+X 位元加 法器數 >>0: A25,S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22 20×12+0 240 >>1: S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22,S24 (20-1)×12+1 229 >>2: S3,S4,S7,S8,S9,S12,S13,S16,S17,S21,S22,S24 (20-2)×12+2 218 >>3: S3,S4,S7,S8,S9,S12,S13,S16,S17,S23 (20-3) ×10+1 171 >>4: S3,S4,S7,S8,S9,S12,S13,S16,S17,S19,S21,S22, (20-4)×13+4 212
S23 >>5: S3,S4,S7,S8,S9,S12,S13,S19,S23,S24 (20-5)×10+1 151 >>6: S3,S4,S7,S8,S9,S12,S13,S14,S16,S18,S20,S21, S22 (20-6)×13+2 184 >>7: S3,S4,S7,S9,S10,S13,S14,S15,S16,S17,S18 (20-7)×11+1 144 >>8: S3,S6,S7,S8,S9,S13,S15,S16,S17,S18,S19,S21, S22,S24 (20-8)×14+8 176 >>9: S1,S2,S4,S5,S6,S7,S8,S9,S12,S15,S17,S18,S19 ,S20,S21 (20-9)×15+1 166 >>10: S1,S2,S6,S7,S8,S10,S11,S15,S17,19,S20,S22,S 24 (20-10)×13+ 2 132 >>11: S2,S3,S6,S7,S8,S9,S13,S15,S17,S18,S21,S22,S 24 (20-11)×13+ 1 118 >>12: S1,S5,S6,S7,S10,S12,S13,S14,S16,S18,S19,S2 0,S22,S23 (20-12)×14+ 4 116 >>13: S2,S4,S7,S9,S11,S13,S14,S15,S17,S19,S20,S2 4 (20-13)×12+ 1 85 >>14: S1,S3,S5,S11,S18,S21,S22,S23 (20-14)×8+2 50 >>15: S4,S7,S8,S9,S11,S13,S16,S20,S22 (20-15)×9+1 46 總位元加法器數 2438
按照蕭如宣和曾智宏[11]在研究中的表示方式,從式 2-9 轉成式 2-10,並於表 2-1 列表呈現。2-10 式中每列(Row)為不同的移位數所含有 的非零項,而其中的 Sx=Zx+ Z(49-x)表示法的非零項,A25 為係數表中 唯一的中間值,在SRRC 的範例中為”1”。表 2-1 中我們對每個移位項估 算了其實現製作所需的位元加法器數,算法如式2-11 所示 (W-S) ×N+X 式 2-11 W:加法器的最高位元數 S:移位數 N:該移位項中所含有的非零項數量 X:二元樹加法器位階提升擴展位元數(參閱圖 2-8) 因為在進行加總時,有多少運算子就會需要有多少的加法器組,故在估 算位元加法器的總數時會直接乘上非零項的數量。在每個移位數的加總 後會與其他移位數的總和再進行加總,而加總的方式如圖3-8 的二元加法 樹結構所示: 圖 2-8 二元加法樹結構 X 值示意圖 從圖2-8 中可以看到像>>13、>>15 會為了分別與>>12、>>14 相加而付出 了+1 的代價,而>>14+>>15 的組合又會為了與>>12+>>13 的相加而付出 了+2 的代價,依此類推而得到圖 3-8 二元加法樹中所用的位元加法器估 算值。配合式2-11,在表 3-1 中估算出以二進制表示的濾波器所需的位元
加法器組將會用到2422 個位元加法器。 引用圖2-5 的 CSD 係數表示法之成果為基礎,根據式 2-10 的形式將 圖2-5 的非零項列於式 2-12,並以表 2-1 的形式列於表 2-2。 >>0:A25,S24 >>1: >>2:S23,-S24 >>3:S19,-S21,-S22 >>4:-S17 >>5:S14,-S16,S18,-S19,-S21,-S22,-S23,S24 >>6:-S12,S15,S17,S20 >>7:-S4,S6,-S8,S10,-S14,S19,-S21,-S22,S24 >>8:S1,S2,-S3,-S13,-S16,S20 >>9:S4,S5,-S9,S12,-S21,-S22,-S24 >>10:-S1,S10,S11,S13,-S18 >>11:-S2,S3,-S8,S9,S14,-S15,-S17,-S19,-S20,S21,-S24 >>12:S1,S5,-S6,S10,S11,S12,S16,-S18,S23 >>13:S2,S4,-S7,S9,-S13,-S14,S15,S17,-S19,-S20,-S22,S24 >>14:S1,S3,S5,S18,S21,S23 >>15:S4,S7,S8,S9,-S11,S13,S16,S20,-S22 式 2-12
表 2-2 SRRC 濾波器之加法樹單元表及其實現所需加法器數(CSD) 移位數 加法樹單元 (W-S)×N+X 位元加 法器數 >>0: A25,S24 20×2+0 40 >>1: (20-1)×0+0 0 >>2: S23,-S24 (20-2)×2+2 38 >>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
從表2-2 中找到 CSE 演算法中的 HCSE 群組項目(HCSE Group,HG)
即101CSD、10-1 CSD、1001 CSD、100-1 CSD等群組,並將找到的 HG 列於表
2-3 中。
表 2-3 CSE 演算法之 HCSE 化簡群組成果(101)
HG(101)
NO. Group Bits NO. Group Bits
1 S1>>12+S1>>14 8 2 S2>>13+S2>>15 7 3 S51>>12+S5>>14 8 4 S9>>11+S9>>13 9 5 S10>>10+S10>>12 10 6 S11>>10+S11>>12 10 7 -S18>>10-S18>>12 10 8 -S19>>11-S19>>13 9 9 S20>>6+S20>>8 14 10 -S20>>11-S20>>13 9 11 -S21>>3-S21>>5 17 12 -S21>>7-S21>>9 13 13 -S22>>3-S22>>5 17 14 -S22>>7-S22>>9 13 15 -S22>>13-S22>>15 7 16 S23>>12+S23>>14 8 17 S24>>5+S24>>7 15 18 S24>>9+S24>>11 11 從表2-2 中找到屬於 101 的群組配對後,便從表 2-2 剃除,並以圖 2-8 的二元樹架構將HG(101)的所有群組項加總完後以 SHG(101)作為替代並
高的為17,也就是說要將 HG(101)中的所有配對進行加總,最後所需的 位元加法器為17 個位元,因此會將代表 HG(101)總和的替代群組項 SHG(101)加入>>3 的地方,與其他非零項在最後一同加總,如表 2-4 所示。 表 2-4 SRRC 濾波器之加法樹單元表及其實現所需加法器數(CSD) 移位數 加法樹單元 (W-S)×N+X 位元加 法器數 >>0: A25,S24 20×2+0 40 >>1: (20-1)×0+0 0 >>2: S23,-S24 (20-2)×2+2 38 >>3: S19, SHG(101) (20-3)×1+1 18 >>4: -S17 (20-4)×1+4 20 >>5: S14,-S16,S18,-S19,-S23 (20-5)×5+1 76 >>6: -S12,S15,S17 (20-6)×3+2 54 >>7: -S4,S6,-S8,S10,-S14,S19 (20-7)×6+1 79 >>8: S1,S2,-S3,-S13,-S16 (20-8)×5+8 68 >>9: S4,S5,-S9,S12 (20-9)×4+1 45 >>10: -S1,S13 (20-10)×2+2 22 >>11: -S2,S3,-S8,S14,-S15,-S17,S21 (20-11)×7+1 64 >>12: -S6,S12,S16 (20-12)×3+4 28 >>13: S2,-S7,-S13,-S14,S15,S17,S24 (20-13)×7+1 50
>>14: S3, S18,S21 (20-14)×3+2 20 >>15: S7,S8,S9,-S11,S13,S16,S20, (20-15)×7+1 36 總位元加法器數 658 接著再將屬於10-1 CSD、1001 CSD、100-1 CSD的群組配對,以相同的方 式從表2-4 中尋找,所找到的配對如表 2-5 所示。由於 100-1 CSD的群組僅 僅只有一組,因此不列入化簡群組中,同時計算了SHG(10-1)、SHG(1001) 加總時所需的位元加法器個數並列於表2-6。 表 2-5 CSE 演算法之 HCSE 化簡群組成果(10-1,1001,100-1) HG(10-1) 1 S1>>8-S1>>10 12 2 -S2>>11+S2>>13 9 3 -S4>>7+S4>>9 13 4 -S7>>13+S7>>15 7 5 -S13>>8+S13>>10 12 6 -S13>>13+S13>>15 7 7 S14>>5-S14>>7 15 8 S14>>11-S14>>13 9 9 -S15>>11-S15>>13 9 10 -S17>>4+S17>>6 16 11 -S17>>11+S17>>13 9 12 S19>>3-S19>>5 17 13 S24>>0+S24>>2 20 HG(1001) 1 S3>>9+S3>>14 11 2 S12>>9+S12>>12 11 3 -S16>>5+S16>>8 15 4 S16>>12+S16>>15 8 5 S21>>11+S21>>14 9
表 2-6 CSE 演算法之 HCSE Group 的加法器位元總和 SHG 位元加法器數 SHG(101) 232 SHG(10-1) 179 SHG(1001) 61 將表2-5 內的配對從表 2-4 中進行剃除和替代,可得到表 2-7 的 CSE 演算法成果。 表 2-7 SRRC 濾波器之 CSE 演算法成果 移位數 加法樹單元 (W-S)×N+X 位元加 法器數 >>0: A25, SHG(10-1) 20×2+0 40 >>1: (20-1)×0+0 0 >>2: S23 (20-2)×1+2 20 >>3: SHG(101) (20-3)×1+1 18 >>4: (20-4)×0+0 0 >>5: S18,-S23,SHG(1001) (20-5)×3+1 46 >>6: -S12,S15 (20-6)×2+2 30 >>7: S6,-S8,S10,S19 (20-7)×4+1 53 >>8: S2,-S3 (20-8)×2+8 32 >>9: S5,-S9 (20-9)×2+1 23
>>10: (20-10)×0+0 0 >>11: -S8 (20-11)×1+1 10 >>12: -S6 (20-12)×1+4 12 >>13: S24 (20-13)×1+1 8 >>14: S18 (20-14)×1+2 8 >>15: S8,S9,-S11,S20 (20-15)×4+1 21 總位元加法器數 321 如表2-7,經過 CSE 演算法的化簡後的 SRRC 濾波器架構,使用到的 位元加法器總數為232+179+61+321=793 個,與二補數表示的未化簡方法 比約有(2438-793) /2438×100%=67.4%左右的化簡效率。 雖然在HG(101)的部份找到了許多的化簡群組而省去了不少加法器 個數,根據二元樹結構的加法樹組成,所需的階層可用 的式子來 計算必要的階層數,而N 就是加法器個數,為了得到 SHG(101)的結果, 需將18 個 HG(101)進行加總,而以 log2 N 進行計算,在 SHG(101)的部份 便需要有 ,也就表示必須先經過 5 階的二元樹加法器結構才 能得到SHG(101)的結果,雖然化簡不少的加法器個數,卻需要更多的運 算時間來得到結果。
第三章 新型貪婪式演算法
在前一章節中我們探討了一些現有 FIR 設計技術中存在的一些缺 點,都是與效能改進方面有所關聯,尤其是在群組的部份浮現出了諸多 可以改善的空間。在本章節先提出有效結合 BSD 與 CSD 的混合式(Mix) 表示法,再為 FIR 設計之 MCM 化簡提出新型貪婪演算法,也分別闡述 無償反覆式HCSE、有益 HCSE 簡化和最佳解尋找等演算法重點,最後呈 現該演算法在不同係數表示法、不同Taps、不同字組長度下的化簡數據, 以申明該演算法的化簡效益。 3-1 新型貪婪式演算法流程 數位FIR 濾波器的設計重點,主要是如何使用最少的位元加法器實現其多重係數乘法器(Multiple Coefficient Multipliers)。
圖 3-1 新型貪婪演算法流程圖
如圖 3-1 所示,本文提出一種新型貪婪式演算法,首先將濾波器的係
數乘積項分別表示成BSD、CSD 以及混合式(Mixed Mode)等表示式,然
隨之,進行第二階段有益的(Effective) HCSE 化簡,再進一步找出共用項, 最後階段是從這三種表示法中找出最佳解。 無償反覆式化簡演算法如下: 圖 3-2 無償反覆式 HCSE 化簡演算法 如圖 3-2 中的演算法所示,無償反覆式化簡演過程中,首先在係數表 示法的二維陣列中進行無償群組的搜尋,並將群組記錄至列表中,同時 標記旗標(fg)來記錄有無搜尋到群組。搜尋完畢後計算列表中各群組的 SG(Selected Gain)值,然後將 SG 值最高的群組作為該次搜尋到的群組, 保留該群組並取代至原陣列中,然後再次進行搜尋直到無群組為止,也 就是根據旗標(fg)來決定無償群組搜尋的結束。本文定義選取效益 SG 作 為選用群組的準則依據。無償反覆式演算法的時間複雜度可以用下列式 3-1 來表示:
2 21
n n O無償反覆式 式 3-1 如圖 3-3 的演算法所示,在有益 HCSE 化簡過程中,首先在係數表示 法的二維陣列中進行有益HCSE 群組的搜尋。本文定義了一個有益群組判別值,計算該群組的化簡效益,藉由計算有益群組判別值以區分有益 HCSE 群組中的有益群組和過償群組,保留有益群組作為有效益 HCSE 化簡的群組。群組搜尋完畢後會以有益群組判別值較高的群組作為該次 搜尋的化簡群組,進行群組編碼並替代至原非零項列表(即係數表示法的 二維陣列)中,藉此完成一次有益 HCSE 的化簡,接著再次搜尋下一個新 的有益HCSE 群組,直到群組旗標(fg)表示再也找不到任何群組為止。 圖 3-3 有益 HCSE 化簡演算法 有益HCSE 演算法的時間複雜度可由下列表示: ) 1 2 ( 2 n HCSE n O有益 式 3-2 新型貪婪演算法的總時間複雜度為式3-1 與式 3-2 的總和,可由式 3-3 表 示: HCSE
O
O
O
無償反覆式
有益)
1
2
(
2
2
n
nO
式 3-3 3-2 混合式表示法 如緒論中所提到,大多數人採用BSD 和 CSD 來改善數位 FIR 濾波器 的設計效能。在實做過後發現這兩種方法,在後續的加法器化簡中各有各的優勢。雖然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>>{2、4、6}來 取 代 , 減 少 了{S21>>5+S22>>5} 、 {S21>>5+S22>>5}和{S21>>5+S22>>5}所需使用的加法器,此為本文所用之 HCSE的化簡方式。 從第二章探討中說明Vinod [9-10]等人所用之HCSE,在化簡過程中雖 找到了相同的化簡群組,卻會因為兩個化簡的群組位置差距過遠,導致 在化簡後所用的加法器之位元數使用量提升,在過程中出現一種過償化 簡的現象。在以{101CSD}、{10-1CSD}、{1001 CSD}、{100-1CSD}等群組項為 主,並將為數眾多的群組化簡的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為例,在>>{5、7、9}的位置可經由>>3來獲得, 而假設該濾波器的字組(word)長度為16 bits,則在>>5的SG值便為 16-5=11,而得到11 bits的化簡效益,故在G1的例子中便可算出其 SG=11+9+7=27的化簡效益。在每次的無償反覆式搜尋中,都會取得所有 可以化簡之群組,並計算其SG值,選用該次搜尋中SG值最高的作為該次 化簡的群組,如此反覆搜尋直到無法找到群組為止,以此方法挑選了較 為有利的群組組合。藉由訂定一個標竿作為群組選擇的依據,將更有組 織地選擇有利的群組來改善設計的效能。 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化簡。其中,位元加法器為了不影響最後加總結果, 會以該組加法運算子的Sign Bit(SB)來補足欠缺的位元數,而非”0”。而算 式中的n,我們稱之為群組間有效跨距。 類似的群組化簡運算如同式3-4和式3-5,同樣的算式會出現有效益或 過償化簡的可能,故取用式3-4與式3-5的架構,以Sa和Sb替代成式3-6並 定義出幾個公式參數: {Sa>>S1+Sa>>(S1+x)}+ {Sb>>S2+Sb>>(S2+x)} =G+SB(x)G>>x 其中G={Sa>>S1+SB(n)Sb>>S2} 式3-6 W=加法器的最高位元數 S1=位移數較低之群組的位移數 S2=位移數較高之群組的位移數 n=S2-S1(兩群組間之有效跨距) SB(x)= 前擴展x個符號位元 從式3-4與式3-5的結果中,我們可比較出一條用以判定有效益化簡與過償 化簡的檢查公式,如3-7所示:
原式 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個加法器組的 使用。而式子中的(+3)就是圖中的”n”,也就是因為化簡而所付出的效益。 故當n=0時便為無償HCSE化簡,而在n≠0時就是有效益的HCSE化簡,此 架構適用於無償與有效益HCSE化簡,對於過償化簡的群組將會尋求其他 的有效益群組或視為一般非零項在最後進行加總就可以。 從圖3-7和圖3-8中的coef20就可以看到明顯的例證,也就說對於某些 非零項來說,它不僅僅只有一種化簡的群組。以{10010-1CSD}為例,同時 具有{1001CSD}和{10-1CSD}兩個群組模組,所以對[10]等人的CSE演算法來 說會有群組選用的問題,然而CSE群組的搜尋是屬於地毯式的搜索,在群 組選用中以最先找到的為最優先,在找到時便將其列為群組項目,卻不 考慮群組後的實質效益,就有可能出現如同圖3-9的過償化簡一樣,降低 了許多化簡效益。因此足以証明本文所提之無償、有效益和過償化簡的 重要性。 3-5 最佳解尋找 本研究從係數表示法開始,發展出取用BSD與CSD雙項優勢的Mix表 示法,在群組化簡中從無償反覆HCSE到有效益HCSE演算法,一再地尋 求可以更加減少加法器的地方。卻在研究中發現了一個問題,那就是基 於係數表示的差異性。 在研究中我們發現到不同的函式、特定的Taps、特定的Words等設定 參數在改變後,會造成我們所求得的係數中,其非零項會集中在不同移 位數的範圍內,因而發現到不同表示法在特定的參數中會優於另外兩種 表示法。論點在於沒有一種係數表示+演算法的組合為最佳解,所以對於 極度要求效能的濾波器設計來說,選用一個設計較佳的方法是必要的, 在3-7章節的範例結果中便可明顯看到此一現象。
3-6 SRRC 設計實例
本節中將以SRRC 濾波器為範例完整示範整個化簡的過程。這個 SRRC
濾波器規格為49 Taps、20bits (Integer 為 5Bits、Float 為 15Bits)字組長度,
函數參數採用2-2 章節中所示之規格。我們從圖 2-4、圖 2-5 及圖 3-2 所 表示的SRRC 濾波器之 BSD、CSD 和 Mix 等係數表示法結果,並對此三 種表示法同時進行新型演算法的化簡作業。首先以BSD 進行示範,仿照 2-4 節的步驟轉換成式 3-8 的 BSD 表示式並以表 3-1 呈現。 >>0:A25 >>1: S24 >>2: S23, S24 >>3: -S21,-S22 >>4: S19 >>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 >>15: -S4,-S7,S8,-S9,-S11,-S13,S16,S20,-S22 式 3-8 表 3-1 BSD 加法樹單元表及其實現所需加法器數 移位數 加法樹單元 (W-S)×N+X 位元 加法 器數 >>0: A25 20×1+0 20 >>1: S24 (20-1) ×1+1 20 >>2: S23,S24 (20-2) ×2+2 38 >>3: -S21,-S22 (20-3) ×2+1 35 >>4: S19 (20-4) ×1+4 20 >>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 在取得係數表示式後,將進行第一階段無償反覆式HCSE,找到的 BSD 無償群組如表3-2 所示。 表 3-2 BSD 表示法無償化簡群組 BSD 位元加法器 SG G1 (-S21>>3-S22>>3) 17 28 G2 (S1>>9+S20>>9) 11 18 G3 (-S17>>5+S19>>5) 15 15 G4 (-S16>>5+S24>>5) 15 12 G5 (-S4>>9-S13>>9) 11 11 G6 (S2>>8-S3>>8) 12 9 G7 (-S21>>10+S24>>10) 10 9 G8 (S18>>5+G3) (15)+15=30 8 G9 (S10>>7+S14>>7) 13 8 G10 (S5>>9+S12>>9) 11 8 G11 (G2>>9+G10) (11)+ (11)+11=33 8 G12 (-S9>>10-S11>>10) 10 8 G13 (S14>>6+S15>>6). 14 7 G14 (S20>>6+G13). (14)+14=28 7 G15 (-S22>>9+G5) (11)+11=22 5 G16 (-S7>>14-S9>>14) 6 5 總量 258 166 將表 3-2 的群組於式 3-8 中進行取代,所得到的無償反覆式 HCSE 之 成果如式3-9 所示。 >>0: A25
>>1: S24 >>2: S23, S24 >>3: G1 >>4: S19 >>5: -S23, G1>>2, G4, G8 >>6: -S12,-S17,G14 >>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 再來,是第二階段的有效益 HCSE 化簡,從式 3-9 中尋找符合式 3-6 架構之群組對,即依照類CSE 演算法之 HCSE 群組法則來尋找配對並加 入暫存列表中,接著根據式3-7 來判別是否為有效益群組,再根據式 3-7 中的(W-2S2+S1)值由高到低將其一一群組起來,所得之群組如表 3-3 所示。 表 3-3BSD 表示法有效益 HCSE 化簡群組 Group(Effective) 位元加法器數 W-2S2+S1
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 在取得表 3-3 有效益群組的同時,將有效益群組項取代原本的式 3-9 而得到有效益群組化簡後的成果並列於表3-4。 表 3-4 經過演算法化簡後的 BSD 加法樹單元表及其實現所需加法器數 移位數 加法樹單元 (W-S)×N+X 位元加法器數 >>0: A25 20×1+0 20 >>1: EG1 19+(20-1) ×1+1 39 >>2: S24 (20-2) ×1+2 20 >>3: G1 17+(20-3) ×1+1 35 >>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
×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 總位元加法器數 827 經由新型貪婪演算法的一連串化簡過後,BSD 表示式從原本表 3-1 的 1029 個位元加法器,減少到表 3-4 的 827 個位元加法器。將表 3-4 的結 果與二補數表示法進行比較後,從原始的2438 個位元加法數化簡到 827 個位元加法數,整體的效能改善達到66.07%的化簡率。 最後的最佳解尋找中會將分別基於 BSD、CSD 和 Mix 表示法取得化簡 成果,選擇一個化簡效果較佳的組合來合成最後的輸出檔(即 RTL code)。 因此也對CSD 和 Mix 同樣進行表 3-1 到表 3-4 的化簡步驟取得效能改善 後的成果。 CSD 表示式化簡將圖 2-5 的 CSD 係數圖表中轉換成式 3-10 的 CSD 係 數表示式,並以表3-5 呈現: >>0:A25,S24 >>1:
>>2:S23,-S24 >>3:S19,-S21,-S22 >>4:-S17 >>5:S14,-S16,S18,-S19,-S21,-S22,-S23,S24 >>6:-S12,S15,S17,S20 >>7:-S4,S6,-S8,S10,-S14,S19,-S21,-S22,S24 >>8:S1,S2,-S3,-S13,-S16,S20 >>9:S4,S5,-S9,S12,-S21,-S22,-S24 >>10:-S1,S10,S11,S13,-S18 >>11:-S2,S3,-S8,S9,S14,-S15,-S17,-S19,-S20,S21,-S24 >>12:S1,S5,-S6,S10,S11,S12,S16,-S18,S23 >>13:S2,S4,-S7,S9,-S13,-S14,S15,S17,-S19,-S20,-S22,S24 >>14:S1,S3,S5,S18,S21,S23 >>15:S4,S7,S8,S9,-S11,S13,S16,S20,-S22 式 3-10 表 3-5 CSD 加法樹單元表及其實現所需加法器數 移位數 加法樹單元 (W-S)×N+X 位元加 法器數 >>0: A25,S24 20×2+0 40 >>1: (20-1) ×0+0 0 >>2: S23,-S24 (20-2) ×2+2 38
>>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 在取得 CSD 的係數表示式後,開始第一階段無覆反覆式 HCSE,找到 的CSD 無償群組如表 3-6 所示。 表 3-6 CSD 表示法無償化簡群組 CSD 位元加法器 SG G1 (-S21>>3-S22>>3) 17 39
G2 (S14>>5-S19>>5) 15 22 G3 (S15>>6+S17>>6) 14 16 G4 (S23>>2-S24>>2) 18 15 G5 (-S4>>7+S24>>7) 13 11 G6 (S1>>8-S13>>8) 12 10 G7 (S20>>6+G3) (14)+14=28 9 G8 (S2>>8-S3>>8) 12 9 G9 (-S16>>5+S18>>5) 15 8 G10 (S5>>9+S12>>9) 11 8 G11 (S10>>10+S11>>10) 10 8 G12 (S1>>12+S23>>12) 8 6 G13 (S4>>13+S9>>13). 7 5 G14 (-S7>>13-S13>>13). 7 5 G15 (-S20>>13+G14) (7)+7=14 5 G16 (-S22>>13+G13) (7)+7=14 5 總量 215 181 CSD 的無償反覆式 HCSE 成果如式 3-11 所示。 >>0: A25,S24 >>1: >>2: G4 >>3: S19,G1 >>4: -S17 >>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 >>15: S8,-S11,S16,-G15>>2,G16>>2 式 3-11 第二階段的有效益HCSE 化簡,從式 3-11 中尋找符合式 3-6 架構之 群組對,根據式3-7 來判別是否為有效益群組,再根據式 3-7 中的 (W-2S2+S1)值由高到低將其一一群組起來,所得之群組如表 3-7 所示。 表 3-7CSD 表示法有效益 HCSE 化簡群組 Group(Effective) 位元加法器數 W-2S2+S1 EG1 G1+G2 (17+15)+17=49 20-2*5+3=13 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-8。
表 3-8 經過演算法化簡後的 CSD 加法樹單元表及其實現所需加法器數 移位數 加法樹單元 (W-S)×N+X 位元加法器數 >>0: A25,S24 20×2+0 40 >>1: (20-1) ×0+0 0 >>2: EG8 48+(20-2) ×1+2 68 >>3: S19,EG1 49+(20-3) ×2+1 84 >>4: -S17 (20-4) ×1+4 20 >>5: EG3,-EG8>>3,EG12 30+70+(20-5) ×3+1 146 >>6: -S12,EG2 42+(20-6) ×2+2 72 >>7: -S8,S10,-G2>>2,EG10,EG12>>2 51+ (20-7) ×5+1 117 >>8: S20 (20-8) ×1+8 20 >>9: EG1>>6,EG5,EG9,-EG10>>2 22+25+ (20-9) ×4+1 92 >>10: EG4 10+(20-10) ×1+2 22 >>11: -EG2>>5,-EG9>>2 (20-11) ×2+1 19 >>12: -EG3>>7,EG5>>3 (20-12) ×2+4 20 >>13: S2,-S14,-S19,G3>>7 (20-13) ×4+1 29 >>14: S3,S5,-EG4>>4 (20-14)×3+2 20 >>15: -S11 (20-15)×1+1 6 總位元加法器數 775
經由新型貪婪演算法的一連串化簡過後,CSD 表示式從原本表 3-5 的 1002 個位元加法器,減少到表 3-8 的 775 個位元加法器。將表 3-8 的結
果與二進制表示法進行比較後,從原始的2438 個位元加法數化簡到 775
個位元加法數,整體的效能改善達到68.2%的化簡率。
Mix 表示式化簡將圖 3-5 的 Mix 係數圖表中轉換成式 3-12 的 Mix 係數
表示式,並以表3-9 呈現: >>0:A25, S24 >>1: >>2:S23,-S24 >>3: -S21,-S22 >>4:-S17,S19 >>5:S14,-S16,S18,-S19,-S21,-S22,-S23,S24 >>6:-S12,S15,S17,S20 >>7: S6,-S8,S10,-S14,S19,-S21,-S22,S24 >>8:S1,S2,-S3, -S4,-S13,-S16 >>9:-S4,S5,-S9,S12, S20,-S21,-S22,-S24 >>10:-S1,S10,S11,S13,-S18,-S19,S20 >>11:-S2,S3,-S8,S9,S14,-S15, -S16,-S17,S21,-S24 >>12:S1, S4,S5,-S6,S10,S11,S12,-S16,-S18,S19,S20,S23 >>13:S2, -S7,S9,-S13,-S14,S15,S17,S19,S20,-S22,S24 >>14:S1,S3, -S4,S5,S18,S21,S23
>>15:-S4,S7,S8,S9,-S11,S13,S16,S20,-S22 式 3-12 表 3-9 Mix 加法樹單元表及其實現所需加法器數 移位數 加法樹單元 (W-S)×N+X 位元加法器數 >>0: A25,S24 20×2+0 40 >>1: (20-1) ×0+0 0 >>2: S23,-S24 (20-2) ×2+2 38 >>3: -S21,-S22 (20-3) ×2+1 35 >>4: -S17,S19 (20-4) ×2+4 36 >>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: S6,-S8,S10,-S14,S19,-S21,-S22,S24 (20-7) ×8+1 105 >>8: S1,S2,-S3, -S4,-S13,-S16 (20-8) ×6+8 80 >>9: -S4,S5,-S9,S12, S20,-S21,-S22,-S24 (20-9) ×8+1 89 >>10: -S1,S10,S11,S13,-S18,-S19,S20 (20-10) ×7+2 72 >>11: -S2,S3,-S8,S9,S14,-S15,-S16,-S17,S21, -S24 (20-11) ×10+1 91 >>12: S1,S4,S5,-S6,S10,S11,S12,-S16,-S18,S 19,S20,S23 (20-12) ×12+4 100 >>13: S2,-S7,S9,-S13,-S14,S15,S17,S19,S20, -S22,S24 (20-13) ×11+1 78
>>14: S1,S3, -S4,S5,S18,S21,S23 (20-14)×7+2 44 >>15: -S4,S7,S8,S9,-S11,S13,S16,S20,-S22 (20-15)×9+1 46 總位元加法器數 1033 在取得 Mix 的係數表示式後,開始第一階段無覆反覆式 HCSE,找到 的Mix 無償群組如表 3-10 所示。 表 3-10 Mix 表示法無償化簡群組 CSD 位元加法器 SG G1 (-S21>>3-S22>>3) 17 39 G2 (S19>>5+S24>>5) 15 20 G3 (S15>>6+S17>>6) 14 16 G4 (G1>>2-G2) (15)+15=30 13 G5 (S1>>8-S13>>8) 12 10 G6 (S2>>8-S3>>8) 12 9 G7 (-S16>>8+G6) (12)+12=24 9 G8 (S18>>5-S23>>5) 15 8 G9 (S5>>9+S12>>9) 11 8 G10 (S20>>9+G9) (11)+11=22 8 G11 (S10>>10+S11>>10) 10 8 G12 (S20>>6+G3) (14)+14=28 7 G13 (S4>>12-S16>>12). 8 5 G14 (-S7>>13-S13>>13). 7 5 G15 (S9>>13-S22>>13) 7 5 總量 232 170 第二階段的有效益 HCSE 化簡,將表 3-10 中找到的群組取代表 3-9 中 的非零項。接著尋找符合式3-6 架構之群組對,根據式 3-7 來判別是否為 有效益群組,再根據式3-7 中的(W-2S2+S1)值由高到低將其一一群組起 來,所得之有效益群組如表3-11 所示。