2.2 基于ultrascale 架构FPGA的system manager wizard使用(温压监测)
Reference: 《PG185》《UG580》
部分文案源于网友博客,AIGC和个人理解,如有雷同纯属抄袭
一、介绍
简述:
Xilinx System Management Wizard 是 Vivado 和 Vitis 工具中的一个图形化配置工具,主要用于为 FPGA 设计生成与系统监控和管理相关的 IP 核。这个工具帮助用户配置和集成诸如温度监控、电压监控、时钟监控、外部模拟输入等功能到 FPGA 设计中。它支持AXI4-Lite 与 DRP 接口
主要功能:
- 温度和电压监测:
- 内建传感器:支持 FPGA 内部温度、VCCINT(核心电压)、VCCAUX(辅助电压)、VCCBRAM(BRAM 电压)等电压和温度监测。通过 SYSMON 进行实时数据采集。
- 外部模拟输入:可通过 XADC 和 SYSMON 配置外部传感器的数据采集,支持多通道模拟输入,进行温度、电压、压力等数据监测。
- 警报系统:
- 设置不同的警报阈值(如温度、电压等)以确保系统在出现异常时触发警报。
- 支持对温度、电压等信号设置高低阈值,并在超出预定阈值时触发警报(如 Over Temperature Alarm 和 User Temperature Alarm)。
最大时钟频率:

二、原理
(1)架构框图
1. System Management Wizard(启用AXI Lite 接口时)
此模块框图展示了AXI-Lite接口 与 控制管理模块 与 SYSMON硬件核心模块(含ADC)SYSMON硬件宏(Hard Macro) 是指在硬件设计中,特别是在 FPGA 或 ASIC 设计中,作为一个已实现的、封装好的功能模块,通常是经过优化的硬件单元或模块。

2. SYSMON 架构框图
- 模拟输入源 与MUX
- ADC功能模块 与VREF
- 寄存器空间 含measurement data
- DRP接口

3. SYSMON Register Space
- DRP允许访问多达256个16位寄存器(DADDR[7:0] = 00h至FFh)。
- 接入位置DADDR[7:0] = 00h至3Fh和DADDR[7:0] = 80h至FFh为只读位置,包含ADC测量数据,这些寄存器是状态寄存器。
- 控制寄存器位于地址40h至7Fh,可通过DRP读取或写入。

(2)端口说明

1. 控制和状态通道(Control and Status Channels)
- s_axi_aclk:AXI 时钟信号,用于同步所有 AXI 操作。
- s_axi_aresetn:异步复位信号,通常是低有效信号。
2. AXI写操作通道(Write Channel)
- s_axi_awaddr[12:0]: 写操作的地址信号,指示要写入的寄存器地址。
- s_axi_awvalid: 指示写地址是否有效。
- s_axi_awready: 响应信号,表示写地址是否准备好。
- s_axi_wdata[31:0]: 写数据信号,包含待写入的 32 位数据。
- s_axi_wstrb[3:0]: 字节使能信号,指示哪些字节有效。
- s_axi_wvalid: 写数据有效信号,指示写数据是否有效。
- s_axi_wready: 响应信号,表示写数据是否准备好。
- s_axi_bresp[1:0]: 写响应信号,指示写操作的结果,如成功或失败。
- 它可以指示成功(例如 OKAY)或错误状态(例如 SLVERR)。
- s_axi_bvalid: 写响应有效信号,指示写响应是否有效。
- s_axi_bready: 从设备准备好接收写响应信号。
3. AXI读操作通道(Read Channel)
- s_axi_araddr[12:0]: 读操作的地址信号,指示要读取的寄存器地址。
- s_axi_arvalid: 读地址有效信号,指示读地址是否有效。
- s_axi_arready: 响应信号,表示读地址是否准备好。
- s_axi_rdata[31:0]: 读数据通道,返回读取的数据。
- s_axi_rresp[1:0]: 读响应信号,指示读取操作的结果。
- s_axi_rvalid: 读数据有效信号,指示读数据是否有效。
- s_axi_rready: 从设备准备好接收读数据的信号。
4. 其他flag信号(External Signals and Inputs)
- vp、vn:外部模拟信号输入,通常与 XADC 或 SYSMON 模块结合使用,读取模拟传感器数据。
- user_temp_alarm_out、vcint_alarm_out、vccaux_alarm_out 等:报警信号输出端口,指示温度、电压等传感器的警报状态。
- eoc_out、alarm_out、eos_out:系统监控信号,指示 ADC 转换结束、报警状态或序列结束等。
- busy_out:忙碌信号,指示系统是否正在进行数据采集或处理。
详见PG185 table 2-1

- channel_out:单通道或外部多路复用器工作模式下,表示所选ADC输入通道
详见UG580 table 3-6

(3)地址寄存器
1. AXI4-Lite address (13 bits)映射至SYSMON (8 bits):

SYSMON 寄存器地址左移2位,地址值放大了4倍(PG185 table 2-3)

2.SYSMON Registers Address

(4)读时序图

三、IP核配置(例:监测温度电压 AXI4lite输出)
(1)Basic

1. Startup Channel Selection
- Single Channel:如果您只需要监测单个通道的模拟输入,可以选择这个选项。适合简单的应用,例如只监测芯片的温度或者单一电压。
- Channel Sequencer:如果您需要同时监测多个通道,并按顺序采样,可以选择这个选项。对于更复杂的应用,如监测多个电压或传感器的数据,使用 Channel Sequencer 会更合适。
选择Channel Sequencer,按顺序采样不同通道
2. Sequencer Mode
- Continuous:如果您希望 ADC 连续不断地进行采样(例如,在监测过程中不断更新数据),可以选择 Continuous 模式。这适合于实时数据监测应用。
- Event:如果您只希望在特定的事件发生时采样数据,可以选择 Event 模式。这适用于事件驱动的应用,采样仅在特定事件发生时才会启动。
选择Continuous
3. Channel Averaging
- None:如果不需要对采样结果进行平均,可以选择 None。这种配置将每次采样的值直接输出。
- Averaging:如果您希望减少噪声并提高测量的稳定性,可以启用通道平均功能。这对于高噪声环境中的信号采集很有用。
建议开启,可选择16(内部存在寄存器表示采样数量 UG580)

4. DRP Timing Options
- DCLK Frequency:设置动态时钟频率,这个值控制数据转换的时钟频率,影响 ADC 的响应速度。您可以选择100 MHz,或者根据您的需求调整。
- ADC Conversion Rate (KSPS):设置 ADC 的转换速率,单位是千样本每秒 (KSPS)。200 KSPS 是一个适中的值,适合许多应用。
- Acquisition Time (CLK):这是每个采样周期的时钟周期数,可以根据您的采样精度要求来调整。值为 4 表示每次采样需要 4 个时钟周期。
默认即可
(2)片上模拟信号源选取(系统),及警报阈值配置

1. Reference Used by SYSMON 基准电压选取
- Internal 选择 FPGA 内部的参考电源。
- External 选择 外部电压源作为参考。
选择Internal即可!注:该基准电压的选择会影响ADC测算的性能精度,详见UG580 - Reference Inputs (VREFP and VREFN)
2. 温度警报的 Trigger 和 Reset
- Trigger 是温度达到或超过指定阈值时激活警报。
- Reset 是温度降低到一定水平时警报被重置或关闭。
3. 电压的警报阈值配置
- Lower:低于该值时会触发警报。
- Upper:超过该值时会触发警报。
(3)片上模拟信号源选取(用户)
配置方式类似于(2)此页不做额外配置

(4)外部通道功能选择
- External Multiplexer:如果需要从外部模拟源获取信号,可以启用此项,并选择 VP VN 或其他外部输入信号作为通道。
- Channel Enable:根据需要启用相应的通道。如果只需要采集 vp/vn,则启用对应的通道。
- Average Enable:如果需要对采样值进行平均,启用此选项。如果不需要平滑数据,则不启用。
- Bipolar:仅在您需要采集正负电压信号时启用该选项。
- Acquisition Time:设置适当的采样时间,根据您的应用需求选择合适的时钟周期。
默认即可

(5)仿真设置
不详,暂不配置使用

四、输出数据处理
(1)数据精度:
1.SYSMON数据寄存器输出
ADC转换结果以16bits精度存储于寄存器中

2.数据输出映射 32 bits DRP 寄存器
由于这些寄存器宽 16 位,但处理器数据总线宽 32 位,因此硬宏寄存器数据驻留在 32 位数据总线的较低 16 位上。

(2)转换公式选取:
1.Temperature ADC
- 确定FPGA架构(ultrascale)选取(SYSMONE1)
- 确定ADC的参考电压源为 external OR on-chip (IP 配置过程选择)
- 根据ADC输出数据精度 10 位精度 OR 16 位精度 >> 确定公式中2^bits
- 选取转换公式2-7

2.Voltage ADC
- 确定所测电压衰减系数为3,(衰减系数为6时为特殊情况,详见下文)
- 确定ADC输出数据精度 10 位精度 OR 16 位精度 >> 确定公式中2^bits
- 选取转换公式2-15

五、仿真
配置完IP后,即可右键IP打开示例工程,直接进行仿真查看选定通道的ADC转换结果依次输出

六、Debug
(1)dashboard
xlinx官方自带sys_mon系统监测功能无需下板,连接设备后,右键选择器件启动dashboard ,即可实时查看芯片内部数据可将处理后的输出数据与此对照检测

(2)上板验证ILA抓取温度数据
输入读地址通道为 'h0400 温度寄存器地址待复位完毕后,读出valid时刻数据经转换公式结果计算得温度为26.94°C与dashboard结果几乎一致
