• 沒有找到結果。

第二章 理論與技術背景

第二節 FPGA 系統設計

Rdj+1[ ]= Rdj[ -1]AND c[] ORRdj-1[ -1]ORRdj-1[]ORRdj+-11[ -1], >0, =1,...,

(2.13)

此演算法僅需 Shift、AND 及 OR 運算即可完成,利用軟體執行的時間複雜度為

(

nd

⎡ ⎤

mw

)

O ,其中w 為電腦運算的字元大小(computer word),若是 d and/or m 值較

大的時候,運算時間還是相當冗長。

第二節 FPGA 系統設計

在IC產品的生命週期不斷縮短、產品功能越來越複雜,但是上市的時間卻越 來越短的壓力下,以硬體描述語言(Hardware description language, HDL) 設計數位 電路可縮短研發時間且更具有彈性,經過簡單的合成與繞線佈局,快速的燒錄至

FPGA上進行測試,是現代 HICH 設計驗證的技術主流。目前FPGA系統的開發,允 許軟體與硬體共同設計,來達成系統化的IC設計,具有開發時間短及系統可修改 的優點。

Altera 公司根據不同使用者的需求,開發出許多不同系列的 FPGA 開發板,

本研究是在 NIOS development kit 中的 Stratix EP1S40 系統開發板上實現硬體字 串比對法則。在 NIOS 系統中提供了一套專門給 NIOS 處理器使用的匯流排,稱 作 Avalon 匯流排[11],而使用者設計出的電路稱之為使用者自訂邏輯(custom user

logic),可以利用此匯流排上的各個訊號線,將電路掛在 Avalon 匯流排與整個系

統溝通。

NIOS 系統擁有下列優點:

1. Altera 公司所提供的 NIOSⅡ IDE是一個有視窗介面的軟體開發工具,設 計者可以在上面編輯程式碼,更可編譯及除錯以及觀察程式執行結果。

此程式除了包含了所有 C 語言的函式庫之外,還有 HAL(hardware

abstraction layer)函式庫。其中 HAL 函式庫提供設計者一個呼叫系統相關 裝置的 API(Application Program Interface),如圖 2-6;所以設計者可以 C 語言撰寫基本程式並透過 HAL API 呼叫來讓特定的裝置運作。

圖 2-6 HAL API

2. 提供了 Compact Flash 卡(以下簡稱 CF 卡)存取功能,讓設計者可以將資料 置於 CF 卡中,並透過 HAL API 讓設計者進行讀與寫的動作。

3. 提供 DMA(direct memory access)機制讓設計者可加速資料在記憶體與系 統周邊元件的傳輸速度且不佔用 CPU 資源。我們也利用 DMA 機制與 CF

卡進行讀取的動作,這在第四章會有進一步的說明。

4. lwIP 提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、

不佔據過多系統資源之外,也讓設計者更容易修改或增刪想要的功能而 不需有大量的修改或變更程式部分。

5. 設計者可依自己的需求增加或刪除想要的電路功能,打造一個量身訂做 的系統,需要增刪裝置時也非常簡便,重新 build 系統並 compile 成硬體 檔之後燒至板子即可。

本研究所發展的音樂檢索系統是由網路獲得 Query 的資料,由我們所設計的 近似比對硬體來執行音符比對,比對時所需要的音樂 Database 資料則存於 CF 卡,

因此網路、Custom User Logic 以及 CF 卡的設計及有效整合十分重要。若由 CPU 來執行這三個部份之間的資料傳送,速度將十分緩慢,會降低系統效能,本系統 則利用 DMA 以有效整合網路、近似比對硬體以及 CF 卡以提升音樂檢索系統的 效能。

整個系統的設計流程,如圖 2-7 所示,首先,使用 Altera 公司提供的 Quartus II 軟體,將以硬體描述語言編寫的原始程式進行邏輯電路合成之編譯,再利用 SOPC

Builder 將此電路掛載至 Avalon 匯流排上,之後再將整個系統燒入到 FPGA 板子 上,最後,利用 NIOS II IDE 編譯軟體程式並觀看執行結果。

Hardware Design

Design Custom Logic

Set up a new SOPC project

Add the Custom Logic to the SOPC project

Compile the SOPC system

Program /Configure the FPGA in the development board

Software Design

Use SOPC Builder to run the NIOS II IDE

Use NIOS II IDE to setup a software project

Write the C program

Compile the C program

Download the compiled code to the SOPC system

Observe the execution results from NIOS II IDE

圖 2-7 軟硬體共同設計流程圖

相關文件