• 沒有找到結果。

應用於棘波分類之硬體架構實現

N/A
N/A
Protected

Academic year: 2021

Share "應用於棘波分類之硬體架構實現"

Copied!
60
0
0

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

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授: 黃文吉 博士. 應用於棘波分類之硬體架構實現 Hardware Implementation for Spike Sorting. 研究生: 李 偉 豪 撰 中華民國 一百零一 年 六 月.

(2)

(3) 摘要. 摘要. 本論文針對快速棘波分類設計了一套專用的架構,並於硬體中實現此架構。 本論文採用 Generalized Hebbian Algorithm (GHA) 來擷取棘波的特徵值,搭配 Fuzzy C-Means (FCM) 演算法將擷取到的棘波特徵值進行分類。GHA 演算法可高 速計算主成分特徵值供後續分群演算法進行運算,同時利用 FCM 演算法對於初 始質心選取好壞不敏感的特性可獲得較佳的分類結果。為了減少硬體資源的消耗, GHA 架構中在計算調整不同組權重值時皆共享相同一塊計算電路,而 FCM 採用 逐步增量計算權重係數與質量中心點,這可以避免原本需要大量儲存空間儲存權 重係數矩陣所造成的空間消耗。因此,本論文所提出的架構同時擁有低 area cost 與高輸出產量的優點。為了驗證本論文所提出的架構有效性,我們於現場可程式 邏輯閘陣列 (Field Programmable Gate Array , FPGA) 中實作出本架構,並於嵌入 式 System-On-Programmable-Chip (SOPC) 平台中進行實際效能量測。實驗結果證 明針對棘波分類本論文所提出的架構同時具有低判斷錯誤率、低 area cost 與高速 計算的優點。. 關鍵字:可程式化系統晶片、棘波分類、主成分分析、GHA、FCM、FPGA. i.

(4) Abstract. Abstract. This paper presents a novel architecture for fast spike sorting. The architecture is based on Generalized Hebbian Algorithm (GHA) and Fuzzy C-Means (FCM) algorithm. The GHA are used for feature extraction and the FCM are used for clustering. To show the effectiveness of the circuit, the proposed architecture is physically implemented by Field Programmable Gate Array (FPGA). It is embedded in a System-OnProgrammable-Chip (SOPC) platform for performance measurement. Experimental results show that the proposed architecture is an efficient spike sorting design for attaining low classification error rate, low area costs and high speed computation.. Keywords: system on programmable chip; spike sorting; principal component analysis; generalized Hebbian algorithm; fuzzy c-means algorithm; FPGA. ii.

(5) 誌謝. 誌謝 首先,要非常感謝我的指導教授 黃文吉 教授,在碩士班求學期間對我不辭 辛勞地指導,讓我有機會去學習研究的方法以及待人處世的態度,當我遇到困難 時與我討論並引導我通往正確方向,使得我在這段學習的時間獲得了許多的成長 與寶貴的經驗,在此獻上最誠摯的謝意。同時也感謝國立清華大學電機工程學系 黃仲陵 教授、國立台北科技大學資訊工程學系 尤信程 教授撥冗來參加我的碩 士論文口試,並給予論文上的評閱與建議。. 接著,很榮幸能夠來到國立臺灣師範大學資訊工程研究所就讀,並在多媒體 通訊暨系統晶片實驗室這個大家庭和大家一起學習成長。我要感謝已畢業的學長 姐:坤宏、銘彥、士彰、斯閔、宗懋,還有博士班的學長姐們,謝謝你們的教導, 同時也感謝在我碩士求學生涯與我一起奮鬥的同學們:哲誠、陳昊、嘉翎、子昕、 浩聲,另外也感謝可愛的學弟們::建廷、清志、國璿、聖穎、任軒和翰逸,給 予我學業與生活上協助,在此一併致謝。. 最後,更要感謝家人與所有關心我的朋友,有了你們的支持、關懷與鼓勵, 讓我有勇氣去面對各種的挫折與壓力,並順利地完成學業。謹將此論文成果獻給 所有關心我的人,希望大家與我分享這份喜悅與榮耀。 iii.

(6) 目錄. 目錄. 附圖目錄........................................................................................................................ vi 附表目錄...................................................................................................................... viii 第一章. 緒論................................................................................................................. 1. 1.1. 研究背景與動機................................................................................................ 1. 1.2. 研究目的與方法................................................................................................ 2. 第二章. 基礎理論與背景介紹..................................................................................... 5. 2.1. 文獻探討............................................................................................................ 5. 2.2. GHA 演算法 ...................................................................................................... 7. 2.3. FCM 演算法 ...................................................................................................... 8. 2.4. GHA 與 FCM 於棘波分類之應用 ................................................................... 9. 第三章. 棘波分類系統架構....................................................................................... 10. 3.1. GHA 單元 ........................................................................................................ 10. 3.2. FCM 單元 ........................................................................................................ 20. 3.3. Global 控制器單元 .......................................................................................... 27 iv.

(7) 目錄. 3.4 第四章. FPGA-Based 棘波分類系統 ........................................................................... 29 實驗數據與效能比較................................................................................... 30. 4.1. 開發平台與實驗環境...................................................................................... 30. 4.2. 實驗數據呈現與討論...................................................................................... 33. 第五章. 結論............................................................................................................... 46. 參考文獻....................................................................................................................... 48. v.

(8) 附圖目錄. 附圖目錄. 圖 1.1 棘波分類系統運作流程................................................................................... 3 圖 3.1 本論文提出之棘波分類系統架構 ................................................................ 10 圖 3.2 硬體實現論文公式(14) 與論文公式(16) ..................................................... 12 圖 3.3. SWU 單元中每個模組其內部架構 .............................................................. 12. 圖 3.4. GHA 電路架構. ...................................... 14. 圖 3.5 GHA 電路運作流程圖 .................................................................................. 15 圖 3.6 GHA 電路中 Stage 3 PCC 單元運作流程 ................................................... 17 圖 3.7 GHA 電路中 Stage 4 SWU 單元運作流程 .................................................. 19 圖 3.8. FCM 電路架構 (. ) .............................................................................. 24. 圖 3.9 FCM 單元運作流程圖 .................................................................................. 26 圖 3.10 Global 控制器單元運作流程圖 .................................................................. 28 圖 3.11 FPGA-Based 棘波分類系統 ...................................................................... 29 圖 4.1. Cyclone IV GX DK-DEV-4CGX150N 開發板 ........................................... 30. 圖 4.2. SOPC 系統開發流程 ..................................................................................... 32. vi.

(9) 附圖目錄. 圖 4.3 來自不同神經元的棘波訊號 (SNR=10,SNR=100) .................................... 36 圖 4.4 棘波主成分值 𝒚𝟏 𝒚 投影至特徵平面之散佈圖 (. ).......................... 37. 圖 4.5 棘波主成分值 𝒚𝟏 𝒚 投影至特徵平面之散佈圖 (. ).......................... 38. 圖 4.6 棘波主成分值 𝒚𝟏 𝒚 投影至特徵平面之散佈圖 (. ).......................... 39. vii.

(10) 附表目錄. 附表目錄. 表 3.1 針對前兩筆特徵向量. 𝟏. FCM 單元運作流程 ..................................... 25. 表 4.1 軟硬體實驗平台規格整理 ............................................................................ 31 表 4.2 不同精度條件下分類正確率比較 ................................................................ 34 表 4.3 本論文提出之棘波分類系統面積複雜度 .................................................... 40 表 4.4 本論文提出之棘波分類系統硬體資源消耗 ................................................ 41 表 4.5 GHA 電路與 Software-Based 之特徵擷取法則比較 ................................. 42 表 4.6 GHA 電路與 Hardware-Based 之特徵擷取法則比較 ............................... 43 表 4.7 FCM 電路與 Software-Based 之分群法則比較.......................................... 44 表 4.8 本論文提出之棘波分類系統功率消耗與功率密度 .................................... 45. viii.

(11) 第一章 緒論. 第一章 緒論 1.1 研究背景與動機 棘波序列 (Spike Train) 為一連串由神經元細胞所發出的動作電位 (Action Potential) 訊號。一般透過植入體內的微電極探針來偵測訊號,偵測到的訊號為探 針周圍神經元細胞所發出的訊號總和,而棘波分類這項技術的目的就是希望於探 針所偵測到的混合訊號中將來自不同神經元細胞所發出的訊號給加以區分出來。 由於體內雜訊與周遭神經元細胞所發出的訊號干擾,使得棘波分類被視為一項困 難的工作。傳統的棘波分類演算法包含了特徵擷取與分類這兩部分 [1]。針對棘 波分類的應用目前也已經提出了許多不同的解決方案,其中一項做法為將事先已 植入體內的探針所偵測到的棘波訊號透過無線網路傳輸技術傳送至外部高速電 腦計算,這雖然可以將龐大複雜的計算過程改由外部處理設備負責,但為了將棘 波訊號傳送至外部必須犧牲掉大量傳輸時間與頻寬。而透過無線網路傳輸時的連 線品質也將是個極大的考驗,這些問題都將使得這項工作變得更為艱鉅。許多針 對腦機介面 (Brain Machine Interface , BMI) 應用所提出的棘波分類系統大多得 依靠有線裝置的連結,這也大大地侷限了操作者移動時的便利性。. 1.

(12) 第一章 緒論. 1.2 研究目的與方法 硬體化棘波分類法則可讓 BMI 有著更好的效能與應用。透過擷取棘波特徵值 達到資料降維的目的,它能有效地降低於無線通訊網路傳送時所需的資料頻寬。 然而,由於晶片必須植入體內,晶片的功率消耗與熱消散 (heat dissipation) 都必 須在設計的考量範圍之內。而一般正常人操控四肢軀幹神經元間的訊號傳遞大約 都在幾百個毫秒以內,因此若要讓裝有人工義肢的肢體障礙人士能夠自在活動, 該晶片必須要擁有即時計算棘波分類結果的能力。一個普遍的做法為將硬體電路 設計於特殊應用積體電路 (Application Specific Integrated Circuit , ASIC) 中,但缺 點是必須犧牲修改設計的方便性。目前有許多新的棘波分類演算法持續地被提出, 因此一個良好的棘波分類系統要能滿足容易更新分類法則的需求。然而 ASIC 一 經生產便難以修改的特性,這使得 ASIC 很難應用於棘波分類的領域當中,特別 是該晶片必須植入於體內的情況下。另外高 NRE (Non-Recurring Engineering) cost 以及需要較長時間設計與驗證的特點也經常限制了 ASIC 於 BMI 中的應用。現場 可程式化邏輯閘陣列 (Field Programmable Gate Array , FPGA) 相對於 ASIC 提供 了較低的 NRE cost,而 FPGA 可重覆燒錄修改的特性亦提供了棘波分類法則於未 來設計延伸時較高的彈性。. 2.

(13) 第一章 緒論. 本論文目標提出一個以 FPGA 為基礎的棘波分類硬體架構設計,並同時具有 低功率消耗與即時運算的能力。本硬體架構可擷取來源棘波的特徵值,並將擷取 到的特徵值進行分類。特徵擷取的部分本論文採用 Generalized Hebbian Algorithm (GHA) [2,3] 來進行高速運算。GHA 避免了傳統主成分分析法則 (Principal Component Analysis , PCA) 需要計算共變異數矩陣 (covariance matrix) 的複雜過程。接 著獲得的棘波特徵值會交給 Fuzzy C-Means (FCM) 來計算分類結果。然而,如何 將 GHA 與 FCM 電路設計在同一塊晶片當中同時避免掉高 area cost,會是一項困 難的挑戰。為了降低硬體資源消耗,每個棘波將會被切割成幾塊較小的區塊送進 GHA 電路當中,不同的區塊彼此共享同一塊主成分計算電路。而 FCM 電路會事 先計算不同權重係數間的共同因子,這可以降低計算權重係數時所需要的加法器 與乘法器。此外,為了避免儲存權重係數矩陣所需要龐大的儲存空間,本論文採 用質心逐步更新調整的方式來實作。圖 1.1 為本系統之運作流程,事先已擷取到 的棘波訊號分別經由 GHA 與 FCM 電路進行特徵值擷取與資料分群,進而判斷出 該筆棘波訊號由哪一個神經元所發出。. Input Spike Train. Spike Detection (Thresholding). Feature Extraction (GHA). Clustering (FCM). 圖 1.1 棘波分類系統運作流程 3.

(14) 第一章 緒論. 為了實際驗證本論文所提出的硬體架構其有效性,本論文於 System-OnProgrammable-Chip (SOPC) 平台中實作了一套棘波分類系統,透過該平台所提供 的大量元件配置與豐富的溝通管理介面可使整個硬體開發過程變得更加容易且 更有彈性。而 SOPC 平台中的軟核處理器本身並不參與棘波分類的計算,它只負 責控制 SOPC 不同元件間的資料傳遞。實驗結果證明本架構對於棘波分類有著低 判斷錯誤率、即時高速運算以及低功率消耗的優點。. 4.

(15) 第二章 基礎理論與背景介紹. 第二章 基礎理論與背景介紹 2.1 文獻探討 論文 [4] 提出一個運作於 Smartdust 平台的植入式棘波分類系統,並以軟體 實現了特徵值擷取與分類。因此,在低運作時脈的情況下處理器很難達到高速運 算的目標,而加快運作時脈又將造成功率消耗的提升。目前也提出了許多以 FPGA 為基礎的硬體架構,如架構 [5,6,7,8,9,10] 等。其中架構 [5,6] 可執行 online PCA/GHA 特徵擷取。架構 [7,8] 則以離散小波轉換 (Discrete Wavelet Transform , DWT) 為基礎進行特徵值擷取。[9] 實現了一個擷取棘波過零特徵 (Zero-Crossing Features) 的電路。架構 [10] 實現以自組織映射網路 (Self-Organizing Map , SOM) 為基礎的分類運算。這些架構普遍有著無法同時進行特徵擷取與分類運算的缺點, 因此並無法提供棘波分類運算時所需足夠的產量輸出。. 目前已有提出許多針對紋理圖辨認與臉部辨識應用的 GHA 架構 [11,12,13]。 雖然有些架構可能可以直接被應用在棘波分類領域當中,但部分架構因為高 area cost 或較長的 latency,使得其並不適用於棘波分類當中。架構 [11] 於 GHA 訓練 過程中可同時計算所有輸入向量所對應的輸出結果,雖然其可提供較高的產量輸 出,但也造成該架構隨著輸入向量維度增加,area cost 將呈線性成長。相反地, 架構 [12] 提出一次只傳送一筆輸入向量。雖然該作法能讓該架構有著較低的 area 5.

(16) 第二章 基礎理論與背景介紹. cost,但隨著輸入向量維度增加其 latency 亦將呈現線性成長。架構 [13] 將輸入 向量切成幾個較小的區塊,一次僅運算一個區塊,該架構設計有著低 area cost 與 高速計算兼具的優點。. 此外除了 GHA 架構,亦有許多應用於影像處理的 FCM 架構 [14,15,16],部 分架構並不容易延伸應用至棘波分類領域當中。架構 [14] 的設計僅適用於兩個 叢集的分類結果,而棘波分類的應用經常會需要大於兩個叢集的分類結果,因此 並不適用於此。架構 [15] 允許所有訓練向量平行計算其權重係數,這樣雖然能 擁有高產量輸出但同時也造成了高 area cost。因此,要將 FCM 與 GHA 整合於同 一個晶片當中,同時具備高度資源利用將大幅增加其設計的困難度。本論文採用 [16] 提出的辦法,可逐步地計算權重係數,這有效地降低了 area cost。此外,不 同權重係數間所需的共同因子將使用同一塊電路事先運算好,這亦能降低硬體資 源的消耗,也因為這個事先運算的步驟讓後續權重係數的計算得以加快。. 6.

(17) 第二章 基礎理論與背景介紹. 2.2 GHA 演算法 令 𝐱 𝑛. [𝑥1 𝑛 … 𝑥𝑚 𝑛 ]𝑇 𝑛. 𝐲 𝑛. [𝑦1 𝑛 … 𝑦𝑝 𝑛 ]. 𝑇. 𝑛. 1… 𝑡. 1. 1… 𝑡. 2. 分別為 GHA 第 𝑛 筆輸入與輸出向量。而 𝑚 𝑝 以及 𝑡 分別為向量維度、主成分個 數、輸入與輸出向量個數。而輸出向量 𝐲 𝑛 與輸入向量 𝐱 𝑛 關係如下: 𝑚. 𝑦𝑗 𝑛. ∑ 𝑤𝑗 𝑖 𝑛 𝑥𝑖 𝑛. 3. 𝑖=1. 其中 𝑤𝑗 𝑖 𝑛 代表第 𝑛 次迭代過程中第 𝑗 個神經元的第 𝑖 筆突觸權重值。 令 𝐰𝑗 𝑛. [𝑤𝑗 1 𝑛 … 𝑤𝑗 𝑚 𝑛 ]. 𝑇. 𝑗. 1… 𝑝. 4. 為第 𝑗 筆突觸權重向量。每筆突觸權重向量 𝐰𝑗 𝑛 根據赫賓學習法則 (Hebbian learning rule) 進行調整,如下: 𝑗. 𝑤𝑗 𝑖 𝑛 + 1. 𝑤𝑗 𝑖 𝑛 + 𝜂 [𝑦𝑗 𝑛 𝑥𝑖 𝑛 − 𝑦𝑗 𝑛 ∑ 𝑤𝑘 𝑖 𝑛 𝑦𝑘 𝑛 ]. 5. 𝑘=1. 其中 𝜂 為學習率。經過多次迭代計算調整後 𝐰𝑗 𝑛 將趨近於輸入向量之共變異數 矩陣的第 𝑗 筆特徵值 λ𝑗。為了降低計算時的複雜度,公式(5) 可以改寫成公式(6): 𝑗. 𝑤𝑗 𝑖 𝑛 + 1. 𝑤𝑗 𝑖 𝑛 + 𝜂𝑦𝑗 𝑛 [𝑥𝑖 𝑛 − ∑ 𝑤𝑘 𝑖 𝑛 𝑦𝑘 𝑛 ] 𝑘=1. 更多關於 GHA 細節的討論可詳見 [2,3]。 7. 6.

(18) 第二章 基礎理論與背景介紹. 2.3 FCM 演算法 令𝐹. {. 1. 𝑡}. …. FCM 計算 𝐯𝑖 𝑖. 為欲分類的訓練向量所形成的集合, 𝑡 為訓練向量的個數。. 1 … 𝑐 ,並將 𝐹 分成 𝑐 個群集,其中 𝐯𝑖 表示第 𝑖 個叢集的質量. 中心點。FCM 目標為最小化公式(7): 𝑐. 𝐽. 𝑡. ∑ ∑ 𝑢𝑖2𝑛 ‖. 𝑛. − 𝐯𝑖 ‖2. 7. 𝑖=1 𝑛=1. 𝑢𝑖 𝑛 為. 𝑛. 對於第 𝑖 個叢集的權重係數。而 FCM 計算過程中公式(7) 被分成兩步驟. 迭代計算。第一步固定 𝐯1 … 𝐯𝑐 ,計算最佳權重係數矩陣 {𝑢𝑖 𝑛 𝑖. 1… 𝑐 𝑛. 1 … 𝑡} 根據下式: −1. 𝑐. 𝑢𝑖 𝑛. (∑(‖. 𝑛. − 𝐯𝑖 ‖⁄‖. 2. 𝑛. − 𝐯𝑗 ‖) ). 8. 𝑗=1. 接著,固定權重係數矩陣,透過下列式子獲得新的質量中心點 𝐯𝑖 : 𝑡. 𝐯𝑖. 𝑡. (∑ 𝑛 𝑢𝑖2𝑛 )⁄(∑ 𝑢𝑖2𝑛 ) 𝑛=1 𝑛=1. 反覆迭代計算至 J 值收斂為止。. 8. 9.

(19) 第二章 基礎理論與背景介紹. 2.4 GHA 與 FCM 於棘波分類之應用 GHA 與 FCM 被用於擷取棘波特徵值與分類當中。而公式(1) 𝐱 𝑛 為第 𝑛 筆 棘波。向量維度 𝑚 為每個棘波之取樣點個數。 令 𝐰𝑗. [𝑤𝑗 1 … 𝑤𝑗 𝑚 ]. 𝑇. 𝑗. 1… 𝑝. 10. 為經由 GHA 訓練完成後的突觸權重向量。由這些已訓練完成之突觸權重向量 𝐰𝑗 𝑗. 1 … 𝑝 ,依據下列式子 GHA 擷取訓練向量 𝐱 𝑛 的特徵向量稱為 [𝑓𝑛 1 … 𝑓𝑛 𝑝 ]. 𝑛. 𝑇. 𝑛. : 11. 當 𝑚. 𝑓𝑛 𝑗. ∑ 𝑤𝑗 𝑖 𝑥𝑖 𝑛. 12. 𝑖=1. 為. 𝑛. 中第 𝑗 個元素。而獲得的特徵向量集合 𝐹. {. 1. …. 𝑡}. 後續被當作 FCM 的訓. 練集合。當 FCM 按照 2.2 節所述訓練完畢後所獲得的質量中心點 𝐯1 … 𝐯𝑐 會被用 來將棘波訊號分類。而棘波訊號 𝐱 𝑛 分類的結果可由下列判斷式獲得: 𝑖 其中 𝑑(. 𝑛. arg min 𝑑(. 𝐯𝑗 ) 為. 1≤𝑗≤𝑐. 𝑛. 𝑛. 𝐯𝑗 ). 13. 與 𝐯𝑗 的距離平方差。. 9.

(20) 第三章 棘波分類系統架構. 第三章 棘波分類系統架構 圖 3.1 說明了本論文針對棘波分類所提出的架構,本架構中包含了三大單元, 分別為 GHA 單元、FCM 單元以及 Global 控制器單元。GHA 單元被用來計算 𝐰𝑗 𝑗 點 𝐯𝑗 𝑗. 1 … 𝑝 以及. 𝑛. 𝑛. 1 … 𝑡 ,接著 FCM 單元會計算分類過後的質量中心. 1 … 𝑐 供後續分類判斷使用,Global 控制器單元則是負責操控本架構中. GHA 與 FCM 電路的運作。. Global Controller. To/From x(n) , n=1,…,t CPU. GHA Circuit. fn , n=1,…,t FCM Circuit. vj , j=1,…,c 圖 3.1 本論文提出之棘波分類系統架構. 3.1 GHA 單元 GHA 單元的架構為 [13] 所提出的架構之延伸。GHA 單元主要由三項功能 單元所組成:記憶體 (Memory) 單元、突觸權重更新 (Synaptic Weight Updating , SWU) 單元、主成分計算 (Principal Components Computing , PCC) 單元。 10.

(21) 第三章 棘波分類系統架構. 3.1.1 突觸權重更新單元 突觸權重更新 (SWU) 單元主要是基於公式(6) 來設計,雖然直接採用公式(6) 來實作是可行的,但這將會造成大量硬體資源的消耗 [13]。一個可以降低硬體資 源消耗的辦法為將公式(6) 改寫如下: 𝑤𝑗 𝑖 𝑛 + 1. 𝑤𝑗 𝑖 𝑛 + 𝜂𝑦𝑗 𝑛 𝑧𝑗 𝑖 𝑛. 14. 當 𝑗. 𝑧𝑗 𝑖 𝑛. 𝑥𝑖 𝑛 − ∑ 𝑤𝑘 𝑖 𝑛 𝑦𝑘 𝑛. 𝑗. 1… 𝑝. 15. 𝑘=1. 且 𝐳𝑗 𝑛. 𝑇. [𝑧𝑗 1 𝑛 … 𝑧𝑗 𝑚 𝑛 ] 。而根據下式 𝑧𝑗 𝑖 𝑛 可由 𝑧 𝑗−1 𝑧𝑗 𝑖 𝑛. 當𝑗. 𝑧 𝑗−1. 𝑖. 𝑛 − 𝑤𝑗 𝑖 𝑛 𝑦𝑗 𝑛. 𝑗. 2… 𝑝. 𝑖. 𝑛 獲得,如下: 16. 1 時,根據公式(15) 與公式(16) 可得: 𝑧0 𝑖 𝑛. 𝑥𝑖 𝑛. 17. 因此本論文實作了等價於公式(6) 的公式(14) 與公式(16),圖 3.2 描述了硬體當中 公式(14) 與公式(16) 的運作情形。如圖所述,SWU 單元一次計算一筆新的突觸 權重值,以 𝐳𝑗−1 𝑛 、 𝐲 𝑛 、 𝐰𝑗 𝑛 為輸入計算出第 𝑛 + 1 次迭代時的第 𝑗 筆權 重向量 𝐰𝑗 𝑛 + 1 ,同時 SWU 單元亦會計算出 𝐳𝑗 𝑛 供後續計算 𝐰𝑗+1 𝑛 + 1 時 使用,這樣的做法硬體資源消耗將可以有效地被降低。. 11.

(22) 第三章 棘波分類系統架構. zj-1(n). zj(n). Reg.. (The initial value of Reg. is x(n).). yj(n) SWU. wj(n+1). wj(n). 圖 3.2 硬體實現論文公式(14) 與論文公式(16). 一個 SWU 單元的實現辦法為同時計算 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 。由於資料維度為 𝑚 ,因此必須使用 𝑚 個相同的模組來分別獨立計算,每個模組的內容如圖 3.3 所示,而 SWU 單元所需要的 area cost 將與 𝑚 呈線性成長關係。因此為了降低 area cost,每筆輸出向量 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 將被切割成 𝑏 個區塊,每個區塊中含有 𝑞 個元素。SWU 單元一次僅計算一個區塊的 𝐰𝑗 𝑛 + 1 與 𝐳𝑗 𝑛 。因此,經過 𝑏 個 循環後將可獲得完整的 𝐰𝑗 n + 1 與 𝐳𝑗 𝑛 。 z(j-1),i(n) wj,i(n) yj(n). ×. +. zj,i(n). η ×. ×. wj,i(n). +. wj,i(n+1). 圖 3.3 SWU 單元中每個模組其內部架構. 12.

(23) 第三章 棘波分類系統架構. 3.1.2 主成分計算單元 基於公式(3) 來設計主成分計算 (PCC) 單元架構,此架構中包含了加法器與 乘法器。因為乘法器數量將會根據向量維度 𝑚 而成長,因此當 𝑚 值較大時,直 接實作公式(3) 將會造成大量的資源消耗。為了降低 area cost,如同 SWU 單元一 般將資料切割成 𝑏 個區塊來分別計算。因此公式(3) 可以被改寫為: 𝑏. 𝑦𝑗 𝑛. 𝑞. ∑ ∑ 𝑤𝑗. 𝑘−1 𝑞+𝑖. 𝑛 𝑥 𝑘−1 𝑞+𝑖 𝑛. 18. 𝑘=1 𝑖=1. 而實作公式(18) 只需要 𝑞 個乘法器與一個支援 𝑞 筆輸入的平行加法器與一個累 加器即可達成。. 3.1.3 記憶體單元 記憶體單元由四個 Buffer 所組成:Buffer A,B,C,D,其中 Buffer A,B,C 為 shift registers,Buffer D 為一個 two-port RAM。Buffer A 保存由主記憶體中獲得的棘波 訊號 𝐱 𝑛 ;Buffer B 存放 𝐳𝑗 𝑛 供 PCC 單元與 SWU 單元進行運算;Buffer C 存 放突觸權重值向量 𝐰𝑗 𝑛 ;最後,計算出來的特徵值向量 D 供後續 FCM 單元存取。. 13. 1. …. 𝑡. 被放置於 Buffer.

(24) 第三章 棘波分類系統架構. 3.1.4 GHA 單元運作流程 典型棘波分類實作中 [4,17],每個棘波被取樣為 64 個取樣點,並由這 64 個 取樣點中擷取出 2 筆特徵值以滿足棘波特徵擷取的需求 [1]。為了符合一般棘波 分類的需求,定 GHA 單元維度 𝑚. 64 ,主成分個數 𝑝. 2 。GHA 單元中每筆. 訓練向量被分成兩個區塊,每個區塊維度為 32。因此,電路實現中定 𝑏 圖 3.4 說明了 GHA 電路當 𝑚. 64 𝑝. 2𝑏. To Buffer B. Buffer B. .... x64(n). Buffer C w1,33(n). w2,64(n). .... w2,32(n). w2,33(n). .... w1,64(n). w2,1(n). .... .... w1,32(n). From Avalon Bus. .... w1,1(n). Buffer A. x33(n). .... x32(n). 32 時的電路架構。. .... x1(n). 2與𝑞. PCC Unit Reg.2 ×. .... ACC. +. Reg.1. To FCM Circuit. Buffer D. ×. 2 Port RAM. SWU Unit Module 1. ... Module 32. 圖 3.4 GHA 電路架構 𝑚. 64 𝑝 14. 2𝑞. 2𝑏. 2𝑞. 32. 32 。.

(25) 第三章 棘波分類系統架構. GHA 電路運作流程可區分為四個階段,如圖 3.5 所示,其中 PCC 於 State 3 運算, SWU 於 State 4 運算,關於這兩項運算的詳細內容將於後續說明。. Initialization 1. n <= 1 2. Buffer A ← x(1) 3. Buffer C ← initial w1(n),w2(n) State 1 Buffer B ← Buffer A. State 2 Start to fill Buffer A with x(n+1). State 3 1. Activate PCC Unit 2. Compute y1(n),…,yp(n) based on Buffer B and Buffer C State 4 1. Activate SWU Unit 2. Compute w1(n+1),…,wp(n+1) based on Buffer B and Buffer C. Stop. Yes. Stop GHA training ?. No No Has Buffer A filled ? Yes. n <= n+1. 圖 3.5 GHA 電路運作流程圖 15.

(26) 第三章 棘波分類系統架構. 假定輸入向量 𝐱 𝑛 已存放於 Buffer B 當中,目前突觸權重向量 𝐰1 𝑛 𝐰2 𝑛 被放置於 Buffer C 中,根據 𝐱 𝑛 、 𝐰1 𝑛 、 𝐰2 𝑛 啟動 PCC 單元計算其輸出向 量 𝑦1 𝑛 𝑦2 𝑛 。圖 3.6 可看出由 Buffer B、Buffer C 所獲得的資料與 PCC 單元進 行運算後,該資料流會旋轉放置於 Buffer 尾端供後續 SWU 單元進行運算。圖 3.6 說明了 PCC 單元計算 𝑦1 𝑛 𝑦2 𝑛 時的運作流程,計算 𝑦𝑗 𝑛 被分為兩階段進行: 64 第一階段求 ∑32 𝑖=1 𝑤𝑗 𝑖 𝑛 𝑥𝑖 𝑛 ,第二階段計算出 ∑𝑖=33 𝑤𝑗 𝑖 𝑛 𝑥𝑖 𝑛 ,並將結果與. 前一階段的輸出結果進行累加計算求得 𝑦𝑗 𝑛 ,這兩階段皆共享相同的一塊電路。 從圖 3.6 可看出 Buffer B 與 Buffer C 中的資料在進行 PCC 計算時資料流會旋轉放 回至 Buffer B 與 Buffer C 尾端。. 16.

(27) 第三章 棘波分類系統架構. x1(n). ~. ~. x32(n). x33(n). Buffer B. x64(n). Buffer C. w1,1(n). Buffer C. w1,33(n). PCC Unit. w1,64(n) PCC Unit. Reg.1. (a) x1(n). y1(n). Reg.1. (b) x33(n). Buffer B. ~. ~. x32(n). Reg.2. ~. ~. Reg.2. w1,32(n). Buffer B. x64(n). Buffer C. Buffer B. Buffer C y1(n). w2,1(n). w2,33(n). w2,32(n) PCC Unit. Reg.2. ~. ~. Reg.2. w2,64(n) PCC Unit. Reg.1. y2(n). y1(n). (c). (d). 圖 3.6 GHA 電路中 Stage 3 PCC 單元運作流程: (a) 計算 𝑦1 𝑛 第一階段. (b) 計算 𝑦1 𝑛 第二階段. (c) 計算 𝑦2 𝑛 第一階段. (d) 計算 𝑦2 𝑛 第二階段 17. Reg.1.

(28) 第三章 棘波分類系統架構. 完成 PCC 運算後,SWU 單元將會於 State 4 被啟動。圖 3.7 說明了 SWU 單 元的運作流程,使用 𝐱 𝑛 𝑦𝑗 𝑛 與 𝐰𝑗 𝑛 重向量 𝐰𝑗 𝑛 + 1. 𝑗. 𝑗. 1 2 ,SWU 單元計算出新的突觸權. 1 2 ,並放置於 Buffer C 尾端供後續訓練過程使用。如同計. 算 𝑦𝑗 𝑛 一般,計算 𝐰𝑗 𝑛 + 1 一樣被分成兩個階段來進行。第一個階段計算前半 部之 𝐰𝑗 𝑛 + 1. 𝑖. 𝑒. 𝑤𝑗 1 𝑛 + 1 … 𝑤𝑗 32 𝑛 + 1 ,第二個階段則計算後半部內容,. 兩個階段亦同樣使用相同一塊計算電路。除此之外,計算 𝐰1 𝑛 + 1 時所獲得的 𝐳1 𝑛 被放置於 Buffer B 尾端,如同圖 3.7 (c)與(d)所述,上一步驟所計算出來的 𝐳1 𝑛 將供後續計算 𝐰2 𝑛 + 1 時使用。. GHA 單元分為兩個運作模式:訓練模式、特徵擷取模式。訓練模式會依據輸 入的來源棘波訊號經由迭代計算後調整突觸權重值,而特徵擷取模式會計算出來 源棘波訊號所對應的前兩筆主成分值,特徵擷取模式的運作如圖 3.6 PCC 單元之 運算流程,而計算出來的特徵向量會被存放於 Buffer D 當中。. 18.

(29) 第三章 棘波分類系統架構. x1(n). x33(n). x32(n). x64(n) w1,1(n+1). Reg.1. w1,33(n). y1(n) SWU Unit. w1,64(n) z1,1(n). ~. z1,64(n). (b) z1,33(n) ~. z1,64(n) w2,1(n+1) w2,32(n+1). w2,64(n+1). Reg.2 y1(n). Reg.1. w2,33(n) ~. y2(n) SWU Unit. w2,33(n+1) ~. ~. ~. w2,32(n). Buffer B. Buffer C. Reg.2 y1(n) w2,1(n). z1,33(n). ~. ~. Buffer C. y1(n). z1,32(n). Buffer B. z1,32(n). Reg.1. SWU Unit. (a) z1,1(n). w1,64(n+1). Reg.2 y2(n) ~. ~. w1,32(n). w1,33(n+1) ~. w1,32(n+1). Reg.2 y2(n) w1,1(n). Buffer B. Buffer C. ~. Buffer C. ~. ~. Buffer B. w2,64(n) z2,1(n). Reg.1 y2(n) SWU Unit. z2,33(n). ~. ~. z2,32(n). z2,64(n). (c). (d). 圖 3.7 GHA 電路中 Stage 4 SWU 單元運作流程: (a) 計算 𝐰1 𝑛 + 1 第一階段. (b) 計算 𝐰1 𝑛 + 1 第二階段. (c) 計算 𝐰2 𝑛 + 1 第一階段. (d) 計算 𝐰2 𝑛 + 1 第二階段 19.

(30) 第三章 棘波分類系統架構. 3.2 FCM 單元 FCM 單元架構中包含了六個子單元:pre-computation 單元、membership coefficients updating 單元、center updating 單元、cost function computation 單元、FCM memory 單元以及 FCM 控制單元。每個單元的運作流程將於後續一一說明。. 3.2.1 Pre-computation 單元 為了降低後續計算權重係數時的複雜度,pre-computation 單元將事先計算不 同權重係數間的共同因子,將公式(8) 改寫為: 𝑢𝑖 𝑛. ‖. 𝑛. − 𝐯𝑖 ‖−2 𝑃𝑛 −1. 19. 其中 𝑐. 𝑃𝑛. ∑ (1⁄‖. 2. 𝑛. − 𝐯𝑗 ‖ ). 20. 𝑗=1. 輸入. 𝑛. 以及質量中心點 𝐯1 … 𝐯𝑐 ,計算權重係數時皆使用相同的 𝑃𝑛 ,因此透過. pre-computation 單元事先計算出 𝑃𝑛 可降低於後續 membership coefficients updating 單元計算權重係數時的複雜度。根據公式(20) pre-computation 單元可分成兩個階 段來計算 𝑃𝑛 ,第一階段計算 ‖ ‖. 2. 𝑛. − 𝐯𝑗 ‖ ,第二階段則將前一階段所計算出的. 2. 𝑛. − 𝐯𝑗 ‖ 進行倒數運算,並將該值與 ∑𝑖−1 𝑗=1 1⁄‖. 20. 2. 𝑛. − 𝐯𝑗 ‖ 進行累加運算。.

(31) 第三章 棘波分類系統架構. 3.2.2 Membership coefficients updating 單元 根據公式(19) membership coefficients updating 單元使用 pre-computation 單元 計算出來的 𝑃𝑛 來計算權重係數。給定一筆. 𝑛. ,本單元計算出 𝑢𝑖2𝑛 i. 本單元電路亦被分作兩個階段計算,第一階段計算 ‖. 𝑛. 1 … c。. − 𝐯𝑖 ‖2 𝑃𝑛 ,第二階段將第. 一階段計算完成後的結果進行倒數與平方運算獲得 𝑢𝑖2𝑛 。. 3.2.3 Center updating 單元 本單元逐步更新計算每個叢集的質量中心點,這最大的優點是在計算質量中 心點時不需要保存龐大的權重係數矩陣。定義公式(21),逐步更新計算對於每一 筆訓練向量. 𝑘. 𝑘. 1 … 𝑛 之第 𝑖 個叢集的質量中心點。 𝑛. 𝐯𝑖 𝑛 當𝑛. 𝑛. (∑ 𝑘 𝑢𝑖2𝑘 )⁄(∑ 𝑢𝑖2𝑘 ) 𝑘=1 𝑘=1. 21. 𝑡 時, 𝐯𝑖 𝑛 即與公式(9) 中目標計算出的質量中心點 𝐯𝑖 相同。 Center updating 單元根據公式(21) 來設計,其包含了一個乘法器、一個 cell. 陣列與一個除法器。而 cell 陣列中分為兩組 cells:第一組 cell i 保存 ∑𝑛−1 𝑘=1. 2 𝑘 𝑢𝑖 𝑘. 累. 2 加結果;第二組 cell i 則保存 ∑𝑛−1 𝑘=1 𝑢𝑖 𝑘 累加結果。因此,cell 陣列中每一個 cell. 內部實際上為累加器。最後,該陣列的輸出結果會交由除法器計算出 𝐯𝑖 𝑛 。. 21.

(32) 第三章 棘波分類系統架構. 3.2.4 Cost function computation 單元 如同 center updating 單元一般,cost function computation 單元逐步計算出 cost function 𝐽 。定義 cost function 𝐽 𝑖 𝑘 為: 𝑛. 𝐽 𝑖𝑛. 𝑖. ∑ ∑ 𝑢𝑗2𝑘 ‖. 𝑘. − 𝐯𝑗 ‖. 2. 22. 𝑘=1 𝑗=1. 本電路將會接收來自 membership coefficients updating 單元的計算結果 𝑢𝑖2𝑛 與 ‖. 𝑛. − 𝐯𝑖 ‖2 ,並計算出兩者的乘積 𝑢𝑖2𝑛 ‖. 𝐽 𝑖 𝑛 。當 𝑖. 𝑐且𝑛. 𝑛. − 𝐯𝑖 ‖2 。接著根據公式(22) 累加計算出. 𝑡 時, 𝐽 𝑖 𝑛 將與公式(7) 中目標計算出的 𝐽 值相同,因. 此當所有訓練向量都傳送完畢後本電路單元即會輸出完整的 cost function 𝐽 值。. 22.

(33) 第三章 棘波分類系統架構. 3.2.5 FCM Memory 單元 此單元用來存放 FCM 各叢集的質量中心點,於 on-chip center memory 單元中 被分為兩個記憶體區塊 (Memory Bank 1、Memory Bank 2)。Memory Bank 1 存放 當下 FCM 計算過程中所使用到的 𝐯1 … 𝐯𝑐 ,而 Memory Bank 2 則存放由 center updating 單元逐步更新計算出的 𝐯1 … 𝐯𝑐 。僅只有存放於 Memory Bank 1 的質量 中心點會被 pre-computation 單元與 membership coefficients updating 單元所使用, 用來計算出權重係數。而由 center updating 單元所計算出新的質量中心點則會暫 存於 Memory Bank 2 中。特別注意的是,除非所有輸入的特徵向量. 𝑛. 𝑛. 1 …𝑡 都. 已計算完畢,否則 Memory Bank 2 中所存放被更新後的質量中心點將不會更新取 代至 Memory Bank 1 中。. 23.

(34) 第三章 棘波分類系統架構. 3.2.6 FCM 單元運作流程 為了能夠簡化說明 FCM,圖 3.8 為針對兩個叢集 ( 𝑐. 2 所設計的 FCM 電. 路架構圖,該電路可將來源棘波所擷取到的特徵向量分為兩個叢集,針對未來可 能需要支援更多的叢集數可輕易地透過增加 center updating 單元中 cell 數目以及 Memory 單元中 memory banks 大小來進行延伸。 Pre-computation Unit (A) (B). -. ×. Inverse. (C). ACC. Membership coefficients updating Unit -. ×. ×. Inverse. ×. (D) Cost function computation Unit (H). ×. ACC Center updating Unit ACC (E) ACC ÷. ×. ACC (F). Decoder. ACC. On-Chip Center RAM (A) Enable from Control Unit. Mem Bank 1. 圖 3.8 FCM 電路架構 ( 𝑐 24. Mem Bank 2. 2). (G).

(35) 第三章 棘波分類系統架構. 針對叢集數 𝑐. 2 時,FCM 電路運作可被分為四個階段來進行,圖 3.9 說明. 了 controller 與 FCM 電路所對應的狀態圖。表 3.1 說明了本電路於每個階段不同 Node 間所產生的對應訊號。表 3.1 中 8 個 Nodes (Nodes A-H) 所對應的位置標示 於圖 3.8 中,為了說明方便,表 3.1 僅舉例說明前兩筆特徵向量. 1. 2. 的運作流. 程,其餘特徵向量的運作模式亦比照此方式運行。. 表 3.1 針對前兩筆特徵向量. State. 1. 2. FCM 單元運作流程. Node Name A. B. C. D. E. F. G. H. State 1. 𝐯1. 1. ╳. ╳. ╳. ╳. ╳. ╳. State 2. 𝐯2. 1. 𝑃1. ╳. ╳. ╳. ╳. ╳. State 3. 𝐯1. 1. 𝑃1. 𝑢12 1. ╳. ╳. ╳. ╳. State 4. 𝐯2. 1. 𝑃1. 𝑢22 1. 𝑢12 1. 𝑢12 1. 1. 𝐯1 1. 𝐽 11. State 1. 𝐯1. 2. ╳. ╳. 𝑢22 1. 𝑢21 1. 1. 𝐯2 1. 𝐽 21. State 2. 𝐯2. 2. 𝑃2. ╳. ╳. ╳. ╳. 𝐽 21. State 3. 𝐯1. 2. 𝑃2. 𝑢12 2. ╳. ╳. ╳. 𝐽 21. State 4. 𝐯2. 2. 𝑃2. 𝑢22 2. 𝐯1 2. 𝐽 12. ∑. 2. 𝑢12 𝑘. 𝑘=1. 25. ∑. 2. 𝑢𝑖2𝑘. 𝑘=1. 𝑘.

(36) 第三章 棘波分類系統架構 Initialization 1. Memory Bank 1 ← Initial v1 and v2 2. n <= 1 State 1 1. Read fn from GHA circuit 2. Read v1 from Memory Bank 1 3. Start to compute Pn 4. Compute v2(n-1) and J(2,n-1) 5. Memory Bank 2 ← v2(n-1) State 2 1. Read v2 from Memory Bank 1 2. Finish the computation of Pn State 3 1. Read v1 from Memory Bank 1 2. Compute. State 4 1. Read v2 from Memory Bank 1 2. Compute 3. Compute v1(n) and J(1,n) 4. Memory Bank 2 ← v1(n). n <= n+1. No. n=t? Yes. Memory Bank 1 ← Memory Bank 2. Stop FCM Training ?. No. Yes Stop. 圖 3.9 FCM 單元運作流程圖. 26. n <= 1.

(37) 第三章 棘波分類系統架構. FCM 電路中,每筆由 GHA 傳送來的特徵向量. 𝑛. 將於 Node B 處停留 4 個. stages,而 Node A 為每筆從 Memory 單元獲得的質量中心點 𝐯𝑖 。 表 3.1 中給定一筆特徵向量. 𝑛 ,state. 1 與 state 2 經由 pre-computation 單元計. 算出 𝑃1 (Node C 處),接著 state 3 與 state 4 membership coefficients updating 單元分 別計算出權重係數 𝑢12 1 𝑢22 1 ,並於圖 3.8 中 Node D 處輸出。此外根據由 state 3 中獲得的 𝑢12 1 ,center updating 單元與 cost function computation 單元將會分別於 Node G 與 H 逐步計算出新的質量中心點 𝐯1 1 與 𝐽 1 1 。最後 state 4 中獲得的 𝑢22 1 將會於計算. 2. 時之 state 1 計算出 𝐯2 1 與 𝐽 2 1 ,同時 𝑃2 亦會於該 state 中. 進行計算。而後續針對. 2. 計算時 state 2-4 之運作流程與計算. 1. 時相同,詳細的運. 作模式流程圖可見圖 3.9。. 3.3 Global 控制器單元 棘波分類電路利用 Global 控制器 (Global Controller) 單元來負責操控 GHA 與 FCM 電路間的資料傳輸情形,如圖 3.1 所示。圖 3.10 為 Global Controller 之狀 態圖,棘波訊號 𝐱 𝑛. 𝑛. 1 … 𝑡 被傳輸至 GHA 電路訓練出權重向量 𝐰1 … 𝐰𝑝 ,. 待訓練完畢後相同的棘波訊號 𝐱 𝑛 出其特徵向量. 𝑛. 𝑛. 𝑛. 1 … 𝑡 再度被傳送至 GHA 電路當中計算. 1 … 𝑡。. 27.

(38) 第三章 棘波分類系統架構. Deliver x(n),n=1,…,t,from Onchip RAM to GHA Unit repeatedly for GHA training until GHA training process has completed. 1. Deliver x(n),n=1,…,t,from Onchip RAM to GHA Unit for GHA feature extraction 2. GHA Unit compute feature vector fn,n=1,…,t. Deliver fn,n=1,…,t,from GHA Unit to FCM Unit repeatedly for FCM training until FCM training process has completed. Return the center vi,i=1,…,c to NIOS CPU. 圖 3.10 Global 控制器單元運作流程圖. 直到 GHA 電路計算完所有特徵向量 FCM 電路才會被啟動,特徵向量. 𝑛. 𝑛. 𝑛. 𝑛. 1 … 𝑡 並存放於 Buffer D 後,. 1 … 𝑡 由 GHA 單元一次傳送一筆至 FCM. 單元中訓練調整出新的質量中心點 𝐯1 … 𝐯𝑐 。持續重複傳送相同的特徵向量 𝑛. 𝑛. 1 … 𝑡 直到 FCM 訓練完畢,最後 FCM 單元訓練完成後所獲得的質量中. 心點 𝐯1 … 𝐯𝑐 將被用來分類棘波訊號。. 28.

(39) 第三章 棘波分類系統架構. 3.4 FPGA-Based 棘波分類系統 本論文提出的架構為建置於 SOPC 系統中使用者客製化邏輯電路(custom user logic),圖 3.11 為本系統與 SOPC 平台之關係圖,系統中包含了 NIOS CPU [18], DMA controller 與 on-chip memory。利用 DMA 將所有存放於 on-chip memory 中 的棘波訊號經由 Avalon bus 傳送至客製化電路當中,這可使得本系統對於記憶體 存取的 overhead 最小化。軟核 CPU 僅執行簡單的指令供 GHA 與 FCM 訓練時使 用,這些指令僅負責 SOPC 平台中不同元件間的溝通,NIOS CPU 本身並不參與 GHA 與 FCM 的計算。當所有訓練向量傳送完畢後,軟核 CPU 從客製化電路中 接收訓練結果 𝐰1 … 𝐰𝑝 與 𝐯1 … 𝐯𝑐 。. Altera FPGA S. NIOS Processor M. Ethernet MAC. DMA Controller. M. M. Avalon Bus. S. S. S. Spike Sorting Circuit. On-chip Memory. Reading Spike Circuit. 圖 3.11 FPGA-Based 棘波分類系統 29.

(40) 第四章 實驗數據與效能比較. 第四章 實驗數據與效能比較 4.1 開發平台與實驗環境 本論文提出的棘波分類硬體架構實現於 Altera 公司所設計的 Cyclone IV GX DK-DEV-4CGX150N 開發板中,如圖 4.1 所示。該開發板採用 Cyclone IV GX EP4CGX150DF31 FPGA 晶片, Cyclone 系列為 Altera 公司針對低階市場所推出 FPGA 晶片,其特點為低功率消耗以及低開發成本,非常符合棘波分類晶片的需 求。同時,拜製程進步所賜 Cyclone IV FPGA 採用 65 奈米製程,使得功率消耗較 以往 FPGA 降低約 30%。. 圖 4.1 Cyclone IV GX DK-DEV-4CGX150N 開發板 而利用 FPGA 可重複修改電路設計與快速驗證的特性,使得棘波分類晶片可 以快速且容易的更新演算法則,同時低開發成本也使 FPGA 變得更具優勢。表 4.1 30.

(41) 第四章 實驗數據與效能比較. 整理了本實驗開發板中所提供的相關硬體資源,也因為其提供了大量的硬體資源 以及與周邊元件豐富的溝通介面,使得使用者得以輕鬆的將許多複雜的演算法則 整合至開發板當中,成為一套完整且獨立的嵌入式系統。. 表 4.1 軟硬體實驗平台規格整理. Hardware FPGA Development Board. Software Intel i5-2467M. Process. LEs. Embedded Memory (Kbits). 65 nm. 149760. Process. 32 nm. Multipliers. User I/O. Package Type. 6480. 360. 475. 896-pin FBGA. # of Cores. # of Threads. Clock Speed. L3 Cache. Max TDP. 2. 4. 1.6 GHz. 3 MB. 17 W. 18-bit x 18-bit. 本論文使用 Altera Quartus II 10.1 版本搭配 Verilog 硬體描述語言進行設計與 開發,並且透過 Altera SOPC Builder [19] 建立客製化 SOPC 系統,於 SOPC 中加 入軟核 CPU,DMA Controller,on-chip memory 以及自行開發撰寫的棘波分類系 統。棘波分類系統於 SOPC 系統中被視為客製化邏輯電路,透過 Altera 所提供的 匯流排 (Avalon bus) 與其它周邊元件溝通。同時,使用 Altera NIOS II IDE 撰寫 C 語言程式碼,並利用其所提供的函式庫、驅動程式與 FPGA 開發板溝通,加速 SOPC 系統的開發,SOPC 系統開發流程圖可見圖 4.2。. 31.

(42) 第四章 實驗數據與效能比較. 軟體部分本論文使用 C 語言實現 GHA 與 FCM 演算法,並運作於 CPU Intel i5-2467M 當中。 i5-2467M 為 Intel 所開發低電壓版本的中央處理器,採用雙核心 架構,主打其低功率消耗與高速計算能力,這部分與棘波分類系統需求雷同。因 此本論文將其效能與本論文架構納入比較,詳細 Intel i5-2467M 規格可見表 4.1。. Hardware Design. Software Design. Design Custom Logic. Use NIOS II IDE to setup a software project. Create a new SOPC project. Write the C program. Add the Custom Logic to the SOPC project. Compile the C program. Compile the SOPC system. Download the compiled code to the SOPC system. Program the FPGA in the development board. Observe the execution results from NIOS II IDE. 圖 4.2 SOPC 系統開發流程. 32.

(43) 第四章 實驗數據與效能比較. 4.2 實驗數據呈現與討論 為了量測針對棘波分類本論文所提出的架構之實際效能,本論文採用由 [17] 所開發用來產生神經元訊號的模擬器作為測試資料來源,該模擬器提供了大量的 參數以用來模擬不同的棘波活動情形,也因為其可針對許多環境變數進行設定, 使得實驗結果能更進一步的進行分析與比較。本論文實驗利用該模擬器產生出不 同信噪比 (Signal-to-Noise Ratio ,SNR) 之棘波序列,取樣率 (Sampling Rate) 定為 24000 取樣點/秒,而每個棘波訊號長度為 2.67 毫秒,這也代表著每個棘波訊號擁 有 64 個取樣點。因此,於電路設計當中 GHA 訓練向量維度 𝑚 數𝑝. 2 ,學習率 𝜂. 64 ,主成分個. 2−23 。. 電路中 GHA 與 FCM 的運算資料皆採用定點數格式,在不同精度的情況下對 於分類結果影響的比較可見表 4.2。當棘波數目定為 800 筆,表 4.2 比較了由不同 數目神經元所產生的棘波序列,對於本電路分類正確率的影響,同時亦分別比較 了當 SNR=10,SNR=20,SNR=100 時本電路的分類正確率。分類正確率 (Classification Correct Rate ,CCR) 定義為所有棘波訊號中被正確分類的棘波訊號筆數。從 表 4.2 中可清楚看出 GHA 於 17 bits 的定點數與雙倍精確度浮點數有著相似的分 類正確率,而 8 bits 定點數對於 FCM 即有著足夠的解析度來進行分類運算。. 33.

(44) 第四章 實驗數據與效能比較. 表 4.2 不同精度條件下分類正確率比較 Number of Clusters. c=2. c=3. c=4. Precission. Interference. GHA. FCM. SNR=10. SNR=20. SNR=100. Floating. Floating. 99.6%. 99.6%. 99.6%. 17 bits. Floating. 99.6%. 99.6%. 99.6%. 17 bits. 8 bits. 99.6%. 99.6%. 99.6%. Floating. Floating. 95.9%. 96.3%. 96.4%. 17 bits. Floating. 95.8%. 96.4%. 96.4%. 17 bits. 8 bits. 95.9%. 96.3%. 96.4%. Floating. Floating. 92.9%. 94.1%. 94.1%. 17 bits. Floating. 92.7%. 94.1%. 94.1%. 17 bits. 8 bits. 93.2%. 94.1%. 94%. 根據表 4.2 實驗比較結果可以看出 GHA 採用 17 bits 定點數運算,FCM 採用 8 bits 定點數運算與兩者皆採用雙倍精確度浮點數運算有著相似的分類正確率,因 此本論文對於 GHA 與 FCM 兩塊電路分別採用 17 bits 與 8 bits 定點數運算。. 為了更進一步說明本論文架構於不同條件下 CCR 的表現,圖 4.3 說明了於不 同 SNR 情況下對於來源棘波訊號的影響,由圖 4.3 可以清楚地看到當 SNR 小於 10 時因為大量雜訊的干擾使得分類變得更加困難。圖 4.4 說明了 2 個神經元所形 成的棘波序列其特徵向量散佈情形以及 SNR=10 時本電路採用有限精度 17 bits 34.

(45) 第四章 實驗數據與效能比較. GHA 與 8 bits FCM 的分類結果;圖 4.5、圖 4.6 則分別為 3 個與 4 個神經元所形 成的棘波序列其特徵向量之散佈圖與本電路之分類結果。根據圖 4.3、圖 4.4、圖 4.5 與圖 4.6 可以看出本論文所提出的 GHA 與 FCM 電路架構對於大量雜訊干擾 時仍可以正確地將棘波訊號給分類出來。詳細各棘波訊號實際波形與雜訊干擾情 形以其棘波特徵值散佈狀況可見圖 4.3、圖 4.4、圖 4.5 與圖 4.6。. 35.

(46) 第四章 實驗數據與效能比較. Spike for Target Neuron 1 with SNR=10. 250. 250. 200. 200 Amplitude. Amplitude. Spike for Target Neuron 1 with SNR=100. 150 100. 150 100 50. 50. 0. 0 1. 8. 15. 22. 29. 36. 43. 50. 57. 1. 64. 8. 15. 22. 29. Time. 250. 250. 200. 200. 150 100. 50. 57. 64. 57. 64. 57. 64. 57. 64. 150 100 50. 50. 0. 0 1. 8. 15. 22. 29. 36. 43. 50. 57. 1. 64. 8. 15. 22. 29. Time. 36. 43. 50. Time. Spike for Target Neuron 3 with SNR=100. Spike for Target Neuron 3 with SNR=10. 250. 250. 200. 200 Amplitude. Amplitude. 43. Spike for Target Neuron 2 with SNR=10. Amplitude. Amplitude. Spike for Target Neuron 2 with SNR=100. 150 100. 150 100 50. 50. 0. 0. 1. 8. 15. 22. 29. 36. 43. 50. 57. 1. 64. 8. 15. 22. 29. Time. 36. 43. 50. Time. Spike for Target Neuron 4 with SNR=10. Spike for Target Neuron 4 with SNR=100 250. 250. 200. 200 Amplitude. Amplitude. 36. Time. 150 100. 150 100 50. 50. 0. 0 1. 8. 15. 22. 29. 36. 43. 50. 57. 64. Time. 1. 8. 15. 22. 29. 36 Time. 圖 4.3 來自不同神經元的棘波訊號 (SNR=10,SNR=100) 36. 43. 50.

(47) 第四章 實驗數據與效能比較. Ground Truth,SNR=10 260. 240 220 200. y2 180. Target Neuron 1. 160. Target Neuron 2. 140 120 100. 0. 20. 40. 60. 80. 100. y1 (a). FCM Clustering Result,SNR=10 260. 240 220 200. y2 180. Target Neuron 1. 160. Target Neuron 2. 140. FCM codeword. 120 100. 0. 20. 40. 60. 80. 100. y1 (b) 圖 4.4 棘波主成分值 𝑦1 𝑦2 投影至特徵平面之散佈圖 ( 𝑐 (a) 棘波正確分類結果. 37. (b) FCM 分類結果. 2 ):.

(48) 第四章 實驗數據與效能比較. Ground Truth,SNR=10 260 240 220. y2. Target Neuron 1 200. Target Neuron 2. 180. Target Neuron 3. 160 0. 20. 40. 60. 80. 100. y1 (a). FCM Clustering Result,SNR=10 260 240. 220. Target Neuron 1. y2. Target Neuron 2. 200. Target Neuron 3 180. FCM codeword. 160 0. 20. 40. 60. 80. 100. y1 (b) 圖 4.5 棘波主成分值 𝑦1 𝑦2 投影至特徵平面之散佈圖 ( 𝑐 (a) 棘波正確分類結果. 38. (b) FCM 分類結果. 3 ):.

(49) 第四章 實驗數據與效能比較. Ground Truth,SNR=10 260. 240 220. Target Neuron 1. y2. Target Neuron 2. 200. Target Neuron 3 180. Target Neuron 4. 160 0. 20. 40. 60. 80. 100. y1 (a). FCM Clustering Result,SNR=10 260. 240 Target Neuron 1. 220. y2. Target Neuron 2. 200. Target Neuron 3. 180. Target Neuron 4. FCM codeword 160 0. 20. 40. 60. 80. 100. y1 (b) 圖 4.6 棘波主成分值 𝑦1 𝑦2 投影至特徵平面之散佈圖 ( 𝑐 (a) 棘波正確分類結果. 39. (b) FCM 分類結果. 4 ):.

(50) 第四章 實驗數據與效能比較. 此外,本棘波分類電路不僅擁有高分類正確率,同時亦保有低面積複雜度, 表 4.3 說明了本電路的面積複雜度,因為加法器、乘法器與暫存器為 GHA 與 FCM 架構中的基本區塊,表 4.3 分成了三個類別 (加法器數量、乘法器數量、暫存器 數量) 來分別進行比較。而從表 4.3 中可以看出加法器與乘法器數量將與主成分 個數 𝑝 以及每個區塊中包含的元素 𝑞 呈線性成長關係,與向量維度 𝑚 、叢集個數 𝑐 以及訓練向量個數 𝑡 無關。. 表 4.3 本論文提出之棘波分類系統面積複雜度. GHA. FCM. Total. Adders. 𝛰 𝑞. 𝛰 𝑝. 𝛰 𝑝+𝑞. Multipliers. 𝛰 𝑞. 𝛰 𝑝. 𝛰 𝑝+𝑞. Registers. 𝛰 𝑝𝑚 + 𝑝𝑡. 𝛰 𝑝𝑐. 𝛰 𝑝 𝑚+𝑡+𝑐. 因為棘波分類電路必須存放來源棘波訊號、突觸權重向量以及特徵向量,因 此暫存器數量將與 𝑝 𝑚 𝑐 𝑡 呈線性成長。表 4.4 說明了針對棘波分類應用 𝑝. 2𝑚. 64 𝑐. 3與𝑡. 800 時的硬體資源消耗。本實驗設計於 Altera Quartus. II with SOPC Builder [19] 與 NIOS II IDE 平台中,所使用的 FPGA 開發板為 Altera Cyclone IV DK-DEV-4CGX150N。表 4.4 顯示了三種不同的資源比較:Logic Elements (LEs)、embedded multiplier 以及 memory bits。. 40.

(51) 第四章 實驗數據與效能比較. 表 4.4 本論文提出之棘波分類系統硬體資源消耗. GHA Circuit. FCM Circuit. Spike Sorting Circuit. Entire SOPC. Logic Elements. 15572/149760. 4441/149760. 21985/149760. 30603/149760. (10.40%). (2.97%). (14.68%). (20.43%). Embedded. 128/720. 23/720. 151/720. 155/720. Multiplier. (17.78%). (3.19%). (20.97%). (21.53%). Memory bits. 63488/6635520. 113520/6635520. 193444/6635520. 1050380/6635520. (0.96%). (1.71%). (2.91%). (15.83%). 其中 GHA 與 FCM 架構中 LEs 被用來實現加法器、乘法器與暫存器。而 LEs、 embedded multiplier 與 memory bits 被用來實現 SOPC 系統中的 NIOS CPU。另外, GHA 與 FCM 電路中的乘法器使用 embedded multiplier 來實現。從表 4.4 中可以 看出單獨本電路架構所消耗的硬體資源,本電路架構加入 SOPC 後硬體資源消耗 僅微幅成長,詳細各元件之資源消耗比較可見表 4.4。. 本論文所提出的 GHA 與 FCM 電路與現存既有的相關電路設計比較後有著高 速計算與低功率消耗的優點,由於所採用的演算法與實作平台的差異使得要直接 地將其拿來比較是比較困難的,表 4.5 當中本論文所提出的 GHA 架構與實現於 Smartdust 中的架構 [4] 比較後有著明顯較低的 CPU 執行時間,並有著相近的功. 41.

(52) 第四章 實驗數據與效能比較. 率消耗。而本論文所提出的 GHA 電路架構與 GHA 演算法以軟體實現於 Intel i5 CPU 中比較後有著低 CPU 執行時間與低功率消耗。. 表 4.5 GHA 電路與 Software-Based 之特徵擷取法則比較 Proposed. PCA Software. PCA Software. GHA. Implementation. Implementation. Architecture. [4]. [4]. 64. 64. 64. 64. 800. 800. 800. 800. 50 MHz. 13 MHz. 416 MHz. 1.60 GHz. 4.846. 214521.45. 8333. 36.41805. 217.12. 92.4092. 943.71. 1116. 22.593. 30.055. 306.93. N/A. SmartDust. SmartDust. iMote2. iMote2. GHA Software Implementation. Number of Samples per Spike Number of Spikes Clock Rate Computation Time (ms) Power Consumption (mW) Power Density 2. (mW/cm ) FPGA Platform. Cyclone IV EP4CGX150. General Purpose CPU Intel i5-2467M. 除了表 4.5 與軟體設計比較之外,本論文於表 4.6 亦針對 throughput 與功率消 耗與 ASIC-based 以及 FPGA-based 的硬體設計作比較,ASIC-based 架構 [5] 基於. 42.

(53) 第四章 實驗數據與效能比較. PCA 演算法設計。該表中 throughput 定義為每分鐘可以訓練的 channel 數目,由 於本論文運作於較高的時脈底下,於表 4.5 中可以看出本論文所提出的架構與其 比較後有著較高的 throughput。另外定義 normalized throughput 為每 MHz 下每分 鐘可以訓練的 channel 數目,再度針對 normalized throughput 比較後可以發現本論 文架構依舊有著較高的 normalized throughput。此外,架構 [5] 使用 PCA 演算法 必須先計算訓練資料的共變異數矩陣 (covariance matrix),然而其計算時間並未包 含進數據當中,相反地,對 GHA 而言並不需要去計算共變異數矩陣,使得 GHA 對於特徵擷取有著較佳的效率。. 表 4.6 GHA 電路與 Hardware-Based 之特徵擷取法則比較. Number of Samples per Spike Clock Rate Throughput (channels/min) Normalized Throughput (channels/min/MHz) Power Consumption (mW). Proposed. ASIC-Based PCA. FPGA-Based GHA. GHA. Implementation. Implementation. Architecture. [5]. [6]. 64. 64. 64. 50 MHz. 1 MHz. 70 MHz. 12381. 90. 11928. 247.62. 90. 170.4. 217.12. 0.521. N/A. FPGA Platform. ASIC. Cyclone IV EP4CGX150 43. 90 nm 1P9M. FPGA Xilinx Virtex6 XC6VSX315T.

(54) 第四章 實驗數據與效能比較. 而對於 FCM 的部分,本論文亦針對執行時間與功率消耗進行了比較,詳細 內容請見表 4.7。. 表 4.7 FCM 電路與 Software-Based 之分群法則比較 K-Means. K-Means. Software. Software. FCM Software. Implementation. Implementation. Implementation. [4]. [4]. 800. 800. 800. 800. 50 MHz. 13 MHz. 416 MHz. 1.60 GHz. 3.5. 11597.359. 333.33. 57.4726. 196.42. 85.809. 933.99. 672.22. 20.439. 27.908. 303.768. N/A. SmartDust. SmartDust. iMote2. iMote2. Proposed FCM Architecture Number of Feature Vector Clock Rate Computation Time (ms) Power Consumption (mW) Power Density 2. (mW/cm ) FPGA Platform. Cyclone IV EP4CGX150. General Purpose CPU Intel i5-2467M. 架構 [4] 採用 K-Means 演算法並實作於 Smartdust 平台中,由表 4.7 可以看 出本論文架構與其比較有著較低的計算時間以及相似的功率消耗。同時,本論文 採用 FCM 亦避免了傳統 K-Means 容易落入局部最佳化的缺點。而與實現於 Intel i5 中的 FCM 軟體演算法作比較,本論文所提出的架構不論在計算時間或是功率消 耗上都有著明顯地優勢。 44.

(55) 第四章 實驗數據與效能比較. 表 4.8 本論文提出之棘波分類系統功率消耗與功率密度. Platform. Chip Area. Cyclone IV. 9.61. EP4CGX150. cm2. Power Consumption. Spike Sorting System. Power Density. GHA Circuit. FCM Circuit. (GHA+FCM+NIOS CPU). Spike Sorting System. 217.12 mW. 196.42 mW. 284.50 mW. 29.60 mW/cm2. 最後,表 4.8 整理了本論文所提出的棘波分類系統功率消耗之相關資訊,由 於棘波分類晶片必須植入於體內,因此在高速計算的同時熱消散也必須在設計的 考量範圍內。為了避免於高速計算時所產出過多廢熱對腦細胞組織造成永久的傷 害,每單位面積內所消耗的功率稱作功率密度 (Power Density),論文 [20] 針對 於功率密度設定了一個安全閥值 (62 mW/cm2) ,由表 4.8 可看出本論文所提出運 作於 FPGA 中的棘波分類晶片其功率密度小於安全閥值一半以下,對於人體而言 屬於安全範圍內。因此,本論文所提出的架構不僅擁有高度資源共享、高速計算, 低功率消耗…等優點,同時低功率密度使得晶片植入體內後並不會對人體細胞造 成損害。. 45.

(56) 第五章 結論. 第五章 結論. 近年來關於大腦活動情形的研究越來越熱門,目前也提出了許多針對腦波訊 號處理的相關研究。本論文於 FPGA 中實現了一套棘波分類系統,透過 Local Ram 的配置以及適當的記憶體管理機制大幅增進了本系統對於記憶體存取的效率,因 此就算於低時脈運作下本系統仍然能擁有著不錯的輸出產量。同時,高度資源共 享使得本系統對於輸出產量與資源消耗取得了一個較佳的平衡點,同時兼具有低 area cost 與即時運算的這兩項優點。. 根據前一章比較的結果,可以知道本論文所提出的架構不論在分類正確率或 計算速度上與現有提出的設計 [4,5,6] 相較後皆都有著不錯的效能表現。以 FPGA 來實現本論文電路架構可能會使得功率消耗比以 ASIC 實現來得大,但本系統之 功率密度仍舊在人體安全範圍以內,因此雖然功率消耗不如 ASIC 來得低,但對 於植入體內的需求亦能滿足。而 FPGA 能夠提供快速燒錄驗証的優點,使得整個 開發過程能夠更加快速,可重複燒錄的特性亦提供了未來需要更新辨識法則時更 多的彈性。. 實際情況下人體體內是一個擁有大量雜訊干擾的複雜環境,因此一個良好的 棘波分類系統設計必須要能夠擁有抗雜訊的能力,根據實驗結果表示本論文所提 46.

(57) 第五章 結論. 出的系統架構不僅僅能夠高速計算棘波特徵值,並根據擷取到的棘波特徵值來進 行正確分類,同時在雜訊強度較大的情形下也能擁有不錯的分類正確率,使得本 系統架構在棘波分類之應用上更具優勢。. 總結來說,本論文所提出針對棘波分類的應用之電路架構對於該領域的確是 有其助益,與現有的架構相比後更有著不少的優勢。因此,可以說本論文所設計 的棘波分類系統是一項有實際需求且有效率的電路架構設計。. 47.

(58) 參考文獻. 參考文獻. [1] M.S. Lewicki,“A review of methods for spike sorting: the detection and classification of neural action potentials,” Network Computer Neural System, Vol. 9, pp. R53R78, 1998.. [2] S. Haykin, Neural Networks and Learning Machines, 3rd ed.; Pearson: Upper Saddle River, NJ, USA, 2009.. [3] T.D. Sanger, “Optimal unsupervised learning in a single-layer linear feedforward neural network,” Neural Network, Vol. 12, pp.459-473, 1989.. [4] Y. Sun, S. Huang, J. J. Oresko, and A. C. Cheng, “Programmable Neural Processing on a Smartdust for Brain-Computer Interfaces,” IEEE Trans. Biomedical Circuits and Systems, Vol. 4, pp.265-273, 2010.. [5] T.-C. Chen, W. Liu and L.-G. Chen,“VLSI Architecture of Leading Eigenvector Generation for On-chip Principal Component Analysis Spike Sorting System,” Proc. 30th Annual International IEEE EMBS Conference Vancouver, British Columbia, Canada, pp.3192-3195, 2008.. [6] B. Yu, T. Mak, X. Li, F. Xia, A. Yakovlev, Y. Sun, C.-S. Poon,“A Reconfigurable Hebbian Eigenfilter for Neurophysiological Spike Train Analysis,” Proc. International Conference on Field Programmable Logic and Applications, pp.556-561, 2010.. 48.

(59) 參考文獻. [7] M. Aghagolzadeh, F. Zhang, and K. Oweiss,“An Implantable VLSI Architecture for Real Time Spike Sorting In Cortically Controlled Brain Machine Interfaces,” Proc. 32nd Annual International Conference of the IEEE EMBS Conference, Buenos Aires, Argentina, pp.1569-1572, 2010.. [8] A. M. Kamboth, M. Raetz, K. G. Oweiss, and A. Mason, “Area-power efficient VLSI implementation of multichannel DWT for data compression in implantable neuroprosthetics,” IEEE Trans. Biomedical Circuits and Systems, Vol. 1, pp.128-135, 2007.. [9] A. M. Kamboh, and A. J. Mason, “On-Chip Feature Extraction for Spike Sorting in High Density Implantable Neural Recording Systems,” Proc. IEEE Biomedical Circuits and Systems Conference, pp.13-16, 2010.. [10] Y. Yang, and A. J. Mason,“On-Chip Spike Clustering & Classification using Self Organizing Map for Neural Recording Implants,” Proc. IEEE Biomedical Circuits and Systems Conference, pp.145-148, 2011.. [11] S.-J. Lin, Y.-T. Hung, and W.-J. Hwang, “Efficient hardware architecture based on generalized Hebbian algorithm for texture classification,” Neurocomputing, pp.3248-3256, 2011.. [12] N. Sudha, A.R. Mohan, P.K. Meher, “A self-configurable systolic architecture for face recognition system based on principal component neural network,” IEEE Trans. Circuits Syst. Video Technol, Vol. 21, pp.1071-1084, 2011.. [13] S. -J. Lin, W. -J. Hwang, andW. -H. Lee, “FPGA Implementation of Generalized Hebbian Algorithm for Texture Classification,” Vol. 12, pp.6244-6268, Sensors, 2012.. 49.

(60) 參考文獻. [14] J. Lazaro, J. Arias, J.L. Martin, C. Cuadrado, A. Astarloa, “Implementation of a modified fuzzy c-means clustering algorithm for realtime applications,” Microprocessor and Microsystems, Vol. 29, pp.375-380, 2005.. [15] H. -Y. Li, W. -J. Hwang, and C. -Y. Chang, “Efficient Fuzzy C-Means Architecture for Image Segmentation, Sensors, Vol. 11, pp.6697-6718, 2011.. [16] Y.-J. Yeh, H.-Y. Li, C.-Y. Yang, and W.-J. Hwang, ”Fast Fuzzy C-Means Clustering Based on Low-Cost High-Performance VLSI Architecture in Reconfigurable Hardware,” pp.112-118, IEEE International Conference on Computational Science and Engineering, 2010.. [17] L. S. Smith and N. Mtetwa, “A tool for synthesizing spike trains with realistic interference,” Vol. 159, pp.170-180, Journal of Neuroscience Methods, 2007.. [18] Altera Corporation. NIOS II Processor Reference Handbook ver 10.0. 2010. Available online: http://www.altera.com/literature/lit-nio2.jsp (accessed on 3 May 2012).. [19] Altera Corporation. SOPC Builder User Guide. 2011. Available online:http://www.altera.com/literature/lit-sop.jsp (accessed on 3 May 2012).. [20] W. Reichert, “Indwelling neural implants: Stategies for contending with the in vivo environment,” in BMI-Related Thermal Studies. Boca Raton, FL: CRC, 2007.. 50.

(61)

參考文獻

相關文件

學習範疇 主要學習成果 級別 級別描述 學習成果. 根據學生的認知發展、學習模式及科本

使用人工智慧框架基礎(Frame-based)的架構,這些努力的結果即為後來發展的 DAML+OIL。DAML+OIL 是 Web Resource 中可以用來描述語意的 Ontology 標 記語言,它是以 W3C

(2)在土壤動力學中,地震或地表振動產生之振動波,可分為實 體波(Body wave) 與表面波(Surface wave) 。實體波(Body wave)分為壓力波 P 波(Compressional wave)(又稱縱波)與剪

本論文結合了 GPU-FPM 以及 Bitmap 的優點,並利用 Multi-GPU 架構提出 Multi-GPU CSFPM 的演算法,由於 CSFPM 如同 GPU-FPM

由於 Android 作業系統的開放性和可移植性,它可以被用在大部分電子產品 上,Android 作業系統大多搭載在使用了 ARM 架構的硬體設備上使裝置更加省電

其硬體架構如圖 9.3 所示。本實驗最主要的目的是要將之前學長所做的 GPS/INS 整合 部分中的加速儀用

針對 WPAN 802.15.3 系統之適應性柵狀碼調變/解調,我們以此 DSP/FPGA 硬體實現與模擬測試平台進行效能模擬、以及硬體電路設計、實現與測試,其測 試平台如圖 5.1、圖

而在利用 Autocloning 的方法,製作成金字塔形狀的抗反射 結構方面。分成非次波長結構和次波長結構來加以討論。在非次波長 結構時,我們使用