基于 Nios® V 处理器的 Agilex®7 Mailbox Client IP 应用实践 (下) — 读取芯片 ID 和温度

在上一篇《基于 Nios® V 处理器的 Agilex® 7 Mailbox Client IP 应用实践 (上) — FPGA 多镜像切换》中,我们介绍了在 Altera Agilex® 7 FPGA 平台上,通过 Nios® V 处理器操作 Mailbox Client IP 实现 FPGA 多镜像切换的参考方案。本文为下篇,将继续为大家展开说明如何使用 Nios® V 读取芯片 ID 和温度。
数据获取方法
Altera Agilex® 7 器件提供片上电压和温度传感器,可以使用这些传感器来监控外部电压和片上操作条件,例如内部电源轨和片上结温。Agilex® 7 芯片内部温度传感器位置如下图 (图1) 所示:

不同的器件传感器标号可以通过《Altera Agilex® 7 Power Management User Guide》中的表格查询。下图 (图2) 是读取芯片 ID 和温度的 Nios® 关键代码示例。其中 Id = 0x1 指令读取芯片 IDCODE,arg[0] = 0x00000001表示读取 SDM 位置温度。

在代码中,arg[0] 的取值决定了读取的温度传感器位置,具体规则如下列:
0x00010000 = 0x0 (Reserved) + 0x001 (Location 1) + 0x0001 (TSD 1 with the highest temperature in Location 1) 0x00020000 = 0x0 (Reserved) + 0x002 (Location 2) + 0x0001 (TSD 1 with the highest temperature in Location 2) 0x00030000 = 0x0 (Reserved) + 0x003 (Location 3) + 0x0001 (TSD 1 with the highest temperature in Location 3) 0x00040000 = 0x0 (Reserved) + 0x004 (Location 4) + 0x0001 (TSD 1 with the highest temperature in Location 4)
另外,在实际测试中发现,即使 TSD=0 ,也可以读出温度值,但建议根据文档规范设置以确保数据准确性。

温度值的计算方法如下:

温度是负值时 = 整数 (oxFFFEE-1) 取反 +0x80/256 = -2 + 0.5 = -1.5
温度是正值时 = 0x23A0/256 = 9120/256 = 35.625

温度是负值时 = 整数 (oxFFFE1-1) 取反 +0xC0/256 = -31+0.75 = -30.25

代码调试问题总结
1、删除 jtag_uart 模块,否则需要在 Nios® V command shell 中输入 juart-terminal 才可以正常切换 (替换掉循环切换问题,改为通过 key 值切换,需要读取 slot 与 key 做比较)。

2、S10 平台不需要删除 jtag_uart 模块,复位切换镜像正常。
3、在 altera_s10_mailbox_client_flash_rsu.c 中添加 printf ("ret_code = %d\n", ret_code);// 失败,需要删除 build 文件夹,重新 build 工程。
4、根据需求,代码只做了 7 个槽位镜像的切换,没有实现 RSU 部分功能,后续有需要可以添加代码到 Nios® V 中,其他架构不需要更改 (on-chip memory 容量不够就需要重新调整 Qsys 设置,生成 BSP,重新生成HDL)。
5、若镜像中使用了收发器、EMIF、HPS,需要确保这些部分的参考时钟稳定,否则无法正常切换成功。
上板测试
上板测试验证了不同镜像的功能表现,具体测试结果如下:
Factory image = D10 D9 D8 D7 计数点亮 APP1 image = 4 个 LED 同时闪烁 APP2 image = D10 D9 D8 D7 计数点亮 APP3 image = D10 闪烁 APP4 image = 4 个 LED 同时闪烁 APP5 image = D10 D9 D8 D7 计数点亮 APP6 image = D10 闪烁 APP7 image = 4 个 LED 同时闪烁

总结
以上两篇内容完整地介绍了通过 Nios® V 操作 Mailbox Client IP 实现 Agilex® 7 FPGA 多镜像切换,以及读取芯片 ID 和温度的完整方案,涵盖硬件平台搭建、软件系统开发及关键问题解决。
另外,我们还提供完整的镜像切换工程地址和 IDCODE / 温度工程地址,如有需要或欲了解更多 Altera 相关方案及技术信息,可点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。
参考资料
《Altera Agilex® 7 Power Management User Guide》
相关阅读
《基于 Nios® V 处理器的 Agilex®7 Mailbox Client IP 应用实践 (上) — FPGA 多镜像切换》