本論文結合 [17] 的 Normalized Correlator 硬體電路以及 [18] 的 OSort 演算法硬 體電路,並且以模擬器所產生之數據作為測試資料,將兩者以第 三 章第 四 節所 述之控制電路整合控制,故產生了可以連續輸入棘波序列的整合電路。實做 上棘波偵測選用 Normalized Correlator,相較於其他的棘波偵測法則,對於 SNR 相當的敏感,準確率與誤判率都須在高 SNR 為前提之下才行,但 Normalized Correlator 具有在不同 SNR 環境下能高準確率,低誤判率偵測的優點,配合能同 時具備特徵擷取還有分類能力的 OSort 演算法,且此演算法還具有能夠即時分類 (online sorting) 的能力。
在這邊先分析兩個硬體電路的面積複雜度分析,Normalized Correlator 硬 體電路分為 Filter Unit、Block Energy Computation Unit、Correlator Unit、Thresh-olding Unit 以及 Switch Buffer 幾個部份,而 OSort 演算法硬體電路則為 Buffer、
Distance Computation Unit 以及 Mean Updating Unit 幾個部份。如表4.4所示,N 為 棘波之長度 (64 個 sample),亦可稱作 Block Dimension,而 q 為 Template 之個數,
目前是設計為兩個 Template,還有 L 則是指 Switch Buffer 的大小,也就是 Switch Buffer 可以儲存幾個被 Normalized Correlator 電路偵測出來的棘波,根據這些面 積複雜度的分析來看,L 的大小對整體面積的影響相當的大,並且也會影響到下 一節要提的的效能,是本章的重要討論之一。
表 4.4: 各單元面積消耗分析 (a) Normalized Correlator Circuit
Filter Unit Block Energy
Multipliers O(1) O(1) O(qN ) O(1) 0
Dividers 0 0 O(1) 0 0
Comparators 0 0 0 O(1) 0
Registers O(1) O(N ) O(qN ) O(1) O(LN )
(b) OSort Algorithm Circuit
Buffer Distance
Computation Unit
Mean Updating Unit
Adders 0 O(1) O(1)
Multipliers 0 O(1) O(1)
Dividers 0 0 O(1)
Comparators 0 O(1) 0
Registers O(qN ) O(1) O(1)
緊接著實際的將這些電路繞線布局,由 EDA Tool 中觀察真實的硬體資源 消耗,整理成表4.5,與上一張表格所分析預估之硬體資源消耗比例相符,且可 以明顯的發現,本論文所實做之系統中消耗最多硬體資源的部份是 Normalized Correlator 電路中的 Switch Buffer 以及 OSort 演算法電路中的 Buffer,由於改變 Normalized Correlator 電路中的 Switch Buffer 會直接的造成系統的處理結果產出 的變化,在之後有更深入的討論,將會列出各種不同的 Switch Buffer Size 的組合 的面積表現,還有處理結果產出的量化表格,也會討論到為什麼 Switch Buffer Size L 會對電路的效能產生影響。而 OSort 演算法電路中的 Buffer 主要是儲存群
集 (Cluster) 之平均波形 (Mean Waveform) 所用,這直接的表示了 OSort 演算法電 路的最大分群數量上限,在實現本系統時,可以考量到採樣目標的需求,來調整 最大分群數量上限,這部份也可以減少一些電路面積與硬體資源消耗,本論文所 實做之系統是以 32 個群集為例。
表 4.5: 各單元實際硬體資源消耗情形 (a) Normalized Correlator Circuit (Switch Buffer Size L = 40)
Filter Unit Block Energy
ALUT 552 637 3289 52 8560
Registers 196 237 1130 12 28366
Memory bits
0 0 0 0 0
DSP Blocks 0 2 530 0 0
(b) OSort Algorithm Circuit
Buffer Distance
Computation Unit
Mean Updating Unit
ALUT 20682 1168 473
Registers 20842 1020 682
Memory bits 0 0 320
DSP Blocks 0 86 2
有別於以往兩個硬體電路之間缺乏有系統的控制,導致 OSort 演算法的 部份必須等候 Normalized Correlator 的部份計算完畢,才能向其要求所偵測到 的 棘 波 訊 號。 整 合 後 的 系 統 只 需 要 由 外 部 輸 入 棘 波 序 列 即 可, 故 整 體 產 出 大幅度的提昇。實現這個能力的關鍵在於,兩個硬體電路間的緩衝區設計,
在第 三 章第 四 節中提到,兩者間須要一組 Switch Buffer,一者負責接收偵測到
的棘波,一者負責傳遞給 OSort 演算法的部份進行運算,在表4.6中,列出各種 緩衝區大小所消耗的資源量,由此表可見,ALUT 與 Register 的使用量都會隨著 緩衝區大小變化,緩衝區越大則使用量會越大,這部份的資料將會與下一節的處 理時間來做交叉比較,由此可以選出一個適當的緩衝區大小。
表 4.6: 緩衝區資源消耗
ALUT Registers
Switch Buffer Size L = 80
17120 56720
Switch Buffer Size L = 52
11130 36868
Switch Buffer Size L = 40
8560 28366
Switch Buffer Size L = 32
6850 22685
Switch Buffer Size L = 20
4281 14178
Switch Buffer Size L = 16
3424 11345
如表4.6所示,本論文所實做之硬體電路擁有一組的 Switch Buffer 作為緩衝 區,其資源消耗佔了 Normalized Correlator 硬體電路很大的一部分,可見 Switch Buffer 越大則消耗的 AUL 越多,而硬體面積是很重要的指標之一,應取面積小 且處理速度快的方案來實做硬體電路,下一節的效能中將會量測處理時間與緩衝 區大小的關係,有利於選擇適當的緩衝區大小方案。
如表4.7列舉出所有電路之資源消耗,從個別電路 Normalized Correlator 的硬
體電路以及 Sort 演算法硬體電路,還有整合兩者之控制電路、FPGA 平台上所提 供之系統元件、兩個主要的處理硬體電路資源加總,從表中亦可觀察到整合用的 控制電路面積相當的小,卻能使整體系統效能提昇,具有能連續長時間輸入棘波 序列的能力。
表 4.7: 各電路的資源消耗 (with Switch Buffer Size L=40)
ALUT Registers Memory bits DSP Blocks OSort Circuit
(upper limit with 32 clusters)
22604 22562 320 88
Normalized Correlator
Circuit
13966 29733 0 530
OSort and Normalized
Correlator Circuit
39355 36517 320 642
Global
2638 819200 4 0
最後是表4.8,將本論文所實做之系統與其他論文比較,由於 [20] 中所提 出之 OSort 演算法之硬體架構使用的是 PIPO(Parallrel-in-Parallel-out) 的資料傳輸 方式,會增加消耗資源,而本論文所實做之系統是以 SISO(Serial-in-Serial-out)
的方式做資料傳輸,能減少資源消耗。[20] 所使用的 FPGA 開發平台的品牌 為 Xilinx,與我們使用的 Altera 所開發之 FPGA 開發平台,它們所定義設計之 邏輯電路不盡相同,故在此說明個別的差異處。在乘法器的部份 DSP 類似於 Multiplier,本論文所使用之 Altera FPGA 開發平台使用 18-bits 單位乘法器而 [20]
則是使用 25x18 乘法器,所消耗之資源較多一些。而 ALUT 的部份,Xilinx 是以 slice LUTs 為單位,約等於兩個 ALUT。而本論文所實做之系統在 Memory bits 的 使用量上,比起 [20] 少了很多。在這些比較之下可知,各類型的硬體資源消耗 綜合起來與 [20] 差不多。
本論文亦實做以 NEO 取代 Normalized Correlator 的部份,做一個面積的估 算,由於 NEO 的乘除運算相較於 Normalized Correlator 少了非常多,故可以發現 取代後,DPS Blocks 的使用量大幅度的降低到與 [20] 相近,而 LUT 消耗量也有
Proposed (L=40) 39355 320 642
Hardware proposed by [20] 47134 225000 29
NEO-Proposed (L=40) 38529 320 79
(NEO replace Normalized Correlator)