Quartus Qsys + Nios II 入門使用

環境設置

OS: Windows 10

Software: Intel Quartus Prime Lite 18.0

Platform: Cyclone V GT 5CGTFD9E5F35C7


=================================================

Nios II 簡介


Nios II 為 Altera 所設計的 32-bit RISC soft-core CPU

其完全在 Altera 的 FPGA 板子上實現

版本有分為 f/s/e

e是最便宜最簡單的

也是下面的實驗我們會選擇的版本


=================================================


Platform Designer 簡介


簡單來說

他就是可以用 Intel 的 IP 定義你的系統的工具

IP 之間的連接

或是對應到的位址之類的

所以如果要設計一個只有由 Intel IP 所組成的系統

這是非常方便的工具


=================================================


以下實驗基本上都是參照

helloworld:基於Qsys的第一個Nios II系統設計

來去完成

所以有些詳細的步驟不在贅述

請直接參考網站裡面寫的

下面只會大概提到該做什麼事情

以及遇到的問題和解決方式


=================================================


實驗 - Platform Designer


這裡主要是要建立硬體系統

步驟

1. 在 Quartus 建立新的專案

2. 建立 bdf 檔案

3. 點 Tool > Platform Designer,進到  Platform Designer 頁面


在這裡主要要新增 4 個元件
Nios II (classic) Processor
On-Chip Memory (RAM or ROM) Intel FPGA IP
JTAG UART Intel FPGA IP
System ID Peripheral Intel FPGA IP

然後將該連的線連起來
每個元件的 clk 都要接到時鐘的 clk_out
每個元件的 reset 都要接到時鐘的 reset


Nios II (classic) Processor 請選擇最便宜的 e
On-Chip Memory 預設好像是 4096 Bytes,但這裡如果沒調,後續會出問題,所以我調至65536 Bytes
JTAG 和 System ID Peripheral 直接新增即可
新增完後,再雙擊剛才新增好的 Nios II (classic) Processor 
點到 Vector 頁面
把 Reset Vector Memory 和 Exception Vector Memory 都換成 onchip_memory.s1 

然後照理來說會出現很多 Error (Overlapping Address...)
只要點 System > Assign Base Address 就可以解決
如果還有 Error
就再檢查是不是有哪裡設定錯或接錯

4. 儲存檔案後,點擊 Generation,等待完成,即可關閉 Platform Designer 頁面


=================================================


實驗 - 指定 Pin 腳


開啟 Pin Planner 一個一個照著手冊設定

或是自己寫 tcl script 來 assign pin 腳

由於這邊比較簡單

所以就直接開 Pin Planner 就好了

就把 clock 接到自己板子上一樣時鐘頻率的腳位 (本實驗設定的是 50 MHz)

reset 就接到 button 上

接完後再進行完整的編譯


=================================================

實驗 - 燒錄至板子上


開啟 Tools > Programmer

燒錄到板子上

繼續下個步驟


=================================================


實驗 - Nios II Software Build Tools for Eclipse


這裡主要就是要建立軟體系統

1. 新建專案

2. 設定相關編譯參數

3. 執行編譯(要確定此時板子有連接好,並且程式已經燒上去),看到成功結果



=================================================


問題


在 IP Catalog 找不到 atlpll

-> 用 alteral pll 代替

Error (204012): Can't generate netlist output files because the file .. 問題

-> 查詢網路上後,應該是沒有該版本 core license 問題,所以免費仔要在 NIOS II Processor 改成最便宜的 e 版 (總共有 e/s/f)

On-Chip Memory size overflow 問題

-> 猜測是原本設定的 On-Chip Memory Size 過小,所以在 Quartus 的 Block Diagram 內雙擊剛製作的元件,然後將 On-Chip Memory 的大小調大(調整至 65536 Bytes),問題解決

參考資料

Nios II - 維基百科,自由的百科全書

helloworld:基於Qsys的第一個Nios II系統設計

cyclone V 怎么调用PLL

[求助] quartus12下使用nios2的操蛋问题

Complile error on NIOS II - `onchip_ram' overflowed


留言

這個網誌中的熱門文章

Formal Verification(正規驗證)介紹和如何使用 SVA(System Verilog Assertion) 做驗證

Quartus Qsys + Nios II + SDRAM 進階使用