Description
The System Monitor, HW_SYSMON, is an Analog-to-Digital Converter (ADC) circuit on Xilinx devices, used to measure operating conditions such as temperature and voltage. The HW_SYSMON monitors the physical environment via on-chip temperature and supply sensors. The ADC provides a high-precision analog interface for a range of applications. The ADC can access up to 17 external analog input channels.
X-Ref Target - Figure 2-24 |
The HW_SYSMON has data registers, or HW_SYSMON_REG objects, that store the current values of temperatures and voltages. The values in these registers on the current hw_device can be accessed through the Hardware Manager feature of the Vivado Design Suite, when connected to a hardware server and target. The HW_SYSMON varies between Virtex-7 devices and UltraScale devices. Refer to the UltraScale Architecture System Monitor Advance Specification User Guide (UG580) [Ref 12] or the 7 Series FPGAs and Zynq-7000 SoC XADC Dual 12-Bit 1 MSPS Analog-to-Digital Converter User Guide (UG480) [Ref 6] or for more information on the specific registers of the XADC and how to address them.
Although you can use the get_hw_sysmon_reg command to access the hex values stored in registers of a system monitor, you can also retrieve values of certain registers as formatted properties of the hw_sysmon object. For example, the following code retrieves the TEMPERATURE property of the specified hw_sysmon object rather than directly accessing the hex value of the register:
get_property TEMPERATURE [get_hw_sysmons]
Related Objects
The HW_SYSMON object can be found in the Hardware Manager on the programmed hw_device, on the current hw_target and hw_server. You can query the hw_sysmon of the hw_device as follows:
get_hw_sysmons -of [get_hw_devices]
Properties
You can use the report_property command to report the actual properties assigned to HW_SYSMON objects. Refer to the Vivado Design Suite Tcl Command Reference Guide (UG835) [Ref 13] for more information.
To report the properties for the HW_SYSMON you can copy and paste the following command into the Vivado Design Suite Tcl shell or Tcl Console:
report_property -all [lindex [get_hw_sysmons] 0]
The following are the properties found on the hw_sysmon object:
Property Type Read-only Visible Value
ADC_A_GAIN hex true true 0000
ADC_A_OFFSET hex true true 007e
ADC_B_GAIN hex true true 0000
ADC_B_OFFSET hex true true ffbb
CLASS string true true hw_sysmon
CONFIG_REG.ACQ binary false true 0
CONFIG_REG.ALM0 binary false true 0
CONFIG_REG.ALM1 binary false true 0
CONFIG_REG.ALM2 binary false true 0
CONFIG_REG.ALM3 binary false true 0
CONFIG_REG.ALM4 binary false true 0
CONFIG_REG.ALM5 binary false true 0
CONFIG_REG.ALM6 binary false true 0
CONFIG_REG.AVG binary false true 00
CONFIG_REG.BU binary false true 0
CONFIG_REG.CAL0 binary false true 0
CONFIG_REG.CAL1 binary false true 0
CONFIG_REG.CAL2 binary false true 0
CONFIG_REG.CAL3 binary false true 0
CONFIG_REG.CAVG binary false true 0
CONFIG_REG.CD binary false true 00000000
CONFIG_REG.CH binary false true 00000
CONFIG_REG.EC binary false true 0
CONFIG_REG.MUX binary false true 0
CONFIG_REG.OT binary false true 0
CONFIG_REG.PD binary false true 00
CONFIG_REG.SEQ binary false true 0000
DESCRIPTION string true true XADC
FLAG.ALM0 binary true true 0
FLAG.ALM1 binary true true 0
FLAG.ALM2 binary true true 0
FLAG.ALM3 binary true true 0
FLAG.ALM4 binary true true 0
FLAG.ALM5 binary true true 0
FLAG.ALM6 binary true true 0
FLAG.JTGD binary true true 0
FLAG.JTGR binary true true 0
FLAG.OT binary true true 0
FLAG.REF binary true true 0
LOWER_TEMPERATURE string false true -273.1
LOWER_TEMPERATURE_SCALE enum false true CELSIUS
LOWER_VCCAUX string false true 0.000
LOWER_VCCBRAM string false true 0.000
LOWER_VCCINT string false true 0.000
LOWER_VCCO_DDR string false true 0.000
LOWER_VCCPAUX string false true 0.000
LOWER_VCCPINT string false true 0.000
MAX_TEMPERATURE string true true 41.7
MAX_TEMPERATURE_SCALE enum false true CELSIUS
MAX_VCCAUX string true true 1.805
MAX_VCCBRAM string true true 0.997
MAX_VCCINT string true true 1.000
MAX_VCCO_DDR string true true 0.000
MAX_VCCPAUX string true true 0.000
MAX_VCCPINT string true true 0.000
MIN_TEMPERATURE string true true 37.3
MIN_TEMPERATURE_SCALE enum false true CELSIUS
MIN_VCCAUX string true true 1.800
MIN_VCCBRAM string true true 0.993
MIN_VCCINT string true true 0.997
MIN_VCCO_DDR string true true 2.999
MIN_VCCPAUX string true true 2.999
MIN_VCCPINT string true true 2.999
NAME string true true localhost/xilinx_tcf/Digilent/210203336599A/xc7k325t_0/SYSMON
SUPPLY_A_OFFSET hex true true 006b
SUPPLY_B_OFFSET hex true true ffa9
SYSMON_REFRESH_RATE_MS int false true 0
TEMPERATURE string true true 37.8
TEMPERATURE_SCALE enum false true CELSIUS
UPPER_TEMPERATURE string false true -273.1
UPPER_TEMPERATURE_SCALE enum false true CELSIUS
UPPER_VCCAUX string false true 0.000
UPPER_VCCBRAM string false true 0.000
UPPER_VCCINT string false true 0.000
UPPER_VCCO_DDR string false true 0.000
UPPER_VCCPAUX string false true 0.000
UPPER_VCCPINT string false true 0.000
VAUXP0_VAUXN0 string true true 0.000
VAUXP1_VAUXN1 string true true 0.000
VAUXP2_VAUXN2 string true true 0.000
VAUXP3_VAUXN3 string true true 0.000
VAUXP4_VAUXN4 string true true 0.000
VAUXP5_VAUXN5 string true true 0.000
VAUXP6_VAUXN6 string true true 0.000
VAUXP7_VAUXN7 string true true 0.000
VAUXP8_VAUXN8 string true true 0.000
VAUXP9_VAUXN9 string true true 0.000
VAUXP10_VAUXN10 string true true 0.000
VAUXP11_VAUXN11 string true true 0.000
VAUXP12_VAUXN12 string true true 0.000
VAUXP13_VAUXN13 string true true 0.000
VAUXP14_VAUXN14 string true true 0.000
VAUXP15_VAUXN15 string true true 0.000
VCCAUX string true true 1.802
VCCBRAM string true true 0.995
VCCINT string true true 0.999
VCCO_DDR string true true 0.000
VCCPAUX string true true 0.000
VCCPINT string true true 0.000
VP_VN string true true 0.000
VREFN string true true 0.000
VREFP string true true 0.000