基于 Nios® V 处理器的 Agilex®7 Mailbox Client IP 应用实践 (上) — FPGA 多镜像切换
《基于 Nios® V 处理器的 Agilex®7 Mailbox Client IP 应用实践》系列专辑由两篇文章构成,主要介绍在 Altera Agilex® 7 FPGA 平台上,通过 Nios® V 处理器操作 Mailbox Client IP 实现 FPGA 多镜像切换,以及使用Nios® V 读取芯片 ID 和温度的参考方案。
本文为上篇,主要讲解硬件平台、软件系统的搭建以及 Nios® V 操作镜像切换的内容。下一篇将继续为大家介绍使用 Nios® V 读取芯片 ID 和温度的参考方案。
背景
目前 Altera 官方提供的编程例程,主要是基于 JTAG 到 Avalon 接口和配套的 TCL 脚本控制流程来实现对 QSPI Flash 的读写、擦除和编程。这种实现方式在实际应用中存在着一定的局限性,开发者无法直接使用。
使用 RTL 操作Mailbox Client Altera FPGA IP 虽然移植方便,但操作复杂,且无参考例程;使用 Nios® V 操作 Mailbox Client Altera FPGA IP 虽然 Nios V 环境搭建复杂,但操作简单。下图 (图1)、(图2) 为两种方案的对比,红色箭头为关键命令通路。从图中可以看出,第二种方案更有优势。


硬件平台搭建
本次操作主要使用到的硬件配置如下:
- 硬件平台:DK-SI-AGF014EB (AGFB014R24B2E2V)
- 软件环境:Quartus 23.1
下图 (图3) 为硬件系统顶层架构设计图:

以下为关键接口及硬件引脚分配的说明:
时钟:100Mhz 输入
按键:用来切换镜像
LED 输出:用来区分不同镜像
Qsys:Nios® V 系统,Mailbox
PIN_A44------rst_n, FPGA_PB7,S8按键
PIN_U52------clock, FPGA_SYSTEM_CLK,
PIN_H45------pio_in[0]
PIN_F45 ------pio_in[1]
PIN_J44 ------pio_in[2]
PIN_D43------debug_led[0]
PIN_B43------debug_led[1]
PIN_C42------debug_led[2]
PIN_A42------debug_led[3]
下图 (图4) 为 Qsys 设计:

Nios® V 软件系统搭建
核心组件为:Nios® V 软核、On-chip memory、Mailbox client IP、PIO intel FPGA IP、Jtag_uart IP。
(1) 按照 Qsys 的结构搭建系统,连接好信号,并分配好各模块地址 (可以在 address map 中自动分配)。
(2) 建议把 on-chip memory 的地址设置为起始 0x0000_0000。
(3) Nios® V 中设置如下图 (图5),指定 on-chip memory。

(4) On-chip memory 设置如下,指定代码 hex 位置。如果新建工程还没有 hex 文件,可以生成 hex 后再设置。

(5) Device and Pin Options 设置如下图 (图7):

Altera Stratix® 10 和 Agilex™ 7 电源配置问题检查方向
Debug
- 每家电源厂家都有上位机软件监控电源状态,异常时可以通过电源上位机软件抓取电源状态,查看异常情况
- Quartus 提供了config debug 工具,异常时可以看到在什么阶段异常,错误码是什么,然后进行分析
- 如果是 PMBUS 问题,且暂时没有解决方案,可以提供绕过 PMBUS 的方法让客户先进行功能调试,这样不会阻塞客户调试进度 (该方案实测在最新版本 23.2 以及 agilex 上可用)
最重要一点是客户投板之前一定要进行原理图 review 和 pin map 验证
总结
本文通过列举 Altera Stratix® 10 和 Agilex™ 7 FPGA 在客户实际应用中遇到的电源管理及配置问题案例,为大家系统梳理了典型的故障问题分析,同时给出相应的解决方案与调试建议,供工程师们参考。
欲了解更多 Altera 相关方案或技术信息,可点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。
更多信息: