Altera Nios V嵌入式處理器
規格
- 產品名稱:Nios V處理器
- Software Compatibility: Quartus Prime Software and Platform Designer
- 處理器類型:Altera FPGA
- 儲存系統:揮發性記憶體和非揮發性記憶體
- 通訊介面:UART代理
Nios V Processor Hardware System Design
To design the Nios V Processor hardware system, follow these steps:
- Create Nios V Processor system design using Platform Designer.
- 將系統整合到 Quartus Prime 專案中。
- Design memory system including volatile and non-volatile memory.
- 實施時鐘和重置最佳實務。
- 分配預設和 UART 代理程式以實現高效運行。
Nios V Processor Software System Design
針對Nios V處理器進行軟體系統設計:
- 遵循 Nios V 處理器的軟體開發流程。
- Create Board Support Package Project and Application Project.
Nios V Processor Configuration and Booting Solutions
配置和啟動 Nios V 處理器:
- Understand the introduction to configuration and booting solutions.
- 連結應用程式以實現無縫操作。
About the Nios® V Embedded Processor
1.1. Altera® FPGA 與嵌入式處理器view
Altera FPGA 裝置可以實現作為完整微處理器的邏輯,同時提供許多選項。
分立微處理器與 Altera FPGA 之間的一個重要區別是,Altera FPGA 架構在上電時不包含任何邏輯。 Nios® V 處理器是基於 RISC-V 規範的軟知識產權 (IP) 處理器。在基於 Nios V 處理器的系統上執行軟體之前,必須使用包含 Nios V 處理器的硬體設計來設定 Altera FPGA 設備。您可以根據設計需求將 Nios V 處理器放置在 Altera FPGA 上的任何位置。
為了讓您的基於 Altera® FPGA IP 的嵌入式系統能夠像基於分立微處理器的系統一樣運行,您的系統應包括以下內容:· AJTAG 支援 Altera FPGA 配置、硬體和軟體的接口
調試·上電Altera FPGA配置機制
如果您的系統具備這些功能,您可以從 Altera FPGA 中載入的預測試硬體設計開始完善您的設計。使用 Altera FPGA 還允許您快速修改設計以解決問題或新增功能。您可以使用系統的 J 重新配置 Altera FPGA,輕鬆測試這些新的硬體設計。TAG 介面.
JTAG 介面支援硬體和軟體開發。您可以使用 JTAG 介面:· 設定 Altera FPGA · 下載與除錯軟體 · 透過類似 UART 的介面與 Altera FPGA 通訊 (JTAG 串口
終端機)· 調試硬體(使用 Signal Tap 嵌入式邏輯分析儀)· 程式設計快閃記憶體
使用基於 Nios V 處理器的設計配置 Altera FPGA 後,軟體開發流程與分離式微控制器設計的流程類似。
相關資訊·AN 985:Nios V 處理器教程
有關建立簡單的 Nios V 處理器系統和運行 Hello World 應用程式的快速入門指南。
© Altera Corporation。 Altera、Altera 標誌、「a」標誌和其他 Altera 標誌均為 Altera Corporation 的商標。 Altera 保留隨時更改任何產品和服務的權利,恕不另行通知。除非獲得 Altera 的明確書面同意,否則 Altera 對因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務概不負責。建議 Altera 客戶在依賴任何已發佈的資訊以及訂購產品或服務之前,先取得最新版本的裝置規格。 *其他名稱和品牌可能為其他方所有。
1. 關於 Nios® V 嵌入式處理器 726952 | 2025.07.16
· Nios V 處理器參考手冊提供有關 Nios V 處理器效能基準、處理器架構、程式設計模型和核心實作的資訊。
· 嵌入式週邊IP使用者指南 · Nios V處理器軟體開發者手冊
介紹 Nios V 處理器軟體開發環境、可用工具以及在 Nios V 處理器上執行軟體的建置流程。 · Ashling* RiscFree* Altera FPGA 整合開發環境 (IDE) 使用者指南 介紹適用於 Altera FPGA Arm* HPS 和 Nios V 核心處理器的 RiscFree* 整合開發環境 (IDE)。 · Nios V 處理器 Altera FPGA IP 發行說明
1.2. Quartus® Prime 軟體支持
Nios V 處理器的建置流程在 Quartus® Prime 專業版軟體和 Quartus Prime 標準版軟體中有所不同。有關差異的更多信息,請參閱 AN 980:Nios V 處理器 Quartus Prime 軟體支援。
相關資訊 AN 980:Nios V 處理器 Quartus Prime 軟體支持
1.3. Nios V 處理器許可
每個 Nios V 處理器版本都有其各自的授權金鑰。取得許可證密鑰後,您可以在所有 Nios V 處理器專案上使用相同的許可證密鑰,直到許可證到期。您可以免費取得 Nios V 處理器 Altera FPGA IP 授權。
Nios V 處理器授權金鑰清單可在 Altera FPGA 自助服務授權中心取得。點擊「註冊評估許可證」或「註冊免費許可證」選項卡,並選擇相應的選項來提交申請。
圖 1. Altera FPGA 自助授權中心
使用許可證密鑰,您可以:
傳送回饋
Nios® V 嵌入式處理器設計手冊 7
1. 關於 Nios® V 嵌入式處理器 726952 | 2025.07.16
· 在您的系統中實作 Nios V 處理器。 · 模擬 Nios V 處理器系統的行為。 · 驗證設計的功能,例如大小和速度。 · 生成設備編程。 · 產生設備程式碼。 files. · 對設備進行程式設計並在硬體中驗證設計。
您不需要許可證即可在 Ashling* RiscFree* IDE 中為 Altera FPGA 開發軟體。
相關資訊·Altera FPGA 自助許可中心
有關取得 Nios V 處理器 Altera FPGA IP 授權金鑰的詳細資訊。 · Altera FPGA 軟體安裝和授權有關授權 Altera FPGA 軟體和設定固定許可證和網路授權伺服器的更多資訊。
1.4. 嵌入式系統設計
下圖說明了基於 Nios V 處理器的簡化系統設計流程,包括硬體和軟體開發。
Nios® V 嵌入式處理器設計手冊 8
傳送回饋
1. 關於 Nios® V 嵌入式處理器 726952 | 2025.07.16
圖 2.
Nios V 處理器系統設計流程
系統概念
分析系統需求
Nios® V
處理器核心和標準元件
定義並產生系統
平台設計師
硬體流程:整合並編譯英特爾 Quartus Prime 項目
軟體流程:開發和建構 Nios V 提案軟體
硬體流程:下載 FPGA 設計
到目標板
軟體流程:測試和調試 Nios V 處理器軟體
軟體不符合規格?
是的
硬體 否 符合規格?是
系統完成
傳送回饋
Nios® V 嵌入式處理器設計手冊 9
726952 | 2025.07.16 反饋意見
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
圖 3.
下圖展示了典型的 Nios V 處理器硬體設計。 Nios V 處理器系統硬體設計流程
開始
Nios V 內核和標準組件
使用平台設計器設計基於 Nios V 的系統
生成平台設計器設計
將 Platform Designer 系統與英特爾 Quartus Prime 專案集成
分配引腳位置、時序要求和其他設計約束
在 Intel Quartus Prime 中為目標裝置編譯硬件
準備下載
2.1. 使用 Platform Designer 建立 Nios V 處理器系統設計
Quartus Prime 軟體包含 Platform Designer 系統整合工具,可簡化定義 Nios V 處理器 IP 核心及其他 IP 並將其整合到 Altera FPGA 系統設計中的工作。 Platform Designer 可根據指定的進階連線自動建立互連邏輯。互連自動化功能省去了指定係統級 HDL 連線的耗時任務。
© Altera Corporation。 Altera、Altera 標誌、「a」標誌和其他 Altera 標誌均為 Altera Corporation 的商標。 Altera 保留隨時更改任何產品和服務的權利,恕不另行通知。除非獲得 Altera 的明確書面同意,否則 Altera 對因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務概不負責。建議 Altera 客戶在依賴任何已發佈的資訊以及訂購產品或服務之前,先取得最新版本的裝置規格。 *其他名稱和品牌可能為其他方所有。
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
分析系統硬體需求後,您可以使用 Quartus Prime 指定係統所需的 Nios V 處理器核心、記憶體和其他元件。 Platform Designer 會自動產生互連邏輯,以將這些元件整合到硬體系統中。
2.1.1. 實例化 Nios V 處理器 Altera FPGA IP
You can instantiate any of the processor IP cores in Platform Designer IP Catalog Processors and Peripherals Embedded Processors.
每個處理器的 IP 核心基於其獨特的架構支援不同的配置選項。您可以定義這些配置,以便更好地滿足您的設計需求。
表 1.
跨核心變體的配置選項
配置選項
Nios V/c處理器
Nios V/m處理器
調試使用重置請求
—
陷阱、異常和中斷
CPU架構
ECC
快取、外圍區域和 TCM
—
—
自訂指令
—
—
步調一致
—
—
Nios V/g處理器
2.1.1.1. 實例化 Nios V/c 緊湊型微控制器 Altera FPGA IP 圖 4. Nios V/c 緊湊型微控制器 Altera FPGA IP
傳送回饋
Nios® V 嵌入式處理器設計手冊 11
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.1.1. CPU 架構選項卡
表 2.
CPU 架構選項卡
特徵
描述
啟用 Avalon® 介面:啟用 Avalon 介面用於指令管理器和資料管理器。如果停用,系統將使用 AXI4-Lite 介面。
mhartid CSR 價值
· 無效的 IP 選項。 · 請勿在 Nios V/c 處理器中使用 mhartid CSR 值。
2.1.1.1.2. 使用重置請求選項卡
表 3.
使用重置請求選項卡參數
使用重置請求選項卡
描述
新增重置請求介面
· 啟用此選項可公開本機重置端口,本地主機可以使用它來觸發 Nios V 處理器重置,而不會影響 Nios V 處理器系統中的其他元件。
· 重設介面由輸入resetreq訊號和輸出ack訊號組成。
· 您可以透過斷言 resetreq 訊號來請求重置 Nios V 處理器核心。
· resetreq 訊號必須保持有效,直到處理器發出 ack 訊號。如果該訊號無法保持有效,可能會導致處理器處於不確定的狀態。
· Nios V 處理器透過發出 ack 訊號來回應重設成功。
· 處理器成功重設後,ack 訊號的置位可以週期性地發生多次,直到 resetreq 訊號被取消置位。
2.1.1.1.3. 陷阱、異常和中斷選項卡
表 4.
陷阱、異常和中斷選項卡參數
陷阱、異常和中斷
描述
重置代理
· 託管重設向量(Nios V 處理器重設位址)的內存,重設程式碼駐留在其中。
· 您可以選擇任何連接到 Nios V 處理器指令主機並由 Nios V 處理器引導流程支援的記憶體模組作為重設代理。
重置偏移
· 指定重置向量相對於所選重置代理基底位址的偏移量。 · 平台設計器會自動為重置偏移量提供預設值。
筆記:
Platform Designer 提供了一個「Absolute」選項,讓您在「Reset Offset」中指定絕對位址。當儲存重置向量的記憶體位於處理器系統和子系統之外時,請使用此選項。
Nios® V 嵌入式處理器設計手冊 12
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.1.4. ECC 選項卡
表 5.
ECC標籤
ECC
啟用錯誤偵測和狀態報告
描述
· 啟用此選項可將 ECC 功能套用至 Nios V 處理器內部 RAM 區塊。 · ECC 功能可偵測最多 2 位元錯誤,並根據以下行為做出反應:
— 如果是可修正的錯誤1位,處理器在管線中修正錯誤後繼續運作。但是,修正操作不會反映在來源記憶體中。
— 如果錯誤無法修正,處理器將繼續運作而不在處理器管線和來源記憶體中修正錯誤,這可能會導致處理器進入不確定狀態。
2.1.1.2. 實例化 Nios V/m 微控制器 Altera FPGA IP 圖 5. Nios V/m 微控制器 Altera FPGA IP
傳送回饋
Nios® V 嵌入式處理器設計手冊 13
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.2.1. 偵錯選項卡
表 6.
偵錯選項卡參數
偵錯選項卡
描述
啟用偵錯
從調試模組啟用重置
· 啟用此選項可新增 JTAG 目標連接模組到 Nios V 處理器。 · JTAG 目標連接模組允許透過連接到Nios V處理器
JTAG FPGA的介面接腳。 · 此連接提供以下基本功能:
— 啟動和停止 Nios V 處理器 — 檢查和編輯暫存器和記憶體。 — 下載 Nios V 應用程式 .elf file 在運行時透過處理器內存
niosv-download。 — 偵錯在 Nios V 處理器上執行的應用程式 · 將 dm_agent 連接埠連接到處理器指令和資料匯流排。確保兩條總線之間的基底位址相同。
· 啟用此選項可公開 dbg_reset_out 和 ndm_reset_in 連接埠。 · JTAG 偵錯器或 niosv-download -r 指令觸發 dbg_reset_out,它
允許 Nios V 處理器重置連接到此連接埠的系統週邊。 · 您必須將 dbg_reset_out 介面連接到 ndm_reset_in,而不是 reset
用於觸發處理器核心和定時器模組重設的介面。請勿將 dbg_reset_out 接口連接到重設接口,以防止出現不確定的行為。
2.1.1.2.2. 使用重置請求選項卡
表 7.
使用重置請求選項卡參數
使用重置請求選項卡
描述
新增重置請求介面
· 啟用此選項可公開本機重置端口,本地主機可以使用它來觸發 Nios V 處理器重置,而不會影響 Nios V 處理器系統中的其他元件。
· 重設介面由輸入resetreq訊號和輸出ack訊號組成。
· 您可以透過斷言 resetreq 訊號來請求重置 Nios V 處理器核心。
· resetreq 訊號必須保持有效,直到處理器發出 ack 訊號。如果該訊號無法保持有效,可能會導致處理器處於不確定的狀態。
· 在偵錯模式下斷言 resetreq 訊號對處理器的狀態沒有影響。
· Nios V 處理器透過發出 ack 訊號來回應重設成功。
· 處理器成功重設後,ack 訊號的置位可以週期性地發生多次,直到 resetreq 訊號被取消置位。
2.1.1.2.3. 陷阱、異常和中斷選項卡
表 8.
陷阱、異常和中斷選項卡
陷阱、異常和中斷選項卡
描述
重置代理
· 託管重設向量(Nios V 處理器重設位址)的內存,重設程式碼駐留在其中。
· 您可以選擇任何連接到 Nios V 處理器指令主機並由 Nios V 處理器引導流程支援的記憶體模組作為重設代理。
重置偏移中斷模式
· 指定重置向量相對於所選重置代理基底位址的偏移量。 · 平台設計器會自動為重置偏移量提供預設值。
指定中斷控制器的類型:直接中斷或向量中斷。注意:Nios V/m 非管線處理器不支援向量中斷。
因此,當處理器處於非管線模式時,應避免使用向量中斷模式。
Nios® V 嵌入式處理器設計手冊 14
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
筆記:
Platform Designer 提供了一個「Absolute」選項,讓您在「Reset Offset」中指定絕對位址。當儲存重置向量的記憶體位於處理器系統和子系統之外時,請使用此選項。
2.1.1.2.4. CPU架構
表 9.
CPU 架構選項卡參數
CPU架構
描述
在 CPU 中啟用管線
· 啟用此選項可實例化管線 Nios V/m 處理器。 —— IPC 較高,但邏輯面積較大,Fmax 頻率較低。
· 停用此選項可實例化非管線 Nios V/m 處理器。 — 具有與 Nios V/c 處理器類似的核心效能。 — 支援偵錯和中斷功能 — 更低的邏輯面積和更高的 Fmax 頻率,但代價是更低的 IPC。
啟用 Avalon 介面
啟用 Avalon 介面用於指令管理器和資料管理器。如果停用,系統將使用 AXI4-Lite 介面。
mhartid CSR 價值
· Hart ID 暫存器(mhartid)值預設為 0。 · 指派一個介於 0 和 4094 之間的值。 · 與 Altera FPGA Avalon Mutex Core HAL API 相容。
相關資訊 嵌入式週邊 IP 使用者指南 – Intel FPGA Avalon® Mutex 內核
2.1.1.2.5. ECC 選項卡
表 10.ECC 選項卡
ECC 啟用錯誤偵測和狀態報告
描述
· 啟用此選項可將 ECC 功能套用至 Nios V 處理器內部 RAM 區塊。 · ECC 功能可偵測最多 2 位元錯誤,並根據以下行為做出反應:
— 如果是可修正的錯誤1位,處理器在管線中修正錯誤後繼續運作。但是,修正操作不會反映在來源記憶體中。
— 如果錯誤無法修正,處理器將繼續運作而不在處理器管線和來源記憶體中修正錯誤,這可能會導致處理器進入不確定狀態。
傳送回饋
Nios® V 嵌入式處理器設計手冊 15
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.3. 例化 Nios V/g 通用處理器 Altera FPGA IP
圖 6. Nios V/g 通用處理器 Altera FPGA IP – 第 1 部分
圖 7.
Nios V/g 通用處理器 Altera FPGA IP – 第 2 部分(關閉啟用核心級中斷控制器)
Nios® V 嵌入式處理器設計手冊 16
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
圖 8.
Nios V/g 通用處理器 Altera FPGA IP – 第 2 部分(開啟啟用核心級中斷控制器)
圖 9. Nios V/g 通用處理器 Altera FPGA IP – 第 3 部分
傳送回饋
Nios® V 嵌入式處理器設計手冊 17
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
圖 10. Nios V/g 通用處理器 Altera FPGA IP – 第 4 部分
2.1.1.3.1. CPU架構
表 11. CPU 架構參數
CPU 架構標籤啟用浮點單元
說明 啟用此選項可在處理器核心中新增浮點單元(「F」擴充)。
啟用分支預測
為分支指令啟用靜態分支預測(向後執行和向前不執行)。
mhartid CSR 價值
· Hart ID 暫存器(mhartid)值預設為 0。 · 指派一個介於 0 和 4094 之間的值。 · 與 Altera FPGA Avalon Mutex Core HAL API 相容。
停用 FPU 的 FSQRT 和 FDIV 指令
· 刪除 FPU 中的浮點平方根 (FSQRT) 和浮點除法 (FDIV) 運算。
· 在運作時對這兩個指令應用軟體模擬。
相關資訊 嵌入式週邊 IP 使用者指南 – Intel FPGA Avalon® Mutex 內核
Nios® V 嵌入式處理器設計手冊 18
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.3.2. 偵錯選項卡
表 12. 偵錯選項卡參數
偵錯選項卡
描述
啟用偵錯
從調試模組啟用重置
· 啟用此選項可新增 JTAG 目標連接模組到 Nios V 處理器。 · JTAG 目標連接模組允許透過連接到Nios V處理器
JTAG FPGA的介面接腳。 · 此連接提供以下基本功能:
— 啟動和停止 Nios V 處理器 — 檢查和編輯暫存器和記憶體。 — 下載 Nios V 應用程式 .elf file 在運行時透過處理器內存
niosv-download。 — 偵錯在 Nios V 處理器上執行的應用程式 · 將 dm_agent 連接埠連接到處理器指令和資料匯流排。確保兩條總線之間的基底位址相同。
· 啟用此選項可公開 dbg_reset_out 和 ndm_reset_in 連接埠。 · JTAG 偵錯器或 niosv-download -r 指令觸發 dbg_reset_out,它
允許 Nios V 處理器重置連接到此連接埠的系統週邊。 · 您必須將 dbg_reset_out 介面連接到 ndm_reset_in,而不是 reset
用於觸發處理器核心和定時器模組重設的介面。請勿將 dbg_reset_out 接口連接到重設接口,以防止出現不確定的行為。
2.1.1.3.3. 鎖步選項卡 表 13. 鎖步選項卡
參數 啟用鎖步預設逾時時間 啟用擴充重設介面
描述 · 啟用雙核心 Lockstep 系統。 · 重設退出時可編程逾時的預設值(介於 0 到 255 之間)。 · 啟用選購的擴充重設介面以進行擴充重設控制。 · 停用時,fRSmartComp 執行基本重設控制。
2.1.1.3.4. 使用重置請求選項卡
表 14. 使用重置請求標籤參數
使用重置請求選項卡
描述
新增重置請求介面
· 啟用此選項可公開本機重置端口,本地主機可以使用它來觸發 Nios V 處理器重置,而不會影響 Nios V 處理器系統中的其他元件。
· 重設介面由輸入resetreq訊號和輸出ack訊號組成。
· 您可以透過斷言 resetreq 訊號來請求重置 Nios V 處理器核心。
· resetreq 訊號必須保持有效,直到處理器發出 ack 訊號。如果該訊號無法保持有效,可能會導致處理器處於不確定的狀態。
· 在偵錯模式下斷言 resetreq 訊號對處理器的狀態沒有影響。
· Nios V 處理器透過發出 ack 訊號來回應重設成功。
· 處理器成功重設後,ack 訊號的置位可以週期性地發生多次,直到 resetreq 訊號被取消置位。
傳送回饋
Nios® V 嵌入式處理器設計手冊 19
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.1.1.3.5. 陷阱、異常和中斷選項卡
表 15.
啟用核心級中斷控制器關閉時的陷阱、異常和中斷標籤
陷阱、異常和中斷選項卡
重置代理
描述
· 託管重設向量(Nios V 處理器重設位址)的內存,重設程式碼駐留在其中。
· 您可以選擇任何連接到 Nios V 處理器指令主機並由 Nios V 處理器引導流程支援的記憶體模組作為重設代理。
重置偏移
· 指定重置向量相對於所選重置代理基底位址的偏移量。 · 平台設計器會自動為重置偏移量提供預設值。
啟用核心級中斷控制器 (CLIC)
· 使 CLIC 支援搶佔式中斷和可設定的中斷觸發條件。
· 啟用後,您可以設定平台中斷的數量、設定觸發條件,並將某些中斷指定為搶佔式中斷。
中斷模式影子暫存器 Files
將中斷類型指定為直接或向量啟用影子暫存器,以減少中斷時的上下文切換。
表 16.
啟用核心級中斷控制器時的陷阱、異常和中斷
陷阱、異常和中斷
說明
重置代理
重置偏移
啟用核心級中斷控制器 (CLIC)
· 託管重設向量(Nios V 處理器重設位址)的內存,重設程式碼駐留在其中。
· 您可以選擇任何連接到 Nios V 處理器指令主機並由 Nios V 處理器引導流程支援的記憶體模組作為重設代理。
· 指定重置向量相對於所選重置代理基底位址的偏移量。 · 平台設計器會自動為重置偏移量提供預設值。
· 啟用 CLIC 以支援搶佔式中斷和可設定的中斷觸發條件。 · 啟用後,您可以設定平台中斷的數量、設定觸發條件、
並將某些中斷指定為搶佔式中斷。
中斷模式
· 將中斷類型指定為直接、向量或 CLIC。
影子登記冊 Files
· 啟用影子暫存器以減少中斷時的上下文切換。
· 提供兩種方法:
— CLIC 中斷等級數
— CLIC 中斷等級數 – 1:當需要暫存器數量時,此選項很有用 file 副本以適應精確數量的 M20K 或 M9K 區塊。
· 啟用 Nios V 處理器使用影子暫存器 file從而減少中斷時的上下文切換開銷。
有關影子寄存器的更多信息 files,請參閱 Nios V 處理器參考手冊。
平台中斷源數量
· 指定平台中斷的數量,範圍為 16 至 2048。
注意:CLIC支援最多2064個中斷輸入,前16個中斷輸入也連接到基本中斷控制器。
CLIC 向量表對齊
· 根據平台中斷來源數量自動決定。 · 如果使用的對齊低於建議值,CLIC 會增加邏輯
透過添加額外的加法器來執行向量計算,可以降低複雜性。 · 如果使用低於建議值的對齊,則會導致
CLIC 中的邏輯複雜性。
持續…
Nios® V 嵌入式處理器設計手冊 20
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
陷阱、異常和中斷
中斷等級數
每級中斷優先權數
可配置中斷極性支援邊緣觸發中斷
說明
· 指定中斷等級數,並為應用程式程式碼新增一個額外的 0 級中斷。較高層級的中斷可以中斷(搶佔)正在執行的較低層級中斷處理程序。
· 由於非零中斷等級是中斷的唯一選項,因此應用程式程式碼始終處於最低等級 0。注意:中斷等級和優先權的運行時配置在一個 8 位元暫存器中完成。如果中斷等級數為 256,則無法在執行時間配置中斷優先權。否則,可配置優先權的最大數量為 256 /(中斷等級數 - 1)。
· 指定中斷優先權的數量,CLIC 會使用該優先權來決定非搶佔式中斷處理程序的呼叫順序。注意:所選中斷等級和選取中斷優先權的二進位值的組合必須小於 8 位元。
· 允許您在運行時配置中斷極性。 · 預設極性為正極性。
· 讓您在運行時配置中斷觸發條件,即高電平觸發或上升沿觸發(當可配置中斷極性中中斷極性為正時)。
· 預設觸發條件是電平觸發中斷。
筆記:
Platform Designer 提供了一個「Absolute」選項,讓您在「Reset Offset」中指定絕對位址。當儲存重置向量的記憶體位於處理器系統和子系統之外時,請使用此選項。
相關資訊 Nios® V 處理器參考手冊
2.1.1.3.6. 記憶體配置選項卡
表 17. 記憶體配置標籤參數
類別
記憶體配置選項卡
描述
快取
資料快取大小
· 指定資料快取的大小。 · 有效大小為 0 千位元組 (KB) 到 16 KB。 · 當大小為 0 KB 時關閉資料快取。
指令快取大小
· 指定指令快取的大小。 · 有效大小為 0 KB 至 16 KB。 · 當大小為 0 KB 時關閉指令快取。
外圍區域 A 和 B
尺寸
· 指定外圍區域的大小。
· 有效大小為 64 KB 至 2 GB,或「無」。選擇“無”將停用外圍區域。
基地址
· 選擇大小後指定週邊區域的基底位址。
· 週邊區域中的所有位址都會產生無法快取的資料存取。
· 週邊區域基底位址必須與週邊區域大小對齊。
緊密耦合的記憶
尺寸
· 指定緊密耦合記憶體的大小。 ——有效大小為 0 MB 至 512 MB。
基底地址初始化 File
· 指定緊耦合記憶體的基底位址。 · 指定初始化 file 用於緊耦合記憶體。
傳送回饋
Nios® V 嵌入式處理器設計手冊 21
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
筆記:
在啟用快取的 Nios V 處理器系統中,必須將系統週邊放置在周邊區域內。您可以使用周邊區域為 UART、PIO、DMA 等週邊定義不可快取的交易。
2.1.1.3.7. ECC 選項卡
表 18.ECC 選項卡
ECC 啟用錯誤偵測和狀態報告
啟用單位校正
描述
· 啟用此選項可將 ECC 功能套用至 Nios V 處理器內部 RAM 區塊。 · ECC 功能可偵測最多 2 位元錯誤,並根據以下行為做出反應:
— 如果是可修正的單位錯誤,且「啟用單位修正」功能已關閉,則處理器在修正處理器管線中的錯誤後將繼續運作。但是,修正操作不會反映在來源記憶體中。
— 如果是可修正的單位錯誤,且「啟用單位修正」已打開,則處理器在修正處理器管線和來源記憶體中的錯誤後繼續運作。
— 如果是無法修正的錯誤,處理器將停止運作。
對核心中的嵌入式記憶體區塊啟用單位校正。
2.1.1.3.8. 自訂指令選項卡
筆記:
此選項卡僅適用於 Nios V/g 處理器核心。
自訂指令 Nios V 自訂指令硬體介面表
Nios V 自訂指令軟體巨集表
描述
· Nios V 處理器使用此表來定義其自訂指令管理器介面。
· 定義的自訂指令管理器介面由操作碼(CUSTOM0-3)和 3 位元 funct7[6:4] 唯一編碼。
· 您最多可以定義 32 個單獨的自訂指令管理器介面。
· Nios V 處理器使用此表來定義自訂指令軟體編碼,用於定義自訂指令管理器介面。
· 對於每個定義的自訂指令軟體編碼,操作碼(CUSTOM0-3)和 3 位元 funct7[6:4] 編碼必須與自訂指令硬體介面表中定義的自訂指令管理器介面編碼相關。
· 您可以使用 funct7[6:4]、funct7[3:0] 和 funct3[2:0] 為給定的自訂指令定義附加編碼,或指定為 Xs 作為附加指令參數傳入。
· Nios V 處理器提供定義的自訂指令軟體編碼作為 system.h 中產生的 C 宏,並遵循 R 型 RISC-V 指令格式。
· 助記符可用於定義自訂名稱:— system.h 中產生的 C 巨集。
— custom_instruction_debug.xml 中產生的 GDB 偵錯助記符。
相關資訊
AN 977:Nios V 處理器自訂指令有關自訂指令的更多信息,這些指令允許您自訂 Nios® V 處理器以滿足特定應用程式的需求。
Nios® V 嵌入式處理器設計手冊 22
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
2.1.2. 定義系統組件設計
使用 Platform Designer 定義 Nios V 處理器系統的硬體特性並新增所需元件。下圖展示了一個基本的 Nios V 處理器系統設計,包含以下元件:· Nios V 處理器核心 · 片上記憶體 · JTAG UART·間隔定時器(選購)(1)
當新的片上記憶體新增至 Platform Designer 系統時,請執行「同步系統資訊」以在重設時反映已新增的記憶體元件。或者,您也可以在 Platform Designer 中啟用「自動同步」以自動反映最新的元件變更。
圖 11. 前ampNios V 處理器與 Platform Designer 中其他週邊裝置的連接
(1)您可以選擇使用 Nios V 內部定時器功能來取代平台設計器中的外部間隔計時器。
傳送回饋
Nios® V 嵌入式處理器設計手冊 23
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
您也必須在 Platform Designer 系統中定義要匯出為導管的操作接腳。例如amp例如,一個適當的FPGA系統操作引腳清單定義如下但不限於:
· 鐘
· 重置
· 輸入/輸出訊號
2.1.3. 指定基底位址和中斷請求優先權
要指定設計中新增的元件如何互動以形成系統,您需要為每個代理元件分配基底位址,並為 JTAG UART 和間隔定時器。平台設計器提供了一個命令“分配基底位址”,該命令會自動為系統中的所有元件指派適當的基底位址。不過,您可以根據需要調整基底位址。
以下是分配基底位址的一些準則:
· Nios V 處理器核心的位址跨距為 32 位元。若要存取代理程式元件,其基底位址必須在 0x00000000 到 0xFFFFFFFF 之間。
· Nios V 程式使用符號常數來引用位址。您不必選擇容易記住的位址值。
· 僅透過一位位址差異來區分組件的位址值可以提高硬體效率。您無需將所有基底位址壓縮到盡可能小的位址範圍內,因為壓縮可能會降低硬體效率。
· Platform Designer 不會嘗試將單獨的記憶體元件對齊到連續的記憶體範圍內。例如amp例如,如果您希望多個片上記憶體元件可作為一個連續的記憶體範圍進行定址,則必須明確指派基底位址。
Platform Designer 還提供了一個自動化命令——“分配中斷號”,該命令可以連接 IRQ 訊號以產生有效的硬體結果。然而,有效地分配 IRQ 需要了解整體系統反應行為。 Platform Designer 無法對最佳 IRQ 分配做出合理的預測。
最低的 IRQ 值具有最高的優先權。在理想系統中,Altera 建議計時器組件具有最高優先順序的 IRQ,即最低的值,以保持系統時鐘滴答的準確性。
在某些情況下,您可能會為即時週邊設備(例如視訊控制器)分配更高的優先級,這需要比計時器組件更高的中斷率。
相關資訊
Quartus Prime Pro Edition 使用者指南:有關使用 Platform Designer 建立系統的詳細資訊。
Nios® V 嵌入式處理器設計手冊 24
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
2.2. 將 Platform Designer 系統整合到 Quartus Prime 專案中
在 Platform Designer 中產生 Nios V 系統設計後,請執行下列任務將 Nios V 系統模組整合到 Quartus Prime FPGA 設計專案中。 · 在 Quartus Prime 專案中例化 Nios V 系統模組· 將 Nios V 系統模組的訊號連接到 FPGA 邏輯中的其他訊號· 分配實體接腳位置· 約束 FPGA 設計
2.2.1. 在 Quartus Prime 專案中範例 Nios V 處理器系統模組
Platform Designer 會產生一個系統模組設計實體,您可以在 Quartus Prime 中將其實例化。系統模組的實例化方式取決於整個 Quartus Prime 專案的設計輸入方法。例如amp例如,如果您使用 Verilog HDL 進行設計輸入,請實例化基於 Verilog 的系統模組。如果您喜歡使用框圖方法進行設計輸入,請實例化系統模組符號 .bdf file.
2.2.2. 連接訊號並分配實體引腳位置
若要將您的 Altera FPGA 設計連接到您的板級設計,請執行下列任務:· 確定頂層 file 為您的設計和訊號連接到外部 Altera
FPGA 裝置接腳。 · 透過板級設計使用者指南或
原理圖。 · 將頂層設計中的訊號指派給 Altera FPGA 設備上的接腳
作業工具。
您的 Platform Designer 系統可以作為頂層設計。然而,Altera FPGA 還可以根據您的需求添加額外的邏輯,從而引入自訂頂層設計。 file. 頂層 file 將 Nios V 處理器系統模組訊號連接到其他 Altera FPGA 設計邏輯。
相關資訊 Quartus Prime Pro Edition 使用者指南:設計約束
2.2.3. 約束 Altera FPGA 設計
正確的 Altera FPGA 系統設計包含設計約束,以確保設計符合時序收斂和其他邏輯約束要求。您必須使用 Quartus Prime 軟體或第三方 EDA 提供者提供的工具,以明確約束您的 Altera FPGA 設計以滿足這些要求。 Quartus Prime 軟體會在編譯階段使用提供的限制來獲得最佳佈局結果。
傳送回饋
Nios® V 嵌入式處理器設計手冊 25
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
相關資訊 · Quartus Prime Pro Edition 使用者指南:設計限制 · 第三方 EDA 合作夥伴 · Quartus Prime Pro Edition 使用者指南:時序分析器
2.3. 設計 Nios V 處理器記憶體系統
本節介紹在搭載 Nios V 處理器的 Platform Designer 嵌入式系統中選擇記憶體裝置並實現最佳效能的最佳實務。記憶體設備在提升嵌入式系統整體效能方面發揮著至關重要的作用。嵌入式系統記憶體用於儲存程式指令和資料。
2.3.1. 揮發性記憶體
記憶體類型的一個主要區別在於易失性。易失性記憶體僅在為儲存裝置供電時保存其內容。一旦斷電,記憶體中的內容就會遺失。
Examp易失性記憶體的種類包括 RAM、快取和暫存器。這些是快速的記憶體類型,可以提高運行效能。 Altera 建議您在 RAM 中載入和執行 Nios V 處理器指令,並將 Nios V IP 核與片上記憶體 IP 或外部記憶體介面 IP 配對使用,以獲得最佳效能。
為了提高效能,您可以透過將 Nios V 處理器資料管理器介面類型或寬度與啟動 RAM 進行匹配,來消除額外的 Platform Designer 適配器元件。例如,amp例如,您可以使用 32 位元 AXI-4 介面設定片上記憶體 II,該介面與 Nios V 資料管理器介面相符。
相關資訊 · 外部記憶體介面 IP 支援中心 · 片上記憶體(RAM 或 ROM)Altera FPGA IP · 片上記憶體 II(RAM 或 ROM)Altera FPGA IP · Nios V 處理器應用程式從 OCRAM 就地執行 (第 54 頁)
2.3.1.1. 片上記憶體配置 RAM 或 ROM
您可以將 Altera FPGA 片上記憶體 IP 配置為 RAM 或 ROM。 · RAM 提供讀寫功能,且具易失性。如果您
從片上 RAM 啟動 Nios V 處理器時,必須確保啟動內容在執行時發生重設時能夠保存且不被損壞。 · 如果 Nios V 處理器從 ROM 啟動,則 Nios V 處理器上的任何軟體錯誤都無法錯誤地覆蓋片上記憶體的內容。從而降低啟動軟體損壞的風險。
相關資訊 · 片上記憶體(RAM 或 ROM)Altera FPGA IP · 片上記憶體 II(RAM 或 ROM)Altera FPGA IP · Nios V 處理器應用程式從 OCRAM 就地執行 (第 54 頁)
Nios® V 嵌入式處理器設計手冊 26
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
2.3.1.2. 緩存
由於片上記憶體延遲低,通常用於實現快取功能。 Nios V 處理器使用片上記憶體作為其指令和資料快取。片上記憶體的容量有限通常不會對快取造成影響,因為它們通常較小。
快取通常在以下情況下使用:
· 常規記憶體位於片外,存取時間比片上記憶體更長。
· 軟體程式碼中效能關鍵的部分可以放入指令快取中,進而提升系統效能。
· 對效能至關重要、最常用的資料部分可以放入資料快取中,從而提高系統效能。
在 Nios V 處理器中啟用快取會建立記憶體層次結構,從而最大限度地縮短記憶體存取時間。
2.3.1.2.1. 週邊區域
任何嵌入式週邊 IP,例如 UART、I2C 和 SPI,都不得快取。強烈建議對受長存取時間影響的外部記憶體進行緩存,而內部片上記憶體由於存取時間較短,可以排除在外。除記憶體外,您不得快取任何嵌入式週邊 IP,例如 UART、I2C 和 SPI。這一點很重要,因為來自外部設備的事件(例如更新軟 IP 的代理設備)不會被處理器快取捕獲,而不會被處理器接收。因此,這些事件可能會被忽略,直到您刷新緩存,這可能會導致系統出現意外行為。總而言之,嵌入式週邊 IP 的記憶體映射區域無法緩存,必須位於處理器的周邊區域內。
若要設定外圍區域,請依照下列步驟操作:
1. 在平台設計器中開啟系統的位址映射。
2. 導覽至處理器的指令管理器和資料管理器的位址圖。
3. 識別系統中的周邊設備和記憶體。
圖 12. 前amp地址映射表
注意:藍色箭頭指向記憶體。 4. 分組週邊:
a. 內存可緩存 b. 外設不可緩存
傳送回饋
Nios® V 嵌入式處理器設計手冊 27
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
表 19. 可緩存和不可緩存區域
下屬
地址地圖
地位
邊緣區域
尺寸
基地址
用戶應用程式記憶體.s1
0x0 ~ 0x3ffff
可緩存
不適用
不適用
cpu.dm_agent bootcopier_rom.s1
0x40000 ~ 0x4ffff 0x50000 ~ 0x517ff
不可緩存 可緩存
65536 位元組 不適用
0x40000 不適用
bootcopier_ram.s1 cpu.timer_sw_agent 信箱.avmm
0x52000 ~ 0x537ff 0x54000 ~ 0x5403f 0x54040 ~ 0x5407f
可緩存 不可緩存 不可緩存
144 位元組(最小為 65536 位元組)
0x54000
sysid_qsys_0.控制從站
0x54080 ~ 0x54087
不可緩存
uart.avalon_jtag_奴隸
0x54088 ~ 0x5408f
不可緩存
5. 將外圍區域與其特定尺寸對齊:
· 對於前amp例如,如果大小為 65536 字節,則對應 0x10000 位元組。因此,允許的基底位址必須是 0x10000 的倍數。
· CPU.dm_agent 使用的基底位址為 0x40000,是 0x10000 的倍數。因此,大小為 65536 位元組、基底位址為 0x40000 的周邊區域 A 符合要求。
· 位於 0x54000 的不可緩存區域集合的基址不是 0x10000 的倍數。您必須將它們重新指派給 0x60000 或 0x10000 的其他倍數。因此,大小為 65536 位元組、基址為 0x60000 的周邊區域 B 符合條件。
表 20. 可緩存和不可緩存區域(帶重新分配)
下屬
地址地圖
地位
邊緣區域
尺寸
基地址
用戶應用程式記憶體.s1
0x0 ~ 0x3ffff
可緩存
不適用
不適用
CPU.DM_代理
0x40000 ~ 0x4ffff
不可緩存的 65536 位元組
0x40000
引導複製器_rom.s1
0x50000 ~ 0x517ff
可緩存
不適用
不適用
bootcopier_ram.s1 cpu.timer_sw_agent 郵箱.avmm sysid_qsys_0.control_slave
0x52000 ~ 0x537ff 0x60000 ~ 0x6003f 0x60040 ~ 0x6007f 0x60080 ~ 0x60087
可緩存 不可緩存 不可緩存 不可緩存
144 位元組(最小為 65536 位元組)
0x60000
uart.avalon_jtag_奴隸
0x60088 ~ 0x6008f
不可緩存
2.3.1.3. 緊密耦合內存
緊密耦合記憶體 (TCM) 採用片上記憶體實現,其低延遲特性使其非常適合該任務。 TCM 是映射到典型位址空間的記憶器,但具有與微處理器的專用接口,並具備高速緩存的高效能、低延遲特性。 TCM 也為外部主機提供了一個下級介面。處理器和外部主機具有相同的權限等級來處理 TCM。
Nios® V 嵌入式處理器設計手冊 28
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
筆記:
當 TCM 從屬連接埠連接到外部主機時,其顯示的基底位址可能與處理器核心中分配的基底位址不同。 Altera 建議將兩個位址對齊為相同的值。
2.3.1.4. 外部記憶體介面(EMIF)
EMIF(外部記憶體介面)的功能與 SRAM(靜態隨機存取記憶體)類似,但它是動態的,需要定期刷新以保持其內容。 EMIF 中的動態儲存單元比 SRAM 中的靜態儲存單元小得多,因此可以實現更高容量且更低成本的儲存設備。
除了刷新要求外,EMIF 還具有特定的介面要求,通常需要專門的控制器硬體。與具有固定位址線的 SRAM 不同,EMIF 將其記憶體空間組織為儲存體、行和列。在儲存體和行之間切換會帶來一些開銷,因此必須謹慎安排記憶體存取順序才能有效使用 EMIF。 EMIF 也在同一位址線上重複使用行位址和列位址,從而減少了給定 EMIF 大小所需的引腳數量。
EMIF 的更高速版本(例如 DDR、DDR2、DDR3、DDR4 和 DDR5)對 PCB 設計人員提出了嚴格的訊號完整性要求,必須考慮這些要求。
EMIF 裝置是目前最具成本效益和高容量的 RAM 類型之一,因此廣受歡迎。 EMIF 介面的一個關鍵元件是 EMIF IP,它負責管理與位址重複使用、刷新以及行和儲存體之間切換相關的任務。這種設計允許系統的其餘部分存取 EMIF,而無需了解其內部架構。
相關資訊 外部記憶體介面 IP 支援中心
2.3.1.4.1. 位址跨距擴展器 IP
Altera 位址跨距擴展器 FPGA IP 允許記憶體對映的主機介面存取大於或小於其位址訊號寬度的位址對映。位址跨度擴展器 IP 將可尋址空間拆分為多個獨立的窗口,以便主機可以透過該窗口存取記憶體的相應部分。
位址跨度擴展器不會將主機和代理程式的位元寬限制為 32 位元和 64 位元。您可以將位址跨度擴展器與 1-64 位元的位址視窗一起使用。
傳送回饋
Nios® V 嵌入式處理器設計手冊 29
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
圖 13. 位址跨距擴展器 Altera FPGA IP
代理字位址
位址跨度擴展器
A
映射表
控制端口A
…
控制暫存器 0 控制暫存器 Z-1
擴展主機位址 H
相關資訊
Quartus® Prime Pro Edition 使用者指南:平台設計器有關更多信息,請參閱主題地點跨度擴展器 Intel® FPGA IP。
2.3.1.4.2. 使用位址跨距擴展器 IP 和 Nios V 處理器
32 位元 Nios V 處理器最多可尋址 4 GB 的位址跨度。如果 EMIF 包含超過 4 GB 的內存,則會超出支援的最大位址跨度,從而導致 Platform Designer 系統出錯。需要使用位址跨距擴展器 IP 來解決此問題,方法是將單一 EMIF 位址空間分割為多個較小的視窗。
Altera 建議您考慮以下參數。
表 21. 位址跨距擴展器參數
範圍
推薦設置
資料路徑寬度
擴展主位元組位址寬度
選擇 32 位,這與 32 位處理器相關。取決於 EMIF 記憶體大小。
從屬字位址寬度突發計數寬度
選擇 2 GB 或更少。 Nios V 處理器的剩餘位址跨距保留給其他嵌入式軟 IP。
從 1 開始並逐漸增加該值以提高效能。
子視窗數量
如果您想要將 EMIF 連接到 Nios V 處理器作為指令和資料記憶體(或兩者兼有),請選擇 1 個子視窗。當 Nios V 處理器從 EMIF 執行時,在多個子視窗之間切換是危險的。
啟用從屬控制端口
如果您要將 EMIF 連接到 Nios V 處理器作為指令和/或資料記憶體,請停用從屬控制連接埠。與子視窗數量問題相同。
最大待處理讀取數
從 1 開始並逐漸增加該值以提高效能。
Nios® V 嵌入式處理器設計手冊 30
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
圖 14. 將指令和資料管理器連接到位址跨距擴展器
圖 15. 地址映射
請注意,位址跨度擴展器可以存取 EMIF 的整個 8GB 記憶體空間。但是,透過位址跨度擴展器,Nios V 處理器只能存取 EMIF 的前 1GB 記憶體空間。
圖 16. 簡化框圖
平台設計系統
剩餘 3 GB
Nios V處理器位址
span 用於嵌入式
NNioios sVV PProrocecsesosor r
M
同一系統中的軟IP。
1 GB 視窗
地址跨度
S
延長器
M
限前 1 GB
EMIF 記憶體連接到 Nios V
電磁幹擾函數
處理器。
8GB
S
傳送回饋
Nios® V 嵌入式處理器設計手冊 31
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
2.3.1.4.3. 定義位址跨距擴展器連結器記憶體設備 1. 將位址跨距擴展器 (EMIF) 定義為重設向量。或者,您可以將 Nios V 處理器重設向量指派給其他記憶體,例如 OCRAM 或快閃記憶體裝置。
圖 17. 重設向量的多種選擇
然而,板級支援包 (BSP) 編輯器無法自動將位址跨距擴充器 (EMIF) 註冊為有效記憶體。根據您所做的選擇,您會看到兩種不同的情況,如下圖所示。圖 18. 將位址跨距擴展器 (EMIF) 定義為重設向量時出現的 BSP 錯誤
Nios® V 嵌入式處理器設計手冊 32
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
圖 19. 將其他記憶體定義為重設向量時缺少 EMIF
2. 您必須使用 BSP 連結器腳本標籤中的新增記憶體裝置、新增連結器記憶體區域和新增連結器部分對應手動新增位址跨距擴充器 (EMIF)。
3. 請依照下列步驟操作:
a. 使用記憶體映射確定位址跨距擴展器的位址跨距(examp下圖中的 le 使用位址跨度擴展器範圍從 0x0 到 0x3fff_ffff)。
圖 20. 記憶體映射
b. 點擊“新增記憶體設備”,並根據您設計記憶體映射中的資訊填寫:i. 裝置名稱:emif_ddr4。注意:確保從記憶體映射複製相同的名稱。 ii. 基址:0x0 iii. 大小:0x40000000
c.按一下「新增」以新增新的連結器記憶體區域:
傳送回饋
Nios® V 嵌入式處理器設計手冊 33
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
表 22. 新增連結器記憶體區域
步驟
重設向量
emif_ddr4
其他記憶
1
新增一個名為 reset 的新連結器記憶體區域。為
· 區域名稱:重置
emif_ddr4。
· 區域大小:0x20
· 區域名稱:emif_ddr4
· 儲存設備:emif_ddr4
· 區域大小:0x40000000
· 記憶體偏移量:0x0
· 儲存設備:emif_ddr4
· 記憶體偏移量:0x0
2
為
剩餘的 emif_ddr4。
· 區域名稱:emif_ddr4
· 區域大小:0x3fffffe0
· 儲存設備:emif_ddr4
· 記憶體偏移量:0x20
圖 21. 將位址跨距擴展器 (EMIF) 定義為重設向量時的連結器區域
圖 22. 將其他記憶體定義為重設向量時的連結器區域
d. 將 emif_ddr4 新增至 BSP 後,您可以為任何連結器部分選擇它。
圖 23. 成功新增位址跨距擴展器 (EMIF)
e. 忽略儲存裝置 emif_ddr4 在 SOPC 設計中看不見的警告。
f.繼續生成 BSP。
相關資訊 Nios V 處理器啟動方法簡介 (第 51 頁)
Nios® V 嵌入式處理器設計手冊 34
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
2.3.2. 非揮發性記憶體
非揮發性記憶體在電源關閉時仍能保留其內容,因此非常適合用於儲存系統在電源關閉後必須檢索的資訊。非揮發性記憶體通常儲存處理器引導程式碼、持久性應用程式設定以及 Altera FPGA 配置資料。儘管非揮發性記憶體具有以下優勢:tag非揮發性記憶體在斷電後仍能保留數據,因此其速度比易失性記憶體慢得多,而且寫入和擦除程式通常也更為複雜。非揮發性記憶體通常只能確保一定次數的可擦除,超過此次數後可能會失效。
Examp非揮發性記憶體包括所有類型的快閃記憶體、EPROM 和 EEPROM。 Altera 建議將 Altera FPGA 位元流和 Nios V 程式映像儲存在非揮發性記憶體中,並使用序列快閃記憶體作為 Nios V 處理器的啟動裝置。
相關資訊
· 通用序列快閃記憶體介面 Altera FPGA IP 使用者指南
· 信箱用戶端 Altera FPGA IP 使用者指南 · MAX® 10 使用者快閃使用者指南:片上閃存 Altera FPGA IP 核
2.4. 時鐘與重設最佳實踐
了解 Nios V 處理器時脈和重設域如何與其連接的每個週邊裝置互動至關重要。一個簡單的 Nios V 處理器系統最初只有一個時脈域,而當快速時脈域與慢速時脈域發生衝突時,多時脈域系統就會變得複雜。您需要注意並理解這些不同時脈域在重設後的排序方式,並確保沒有任何細微的問題。
為了實現最佳實踐,Altera 建議將 Nios V 處理器和啟動記憶體放置在同一個時脈域中。當 Nios V 處理器從位於極慢時脈域的記憶體啟動時,請勿將其從快速時脈域的重設狀態釋放,否則可能會導致指令取得錯誤。除了 Platform Designer 預設提供的重設順序之外,您可能需要一些手動排序,並根據您的用例規劃相應的重設釋放拓撲。如果您想在系統啟動並運行一段時間後重位,請將相同的注意事項套用至系統重設順序和重設後初始化要求。
2.4.1. 系統 JTAG 鐘
在每個 Nios V 處理器系統中指定時脈約束都是重要的系統設計考慮因素,並且是確保正確性和確定性行為的必要條件。 Quartus Prime 時序分析器執行靜態時序分析,使用業界標準的限制、分析和報告方法驗證設計中所有邏輯的時序效能。
Example 1. 基本 100 MHz 時鐘,佔空比為 50/50,16 MHz JTAG 鐘
#****************************************************************** # 建立 100MHz 時鐘 #****************************************************************************** 建立 10MHz JTAG 鐘 #************************
傳送回饋
Nios® V 嵌入式處理器設計手冊 35
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
create_clock -name {altera_reserved_tck} -period 62.500 [get_ports {altera_reserved_tck}] set_clock_groups -asynchronous -group [get_clocks {altera_reserved_tck}] 相關資訊 Quartus 時序分析器手冊
2.4.2. 重置請求接口
Nios V 處理器包含一個可選的重設請求功能。重設請求功能由 reset_req 和 reset_req_ack 訊號組成。
若要在 Platform Designer 中啟用重設要求:1. 啟動 Nios V 處理器 IP 參數編輯器。 2. 在使用重設請求設定中,開啟新增復位請求介面
選項。
圖 24. 啟用 Nios V 處理器重設請求
reset_req 訊號的作用類似於中斷。當您置位 reset_req 時,您正在要求重置核心。核心會等待任何未完成的總線事務完成其操作。例如amp例如,如果有待處理的記憶體存取事務,核心將等待完整的回應。同樣,核心在收到 reset_req 訊號後,會接受任何待處理的指令回應,但不會發出指令請求。
重設操作包含以下流程:1. 完成所有待處理操作 2. 刷新內部管線 3. 將程式計數器設定為重設向量 4. 重設核心。整個復歸操作需要幾個時脈週期。 reset_req 必須保持有效,直到 reset_req_ack 被置位,表示內核重設操作已成功完成。否則,核心的狀態將不確定。
Nios® V 嵌入式處理器設計手冊 36
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
2.4.2.1. 典型用例
· 您可以在上電時置位 reset_req 訊號,以防止 Nios V 處理器核心從其重設向量開始執行程序,直到系統中的其他 FPGA 主機初始化 Nios V 處理器啟動記憶體。在這種情況下,整個子系統可以進行乾淨的硬體重設。 Nios V 處理器將無限期地保持在重設請求狀態,直到其他 FPGA 主機初始化處理器啟動記憶體。
· 在必須重置 Nios V 處理器核心而不中斷系統其餘部分的系統中,您可以斷言 reset_req 訊號以徹底停止核心的當前操作,並在系統釋放 reset_req_ack 訊號後從重置向量重新啟動處理器。
· 外部主機可以使用重設請求介面來簡化下列任務的實作:
— 暫停目前的 Nios V 處理器程式。
— 將新程式載入到 Nios V 處理器啟動記憶體中。
— 允許處理器開始執行新程式。
Altera 建議您實作逾時機制來監控 reset_req_ack 訊號的狀態。如果 Nios V 處理器核心陷入無限等待狀態並因未知原因而停止,則 reset_req_ack 無法無限期地置位。超時機制使您能夠:
· 定義恢復逾時時間並透過系統級重置執行系統恢復。
· 執行硬體級重置。
2.4.3. 重置釋放IP
基於 Altera SDM 的裝置採用並行、基於磁區的架構,將核心邏輯分佈在多個磁區。 Altera 建議您使用 Reset Release Altera FPGA IP 作為重設電路的初始輸入之一。基於 Intel® SDM 的設備包括 Stratix® 10 和 AgilexTM 設備。基於控制塊的設備不受此要求的影響。
相關資訊
AN 891:使用重設釋放 Altera FPGA IP
2.5. 指定預設代理
平台設計器可讓您指定一個預設代理作為錯誤回應預設代理。您指定的預設代理為嘗試以非解碼方式存取位址對應的主機提供錯誤回應服務。
以下情況會觸發未解碼事件:
· 總線事務安全狀態違規
· 事務存取未定義的記憶體區域
· 異常事件等。
傳送回饋
Nios® V 嵌入式處理器設計手冊 37
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
應該指定一個預設代理來處理此類事件,其中未定義的事務被重新路由到預設代理,隨後向 Nios V 處理器發出錯誤回應。
相關資訊
· Quartus Prime Pro Edition 使用者指南:平台設計器。指定預設代理
· Quartus Prime Pro Edition 使用者指南:Platform Designer。錯誤回應從屬 Altera FPGA IP
· Github – Qsys 的補充重設組件
2.6. 指定 UART 代理進行列印
列印功能對於調試軟體應用程式以及監控系統狀態非常有用。 Altera 建議列印基本訊息,例如啟動訊息、錯誤訊息以及軟體應用程式的執行進度。
避免在下列情況下使用 printf() 函式庫函數:· 如果沒有主機讀取輸出,printf() 函式庫會導致應用程式停頓。
這適用於 JTAG 限 UART。 · printf() 函式庫消耗大量程式記憶體。
2.6.1. 透過 J 防止失速TAG 串口
表 23. 傳統 UART 和 JTAG 串口
UART類型 傳統UART
描述
無論外部主機是否正在監聽,都會傳送串列資料。如果沒有主機讀取串行數據,則數據會遺失。
JTAG 串口
將傳輸的資料寫入輸出緩衝區,並依靠外部主機從緩衝區讀取以清空它。
JTAG 當輸出緩衝區已滿時,UART 驅動器將等待。 JTAG UART 驅動器等待外部主機從輸出緩衝區讀取數據,然後再寫入更多發送資料。此過程可防止發送資料遺失。
然而,當不需要係統偵錯時,例如在生產過程中,嵌入式系統是在沒有連接到 J 的主機 PC 的情況下部署的。TAG UART。如果系統選擇了 JTAG UART 作為 UART 代理,由於沒有連接外部主機,可能會導致系統停轉。
為了防止J拖延TAG UART,應用以下選項:
Nios® V 嵌入式處理器設計手冊 38
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
表 24. J 防止失速TAG 串口
選項
無 UART 介面和驅動程式
使用其他UART介面和驅動程式
保留JTAG UART接口(無需驅動程式)
硬體開發期間(在平台設計器中)
軟體開發期間(在板級支援包編輯器中)
刪除JTAG 來自系統的 UART
將 hal.stdin、hal.stdout 和 hal.stderr 配置為 None。
替換 JTAG UART與其他軟體配置hal.stdin、hal.stdout和hal.stderr
UART IP
與其他軟UART IP。
保留JTAG 系統中的 UART
· 在板級支援包編輯器中將 hal.stdin、hal.stdout 和 hal.stderr 配置為 None。
· 禁用 JTAG BSP 驅動程式標籤中的 UART 驅動程式。
2.7. JTAG 訊號
Nios V 處理器除錯模組使用 JTAG 軟體 ELF 下載和軟體偵錯的介面。當您使用 JTAG 介面,JTAG 訊號 TCK、TMS、TDI 和 TDO 作為設計的一部分實現。指定 JTAG 每個 Nios V 處理器系統中的訊號約束都是重要的系統設計考慮因素,並且是正確性和確定性行為所必需的。
Altera 建議任何設計的系統時脈頻率至少為 JTAG 時脈頻率以確保片上儀表(OCI)核心正常運作。
相關資訊· Quartus® Prime 時序分析器手冊:JTAG 訊號
有關 J 的更多信息TAG 時序約束指南。 · KDB:為什麼 niosv-download 在非管線 Nios® V/m 處理器上失敗
JTAG 頻率24MHz還是16Mhz?
2.8. 優化平台設計器系統效能
平台設計器提供了用於優化 Altera FPGA 設計系統互連性能的工具。
傳送回饋
Nios® V 嵌入式處理器設計手冊 39
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計
726952 | 2025.07.16
圖 25. 最佳化範例amp萊斯
前任amp圖中所示的範例示範了以下步驟:
1. 新增管道橋,透過以下方式緩解關鍵路徑:a. 指令管理器及其代理程式之間 b. 資料管理器及其代理程式之間
2. 在應用真正的雙埠片上 RAM,每個連接埠分別專用於指令管理器和資料管理器
Nios® V 嵌入式處理器設計手冊 40
傳送回饋
2. 使用 Quartus Prime 軟體和 Platform Designer 進行 Nios V 處理器硬體系統設計 726952 | 2025.07.16
請參閱下面的相關鏈接,其中介紹了利用可用工具的技術以及每種實現方式的權衡。
相關資訊·Quartus® Prime Pro Edition 使用者指南:Platform Designer
有關更多信息,請參閱優化 Platform Designer 系統性能主題。 · Quartus® Prime 標準版使用者指南:Platform Designer 有關更多信息,請參閱優化 Platform Designer 系統性能主題。
傳送回饋
Nios® V 嵌入式處理器設計手冊 41
726952 | 2025.07.16 反饋意見
3. Nios V處理器軟體系統設計
本章介紹 Nios V 處理器軟體開發流程以及可用於開發嵌入式設計系統的軟體工具。本章內容作為概述。view 在開發Nios V處理器軟體系統之前。
圖 26. 軟體設計流程
開始
使用 BSP 編輯器在平台設計器中產生 BSP
使用 Nios V 指令 Shell 產生 BSP
生成應用程式 CMake 構建 File 使用 Nios V 指令 Shell
筆記:
導入 BSP 和應用程式 CMake 構建 File
使用
適用於英特爾 FPGA 的 RiscFree IDE
使用任何
命令列原始碼編輯器、CMake 和 Make
命令
結尾
Altera 建議您使用 Altera FPGA 開發套件或客製化原型板進行軟體開發和除錯。許多周邊和系統級功能只有在實際開發板上運作時才可用。
© Altera Corporation。 Altera、Altera 標誌、「a」標誌和其他 Altera 標誌均為 Altera Corporation 的商標。 Altera 保留隨時更改任何產品和服務的權利,恕不另行通知。除非獲得 Altera 的明確書面同意,否則 Altera 對因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務概不負責。建議 Altera 客戶在依賴任何已發佈的資訊以及訂購產品或服務之前,先取得最新版本的裝置規格。 *其他名稱和品牌可能為其他方所有。
3. Nios V處理器軟體系統設計 726952 | 2025.07.16
3.1. Nios V處理器軟體開發流程
3.1.1. 董事會支持包項目
Nios V 板級支援包 (BSP) 專案是一個包含系統特定支援程式碼的專用庫。 BSP 提供針對 Nios V 處理器硬體系統中單一處理器客製化的軟體執行環境。
Quartus Prime 軟體提供 Nios V 板級支援套件編輯器和 niosv-bsp 實用工具來修改控制 BSP 行為的設定。
BSP包含以下元素:·硬體抽象層·裝置驅動程式·可選軟體包·可選即時作業系統
3.1.2. 應用項目
Nios VC/C++ 應用程式專案具有以下特點:· 由原始碼集合和 CMakeLists.txt 組成。
— CMakeLists.txt 編譯原始碼並將其與 BSP 和一個或多個可選庫鏈接,以建立一個 .elf file
· 來源之一 files 包含函數 main()。 · 包含呼叫庫和 BSP 中的函數的程式碼。
Altera 在 Quartus Prime 軟體實用工具中提供了 niosv-app 實用工具來建立應用程式 CMakeLists.txt,並為 Altera FPGA 提供了 RiscFree IDE 來在基於 Eclipse 的環境中修改原始程式碼。
3.2. Altera FPGA 嵌入式開發工具
Nios V 處理器支援以下軟體開發工具:· 圖形使用者介面 (GUI) – 圖形開發工具
Windows* 和 Linux* 作業系統 (OS)。 — Nios V 板級支援套件編輯器(Nios V BSP 編輯器)— 適用於 Altera FPGA 的 Ashling RiscFree IDE · 命令列工具 (CLI) – 從 Nios V 命令外殼啟動的開發工具。每個工具都以命令列存取的幫助形式提供各自的文件。打開 Nios V 命令外殼並輸入以下命令: –幫助 view 幫助菜單。 — Nios V 實用程式工具 — File 格式轉換工具 — 其他實用工具
傳送回饋
Nios® V 嵌入式處理器設計手冊 43
3. Nios V處理器軟體系統設計 726952 | 2025.07.16
表 25. GUI 工具和命令列工具任務摘要
任務
圖形化工具
命令列工具
創建BSP
Nios V BSP 編輯器
· 在 Quartus Prime Pro Edition 軟體中:niosv-bsp -c -s=<.qsys file> -t= [選項] 設定.bsp
· 在 Quartus Prime 標準版軟體中:niosv-bsp -c -s=<.sopcinfo file> -t= [選項] 設定.bsp
使用現有.bsp產生BSP file
更新BSP
Nios V BSP 編輯器 Nios V BSP 編輯器
niosv-bsp -g [選項] 設定.bsp niosv-bsp -u [選項] 設定.bsp
檢查BSP
Nios V BSP 編輯器
niosv-bsp -q -E= [選項] 設定.bsp
創建應用程式
–
niosv-app -a= -b= -s= files 目錄> [選項]
建立使用者庫
–
niosv-app -l= -s= files 目錄> -p= [選項]
修改應用程式 修改使用者庫 建置應用程式
適用於 Altera FPGA 的 RiscFree IDE
適用於 Altera FPGA 的 RiscFree IDE
適用於 Altera FPGA 的 RiscFree IDE
任何命令列原始碼編輯器
任何命令列原始碼編輯器
· 製作 · cmake
建立用戶庫
適用於 Altera FPGA 的 RiscFree IDE
· 製作 · cmake
下載應用程式 ELF
轉換 .elf file
適用於 Altera FPGA 的 RiscFree IDE
–
niosv 下載
· elf2flash · elf2hex
相關資訊
Ashling RiscFree Altera FPGA 整合開發環境 (IDE) 使用者指南
3.2.1. Nios V 處理器板支援包編輯器
您可以使用 Nios V 處理器 BSP 編輯器執行以下任務:· 建立或修改 Nios V 處理器 BSP 專案· 編輯設定、連結器區域和部分映射· 選擇軟體包和裝置驅動程式。
BSP 編輯器的功能包含 niosv-bsp 實用程式的功能。在 BSP 編輯器中建立的任何專案都可以使用命令列實用程式建立。
Nios® V 嵌入式處理器設計手冊 44
傳送回饋
3. Nios V處理器軟體系統設計 726952 | 2025.07.16
筆記:
對於 Quartus Prime 標準版軟體,請參閱 AN 980:Nios V 處理器 Quartus Prime 軟體支持,以了解呼叫 BSP 編輯器 GUI 的步驟。
若要啟動 BSP 編輯器,請依照下列步驟操作: 1. 開啟 Platform Designer,然後導覽至 File 菜單。
a. 開啟現有的 BSP 設定 file,按一下開啟... b. 若要建立新的 BSP,請按一下新建 BSP... 2. 選擇 BSP 編輯器標籤並提供適當的詳細資訊。
圖 27. 啟動 BSP 編輯器
相關資訊 AN 980:Nios V 處理器 Quartus Prime 軟體支持
3.2.2. 適用於 Altera FPGA 的 RiscFree IDE
RiscFree IDE for Altera FPGAs 是一款以 Eclipse 為基礎的 Nios V 處理器 IDE。 Altera 建議您在此 IDE 中開發 Nios V 處理器軟體,原因如下:· 這些功能經過開發和驗證,與 Nios V 相容。
處理器建置流程。 · 配備所有必要的工具鍊和支援工具,讓您能夠
輕鬆開始Nios V處理器開發。
相關資訊 Ashling RiscFree 整合開發環境 (IDE)(適用於 Altera FPGA 使用者指南)
3.2.3. Nios V 實用程式工具
您可以使用在命令列中鍵入的命令或嵌入在腳本中的命令來建立、修改和建置 Nios V 程式。本節介紹的 Nios V 命令列工具位於/niosv/bin 目錄。
傳送回饋
Nios® V 嵌入式處理器設計手冊 45
3. Nios V處理器軟體系統設計 726952 | 2025.07.16
表 26. Nios V 實用程式工具
命令列工具
概括
niosv-app niosv-bsp niosv-下載 niosv-shell niosv-堆疊報告
生成並配置應用程式項目。
建立或更新 BSP 設定 file 並創建 BSP files. 下載 ELF file 到 Nios® V 處理器。
開啟 Nios V 命令 Shell。告知您應用程式 .elf 中可用於堆疊或堆疊使用的剩餘記憶體空間。
3.2.4. File 格式轉換工具
File 當將資料從一個實用程式傳遞到另一個實用程式時,有時需要進行格式轉換。 file 格式轉換工具位於
軟體安裝目錄>/niosv/bin目錄。
表 27. File 格式轉換工具
命令列工具 elf2flash elf2hex
摘要 翻譯 .elf file 轉換為 .srec 格式,用於快閃記憶體編程。要將 .elf 檔案轉換為 file 為.hex格式進行記憶體初始化。
3.2.5. 其他實用工具
建置基於 Nios V 處理器的系統時,可能需要以下命令列工具。這些命令列工具由英特爾提供, /quartus/bin 或從以下位置取得
開源工具。
表 28. 其他命令列工具
命令列工具
類型
概括
Juart 終端
英特爾提供的
監控 stdout 和 stderr,並向 Nios® V 處理器提供輸入
子系統透過 stdin 進行操作。此工具僅適用於 JTAG 當它連接到 Nios® V 處理器時,UART IP。
openocd
英特爾提供的執行 OpenOCD。
openocd-cfg-gen
Intel 提供的 · 生成 OpenOCD 配置 file.· 顯示 JTAG 鏈設備索引。
Nios® V 嵌入式處理器設計手冊 46
傳送回饋
726952 | 2025.07.16 反饋意見
4. Nios V處理器配置及啟動方案
您可以設定 Nios V 處理器從不同的記憶體位置啟動和執行軟體。啟動記憶體可以是四路串列週邊介面 (QSPI) 快閃記憶體、片上記憶體 (OCRAM) 或緊密耦合記憶體 (TCM)。
相關資訊 · 第 193 頁的「上電觸發條件」 · 上電觸發器
有關加電觸發器的詳細資訊。
一、簡介
Nios V 處理器支援兩種類型的啟動過程:· 使用 alt_load() 函數的就地執行 (XIP) · 使用引導複製器將程式複製到 RAM。 Nios V 嵌入式程式開發是基於硬體抽象層 (HAL)。 HAL 提供了一個小型引導程式(也稱為引導複製器),它在啟動時將相關的連結器部分從引導記憶體複製到其運行時位置。您可以透過操作板級支援包 (BSP) 編輯器設定來指定程式和資料記憶體的執行時間位置。本節介紹:· Nios V 處理器引導複製器,它根據
啟動記憶體選擇·Nios V 處理器啟動選項和一般流程·針對所選啟動記憶體的 Nios V 程式解決方案
4.2. 連結應用程式
當你產生 Nios V 處理器專案時,BSP 編輯器會產生兩個與連結器相關的 files:·linker.x:連結器指令 file 生成的應用程式的 makefile 用途
建立 .elf 二進位文件 file· linker.h:包含有關連結器記憶體佈局的資訊。您對 BSP 專案所做的所有連結器設定修改都會影響這兩個連結器的內容 files. 每個 Nios V 處理器應用程式都包含以下連結器部分:
© Altera Corporation。 Altera、Altera 標誌、「a」標誌和其他 Altera 標誌均為 Altera Corporation 的商標。 Altera 保留隨時更改任何產品和服務的權利,恕不另行通知。除非獲得 Altera 的明確書面同意,否則 Altera 對因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務概不負責。建議 Altera 客戶在依賴任何已發佈的資訊以及訂購產品或服務之前,先取得最新版本的裝置規格。 *其他名稱和品牌可能為其他方所有。
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
表 29. 連結器部分
.文字
連結器部分
.rodata
.rw數據
.bss
。堆疊
。堆疊
描述:可執行程式碼。程式執行過程中使用的任何唯讀資料。儲存程式執行過程中使用的讀寫資料。包含未初始化的靜態資料。包含動態分配的記憶體。儲存函數呼叫參數和其他臨時資料。
您可以為 .elf 添加額外的連結器部分 file 用於保存自訂程式碼和資料。這些連結器段位於命名的記憶體區域中,這些區域定義為與實體記憶體裝置和位址相對應。預設情況下,BSP 編輯器會自動產生這些連結器段。但是,您可以根據特定應用程式控制連結器段。
4.2.1. 連結行為
本節介紹 BSP 編輯器預設連結行為以及如何控制連結行為。
4.2.1.1. 預設 BSP 鏈接
在 BSP 設定期間,工具會自動執行下列步驟:
1. 分配記憶體區域名稱:為每個系統記憶體設備分配一個名稱,並將每個名稱加入連結器 file 作為記憶體區域。
2. 尋找最大記憶體:確定連結器中最大的讀寫記憶體區域 file.
3. 分配連結器部分:將預設連結器部分(.text、.rodata、.rwdata、.bss、.heap 和 .stack)放置在上一個步驟中確定的記憶體區域中。
4.寫 files:寫 linker.x 和 linker.h files.
通常,連結器部分分配方案在軟體開發過程中起作用,因為如果記憶體足夠大,就可以保證應用程式正常運作。
預設連結行為的規則包含在 Altera 產生的 Tcl 腳本 bsp-set-defaults.tcl 和 bsp-linker-utils.tcl 中,它們位於/niosv/scripts/bsp-defaults 目錄。 niosv-bsp 指令會呼叫這些腳本。請勿直接修改這些腳本。
Nios® V 嵌入式處理器設計手冊 48
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
4.2.1.2. 可設定的 BSP 鏈接
您可以在 BSP 編輯器的「連結器腳本」標籤中管理預設連結行為。使用以下方法操作連結器腳本:· 新增記憶體區域:將記憶體區域名稱對應到實體記憶體裝置。 · 新增段映射:將段名稱對應到記憶體區域。 BSP
編輯器允許您 view 更改前後的記憶體映射。
4.3. Nios V 處理器啟動方法
在 Altera FPGA 裝置中,有幾種方法可以啟動 Nios V 處理器。啟動 Nios V 處理器的方法會因快閃記憶體選擇和裝置系列而異。
表 30. 支援的快閃記憶體及其對應的啟動選項
支援的啟動內存
裝置
片上快閃記憶體(用於內部配置)
最多僅 10 個裝置(帶有片上快閃 IP)
通用 QSPI 快閃記憶體(僅用於使用者資料)
所有支援的 FPGA 設備(具有通用序列快閃記憶體介面 FPGA IP)
設定 QSPI Flash(用於主動串行設定)
基於控制塊
設備(附通用
串列快閃記憶體介面英特爾 FPGA IP)(2)
Nios V 處理器啟動方法
應用程式運行時位置
引導複製程序
Nios V 處理器應用程式從片上快閃記憶體執行
片上快閃記憶體 (XIP) + OCRAM/外部 RAM(用於可寫入資料部分)
alt_load() 函數
使用引導複製程式將 Nios V 處理器應用程式從片上閃存複製到 RAM
OCRAM/外部RAM
透過 GSFI 重複使用開機載入程式
Nios V 處理器應用程式從通用 QSPI 快閃記憶體就地執行
通用 QSPI 快閃記憶體 (XIP) + OCRAM/外部 RAM(用於可寫入資料部分)
alt_load() 函數
使用引導複製程式將 Nios V 處理器應用程式從通用 QSPI 快閃記憶體複製到 RAM
OCRAM/外部RAM
透過 GSFI 引導程式
Nios V 處理器應用程式從配置 QSPI 快閃記憶體就地執行
配置 QSPI 快閃記憶體 (XIP) + OCRAM/外部 RAM(用於可寫入資料部分)
alt_load() 函數
使用引導複製程式將 Nios V 處理器應用程式從配置 QSPI 快閃記憶體複製到 RAM
OCRAM/透過 GSFI 的外部 RAM 開機載入程式(續)…
(2)有關裝置列表,請參閱 AN 980:Nios V 處理器 Quartus Prime 軟體支援。
傳送回饋
Nios® V 嵌入式處理器設計手冊 49
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
支援的啟動內存
片上記憶體 (OCRAM) 緊密耦合記憶體 (TCM)
裝置
基於 SDM 的設備(附有郵件信箱客戶端 Intel FPGA IP)。 (2)
所有支援的 Altera FPGA 裝置 (2)
所有受支援的 Altera FPGA 裝置(2)
Nios V 處理器啟動方法
使用引導複製程式將 Nios V 處理器應用程式從配置 QSPI 快閃記憶體複製到 RAM
Nios V 處理器應用程式從 OCRAM 就地執行
Nios V 處理器應用程式從 TCM 就地執行
應用程式運行時位置
引導複製程序
OCRAM/透過 SDM 的外部 RAM 引導程式
奧克拉瑪
alt_load() 函數
指令 TCM (XIP) 無 + 資料 TCM(用於可寫入資料部分)
圖 28. Nios V 處理器啟動流程
重置
處理器跳到重設向量(啟動程式碼開始)
應用程式程式碼可能會複製到另一個記憶體位置(取決於啟動選項)
引導程式碼初始化處理器
根據啟動選項,啟動程式碼可能會將資料/程式碼的初始值複製到另一個記憶體空間(alt_load)
引導程式碼初始化應用程式程式碼和資料儲存空間
引導程式碼使用 HAL 驅動程式(alt_main)初始化所有系統週邊
進入主介面
相關資訊·通用序列快閃記憶體介面 Altera FPGA IP 使用者指南
Nios® V 嵌入式處理器設計手冊 50
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
· 郵箱客戶端 Altera FPGA IP 使用者指南 · AN 980:Nios V 處理器 Quartus Prime 軟體支持
4.4. Nios V處理器啟動方式介紹
Nios V 處理器系統要求先在系統記憶體中設定軟體映像,然後處理器才能開始執行應用程式。請參閱“連結器部分”以了解預設連結器部分。
BSP 編輯器產生一個連結器腳本,該腳本執行以下功能:· 確保處理器軟體按照連結器設定進行鏈接
BSP 編輯器並確定軟體在記憶體中的位置。 · 根據
分配的記憶體組件。
以下部分簡要介紹可用的 Nios V 處理器啟動方法。
4.4.1. Nios V 處理器應用程式從啟動快閃記憶體就地執行
Altera 設計的快閃記憶體控制器讓 Nios V 處理器在系統重設後能夠立即存取開機快閃位址空間,而無需初始化記憶體控制器或記憶體裝置。這使得 Nios V 處理器能夠直接執行儲存在引導裝置上的應用程式程式碼,而無需使用引導複製程式將程式碼複製到其他類型的記憶體。快閃記憶體控制器包括:· 具有片上快閃記憶體 IP 的片上快閃記憶體(僅限 MAX® 10 元件)· 具有通用序列快閃程式介面 IP 的通用 QSPI 快閃記憶體· 帶有通用序列快閃介面 IP 的設定 QSPI 快閃記憶體(MAX 10 除外)
設備)
當 Nios V 處理器應用程式從啟動快閃記憶體執行時,BSP 編輯器執行以下功能:· 將 .text 連結器部分設定為啟動快閃記憶體區域。 · 將 .bss、.rodata、.rwdata、.stack 和 .heap 連結器部分設定為 RAM
記憶體區域。您必須在 BSP 設定中啟用 alt_load() 函數,以便在系統重設時將資料段(.rodata、.rwdata、.exceptions)複製到 RAM。程式碼段(.text)仍保留在開機快閃記憶體區域中。
相關資訊·通用序列快閃記憶體介面 Altera FPGA IP 使用者指南·Altera MAX 10 使用者快閃記憶體使用者指南
4.4.1.1. alt_load()
您可以使用 BSP 編輯器在 HAL 程式碼中啟用 alt_load() 函數。
在執行就地啟動流程中使用時,alt_load() 函數執行以下任務:
傳送回饋
Nios® V 嵌入式處理器設計手冊 51
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
· 作為微型啟動複製器運行,根據 BSP 設定將記憶體部分複製到 RAM。
· 將資料段(.rodata、.rwdata、.exceptions)複製到 RAM,但不複製程式碼段(.text)。程式碼段(.text)為唯讀段,保留在開機快閃記憶體區域。這種分區有助於最大限度地減少 RAM 佔用,但可能會限製程式碼執行效能,因為存取快閃記憶體的速度比訪問片上 RAM 的速度慢。
下表列出了 BSP 編輯器設定和功能:
表 31. BSP 編輯器設定
BSP 編輯器設定 hal.linker.enable_alt_load hal.linker.enable_alt_load_copy_rodata hal.linker.enable_alt_load_copy_rwdata hal.linker.enable_alt_load_copy_exceptions
功能啟用 alt_load() 函數。 alt_load() 將 .rodata 部分複製到 RAM。 alt_load() 將 .rwdata 部分複製到 RAM。 alt_load() 將 .exceptions 部分複製到 RAM。
4.4.2. 使用引導複製程式將 Nios V 處理器應用程式從引導閃存複製到 RAM
Nios V 處理器和 HAL 包含一個引導複製器,它為大多數 Nios V 處理器應用程式提供了足夠的功能,並且便於透過 Nios V 軟體開發流程實現。
當應用程式使用引導複製程式時,它會將所有連結器部分(.text、.heap、.rwdata、.rodata、.bss、.stack)設定為內部或外部 RAM。使用引導複製程式將 Nios V 處理器應用程式從引導閃存複製到內部或外部 RAM 進行執行,有助於提高執行效能。
對於此啟動選項,Nios V 處理器在系統重設後開始執行引導複製程式軟體。該軟體將應用程式從引導閃存複製到內部或外部 RAM。過程完成後,Nios V 處理器將程式控制權轉移給應用程式。
筆記:
如果引導複製程式位於快閃記憶體中,則不需要呼叫 alt_load() 函數,因為它們都具有相同的用途。
4.4.2.1. 透過通用序列快閃記憶體介面的 Nios V 處理器引導程式
透過 GSFI 啟動的引導程式是 Nios V 處理器的引導複製器,支援基於控制區塊的裝置中的 QSPI 快閃記憶體。透過 GSFI 啟動的引導程式包含以下功能:
· 將軟體應用程式定位在非揮發性記憶體中。
· 解壓縮軟體應用程式映像並將其複製到 RAM。
· 複製完成後,自動將處理器執行切換到 RAM 中的應用程式程式碼。
Nios® V 嵌入式處理器設計手冊 52
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
引導映像位於引導複製程式之後。您需要確保 Nios V 處理器重設偏移量指向引導複製程式的起始位置。下圖:透過 GSFI 實作引導程式的 QSPI 快閃記憶體記憶體映射。此圖顯示了使用引導複製程式時 QSPI 快閃記憶體的記憶體對映。此記憶體對應假設快閃記憶體儲存 FPGA 映像和應用軟體。
表 32. Nios V 處理器核心透過 GSFI 的引導程式
Nios V處理器內核
Nios V/m處理器
透過 GSFI 引導程式 File 地點
/niosv/components/開機載入程式/niosv_m_bootloader.srec
Nios V/g處理器
/niosv/components/開機載入程式/niosv_g_bootloader.srec
圖 29. 透過 GSFI 引導程式的 QSPI 快閃記憶體的記憶體映射
客戶資料(*.hex)
申請代碼
筆記:
重設向量偏移
引導複製程序
0x01E00000
FPGA 影像 (*.sof)
0x00000000
1. 記憶體映射的開始處是 FPGA 影像,後面跟著您的數據,其中包括引導複製程式和應用程式程式碼。
2. 您必須在 Platform Designer 中設定 Nios V 處理器重設偏移量,並將其指向引導複製程式的開始處。
3. FPGA 映像的大小未知。只有在 Quartus Prime 工程編譯後才能知道確切的大小。您必須確定 Altera FPGA 映像的大小上限。例如amp例如,如果估計 FPGA 映像的大小小於 0x01E00000,則在 Platform Designer 中將 Reset Offset 設定為 0x01E00000,這也是引導複製程式的啟動。
4. 良好的設計實務包括在快閃磁碟區邊界設定重設向量偏移,以確保在軟體應用程式更新時不會發生 FPGA 影像的部分擦除。
傳送回饋
Nios® V 嵌入式處理器設計手冊 53
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
4.4.2.2. 透過安全設備管理器啟動 Nios V 處理器引導程序
透過安全設備管理員 (SDM) 啟動的開機載入程式是一個 HAL 應用程式程式碼,利用郵件信箱用戶端 Altera FPGA IP HAL 驅動程式進行處理器啟動。 Altera 建議在使用基於 SDM 的裝置中的配置 QSPI 快閃記憶體啟動 Nios V 處理器時使用此開機載入程式應用程式。
系統重置後,Nios V 處理器首先透過 SDM 從微小的片上記憶體啟動引導程序,並透過 SDM 執行引導程式以使用郵箱客戶端 IP 與配置 QSPI 快閃記憶體進行通訊。
透過 SDM 的引導程式執行下列任務:· 在設定 QSPI 快閃記憶體中定位 Nios V 軟體。 · 將 Nios V 軟體複製到片上 RAM 或外部 RAM。 · 將處理器執行切換到片上 RAM 或外部 RAM 中的 Nios V 軟體。
外部 RAM。
過程完成後,透過 SDM 的引導程式會將程式控制權轉移給使用者應用程式。 Altera 建議按照 SDM 引導程式的記憶體組織中概述的記憶體組織方式進行記憶體組織。
圖 30. 透過 SDM 流程的引導程序
配置
閃光
2
Nios V 軟體
SDM
基於SDM的FPGA裝置
郵箱客戶端IP
FPGA邏輯Nios V
4 外部RAM
Nios V 軟體
片上 4
電磁幹擾函數
記憶體
片上存儲器
IP
Nios V
1
軟體
透過 SDM 進行引導程式
3
3
1. Nios V 處理器透過 SDM 從片上記憶體運行引導程式。
2. 引導程式透過 SDM 與設定快閃記憶體通訊並定位 Nios V 軟體。
3. 引導程式透過 SDM 將 Nios V 軟體從配置快閃記憶體複製到片上 RAM/外部 RAM 中。
4. 透過 SDM 的引導程式將 Nios V 處理器執行切換到片上 RAM / 外部 RAM 中的 Nios V 軟體。
4.4.3. Nios V 處理器應用程式從 OCRAM 就地執行
在此方法中,Nios V 處理器重設位址設定為片上記憶體 (OCRAM) 的基底位址。應用程式二進位檔案 (.hex) file 在 Quartus Prime 軟體中編譯硬體設計後,配置 FPGA 時會將其載入到 OCRAM 中。 Nios V 處理器重設後,應用程式開始執行並跳到入口點。
Nios® V 嵌入式處理器設計手冊 54
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
筆記:
· 從 OCRAM 執行就地執行不需要引導複製器,因為 Nios V 處理器應用程式在系統重置時已經到位。
· Altera 建議為此開機方法啟用 alt_load(),以便嵌入式軟體在重設時表現相同,而無需重新配置 FPGA 裝置映像。
· 您必須在 BSP 設定中啟用 alt_load() 函數,以便在系統重設時複製 .rwdata 段。在此方法中,已初始化變數的初始值與對應變數分開存儲,以避免在程式執行時被覆寫。
4.4.4. Nios V 處理器應用程式從 TCM 執行
就地執行方法將 Nios V 處理器重設位址設定為緊密耦合記憶體 (TCM) 的基底位址。應用程式二進位檔案 (.hex) file 在 Quartus Prime 軟體中編譯硬體設計後,配置 FPGA 時會載入到 TCM 中。 Nios V 處理器重設後,應用程式開始執行並跳到入口點。
筆記:
TCM 的現場執行不需要引導複製器,因為 Nios V 處理器應用程式在系統重置時已經到位。
4.5. Nios V 處理器從片上快閃記憶體(UFM)啟動
Nios V 處理器支援從片上快閃記憶體 (UFM) 啟動並執行軟體,適用於 MAX 10 FPGA 裝置。在內部設定模式下,Nios V 處理器支援以下兩種使用片上快閃記憶體的啟動選項:
· Nios V 處理器應用程式在片上快閃記憶體中就地執行。
· 使用引導複製程式將 Nios V 處理器應用程式從片上快閃記憶體複製到 RAM。
表 33. 支援的快閃記憶體及其對應的啟動選項
支援的啟動內存
Nios V 啟動方法
應用程式運行時位置
引導複製程序
僅限 MAX 10 裝置(附 OnChip Flash IP)
Nios V 處理器應用程式從片上快閃記憶體執行
使用引導複製程式將 Nios V 處理器應用程式從片上閃存複製到 RAM
片上快閃記憶體 (XIP) + OCRAM/外部 RAM(用於可寫入資料部分)
alt_load() 函數
OCRAM/外部RAM
透過 GSFI 重複使用開機載入程式
傳送回饋
Nios® V 嵌入式處理器設計手冊 55
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
圖 31.
設計、配置和啟動流程
設計·使用平台設計器創建基於 Nios V 處理器的專案。 ·確保系統設計中有外部 RAM 或片上 RAM。
FPGA配置和編譯
· 在 Platform Designer 和 Quartus Prime 軟體中,將 On-chip Flash IP 的內部設定模式設為相同。 · 將 Nios V 處理器重設代理程式設定為 On-chip Flash。 · 選擇您偏好的 UFM 初始化方法。 · 在 Platform Designer 中產生您的設計。 · 在 Quartus Prime 軟體中編譯您的工程。
使用者應用程式 BSP 專案 · 基於 .sopcinfo 建立 Nios V 處理器 HAL BSP file 由 Platform Designer 創建。 · 在 BSP 編輯器中編輯 Nios V 處理器 BSP 設定和連結器腳本。 · 產生 BSP 專案。
使用者應用程式APP專案·開發Nios V處理器應用程式程式碼。 ·編譯Nios V處理器應用程式並產生Nios V處理器應用程式(.hex) file。 · 如果您選取了 Intel FPGA On-Chip Flash IP 中的「初始化記憶體內容」選項,請在 Quartus Prime 軟體中重新編譯您的專案。
程式設計 File轉換、下載和運行·生成片上閃存.pof file 使用轉換編程 FileQuartus Prime 軟體中的功能。
· 對.pof 進行編程 file 進入您的 MAX 10 裝置。 · 對硬體進行電源循環。
4.5.1. MAX 10 FPGA 片上快閃記憶體描述
MAX 10 FPGA 裝置包含片上閃存,分為兩部分:· 配置快閃記憶體 (CFM) — 儲存硬體配置數據,用於
MAX 10 FPGA。 · 使用者快閃記憶體 (UFM) — 儲存使用者資料或軟體應用程式。
MAX 10 元件的 UFM 架構由軟 IP 和硬 IP 組成。您只能使用 Quartus Prime 軟體中的片上快閃 IP 核存取 UFM。
片上快閃 IP 核支援以下功能:· 對 UFM 和 CFM(如果在 Platform Designer 中啟用)磁區的讀取或寫入訪問
使用 Avalon MM 資料和控制從屬介面。 · 支援頁面擦除、磁區擦除和磁區寫入。 · 使用各種 EDA 模擬工具對 UFM 讀/寫存取進行模擬模型。
Nios® V 嵌入式處理器設計手冊 56
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
表 34. MAX 10 FPGA 裝置中的片上快閃記憶體區域
快閃記憶體區域
功能性
配置快閃記憶體(磁區 CFM0-2)
FPGA配置 file 貯存
用戶閃存(扇區UFM0-1)
Nios V處理器應用程式和使用者數據
MAX 10 FPGA 元件支援多種配置模式,其中一些模式允許將 CFM1 和 CFM2 用作額外的 UFM 區域。下表顯示了基於 MAX 10 FPGA 配置模式的 FPGA 配置映像的儲存位置。
表35. FPGA配置映像的儲存位置
配置模式雙壓縮影像
CFM2 壓縮影像 2
CFM1
CFM0 壓縮影像 1
單一未壓縮影像
虛擬 UFM
未壓縮的影像
具有記憶體初始化的單一未壓縮影像
未壓縮影像(帶有預先初始化的片上記憶體內容)
帶有記憶體初始化的單一壓縮影像壓縮影像(帶有預先初始化的片上記憶體內容)
單一壓縮影像
虛擬 UFM
壓縮影像
您必須使用片上閃存 IP 核來存取 MAX 10 FPGA 中的快閃記憶體。您可以在片上閃存 IP 並將其連接到 Quartus Prime 軟體。 Nios V 軟核心處理器使用 Platform Designer 互連與片上快閃 IP 進行通訊。
圖 32. 片上閃存 IP 與 Nios V 處理器之間的連接
筆記:
確保片上快閃記憶體 csr 連接埠連接到 Nios V 處理器資料管理器,以使處理器能夠控制寫入和擦除操作。
片上快閃 IP 核可以提供對五個快閃磁碟區的存取 - UFM0、UFM1、CFM0、CFM1 和 CFM2。
有關 UFM 和 CFM 扇區的重要資訊:· CFM 扇區用於配置(位元流)資料(*.pof)儲存。
· 如果在平台設計器工具中選擇了正確的設置,使用者資料可以儲存在 UFM 磁區中,並且可能會被隱藏。
· 某些裝置沒有 UFM1 磁區。您可以參考表格:UFM 和 CFM 磁區大小,以了解每個 MAX 10 FPGA 裝置中可用的磁區。
傳送回饋
Nios® V 嵌入式處理器設計手冊 57
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
· 您可以透過選擇單一未壓縮影像配置模式將 CFM2 配置為虛擬 UFM。
· 您可以透過選擇單一未壓縮影像配置模式將 CFM2 和 CFM1 配置為虛擬 UFM。
· 每個扇區的大小會隨所選的 MAX 10 FPGA 裝置而變化。
表 36.
UFM 和 CFM 扇區大小
下表列出了 UFM 和 CFM 陣列的尺寸。
裝置
每區頁數
UFM1 UFM0 CFM2 CFM1 CFM0
頁面大小(千位元)
最大用戶
快閃記憶體大小(Kbit) (3)
總配置記憶體大小(Kbit)
10M02 3
3
0
0
34 16
96
544
10M04 0
8
41 29 70 16
1248
2240
10M08 8
8
41 29 70 16
1376
2240
10M16 4
4
38 28 66 32
2368
4224
10M25 4
4
52 40 92 32
3200
5888
10M40 4
4
48 36 84 64
5888
10752
10M50 4
4
48 36 84 64
5888
10752
OCRAM大小(Kbit)
108 189 378 549 675 1260 1638
相關資訊 · MAX 10 FPGA 設定使用者指南 · Altera MAX 10 使用者快閃使用者指南
4.5.2. Nios V 處理器應用程式從 UFM 執行
UFM 解決方案中的 Execute-In-Place 適用於片上記憶體使用有限的 Nios V 處理器應用。 alt_load() 函數充當微型引導複製器,根據 BSP 設定將資料段(.rodata、.rwdata 或 .exceptions)從引導記憶體複製到 RAM。程式碼段(.text)、
只讀部分保留在 MAX 10 片上快閃記憶體區域。此設定可最大限度地減少 RAM 使用率,但可能會限製程式碼執行效能,因為存取快閃記憶體的速度比存取片上 RAM 的速度慢。
Nios V 處理器應用程式被編程到 UFM 扇區。 Nios V 處理器的重設向量指向 UFM 基底位址,以便在系統重設後從 UFM 執行程式碼。
如果您使用原始碼級偵錯器來偵錯應用程序,則必須使用硬體斷點。這是因為 UFM 不支援隨機記憶體訪問,而隨機記憶體存取是軟斷點調試所必需的。
筆記:
在 MAX 10 中執行就地執行時,您無法清除或寫入 UFM。如果您需要擦除或寫入 UFM,請切換到引導複製器方法。
(3)最大可能值,取決於您選擇的配置模式。
Nios® V 嵌入式處理器設計手冊 58
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
圖 33. 來自 UFM 的 Nios V 處理器應用程式 XIP
最多 10 個設備
塑膠光纖
Nios V 硬體.SOF
Nios V 軟體 .HEX
Quartus 編程器
片上快閃記憶體
CFM
Nios V 硬體
UFM
Nios V 軟體
內部配置
片上閃存IP
FPGA邏輯
Nios V處理器
片上 RAM
外部的
記憶體
電磁幹擾函數
IP
4.5.2.1. 硬體設計流程
以下部分介紹如何從片上閃存為 Nios V 處理器應用程式建立可開機系統的逐步方法。範例amp下面的程式碼是使用 MAX 10 裝置建構的。
IP組件設定
1. 使用 Quartus Prime 和 Platform Designer 建立您的 Nios V 處理器專案。 2. 確保已將外部 RAM 或片上記憶體 (OCRAM) 新增至您的平台。
設計師系統。
傳送回饋
Nios® V 嵌入式處理器設計手冊 59
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
圖 34. 前amp平台設計器中的 IP 連接,用於從片上快閃記憶體 (UFM) 啟動 Nios V
3. 在片上快閃 IP 參數編輯器中,根據您的設計偏好將組態模式設為以下之一:· 單一未壓縮影像· 單一壓縮影像· 帶記憶體初始化的單一未壓縮影像· 帶記憶體初始化的單一壓縮影像
有關雙壓縮映像的更多信息,請參閱 MAX 10 FPGA 配置使用者指南 - 遠端系統更新。
筆記:
您必須為片上閃存 IP 中的每個 CFM 區域指派隱藏存取權限。
圖 35. 片上快閃記憶體參數編輯器中的設定模式選擇
片上快閃 IP 設定 – UFM 初始化您可以根據自己的喜好選擇以下方法之一:
Nios® V 嵌入式處理器設計手冊 60
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
筆記:
後續子章節(軟體設計流程和程式設計)中的步驟取決於您在此處所做的選擇。
· 方法1:編譯時初始化SOF中的UFM數據
Quartus Prime 在編譯過程中將 UFM 初始化資料納入 SOF 中。如果 UFM 資料發生變化,則需要重新編譯 SOF。
1. 勾選“初始化 Flash 內容”和“啟用非預設初始化” file.
圖 36. 初始化快閃記憶體內容並啟用非預設初始化 File
2.指定生成的.hex的路徑 file (來自 elf2hex 指令)在使用者建立的 hex 或 mif 中 file.
圖 37. 新增 .hex File 小路
· 方法 2:在 POF 生成過程中將 UFM 資料與已編譯的 SOF 結合
在轉換程式設計時,UFM 資料與編譯後的 SOF 結合 file即使 UFM 資料發生變化,也無需重新編譯 SOF。在開發過程中,無需重新編譯 SOF file用於應用程式中的更改。 Altera 建議應用程式開發人員使用此方法。
1.取消選取初始化 Flash 內容。
圖 38. 使用非預設初始化來初始化 Flash 內容 File
重置 Nios V 處理器就地執行方法的代理設定
1. 在 Nios V 處理器參數編輯器中,將 Reset Agent 設定為 On-Chip Flash。
圖 39. Nios V 處理器參數編輯器設置,其中重置代理設置為片上閃存
2. 當出現 Generation 對話方塊時,點選 Generate HDL。 3. 指定輸出 file 生成選項並點擊生成。
傳送回饋
Nios® V 嵌入式處理器設計手冊 61
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
Quartus Prime Software Settings 1. In the Quartus Prime software, click Assignments Device Device and Pin
Options Configuration. Set the Configuration mode according to the setting in On-Chip Flash IP. Figure 40. Configuration Mode Selection in Quartus Prime Software
2. 按一下「確定」退出「裝置和引腳選項」窗口,
3. 按一下「確定」以退出「裝置」視窗。
4. Click Processing Start Compilation to compile your project and generate the .sof file.
筆記:
如果 Quartus Prime 軟體和 Platform Designer 參數編輯器中的設定模式設定不同,則 Quartus Prime 專案將會失敗並顯示下列錯誤訊息。
圖 41.
不同設定模式設定的錯誤訊息 (14740):原子「q_sys:q_sys_inst| altera_onchip_flash:onchip_flash_1|altera_onchip_flash_block: altera_onchip_flash_block|ufm_block」上的設定模式與專案設定不符。請更新並重新產生 Qsys 系統,使其與專案設定相符。
相關資訊 MAX 10 FPGA 設定使用者指南
4.5.2.2. 軟體設計流程
本節提供產生和建構 Nios V 處理器軟體專案的設計流程。為了確保建置流程的簡化,建議您在設計專案中建立類似的目錄樹。以下軟體設計流程基於此目錄樹。
若要建立軟體專案目錄樹,請依照下列步驟操作:1. 在您的設計專案資料夾中,建立名為 software 的資料夾。 2. 在 software 資料夾中,建立兩個名為 hal_app 和 hal_bsp 的資料夾。
圖 42. 軟體專案目錄樹
Nios® V 嵌入式處理器設計手冊 62
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
建立應用程式 BSP 項目
若要啟動 BSP 編輯器,請依照下列步驟操作:1. 進入 Nios V 指令 Shell。 2. 使用 niosv-bsp-editor 指令呼叫 BSP 編輯器。 3. 在 BSP 編輯器中,點選 File 新建 BSP 來啟動您的 BSP 專案。 4. 配置以下設定:
· SOPC資訊 File 名稱:提供SOPCINFO file (.sopcinfo)。 · CPU 名稱:選擇 Nios V 處理器。 · 作業系統:選擇 Nios V 處理器的作業系統。 · 版本:保留預設設定。 · BSP 目標目錄:選擇 BSP 專案的目錄路徑。您可以
預設為/software/hal_bsp,透過啟用「使用預設位置」。 · BSP 設定 File 名稱:輸入 BSP 設定的名稱 File.· 附加 Tcl 腳本:透過啟用啟用附加 Tcl 腳本來提供 BSP Tcl 腳本。 5. 按一下確定。
圖 43. 配置新的 BSP
配置BSP編輯器並產生BSP項目
You can define the processor’s exception vector either in On-Chip Memory (OCRAM) or On-Chip Flash based on your design preference. Setting the exception vector memory to OCRAM/External RAM is recommended to make the interrupt processing faster. 1. Go to Main Settings Advanced hal.linker. 2. If you select On-Chip Flash as exception vector,
a. 啟用以下設定:
傳送回饋
Nios® V 嵌入式處理器設計手冊 63
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
· allow_code_at_reset · enable_alt_load · enable_alt_load_copy_rodata · enable_alt_load_copy_rwdata 圖 44. Advanced.hal.linker 設定
b. 點選 BSP 編輯器中的「連結器腳本」標籤。 c. 將「連結器部分名稱」中的 .exceptions 和 .text 區域設定為
片上快閃記憶體。 d. 將 Linker Section Name 清單中的其餘區域設定為片上
記憶體(OCRAM)或外部RAM。
圖 45. 連結器區域設定(異常向量記憶體:片上快閃記憶體)
3. 若選擇 OCRAM/外部 RAM 為例外向量,a. 啟用下列設定:· allow_code_at_reset · enable_alt_load · enable_alt_load_copy_rodata · enable_alt_load_copy_rwdata · enable_alt_load_copy_exception
圖 46. 連結器區域設定(異常向量記憶體:OCRAM/外部 RAM)
b. 點選 BSP 編輯器中的「連結器腳本」標籤。
c. 將連結器部分名稱中的.text 區域設定為片上快閃記憶體。
d. 將連結器部分名稱清單中的其餘區域設定為片上記憶體 (OCRAM) 或外部 RAM。
Nios® V 嵌入式處理器設計手冊 64
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
圖 47. 連結器區域設定(異常向量記憶體:OCRAM)
4. 點選「生成」按鈕,產生BSP專案。 產生用戶應用程式項目 File 1. 導覽至 software/hal_app 資料夾並建立應用程式來源
代碼。 2. 啟動 Nios V 指令外殼。 3. 執行以下命令產生應用程式 CMakeLists.txt。
niosv-app –app-dir=software/hal_app –bsp-dir=software/hal_bsp –srcs=software/hal_app/<user application>
建立使用者應用程式專案 您可以選擇使用 Ashling RiscFree IDE for Altera FPGAs 或透過命令列介面 (CLI) 建立使用者應用程式專案。如果您喜歡使用 CLI,可以使用以下命令建立使用者應用程式:cmake -G “Unix Makefiles” -B 軟體/hal_app/build -S 軟體/hal_app make -C 軟體/hal_app/build
應用程式(.elf) file 在 software/hal_app/build 資料夾中建立。產生 HEX File 您必須產生一個 .hex file 來自你的應用程式 .elf file,這樣你就可以創建一個.pof file 適用於對裝置進行程式設計。 1. 啟動 Nios V 指令 Shell。 2. 若要從片上快閃記憶體啟動 Nios V 處理器應用程序,請使用下列命令
命令列將 ELF 轉換為 HEX,以適應您的應用程式。此命令建立使用者應用程式 (onchip_flash.hex) file.elf2hex 軟體/hal_app/build/ .elf -o onchip_flash.hex
-b <base address of On-Chip Flash UFM region> -w 8 -e <end address of On-Chip Flash UFM region> 3. Recompile the hardware design if you check Initialize memory content option in On-Chip Flash IP (Method 1). This is to include the software data (.HEX) in the SOF file.
傳送回饋
Nios® V 嵌入式處理器設計手冊 65
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
4.5.2.3. 程式設計 1. 在 Quartus Prime 中,點選 File 轉換編程 Files. 2. 在輸出程式設計下 file,選擇程式設計師對象 File (.pof)作為編程 file 類型。 3. 將模式設定為內部配置。
圖48. 轉換編程 File 設定
4. 點選 Options/Boot info…,出現 MAX 10 Device Options 視窗。 5. 根據 On-chip Flash IP 中的 Initialize flash content 設置,執行
以下步驟之一:· 如果勾選「初始化快閃記憶體內容」(方法 1),則 UFM 初始化數據
在 Quartus Prime 編譯期間已包含在 SOF 中。 — 選擇 Page_0 作為 UFM 來源:選項。點擊“OK”並繼續
圖 49. 如果勾選「初始化快閃記憶體內容」選項,則設定 Page_0 作為 UFM 來源
Nios® V 嵌入式處理器設計手冊 66
傳送回饋
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
· 如果未選取“初始化快閃記憶體內容”(方法 2),請選擇“載入記憶體” file 針對 UFM 來源選項。瀏覽到產生的片上閃存 HEX file (onchip_flash.hex)在 File 路徑:並點選「確定」。此步驟將 UFM 資料單獨新增至 SOF file 在程式設計過程中 file 轉換。
圖50. 設定載入記憶體 File 如果未選取初始化 Flash 內容,則為 UFM 來源
6. 在轉換程式設計中 File 對話框中,在輸入 file轉換部分,點擊新增 File…並指向生成的 Quartus Prime .sof file.
圖 51. 輸入 File在轉換編程中轉換 Files 表示單一影像模式
7.點擊“生成”以創建.pof file.8. 對.pof 進行編程 file 進入您的 MAX 10 裝置。 9. 對硬體進行電源循環。
4.5.3. 使用引導複製程式將 Nios V 處理器應用程式從 UFM 複製到 RAM
Altera 推薦將此解決方案用於 MAX 10 FPGA Nios V 處理器系統設計,該系統設計需要多次迭代應用軟體開發並實現高效能係統。引導複製器位於 UFM 內部,偏移位址與重設向量相同。 Nios V 應用程式位於引導複製器旁。
對於此啟動選項,Nios V 處理器在系統重設後開始執行引導複製程序,將應用程式從 UFM 磁區複製到 OCRAM 或外部 RAM。複製完成後,Nios V 處理器將程式控制權轉移給應用程式。
筆記:
所應用的引導複製程式與透過 GSFI 的引導程式相同。
傳送回饋
Nios® V 嵌入式處理器設計手冊 67
4. Nios V處理器設定與啟動方案 726952 | 2025.07.16
圖 52. 使用引導複製器將 Nios V 應用程式從 UFM 複製到 RAM
最多 10 個設備
塑膠光纖
Nios V 硬體.SOF
Nios V 軟體 .HEX
引導程式.SREC
Quartus 編程器
外部 RAM
Nios V 軟體
片上快閃記憶體
CFM
Nios V 硬體
文件/資源
![]() |
Altera Nios V嵌入式處理器 [pdf] 使用者指南 Nios V、Nios Vm、Nios Vg、Nios Vc、Nios V 嵌入式處理器、Nios V、嵌入式處理器、處理器 |