• 沒有找到結果。

Nios 系統設計實現方法與整合步驟

Chaper 4 系統發展

4.3 Nios 系統設計實現方法與整合步驟

實現方法:

1. 定義系統:包含處理器、記憶體、周邊元件及與外部元件連結之pin腳。

2. 產生系統:利用SOPC Builder產生ptf系統檔。

3. 硬體設計:針對高速部分的模組,利用Verilog撰寫建立所需元件,並進行電路的合 成並編譯及模擬。

4. 軟體設計:針對控制和判別部份,利用BCB檢測影像處理之演算法,並利用Nios IDE 產生相關的Header檔及Driver並撰寫系統端之應用程式,最後編譯成elf檔。

5. 模擬:利用ModelSim進行模擬,如果發生問題,回到修改系統再進行軟硬體的設計。

6. 驗證:將軟、硬體透過JTAG下載至DE2發展板上之RAM或Flash上做實體驗證。

7. 主要硬體元件:以SOPC Builder完成雙CPU核心的設定,並利用Verilog設計硬體電 路元件,以waveform進行時序模擬並驗證,再透過PIO方式與CPU連結,除了SOPC Builder所提供之週邊電路以外尚有六埠SDRAM控制器、LCD控制器(含影像處理電 路),說明如下,如圖 28 所示,自行開發之硬體電路已整合成一個較大的模組(在 圖 28 左方之方塊),而圖 28 右方之方塊則是利用SOPC Builder所建立之雙CPU模 組。

圖 28 硬體元件

(1) 雙核心處理器:

在圖 29 中的cpu_0是用來控制CCD模組及影像處理所用,而cpu_1是 用來將資料加入容錯及加解密功能。

圖 29 雙 CPU 核心的設計

(2) Multi-port SDRAM controller:

利用Mega Wizard Plug-In Manager來產生三寫三讀之六埠FIFO(以 Embedded RAM實現)。

(3) ECC (error correcting code) IP:

將欲傳送的封包資料加入糾錯碼,使得接收端的資料可以收到完整的 原始資料,是得畫面不致失真。

8. SOPC系統端介面設定:由DE2發展板所提供之範例新增使用者自定腳位來控制自 製之週邊電路,並透過PLL產生100MHz頻率的時鐘源供SDRAM來使用,如圖 30 所示。

圖 30 CPU 之設計

9. 系統軟體執行時記憶體之配置:由於發展板上之SDRAM已被CCD模組及LCD controller所使用,所以cpu_0及cpu_1之程式記憶體是放於Flash上,而cpu_0執行程 式時的例外向量是放於sram上;而cpu_1是放於onchip memory之中,當然在Nios IDE 開發該cpu的軟體時,也必須分別要把變數堆壘區指定到相關之記憶體之中,如圖 31、32 所示。

圖 31 cpu_0 在 SOPC(上)及在 Nios IDE(下)中的記憶體之配置

圖 32 cpu_1 在 SOPC(上)及在 Nios IDE(下)中的記憶體之配置

整合步驟:

我們了解到SOPC可提供一個高彈性之軟硬體整合平台,所以在設計之規劃上可分 為以下之四大階段,分述如下:

1. 入端及輸出端之定義:

從外而內,定義每一個階段所需要的模組,並決定這些模組之輸出/入的腳位,

例如在最外層之系統之輸入端 為CCD模組、接收模組,而輸出端為LCD輸出 及傳送模組,而在較內層之模組包含了CCD模組、ECC (error correcting code)、

AES(Advanced Encryption Standard)、SDRAM controller、LCD controller、Nios CPU…等。

2. 核心選用及自製IP元件:

本作品選用兩顆full edition之cpu,除了SOPC Builder所附之週邊介面外,還需 要自製Multi-port SDRAM controller、LCD controller、ECC (error correcting code)、AES(Advanced Encryption Standard)…等。

3. 軟硬體系統設計:

2. 自行開發 ECC (error correcting code) 及AES(Advanced Encryption Standard)WL(Wireless) controller:

本實驗室在ECC及AES方面已累積有相當豐碩的成果,本作品運用自行開發的 組合線路之ECC及AES IP,後段之測試將由平台取得最有效的IP在平台上測 試,達到高速及最佳化成果。

3. Mulit-port SDRAM controller:

我們為了要有效利用時間,將時間的利益最大化,所以採用了分時多工的概念,

套用在資料的存取上,在這裡我們使用三讀三寫的方式。

圖 33 三讀三寫

4. 連結四個高速 IP

因Nios可以彈性化的設定,所以可依自己的需求而輕易地設計出對外溝通之PIO 腳位,本組亦結合了LCD controller、Multi-port SDRAM controller、ECC、AES 等硬體電路,提升了處理大量資料之效能。

5. 預計使用70%

本作品採用Cyclone 2C35之大容量之FPGA,但由於本作品使用了多核cpu,亦 開發了許多的複雜的IP核心,所以預計整個系統合成之結果會使用高達70%的 LEs,使FPGA所提供之資源得到充份利用。當然,如雙核心之一所需程式或測 試支援要求要高時,本開發板之FPGA能提供充裕的空間。

6 測試與整合支援IP

設計及改善通訊IP(RS232或網路如使用DE2)來溝通雙核心,各核心有內建測試 和取樣暫存資料,暫存器來收集所發展IP之內部資料,最後經由網路在ON或 OFF Line 時機,盡量即時地傳到PC,PC之視窗為平台之可視輔助器,由PC下 達指令和模式之設定,能由程式自動或人力閱讀方式提供即時性資料,使開發 時間大大降低。

相關文件