2.2 基于ultrascale 架构FPGA的system manager wizard使用(温压监测)

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 进行实时数据采集。
    • 外部模拟输入:可通过 XADCSYSMON 配置外部传感器的数据采集,支持多通道模拟输入,进行温度、电压、压力等数据监测。
  • 警报系统
    • 设置不同的警报阈值(如温度、电压等)以确保系统在出现异常时触发警报。
    • 支持对温度、电压等信号设置高低阈值,并在超出预定阈值时触发警报(如 Over Temperature AlarmUser 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)
  • vpvn:外部模拟信号输入,通常与 XADC 或 SYSMON 模块结合使用,读取模拟传感器数据。
  • user_temp_alarm_outvcint_alarm_outvccaux_alarm_out 等:报警信号输出端口,指示温度、电压等传感器的警报状态。
  • eoc_outalarm_outeos_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
    1. 确定FPGA架构(ultrascale)选取(SYSMONE1)
    2. 确定ADC的参考电压源为 external OR on-chip (IP 配置过程选择)
    3. 根据ADC输出数据精度 10 位精度 OR 16 位精度 >> 确定公式中2^bits
    4. 选取转换公式2-7
2.Voltage ADC
    1. 确定所测电压衰减系数为3,(衰减系数为6时为特殊情况,详见下文)
    2. 确定ADC输出数据精度 10 位精度 OR 16 位精度 >> 确定公式中2^bits
    3. 选取转换公式2-15

五、仿真

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

六、Debug

(1)dashboard

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

(2)上板验证ILA抓取温度数据

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

Read more

机器人 - 关于MIT电机模式控制

目录 一、MIT电机模式简单介绍 1.1 简单介绍 1.2 MIT模式的控制参数 1.3 使用场景 二、调试时建议 2.1 调试 2.2 问题定位 一、MIT电机模式简单介绍 1.1 简单介绍 Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含 位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。 1.2 MIT模式的控制参数 参数含义取值范围(常见)说明kp位置比例系数(刚度)0 ~ 500 (单位视驱动器而定)kp = 0 时位置环失效,

Stable Diffusion 秋叶大神2025最新整合一键安装包

Stable Diffusion 秋叶大神2025最新整合一键安装包

这段时间我在折腾 Stable Diffusion,期间试过很多安装方式。有手动安装的,也有别人做好的整合包。手动安装的方式对环境要求高,步骤也多,系统要装 Python,要装依赖,还要配好运行库,哪一步出错都要重新查资料,挺消耗时间。后来了解到秋叶大神做的整合一键安装包,这个版本省掉了很多折腾,对新手比较友好。 我自己把安装流程整理了一遍,又结合网上的信息,把一些需要注意的地方写下来,希望能帮到想尝试 Stable Diffusion 的人。 这里完整下载链接 秋叶整合包是什么 这个整合包属于别人已经帮你配好的版本,里面把 Stable Diffusion WebUI、模型管理、插件、运行环境都准备好了。下载之后按照提示解压,点一下启动脚本就能跑起来,不需要另外去折腾环境。 整合包里放的 WebUI 是常见的 AUTOMATIC1111 版本,所以大部分教程都能直接用。适合想直接出图、想先体验一下模型效果的人。 系统环境方面 我现在用的是 Windows 电脑,所以下面写的内容主要基于

FPGA 和 IC,哪个前景更好?怎么选?

FPGA 和 IC,哪个前景更好?怎么选?

这几年,经常有人来问我: “老师,我是做 FPGA 的,要不要转 IC?” “FPGA 是不是天花板低?” “IC 听起来更高端,是不是更有前景?” 这个问题,本质不是技术问题,而是路径问题。 今天我们把这两个方向掰开讲清楚。 —— 01 先讲定位 如果把整个芯片产业链拆开来看,大致是: 架构 → RTL → 前端验证 → 后端实现 → 流片 → 封测 → 量产 IC 属于“芯片最终形态”,FPGA 属于“可重构硬件平台”。 IC 的目标,是做出一颗定制化、极致性能、极致功耗、极致成本的芯片。 FPGA 的目标,是用可编程逻辑,在无需流片的前提下,实现接近硬件级别的性能。 两者不是上下级关系,而是不同阶段、不同诉求下的解决方案。 很多真正量产前的芯片项目,都会先在

Z-Image-Turbo对比Stable Diffusion Turbo:速度实测差异

Z-Image-Turbo对比Stable Diffusion Turbo:速度实测差异 1. 为什么这次对比值得你花三分钟看完 你是不是也遇到过这样的情况: 想快速生成一张配图,结果等了20秒,画面刚出来,灵感早飞走了; 想批量做十张产品图,发现每张都要调参、重跑,时间全耗在等待上; 或者刚买了一张RTX 4070(12GB显存),却发现很多热门模型根本跑不动,只能眼睁睁看着别人用——而你连“试试看”的机会都没有。 这次我们不聊参数、不讲架构,就干一件事:把Z-Image-Turbo和Stable Diffusion Turbo放在同一台机器上,用完全相同的提示词、相同分辨率、相同硬件环境,掐表实测——到底谁更快?快多少?快得稳不稳?值不值得换? 答案很直接:Z-Image-Turbo在消费级显卡上,平均比Stable Diffusion Turbo快1.8倍,且首帧响应快2.3倍;更关键的是,它能在16GB显存的GPU上稳定跑满8步出图,而SD Turbo在同样配置下常因显存溢出被迫降步或失败。 这不是理论推演,