ultrascasle 系列片内监测模块叫SYSMON,7系列片内监测模块叫XADC。最近针对ultrascale系列的SYSMON和7系列的XADC做了相关调研、仿真、上板测试,这里先记录下SYSMON相关基础知识点和仿真结果。

1、The SYSMON includes an analog-to-digital converter (ADC) as well as on-chip sensors that can be used to sample external voltages and monitor on-die operating conditions, such as temperature and supply voltage levels. SYSMON可以监测FPGA片内温度、片内供电电压,同时也可用于接入模拟信号,当做ADC使用。

2、The ADC supports differential sampling of unipolar and bipolar analog input signals and provides a wide range of operating modes to convert up to 17 external analog input channels.

3、Status registers store the ADC's sampled data, which can be accessed:

• Directly through the dynamic reconfiguration port (DRP) ports

• Through an external JTAG interface

• Through an I2C interface

• Through the power management bus (PMBus) for UltraScale+ devices

• Through the advanced peripheral bus (APB) for Zynq UltraScale+ MPSoC devices

4、The SYSMON interface can be simplified to drive a series of alarm ports based onuser-defined operating conditions, such as die temperature levels or power supply thresholds.

5、Block diagram:

6、7 series XADC primitive and UltraScale SYSMON primitives:

7、模拟输入至16对auxiliary analog inputs端口,vivado在编译时会自动添加原语IBUF_ANALOG,如下图所示:

8、 片上传感器的模拟数据无极性,外部模拟输入通道的模拟数据可以为有极性和无极性。

9、ADC输出的10位数据在状态寄存器(16位)的高10位,低6位用于提高精度(均值或滤波)。

10、SYSMON相关状态寄存器和控制寄存器地址范围:

SYSMON1

Status Registers (read only)  00h~3Fh   80h~FFh

Control Registers(read and write)  40h~7Fh

SYSMON4

Status Registers (read only)  00h~3Fh   80h~CFh

Control Registers(read and write)  40h~7fh

11、SYSMON重要应用点:

(1)Sampling Mode

Continuous sampling mode:

Event-Driven sampling mode:

(2)Operating Mode

Single Channel Mode

Automatic Channel Sequencer

Sequencer Modes :

1)Default Mode

2)Single Pass Mode

3)Continuous Sequence Mode(Slow Sequence – SYSMONE4)

4)Single Channel Mode(Sequencer off)

(3)Register interface

DRP Timing

12、ADC参考电压1V

13、POWER AND USER SUPPLY sensor参考电压3V

14、温度传感器

根据硬件上Vrefp和Vrefn是上拉(external reference)还是下拉(on-chip reference),去选择对应的计算公式。由于本次测试硬件上是下拉,所以选择使用了SYSMONE1的on-chip reference对应的计算公式。

仿真中给出的temp为10位(截取了16位数据的高10位),以0x262为例进行温度换算,(610 * 501.3743 / 1024) - 273.6777 = 24.99℃

15、功能仿真

针对SYSMON1进行了功能仿真, 在continuous采样模式下,ADC采样率为0.2MSPS,共计26个ADCCLK周期,可以计算出ADCCLK的频率最高位5.2MHz,ADCCLK可以通过DCLK进行比例关系设置,本次仿真设置DCLK为50MHz外部输入,ADCCLK为5MHz。

仿真测试了温度Temp、片内电压VCCINT、外部模拟输入通道aux 0~3

    SYSMONE1 #(// INIT_40 - INIT_44: SYSMON configuration registers.INIT_40                                                (16'h9000                           ),  //Continuous Sampling Mode(26 ADCCLK cycles).INIT_41                                                (16'h2FDC                           ),  //Continuous Sequence Mode, Enable ALM[0] / OT, Enable calibration// .INIT_41                                                (16'h2FDD                           ),  //Continuous Sequence Mode, Enable ALM[0], Enable calibration.INIT_42                                                (16'h0A00                           ),  //ADCCLK = DCLK / 10      50MHz / 10 = 5MHz.INIT_43                                                (16'h0000                           ),// .INIT_44                                                (16'h0000                           ),  //SYSMONE4 only// .INIT_45                                                (16'h0000                           ),  //not use    Analog Bus Register// INIT_46 - INIT_4F: Sequence Registers.INIT_46                                                (16'h0001                           ),  //SEQCHSEL0 - enable USER0 (channel select).INIT_47                                                (16'h0000                           ),  //SEQAVG0 disable (Averaging) , is use, 40h AVG1 and AVG2 can select the number of averaging// .INIT_48                                                (16'h4701                           ),  //SEQCHSEL1 - enable Temp, VCCINT, VCCAUX, VCCBRAM, and calibration.INIT_48                                                (16'h0301                           ),  //SEQCHSEL1 - enable Temp, VCCINT, calibration.INIT_49                                                (16'h000F                           ),  //SEQCHSEL2 - enable aux analog channels 0 - 3.INIT_4A                                                (16'h0000                           ),  //SEQAVG1 disable (Averaging).INIT_4B                                                (16'h0000                           ),  //SEQAVG2 disable (Averaging).INIT_4C                                                (16'h0000                           ),  //SEQINMODE0 - unipolar analog input for Vp and Vn.INIT_4D                                                (16'h0000                           ),  //SEQINMODE1 - unipolar analog input for AUX[15:0].INIT_4E                                                (16'h0000                           ),  //SEQACQ0 - acquisition time (4 + 22 ADCCLK) for Vp and Vn.INIT_4F                                                (16'h0000                           ),  //SEQACQ1 - acquisition time (4 + 22 ADCCLK) for AUX[15:0]// INIT_50 - INIT_5F: Alarm Limit Registers.INIT_50                                                (16'hB723                           ),  //Temperature upper  85℃.INIT_51                                                (16'h0000                           ),.INIT_52                                                (16'h0000                           ),.INIT_53                                                (16'hCB93                           ),  //OT upper  125℃// .INIT_53                                                (16'h0000                           ),  //OT upper  125℃.INIT_54                                                (16'hAA5F                           ),  //Temperature lower  60℃.INIT_55                                                (16'h0000                           ),.INIT_56                                                (16'h0000                           ),.INIT_57                                                (16'hAF7B                           ),  //OT lower  70℃// .INIT_57                                                (16'h0000                           ),  //OT lower  70℃.INIT_58                                                (16'h0000                           ),.INIT_59                                                (16'h0000                           ),.INIT_5A                                                (16'h0000                           ),.INIT_5B                                                (16'h0000                           ),.INIT_5C                                                (16'h0000                           ),.INIT_5D                                                (16'h0000                           ),.INIT_5E                                                (16'h0000                           ),.INIT_5F                                                (16'h0000                           ),// INIT_60 - INIT_6F: User Supply Alarms.INIT_60                                                (16'h0000                           ),.INIT_61                                                (16'h0000                           ),.INIT_62                                                (16'h0000                           ),.INIT_63                                                (16'h0000                           ),.INIT_64                                                (16'h0000                           ),.INIT_65                                                (16'h0000                           ),.INIT_66                                                (16'h0000                           ),.INIT_67                                                (16'h0000                           ),.INIT_68                                                (16'h0000                           ),.INIT_69                                                (16'h0000                           ),.INIT_6A                                                (16'h0000                           ),.INIT_6B                                                (16'h0000                           ),.INIT_6C                                                (16'h0000                           ),.INIT_6D                                                (16'h0000                           ),.INIT_6E                                                (16'h0000                           ),.INIT_6F                                                (16'h0000                           ),// Programmable Inversion Attributes: Specifies the use of the built-in programmable inversion on// specific pins.IS_CONVSTCLK_INVERTED                                  (1'b0                               ),  // Optional inversion for CONVSTCLK, 0-1.IS_DCLK_INVERTED                                       (1'b0                               ),  // Optional inversion for DCLK, 0-1// Simulation attributes: Set for proper simulation behavior.SIM_MONITOR_FILE                                       ("E:/project/sysmon/sysmon_test_1/sysmon_top.sim/design.txt"),  // Analog simulation data file name// User Voltage Monitor: SYSMON User voltage monitor.SYSMON_VUSER0_BANK                                     (66                                 ),  // Specify IO Bank for User0.SYSMON_VUSER0_MONITOR                                  ("VCCO"                             ),  // Specify Voltage for User0.SYSMON_VUSER1_BANK                                     (0                                  ),  // Specify IO Bank for User1.SYSMON_VUSER1_MONITOR                                  ("NONE"                             ),  // Specify Voltage for User1.SYSMON_VUSER2_BANK                                     (0                                  ),  // Specify IO Bank for User2.SYSMON_VUSER2_MONITOR                                  ("NONE"                             ),  // Specify Voltage for User2.SYSMON_VUSER3_MONITOR                                  ("NONE"                             )   // Specify Voltage for User3)SYSMONE1_inst (// ALARMS outputs: ALM, OT.ALM                                                    (w_alm                              ),  // 16-bit output: Output alarm for temp, Vccint, Vccaux and Vccbram.OT                                                     (w_ot                               ),  // 1-bit output: Over-Temperature alarm// Dynamic Reconfiguration Port (DRP) outputs: Dynamic Reconfiguration Ports.DO                                                     (w_do                               ),  // 16-bit output: DRP output data bus.DRDY                                                   (w_drdy                             ),  // 1-bit output: DRP data ready// I2C Interface outputs: Ports used with the I2C DRP interface.I2C_SCLK_TS                                            (                                   ),  // 1-bit output: I2C_SCLK output port.I2C_SDA_TS                                             (                                   ),  // 1-bit output: I2C_SDA_TS output port// STATUS outputs: SYSMON status ports.BUSY                                                   (w_busy                             ),  // 1-bit output: System Monitor busy output.CHANNEL                                                (w_channel                          ),  // 6-bit output: Channel selection outputs.EOC                                                    (w_eoc                              ),  // 1-bit output: End of Conversion.EOS                                                    (w_eos                              ),  // 1-bit output: End of Sequence.JTAGBUSY                                               (                                   ),  // 1-bit output: JTAG DRP transaction in progress output.JTAGLOCKED                                             (                                   ),  // 1-bit output: JTAG requested DRP port lock.JTAGMODIFIED                                           (                                   ),  // 1-bit output: JTAG Write to the DRP has occurred.MUXADDR                                                (                                   ),  // 5-bit output: External MUX channel decode// Auxiliary Analog-Input Pairs inputs: VAUXP[15:0], VAUXN[15:0].VAUXN                                                  (i_vauxn                            ),  // 16-bit input: N-side auxiliary analog input.VAUXP                                                  (i_vauxp                            ),  // 16-bit input: P-side auxiliary analog input// CONTROL and CLOCK inputs: Reset, conversion start and clock inputs.CONVST                                                 (1'b0                               ),  // 1-bit input: Convert start input.CONVSTCLK                                              (1'b0                               ),  // 1-bit input: Convert start input.RESET                                                  (w_rst                              ),  // 1-bit input: Active-High reset// Dedicated Analog Input Pair inputs: VP/VN.VN                                                     (1'b0                               ),  // 1-bit input: N-side analog input.VP                                                     (1'b0                               ),  // 1-bit input: P-side analog input// Dynamic Reconfiguration Port (DRP) inputs: Dynamic Reconfiguration Ports.DADDR                                                  (w_daddr                            ),  // 8-bit input: DRP address bus.DCLK                                                   (w_dclk                             ),  // 1-bit input: DRP clock.DEN                                                    (w_den                              ),  // 1-bit input: DRP enable signal.DI                                                     (w_di                               ),  // 16-bit input: DRP input data bus.DWE                                                    (w_dwe                              ),  // 1-bit input: DRP write enable// I2C Interface inputs: Ports used with the I2C DRP interface.I2C_SCLK                                               (1'b0                               ),  // 1-bit input: I2C_SCLK input port.I2C_SDA                                                (1'b0                               )   // 1-bit input: I2C_SDA input port);

依次循环输出temp/vccint/vaux0/vaux1/vaux2/vaux3

Xilinx SYSMON的应用相关推荐

  1. Xilinx 7系列FPGA简介--选型参考

    Xilinx-7系列FPGA 主要包括:Spartan®-7.Artix®-7.Kintex®-7.Virtex®-7.其性能.密度.价格也随着系列的不同而提升.和前几代FPGA产品不同的是,7系列F ...

  2. AMD于2022年完成并购赛灵思XILINX,7系列产品生命周期延长至2035年

    AMD 于 1969 年在硅谷创立,最初只有几十名员工,从那时起 AMD 便踏上创新之路,并始终处在半导体产品领域的最前沿. 从成立之初的一家不起眼的公司开始,AMD 如今已经成长为一家全球公司,凭借 ...

  3. Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构)

    Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构) 介 绍 对实时视频流的需求给视频服务提供商带来了严峻挑战,必须在管理基础设施和互联网带宽运营成本,还要为客户提供高质量体验.鉴于视 ...

  4. Xilinx FPGA全局介绍

    Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...

  5. Xilinx Zynq FPGA Boards板

    Xilinx Zynq FPGA Boards板 Xilinx Zynq FPGA Boards 介绍 Styx是一个易于使用的Zynq开发模块,具有Xilinx的Zynq ZC7020 SoC和FT ...

  6. matlab preloadfcn,运行xilinx blockset中的错误包含在matlab中

    xilinx 14.1和matlab2012a 当我打开一个系统生成器时,它会在matlab命令窗口中显示错误,如下所示: 警告:xbsIndex.mdl,第7行:评估block_diagram'xb ...

  7. 加速数据中心变革,Xilinx推出软件定义、硬件加速型 Alveo SmartNIC

    近日,为满足现代数据中心发展需求,赛灵思公司宣布推出一系列全新数据中心产品及解决方案,包括全新 Alveo SmartNIC 系列.smart world (智能世界) AI 视频分析应用.一款能够实 ...

  8. 300亿美元,AMD为什么要买Xilinx?

    作者 | Just 来源 | CSDN(ID:CSDNnews) 自2015年5月,Intel(英特尔)以167亿美元收购FPGA生产商Altera后,半导体行业接连传出大整合. 上个月,NVIDIA ...

  9. xilinx LVDS使用注意事项

    参考 <selectio_wiz_gsg700>https://china.xilinx.com/support/documentation/ip_documentation/select ...

最新文章

  1. feign框架设计与实现
  2. Django发HTML邮件
  3. 【Greenplum异常】数据库报错 could not create temporary file No space left on device(求解决)
  4. c#web页面显示弹窗_C#中三种弹出信息窗口的方式
  5. Zuul简介及代码示例
  6. kibana安装与Kibana server is not ready yet
  7. 这个行业人才紧缺,就业率超高!未来大有可为!
  8. android中心类库
  9. 模板vs定制 门店小程序该如何选择?
  10. 带你读AI论文:基于Transformer的直线段检测
  11. MySQL【第三篇】数据类型
  12. python 面向对象的封装_Python面向对象封装操作案例详解
  13. python 中的socket_python中的socket概述
  14. _stdcall的作用
  15. 怎么让模糊的数字变清楚_如何用ps将模糊图片变清晰?
  16. 智能语音概念界定及技术架构
  17. Python批量爬取谷歌原图,2021年最新可用版
  18. mysql int 11手机号_【mysql】我用不小心用 mysql 的int(11) 存了 手机号,数据都有问题,有办法恢复么?...
  19. 只有两个键的键盘,只会复制粘贴
  20. Vue常用经典开源项目汇总参考-海量

热门文章

  1. linux系统SIG_ERR函数的用法,信号(Signal)
  2. TP-link TL-R473G配置pppoe账号分配网络上网
  3. 博学谷前端 CSS字体样式属性
  4. 深入浅出通信原理知识点3
  5. 【Marvelous Designer 1】初学MD
  6. 小刀娱乐网源码2020版
  7. liunx usb摄像头使用
  8. 赛门铁克杀html病毒,HTML 感染 DropFileName = “svchost.exe” Ramnit 蠕虫病毒 查杀解决办法...
  9. JavaWeb GET与POST
  10. SAP HANA SQL执行计划(SAP HANA SQL explain plan)