4.3 硬體實現成本函數
4.3.2 功率消耗成本函數
最後,採用[18]這篇估計功率消耗的方法-其評估的方式是計算每次執行重 複( Iteration )時使用到的暫存器總個數來做功率消耗的評估;還有功率消耗成本 函數不做多工器的功率消耗評估,原因是它的功率消耗遠小於暫存器的功率消 耗;另外,功率成本函數亦不將乘加器的功率消耗列入考慮,原因是假設彼此的 摺疊演算法都是用同樣的技術來實現乘法器與加法器,所以其功率消耗應相同。
(a) 第一篇系統化第一篇系統化第一篇系統化第一篇系統化摺疊摺疊摺疊摺疊演算法演算法演算法[9] 演算法
摺疊架構圖請參考圖圖圖圖 2.4 與圖圖圖 2.5,並使用表圖 表表表 4.1 的參數,來推理其整個摺疊 架構在每次執行重複( Iteration )時使用到暫存器的總個數公式,即其功率消耗成 本函數推導應如下列公式所示:
f( r(f+1)L + (K-f)m ) + Kb (4.5)
式子(4.5)中 L 為估算中間運算暫存器的位元長度,參考圖圖圖 2.5 發現一回合中圖 總共需執行 r( f+1 )個中間運算暫存器;而 (K-f)m 為輸入訊號的多工取樣( Input Sample Multiplexing )行為會使用到的正反器個數次數;然而,想要完成一次重複 ( Iteration )需將上述的動作執行 f 回合;而式子最後的 Kb 為代表圖圖圖圖 2.5 的 MAC 下方的係數多工( Coefficient Multiplexing )行為會使用到的正反器個數, b 為係 數長度,K 為 FIR 的 taps 數,而在 f 回合中總共執行 K 次。
(b) 位元平面摺疊方法位元平面摺疊方法位元平面摺疊方法位元平面摺疊方法[6]
摺疊架構圖請參考圖圖圖圖 2.8,並參考表表表 4.1 的參數,來推理其整個摺疊架構在表 每次執行重複( Iteration )時使用到暫存器的總個數公式,即其功率消耗成本函數 應如下:
b( (2K+1)L + K ) (4.6)
式子(4.6)中的(2K+1)為估計其摺疊架構的暫存器檔案會使用到的暫存器個 數,而一個中間運算的暫存器長度是 L 位元;因為 b 為位元平面摺疊演算法的 摺疊因數,所以執行一次完整重複( Iteration ),需將其摺疊架構全部的暫存器使 用 b 次;而除摺疊架構外,會使用到記憶體的地方,還有每個位元處理器的長度 為 1 位元的係數暫存器,而同時共有 K 個位元處理器一起運作,且完成一次完 整重複( Iteration )總共需要執行 b 回合。
(c) Parallel-In 摺疊摺疊摺疊摺疊演算演算演算演算法法法法
摺疊架構圖請參考圖圖圖圖 4.1~圖圖圖圖 4.3,並使用表表表表 4.1 的參數,來推理其整個摺疊 架構在每次執行重複( Iteration )時使用到暫存器的總個數公式,即其功率消耗成 本函數應如下:
f( 2rL + rb ) (4.7)
其中,L 為中間運算暫存器的位元長度,且一回合中只有讀取特定 r 個暫存 器內容以及寫入特定 r 個暫存器,所以將會執行中間運算暫存器 2r 次;b 為係數 暫存器長度,而在一回中只會讀取 r 個係數暫存器,完成一次重複需執行 f 回合。
(d) Serial-In 摺疊摺疊摺疊摺疊演算演算演算演算法法法法
摺疊架構圖請參考圖圖圖圖 4.8 ~ 圖圖圖 4.10,並使用表圖 表表 4.1 的參數,來推理其整個摺表 疊架構在每次執行重複( Iteration )時使用到暫存器的總個數公式,即其功率消耗 成本函數應如下:
f(2rL + rb+ (r-1)L + rm) (4.8)
其中,2rL+rb 解釋見上一節(c)的說明;(r-1)L 為估計每一回合寫入 MA 之間 溝通的 fD 暫存器次數;式子最後的 rm 為圖圖圖圖 4.9 中 x 輸入端 fD 讀取次數。
(e) 模擬模擬模擬模擬功率消耗功率消耗功率消耗功率消耗成本函數成長趨勢成本函數成長趨勢成本函數成長趨勢 成本函數成長趨勢
當我們固定 K=256,m=8,b=16 然後,使用 Matlab 來模擬成本函數 (4.5) ~ (4.8),而來探討當摺疊因數 f 越大時(即 r 越小,使用越少基本運算處理器去實現 摺疊架構),哪個摺疊演算法的功率消耗成長趨勢較緩,模擬結果如圖圖圖 4.12 所示,圖 觀察各種摺疊演算法的功率消耗成本函數的成長趨勢,發現當摺疊因數 f 越大 時,Parallel-In 摺疊演算法在功率消耗成長趨勢方面有明顯優勢,而因為 Serial-In 摺疊演算法需使用到移位暫存器讓功率消耗大大地增加。
4.4 摺疊演算法實現 摺疊演算法實現 摺疊演算法實現 摺疊演算法實現 WCDMA 規格 規格 規格 規格並比較 並比較 並比較 並比較
本章節將以實際應用規格 IS-95 WCDMA Pulse Shaping 33 taps FIR Filter 見 表表
表表 4.2 來實現各種摺疊演算法架構及原始架構,並透過 SYNOPSYS 公司發展的 Design Compiler 與 PrimePower 軟體來實際模擬各種摺疊演算法架構及原始架構 其面積大小與功率消耗情形來證明 4.3 節推導成本函數成長趨勢的可信度。
4.4.1 原始架構及各種摺疊架構實現原始架構及各種摺疊架構實現原始架構及各種摺疊架構實現 原始架構及各種摺疊架構實現
(a) 原始架構原始架構原始架構原始架構
以直接方式去實現表表表表 4.2 所列 FIR 規格,見圖圖圖圖 4.13 原始架構由 33 個 MAC(將 圖中○x 與○+視為最小操作單元)並加上 33 個中間運算暫存器所組成。
(b) 第一篇系統化第一篇系統化第一篇系統化第一篇系統化摺疊摺疊摺疊摺疊演算法演算法演算法演算法[9]
推導[9]的摺疊演算法應用在 IS-95 WCDMA Pulse Shaping 33 taps FIR Filter 的規格,摺疊架構應如上圖圖圖圖 4.14 所示,以 3 MACs 來實現 33 taps 的摺疊架構,
操作簡介:MAC2 做係數 h32,h31,…,h22的乘加運算,將運算結果存在 MAC2 的輸 出 12D 移位暫存器中,依時序切換多工器將運算結果加到下一級 MAC1;而圖 中的 MAC1, MAC0 操作同理。
(c) 位元平面摺疊方法位元平面摺疊方法位元平面摺疊方法位元平面摺疊方法[6]
推導[6]的摺疊演算法應用在 IS-95 WCDMA Pulse Shaping 33 taps FIR Filter 的規格,摺疊示意架構見圖圖圖圖 2.8 所示,以 33 個位元處理器(圖圖圖圖 2.8 中虛線矩形為 一位元處理器)來實現 33 taps 的摺疊架構,而每個位元處理器將重複執行 b = 16 (b 為係數位元長度)回合後才做下一次重複( Iteration );下圖圖圖 4.15 為[6]實現架構圖 圖,圖中有 33 排位元處理器,33 個 16 位元係數暫存器及多工器,1 個 x 輸入移 位暫存器,一個 VMA( Vector Merging Adder),操作簡介:每一排位元處理器重 複執行 16 回合完成一重複( Iteration )。
… …
33 reg.與 2 個位址解碼器(一個是寫入解碼器,另一是讀出解碼器)組成,因為處 理器陣列為 3 MACs,所以寫入解碼器的輸入及讀出解碼器輸出端各有 3 條訊號 線。
(e) Serial-In 摺疊摺疊摺疊摺疊演算演算演算演算法法法法
本篇提出符合規格的 Serial-In 摺疊架構示意圖如上圖圖圖圖 4.17 所示,由 3 MACs 加上 3 個 1D 暫存器與 2 個 11D 暫存器(作用為保留相鄰 MAC 的資料溝通)及 3 個多工器(作用為切換正確資料流)並在 x 輸入端加上 11D 的圓形定址暫存器,操 作原理請參考 3.4 節。
4.4.2 軟體模擬軟體模擬軟體模擬面積大小軟體模擬面積大小面積大小面積大小及功率消耗情形及功率消耗情形及功率消耗情形及功率消耗情形
使用 SYNOPSYS 公司所發展的 Design Compiler 與 PrimePower 軟體來模擬 4.4.1 節實現 WCDMA 規格的原始架構與摺疊架構,其面積大小與功率消耗情形 見表表表表 4.3 與表表表 4.4。 表
4.4.3 結果分析結果分析結果分析 結果分析 (168.96MHz)處理的單一 MAC 面積比低速(15.36MHz)處理的 MAC 面積來的大,
但其實大的量遠低於摺疊所省下來的面積(以 3 個高速 MAC 來節省 30 個低速 多,原因是 Parallel-In 摺疊演算法在讀取中間運算暫存器利用暫存器檔案中的解 碼器讓每一回合中只讀寫 3 個暫存器,且同時其他 30 個暫存器並不動作;而[9]
的摺疊演算法其作法主要是討論位元平面上的摺疊,並未考慮實際應用到電路上 時會發生嚴重的繞線問題,所以其面積大小與功率消耗在各種摺疊演算法中皆是 最差的。
第五章 第五章 第五章 第五章
設計流程與模擬結果
在這個章節中,將完整描述我們晶片設計的過程,從一開始的構思,到使用 MATLAB 軟體與 ModelSim 軟體來驗證構思,接著操作所需 CAD 軟體,執行功 能驗證、邏輯閘合成、加入掃描鏈(Scan Chain,目的是為了可以做日後驗證設計 中的正反器是否功能正常)、佈局繞線、估測功率、DRC 及 LVS 驗證,其流程圖 如圖圖圖圖 5.1 所示,最後,附上模擬結果驗證第四章所提實現的架構為可工作的並符 合預期結果。
5.1 設計流程 設計流程 設計流程 設計流程
第一步先熟悉MATLAB 軟體所提供的濾波器設計工具箱,對有限脈衝濾波 器有概念性的瞭解後,再利用MATLAB 程式語言,完成IS-95 WCDMA Pulse Shaping 33 taps FIR Filter的功能驗證與並找到符合規格( Specification )的濾波器 係數,規格列在表表表表4.2。
構想
Synopsys Design Compiler
Synopsys DFT Compiler
5.2 功能驗證 功能驗證 功能驗證 功能驗證
而該 hq[n]的頻率響應圖如圖圖圖圖 5.2 所示,亦符合表表表表 4.2 所列的規格。
量化係數及其頻率響應圖
濾波器功能驗證無誤後,根據第四章硬體架構的設計,使用VHDL硬體描述 語言,在RTL層級描述此硬體架構,依照圖圖圖圖5.1的流程,使用ModelSim來做RTL 層級的模擬輸出並與MATLAB計算結果互相比對驗證是否一樣,若不同則回去 修改硬體描述語言,直到相符為止,以下展示驗證濾波器功能的實例-
驗證實例一驗證實例一驗證實例一驗證實例一---脈衝響應-脈衝響應脈衝響應(Impulse Response)脈衝響應(Impulse Response)(Impulse Response) (Impulse Response)
當輸入訊號x1[n]為一脈衝訊號,通過該有限脈衝響應濾波器後,輸出訊號y1[n]
應等於hq[n],所以,ModelSim模擬RTL輸出結果應符合上述預期結果,截取 ModelSim模擬結果畫在圖圖圖圖5.3中,發現ModelSim模擬RTL輸出結果符合預測結果 與hq[n]係數相等。
Impulse Response驗證結果圖
驗證實例二驗證實例二驗證實例二驗證實例二---弦波相加-弦波相加弦波相加( sin (弦波相加( sin (( sin (ω( sin (ωω1t) + sin(ω1t) + sin(1t) + sin(ω1t) + sin(ωωω2t) )2t) )2t) )2t) )
當輸入訊號x2[n]為一不同頻率弦波相加的訊號(選擇ω1< 0.28π,而ω2>
0.28π),通過該有限脈衝響應濾波器後,分析輸出訊號y2[n]的頻譜應剩下ω1而 濾掉ω2,所以,ModelSim模擬RTL輸出結果應符合上述預期結果,截取ModelSim 模擬結果畫在圖圖圖圖5.4中,發現ModelSim模擬RTL輸出結果符合預測結果。
5.3 電路合成 電路合成 電路合成 電路合成
本節將介紹設計流程圖圖圖圖5.1中邏輯閘合成部份,除了合成出第四章實現的硬 體電路外,還使用SYNOPSYS公司所發展的軟體DFT Compiler軟體加入測試電路 到設計中,將在以下小節中介紹加入測試電路的重要性,以及合成電路的相關資 訊。
5.3.1 測試電路測試電路測試電路 測試電路
隨著VLSI 設計之高密度化,一個晶片含有上百萬個電晶體是十分常見的情 形。為了使晶片在生產後能夠具有容易測試的特性,所以在設計晶片時,需加入 額外的測試電路於設計中,以幫助簡化晶片測試的困難度。一般而言,測試電路 的加入技術可分成以下三種方法:Scan Path [21]、BIST [22]與Boundary Scan。
其中,Scan Path 就是在電路中額外加上SI ( Scan-in )、SE ( Scan-test )及SO ( Scan-out )腳,另外會在各個正反器( Flip-Flop )的輸入端插入適當的多工器如圖圖圖圖 5.5所示;當處在測試模式時,令每個正反器連接成為移位暫存器的構造,將事 先設計好的Test Patterns 從SI 輸入端依序位移到每一個正反器,之後切回正常模 式並等待正反器、鎖住( Latch )組合電路的輸出結果,然後,再切回到測試模式
其中,Scan Path 就是在電路中額外加上SI ( Scan-in )、SE ( Scan-test )及SO ( Scan-out )腳,另外會在各個正反器( Flip-Flop )的輸入端插入適當的多工器如圖圖圖圖 5.5所示;當處在測試模式時,令每個正反器連接成為移位暫存器的構造,將事 先設計好的Test Patterns 從SI 輸入端依序位移到每一個正反器,之後切回正常模 式並等待正反器、鎖住( Latch )組合電路的輸出結果,然後,再切回到測試模式