• 沒有找到結果。

適用於高速菲涅耳轉換之積體電路架構設計

N/A
N/A
Protected

Academic year: 2021

Share "適用於高速菲涅耳轉換之積體電路架構設計"

Copied!
78
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授: 黃 文 吉 博士. 適用於高速菲涅耳轉換之 積體電路架構設計 Efficient VLSI Architecture for Fresnel Transform. 研究生: 中華民國. 陳. 建. 一百零二. 廷 年. 撰 六. 月.

(2) 中文摘要. 中文摘要 本論文主要提出一硬體架構實現高速菲涅耳轉換,透過本硬體架構可還原全 像片的相位值,後續再進行相位展開法則計算即可重建出物體實際樣貌。為了提 高精確度,本硬體電路中大多使用 IEEE 754 浮點數格式進行運算,運算單元內 部皆以管線化架構的方式實現,並且利用最佳排程將各運算單元之計算以平行的 方式進行,有效提高菲涅耳轉換整體電路的運算效率,最後將此電路實現於 FPGA 開發平台並實際量測硬體資源消耗、運算時間以及功率消耗,透過硬體運算結果 與軟體運算結果相互驗證確認還原結果正確。根據實驗結果,本論文提出之硬體 架構有高精確度、高速運算以及低功率消耗之優點,對於現今要求即時運算的嵌 入式數位全像系統,本論文所提出之硬體架構較具有競爭力。. 關鍵字:系統晶片設計、FPGA、菲涅耳轉換. i.

(3) 誌謝. 誌謝 近七百個日子的努力成果得以順利呈現,要道謝的實在很多! 首先感謝我的指導教授黃文吉博士,在這兩年的研究生涯中給我豐富的研究 資源,對於我提出的想法總是放手讓我去嘗試,令我充分享受研究的樂趣,當我 遇到困境時給予關鍵的建議,在我研究態度鬆懈時提出嚴厲的指正,使我不僅學 習到許多專業知識,對於大學時期產生的疑惑也一一獲得解答,甚至在人生態度 上更是獲益良多,在此致上我最深的謝意。 特別感謝夏至賢學長,與您共事讓我留下很多寶貴的經驗,因為您的引薦讓 我有幸進入黃老師門下進行研究,這是我人生中相當重要的一個關卡,感謝您對 我的關照,感謝您與宜蘭大學林秀菊老師、輔仁大學周賜福老師,在百忙之中抽 空給予本論文評閱與建議,使本論文更臻完善。 另外,感謝本實驗室歷屆學長姊發展出完善的硬體介面,讓本論文在電路架 構開發時得以快速且順利進行,同時感謝臺灣師範大學光電科技研究所鄭超仁教 授以及賴信吉同學,給予我研究上許多背景知識與協助。感謝一起奮鬥兩年的同 窗摯友:清志、聖穎、國璿、任軒和瀚逸,以及一年級的學弟妹們:烝祺、思淮、 皓棠、奇恩、一修、光耀、雅姿,在口試時給予我許多幫忙。 最後要感謝我的父母,總是全力支持我,讓我在築夢的路上有堅強的後盾; 我的女友子昕,不管在研究上或是精神上都給予我全力協助與包容,讓我有更多 力量面對壓力與挫折;我的貓女兒𝝅,在我趕程式與論文時總是靜靜的趴在螢幕 旁邊,讓我有好心情繼續奮鬥。 如果將論文的完成視為一件工程的竣工,要感謝的助緣真的很多,一路走來, 許多給予過我鼓勵,或是讓我更有信心堅持下去的人、事、物,我都銘感五內, 因為有你們,這段學習之旅才能如此精彩,我的研究成果才得以展現。. ii.

(4) 目錄. 目 錄. 中文摘要.........................................................................................................................i 誌謝.................................................................................................................................ii 目錄................................................................................................................................iii 附表目錄.........................................................................................................................v 附圖目錄.......................................................................................................................vii 第一章. 緒論............................................................................................................... 1. 1.1 研究背景與動機目的.............................................................................................. 1 1.2 全文架構................................................................................................................... 3 第二章. 基礎理論及技術背景介紹........................................................................... 4. 2.1 菲涅耳轉換運算流程.............................................................................................. 4 2.2 討論菲涅耳轉換及相位展開於數位全像顯微鏡之應用 ...................................... 8 2.3 FPGA 系統設計 ..................................................................................................... 10 第三章. 系統架構..................................................................................................... 13. 3.1 Architecture I 及 Architecture II 之基本架構 .................................................... 13 3.1.1 前轉換單元(Pre-transform Unit) ..................................................................... 14 3.1.2 快速傅立葉轉換單元(FFT Unit) ...................................................................... 18. iii.

(5) 目錄 3.1.3 後轉換單元(Post-transform Unit) ................................................................... 21 3.2 Architecture I 及 Architecture II 之排程 ............................................................ 29 3.2.1 Architecture I 之排程......................................................................................... 29 3.2.2 Architecture II 之排程 ....................................................................................... 30 3.3 軟硬體共同設計.................................................................................................... 31 第四章. 實驗數據與效能比較................................................................................. 33. 4.1 開發平台與實驗環境介紹.................................................................................... 33 4.2 實驗數據的呈現與討論........................................................................................ 36 第五章. 結論............................................................................................................. 67. 參考著作 .....................................................................................................................68. iv.

(6) 附表目錄. 附表目錄. 表 3.1 反正切函數公式輸入值對應除法器輸入選擇 .............................................. 25 表 3.2 根據象限對應平移加減值............................................................................... 27 表 3.3 反正切函數加減值統整表............................................................................... 28 表 4.1 Altera Stratix III EP3SL150F1152C2N 開發板規格表 ............................... 34 表 4.2 菲涅耳轉換各單元資源複雜度比較 .............................................................. 36 表 4.3 菲涅耳轉換電路在不同維度時各單元之 ALMs 資源消耗表...................... 39 表 4.4 菲涅耳轉換電路在不同維度時各單元之 Memory Block Bits 資源消耗表 40 表 4.5 菲涅耳轉換電路在不同維度時各單元之 DSP Blocks 資源消耗表............. 42 表 4.6 菲涅耳轉換電路在不同維度之資源消耗 ...................................................... 43 表 4.7 菲涅耳轉換電路 Architecture I 與 Architecture II 比較表......................... 44 表 4.8 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(1) ........ 45 表 4.9 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(2) ........ 46 表 4.10 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(3) ...... 46 表 4.11 整合後電路總資源消耗表 ............................................................................. 48 表 4.12 執行時間量測(500MHz) ............................................................................... 48 表 4.13 菲涅耳轉換法則文獻數據比較表 ................................................................ 50. v.

(7) 附表目錄 表 4.14 菲涅耳轉換電路不同工作時脈之功率消耗表 ............................................ 51 表 4.15 相同樣本在不同維度之均方差 .................................................................... 66 表 4.16 不同樣本在相同維度之均方差 .................................................................... 66. vi.

(8) 附圖目錄. 附圖目錄. 圖 2.1 本論文重建全像圖流程..................................................................................... 9 圖 2.2 SOPC 系統架構圖 ............................................................................................ 11 圖 2.3 軟硬體共同設計圖........................................................................................... 12 圖 3.1 菲涅耳轉換法則硬體電路架構圖 .................................................................. 14 圖 3.2 前轉換單元硬體電路架構圖 .......................................................................... 15 圖 3.3 複數乘法器硬體電路架構............................................................................... 16 圖 3.4 前轉換單元運作圖........................................................................................... 17 圖 3.5 快速傅立葉轉換單元硬體電路架構圖 .......................................................... 18 圖 3.6 快速傅立葉轉換單元運作圖(1) ...................................................................... 13 圖 3.7 快速傅立葉轉換單元運作圖(2) ...................................................................... 20 圖 3.8 菲涅耳轉換後單元硬體電路架構圖 .............................................................. 21 圖 3.9 後轉換單元運作圖........................................................................................... 23 圖 3.10 反正切函數電路架構圖................................................................................. 24 圖 3.11 反正切函數電路內部硬體電路架構圖 ......................................................... 24 圖 3.12 反正切函數模組內部硬體電路架構 ............................................................ 25 圖 3.13 資料交換器內部硬體電路架構 .................................................................... 26. vii.

(9) 附圖目錄 圖 3.14 正切函數圖形................................................................................................. 26 圖 3.15 反正切函數輸出值分析器內部硬體電路架構 ............................................ 28 圖 3.16 Architecture I 排程......................................................................................... 29 圖 3.17 Architecture II 排程 ....................................................................................... 30 圖 3.18 SoPC 系統電路架構圖 ................................................................................... 31 圖 3.19 NIOS II CPU 執行之軟體流程圖 ................................................................. 32 圖 4.1 Altera Stratix III EP3SL150F1152C2N 開發板外觀 ................................... 33 圖 4.2 菲涅耳轉換電路 Architecture I 與 Architecture II 不同維度執行時間 .... 47 圖 4.3 菲涅耳轉換法則 Throughput 比較................................................................ 49 圖 4.4 相角還原圖(single mirco-lens 128X128) ....................................................... 53 圖 4.5 相角還原圖(Neural cell 256X256) ................................................................. 55 圖 4.6 相角還原圖(single mirco-lens 256X256) ....................................................... 57 圖 4.7 相角還原圖(micro-lens array 256X256) ....................................................... 59 圖 4.8 相角還原圖(single mirco-lens 128X128) ....................................................... 61 圖 4.9 連續相角還原圖............................................................................................... 63. viii.

(10) 第一章 緒論. 第一章 緒論 本章節主要在探討本論文的研究背景與動機、研究目的與方法,並大略說明 各章節的主要內容與重要特性。. 1.1 研究背景與動機目的 全像術是由 Dennis Gabor 於 1948 年提出[1],此技術可以記錄完整光波資訊, 將完整的三維影像重新產生出來,因此被命名為全像術(Hologram)。目前全像術 廣泛應用在醫學工程上生物細胞檢測等領域中,光學測量技術因為具有非侵入性 質的優點而受到廣泛使用,現今的數位全像顯微鏡(Digital Holographic Microscopy, DHM)[2]即為其中一種非侵入性質的影像擷取工具,其不只可以測量細微之物體, 還可以針對物體的三維影像測量相位的改變。 簡單來說,數位全像顯微鏡可完全重建出物體實際的樣子,但是必須經過一 套繁瑣的還原過程,包括還原全像片相位值以及相位展開,而本論文的重點主要 在於還原全像片相位值。利用菲涅耳轉換(Fresnel transform)[3]-[5]只需做一次傅立 葉轉換,即可完成數位全像的數值重建,因此菲涅耳轉換在數位全像顯微鏡系統 中是不可缺少的技術,但菲涅耳轉換計算複雜度高,即使透過個人電腦以軟體來 實現的方式,也未必能在極短的時間內立即取得還原過後的影像,為了達到即時 運算的目的,許多加速的方式被提出,其中有以 GPU 為主實現菲涅耳轉換[6]-[9], 另外也有以 FPGA 實現菲涅耳轉換[10]-[11],此兩種加速器的設計方式各有其優 1.

(11) 第一章 緒論 缺點,在 GPU 為主的實現方式中,功率消耗高以及可攜帶性差是兩個主要的缺 點;使用 FPGA 的設計方式雖然擁有低功率消耗以及便於攜帶的優勢,但在現有 的文獻中,以 FPGA 為主的設計方式 Throughput 仍然有待加強,有鑑於此,本論 文目標為提出一個基於 FPGA 實現的硬體架構同時具有低功率消耗以及高速運算 的優點。 本論文提出的菲涅耳轉換電路架構主要分為三大部分,分別是前轉換單元 (Pre-transform Unit)、快速傅立葉轉換單元(FFT Unit)、後轉換單元(Post-transform Unit),其中運算單元內部皆以管線化架構的方式實現,並且利用最佳排程將前轉 換單元、快速傅立葉轉換單元以及後轉換單元之計算以平行的方式進行,有效提 高菲涅耳轉換整體電路的運算效率。 本論文提出的硬體電路架構整合在以 FPGA(Fields Programmable Gate Array) 為基礎的可程式化系統晶片(System on Programmable Chip, SoPC)[12]平台,來實 際測量電路的運算時間以及驗證執行結果。而使用 SoPC 的優點在於可以重複的 更改與驗證設計中的電路,使得設計的彈性佳,帶給設計者極大的便利性。除此 之外,也會使用 Intel Core I7 的 CPU 以軟體實作相同的演算法則,此目的用來驗 證本論文硬體架構運算結果之正確性。. 2.

(12) 第一章 緒論. 1.2 全文架構 本篇論文共分為五個章節,以下為各章節內容概述: 【第一章】緒論 說明本論文的研究背景、動機、目的、方法及本文架構。 【第二章】基礎理論及技術背景介紹 簡介本論文所使用之演算法、理論基礎、技術背景及本論文在數位全像顯微 鏡中的應用。 【第三章】系統架構 介紹所提出的菲涅耳轉換電路的設計架構,並提供各電路內部的討論與說 明。 【第四章】實驗數據與效能比較 包含了系統環境的說明、相關實驗數據分析以及軟硬體效能比較。 【第五章】結論 對於所提出之硬體架構以及實驗的結果進行總結。. 3.

(13) 第二章 基礎理論與技術背景介紹. 第二章 基礎理論及技術背景介紹 本章節將介紹本論文所使用的基礎理論與技術背景。首先,本章的第一節將 介紹本文所使用的菲涅耳轉換法則(Fresnel Transform)基本運作流程,接著在第二 節中則會討論菲涅耳轉換與相位展開法則在數位全像顯微鏡中的應用,最後,第 三節介紹FPGA技術與SoPC系統整合設計,方便讀者對本論文能有初步的了解與 認識。. 2.1 菲涅耳轉換運算流程 在菲涅耳轉換中,以全像片平面的複數振幅資訊為輸入,而取得全像片中物 體的複數振幅資訊之後,首先要先進行數值重建,因此,本節將討論本論文所採 用的 Fresnel Transform 近場繞射公式及其數值重建方法。 菲涅耳轉換式(Fresnel transform)又可稱菲涅耳近似式(Fresnel approximation), 當觀測平面至孔徑平面間的距離遠大於波長 λ 時,可以由 Huygens-Fresnel principle[13]的積分式推導出菲涅耳轉換式,然而進行數位計算時,必須將此菲涅 耳轉換式表達成離散形式,如公式(2.1)所示。 ∑. ∑. [. 假設影像之長與寬皆為 N,先令. ]. (. ). (2.1). 為某一數位全像片之影像資訊,其中 4.

(14) 第二章 基礎理論與技術背景介紹 且. ,λ 為波長,z 為傳播距離,. 數值,三者皆設為定值,而. 可由. 為計算公式時所需要的常. 導出,其也為一定值,關係式如式(2.2) , (2.2). 在公式(2.1)中,與. 相乘之指數函數可以依指數加法律整理得公式(2.3),並將其. 重新定義為 μ,如公式(2.4), (2.3) , 公式(2.4)與全像片影像資訊相乘後得函數 因此可將其作傅立葉轉換之後可得函數. (2.4) ,如公式(2.5)。. 為一週期函數,. ,如公式(2.6)。本論文中,實作了快速. 傅立葉(Fast Fourier transform, FFT)的架構來計算. ,相關的計算電路將於第三章. 系統架構中加以討論。 (2.5) ∑. ∑. (2.6). 由於菲涅耳轉換式中,λ、z 皆為固定值,因此可定義一定值 α,如公式(2.7), (2.7) 另外,與. 相乘之指數函數也可仿公式(2.4)定義為. 及. , 接著重新整理式(2.1),可得出菲涅耳公式複數數值點的解. ,如公式(2.8)所示, (2.8) ,如公式(2.9)。 (2.9). 5.

(15) 第二章 基礎理論與技術背景介紹 為了後續進行相位展開法則運算,必須將. 虛部除以實部獲得之 γ 進行反正. 切函數(arctangent)運算來取得相角(phase) ,如公式(2.10), (2.10) 在本文中反正切函數運算使用 arctangent approximation 公式來求得近似解,如公 式(2.11),關於詳細的公式說明請參閱文獻[14], ,. (2.11). 另外,由於所求出的 γ 不一定符合公式(2.11)的條件. ,為解決此問. 題,本論文在進行反正切運算時,會將公式(2.11)、公式(2.12)及公式(2.13)搭配使 用,其使用方法將在第三章詳細說明。 ,. (2.12). ,. (2.13). 總結以上的討論,本文所採用的菲涅耳轉換公式以及由轉換公式解求出相角, 其運算流程以可歸納為以下步驟: 步驟零:給予輸入數位全像圖數值函數 步驟一:利用公式(2.5),計算函數. ,. 且. 。. 。. 步驟二:利用公式(2.6),使用二維度傅立葉轉換計算. ,二維度傅立葉轉換運算. 步驟如下: 步驟二之一:對於函數. 中每一列 x 執行快速傅立葉轉換或離散傅立葉轉換,. ,可得一運算結果陣列. ,離散傅立葉轉換如公式(2.14),。 6.

(16) 第二章 基礎理論與技術背景介紹 ∑ 步驟二之二:將陣列 步驟二之三:當. ( 去取代函數. ). (2.14). 中的第 x 個列向量。. 中每一個列向量都被取代之後,對於函數. 中的每一行向量. y 執行步驟二之一到步驟二之二的動作。 步驟三:利用公式(2.9),將二維度傅立葉轉換計算出的 步驟四:使用公式(2.11)、(2.12)以及(2.13),對函數 出相角. 。. 7. ,求出函數. 。. 作反正切函數運算,以求.

(17) 第二章 基礎理論與技術背景介紹. 2.2 討論菲涅耳轉換及相位展開於數位全像顯微鏡之應用 全像術主要分為紀錄、重建兩個步驟。傳統全像片通常須由底片拍攝而成, 然而,早在40年前,Goodman、Laurence[15]就提出利用電腦紀錄及重建全像圖的 想法,但當時受限於科技技術,電腦欠缺大量運算數值影像的能力,因此無法充 分的表現還原結果,而現今由於電腦科技日趨成熟,可使用高效率且快速的電子 式CCD/CMOS影像感測器取代傳統光學全像之記錄介質,並以數值計算方式重建 出原來物體的完整波前(振幅與相位)。 若以肉眼觀察,全像片只是一張灰白條紋相間的圖片,這些條紋形狀與原物 影像沒有任何幾何上的相似性,因此需要透過重建將影像還原出來,數位全像片 其數值重建方法已有許多演算方式被提出,本論文即透過菲涅耳轉換取得相角值, 後續可再搭配相位展開法則來重建連續相位圖。. 8.

(18) 第二章 基礎理論與技術背景介紹. 圖2.1 本論文重建全像圖流程. 圖2.1為本論文重建全像圖流程,取得全像片平面的複數振幅資訊. 之後,. 將之作為原始資料輸入至本章第一節所描述的菲涅耳轉換電路,藉由計算Fresnel transform公式獲得物體的複數振幅資訊. ,並利用反正切函數取得相位值. 此時的相位值. ]之間,造成相位圖中產生不連續點. 數值會被壓縮在. ,. (discontinuity),使整張相位圖呈現非線性的分布,因此可再利用相位展開法則, 將不連續點消除以重建出真實的相位。. 9.

(19) 第二章 基礎理論與技術背景介紹. 2.3 FPGA 系統設計 近年來,積體電路(Integrated Circuit, IC)產品的發展愈來愈快,然而卻造成其 生命週期日益下降,所要求的功能複雜度也提高許多,為了滿足這些應用本身的 挑戰,特別是隨著設計專案規模越來越大時,設計師們需要一個易於使用、靈活 的設計環境來探索不同的設計實現,以達到其成本、功率消耗和性能指標,因此 FPGA越來越常出現在對成本敏感、功耗敏感的大量應用。 使用硬體描述語言(Hardware Description Language, HDL)搭配可重複程式設 計的現場可程式化邏輯閘陣(Field Programmable Gate Array, FPGA) 晶片設計數 位電路,可縮短研發時間且更有彈性,經過簡單的合成繞線佈局,可快速重覆地 燒錄至FPGA上進行測試,是現代IC設計的技術主流。目前FPGA系統的開發,允 許軟體與硬體共同設計,來達成系統化的IC設計,具有開發時間短及系統可修改 的優點。 Altera公司根據不同使用者的需求,提供許多不同系列的FPGA開發板,本論 文是使用NIOS development kit中的Stratix III EP3SL150系統開發板來實現菲涅耳 轉換法則電路。. 10.

(20) 第二章 基礎理論與技術背景介紹. 圖2.2 SOPC系統架構圖 圖2.2為一個基於NIOS系列嵌入式處理器的SoPC系統架構圖,在NIOS系統中 提供了一套專門給NIOS處理器使用的匯流排(Avalon bus),其交換架構是一種定 制的內部互聯,它由SOPC Builder設計工具自動生成,將系統中所有的主設備和 從設備端口連接在一起。開發人員設計出的硬體電路被視為一個客製化邏輯電路 (custom logic circuit),透過此匯流排上的各個訊號線,將電路掛在Avalon bus上與 整個系統溝通。除此之外,Stratix III開發板上也提供DDRII SDRAM、flash memory、 Ethernet controller與I/O 裝置等,供開發人員使用。 NIOS系統擁有下列優點: 1.. Altera公司所提供的NIOSⅡ IDE是一個視窗介面的開發工具,設計者可於其 上編輯程式碼,更可編譯及除錯及觀察程式執行結果。此程式除了包含所有 C 語言的函式庫之外,還有HAL(Hardware Abstraction Layer)函式庫。其中 HAL 函 式 庫 提 供 設 計 者 一 個 呼 叫 系 統 相 關 裝 置 API(Application Program 11.

(21) 第二章 基礎理論與技術背景介紹 Interface),如圖2.3所示,設計者可用C 語言撰寫基本程式並透過HAL API 呼叫來讓特定的裝置運作。. 圖2.3 軟硬體共同設計圖 2.. 提供了Compact Flash卡(以下簡稱CF卡)存取功能,讓設計者可以將資料置於 CF卡中,並透過HAL API讓設計者進行讀與寫的動作。. 3.. 提供DMA(Direct Memory Access)機制讓設計者可加速資料在記憶體與系統 周邊元件的傳輸速度且不佔用CPU資源。. 4.. LwIP提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、不佔 據過多系統資源之外,也讓設計者更容易修改或增刪想要的功能。 設計者可依自己的需求增加或刪除想要的電路功能,而增刪裝置也非常簡便,. 重新建置系統並編譯成硬體檔之後燒至板子即可。 12.

(22) 第三章 系統架構. 第三章 系統架構 本章將詳細介紹本論文所提出的菲涅耳轉換法則硬體架構。在本論文中提出 Architecture I 和 Architecture II 兩種架構,由於此兩種架構共享相同的基本電路, 前轉換單元(Pre-transform unit)、快速傅立葉轉換單元(FFT Unit)以及後轉換 單元(Post-transform unit),因此擬將此基本電路在第一節討論。另外,本論文所 提出的 Architecture I 及 Architecture II 之最大不同點在於前轉換單元、快速傅立. 葉轉換單元以及後轉換單元之間的排程,在 Architecture I 中三大運算單元之計算 排程並未重覆,而在 Architecture II 中三大運算單元的排程則有重覆以增進 Throughput,因此在第二節中將詳細討論 Architecture I 及 Architecture II 之計算 排程。. 3.1 Architecture I 及 Architecture II 之基本架構 在本節中將介紹整體的系統架構,圖 3.1 為菲涅耳轉換法則硬體電路架構圖, 本系統架構主要分成四個部分:前轉換單元(Pre-transform unit)、快速傅立葉轉 換單元(FFT Unit)、後轉換單元(Post-transform unit)以及嵌入式記憶體(on-chip RAM)。接下來的各小節將會依序對每個單元的硬體架構進行詳細描述。本系統 架構中,on-chip RAM 的用途有三個,第一為儲存各個運算單元的資料輸入來源, 其次為儲存計算過程中的暫時性資料,最後是儲存計算完成的最終結果。 13.

(23) 第三章 系統架構 在菲涅耳轉換電路中,前轉換單元從on-chip RAM中讀取數位全像片資料 並根據2.1節中的公式(2.4)及公式(2.5)進行運算得到函數 換單元根據公式(2.6)計算得到函數 和公式(2.9)算出複數值點. ,. ,接著快速傅立葉轉. ,最後,後轉換單元由公式(2.7)、公式(2.8). ,經由反正切函數運算得相角 ,並將相角 存入. on-chip RAM中。. Pre-transform Unit. Avalon bus. FFT Unit. Avalon bus interface. Post-transform Unit On-Chip RAM. 圖 3.1 菲涅耳轉換法則硬體電路架構圖. 3.1.1 前轉換單元(Pre-transform Unit) 本節將介紹前轉換單元,此單元是以硬體電路實現菲涅耳轉換電路的步驟一。 首先介紹菲涅耳轉換前單元,其硬體架構如圖 3.2 所示,包含位址產生器、控制 器、多工器,兩張指數函數表(Exponential Function table),以及兩個複數乘法模 14.

(24) 第三章 系統架構 組(Complex number multiplication)。其中位址產生器輸出的記憶體位址用來讀取 on-chip RAM 的資料以及將運算結果存回其相對應的位置,另外記憶體位址也會 輸入指數表進行查表的動作。. Controller Address for read from On-Chip RAM Address Generator Address for write to On-Chip RAM. Data from On-Chip RAM. Address from Controller. Address from Controller. Exponential Function table. Complex number multiplication. Exponential Function table. Complex number multiplication. Data to On-Chip RAM. 圖 3.2 前轉換單元硬體電路架構圖. 根據公式(2.4)可知,. 及. 為相同的指數週期函數,根據不同的. 的位址索引x和y至指數函數表取得對應的值,由於. 15. 且. 所提供 ,x和y.

(25) 第三章 系統架構 的數值只有N種可能,因此可建構一個具有N個entry的指數表,當索引值傳入指數 表後,指數表就可以根據所輸入的數值,將對應的指數函數值輸出。另外,因為 x和y都必須進行查表的動作,因此在電路中直接使用兩張指數函數表。 由於全像片平面的振幅資訊. 皆為複數形式,因此在相乘時要做複數乘法,. 複數乘法的通解如公式(3.1), (3.1) 根據公式(3.1)的解設計出的電路架構如圖3.3,在此電路中需要四個乘法器搭配兩 個加法器來完成複數乘法計算。. 圖3.3 複數乘法器硬體電路架構. 圖 3.4 為前轉換單元執行時的運作圖。前轉換單元的內部電路設計使用了管 線化架構,在圖 3.4 中標明了各元件所需的 latency。當位址產生器產生位址 x,y. 16.

(26) 第三章 系統架構 後,x,y 便會輸入至 on-chip RAM 中讀取對應資料 函數表作為索引值,經由指數函數表查出對應值 送進第一個複數乘法器與 等待. 與. 進行複數乘法,同一時間. 完成運算,當. 乘法器進行運算,得到. ,此外,x,y 也會送至指數 並且同時輸出,此時. 則是送進 Delay Unit 中. 運算完成後,再將. 和. 送進第二個複數. ,並將其結果的實部與虛部分別儲存到 on-chip RAM1. 及 on-chip RAM2,如圖 3.4 所示。 Control signal from/to CPU. Controller Address for read from On-Chip RAM1 Address Generator Address for write to On-Chip RAM2. Re{ x , y } Data from On-Chip RAM. Address from Controller. Im{ x , y }. x. Re{  x } Exponential Function table. Im{  x }. Complex number multiplication (12-stages). Register. Im{ x , y   x }. Re{ x , y   x }. Register. Address from Controller. y. 會. Re{ y } Exponential Function table. Im{ y }. Complex number multiplication (12-stages). Delay Unit (14 clocks). Re{ x, y } Register. Im{ x, y } On-Chip RAM1&RAM2. 圖 3.4 前轉換單元運作圖 17.

(27) 第三章 系統架構. 3.1.2 快速傅立葉轉換單元(FFT Unit) 在本節中將介紹快速傅立葉轉換單元,快速傅立葉轉換單元為硬體實現菲涅 耳轉換電路中的步驟二,圖 3.5 為快速傅立葉轉換單元的硬體架構圖,由控制器、 位 址 產 生 器 、 一 維 的 快 速 傅 立 葉 模 組 (1D-FFT module) 和 兩 個 格 式 校 準 器 (Alignment A、Alignment B)所組成。. 圖 3.5 快速傅立葉轉換單元硬體電路架構圖. 依菲涅耳轉換電路運算流程的步驟二,快速傅立葉轉換單元會利用一維的快 速傅立葉模組對函數. 進行運算,在此過程中會先執行列運算,再執行行運算,. 本論文所使用的一維快速傅立葉模組是使用,Altera 公司所提供的FFT MegaCore function[16]。此模組為單一複數資料輸入及單一複數資料輸出的形式,資料轉換 長度為N,並且選用資料流(streaming)的模式,此種模式可以連續的輸入N筆資料 到一維快速傅立葉模組,並且待轉換完成後也能連續的將結果輸出。資料流模式. 18.

(28) 第三章 系統架構 的傅立葉模組輸入所使用的是定點數(Fixed-point)格式,輸出則是採用分段浮點數 (Block Floating Point)格式,為了配合前轉換單元以及後轉換單元所使用的IEEE 754浮點數格式,因此在一維快速傅立葉模組前後都各加上一塊格式校準器做為 輔助。. Control signal from/to CPU. Controller. Addresses for reading from on-chip RAM Addresses for writing to on-chip RAM. Address Generator. Re{u,v }. Re{x,y } Alignment Im{ x , y } A. FFT Module. Alignment Im{u,v } B. On-Chip RAM1 & RAM2. 圖3.6 快速傅立葉轉換單元運作圖(1). 圖 3.6 與圖 3.7 為快速傅立葉轉換單元運作情況,快速傅立葉轉換單元的運 算包含行運算與列運算兩個部分,由於前轉換單元計算結果 度浮點數格式,因此先將. 為 IEEE 754 單精. 輸入格式校準器 A,將單精度浮點數格式轉換成定. 點數格式,再將轉換好的值送到快速傅立葉轉換單元中進行運算,快速傅立葉單 元的輸出為分段浮點數格式,為格式校準器 B 的來源值,格式校準器 B 將分段浮 點數格式轉為單精度浮點數格式,再將運算完成的值存回 on-chip RAM 之中。圖 19.

(29) 第三章 系統架構 3.6 為快速傅立葉轉換單元之列運算運作圖,從 on-chip RAM 中取出前轉換單元 的運算結果 計算結果. 進行運算,每次取一列依順序輸入快速傅立葉轉換模組中,並將 存回 on-chip RAM 中對應的記憶體位址,當列方向都計算完成後再. 進行行方向計算,圖 3.7 為快速傅立葉轉換單元之行運算運作圖,從 on-chip RAM 中取出快速傅立葉轉換單元之列運算結果. 進行運算,每次取一行依順序輸入. 快速傅立葉轉換模組中,直到所有行都計算完成,可得傅立葉轉換單元結果. Control signal from/to CPU. Controller. Addresses for reading from on-chip RAM Addresses for writing to on-chip RAM. Address Generator. Re{u,v}. Re{ u ,v }. Alignment Im{u,v } A. FFT Module. Alignment Im{ } u ,v B. 圖3.7 快速傅立葉轉換單元運作圖(2). 20. 。. On-Chip RAM1 & RAM2.

(30) 第三章 系統架構. 3.1.3 後轉換單元(Post-transform Unit) 後轉換單元的架構類似於前轉換單元,圖 3.8 為轉換後單元的架構圖,包含 位址產生器、控制器、多工器,兩張指數函數表(Exponential Function table)、三 Control signal from/to CPU. Controller Address for read from On-Chip RAM Address Generator Address for write to On-Chip RAM. Data from On-Chip RAM. Address from Controller. Address from Controller. Exponential Function table. Complex number multiplication. Exponential Function table. Complex number multiplication. Complex number multiplication. Arctan circuit. Complex number. 圖 3.8 菲涅耳轉換後單元硬體電路架構圖 21. Data to On-Chip RAM.

(31) 第三章 系統架構 個複數乘法模組(Complex number multiplication),以及反正切函數模組(Arctan circuit)。其中記憶體位址用來讀取 on-chip RAM 的資料、將運算結果存回其相對 應的位置,以及輸入指數函數表進行查表的動作。 根據公式(2.8)可知,後轉換單元也有兩個一樣的指數函數 ,u和v都介於0至 N之間,因此可以依公式製作出N個entry的指數函數表,當索引值傳入指數函數表 後,指數函數表就可以根據所輸入的數值,將對應的指數函數值輸出。另外,因 為u和v都必須進行查表的動作,因此在電路中直接使用兩張指數函數表。 圖 3.9 為後轉換單元執行時的運作圖。其運作與設計方式和前轉換單元類似, 後轉換單元的內部電路設計同樣使用了管線化架構,在圖 3.9 中標明了各元件所 需的 latency。當位址產生器產生位址 u, v 時,一方面將位址送到 on-chip RAM 中 讀取資料,另一方面也會送至指數函數表作為索引值,經由指數函數表查出對應 值. 與. 一時間 再將. 並同時輸出,此時. 會送進第一個複數乘法器與. 則是送進 Delay Unit 中等待 和. 進行複數乘法,同. 完成運算,當. 運算完成後,. 送進第二個複數乘法器進行運算,得到值. ,緊接著. 再與定值 α 做第三次乘法,算出菲涅耳公式的解 觀察圖 3.9,在算出菲涅耳公式的解 函數運算來取得相角 ,將複數數值. ,如圖 3.9。. 之後,根據公式(2.10),還要作反正切 的虛部值除以實部值可得其正切函數. (tangent)的值 γ,再對 γ 作反正切函數運算得到的就是相角值 。此部分則交由反 正切函數電路(Arctan circuit)來運算,如圖 3.10,運算完的結果才會存回 on-chip 22.

(32) 第三章 系統架構 RAM1 及 on-chip RAM2 之中。 Control signal from/to CPU. Controller Address for read from On-Chip RAM Address Generator Address for write to On-Chip RAM. Data from On-Chip RAM. Address from Controller. Re{  u ,v } Im{  u ,v } Re u . u. Exponential Function table. Imu . Complex number multiplication (12-stages). Register. Im{  u ,v  u }. Re{  u ,v  u }. Register. Address from Controller. Re  v . v. Exponential Function table. Imv . Delay Unit (14 clocks). Im{  u ,v  u  v } Complex number multiplication Re{      } u ,v u v (12-stages). Register. Re  u ,v  Complex number multiplication (12-stages). Im  u , v . Arctan Circuit (37-stages). D-FF. . Re{  } Im{  }. u ,v. Complex number On-Chip RAM1&RAM2. 圖 3.9 後轉換單元運作圖 23.

(33) 第三章 系統架構. 圖 3.10 反正切函數電路架構圖 圖 3.11 為反正切函數電路內部的架構圖,包含絕對值比較器(Absolute value compare)、符號位元擷取器(sign bit extraction)、資料交換器(Data exchange)、除法 器(Divider)、反正切函數運算(Arctan function)以及反正切函數輸出值分析器 (Arctan output analyse),而此電路與菲涅耳轉換後單元共用位址產生器及控制器。. 圖 3.11 反正切函數電路內部硬體電路架構圖 反正切函數電路是將公式(2.11)、公式(2.12)及公式(2.13)整合在一起之後進行 實作。反正切函數模組內部硬體電路架構如圖 3.12,使用兩個乘法器,以及加法 器與除法器各一,計算出的值即為公式(2.11)所求;. 24.

(34) 第三章 系統架構. 圖 3.12 反正切函數模組內部硬體電路架構 因為公式(2.11)中 值必須介於-1 到 1 間,為了使超出範圍的 值也可以運算,另 搭配兩個反正切函數的倒數參數(Reciprocal arguments)關係式作為輔助,若 則使用公式(2.13),兩者都是先將 γ 倒數值經由反正. 則使用公式(2.12),若. 切函數電路作運算之後,再加上一常數來獲得最後相角值 。 表 3.1 反正切函數公式輸入值對應除法器輸入選擇 實部值. 𝜸範圍. 選擇反正切 函數公式. >虛部值. T. 28 86 𝜋 2. F. 𝜋 2. F. 反正切 函數輸 入值. 被除數. 除數. γ. 虛部值. 實部值. 實部值. 虛部值. 實部值. 虛部值. 判斷 γ 落在那一區間的方法是將 γ 值的實部值及虛部值取絕對值後輸入至絕 對值比較器中,比較器會輸出一訊號表示實部值是否有大於虛部值,參考表 3.1, 若實部值比較大表示. ,則可使用公式(2.11),利用資料交換器設定被除. 數及除數,其架構如圖 3.13,再把值傳給除法器,將虛部值除以實部值得到 γ; 若虛部值比較大表示. 或. ,則可能使用公式(2.12)或公式(2.13)兩者之一, 25.

(35) 第三章 系統架構 此時反正切函數輸入的是倒數值,則利用除法器將實部值除以虛部值取得 。. 圖 3.13 資料交換器內部硬體電路架構 利用此機制,改變被除數及除數位置,只需使用一個除法器作一次除法,即可得 到 γ 或 ,而非先算出 γ 再作第二次除法取得 ,此方法可以避免多餘資源浪費也 可避免在計算倒數時增加 critical path 長度。. III. IV. I. II. 圖 3.14 正切函數圖形 反正切函數電路計算完成後,必須根據所選擇公式來加上常數值,以及根據. 26.

(36) 第三章 系統架構 所在的座標象限進行調整,觀察如圖 3.14 可發現,因反正切函數的值域為( 但是相位展開電路所輸入的相位角 其值域為. 𝜋 𝜋],因此必須將座標位於第二. 𝜋],而座標位於第三象限的值則必須減掉𝜋平移到. 象限的值加上𝜋平移到( [ 𝜋. ),. )。 表 3.2 根據象限對應平移加減值 實部值. 虛部值. 象限. +. +. I. +. -. II. -. -. III. -. +. IV. 平移加 減值. 綜合以上敘述,可整理出表 3.3,反正切函數單元計算完之後可能會有五種 不同的加減值,分別為. 、. 、. 、 𝜋及 𝜋,反正切函數輸出值分析器會接. 受反正切函數電路計算出的值,並根據符號位元擷取器所取得的實部值及虛部值 的正負號,搭配絕對值比較器的比較結果,三種訊號共有八種可能,依表 3.3 對 應到不同加減值。 圖 3.15 為反正切函數輸出值分析器的電路架構,每次有資料輸入時,都會平 行的將五種不同的加減值計算完成傳到多工器,再利用輸入的 sign bits 選擇對應 的輸出值,即可得相角 。由於相角為一實數值,不會包含虛部的部分,因此將相 角 存回 on-chip RAM1,而此時 on-chip RAM2 則存入數值 0,後續若加入相位展 27.

(37) 第三章 系統架構 開電路只需要處理相角部分,因此不會再用到 on-chip RAM2。 表 3.3 反正切函數加減值統整表 求出反正 實部值 選擇反正 實部 虛 部 所在象限 切函數之 平移加 最後加 > 虛 部 切函數公 值 值 及𝜸範圍 後 須 加 上 減值 減值 值 式 的常數值 +. +. T. +. +. F. -. +. T. -. +. F. -. -. T. -. -. F. +. -. T. +. -. F. 第 I 象限 第 I 象限 第 II 象限 ≥ 第 II 象限 第 III 象限 第 III 象限 第 IV 象限 ≥ 第 IV 象限. 公式 2.11 公式 2.12. 𝜋 2. 𝜋 2. 𝜋 2. 𝜋 2. 𝜋 2. 𝜋 2. 𝜋 2. 𝜋 2. 公式 2.11 公式 2.13 公式 2.11 公式 2.12 公式 2.11 公式 2.13. 圖 3.15 反正切函數輸出值分析器內部硬體電路架構 28.

(38) 第三章 系統架構. 3.2 Architecture I 及 Architecture II 之排程 在本論文中提出兩種架構,分別為 Architecture I 及 Architecture II,其中 Architecture I 及 Architecture II 最大差別在於運算單元的排程不同,Architecture II 使用與 Architecture I 完全相同的運算單元,但 Architecture II 利用重覆排程的方 式可以有效提升 Throughput,以下各小節將詳細描述不同架構的排程,首先 3.2.1 為 Architecture I 之排程,接著 3.2.2 為 Architecture II 之排程。. 3.2.1 Architecture I 之排程 圖 3.16 為 Architecture I 之排程,菲涅耳轉換電路 Architecture I 在進行運算時, 依序進行前轉換運算、快速傅立葉運算、後轉換運算,每個單元會等待上一個單 元完成運算後,才開始進行運算,每個單元完成運算後會先將值存入 On-Chip RAM 中,下一個單元要進行運算時再將 On-Chip RAM 的內容值讀出進行運算, 觀察圖 3.16 可以發現,各單元並不會同時進行運算,因此菲涅耳轉換電路 Architecture I 整體運算時間即是三大運算單元各別耗費時間的總和。. Pre-transform. FFT. Time 圖 3.16 Architecture I 排程. 29. Post-transform.

(39) 第三章 系統架構. 3.2.2 Architecture II 之排程 圖 3.17 為 Architecture II 之排程,菲涅耳轉換電路 Architecture II 在進行運算 時,依序進行前轉換運算、快速傅立葉運算、後轉換運算,在 Architecture II 的運 算中,除了快速傅立葉列運算完成時會先將值存入 On-Chip RAM 中,要進行快 速傅立葉行運算時再將 On-Chip RAM 的內容值讀出進行運算,其餘每個單元完 成運算後會直接將運算結果輸入下一個運算單元進行運算,觀察圖 3.17 可以發現, 當前轉換單元開始有資料輸出時,快速傅立葉單元便開始進行運算;當快速傅立 葉單元的行運算開始有資料輸出時,後轉換單元便開始進行運算,因此在菲涅耳 轉換電路 Architecture II 中,整體運算所耗費時間幾乎等於快速傅立葉單元運算所 耗費的時間,關於 Architecture I 與 Architecture II 的效能分析將在第四章中詳細 討論。. Pre-transform FFT Post-transform Time 圖 3.17 Architecture II 排程. 30.

(40) 第三章 系統架構. 3.3 軟硬體共同設計 本論文提出的菲涅耳轉換法則硬體電路架構在整個SoPC系統架構中會被當 成一個客製化邏輯電路(custom user logic)。除了客製化的硬體電路之外,還包 含了NIOS II CPU等元件,如圖3.18所示。. 圖3.18 SoPC 系統電路架構圖 NIOS II CPU[18]的功用在於控制SoPC系統架構中資料的流動,由於本論文所 提出的硬體架構是由兩個On-Chip RAM作為菲涅耳轉換法則電路儲存運算結果 的目的地,因此為了確保兩個On-Chip RAM能夠儲存到正確的數值,CPU必須負 責設定狀態暫存器的數值,讓兩個On-Chip RAM前的多工器根據狀態暫存器內的 數值選擇正確的輸入來源並將其計算結果存入On-Chip RAM之中。 31.

(41) 第三章 系統架構 圖3.19顯示NIOS II CPU執行的流程。由此流程圖可以發現Architecture I與 Architecture II 的NIOS II CPU執行流程非常相似,NIOS II CPU除了負責設定狀態 暫存器內的數值之外,只需要負責傳送控制訊號來開啟運算單元的運作,運算單 元在接收到由NIOS II CPU傳來的開啟訊號後,就會自動的開始執行運算,並將運 算後的結果存回On-Chip RAM當中,也因為NIOS II CPU只需要處理如此簡單的 軟體指令,使得本硬體架構在執行菲涅耳轉換法則的運算效能有很大的提升。. Init Init. Activate Pre-transform Unit Activate Pre-transform& FFT Unit. Activate FFT Unit Activate FFT &Post-transform Unit. Activate Post-transform Unit Stop. Stop. (a). (b) 圖 3.19 NIOS II CPU 執行之軟體流程圖 (a) Architecture I (b) Architecture II. 32.

(42) 第四章 實驗數據與效能比較. 第四章 實驗數據與效能比較 本章節將呈現本論文所提出的菲涅耳轉換硬體架構之正確性、實際效能測量 與比較,以及實驗環境的介紹。. 4.1 開發平台與實驗環境介紹 本論文提出的硬體架構是以Altera 的Stratix III EP3SL150F1152C2N FPGA開 發板為主要的實現平台,如圖4.1 所示。表格4.1 是Stratix III EP3SL150F1152C2N FPGA開發板的詳細規格資訊。而選擇以FPGA 開發板來實現與驗證硬體電路, 是因為可程式化系統晶片(System on a Programmable Chip, SoPC)可以快速的將硬 體架構設計實現與驗證,具備可重複修改與快速上市等優點,所以FPGA 非常適 合實作本論文所提出的硬體架構。. 圖4.1 Altera Stratix III EP3SL150F1152C2N 開發板外觀 33.

(43) 第四章 實驗數據與效能比較 表4.1 Altera Stratix III EP3SL150F1152C2N 開發板規格表 Feature. Stratix III. Device. EP3SL150F1152C2N. Adaptive Logic Modules (ALMs). 56800. Combinational ALUTs. 113600. Memory ALUTs. 56800. Equivalent Logic Elements (LEs). 142000. Dedicated Logic Registers. 27213. M9K Memory Blocks. 355. M144K Memory Blocks. 16. Total block memory bits. 5630976. DSP block 18-bit elements. 384. Total PLLs. 8. Total DLLs. 4. Total Pins. 744. 本論文使用Altera Quartus II 10.1作為撰寫Verilog硬體描述語言的平台;並且 透過Quartus II提供的語法檢查、時序分析、邏輯元件的配置、產生規劃檔案、電 路合成以及繞線佈局等強大的功能,可以快速建立系統架構,並藉由模擬訊號波 型圖驗證其正確性。待系統架構設計完成後,就可以將系統架構掛載在SoPC system 上,並且將掛載完畢的SoPC system燒錄於FPGA開發板後,就可以進行實. 34.

(44) 第四章 實驗數據與效能比較 質的訊號輸入/輸出驗證系統架構的效能與正確性。而SoPC system內許多元件包 含CPU、客製化電路(菲涅耳轉換及相位展開電路)、記憶體等等組成一個系統則 是透過Altera SoPC Builder這套介面配置而成。Altera Quartus II 10.1所使用的PC 規格為Intel® Core™ i7-3770 CPU @ 3.40GHz、4G DDRIII記憶體。 而Altera公司也提供了採用Eclipse為基礎的NIOS II IDE軟體供使用者使用, 所有在系統中的軟體開發都可以在NIOS II IDE下完成。由於NIOS II系統提供設計 人員在Altera FPGA中開發完整的Nios II嵌入式系統所需的軟體工具、應用程式、 函式庫及驅動程式,方便使用者利用此IDE 軟體來與FPGA開發板溝通互動,加 速SoPC 系統的開發。 本論文除了使用Verilog 硬體描述語言來實作所提出之硬體電路架構,也會 使用MATLAB R2011b為平台,以軟體實現相同的演算法則來和硬體電路架構的 執行結果互相比較。 ※ 硬體實現環境 Device:Altera Stratix III EP3SL150F1152C2N CPU:NIOS II 500MHz Memory:64-MB DDR2 SDRAM ※ 軟體實現環境 CPU:Intel® Core™ i7-3770 CPU @ 3.40GHz Memory:DDRIII 4.0 G. 35.

(45) 第四章 實驗數據與效能比較. 4.2 實驗數據呈現與討論 本節將探討本論文所提出之菲涅耳轉換電路,在不同維度時的資源消耗以及 效能分析。本節首先對菲涅耳轉換電路進行資源複雜度分析,並且利用實際硬體 資源消耗結果與複雜度分析結果相互驗證;由於本論文提出兩種改善效能之硬體 架構,因此也會針對此兩種硬體架構的資源消耗與效能改善進行討論;在本節的 最後會將本硬體架構與其他文獻進行效能比較,並且討論本論文所提出硬體電路 之功率消耗情況,進一步歸納出本論文的優勢與競爭力。. 表 4.2 菲涅耳轉換各單元資源複雜度比較. Pre-transform Unit. FFT Unit. Post-transform Unit. On-Chip RAM. Adders. O(1). O(1). O(1). 0. Multipliers. O(1). O(1). O(1). 0. Dividers. 0. 0. O(1). 0. Registers. O(N). O(N). O(N). O(N2). 本節的一開始,首先對本論文提出的菲涅耳轉換電路進行資源複雜度分析, 表 4.2 為菲涅耳轉換各單元資源複雜度比較,本硬體架構主要由三個運算單元與 一個儲存單元所組成,表 4.2 即針對前轉換單元(Pre-transform Unit)、快速傅立葉 轉換單元(FFT Unit)、後轉換單元(Post-transform Unit)以及嵌入式記憶體(On-Chip 36.

(46) 第四章 實驗數據與效能比較 RAM)等四個單元進行分析比較;而各運算單元的設計主要由加法器(Adders)、乘 法器(Multipliers)、除法器(Dividers)以及暫存器(Registers)架構而成,表 4.2 即是依 照這些運算元件進行分析。 在表 4.2 的分析中,假設菲涅耳轉換輸入影像的邊長為 N, 輸入影像大小為 ,根據表 4.2 的資源複雜度比較,首先可以看出,表中三個運算元件(加法 器、乘法器以及除法器)的複雜度分析結果,在不同運算單元中結果類似,並不會 受到輸入影像大小影響。 在前轉換單元中,使用了兩個複數乘法器,每個複數乘法器由四個乘法器與 兩個加法器組成,雖然此運算單元實際使用八個乘法器與四個加法器,但在不同 大小的影像輸入時,乘法器與加法器的數量並不會改變,因此乘法器與加法器的 複雜度皆為 O(1),另外,此運算單元並未使用除法器,除法器複雜度為 0;在快 速傅立葉轉換單元中,乘法器與加法器的數量固定,且並未使用除法器,因此乘 法器與加法器的複雜度皆為 O(1),除法器複雜度為 0;在後轉換單元中,使用了 三個複數乘法器,與一個反正切函數電路,此運算單元與前轉換單元類似,最大 差異在於多了一個反正切函數電路,此電路中包含除法器電路,在不同大小的影 像輸入時,乘法器、加法器與除法的數量皆為定值,因此乘法器、加法器以及除 法器的複雜度皆為 O(1)。 接著討論菲涅耳轉換各單元中暫存器部分,觀察表 4.2 可以發現三個運算單 元的暫存器複雜度皆為 O(N),在前轉換單元以及後轉換單元中由於使用了 entry 37.

(47) 第四章 實驗數據與效能比較 數量為 N 個的 Lookup table,而快速傅立葉轉換單元在不同維度時需要不同大小 的資料暫存空間,因此這三個運算單元暫存器複雜度都會隨著輸入影像大小的增 加呈現線性的成長;最後在記憶體複雜度的部分,菲涅耳轉換電路使用了兩塊記 憶體,分別存放實部以及虛部的暫時性計算資料以及最後計算的結果,此兩塊記 憶體使用 On-Chip RAM 且大小皆為. ,因此記憶體的暫存器複雜度為 O(N2),. 如表 4.2 所示。 在實際的 SoPC 系統上,硬體資源主要可以分成三大部分,分別為 ALMs、 block memory bits 以及 DSP blocks,其中 ALMs 被用於實現暫存器以及運算單元; block memory bits 主要用於實現暫存器或記憶體元件;而 DSP blocks 則是被用來 實現數值運算中像是除法器以及乘法器等元件。以下將針對菲涅耳轉換電路的資 源消耗進行分析比較,表 4.3、表 4.4 以及表 4.5 會針對不同維度時各單元的資源 消耗進行討論,表 4.6 則是總結整體菲涅耳轉換電路的資源消耗。 表 4.3 為菲涅耳轉換電路在不同維度時各單元之 ALMs 資源消耗表。首先討 論前轉換單元,由於在前轉換單元中,構成 Lookup table 所使用的暫存器是由 ALMs 組合而成,在表 4.2 的複雜度討論中提到 Lookup table 的暫存器複雜度為 O(N),亦即維度增加時 ALMs 資源消耗會跟著上升,從表 4.3 可以清楚看到前轉 換單元的 ALMs 資源消耗,從維度 128X128 的 3642、維度 256X256 的 4123 至維 度 512X512 的 4977,維度增加時 ALMs 資源消耗有增加的趨勢,此結果與表 4.2 的複雜度分析相互印證。 38.

(48) 第四章 實驗數據與效能比較. 表 4.3 菲涅耳轉換電路在不同維度時各單元之 ALMs 資源消耗表. Size. Pre-transform Unit. FFT Unit. Post-transform On-Chip Unit RAM. 128x128. 3642. 7557. 7544. 201. 256x256. 4123. 7490. 7995. 339. 512x512. 4977. 7910. 8347. 796. 接著觀察表 4.3 的快速傅立葉轉換單元,由於快速傅立葉模組的 ALMs 並未 用來設計儲存輸入或輸出資料之暫存器,ALMs 資源消耗與維度毫無相關,因此 可以發現表 4.3 中快速傅立葉轉換單元的 ALMs 資源消耗並未隨維度增加而成長。 最後觀察表 4.3 的後轉換單元,後轉換單元與前轉換單元的電路架構極為類似, 同樣使用了 Lookup table,Lookup table 的 ALMs 資源消耗在維度增加時影響情況 與前轉換單元相似,從表 4.3 可以清楚看到後轉換單元的 ALMs 資源消耗,從維 度 128X128 的 7544、維度 256X256 的 7995 至維度 512X512 的 8347,維度增加 時 ALMs 資源消耗有增加的趨勢,與表 4.2 的複雜度分析相符合,另外,由於後 轉換單元電路較前轉換單元電路多出一個複數乘法器以及反正切函數電路,因此 在表 4.3 可以看到後轉換單元的 ALMs 資源消耗較前轉換單元多出許多。. 39.

(49) 第四章 實驗數據與效能比較 表 4.4 菲涅耳轉換電路在不同維度時各單元之 Memory Block Bits 資源消耗表 Size. Pre-transform Unit. FFT Unit. Post-transform Unit. On-Chip RAM. 128x128. 0. 24576. 9216. 1053600. 256x256. 0. 58368. 9216. 4210720. 512x512. 0. 116736. 9216. 16810016. 表 4.4 為菲涅耳轉換電路在不同維度時各單元之 Memory Block Bits 資源消耗 表,首先觀察表 4.4 前轉換單元部分,此運算單元所使用的運算元件並未使用到 Memory Block Bits,因此前轉換單元在不同維度時的 Memory Block Bits 資源消耗 皆為 0,如表 4.4 所示。. 在快速傅立葉轉換單元中,快速傅立葉轉換模組在不同維度時需要不同大小 的資料暫存空間,Memory Block Bits 即是用來組成快速傅立葉轉換模組的暫存器, 根據表 4.4 提供的資訊,快速傅立葉轉換單元的 Memory Block Bits 資源消耗從維 度 128X128 的 24576、維度 256X256 的 58368 至維度 512X512 的 116736,維度 增加時 Memory Block Bits 資源消耗有增加的趨勢,與表 4.2 中快速傅立葉轉換單 元的暫存器複雜度 O(N)的分析結果相符合。. 在後轉換單元中,組成反正切函數電路所使用的除法器會造成 Memory Block Bits 資源消耗,但在不同維度時除法器數量為定值,因此即便除法器需要消耗 40.

(50) 第四章 實驗數據與效能比較 Memory Block Bits,消耗情況也不會隨著維度增減而有改變,如表 4.4 後轉換單 元部分,在不同維度時的 Memory Block Bits 資源消耗皆為 9216。. 在本架構的嵌入式記憶體單元中,主要就是由 Memory Block Bits 組成,觀察 表 4.4 的資訊可以發現,嵌入式記憶體單元的 Memory Block Bits 資源消耗,遠高 於另外三個運算單元,且根據維度的不同,Memory Block Bits 資源消耗有明顯差 異;根據表 4.2 的複雜度分析,On-Chip RAM 的暫存器複雜度為 O(N2),實際上, 嵌入式記憶體單元有儲存資料實部的記憶體以及儲存資料虛部的記憶體兩個部 分,並且對於輸入影像的每個像素給予 32 bits 的儲存空間,因此觀察表 4.4 嵌入 式記憶體單元部分,從維度 128X128 的 1053600、維度 256X256 的 4210720 至維 度 512X512 的 16810016,Memory Block Bits 資源消耗約為 N2 的增加,此結果符 合預期。. 表 4.5 為菲涅耳轉換電路在不同維度時各單元之 DSP Blocks 資源消耗表,在 前轉換單元中,使用了兩個複數乘法器,而主要的 DSP Blocks 資源消耗來自複數 乘法器中的乘法器,在不同維度時乘法器數量為定值,因此前轉換單元的 DSP Blocks 資源消耗不隨維度變化而增減,如表 4.5 所示,前轉換單元的 DSP Blocks 資源消耗皆為 32。. 41.

(51) 第四章 實驗數據與效能比較 表 4.5 菲涅耳轉換電路在不同維度時各單元之 DSP Blocks 資源消耗表 Size. Pre-transform Unit. FFT Unit. Post-transform On-Chip Unit RAM. 128x128. 32. 24. 88. 0. 256x256. 32. 24. 88. 0. 512x512. 32. 24. 88. 0. 在後轉換單元中,使用了三個複數乘法器以及反正切函數電路,而主要的 DSP Blocks 資源消耗來自複數乘法器中的乘法器,以及反正切函數電路中的除法 器,其中反正切函數電路所使用的 DSP Blocks 資源,接近後轉換單元整體消耗量 的五成,此兩個運算元件的數量在不同維度時為定值,因此後轉換單元的 DSP Blocks 資源消耗不隨維度變化而增減,如表 4.5 所示,後轉換單元的 DSP Blocks 資源消耗在不同維度時皆為 88。 在快速傅立葉轉換單元中,DSP Blocks 主要為設計乘法器且乘法器數量在不 同維度為定值,因此快速傅立葉轉換單元的 DSP Blocks 資源消耗不隨維度變化而 增減,如表 4.5 所示,快速傅立葉轉換單元的 DSP Blocks 資源消耗在不同維度時 皆為 24。事實上,觀察表 4.5 可以發現,快速傅立葉轉換單元的 DSP Blocks 資源 消耗是三大運算單元中最低的,而後轉換單元的 DSP Blocks 資源消耗在三大運算 單元中為最高,佔了整體菲涅耳轉換電路 DSP Blocks 資源消耗的六成。. 42.

(52) 第四章 實驗數據與效能比較 表 4.6 菲涅耳轉換電路在不同維度之資源消耗. Architecture II (128X128). Architecture II (256X256). Architecture II (512X512). ALMs. Block Memory Bits. DSP Block. 18259. 1087392. 144. 19470. 4278304. 144. 21248. 16935968. 144. 表 4.6 指出整體菲涅耳轉換電路在不同維度之資源消耗,在此整體電路代表 將前轉換單元、快速傅立葉轉換單元以及後轉換單元整合後的電路。在表 4.6 的 比較中,主要以 Architecture II 為分析目標,並且根據維度 128X128、維度 256X256 以及維度 512X512 時的實際資源消耗,將前述所提到的三大硬體資源 ALMs、block memory bits 和 DSP blocks 進行紀錄。. 觀察表 4.6,首先可以發現當維度增加時,ALMs 資源消耗會呈現微幅增加, 由於在前轉換單元與後轉換單元使用的 Lookup table,是由 ALMs 所構成,因此 當維度增加時,Lookup table 的 entry 數量跟著增加,此時 ALMs 就會跟著增加; 另外還有控制三大運算單元以及讀寫 On-Chip RAM 時所需要的控制器,也會使 用到 ALMs,維度越大時合成控制器所需要的 ALMs 也會越多,因此,當輸入影 43.

(53) 第四章 實驗數據與效能比較 像的大小增加,所消耗的 ALMs 資源數量也會越來越多。 Block memory bits 用來組成記憶體元件,觀察表 4.6 的 block memory bits,可 以發現當維度增加時,block memory bits 有顯著的增加,這是由於本論文所提出 的硬體架構中,使用了 On-Chip RAM 的設計,其 On-Chip RAM 的 block memory bits 的資源消耗量隨著影像大小的增加,呈現接近 N2 的增長。DSP blocks 則是被 用來實現三大運算單元中的乘法器、加法器、除法器以及快速傅立葉模組,本節 稍早已經討論過,這些運算元件的數量並不會因為輸入的資料量不同有所增減, 因此 DSP blocks 的資源消耗並不會因為輸入影像大小的不同而有所影響,如同表 4.6 的結果,在不同維度時的 DSP blocks 資源消耗皆為 144。. 表 4.7 菲涅耳轉換電路 Architecture I 與 Architecture II 比較表. ALMs. Block Memory Bits. DSP Block. Architecture I. 19305. 4278304. 144. Architecture II. 19470. 4278304. 144. 表 4.7 為菲涅耳轉換電路 Architecture I 與 Architecture II 比較表,由於 Architecture I 與 Architecture II 在不同維度進行比較的結果皆相似,因此表 4.7 僅 以 維 度 256X256 為 例 。 在 本 論 文 提 出 的 硬 體 架 構 中 , Architecture II 是 以 44.

(54) 第四章 實驗數據與效能比較 Architecture I 為基礎,將三大運算單元重複排程以實現管線化設計,管線化設計 屬於時間上的平行,最大特點就是在硬體資源消耗微量增加的情況下,讓運算所 耗費的時間大幅縮減;根據表 4.7 的數據,在 ALMs 資源消耗部分,Architecture II 稍微高於 Architecture I,這是由於 Architecture II 的控制器較複雜之故。但在 Memory Block Bits 以及 DSP Blocks 的資源消耗則是完全相同;根據此表可以發 現兩種架構的硬體資源消耗非常接近。. 接著,表 4.8、表 4.9 以及表 4.10 為不同維度時,菲涅耳轉換電路 Architecture I 與 Architecture II 之執行時間比較,觀察此三張表可以發現,在不同維度時 Architecture II 的總執行時間,幾乎與 Architecture I 的快速傅立葉轉換單元所花費 的時間相同,若比較菲涅耳轉換電路整體執行時間 Architecture II 只需要約 Architecture I 一半的時間即可完成相同運算。. 表 4.8 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(1) 單位:ms. 維度:128X128. Architecture I. Pre-transform Unit. FFT Unit. Post-transform Unit. Total. 0.0328. 0.0668. 0.0329. 0.1325. Total Architecture II 0.0670. 45.

(55) 第四章 實驗數據與效能比較 表 4.9 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(2) 單位:ms 維度:256X256. Architecture I. Pre-transform Unit. FFT Unit. Post-transform Unit. Total. 0.1311. 0.2643. 0.1312. 0.5266. Total Architecture II 0.2645. 表 4.10 菲涅耳轉換電路 Architecture I 與 Architecture II 執行時間比較(3) 單位:ms 維度:512X512. Architecture I. Pre-transform Unit. FFT Unit. Post-transform Unit. Total. 0.5243. 1.0529. 0.5245. 2.1017. Total Architecture II 1.0531. 為了方便觀察,在此將表 4.8、表 4.9 以及表 4.10 的總執行時間作圖,圖 4.2 為菲涅耳轉換電路 Architecture I 與 Architecture II 不同維度之執行時間,觀察圖 4.2 可以發現,處理不同維度圖片時,Architecture I 的運算時間將隨維度增加而大 幅成長,相較之下,Architecture II 的時間成長曲線則較平緩。 總結以上 Architecture I 與 Architecture II 在硬體資源消耗與運算時間的分析, 可以發現 Architecture II 透過運算單元重複排程的方式,僅需增加少量硬體資源消 耗,卻可以有效達到運算加速的目的,因此,在資源允許的情況下,Architecture. 46.

(56) 第四章 實驗數據與效能比較 II 應為較佳的實現選擇。. Time(ms) 2.5. 2. 1.5 Architecture I Architecture II. 1. 0.5. 0 128X128. 256X256. 512X512. size. 圖 4.2 菲涅耳轉換電路 Architecture I 與 Architecture II 不同維度執行時間. 表 4.11 為整合後電路總資源消耗表,在表 4.11 中將本論文提出的 Architecture II 與 Phase Unwrapping 進行整合,以及 Architecture II、Phase Unwrapping 加上 SOPC 系統的整合;由於 Phase Unwrapping 和 Architecture II 可以共用記憶體單元, 因此將這兩塊電路整合後,雖然 ALMs 以及 DSP Blocks 有明顯增加,但 Block Memory Bits 僅有微幅的增加;接著繼續將此系統掛載至 SoPC,由於 NIOS CPU 以及相關系統也會消耗一些硬體資源,因此在 ALMs 以及 Block Memory Bits 部 分會有增加,但 DSP Blocks 則不受影響。. 47.

(57) 第四章 實驗數據與效能比較 表 4.11 整合後電路總資源消耗表. Architecture II. Architecture II + Phase Unwrapping. Architecture II + Phase Unwrapping. ALMs. Block Memory Bits. DSP Blocks. 19470. 4278304. 144. 28193. 4399648. 184. 37563. 4553440. 184. + SOPC. 表 4.12 執行時間量測(500MHz) 單位:ms. Architecture II. Modelsim 量測 (256X256). NIOS 量測 (256X256). 0.2645. 0.2875. 表 4.12 為執行時間量測,在此表中以工作時脈 500MHz 以及維度 256X256 為例,此表的執行時間可分為兩個部分,一個是利用 Modelsim 軟體量測,另一 個則是電路實際在 FPGA 平台上執行時,利用 NIOS CPU 進行量測;使用 Modelsim 軟體可以較為精準的量測菲涅耳轉換電路執行所花費的時間,若是使用 NIOS CPU 進行量測,由於需要透過 NIOS CPU 開啟以及關閉計時器,測量上會有些微. 48.

(58) 第四章 實驗數據與效能比較 的誤差,如此便造成表 4.12 中 Modelsim 量測的 0.2645 毫秒與 NIOS 量測的 0.275 毫秒有些微差異,但透過 NIOS CPU 的量測,便可以確認電路實際在 FPGA 上的 執行時間符合預期。. 表 4.13 為菲涅耳轉換法則文獻數據比較表,主要將本論文提出的 Architecture I 以及 Architecture II 與其他五篇文獻進行比較,在這些文獻中,同樣是菲涅耳轉 換法則但使用不同的方式實現,包含了 FPGA 以及 GPU,另外,在不同文獻中實 現的維度大小也不相同,在此將 Throughput 以 PPS(Pixels Per Second)為單位呈現, 以方便比較,圖 4.3 為菲涅耳轉換法則 Throughput 比較,是以表 4.13 的 Throughput 作圖以方便觀察不同文獻的 Throughput,從圖 4.3 可以明顯看出本論文提出的 Architecture I 以及 Architecture II 在 Throughput 部分明顯優於其他文獻。. 2.50E+08. 2.00E+08. 1.50E+08 PPS 1.00E+08. 5.00E+07. 0.00E+00 Arch. I Arch. II. [6]. [7]. [8]. [9]. 圖 4.3 菲涅耳轉換法則 Throughput 比較 49. [10].

(59) 第四章 實驗數據與效能比較 表 4.13 菲涅耳轉換法則文獻數據比較表. Implementatio n. Throughput (PPS). Platform. Dimension. Clock Rate (Hz). Architecture I. 124.77 X106. FPGA Altera Stratix III. 512X512. 500 M. Architecture II. 248.95 X106. FPGA Altera Stratix III. 512X512. 500 M. 3.72 X10. GPU NVIDIA Geforce 8800 GTX. 500X500. 575M. [7]. 0.92 X106. GPU NVIDIA Quadro NVS 135M. 1000X1000. 169M. [8]. 6. GPU NVIDIA GeForce 8800 GTS. 512X512. 1.2G. GPU AMD Cypress HD 5850. 512X512. 725M. 256X256. 133M. [6]. [9]. [10]. 6. 6.53 X10. 6. 44.4 X10. 25.2 X106. FPGA Xilinx XC2VP70– 5FF1517C 50.

(60) 第四章 實驗數據與效能比較. 表 4.14 為菲涅耳轉換電路不同工作時脈之功率消耗表,從工作時脈 50MHz 至 500MHz,以 50MHz 為一個區間進行量測,當工作時脈上升時功率消耗也會增 加,根據表 4.13 的資訊,工作時脈 50MHz 時的功率消耗約為 1W,而工作時脈 500MHz 時的功率消耗則接近 3W;在[19]的研究指出 GPU 運算時的消耗功率約 介於 100 W 至 135 W,而 GPU 閒置(Idle)時的功率消耗約為 50W 至 70W,雖然 在[19]中測試的數個 GPU 型號不完全與[6]-[9]使用的型號相同,但根據[19]的實 驗數據可提供 GPU 功率消耗粗略的概念作為參考,由此可見本硬體架構實現於 FPGA 的功率消耗會大幅低於其他實現於 GPU 的功率消耗。. 表 4.14 菲涅耳轉換電路不同工作時脈之功率消耗表. Clock Rate (MHz). 50. 100. 150. 200. 1019.27. 1293.66. 1597.82. 1705.62. Clock Rate (MHz). 250. 300. 400. 500. Power Consumption (mW). 2164.20. 2445.93. 2577.84. 2961.96. Power Consumption (mW). 51.

(61) 第四章 實驗數據與效能比較. 為了驗證本論文所提出的菲涅耳轉換法則硬體電路之正確性,本論文由國立 臺灣師範大學光電科技研究所鄭超仁教授的研究室提供全像片平面的複數振幅 資訊作為測試影像,這些測試影像為實際以數位全像顯微鏡拍攝而得,分別為 single mirco-lens、Neural cell 以及 micro-lens array。圖 4.4、圖 4.6 以及圖 4.8 為 single mirco-lens 在維度 128X128、維度 256X256 以及維度 512X512 之還原圖, 圖 4.5 為 Neural cell 在維度 256X256 之還原圖,圖 4.7 為 micro-lens array 在維度 256X256 之還原圖,在圖 4.4 至圖 4.8 中,圖(a)為利用 matlab 軟體模擬所獲得的 相角值,其值被壓縮在. 𝜋 𝜋],圖(b)則為經由菲涅耳轉換電路運算後所獲得的相. 角值,圖(c)為 Matlab 軟體模擬獲得之相角值俯視圖,圖(d)為菲涅耳轉換電路運 算獲得之相角值俯視圖,圖 4.9 將硬體運算獲得之相角交由 Matlab 進行相位展開 所得之連續相角還原圖,此還原圖已經完成物理尺規轉換,即圖 4.9(a)-(e)為實際 物體樣貌。. 52.

(62) 第四章 實驗數據與效能比較. 圖 4.4(a) 由 Matlab 模擬獲得之相角值(single mirco-lens 128X128). 圖 4.4(b) 由硬體電路運算獲得之相角值(single mirco-lens 128X128) 53.

(63) 第四章 實驗數據與效能比較. 圖 4.4(c) 由 Matlab 模擬獲得之相角值俯視圖(single mirco-lens 128X128). 圖 4.4(d) 由硬體電路運算獲得之相角值俯視圖(single mirco-lens 128X128) 54.

(64) 第四章 實驗數據與效能比較. 圖 4.5(a) 由 Matlab 模擬獲得之相角值(Neural cell 256X256). 圖 4.5(b) 由硬體電路運算獲得之相角值(Neural cell 256X256) 55.

(65) 第四章 實驗數據與效能比較. 圖 4.5(c) 由 Matlab 模擬獲得之相角值俯視圖(Neural cell 256X256). 圖 4.5(d) 由硬體電路運算獲得之相角值俯視圖(Neural cell 256X256) 56.

(66) 第四章 實驗數據與效能比較. 圖 4.6(a) 由 Matlab 模擬獲得之相角值(single mirco-lens 256X256). 圖 4.6(b) 由硬體電路運算獲得之相角值(single mirco-lens 256X256) 57.

(67) 第四章 實驗數據與效能比較. 圖 4.6(c) 由 Matlab 模擬獲得之相角值俯視圖(single mirco-lens 256X256). 圖 4.6(d) 由硬體電路運算獲得之相角值俯視圖(single mirco-lens 256X256) 58.

(68) 第四章 實驗數據與效能比較. 圖 4.7(a) 由 Matlab 模擬獲得之相角值(micro-lens array 256X256). 圖 4.7(b) 由硬體電路運算獲得之相角值(micro-lens array 256X256) 59.

(69) 第四章 實驗數據與效能比較. 圖 4.7(c) 由 Matlab 模擬獲得之相角值俯視圖(micro-lens array 256X256). 圖 4.7(d) 由硬體電路運算獲得之相角值俯視圖(micro-lens array 256X256). 60.

(70) 第四章 實驗數據與效能比較. 圖 4.8(a) 由 Matlab 模擬獲得之相角值(single mirco-lens 512X512). 圖 4.8(b) 由硬體電路運算獲得之相角值(single mirco-lens 512X512) 61.

(71) 第四章 實驗數據與效能比較. 圖 4.8(c) 由 Matlab 模擬獲得之相角值俯視圖(single mirco-lens 512X512). 圖 4.8(d) 由硬體電路運算獲得之相角值俯視圖(single mirco-lens 512X512) 62.

(72) 第四章 實驗數據與效能比較. 圖 4.9(a) 連續相角還原圖(single mirco-lens 128X128). 圖 4.9(b) 連續相角還原圖(Neural cell 256X256) 63.

(73) 第四章 實驗數據與效能比較. 圖 4.9(c) 連續相角還原圖(single mirco-lens 256X256). 圖 4.9(d) 連續相角還原圖(micro-lens array 256X256) 64.

(74) 第四章 實驗數據與效能比較. 圖 4.9(e) 連續相角還原圖(single mirco-lens 512X512). 65.

(75) 第四章 實驗數據與效能比較 為了驗證本硬體架構運算之精確度,將硬體運算結果與軟體運算結果進行均 方差(Mean square error, MSE)計算,均方差公式如下:. ∑. ∑. (4.1). 在式4.1中,m、n為影像邊長,I與K分別為硬體運算結果及軟體運算結果, 表4.15以及表4.16分別比較不同情況時本電路運算的精確度,表4.15為同一測試樣 本(single mirco-lens)在不同維度時的均方差結果,表4.16為不同測試樣本在相同維 度(256X256)時的均方差結果,根據表4.15以及表4.16可以發現本電路架構在不同 測試樣本以及不同維度時的運算結果皆與軟體的運算結果幾乎相同。. 表 4.15 相同樣本在不同維度之均方差 樣本: single mirco-lens 維度. 128X128. 256X256. 512X512. MSE. 3.1043X10-9. 3.5963X10-9. 3.6689X10-9. 表 4.16 不同樣本在相同維度之均方差 維度:256X256 樣本. Neural cell. single mirco-lens. micro-lens array. MSE. 9.2832X10-9. 3.5963X10-9. 9.4158X10-9. 66.

(76) 第五章 結論. 第五章 結論 本論文實現適用於嵌入式數位全像顯微鏡系統的高速菲涅耳轉換硬體架構, 並且透過軟體模擬結果與硬體運算結果相互驗證確認還原結果正確。本論文提出 之硬體架構有三大優勢,分別為高精確度、高速運算以及低功率消耗,本硬體架 構運算元件設計主要使用浮點數運算,有效提高精確度。各運算單元內部的運算 架構使用管線化設計提高運算速度,更進一步將運算單元重新排程,有效縮減運 算時間,達到高速運算的目的。功率消耗的部分,本硬體電路在工作時脈 50MHz 時功率消耗約 1W,工作時脈 500MHz 的情況下功率消耗約 3W,此功率消耗與 GPU 運算時動輒 100W 的功率消耗相比,本硬體架構擁有低功率消耗之優勢。整 體而言,本硬體架構基於 FPGA 的實現方式,擁有低功率消耗與高可攜性的優點, 同時利用提出的硬體架構設計克服一般 FPGA 運算速度較 GPU 低的缺點,對於 現今要求即時運算的嵌入式數位全像顯微鏡系統,本論文所提出之硬體架構較具 有競爭力。. 67.

參考文獻

Outline

相關文件

進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

(八)教科書編撰時宜兼顧各單元之學理基礎與生活實例,宜依照參考時數設計 教學「活動」

溫度轉換 自行設計 溫度轉換 自行設計 統計程式 簡單 簡單 統計程式.

十二、實施容積管制前已 取得建造執照之建 築工程,原建照核 發時建築基地都市 計畫未有應送都市 設計審議規定,惟 現擬依建築技術規

• 可編程實體實物(Programmable physical objects),是指 一些可以讓人們設計及運行程序的物件,通常是一些電子 設備..

分項計畫「海上絲路之探索」之設計與推行,基本上針對本校通

微算機原理與應用 第6