數位全像顯微鏡之高速相位展開法則電路於FPGA上之實現
82
0
0
全文
(2) 中文摘要. 中文摘要 本論文主要提出一硬體架構實現高速相位展開法則,透過本論文硬體架構可 將不連續相位圖還原出與實際物體面貌相符合之連續相位圖。本論文採用定點數 運算,令系統架構之資源消耗下降。同時配合廣域型相位展開法則及蛇狀路徑 Buffer,使系統架構通則化後,可依照需要處理之不連續相位圖,調整系統架構 及延伸法則,並透過高速運算有效降低遞回運算所需時間。 最後將此電路實現於 FPGA 開發平台進行實際量測硬體資源消耗、運算時間 及功率消耗,透過硬體運算結果與軟體運算結果相互驗證後,確認還原結果正確。 依據實驗結果,本論文之系統架構具有資源消耗低、高速運算、複雜性低及 系統延伸便利等多項優勢,對於現今需即時運算的嵌入式數位全像系統,本論文 所提出之系統架構具有更強競爭力。. 關鍵字: 系統晶片設計、FPGA、相位展開法則、高速運算. i.
(3) 誌謝. 誌謝 在碩士學業的這段期間有很多美好的回憶,也想對好多人表達謝意,感謝大 家的陪伴,使我達到現在的成就及讓我成為現在的我。 首先要感謝的人是我的指導老師黃文吉教授,感謝黃文吉教授對我孜孜不倦 的教誨,時而輕鬆,時而嚴格,讓我學習何謂正確的研究精神及方法,同時也教 導我為人處事的道理,除了指點我人生的方向外,更培養出我無論面對多大的壓 力,也能依然向前行的人生態度;另感謝同系所的吳榮根教授及輔仁大學的葉佐任 老師,在百忙之中抽空當口試委員,並提出許多寶貴建議使得本篇論文能更加完 善。 此外感謝同研究室的歷屆學長、學姊們,將實驗室長年所累積之研究成果, 詳盡且完善的託付給我們。同時也要感謝在這兩年來一起切磋討論的同窗好友以 及一年級的學弟們。 另感謝家人一直全力的支持我,父母親的養育之恩,在人生的道路上時時刻 刻的扶持與教誨,畢生難忘,以及妹妹的支持與鼓勵。 最後將本論文獻給最敬愛的家人及所有曾經經歷過和在背後支持我的人、 事、物。. ii.
(4) 目錄. 目錄. 中文摘要………………………………………………………………………………i 誌謝………………………………………………………………………………… ii 目錄…………………………………………………………………………………iii 附表目錄……………………………………………………………………………. v. 附圖目錄…………………………………………………………………………… vi 第一章 緒論………………………………………………………………………… 1 1.1 研究背景與動機…………………………………………………………………. 1 1.2 研究目的與方法…………………………………………………………………. 4 1.3 全文架構…………………………………………………………………………. 7 第二章 基礎理論與研究背景介紹…………………………………………………...8 2.1 相位展開法則(Phase Unwrapping)背景介紹……………………………………..8 2.2 路徑獨立型相位展開法則及細胞自動機模型…………………………………..10 2.3 FPGA 系統設計………………………………………………………………….18 第三章 系統架構…………………………………………………………………….22 3.1 以原始細胞自動機為基礎之廣域型相位展開法則系統架構…………………22 3.2 改良式廣域型相位展開法則系統架構…………………………………………25 iii.
(5) 目錄 3.3 解決邊界問題(Boundary Condition)之改良式廣域型相位展開法則系統架 構………………………………………………………………………………...31 3.4 相位展開運算完成判斷之系統架構……………………………………………41 第四章 實驗數據與效能比較……………………………………………………….43 4.1 開發平台與實驗環境……………………………………………………………43 4.2.1 實驗數據呈現與討論………………………………………………………….46 4.2.2 與其他已知的相位展開法則電路之資源消耗比較…………………………..65 第五章 結論………………………………………………………………………….70 參考文獻……………………………………………………………………………...71. iv.
(6) 附表目錄. 附表目錄. 表 2.2.1 不同廣域型相位展開法則中各區塊大小…………………………………12 表 2.2.2 廣域型相位展開法則(5×5)各區塊之對應相位點…………………………14 表 2.2.3 各廣域型相位展開法則之參考領域更新閥值…………………………...15 表 4.1 Altera Stratix III EP3SL150F1152C2N 開發板之系統規格………………..…44 表 4.2.1 各個相位展開法則架構所需的 ALMs 資源消耗情形……………………46 表 4.2.2 各個項目對於 ALMs 資源消耗影響之分析………………………………48 表 4.2.3 各個相位展開法則架構所需的 Total block memory bits 資源消耗情形…48 表 4.2.4 各個相位展開法則架構所需的 Memory Blocks 資源消耗情形…………..48 表 4.2.5 效能測試對照表……………………….………………………………… 51 表 4.2.6 廣域型相位展開法則(kernel)及廣域型相位展開法則(5×5)在 256×256 single microlens 相位展開圖形時所需的迭代次數比較……………………………53 表 4.2.7 256×256 single microlens 相位展開圖形之相位展開時間之比較……...53 表 4.2.8 256×256 microlens array 相位展開圖形之相位展開時間………………56 表 4.2.9 廣域型相位展開法則(kernel)、廣域型相位展開法則(5×5)及廣域型相 位展開法則(7×7)在 512×512 single microlens 相位展開圖形時所需的迭代次數 比較………………………………………………………………………………… 59 v.
(7) 附表目錄 表 4.2.10 512×512 single microlens 相位展開圖形之相位展開時間之比較………60 表 4.2.11 512×512 microlens array 相位展開圖形之相位展開時間………………63 表 4.2.12 廣域型相位展開法則(kernel)資源消耗表………………………………65 表 4.2.13 廣域型相位展開法則(5×5)資源消耗表……………………………… 66 表 4.2.14 廣域型相位展開法則(7×7)單記憶體資源消耗表…………………… 66 表 4.2.15 各相位展開法則資源消耗比較表……………………………………… 67 表 4.2.16 各相位展開法則於 single microlens 相位展開圖形運算耗時比較表 ……………………………………………………………………………………… 68. vi.
(8) 附圖目錄. 附圖目錄. 圖 2.1.1 相位展開法則概念圖………………………………………………………...8 圖 2.1.2 相位展開法則分類圖………………………………………………………...9 圖 2.2.1 廣域型相位展開法則通則示意圖………………………………………… 11 圖 2.2.2 廣域型相位展開法則(kernel)示意圖……………………………………... 13 圖 2.2.3 廣域型相位展開法則(5×5)示意圖…………………………………………14 圖 2.3.1 SOPC 系統架構圖………………………………………………………….19 圖 2.3.2 軟硬體共同設計圖………………………………………………………...20 圖 3.1.1 原始細胞自動機系統架構圖……………………………………………...23 圖 3.1.2 細胞自動機之運算單元電路架構………………………………………….23 圖 3.2.1 改良式廣域型相位展開法則平行運算系統架構圖……………………….25 圖 3.2.2 改良式廣域型相位展開法則系統架構圖………………………………….26 圖 3.2.3 Buffer(kernel)架構圖……………………………………………………….26 圖 3.2.4 廣域型相位展開法則(kernel)之運算單元電路架構………………………28 圖 3.2.5 Buffer(5×5)架構圖………………………………………………………….29 圖 3.2.6 廣域型相位展開法則(N×N)之運算單元電路架構………………………..30 圖 3.2.7 廣域型相位展開法則(N× N)之比較器電路架構………………………….30 vii.
(9) 附圖目錄 圖 3.3.1 邊界問題(Boundary Condition)示意圖……………………………………31 圖 3.3.2 處理邊界問題之相位展開法則系統架構圖……………………………...33 圖 3.3.3 控制器(Controller)之系統架構圖…………………………………………33 圖 3.3.4 有限狀態機狀態圖………………………………………………………...34 圖 3.3.5 處理邊界問題之 Buffer(kernel)架構圖……………………………………34 圖 3.3.6 Buffer(kernel)於 State init 時之示意圖……………………………………..35 圖 3.3.7 Buffer(kernel)於 State 1 之示意圖………………………………………….36 圖 3.3.8 Buffer(kernel)於 State 2 之示意圖………………………………………….36 圖 3.3.9 Buffer(kernel)於 State 3 之示意圖………………………………………….37 圖 3.3.10 邊界偵測器(Boundary Detector for kernel)之系統架構圖……………...38 圖 3.3.11 處理邊界問題之相位展開法則(kernel)之運算單元電路架構………….38 圖 3.3.12 廣域型相位展開法則(kernel)之左右側邊界問題分類圖………………..39 圖 3.3.13 左側邊界問題之邊界偵測器示意圖…………………………………….40 圖 3.3.14 右側邊界問題之邊界偵測器示意圖……………………………………..40 圖 3.4 相位展開運算完成判斷之系統架構圖…………………………………… 41 圖 4.1 Altera Stratix III EP3SL150F1152C2N 開發板外貌………………………….43 圖 4.2.1 256×256 single microlens 尚未相位展開圖形……………………………..52 圖 4.2.2 256×256 single microlens 尚未相位展開圖形(俯視)………………………52 圖 4.2.3 256×256 single microlens 相位展開圖形之相位展開時間之線性比較 viii.
(10) 附圖目錄 圖…………………………………………………………………………………….. 54 圖 4.2.4 256×256 single microlens 相位展開圖形…………………………………..54 圖 4.2.5 256×256 single microlens 相位展開圖形(俯視)……………………………55 圖 4.2.6 256×256 microlens array 尚未相位展開圖形………………………………55 圖 4.2.7 256×256 microlens array 尚未相位展開圖形(俯視)……………………….56 圖 4.2.8 256×256 microlens array 相位展開圖形之相位展開時間之線性圖………57 圖 4.2.9 256×256 microlens array 相位展開圖形……………………………………57 圖 4.2.10 256×256 microlens array 相位展開圖形(俯視)…………………………...58 圖 4.2.11 512×512 single microlens 尚未相位展開圖形……………………………58 圖 4.2.12 512×512 single microlens 尚未相位展開圖形(俯視)……………………..59 圖 4.2.13 512×512 single microlens 相位展開圖形之相位展開時間之線性比較 圖…………………………………………………………………………………….. 60 圖 4.2.14 512×512 single microlens 相位展開圖形…………………………………61 圖 4.2.15 512×512 single microlens 相位展開圖形(俯視)…………………………..61 圖 4.2.16 512×512 microlens array 尚未相位展開圖形……………………………..62 圖 4.2.17 512×512 microlens array 尚未相位展開圖形(俯視)……………………...62 圖 4.2.18 512×512 microlens array 相位展開圖形之相位展開時間之線性圖……..63 圖 4.2.19 512×512 microlens array 相位展開圖形…………………………………..64 圖 4.2.20 512×512 microlens array 相位展開圖形(俯視)…………………………...64 ix.
(11) 第一章 緒論. 第一章 緒論 本章節主要目的在於討論本論文的研究背景與動機、研究目的與方法,並大 略說明各章節的主要內容與重要特性. 1.1 研究背景與動機 現今,由於科技產業研發與醫療領域的互相結合,促使醫學工程產業不斷創 新及進步,更改變了傳統醫學的醫療方式,治療的成功率因此有了提升,其中的 一項技術即是光學測量技術。光學測量技術因為具有非侵入性質的優點而受到廣 泛使用,而數位全像顯微鏡(Digital Holographic Microscopy, DHM)就是一種以光 學測量技術為基礎的影像擷取工具,除了提供傳統顯微鏡之測量細微物體的功能 外,更可以使影像的呈現從過去的二維度影像轉變成三維度的立體影像呈現,所 使用的技術稱為全像術(Hologram)。全像術是由 Dennis Gabor 於 1947 年提出,此 技術藉由光的干涉與繞射作用,紀錄物體的光學相位資訊,透過光學相位資訊及 重建光束便可將物體的三維度立體影像完整的呈現出來。 然而,全像術藉由光學相位資訊重現三維度立體影像的程序十分的繁雜,其 中包含了將光學相位資訊轉換成物體相角資訊的菲涅耳轉換(Fresnel Transform) 及相位展開法則(Phase Unwrapping) 。以數位全像顯微鏡為例,首先,利用感光 藕 荷 元 件 ( charge-coupled device, CCD ) 或 是 互 補 式 金 屬 氧 化 層 半 導 體 (complementary metal oxide semiconductor, CMOS)記錄包含物體光學相位資訊 1.
(12) 第一章 緒論 的數位全像圖,接著從全像圖到還原出物體實際的立體影像中,需要經過圖像的 重建,其中可以選擇用菲涅耳轉換近場繞射式、捲積法或角頻譜繞射等方法,但 是數位全像顯微鏡經過圖像重建所得到的影像,並非物體實際的立體影像,而是 影像的相位值會被壓縮至(-π, π)的範圍之間,形成具有不連續點(discontinuity)的不 連續相位圖。 為了將不連續相位圖的不連續相位點去除,還原出物體實際的立體影像,需 要透過各種相位展開法則(Phase Unwrapping method),將不連續相位圖重新構 築,形成與實際立體影像相同的連續相位圖。本論文主要的目的在於相位展開法 則的硬體化實作,與軟體的相位展開過程比較。硬體更能快速的實現相位展開, 且相較於複雜和需改變相角的相位展開法則,以細胞自動機(Cellular Automata)為 基礎的相位展開法則較為容易硬體實作和可以還原前者所無法還原的三維度立 體影像。 不過以細胞自動機為基礎的相位展開法則有些許問題,第一是細胞自動機模 型通常無法一次就將運算完成,而是需要多次遞回的方式,方能得到運算結果, 因此,以細胞自動機為基礎的相位展開法則與其他只需處理一次影像運算的相位 展開法則,在相同的clock rate之下,前者所需要花費時間會因遞回次數而較後者 長,因此,本論文將採取高速處理的硬體架構,以提升clock rate方式,來減低遞 回所需的時間消耗。 第二是細胞自動機模型具有各種法則實現,本論文提出一種相位展開法則, 2.
(13) 第一章 緒論 共三種系統架構。第一種相位展開法則為廣域型相位展開法則(kernel)(Regional Phase Unwrapping) ,此法則會將各個相位點與其對應的3×3之參考區域做比較, 假如相位點與參考區域之相位值差距大於π,則前者增加2π。第二種相位展開法 則為廣域型相位展開法則(5×5),將各個相位點與其對應的5×5之參考區域做比 較,假如相位點與參考區域之相位值差距大於π,則前者增加2π。最後一種廣域 型相位展開法則(7×7)則是將參考區域擴大至7×7,同樣當相位點與參考區域之相 位值差距大於π,則加2π。 上述各種法則都具有共通的性質,如一致性(homogeneous)、局部性(local)及 平行運算(parallel computation),但是這些性質無法保證細胞自動機模型的運算能 達成收斂。在無法收斂的情形下,運算將不斷遞回,因此,本論文將討論相位展 開法則之系統架構,應用在不同類型的影像上的運算結果及遞回次數。 最後,由於目前軟體模擬環境具有足夠的記憶體空間來提供資源消耗,在模 擬相位展開法則時,可以讀取整張需要處理之影像後,再進行相位展開法則運 算。然而,以硬體之系統架構在實現相位展開法則時,須考慮到硬體開發環境的 資源消耗,而將整張影像的所有相位點進行相位展開法則運算之系統架構對於本 論文所使用的硬體開發環境帶來無法負荷的資源消耗。當處理的影像大小變為原 先的兩倍時,更是無資源可供運算,因此本論文將採取特別的相位展開法則之硬 體系統架構來降低所需的資源消耗。. 3.
(14) 第一章 緒論. 1.2 研究目的與方法 目前實現相位展開法則之系統架構絕大部分都不是採用細胞自動機模型為 開發基礎,而是採用快速傅立葉轉換等方式為系統架構。然而上述方法之系統架 構複雜性較高,以及部分的不連續相位圖無法藉由其系統架構進行還原。 相對的,以細胞自動機模型為基礎的相位展開法則,其系統架構複雜性與前 者相比,低上許多,同時原先無法進行還原的不連續相位圖也可藉由細胞自動機 模型實現相位還原。 細胞自動機模型能實現較複雜的相位還原,但是如上節敘述,細胞自動機模 型無法保證運算能達成收斂,而且當不連續相位圖的影像大小增加時,原先可以 還原相位圖的細胞自動機模型將無法還原,表示此細胞自動機模型的還原能力不 足,須找到能力更強的細胞自動機模型。 本論文提出三種上節所提到的系統架構,廣域型相位展開法則(kernel)、廣域 型相位展開法則(5×5)及廣域型相位展開法則(7×7)並根據以下的步驟來建立系統 架構: Step 1. 在Matlab上編寫相位展開法則程式,模擬各個相位展開法則對於不同的不 連續相位圖的運算,觀察還原結果及遞回次數。 Step 2. 軟體模擬成功後,於 Quartus 平台撰寫 Verilog 語言,並檢查編譯後的 硬體資源消耗。 Step 3. 將建構的系統架構掛載至Modelsim,產生電路波型圖並檢查正確與否。 4.
(15) 第一章 緒論 Step 4. 將系統架構載入至SoPC system上,並且在載入完畢的SoPC system燒錄於 FPGA開發板後,就可進行實質硬體的訊號輸入/輸出驗證系統架構的效能與正確 性。 各步驟詳述如下: 首先,在Step 1.可以先由軟體模擬相位展開法則,同時計算運算的遞回數。 當法則可以還原不連續相位圖時,軟體模擬將會完成運算,遞回數也將不會是過 大的數字,同時並檢查還原出來的相位圖型。當軟體模擬之所需時間過長,進行 模擬中斷時發現遞回數過大,且還原的相位圖型與預計之還原圖型差異過大時, 就表示此相位展開法則對於該還原之達到還原。之後硬體模擬步驟時,無法還原 之不連續相位圖則不列入相位展開法則的輸入,並尋找更強的相位展開法則做軟 體模擬。 接 著 Step 2. 在 軟體 模 擬 成功 的相 位 展開 法 則 ,將 於 Quartus 平 台撰 寫 Verilog 語言,編譯並檢查硬體資源消耗。由於在硬體模擬的環境下需考慮平台 資源,無法直接將軟體模擬之相位展開法則架構轉換成硬體描述語言。原先軟體 模擬細胞自動機之相位展開法則是將每個相位值同時做相位展開,以256×256大 小的影像為例,就需要65,536個執行相位展開電路,但是硬體資源無法負擔如此 大量的消耗。因此在撰寫 Verilog 語言時,改由以每一排為單位來處理相位展 開,此架構的資源消耗便可負荷,之後將架構更進一步簡化及增加可高速化架 構,譬如採用定點數(Fixed-point)運算降低位元消耗及移暫存器(shift register)設 5.
(16) 第一章 緒論 計,達到能高速執行及低資源消耗之電路架構。 在Step 3.時,將編譯好的系統架構掛載至Modelsim並檢查電路波型圖正確與 否,像是在軟體模擬容易處理的邊界問題(Boundary Condition),在硬體系統架構 就採用位移暫存器做為解決的機制。然而,位移暫存器需要精準的對應到正確的 相位值才能完整的解決邊界問題,電路波型圖正可以驗證位移暫存器是否能對應 到正確的相位值,確保系統架構成功的運作。 Step 4.將驗證完畢的系統架構載入至SoPC system上,並且在載入完畢的SoPC system燒錄於FPGA開發板後,進行實質硬體的訊號輸入/輸出驗證系統架構。在 軟體模擬就被刪除的配對就不會進行驗證,可以減少驗證的時間,同時,進行驗 證的配對可以做軟硬體的模擬比較,如遞回次數是否一致,還原的相位展開圖像 差異等。由於用同一法則和同像位圖,即同一驗證配對,軟硬體模擬的遞回次數 應為一樣,而硬體採用定點數運算,因此會有小數點後誤差。 最後,將會用本論文所提出的相位展開法則之系統架構與其他論文所提出之 架構做系統效能、資源消耗等項目做比較。. 6.
(17) 第一章 緒論. 1.3 全文架構 本篇論文共分為五個章節,以下為各章節內容概述: 【第一章】緒論 說明本論文的研究背景、動機、目的、方法及本文架構。 【第二章】基礎理論與研究背景介紹 介紹本論文所使用之演算法、基礎理論及研究背景。 【第三章】系統架構 介紹所提出的相位展開法則電路之設計架構,並提供各電路內部的討論與說 明。 【第四章】實驗數據與效能比較 包含了系統環境的說明、相關實驗數據分析及硬體效能比較 【第五章】結論與未來展望 對於所提出之硬體架構及實驗的結果彙整成總結和未來發展方向. 7.
(18) 第二章 基礎理論與研究背景介紹. 第二章 基礎理論與研究背景介紹 本章節將介紹本論文所使用的基礎理論與研究背景。首先,本章的第一節將 介紹關於相位展開法則(Phase Unwrapping)的相關背景,接著在第二節說明本論文 所使用的相位展開法則之解說及法則所採用的模型之介紹. 2.1 相位展開法則(Phase Unwrapping)背景介紹 相位展開法則(Phase Unwrapping)是將不連續的相位平面轉換為連續的相位 平面,相位展開法則有許多不同的資料處理方式,大致上可以分做兩種,即為時 間域相位展開法則(Temporal Phase Unwrapping)及空間域相位展開法則(Spatial Phase Unwrapping),如圖 2.1.2 所示:. 圖 2.1.1 相位展開法則概念圖. 8.
(19) 第二章 基礎理論與研究背景介紹 圖 2.1.2 相位展開法則分類圖. 時間域相位展開法則[5][6]是將在不同時間下所取得的不連續相位圖,各個點 在不同時間下所取得的相位值互相作比較,最後得到展開後的相位值,因此需要 較多的記憶體來存取不同時間下的不連續相位圖。而空間域相位展開法則不需要 像前者預留一定的空間儲存不同時間下的相位圖,只需要一張不連續相位圖,每 個相位點跟其他的相位點做相互比較及作用,就可完成相位展開。 空間域相位展開法則根據相位點及其他相互比較的相位點之間關係分為路 徑相依型相位展開法則(Path-Dependent Phase Unwrapping)、路徑獨立型相位展開 法則(Path-Independent Phase Unwrapping)。路徑相依型相位展開法則[14]是將相位 點跟特定路徑上的前一相位點做比較,若是兩者的相位值相差大於 π,則前者增 加或減少 2π,直到所有相位點與其特定路徑上的前一相位點相位值相差小於 π, 相位展開即完成。 9.
(20) 第二章 基礎理論與研究背景介紹 路徑相依型相位展開法則因為每個相位點所需的參考點少,而處理速度較 快,但是也因為參考點少,使得當有雜訊干擾而產生不連續點時,使相位展開發 生錯誤,且錯誤的相位資訊會跟者路徑遞移,因此選擇到最佳的路徑是路徑相依 型相位展開法則的先天條件。. 2.2 路徑獨立型相位展開法則及細胞自動機模型 路徑獨立型相位展開法則與路徑相依型相位展開法則不同,無需選擇最佳路 徑,而是以增加參考點,使相位展開不受路徑影響而產生錯誤相位值。 路徑獨立型相位展開法則包含許多種法則實現,其中一例如最小平方誤差法 (least square techniques)。而最小平方誤差法可以配合多種算術技術做運算,如高 斯 - 塞 德 法 (Gauss-Seidel method) [8][9] 、 預 處 理 共 軛 梯 度 法 (preconditioned conjugate gradient ,PCG)[8][10],而現今有許多更展新的運算技術配合最小平方誤 差法,譬如影像裁切技術[11]、網路程式技術[12]及ZπM演算法[12]。上述算術技 術皆為遞回運算,容易因遞回個數而造成時間消耗急速增加,因此有許多以最小 平方誤差法為基礎的快速運算法則孕育而生[2-4]。 但是無論採用的是遞回式的最小平方誤差法或快速運算式的最小平方誤差 法,皆具有系統架構複雜度高的先天性難題,導致系統架構建立、維護及改進的 困難性。. 10.
(21) 第二章 基礎理論與研究背景介紹 本論文所使用的方式為路徑獨立型相位展開法則另一種架構模式,以細胞自 動機為基礎的廣域型相位展開法則(Regional Phase Unwrapping)。 廣域型相位展開法則的通則如下: 圖 2.2.1 廣域型相位展開法則通則示意圖. I. II. III. IV. V. VI. VII. VIII. IX. V 為中心區域,大小為 1×1,即為欲做相位展開運算的相位點,同時我們定 義參考領域(Area),分別為: Area one = { I, II, III, } , Area two = { I, IV, VII } Area three = { VII, VIII, IX},Area four = { III, VI, IX} 其中,每個參考領域所包含以羅馬數字所表示的區塊(block),依據不同的廣 域型相位展開法則而有不同的參考點個數。本論文採用三種廣域型相位展開法 則,分別廣域型相位展開法則(kernel)、廣域型相位展開法則(5×5)及廣域型相位展 開法則(7×7),其各區塊含有的參考點個數如下: 11.
(22) 第二章 基礎理論與研究背景介紹 表 2.2.1 不同廣域型相位展開法則中各區塊大小: REGIONAL REGIONAL REGIONAL REGIONAL REGIONAL KERNEL. 3×3. 5×5. 7×7. N× N. I. NA. 1×1. 2×2. 3×3. ×. II. 1×1. 1×1. 2×1. 3×1. III. NA. 1×1. 2×2. 3×3. IV. 1×1. 1×1. 1×2. 1×3. 1×. VI. 1×1. 1×1. 1×2. 1×3. 1×. VII. NA. 1×1. 2×2. 3×3. VIII. 1×1. 1×1. 2×1. 3×1. IX. NA. 1×1. 2×2. 3×3. ×1. ×. ×. ×1. ×. 接著,在各個參考領域中,假如有超過一定參考點個數的相位值比參考領域 V 中的相位點之相位值大於 π,即更新閥值,則該參考領域表示區塊 V 中的相位 點之相位值需要增加 2π,而當任一參考領域表示需更新時,則區塊 V 中的相位 點之相位值真正增加 2π,直到相位影像中的所有相位點之對應的任一參考領域表 示不需更新。. 12.
(23) 第二章 基礎理論與研究背景介紹 以廣域型相位展開法則(Kernel)為例: 圖 2.2.2 廣域型相位展開法則(kernel)示意圖:. 欲做相位展開運算之區塊 V 所對的相位點之相位值為 Current Pixel,而各參 考領域所對應相位點如下: Area one = { Pixel 3},Area two = { Pixel 1}, Area three = { Pixel 4},Area four = { Pixel 2}, 每個參考領域皆只有一個相位點,更新閥值為 1,因此當任一參考領域之相 位點較 Current Pixel 之相位值大於 π 時,則 Current Pixel 之相位值增加 2π。 以廣域型相位展開法則(5×5)為例:. 13.
(24) 第二章 基礎理論與研究背景介紹 圖 2.2.3 廣域型相位展開法則(5×5)示意圖:. 則各個區塊所包含的相位點如下: 表 2.2.2 廣域型相位展開法則(5×5)各區塊之對應相位點 對應之相位點 I. Pixel [ 1, 2, 6, 7]. II. Pixel [ 3, 8]. III. Pixel [ 4, 5, 9, 10]. IV. Pixel [11, 12]. VI. Pixel [ 13, 14]. VII. Pixel [ 15, 16, 20, 21]. VIII. Pixel [ 17, 22]. IX. Pixel [ 18, 19, 23, 24]. 14.
(25) 第二章 基礎理論與研究背景介紹 此圖之相位點個數與圖 2.2.3 相符合。 根據廣域型相位展開法則通則,在廣域型相位展開法則(5×5)下,每個參考領 域各共有 10 個對應相位點,更新閥值為 6,因此當任一參考領域中的 10 個對應 相位點與 Pixel 做相位值比較時,若有 6 個以上的對應相位點之相位值大於 Pixel π,則 Current Pixel 需增加 2π,直到任一參考領域中少於 6 個對應相位點之相位 值大於 Current Pixel π。 同理,廣域型相位展開法則(7×7)中,每個參考領域各共有 21 個對應相位點, 更新閥值為 12,當任一參考領域中的 21 個對應相位點與 Pixel 做相位值比較時, 若有 12 個以上的對應相位點之相位值大於 Current Pixel π,則 Current Pixel 需增 加 2π,直到任一參考領域中少於 12 個對應相位點之相位值大於 Current Pixel π。 表 2.2.3 各廣域型相位展開法則之參考領域更新閥值 參考領域更新閥值 Regional(kernel). 1. Regional(3×3). 2. Regional(5×5). 6. Regional(7×7). 12. Regional(N×N). +1. 此法則可以無限推廣,推廣至 N×N 時,各參考領域表示 Current Pixel 要增加 之所需 Pixel 個數為. +1,直到超出硬體資源為止,同時廣域型相 15.
(26) 第二章 基礎理論與研究背景介紹 位展開法則複雜度小,較最小平方誤差法容易系統架構建立、維護及改進,與細 胞自動機模型之系統架構也十分硬體架構設計,接著將說明細胞自動機模型。 細胞自動機(Cellular Automata)是這次論文裡實現各種廣域型相位展開法則 的數學模型,細胞自動機最早是由約翰·馮·諾伊曼(John von Neumann)及斯塔尼斯 拉夫·烏拉姆(Stanisław Marcin Ulam)於 1950 年代以細胞的繁殖及消滅等概念所 提出,細胞自動機是一個離散模型,其可被視為由許多格子所構成,每一個格子 皆為有限狀態,而每個格子的狀態決定於前一時間點各鄰居的狀態。 細胞自動機具以下的特質,第一是一致性(homogeneous),每個格子都是根據 相同的規則做變化,第二是局部性(local),每個格子只會受到周遭鄰居格子的影 響,鄰居以外的格子不需做參考,第三是平行運算(parallel computation),每個格 子皆會同時進行運算,這些特性都十分適合硬體實作,一致性可以使硬體簡單 化,降低判斷處理模式所造成的複雜度,局部性使每個相位點不需考慮整體相位 圖,降低了硬體資源消耗。 細胞自動機可由各種法則實現,且法則皆具上述性質,但是這些性質無法保 證細胞自動機的運算皆能達到收斂,1980 年代,史蒂芬·沃爾夫勒姆(Stephen Wolfram)將細胞自動機依其規則分類為四類[7]: 一類:大多所屬的細胞自動機的初始模式迅速演變成一個穩定且同質的狀態,在 初始模式的任何隨機性會消失。. 16.
(27) 第二章 基礎理論與研究背景介紹 二類:幾乎所有的初始模式迅速演化為穩定或振蕩結構。一些在初始模式的隨 機性可能會被過濾掉,但是還有一些保留。在初始模式的局部變化傾向 於繼續保持局部性。 三類:幾乎所有的初始形態將會演變成一個偽隨機或混沌的形式。任何穩定的 結構很快會被周圍的噪音破壞。在初始模式的局部變化有無限蔓延的傾 向。 四類:幾乎所有的初始模式將會演變成相互作用的複雜和有趣的方式結構,並 且局部結構的形成能夠長時間存在。 本論文所提出的以細胞自動機為基礎的相位展開法則之系統架構也因處理 影像的大小與圖型不同而使運算結果呈現收斂或發散的情況,因此本論文提供不 同的相位展開法則之系統架構,並討論其運算結果。. 17.
(28) 第二章 基礎理論與研究背景介紹. 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 系統開發板來實現相 位展開法則電路。. 18.
(29) 第二章 基礎理論與研究背景介紹. 圖 2.3.1 SOPC 系統架構圖. 圖2.3.1為一個基於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是一個視窗介面的開發工具,設計者可於其 19.
(30) 第二章 基礎理論與研究背景介紹 上編輯程式碼,更可編譯及除錯及觀察程式執行結果。此程式除了包含所有C 語言的函式庫之外,還有HAL(Hardware Abstraction Layer)函式庫。其中HAL 函 式 庫 提 供 設 計 者 一 個 呼 叫 系 統 相 關 裝 置 API(Application Program Interface),如圖2.3.2所示,設計者可用C 語言撰寫基本程式並透過HAL API 呼叫來讓特定的裝置運作。 圖 2.3.2 軟硬體共同設計圖. 2. 提供了Compact Flash卡(以下簡稱CF卡)存取功能,讓設計者可以將資料置於 CF卡中,並透過HAL API讓設計者進行讀與寫的動作。 3. 提供DMA(Direct Memory Access)機制讓設計者可加速資料在記憶體與系統周 邊元件的傳輸速度且不占用CPU資源。 20.
(31) 第二章 基礎理論與研究背景介紹 4. LwIP提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、不占 據過多系統資源之外,也讓設計者更容易修改或增刪想要的功能。 設計者可依自己的需求增加或刪除想要的電路功能,而增刪裝置也非常簡 便,重新建置系統並編譯成硬體檔之後燒至板子即可。. 21.
(32) 第三章 系統架構. 第三章 系統架構 本章節將詳細介紹本論文所提出的相位展開法則之硬體架構。首先將說明直 觀型細胞自動狀態機及其運算單元之硬體架構,之後會探討架構之可行性,並提 出資源消耗更低且可進行高速運算的多種延伸型系統架構。. 3.1 以原始細胞自動機為基礎之廣域型相位展開法則系統架 構 最原始構想的細胞自動機型系統架構,由於要實現細胞自動機模型的運算 模式,即第一項為每個 current pixel 都需要依照相同規則做運算,因此將設計實 現廣域型相位展開法則之運算單元(Cell),使每個 current pixel 都透過運算單元進 行運算。同時此運算單元也具備細胞自動機的第二項區域性的特型,使 current pixel 只與廣域型相位展開法則中參考領域內之 pixel 做運算,並非以整張影像作 為運算參考對象。 而為了達到第三項特性,平行運算,因此最直接的系統架構即假設影像大小 為 N×N,則所需的運算單元數也為 N×N,運算過程則是將欲還原之不連續相位圖 載入 N×N 個運算單元,然後實行遞回運算直到廣域型相位展開法則的終止條件成 立,終止條件成立時讀出運算結果即可獲得相位還原影像。 此系統架構如下圖所示:. 22.
(33) 第三章 系統架構 圖 3.1.1 原始細胞自動機系統架構圖. 假設影像大小為 256×256 時,則運算單元數就為 65536 個,同時每個運算單 元皆依據其所實現的廣域型相位展開法則來讀取對應所需的 pixel。以圖 3.1.1 為 例,此運算單元所實現的法則為廣域型相位展開法則(kernel),因此每個運算單元 將其四方對應的 pixel 讀入並同時運算。 圖 3.1.2 細胞自動機之運算單元電路架構. 23.
(34) 第三章 系統架構 由於廣域型相位展開法則(kernel) 是每個參考領域皆只有一個相位點,且當 任一參考領域之相位點較 Current Pixel 之相位值大於 π 時,則 Pixel 之相位值增加 2π。在相位值比較算式上,原先為:. 其中判斷式可改寫為: Pixel. > Current Pixel + π,可以簡化比較器(comparator). 的設計,而當任一參考領域之相位點較 Current Pixel 之相位值大於 π 時,比較器 就會透過多工器(Multiplexer)選擇 Current Pixel+2π,反之則 Current Pixel,並做下 一輪運算。 上述系統架構雖然能直觀的建構出細胞自動機式廣域型相位展開法則,但是 由於在廣域型相位展開法則的推廣上,如廣域型相位展開法則(kernel)到廣域型相 位展開法則(5×5),運算單元為了計算更大的參考領域而需要更多資源,而且運算 單元數量隨影像大小而急速成長,導致資源消耗異常劇烈,即使是採取定點式運 算,仍然超出開發環境資源。因此我們將提出新的系統結構來取代原始細胞自動 機為基礎的相位展開系統架構。. 24.
(35) 第三章 系統架構. 3.2 改良式廣域型相位展開法則系統架構 圖 3.2.1 改良式廣域型相位展開法則平行運算系統架構圖. 圖 3.2.1 為本論文之理想系統架構,有鑑於細胞自動機型相位展開架構的資 源消耗成長過快,以及廣域型相位展開法則需要遞回運算,因此採用回饋式資料 讀取架構,並配合 N 個運算單元、2N-Port RAM 及 N-input-5N-output Buffer 進行 平行運算,之後將相位展開後的 Pixel 值存入記憶體,待下一次相位展開時,便 能從記憶體中讀取 Pixel 數值。此架構所需的運算單元個數遠遠小於細胞自動機 型 N×N 個運算單元,資源消耗明顯下降。 但是由於 2N-Port RAM 架構太過複雜,現今電路技術仍無法產生該記憶體架 構,因此本論文將採用其現今可產生之簡化版系統架構,做為本論文的主要系統 架構。. 25.
(36) 第三章 系統架構 圖 3.2.2 改良式廣域型相位展開法則系統架構圖. 5 output. 2-Port RAM. 1-input 5-output Buffer. Cell. 圖 3.2.2 為本論文之主要系統架構,由於圖 3.2.1 之系統架構現今無法產生, 因此採用單一運算單元、2-Port RAM 及 1-input-5-output Buffer 做為系統主要電 路。雖然與理想系統架構相較之下無法進行平行處理,但是所需之資源消耗更 低,最重要的是此架構為現今可行之系統架構。 圖 3.2.3 Buffer(kernel)架構圖. N : row size. N Data in. Reg. Reg. ……….. Reg. Reg. Reg Pixel 3. Reg. Reg. ……….. Reg. Reg. Reg. Current Pixel. Reg. Reg. ……….. Reg. Reg Pixel 1. 26. Reg Pixel 4. Pixel 2.
(37) 第三章 系統架構 自多運算單元架構改為單一運算單元架構,必須有電路架構維持廣域型相位 展開法則中的 Current Pixel 與相鄰 Pixel 之間的運算關係,以廣域型相位展開法則 (kernel)為例,Current Pixel 必須知道其四方的 Pixel,因此本論文使用蛇狀路徑架 構做為 Buffer 設計。 蛇狀路徑架構可以將 Pixel 循序讀入,並保留部分影像架構,以上圖為例, 此蛇狀路徑架構所對應相位展開法則為廣域型相位展開法則(kernel),記憶體將 Pixel 由 Data in 進入至蛇狀路徑架構,並在特定暫存器輸出至運算單元做相位展 開運算,如蛇狀路徑架構的 Current Pixel 將輸出至運算單元的 Current Pixel,因 蛇狀路徑架構將 Pixel 循序讀入,因此在廣域型相位展開法則(kernel)中,Current Pixel 所需的左右鄰近 Pixel 就在前後暫存器,即為 Pixel 1 和 Pixel 2。廣域型相位 展開法則(kernel)需要上下相鄰 Pixel,因此需要多上下各一排暫存器來表示上下 相鄰 Pixel,即為 Pixel 3 及 Pixel 4。而每一排的暫存器個數為影像大小,假設需 處理的影像大小為 512×512,則每一排皆有 512 個暫存器,保留部分影像處理架 構。. 27.
(38) 第三章 系統架構. 圖 3.2.4 廣域型相位展開法則(kernel)之運算單元電路架構. 除了依舊以定點數運算來降低資源消耗之外,此運算單元架構與細胞自動機 之運算單元架構的不同之處,在於細胞自動機整張影像大小的運算單元做相位展 開,之後將運算結果存入暫存器中,即可逕行下一次運算,無需存入記憶體再做 讀入動作。而改良式運算單元由於直接將運算結果存入記憶體中,因此不需要再 有暫存器做資料讀取。. 在推廣改良式廣域型相位展開法則之系統架構中時,整個回饋式系統架構無 需更動,需要變動的僅蛇狀路徑架構及運算單元架構。蛇狀路徑架構的變動在於 暫存器排數的增加,對於左右相鄰的參考 Pixel 而言,只要將路徑上的參考暫存 器向前後延伸參考,即是左右相鄰參考 Pixel。而上下相鄰參考 Pixel 則是透過增 加上下排暫存器取得,蛇狀路徑架構的暫存器排數需大於廣域型相位展開法則所 28.
(39) 第三章 系統架構 需的參考範圍,以下以廣域型相位展開法則(5×5)為例。 圖 3.2.5 Buffer(5×5)架構圖. 假設影像的大小為 512,則每一排的暫存器個數為 512 個,這一點與圖 3.2.3 無異,但由於拓展至廣域型相位展開法則(5×5),因此 Buffer 從原先的三排增加至 五排,同時也可以看到 5×5 範圍內,其中心的暫存器所存之 Pixel 即對應到運算 單元的 Current Pixel。而從廣域型相位展開法則(kernel)延伸後,其各個參考領域 將不只一個 Pixel,以圖 3.2.5 可看到,共有四種不同種的的標示,各個標示代表 一種參考領域,如紅色圓形代表參考領域 Area one,藍色三角形象徵參考領域 Area four 等,與圖 2.2.2、2.2.4 及 2.2.5 結果相符合 而推廣至廣域型相位展開法則(N× N)時,假設影像大小為 M× M,則每一排共 有 M 個暫存器,共有 N 排,並代入相位展開法則(N× N)的參考領域範圍(表 2.2.1、 2.2.2),最後將各參考領域之對應 Pixel 輸入至運算單元做運算。 29.
(40) 第三章 系統架構. 圖 3.2.6 廣域型相位展開法則(N×N)之運算單元電路架構. 運算單元架構最主要的變動為,原先的 input Pixel 個數從 4 個增加至 N×N-1 個,以參考領域為單位,同時與 Current Pixel 做相位值比較。而比較器也增加新 的電路,多數決定電路(Majority Voter),其電路架構圖如下: 圖 3.2.7 廣域型相位展開法則(N×N)之比較器電路架構. 30.
(41) 第三章 系統架構 由於以參考領域做運算,因此總共有 N × (N/2)個比較器,並且將比較後結 果,即參考領域中比 Current Pixel 大於 π 的 Pixel 個數送入多數決定電路中。假如 其數值多於. +1,即更新閥值,如表 2.2.3 所示,則多數決定電路. 將輸出 1。之後使用聯集器和多工器來判斷 Current Pixel 為需要更新,並把運算 結果存入記憶體中。. 3.3 解決邊界問題(Boundary Condition)之改良式廣域型相 位展開法則系統架構 圖 3.3.1 邊界問題(Boundary Condition)示意圖. N. N : row size. N. Image. 本論文之系統架構從以整張影像做處理為概念的細胞自動機型相位展開法 則之系統架構,轉換到以一排 Pixels 做平行處理的改良型相位展開法則之平行運 31.
(42) 第三章 系統架構 算系統架構,最後為以單一 Pixel 做運算的改良型相位展開法則之系統架構,其 中的轉變產生了一個額外的問題,那就是邊界問題(Boundary Condition)。 如圖 3.3.1 所示,以廣域型相位展開法則(kernel)運算為例,廣域型相位展開 法則(kernel)需要四方的 Pixel 做參考運算,然而像是影像中最右下的 Pixel,其下 方及右方原先無任何參考 Pixel,因此本論文將數值 0 做為邊界 Pixel 中原先不存 在的參考 Pixel 之相位值。 選數值 0 做為代替的參考 Pixel 之相位值,其原因為當不連續相位圖形成時, 其影像的相位值將介於(-π, π),而本論文所提出的廣域型相位展開法則是當相鄰 Pixel 比 Current Pixel 大於π時,則 Current Pixel 更新。但因為數值 0 比介於(-π, π) 的 Pixel 皆不會大於 π,因此數值 0 適合做為代替相位值。同時相較於部分邊界處 理設計,填入數值 0 的方式也較為簡便。 本論文將討論改良型相位展開法則之系統架構中進行填入數值 0 來處理邊界 問題之電路設計。. 32.
(43) 第三章 系統架構 圖 3.3.2 處理邊界問題之相位展開法則系統架構圖 clk. Controller row_start/ row_end. address zero_padding. 5 output. 2-Port RAM. 1-input 5-output Buffer. Cell. 上圖為處理邊界問題而強化後的改良型相位展開法則之系統架構,本論文設 計一控制器(Controller)來控制記憶體的資料存取,並輸入控制信號至 Buffer 及運 算元件當中以處理邊界問題。 圖 3.3.3 控制器(Controller)之系統架構圖. clk. address. Boundary Detector. AGU. row_start. zero_padding 33. row_end.
(44) 第三章 系統架構 控 制 器 分 別 為 下 列 兩 個 電 路 所 組 成 , 第 一 個 為 邊 界 偵 測 器 (Boundary Detector),另一個為地址產生器(Address Generator Unit, AGU)。首先,本論文先 從地址產生器部分做討論。 地址產生器主要處理上下側的邊界問題,其電路設計為一有限狀態機(finite state machine),其狀態圖如下: 圖 3.3.4 有限狀態機狀態圖. 如上圖所示,地址產生器的狀態一共有五個,每個狀態經過一段時脈週期運 算後,即進入下個狀態,直到至狀態 finish,表示一次的相位展開運算完成。 同時,地址產生器會在數個狀態中產生 zero_padding 訊號給 Buffer,以處理 邊界問題,因此 Buffer 須做部分修改,修改後如下圖所示:. 圖 3.3.5 處理邊界問題之 Buffer(kernel)架構圖 N : row size. zero_padding. N. 0 Data in. MUX. Reg. Reg. ……….. Reg. Reg. Reg Pixel 3. Reg. Reg. ……….. Reg. Reg. Reg. Current Pixel. Reg. Reg. ……….. Reg. Reg Pixel 1. 34. Reg Pixel 4. Pixel 2.
(45) 第三章 系統架構 主要修改部分在於原先資料直接進入 Buffer 中,而現在接收來自地址產生器 的 zero_padding 訊號,並透過多工器輸入額外的數值 0 至 Buffer 中,而地址產生 器的狀態與 Buffer 的運作如下: State init: 地址產生器產生 zero_padding 訊號,並通知 Buffer 透過多工器輸入額外的數 值 0,直到 Buffer 中的暫存器裡皆為數值 0,並同時對其他電路發出初始化 信號。 圖 3.3.6 Buffer(kernel)於 State init 時之示意圖 N : row size. zero_padding. N. 0 Data in. MUX. 0. 0. ………... 0. 0. 0 Pixel 3. 0. 0. ………... 0. 0. 0 Current Pixel. 0. 0. ………... 0. 0 Pixel 1. 0 Pixel 4. Pixel 2. State 1: 地址產生器產生地址給記憶體做資料讀取,並將資料送入 Buffer,此時運算 單元不做運算,直到影像的第一筆 Pixel 進入運算單元,並轉移狀態。. 35.
(46) 第三章 系統架構 圖 3.3.7 Buffer(kernel)於 State 1 之示意圖 N : row size. zero_padding. N. 0 Data in. MUX. Pixel. Pixel. ……….. Pixel. Pixel. Pixel Pixel 3. Pixel. Pixel. ……….. Pixel. 0. Pixel. Current Pixel. 0. 0. ………... 0. 0. 0. Pixel 1. Pixel 4. Pixel 2. State 2: 持續將不連續相位圖的 Pixel 依序送入 Buffer,並交由運算單元做運算,同時 將運算結果存回記憶體中,直到不連續相位圖的最後一個 Pixel 輸入至 Buffer 後,轉移狀態。. 圖 3.3.8 Buffer(kernel)於 State 2 之示意圖. N : row size. zero_padding. N. 0 Data in. MUX. Pixel. Pixel. ……….. Pixel. Pixel. Pixel Pixel 3. Pixel. Pixel. ……….. Pixel. Pixel. Pixel. Current Pixel. Pixel. Pixel. ……….. Pixel. Pixel Pixel 1. 36. Pixel Pixel 4. Pixel 2.
(47) 第三章 系統架構 由上述三個狀態可觀察到在 State init 時,處理下側邊界所需的數值 0 已存入 至 Buffer 中,並在 State 1 時將不連續相位圖的 Pixel 讀入 Buffer 中,但由於在運 算單元中的皆是由 zero padding 所產生的數值 0,因此必須將不連續相位圖的 Pixel 位移至運算單元中才可進行相位展開,即 State 2。同時 zero padding 所產生的數 值 0 被參考,下側邊界問題處理完成。. State 3: 控制器再一次產生 zero_padding 訊號給 Buffer,存入處理上次邊界問題的數 值 0,同時記憶體只做資料存入,直到最後一筆 Pixel 進行相位展開運算結束 後,即狀態轉移至 State finish,表示一輪的相位展開運算完成。. 圖 3.3.9 Buffer(kernel)於 State 3 之示意圖. 如上圖所示,當在 State 3 時,將依序給入額外的數值 0 做為上側的邊界,因 37.
(48) 第三章 系統架構 此可以證實本論文所使用的地址產生器設計可以成功的處理上下側的邊界問題。 接下來,本論文將討論邊界偵測器的設計。邊界偵測器主要處理左右側的邊 界問題,其電路設計為一個位移暫存器(shift register),其電路圖如下: 圖 3.3.10 邊界偵測器(Boundary Detector for kernel)之系統架構圖. N : row size. Boundary Detector. N Reg. Reg. ………... Reg. Reg. row_start. Reg row_end. 圖 3.3.4 為廣域型相位展開法則(kernel)所使用的邊界偵測器,其中邊界偵測 器的暫存器裡僅存入 1、0 兩個數值,同時將數值做位移,並輸出 row_start 及 row_end 訊號,給運算單元做參考點選擇。而運算單元也因此需做更動,以廣域 型相位展開法則(kernel)的運算單元為例,其電路架構如下: 圖 3.3.11 處理邊界問題之相位展開法則(kernel)之運算單元電路架構. 38.
(49) 第三章 系統架構 與原先系統架構比較,其中最大的差異在於多了多工器,接收來自邊界偵測 器所產生的 row_start 及 row_end 訊號,來判斷左右參考 Pixel 為 Pixel 1、Pixel 2 或數值 0。 廣域型相位展開法則(kernel)因左右側邊界問題將左右參考 Pixel 分為三類, 分類結果如下: 圖 3.3.12 廣域型相位展開法則(kernel)之左右側邊界問題分類圖. 當 Current Pixel 為左邊界的 Pixel,則其左參考 Pixel 不存在,即 type 1 所示, 而當 Current Pixel 為右邊界的 Pixel,則其右參考 Pixel 不存在,如 type 2。 而邊界偵測器的運作為一位移暫存器,內部存入一個數值 1,其餘為 0。當 Pixel 藉由地址產生器自記憶體讀取並通過 Buffer 時,邊界偵測器做暫存器內的數 值位移,而 Pixel 進入運算單元做運算時,邊界偵測器透過數值 1 及 0 來產生 row_start 及 row_end 訊號,下列將舉例子說明: 一. 假如 Current Pixel 如圖 3.3.11 的 type 1 時,邊界偵測器如下圖所示:. 39.
(50) 第三章 系統架構 圖 3.3.13 左側邊界問題之邊界偵測器示意圖. N : row size. Boundary Detector. N 1. 0. ………... 0. 0. row_start. 0 row_end. row_start 為 1,row_end 為 0。因此運算單元將左參考 Pixel 值設為 0,而右 參考 Pixel 依然為 Pixel 2,即解決左側邊界問題。 二. 假如 Current Pixel 如圖 3.3.11 的 type 2 時,邊界偵測器如下圖所示: 圖 3.3.14 右側邊界問題之邊界偵測器示意圖. row_start 為 0,row_end 為 1。因此運算單元將右參考 Pixel 值設為 0,而左 參考 Pixel 依然為 Pixel 1,即解決右側邊界問題。 三.假如 Current Pixel 如圖 3.3.11 的 type 0 時,則邊界偵測器所產生的 row_start 及 row_end 皆為 0,運算單元的左右參考 Pixel 皆保留為 Pixel 1 及 Pixel 2,對 於非邊界的 Current Pixel 運算無任何影響。 此邊界偵測器同時可以推廣至其他廣域型相位展開法則使用,以廣域型相位 展開法則(5×5)為例,其左右側邊界問題可以分類成五類,同時邊界偵測器內將存 40.
(51) 第三章 系統架構 入兩個連續數值 1,其餘為 0。而 row_start 及 row_end 訊號之輸出腳位也將增加 為各兩個,運算單元之系統架構也將擴增多工器,以接收從邊界偵測器所產生共 四個訊號,此改變即可解決廣域型相位展開法則(5×5)的左右側邊界問題。. 3.4 相位展開運算完成判斷之系統架構 此章節將說明本論文所設計的相位展開運算完成判斷之系統架構。由於相位 展開法則的完成是藉由檢查是否還有 Pixel 需要被更新,如果沒有任何 Pixel 需要 被更新,則相位展開運算完成。因此本論文修改運算單元架構,如下圖所示: 圖 3.4 相位展開運算完成判斷之系統架構圖. 運算單元會透過比較器及多數決定電路決定 Current Pixel 是否需要更新,其 輸出至多工器做選擇的數值只有兩種,非 0 即 1。所以將輸出除了接到多工器以 外,再接到一累加器的 en 輸入訊號,當 Current Pixel 需要更新,比較器及多數決 定電路的輸出為 1,除了透過多工器選擇 Current Pixel + 2π 外,同時也將驅動累 41.
(52) 第三章 系統架構 加器做累加,代表尚有 Current Pixel 被更新。累加器的結果將傳送至 CPU,以 CPU 決定繼續執行相位展開運算並同時將累加器歸零,或是停止相位展開運算。 累加器的系統架構簡便,同時邊界偵測器為位移暫存器架構,可以進行高速 運算,因此由上述討論可以證實本論文所提出累加器、邊界偵測器及地址產生器 可以簡單且有效的解決邊界問題及相位展開運算之判斷完成問題。. 42.
(53) 第四章 實驗數據與效能比較. 第四章 實驗數據與效能比較 本章節將呈現本論文所提出的高速相位展開法則硬體架構之正確性、實際效 能測試與比較,以及實驗環境的介紹. 4.1 開發平台與實驗環境 本 論 文 實 現 電 路 架 構 實 作 之 硬 體 平 台 為 Altera 的 Stratix III EP3SL150F1152C2N FPGA 開發板,下表為 Stratix III EP3SL150F1152C2N FPGA 開發板的規格資訊,而之所以選擇 FPGA 開發板來開發及實現硬體架構,主要因 為可程式化系統晶片(System on a Programmable Chip , SoPC)能夠快速的合成客製 化硬體電路架構,並進行驗證,且具有裁減、擴充及更新等多種系統軟硬體重複 編輯功能,因此 FPGA 十分適合本論文之硬體電路架構之實作。 圖 4.1 Altera Stratix III EP3SL150F1152C2N 開發板外貌. 43.
(54) 第四章 實驗數據與效能比較 表 4.1 Altera Stratix III EP3SL150F1152C2N 開發板之系統規格 Feature. Stratix III. Device. EP3SL150F1152C2N. Adaptive Logic Modules (ALMs). 56,800. Combinational ALUTs. 113,600. Memory ALUTs. 56,800. Dedicated Logic Registers. 113,600. M9K Memory Blocks. 355. M144K Memory Blocks. 16. Total block memory bits. 5,630,976. DSP block 18-bit elements. 384. Total PLLs. 8. Total DLLs. 4. Total Pins. 744. 本論文使用 Altera Quartus II 13.0 及 Modelsim 10.1d 作為撰寫 Verilog 硬體描 述語言的操作平台,透過 Quartus II 提供的語法檢查、時序分析、邏輯元件的配 置、產生規格化檔案、電路合成及繞線佈局等強大的功能,可以快速構築系統架 構,並藉由掛載 Modelsim,產生模擬訊號波形圖,驗證系統架構之正確性。 待系統架構設計完成後,就將系統架構載入至 SoPC system 上,並且在載入 44.
(55) 第四章 實驗數據與效能比較 完畢的 SoPC system 燒錄於 FPGA 開發板後,就可進行實質硬體的訊號輸入/輸出 驗證系統架構的效能與正確性。而 SoPC system 內許多元件包含 CPU、客製化電 路(菲涅耳轉換及相位展開電路)、記憶體等等組成一個系統則是透過 Altera SoPC Builder 這套介面配置而成。Altera Quartus II 13.0 所使用的 PC 規格為 Intel® Core™ i7-930 CPU @ 2.80GHz、16G DDRIII 記憶體。 而Altera公司也提供了採用Eclipse為基礎的NIOS II IDE軟體供使用者使用, 所有在系統中的軟體開發都可以在NIOS II IDE下完成。由於NIOS II系統提供設計 人員在Altera FPGA中開發完整的Nios II嵌入式系統所需的軟體工具、應用程式、 函式庫及驅動程式,方便使用者利用此IDE 軟體來與FPGA開發板溝通互動,加 速SoPC 系統的開發。 本論文除了使用 Verilog 硬體描述語言來實作所提出之硬體電路架構,也會使 用 MATLAB R2010a 為平台,以軟體實現相同的演算法則來和硬體電路架構的執 行結果互相比較。 ※ 硬體實現環境 Device:Altera Stratix III EP3SL150F1152C2N CPU:NIOS II 3GHz Memory:64-MB DDR2 SDRAM ※ 軟體實現環境 CPU:Intel® Core™ i7-930 CPU @ 2.80GHz 45.
(56) 第四章 實驗數據與效能比較 Memory:DDRIII 16.0 G MATLAB R2010a. 4.2.1 實驗數據呈現與討論 本章節將討論相位展開法則電路在當輸入 256×256 及 512×512 兩種不同的圖 像大小時,實際在 FPGA 開發板上測量到的效能及資源消耗情形,最後與其他相 位展開法則之系統架構做效能及資源消耗比較。 在實際的SoPC系統上,硬體資源主要分成三大部分,分別為ALMs、block memory bits和DSP blocks,其中ALMs被用於實現暫存器以及運算單元;block memory bits主要用於實現記憶體元件;而DSP blocks則是被用來實現數值運算中 像是除 法器 及乘法 器 等元件 ,由 於本論 文 之系統 架構 未使用 到 任何的 DSP blocks,因此本論文之DSP資源消耗為0。 表 4.2.1 各個相位展開法則架構所需的 ALMs 資源消耗情形: 256×256. 512×512. Regional(kernel). 377. 532. Regional(5×5). 565. 738. ALMs. Regional(7×7). 960. 本論文的系統架構中會消耗 ALMs 資源的邏輯元件為有號整數加減器、有號 整數乘法器、比較器、多工器、暫存器及有限狀態機控制器,其中有限狀態機控 46.
(57) 第四章 實驗數據與效能比較 制器在各個相位展開法則並無太大差異,主要在於不同的相位展開法則下,狀態 轉換所需的週期數不同,狀態數及各個狀態下的控制訊號輸出都一致。 造成 ALMs 資源消耗差異的邏輯元件比較器和暫存器,在廣域型相位展開法 則(kernel)裡,因為參考的鄰點為上、下、左、右四個點,因此所需的比較器個數 為四個,暫存器需要三排,每排各 256 個,共 768 個暫存器,而廣域型相位展開 法則(5×5)中,參考的鄰點數擴增成 24 個,所需的比較器個數也增加為 6 倍,暫 存器增加至 5 排,一樣每排各 256 個,總共 1,280 個,同理,廣域型相位展開法 則(7×7)也因參考鄰點數增加至 48 個而使所需比較器及暫存器個數增加,ALMs 的資源消耗也因此增加。 同時,暫存器和多工器會因維度的不同而產生 ALMs 資源消耗,由於本論文 所提出的系統架構,其中所採取的資料路徑為蛇狀架構,每一段的暫存器個數與 影像長度成正比,因此在相同相位展開法則,影像大小由 256×256 擴增至 512×512 時,所需的暫存器個數也增加成 2 倍,增加 ALMs 的資源消耗。. 47.
(58) 第四章 實驗數據與效能比較 表 4.2.2 各個項目對於 ALMs 資源消耗影響之分析: ALMs 資源消耗. 相位展開法則差異. 比較器. O. 暫存器. O. 維度. O O. 多工器. O: 有相關). (. 表 4.2.3 各個相位展開法則架構所需的 Total block memory bits 資源消耗情形: 256×256. 512×512. Regional(kernel). 729,472. 2,900,864. Regional(5×5). 735,418. 2,912,954. Total block memory bits. Regional(7×7). 2,923,940. 表 4.2.4 各個相位展開法則架構所需的 Memory Blocks 資源消耗情形: 256×256. Memory Blocks. 512×512. M144K. M9K. M144K. M9K. Regional(kernel). 0/16 ( 0% ). 91/355(26 %). 1/16(6 %). 355/355(100 %). Regional(5×5). 0/16 ( 0% ). 94/355 (26% ). 4/16(25 %). 355/355( 100 % ). 1/16 ( 6 % ). 355/355( 100 % ). Regional(7×7). block memory bits 的資源消耗與處理的影像大小、儲存的資料長度、暫存器 數量及 RAM 的數量等相關,假設處理的影像大小為 N×N,儲存的資料長度為 W, 48.
(59) 第四章 實驗數據與效能比較 RAM 的數量為 R,其他如暫存器所影響的資源消耗為 q,則系統架構的 block memory bits 資源消耗: block memory bits = R×W×(N×N) + q 以處理 256×256 的廣域型相位展開法則(kernel)為例: 處理的影像大小為 256×256,RAM 的數量為一個,而在進行相位展開時,是以 11-bit 有號整數作運算,因此以 11-bit 為儲存的資料長度存入 RAM 當中,則所需 的 block memory bits 為: 1×11×(256×256) = 729,472 bits 與實際掛載在 FPGA 開發板上的實際 block memory bits 硬體消耗數相同,因 此可以驗證硬體架構設計之正確性。 以處理 512×512 的廣域型相位展開法則為例: 處理的影像大小為 512×512,RAM 的數量為一個,而在進行相位展開時,是 以 11-bit 有號整數作運算,因此以 11-bit 為儲存的資料長度存入 RAM 當中,則 所需的 block memory bits 為: 1×11×(512×512) = 2,883,584 bits 與實際掛載在 FPGA 開發板上的實際 block memory bits 硬體消耗數相同,除 了證明硬體架構設計的正確性外,同時與 256×256 的廣域型相位展開法則(kernel) 單記憶體架構做比較時,可以觀察到前者所需的 block memory bits 為後者的 4 倍,證明當影像大小變為 4 倍時,所需的 block memory bits 也會變為 4 倍。 49.
(60) 第四章 實驗數據與效能比較 最後其他如暫存器所影響的資源消耗,反映在處理相同影像大小時,不同的 相位展開法則所需的暫存器數量不同,如同在上一段 ALMs 資源消耗與暫存器之 間關係的討論,廣域型相位展開法則(kernel)所需參考點最少,暫存器數量也是最 少,其次為廣域型相位展開法則(5×5),暫存器數量最多的為廣域型相位展開法則 (7×7),因此可以觀察到所需的 block memory bits 數逐步遞增。 最後一個討論項目為將系統架構掛載至 FPGA 後,實際對不同大小及不同樣 貌的不連續相位圖,以本論文所提出的各種相位展開法則做相位還原,並計算相 位還原所需的遞回數及運算時間。 由於本論文是以細胞自動機模型為相位展開法則之系統架構,因此需以遞回 的方式完成相位展開,而不同的不連續相位圖所需的遞回次數也會因此不同,以 相同樣貌的不連續相位圖,影像大小較大的不連續相位圖所需要的遞回次數也會 因此較多。同時,由於細胞自動機模型無法證明在遞回運算後,皆可得到收斂的 結果,所以除了用相位展開後的影像做判斷外,還能以遞回次數檢查各個相位展 開法則所形成的系統架構是否能正確的還原出完整的二維相位圖形。 假如遞回次數過多,則有可能細胞自動機模型無法得到收斂的結果,即還原 出完整的二維相位圖形,此時就要考慮用功能更強的相位展開法則做相位的還 原,例如當廣域型相位展開法則(kernel)無法收斂時,可以選擇廣域型相位展開法 則(5×5)替代,反之,當遞回次數過少時,則可能是因為系統架構的設計失誤,而 導致相位展開的不完全。 50.
(61) 第四章 實驗數據與效能比較 除了測試遞回次數,同時測試各種影像在進行相位展開處理上時間的消耗, 即實際在 FPGA 開發板上的執行時間和 clock rate,由於採用遞回架構,因此需要 藉由提高 clock rate,降低實際執行時間。 效能測試採用 256×256 及 512×512 兩種影像大小,而每個影像大小皆有兩種 不同的相位圖形,一種是 single microlens 的相位展開圖形,另一種是 microlens array 的相位展開圖形。 表 4.2.5 效能測試對照表 影像大小. 256×256. 512×512. single. microlens. single. microlens. microlens. array. microlens. array. 圖型種類. Regional (kernel). O. Regional(5×5). O. O. O. O. O. Regional(7×7). O O: 測試項目). (. 51.
(62) 第四章 實驗數據與效能比較 一. 256×256 single microlens 相位展開圖形 圖 4.2.1 256×256 single microlens 尚未相位展開圖形. 圖 4.2.2 256×256 single microlens 尚未相位展開圖形(俯視). 52.
Outline
相關文件
企業 指單一的法律實體 具有組織主權及擁有運用資源的決策權 在一個或多個地點從事經濟活動。當 同機構單位存在於 同一地點 但只要每一個機構單位
(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS
二、 學 與教: 第二語言學習理論、學習難點及學與教策略 三、 教材:. 運用第二語言學習架構的教學單元系列
個人、社會及人文教育學習領域課程架構提供一個框架讓學校自行規劃和發展校
Operation Sequence Number Quantity Per Assembly Component Yield Factor Fixed Start Days Offset Variable Start Days Offset Effective Date.
CIF)。每一共通交錯框架(CIF)傳送時間為 24 ms,共含有 55296 位元。所有數位廣播節目
然而此電路最大的問題在於中間 Buffer 的困難度,因此我們使用了如圖 3.8 的架 構[5],圖 3.8 中我們將電流源設在內側,而 UP、DOWN 兩個開關設在外側,和圖 3.7
HTML Agility Pack 是由法國的一位軟體架構師 Simon Mourier 所發展,並且 由 DarthObiwan 以及 Jessynoo 輔助開發出來的一個軟體工具,它可以讓剖析鬆散 格式