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 架构
椭圆曲线密码
缓存、外围区域和 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 功能应用于 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
电磁干扰函数
处理器。
8 GB
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 时钟 #************************************************************ create_clock -name {clk} -period 10 [get_ports {clk}] #*********************** 创建 16MHz 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 Prime 时序分析器手册
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包含以下元素:·硬件抽象层·设备驱动程序·可选软件包·可选实时操作系统
四、申请项目
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. 打开平台设计器,然后导航到 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 页上的“上电触发条件” · 上电触发器
有关加电触发器的更多信息。
4.1. 简介
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的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 编程器
片上闪存
立方英尺每分钟
Nios V 硬件
超细纤维
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 编辑器中的 Linker Script 选项卡。
c. 将 Linker Section Name 中的.text 区域设置为 On-Chip Flash。
d. 将链接器部分名称列表中的其余区域设置为片上存储器 (OCRAM) 或外部 RAM。
Nios® V 嵌入式处理器设计手册 64
发送反馈
4. Nios V处理器配置与启动方案 726952 | 2025.07.16
图 47. 链接器区域设置(异常向量存储器:OCRAM)
4. 点击“Generate”生成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 软件
片上闪存
立方英尺每分钟
尼奥斯·V·哈德瓦
文件/资源
![]() |
Altera Nios V嵌入式处理器 [pdf] 用户指南 Nios V、Nios Vm、Nios Vg、Nios Vc、Nios V 嵌入式处理器、Nios V、嵌入式处理器、处理器 |

