Ug580 Ultrascale Sysmon
Ug580 Ultrascale Sysmon
System Monitor
Revision History
The following table shows the revision history for this document.
Virtex® UltraScale FPGAs provide the highest system capacity, bandwidth, and
performance. Delivering unprecedented logic capacity, serial I/O bandwidth, and on-chip
memory, the Virtex UltraScale family pushes the performance envelope ever higher.
This user guide serves as a technical reference describing the UltraScale architecture System
Monitor (SYSMON). SYSMON monitors the physical environment via on-chip temperature
and supply sensors, up to 17 external analog inputs, and an integrated analog to digital
converter (ADC). This user guide is part of the UltraScale architecture documentation suite
available at: www.xilinx.com/ultrascale.
This chapter provides a brief overview of the SYSMON functionality with key information to
allow a basic understanding of the SYSMON block. This introduction describes the pinout
requirements and how to instantiate basic functionality in designs. Subsequent chapters
provide more detailed descriptions of the SYSMON functionality.
SYSMON Overview
The SYSMON includes an ADC and on-chip sensors. The ADC and sensors are fully tested
and specified (see the data sheets). The ADC provides a general-purpose, high-precision
analog interface for a range of applications. Figure 1-1 shows a block diagram of the
SYSMON. The ADC supports a range of operating modes including external triggering (see
Chapter 4, SYSMON Operating Modes) and various analog input signal types, for example,
unipolar, bipolar, and differential (see Chapter 2, Basic Functionality). The ADC can access
up to 17 external analog input channels.
X-Ref Target - Figure 1-1
°C
On-Chip Ref
1.25V
VP/VN
External Control Status
VAUXP/N[0] MUX ADC Registers Registers
Analog
Inputs
VAUXP/N[15]
DRP
SYSMONE1
JTAG I2C
DRP Interface
UG580_c1_01_041713
The SYSMON also includes several on-chip sensors that support measurement of the
on-chip power supply voltages and die temperature. The ADC conversion data is stored in
dedicated status registers. These registers are accessible through the internal logic
interconnect using a 16-bit synchronous read and write dynamic reconfiguration port
(DRP). ADC conversion data is also accessible through the JTAG test access port (TAP) and
I2C either before (preconfiguration) or after configuration. For JTAG TAP, the SYSMON does
not need to be instantiated or visible in the design because it is a dedicated interface that
uses the existing configuration JTAG infrastructure allowing access to SYSMON
preconfiguration. If the SYSMON is not instantiated in a design, the device operates in a
predefined default mode that monitors on-chip temperature and supply voltages.
IMPORTANT: The SYSMON contains only a single 10-bit 0.2 MSPS ADC. Consequently, the sequencer
for SYSMON does not support simultaneous sampling mode or independent ADC mode.
Table 1-1 lists the differences between the 7 series XADC primitive versus the UltraScale
architecture SYSMONE1 primitive.
Table 1-1: 7 Series XADC Primitive versus UltraScale Architecture SYSMONE1 Primitive
Feature XADC SYSMONE1
Resolution 12-bit 10-bit
Sample rate 1 MSPS 0.2 MSPS
Analog-to-digital converters 2 1
Auxiliary analog inputs 16 16
Banks supporting external analog inputs 1 All
Control registers 40h to 7Fh 40h to 7Fh
Status registers 00h to 3Fh 00h to 3Fh, 80h to 8Fh
Alarm outputs 8: ALM[7:0] 16: ALM[15:0]
USER supply sensors 0 4
Reconfiguration interfaces DRP, JTAG DRP, I2C, JTAG
1.25V ± 0.2%
50 ppm/°C VREFP VCCADC VREFP VCCADC
VP VP
100 nF 100 nF 470 nF 100 nF 470 nF
ADC ADC
VN
VN
Ferrite bead for high frequency noise isolation Ferrite bead for high frequency noise isolation
GND GND
Package Pins
UG580_c1_02_101413
It is also possible to use an on-chip reference for the ADC. To enable the on-chip reference
source, the VREFP pin must be connected to GND as shown on the right of Figure 1-2. When
only basic on-chip thermal and supply monitoring is required, using the on-chip reference
provides good performance. Consult the data sheets to see the accuracy specifications
when using the external and on-chip reference sources. Table 1-2 lists the pins associated
with the SYSMON and the recommended connectivity.
IMPORTANT: It is also important to place the 100 nF decoupling capacitors as close as possible to the
VCCADC_0, VGNDADC_0, V REFP_0 (optional), and V REFN_0 (optional) package balls to minimize inductance
between the decoupling and package balls.
Notes:
1. I/Os that are analog input-enabled contain the _ADxP_ and _ADxN_ designation in the package file name, e.g.,
IO_L1P_T0_AD0P_35 is the input pin for analog auxiliary channel VAUXP[0]. IO_L1N_T0_AD0N_35 is the input pin for analog
auxiliary channel VAUXN[0]. For more information, see the UltraScale Architecture Packaging and Pinout Specification.
IMPORTANT: Consult Chapter 5, Application Guidelines before commencing any PC board layout.
Board layout and external component choices can greatly impact the performance of the ADC. For
additional PCB layout guidelines, see XADC Layout Guidelines (XAPP554) [Ref 1].
The SYSMON allows any single I/O bank to support the auxiliary analog inputs. All auxiliary
analog inputs must be placed within the same I/O bank. Analog input voltages cannot
exceed the I/O bank supply (VCCO). Analog inputs must set IOSTANDARD = ANALOG. To
assign an auxiliary analog input to a particular bank, assign the input to a valid analog input
as designated by _AD[15:0]P_ <BANK #> or _AD[15:0]N_<BANK #>. The Vivado® pin
planner can be used to help identify allowable pins for each bank. For example,
_AD0P_<BANK #> should be assigned to the input connected to AUXP[0] port for the
SYSMONE1 instantiation.
All analog input channels are differential and require two package balls. See the UltraScale
Architecture Packaging and Pinout Specification (UG575) [Ref 3] for more information. See
Analog Inputs, page 20 for more information.
SYSMON Ports
Figure 1-3 shows the ports on the SYSMONE1 primitive, and Table 1-3 describes the
functionality of the ports.
X-Ref Target - Figure 1-3
SYSMONE1
DO[15:0]
DI[15:0]
Dynamic DADDR[7:0]
Reconfiguration Port DEN
(DRP) DWE
ALM[15:0]
DCLK Alarms
OT
DRDY
MUXADDR[4:0]
RESET CHANNEL[5:0]
Control EOC
and Clock CONVST
CONVSTCLK EOS
BUSY Status
VP JTAGLOCKED
External
Analog VN JTAGMODIFIED
Inputs VAUXP[15:0] JTAGBUSY
VAUXN[15:0]
I2C_SCLK_IN
DRP I2C I2C_SCLK_TS
Interface I2C_SDA_IN
I2C_SDA_TS
UG580_c1_03_111313
Notes:
1. The DRP is the interface between the SYSMON and the device. All SYSMON registers can be accessed from the
interconnect logic using this interface.
SYSMON Attributes
The block diagram in Figure 1-1 shows the 16-bit control registers that define the
operation of the SYSMON. These registers can be read and written using the DRP, JTAG, or
I2C ports. It is also possible to initialize the contents of these registers during the
configuration using attributes for the SYSMONE1 primitive. The attributes are called
INIT_xx, where xx corresponds to the hexadecimal address of the register on the DRP. For
example, INIT_40 corresponds to the first control register at address 40h on the DRP. The
control registers and the INIT_xx values are described in detail in Figure 3-1.
Notes:
1. Only supported in HP I/O banks.
2. Only supported in HR I/O banks.
The SYSMONE1 primitive also has the SIM_MONITOR_FILE attribute that points to the
analog stimulus file. This attribute is required to support simulation. This attribute points to
the path and file name of a text file that contains analog information (e.g., temperature and
voltage). UNISIM and SIMPRIM models use this text file during simulation. This is the only
way analog signals can be introduced into a simulation of the SYSMON. For more
information, see SYSMON Software Support.
Every on-chip user supply can be independently set. Due to routing restrictions, the System
Management Wizard should be used for setting the on-chip user supplies.
Analog-to-Digital Converter
The ADC has a nominal analog input range from 0V to 1V. In unipolar mode (default), the
analog inputs of the ADC produce a full scale code of 3FFh (10 bits) when the input is 1V.
Thus, an analog input signal of 200 mV in unipolar mode produces an output code of:
In bipolar mode, the ADC uses two’s complement coding and produces a full scale code of
1FFh with +0.5V input and 200h with –0.5V input.
Temperature Sensor
The temperature sensor has a transfer function of:
Temperature ( °C ) = ADC
Code × 503.975
---------------------------------------------- – 273.15 Equation 1-2
1024
For example, ADC code 606 (25Eh) = 25°C. The temperature sensor result is found in the
status register 00h.
Basic Functionality
The SYSMON block contains a 10-bit, 0.2 MSPS ADC. The ADC can be used with both
external analog inputs and on-chip sensors. Several predefined operating modes are
available that cover the most typical use cases for the ADC. These operating modes are
described in Chapter 4. This chapter focuses on the detailed operation of the ADC and the
on-chip sensors. The various input configurations for the external analog inputs are also
covered. All operating modes of the ADC, sensors, and analog inputs are configured using
the SYSMON control registers. A detailed description of the control registers is covered in
Chapter 3.
IMPORTANT: For the ADC to function as specified, the power supplies and reference options must be
configured correctly.
The required package ball connections are shown in Figure 1-2. The PCB layout and external
component selection are important for ensuring optimal ADC performance and are covered
in Chapter 5.
TIP: The ADC always produces a 16-bit conversion result, and the full 16-bit result is stored in the
16-bit status registers. The 10-bit transfer functions shown in this section correspond to the 10 MSBs
(most significant or left-most bits) in the 16-bit status registers. The six LSBs can be used to minimize
quantization effects or improve resolution through averaging or filtering.
Unipolar Mode
Figure 2-1 shows the 10-bit unipolar transfer function for the ADC. The nominal analog
input range to the ADC is 0V to 1V in this mode. The ADC produces a zero code (000h)
when 0V is present on the ADC input and a full scale code of all 1s (3FFh) when 1V is
present on the input.
The ADC output coding in unipolar mode is straight binary. The designed code transitions
occur at successive integer LSB values such as one LSB, two LSBs, and three LSBs (and so
on). The LSB size in volts is equal to 1V/210 or 1V/1024 = 977 µV. The analog input channels
are differential and require both the positive (VP) and negative (VN) inputs of the differential
input to be driven. For more information, see the Analog Inputs section.
X-Ref Target - Figure 2-1
3FD
10-Bit Output Code (Hex)
004
003
002
001
000
1 2 3 999
Bipolar Mode
When the external analog input channels of the ADC are configured as bipolar, they can
accommodate true differential and bipolar analog signal types (see the Analog Inputs
section). When dealing with differential signal types, it is useful to have both sign and
magnitude information about the analog input signal. Figure 2-2 shows the ideal transfer
function for bipolar mode operation. The output coding of the ADC in bipolar mode is two’s
complement and indicates the sign of the input signal on V P relative to V N. The designed
code transitions occur at successive integer LSB values, that is, one LSB, two LSBs,
three LSBs, etc. The LSB size in volts is equal to 1V/2 10 or 1V/1024 = 977 µV.
X-Ref Target - Figure 2-2
Output Code
(Two’s Complement Coding)
1FFh
Full Scale Input = 1V
1FEh 1 LSB = 1V / 1024 = 977 μV
002h
10-Bit Output Code
001h
000h
3FFh
3FEh
3FDh
201h
200h
–500 –3 –2 –1 0 +1 +2 +499
Analog Inputs
The analog inputs of the ADC use a differential sampling scheme to reduce the effects of
common-mode noise signals. This common-mode rejection improves the ADC performance
in noisy digital environments. Figure 2-3 shows the benefits of a differential sampling
scheme. Common ground impedances (RG) easily couple noise voltages (switching digital
currents) into other parts of a system. These noise signals can be 100 mV or more. For the
ADC, this noise voltage is equivalent to hundreds of LSBs, thus inducing large measurement
errors. The differential sampling scheme samples both the signal and any common mode
noise voltages at both analog inputs (VP and VN). The common mode signal is effectively
subtracted because the track-and-hold amplifier captures the difference between VP and
VN or V P minus VN. To take advantage of the high common mode rejection, connect VP and
VN in a differential configuration.
X-Ref Target - Figure 2-3
Differential
Sampling
VP +
Noise T/H
Current –
VN
Noise
Voltage RG(1)
VN
0V 0V
When designated as analog inputs, these inputs are unavailable for use as digital I/Os. If the
I/O is used as a digital I/O, it is subject to the specifications of the configured I/O standard.
IMPORTANT: If the I/O is used as an analog input, the input voltage must adhere to the specifications
given in the analog-to-digital converter table in the data sheets.
Additionally, the I/O standard should be set to ANALOG. As an example, to assign VAUXP0
and VAUXN0 to the ANALOG I/O standard:
It is possible to enable any number of auxiliary analog inputs in an I/O bank and use the
remaining as digital I/Os. If there is a mixture of analog and digital I/Os in a bank, the I/O
bank must be powered by a supply required to meet the specifications of the digital I/O
standard in used. The analog input signal should not exceed the I/O bank supply voltage
(VCCO) in this case.
3 pF To ADC 3 pF To ADC
RMUX RMUX
VN VN
Dedicated Inputs 100Ω Dedicated Inputs 100Ω
Auxiliary Inputs 10 kΩ Auxiliary Inputs 10 kΩ CSAMPLE
3 pF
UG580_c2_04_110612
The time constant 7.6 is derived from TC = Ln 2 (N + m), where N = 10 for a 10-bit system and
m = 1 additional resolution bit. The required 10-bit acquisition time in unipolar mode is
approximated:
For the dedicated channel (VP/VN), the minimum acquisition time (bipolar mode) required
is given by:
– 12
t ACQ = 7.6 × 100 × 3 × 10 = 2.3 ns Equation 2-3
The auxiliary analog channels (such as, VAUXP[15:0] and VAUXN[15:0]) have a much larger
R MUX resistance that is approximately equal to 10 kΩ. Equation 2-4 shows the minimum
acquisition time in bipolar mode.
3 – 12
t ACQ = 7.6 × ( 10 × 10 ) × ( 3 × 10 ) = 230 ns Equation 2-4
Any additional external resistance, such as the anti-alias filter or resistor divider, increases
the acquisition time requirement due to the increased RMUX value in Equation 2-1. To
calculate the new acquisition time, convert any external resistance to a series equivalent
resistance value and add to the RMUX resistance specified in Equation 2-3 and Equation 2-4.
For more information and design considerations for driving the ADC inputs, see Driving the
Xilinx Analog-to-Digital Converter (XAPP795) [Ref 5].
VP, VN
2.5V VP
2V 0V to 1V ADC
Peak voltage on VP
1.5V VN
(Volts)
VP
Common Voltage
1V
0V to 0.5V
0.5V Common
Mode Range
0V
VN (Common Mode)
UG580_c2_05_110612
When bipolar operation is enabled, the differential analog input (VP – VN) can have a
maximum input range of ±0.5V. The common mode or reference voltage should not exceed
0.5V in this case (see Figure 2-6).
VP, VN
±0.5V
VP
2V
ADC
Volts
1.5V
0.5V VN
1V
VP= ±0.5V
0.5V
VN = 0.5V
0V
UG580_c2_06_110612
VP, VN
2.5V
Common + ±0.25V VP
2V Common Mode Range Voltage
0.25V to 0.75V 0.25V to 0.75V
Volts
0.5V
0V
UG580_c2_07_110612
Temperature Sensor
The SYSMON contains a temperature sensor that produces a voltage output proportional to
the die temperature. Equation 2-5 shows the output voltage of the temperature sensor.
κT
Voltage = 10 × ----- × ln ( 10 ) Equation 2-5
q
Where:
The output voltage of this sensor is digitized by the ADC to produce a 10-bit digital output
code (ADC code). Figure 2-8 illustrates the digital output transfer function for this
temperature sensor.
For simplification, the temperature sensor plus the ADC transfer function is rewritten as:
ADC Code × 503.975
Temperatur e ( °C ) = ---------------------------------------------- – 273.15 Equation 2-6
1024
X-Ref Target - Figure 2-8
3FFh
3FEh
3FDh
Full Scale
10-Bit Output Code (Hex)
Transition
1LSB = 0.49°C
004h
003h
002h
001h
000h
–272.5°C
–272°C
–271.5°C
+24.76°C
+230.5°C
Temperature (°C)
UG580_c2_08_100712
Figure 2-9 shows the power-supply sensor transfer function after digitizing by the ADC. The
power supply sensor can be used to measure voltages in the range 0V to VCCAUX + 3% with
a resolution of approximately 2.93 mV. The transfer function for the supply sensor is shown
in Equation 2-7.
ADC Code
Voltage = ------------------------ × 3V Equation 2-7
1024
The power-supply measurement results for VCCINT,VCCAUX , and VCCBRAM are stored in the
status registers at DRP addresses 01h, 02h, and 06h, respectively.
X-Ref Target - Figure 2-9
Output Code
Full Scale
Transition
3FFh
3FEh
1 LSB = 2.93 mV
355h
10-Bit Output Code
155h
004h
003h
002h
001h
000h
2.93 mV
5.86 mV
8.79 mV
1.00V
2.50V
2.994V
2.997V
Figure 2-9: Ideal Power Supply Transfer Function (All Supplies, Excluding VUSER HRIO)
The power supply measurement results for VUSER0, VUSER1, VUSER2, and VUSER3 are stored in
the status registers at DRP addresses 80h, 81h, 82h, and 83h, respectively. When the VUSER
supply is attached to an HP I/O bank, the transfer function is:
ADC Code
Voltage = ------------------------ × 3V Equation 2-8
1024
To support the wider voltage ranges of HR I/O banks, when the VUSER supply is attached to
an HR I/O bank, the transfer function is attenuated, as shown in Equation 2-9. See
Figure 2-10.
ADC Code
Voltage = ------------------------ × 6V Equation 2-9
1024
X-Ref Target - Figure 2-10
Output Code
Full Scale
Transition
3FFh
3FEh
1 LSB = 5.86 mV
355h
10-Bit Output Code
155h
004h
003h
002h
001h
000h
5.86 mV
11.72 mV
17.58 mV
1.00V
1.998V
4.998V
5.988V
5.994V
Supply Voltage (Volts)
UG580_c2_10_101413
Figure 2-10: Ideal Power Supply Transfer Function for USER Supply (HRIO)
6WDWXV5HJLVWHUV
'$''5K)KK))K
5HDG2QO\
0HDVXUHPHQWV &DOLEUDWLRQ&RHIILFLHQWV
7HPSK 0D[7HPSK 5HVHUYHGK)K 6<60216XSSO\2IIVHWK
9&&,17K 0D[9&&,17K 0D[98VHU$K 6<6021%LSRODU2IIVHWK
9&&$8;K 0D[9&&$8;K 0D[98VHU$K 6<6021*DLQ$K
9391K 0D[9&&%5$0K 0D[98VHU$K 5HVHUYHG%K)K
95()3K 0LQ7HPSK 0D[98VHU$K 5HVHUYHGK'K
95()1K 0LQ9&&,17K 5HVHUYHG$K$K
9&&%5$0K 0LQ9&&$8;K 0LQ98VHU$K )ODJ5HJLVWHUV
'\QDPLF5HFRQILJXUDWLRQ3RUW$UELWUDWRU
&RQWURO5HJLVWHUV
'$''5K)K
-7$*%86<
-7$*/2&.(' 5HDG$QG:ULWH
-7$*02',),(' &RQILJXUDWLRQ5HJLVWHUV 6HTXHQFH5HJLVWHUV $ODUP5HJLVWHUV
&RQILJXUDWLRQ5HJLVWHUK 6(4&+6(/K 7HPSHUDWXUH8SSHUK 5HVHUYHGKK
,&B6'$
&RQILJXUDWLRQ5HJLVWHUK 6(4$9*K 9&&,178SSHUK 98VHU/RZHUK
,&B6&/.
&RQILJXUDWLRQ5HJLVWHUK 6(4&+6(/K 9&&$8;8SSHUK 98VHU/RZHUK
&RQILJXUDWLRQ5HJLVWHUK 6(4&+6(/K 278SSHUK 98VHU/RZHU$K
-7$*7$3
&RQWUROOHU
8*BFBB
For a detailed description of the DRP timing, see Dynamic Reconfiguration Port (DRP)
Timing. For more information on the JTAG DRP interface, see DRP JTAG Interface.
If DWE is a logic Low, a DRP read operation is carried out. The data for this read operation
is valid on the DO bus when DRDY transitions High. Thus, DRDY should be used to capture
the DO bus. For a write operation, the DWE signal is a logic High and the DI bus and DRP
address (DADDR) is captured on the next rising edge of DCLK. The DRDY signal transitions
to a logic High when the data has been successfully written to the DRP register. A new read
or write operation cannot be initiated until the DRDY signal transitions Low.
t1
DCLK 1 2 3 4 5
t2
t3
DEN
t5
t4
DWE
t7
t6
DADDR[7:0]
t8 t9
DI[15:0]
t10
DO[15:0]
t11
t11
DRDY
t12
t12
EOC/EOS
t13
ALM[2.0]/OT
BUSY
t15
CHANNEL[5:0]
UG580_c3_02_100712
Status Registers
The status registers ( 00h-3Fh, 80h-BFh) contain the measurement results of the
analog-to-digital conversions, the flag registers, and the calibration coefficients as shown
in Table 3-1.
Measurement Registers
Measurement results from the analog-to-digital conversions are stored as 16-bit results in
the status registers. As shown in Figure 3-3, the 10-bit data corresponds to the 10 MSBs
(most significant or left-most bits) in the 16-bit registers. The unreferenced LSBs can be
used to minimize quantization effects or improve the resolution through averaging or
filtering.
Maximum and minimum measurements are additionally recorded for the on-chip sensors
from the device power-up or the last user reset of the SYSMON. Table 3-1 defines the status
registers.
The SYSMON also tracks the minimum and maximum values recorded for the internal
sensors since the last power-up or since the last reset of the SYSMON control logic (see
Figure 3-1 and Table 3-1 for minimum/maximum register addresses.) On power-up or after
reset, all minimum registers are set to FFFFh, and all maximum registers are set to 0000h.
Each new measurement generated for an on-chip sensor is compared to the contents of its
maximum and minimum registers. If the measured value is greater than the contents of its
maximum registers, the measured value is written to the maximum register. Similarly, for the
minimum register, if the measured value is less than the contents of its minimum register,
the measured value is written to the minimum register. This check is carried out every time
a measurement result is written to the status registers.
X-Ref Target - Figure 3-3
DI15 DI14 DI13 DI12 DI11 DI10 DI9 DI8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
Measurement Registers
DATA[9:0] Note
(00h-07h, 10h-2Fh)
UG580_c3_02a_022813
IMPORTANT: The ADCs always produce a 16-bit conversion result, and the full 16-bit result is stored in
the 16-bit status registers. The 10-bit data correspond to the 10 MSBs (most significant or left-most
bits) in the 16-bit status registers. The unreferenced LSBs can be used to minimize quantization effects
or improve resolution through averaging or filtering.
Flag Register
The flag register is shown in Figure 3-4. The bit definitions are described in Table 3-2.
X-Ref Target - Figure 3-4
DI15 DI14 DI13 DI12 DI11 DI10 DI9 DI8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
DI15 DI14 DI13 DI12 DI11 DI10 DI9 DI8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
Note: The ADCs always produce a 16-bit conversion result. The 10-bit data correspond to the 10 MSBs (most significant)
in the 16-bit status registers. The unreferenced LSBs can be used to minimize quantization. UG580_c3_03a_120213
The SYSMON has a built-in calibration function that automatically calculates these
coefficients. By initiating a conversion on channel 8 (08h), all calibration coefficients are
calculated. The SYSMON default operating mode automatically uses calibration. When not
operating in the default mode, these calibration coefficients are applied to all ADC
measurements by enabling the calibration bits (CAL0–3) in configuration register 1 (41h)
(see Table 3-6).
BUSY transitions High for the duration of the entire calibration sequence (conversion on
channel 8). This calibration sequence is six times longer than a regular conversion on a
sensor channel as offset and gain are measured for the ADC and the power supply sensor.
Offset Coefficients
The offset calibration registers store the offset correction factor for the supply sensor and
ADC. The offset correction factor is a 10-bit, two’s complement number and is expressed in
LSBs. Similar to other status registers, the 10-bit values are MSB justified in the registers.
For example, if the ADC has an offset of +10 LSBs (approximately 10 x 977 μV = 9.77 mV),
the offset coefficient records –10 LSBs or FF6h (status register 08h). For the supply sensor,
the LSB size is approximately 2930 μV, thus a +10 LSB offset is equivalent to 29.3 mV of
offset in the supply measurement.
Gain Coefficients
The ADC gain calibration coefficient stores the correction factor for any gain error in the
ADC. The correction factor is stored in the seven LSBs of register 0Ah. These seven bits store
both sign and magnitude information for the gain correction factor. If the seventh bit is a
logic 1, the correction factor is positive. If it is 0, the correction factor is negative. The next
six bits store the magnitude of the gain correction factor. Each bit is equivalent to 0.1%.
For example, if the ADC has a positive gain error of +1%, then the gain calibration
coefficient records –1% (the –1% correction applied to cancel the +1% error). Because the
correction factor is negative, the seventh bit is set to zero. The remaining magnitude bits
record 1%, where 1% = 10 x 0.1% and 10 = 1010 binary. The status register 0Ah records
0000 0000 0000 1010. With six bits assigned to the magnitude, the calibration can
correct errors in the range ± 0.1% x (25 – 1), or ± 3.1%.
Control Registers
The SYSMON control registers are used to configure the SYSMON operation. All SYSMON
functionality is controlled through these registers.
These control registers are initialized using the SYSMON attributes when the SYSMON is
instantiated in a design. This means that the SYSMON can be configured to start in a
predefined mode after device configuration.
The configuration registers can be modified through the DRP after the device has been
configured. For example, a soft microprocessor or state machine can be used to alter the
contents of the SYSMON control registers at any time during normal operation. Table 3-5
through Table 3-7 define the bits for the three configuration registers.
X-Ref Target - Figure 3-6
', ', ', ', ', ', ', ', ', ', ', ', ', ', ', ',
&$9* ; $9* $9* 08; %8 (& $&4 ; ; &+ &+ &+ &+ &+ &+ &RQILJ5HJK
6(4 6(4 6(4 6(4 $/0 $/0 $/0 $/0 &$/ &$/ &$/ &$/ $/0 $/0 $/0 27 &RQILJ5HJK
&' &' &' &' &' &' &' &' ; ; ; 3' ; ; ; ; &RQILJ5HJK
,&B25 ,&B$>@ ,&B$>@ ,&B$>@ ,&B$>@ ,&B$>@ ,&B$>@ ,&B$>@ ,&B(1 ; ; ; $/0 $/0 $/0 $/0 &RQILJ5HJK
8*BFBB
0 0 0 0 0 0 0 On-chip temperature
1 0 0 0 0 0 1 Average on-chip VCCINT
2 0 0 0 0 1 0 Average on-chip VCCAUX
3 0 0 0 0 1 1 V P, V N - Dedicated analog inputs
4 0 0 0 1 0 0 V REFP (1.25V)
5 0 0 0 1 0 1 V REFN (0V)
6 0 0 0 1 1 0 Average on-chip VCCBRAM
7 0 0 0 1 1 1 Invalid channel selection
8 0 0 1 0 0 0 Carry out a SYSMON calibration
15–9 0 ... ... ... ... ... Invalid channel selection
16 0 1 0 0 0 0 VAUXP[0], VAUXN[0] – Auxiliary channel 1
17 0 1 0 0 0 1 VAUXP[1], VAUXN[1] – Auxiliary channel 2
VAUXP[2:15], VAUXN[2:15] – Auxiliary channels
31–18 0 ... ... ... ... ...
3to 16
32 1 0 0 0 0 0 V User0 User Supply 0
33 1 0 0 0 0 1 V User1 User Supply 1
34 1 0 0 0 1 0 V User2 User Supply 2
35 1 0 0 0 1 1 V User3 User Supply 3
36+ 1 ... ... ... ... ... Invalid channel selection
Notes:
1. Minimum division ratio is 2, for example, ADCCLK = DCLK/2.
DRP Arbitration
Because the DRP registers are accessed from three different ports (SYSMONE1 DRP
interface, I2C, and JTAG TAP), an arbitrator is implemented to manage potential conflicts.
Arbitration is managed on a per transaction basis (a transaction is a single read/write
operation to the DRP).
Three status signals help manage access through the interconnect when the JTAG or I2C
port is also being used: JTAGBUSY, JTAGMODIFIED, and JTAGLOCKED.
RECOMMENDED: If you are unfamiliar with basic JTAG functionality, you should become familiar with
the JTAG standard (IEEE standard 1149.1) before proceeding.
IMPORTANT: JTAG access can be limited to read only or completely disabled. To adjust the JTAG access,
add the following to an XDC file:
set_property BITSTREAM.GENERAL.JTAG_XADC <Enable|Disable|StatusOnly>
current_design_name
See the Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 2] for more
information on device configuration bitstream settings.
TLR TLR RTI DRS IRS CIR SIR SIR SIR SIR EIR UIR DRS CDR SDR SDR SDR SDR SDR EDR UDR RTI RTI RTI DRS CDR
TCK
TMS
0 9 0 30 31
After the SYSMON instruction is loaded, all data register (DR)-scan operations are carried
out on the SYSMON DR. When the data shifted into SYSMON DR is a JTAG DRP write
command, the SYSMON DRP arbitrator carries out a DRP write. The format of this write
command is described in JTAG DRP Commands. The SYSMON DR contents are transferred
to the SYSMON DRP arbitrator (see DRP Arbitration) during the Update-DR state. After the
Update-DR state, the arbitrator manages the new data transfer to the SYSMON DRP
register. This takes up to six DRP clock (DCLK) cycles if a DRP access from the interconnect
logic is already in progress.
During the Capture-DR phase (just before data is shifted into the SYSMON DR), DRP data is
captured from the arbitrator. Depending on the last JTAG DRP command, this data can be
old data, previously written to the DRP, or requested new read data (see SYSMON DRP JTAG
Read Operation). This captured data is shifted out (LSB first) on DO as the new JTAG DRP
command is shifted in. The 16 LSBs of this 32-bit word contain the JTAG DRP data. The
16 MSBs are set to zero.
If multiple writes to the SYSMON DR are taking place, it might be necessary to idle the TAP
controller for several TCK cycles before advancing to the next write operation (see
Figure 3-7). The idle cycles allow the arbitrator to complete the write operation to the
SYSMON DRP register. If DCLK is running approximately 6 x TCK, these idle states are not
necessary. However, inserting 10 or so idle states ensures all transfers are inherently safe.
TCK
TMS
0 30 31 0 30 31
TDI LSB MSB LSB MSB
First, the SYSMON DR is loaded with the read DRP instruction. This instruction is transferred
to the arbitrator during the Update-DR state. Then the arbitrator reads the selected DRP
register and stores the newly read 16-bit data. This operation takes several DCLK cycles to
complete.
During the DR-Capture phase of the next DR-scan operation, newly read data is transferred
from the arbitrator to the SYSMON DR. This 16-bit data (stored in the 16 LSBs of the 32-bit
word) is then shifted out on TDO during the subsequent shift operation (see Figure 3-8).
The timing diagram shows several idle states at the end of the first DR-scan operation,
allowing the arbitrator enough time to fetch the SYSMON DRP data.
However, if the DCLK frequency is significantly faster than the TCK, these idle states might
not be required.
Implementing a DR-scan operation before the arbitrator has completed the DRP-read
operation results in old DRP data being transferred to the SYSMON DR during the
DR-capture phase.
as shown in Figure 3-8. Thus, as the result of a read operation is being shifted out of the
SYSMON DR, an instruction for the next read can be shifted in.
31 30 29 26 25 16 15 0
X X CMD[3:0] DRP Address [9:0] DRP Data [15:0]
It is also possible to enable the auxiliary analog input channel preconfiguration of the
device, allowing external analog voltages (on the PCB) to be monitored using the JTAG TAP
before configuration. The auxiliary channels are enabled by writing 0001h to DRP address
02h. This address lies within the read-only status register address space and normally holds
the result of a VCCAUX measurement. However, a write to this address enables the auxiliary
inputs. This function only works prior to configuration. After configuration, these inputs
must be explicitly instantiated in the design.
JTAGBUSY
JTAGBUSY becomes active during the update phase of a DRP transaction through the JTAG
TAP. This signal resets when the JTAG SYSMON DR transaction is completed. Each read/write
to the SYSMON DR is treated as an individual transaction. If DRP access initiates through
the interconnect port when JTAGBUSY is High, then the arbitrator queues this request for a
read/write through the interconnect logic. DRDY does not transition active until JTAGBUSY
transitions Low and the interconnect transaction is completed. A second DRP access
through the interconnect logic must not be initiated until the DRDY for the initial access
becomes active and indicates the read/write was successful. If an interconnect access is in
progress when a JTAG DRP transaction initiates, the interconnect access is completed
before the JTAG transaction.
JTAGMODIFIED
Whenever there is a JTAG write (JTAG reads typically occur more often) to any register in the
DRP, the application (device) must be notified about the potential change of configuration.
Thus, the JTAGMODIFIED signal transitions High after a JTAG write. A subsequent DRP
read/write resets the signal.
JTAGLOCKED
When JTAG is used, in some cases it is simpler to take DRP ownership for a period by locking
out access through the interconnect. This is useful in a diagnostic situation where a large
number of DRP registers are modified through the JTAG TAP. When a JTAGLOCKED request
is made, the JTAGLOCKED signal transitions to the active-High state. The signal remains
High until the port is unlocked again. No read or write access is possible via the DRP port
when the JTAGLOCKED signal is High. The JTAGLOCKED signal is activated by writing 0001h
to DRP address 00h. The JTAGLOCKED signal is reset by writing 0000h to DRP address 00h.
JTAGLOCKED is also used to indicate when the DRP is ready for a read or write when the
DCLK is first connected or when DCLK becomes active again after a period of inactivity. It
can take up to 10 DCLK cycles for JTAGLOCKED to deassert Low after DCLK becomes active.
TIP: The SYSMON automatically switches over to an on-chip clock oscillator if a missing DCLK is
detected.
SYSMONE1 supports transfers up to 400 Kb/s, Standard-mode (Sm) and Fast-mode (Fm).
For slow interfaces, clock stretching is supported at the bit level, which means that the
I2C_SCLK low pulse will be extended if the I2C_SDA setup times are not met.
X-Ref Target - Figure 3-10
9&&
,&6ODYH
,&0DVWHU
6<6021(
,&6'$ ,2%8)
,2 2 ,&B6'$B,1
, ,&B6'$B76
,&6&/. ,2%8)
,2 2 ,&B6&/.B,1
, ,&B6&/.B76
8*BFBB
For post-configuration use of the DRP I2C interface, the System Management Wizard
should be used. The System Management Wizard sets the I2C_EN bit of the Control Register
43h High. The I2C_SDA (bidirectional) and I2C_SCLK (bidirectional) should be connected at
the top level with the I/O standard set to SYSMON_I2C.
When not used for I2C, the dual-purpose package pins for I2C_SDA and I2C_SCLK can be
used as general purpose I/O. The I2C_EN bit of the Control Register 43h must be set Low.
See the UltraScale Architecture Packaging and Pinout Specification (UG575) [Ref 3] for pin
location.
8*BFBB
I2C uses open-collector signaling, which allows bidirectional data on I2C_SDA. Figure 3-11
shows how I2C_SDA and I2C_SCLK are used to send a write to SYSMONE1 DRP. Because
I2C_SDA is bidirectional, the master and slave devices control the I2C interface at different
times during a transfer. Data is transmitted eight bits at a time with an acknowledge from
the receiving device every eight bits. The transfer ends with the master device terminating
the transfer with a stop command.
X-Ref Target - Figure 3-12
8*BFBB
Reading from status or control registers is performed with a combined format transfer, as
shown in Figure 3-12. After writing the 32-bit DRP command, a repeated start command is
sent followed by the read command. SYSMONE1 then takes over the transfer and sends the
data back to the master. After the master acknowledges the transfer, the master terminates
the transfer with a stop command.
IMPORTANT: When using an external reference supply (V REF) and using the I2C slave address
(preconfiguration or post-configuration with I2C_OR = 0), ensure VREF is stable when the I2C slave
address is set.
When the I2C address override enable bit is set, the I2C_OR bit of Control Register 43h, the
value set in the I2C_A field of Control Register 43h is used as the slave address instead of
the decoded address from the dedicated inputs. The override address and override enable
can be set using DRP JTAG interface preconfiguration, in the configuration bitstream, or
after configuration using the DRP port or JTAG.
A simple external resistor divider circuit on the dedicated analog input channel V P/V N can
be used to adjust the voltage.
The channel sequencer functionality is implemented using twelve control registers (46h -
4Fh, 78h, 79h); see Control Registers:
CHSEL_ CHSEL_ CHSEL_A CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ CHSEL_ SEQCHSEL2
AUX15 AUX14 UX13 AUX12 AUX11 AUX10 AUX9 AUX8 AUX7 AUX6 AUX5 AUX4 AUX3 AUX2 AUX1 AUX0 (49h)
AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ AVG_ SEQAVG2 (4Bh)
AUX15 AUX14 AUX13 AUX12 AUX11 AUX10 AUX9 AUX8 AUX7 AUX6 AUX5 AUX4 AUX3 AUX2 AUX1 AUX0
Averaging can be selected independently for each channel in the sequence. When
averaging is enabled for some of the channels of the sequence, the EOS is only pulsed after
the sequence has completed the amount of averaging selected by using AVG1 and AVG0
bits (see Table 3-7). If a channel in the sequence does not have averaging enabled, its status
register is updated for every pass through the sequencer. When a channel has averaging
enabled, its status register is only updated after the averaging is complete. An example
sequence is temperature and VAUX[1], where an averaging of 16 is enabled on VAUX[1]. The
sequence is temperature, VAUX[1], temperature, VAUX[1], ..., temperature, VAUX[1] for each of
the conversions where the temperature status register is updated. The VAUX[1] status
register is updated after the averaging of the 16 conversions.
If averaging is enabled for the calibration channel by setting CAVG to a logic 0 (see Control
Registers), the coefficients are updated after the first pass through the sequence.
Subsequent updates to coefficient registers require 16 conversions before the coefficients
are updated. Averaging is fixed at 16 samples for calibration.
X X X X INSEL_ X X X X X X X X X X X SEQINMODE0
VpVn (4Ch)
INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ INSEL_ SEQINMODE1
AUX15 AUX14 AUX13 AUX12 AUX11 AUX10 AUX9 AUX8 AUX7 AUX6 AUX5 AUX4 AUX3 AUX2 AUX1 AUX0 (4Dh)
ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ ACQ_ SEQACQ1 (4Fh)
AUX15 AUX14 AUX13 AUX12 AUX11 AUX10 AUX9 AUX8 AUX7 AUX6 AUX5 AUX4 AUX3 AUX2 AUX1 AUX0
Sequencer Modes
There are several sequencer modes, as defined by Table 3-8. These modes are described in
this section.
Default Mode
The default mode is enabled by setting SEQ[3:0] = 0h. In this mode of operation, the
SYSMON automatically monitors the on-chip sensors and stores the results in the status
registers. The ADC is calibrated in this mode and an averaging of 16 samples is applied to
all sensors. The SYSMON operates independently of any other control register settings in
this mode. The SYSMON also operates in default mode after initial power up and during
device configuration. Table 4-9 shows the default sequence for the SYSMON.
TIP: All alarm outputs (ALM[15:0]) except OT are disabled in default mode. ADC calibration is
automatically enabled in default mode.
The channel sequencer registers can also be reconfigured via the DRP at run time. The
sequencer must first be disabled by writing to sequence bits SEQ3 to SEQ0 before writing
to any of the sequencer channel registers.
IMPORTANT: The SYSMON must be placed in default mode by writing zeros to SEQ0 and SEQ1 while
updating these registers.
The SYSMON is automatically reset whenever SEQ3 to SEQ0 are written to. The current
status register contents are not reset at this time. Restarting the sequencer by writing to
bits SEQ3 to SEQ0 resets all channel averaging.
The SYSMON track/hold amplifiers return to track mode as soon as a conversion starts.
Therefore, the acquisition on the next channel can start during the current conversion cycle.
An output bus called MUXADDR[4:0] allows the SYSMON to control an external multiplexer.
The address on this bus reflects the channel currently being acquired, and it changes state
as soon as the SYSMON enters acquisition mode. The channel can also be nominated to be
used with an external multiplexer.
VAUXP[15]
VAUXN[15] MUXADDR[3:0]
ADDR
4
UG580_c4_01_052913
Automatic Alarms
The SYSMON also generates an alarm signal on the logic outputs ALM[15:0] when an
internal sensor measurement exceeds some user-defined thresholds. Only the values
written to the status registers are used to generate alarms. If averaging has been enabled
for a sensor channel, the averaged value is compared to the alarm threshold register
contents. The alarm outputs are disabled by writing a 1 to bits ALM15 to ALM0 in
configuration register 1. The alarm thresholds are stored in control registers 50h to 6Dh.
Table 4-10 defines the alarm thresholds that are associated with specific control registers.
The limits written to the threshold registers are MSB justified. Limits are derived from the
temperature and power-supply sensor transfer functions (see Figure 2-8 and Figure 2-9).
Four additional user selectable alarms have been added to SYSMONE1 USER3 to USER0 and
can be connected to different voltage supplies using the System Management Wizard.
Thermal Management
The on-chip temperature measurement is used for critical temperature warnings. The
default over temperature threshold is 125°C. This threshold is used for preconfiguration or
when the contents of the OT upper alarm register have not been configured (see
Table 4-10). To override this default condition, the 12 MSBs of the OT upper register
(control register 53h) must be set using the temperature sensor transfer function (see
Figure 2-8). In addition, the four LSBs must be set to 0011b.
When the die temperature exceeds a factory set limit of 125°C or a user-defined threshold,
the over-temperature alarm logic output (OT) becomes active. This feature can be disabled
when the SYSMON is instantiated in a design. The OT function is disabled by writing a 1 to
the OT bit in the SYSMON Config Reg1 (41h). The OT signal resets when the device
temperature has fallen below a user-programmable limit in OT lower 57h (see Table 4-10).
When the automatic power-down feature is enabled, the OT signal can be used to trigger a
device power down. When OT transitions High, the device enters power down
approximately 10 ms later. The power-down feature initiates a configuration shutdown
sequence, disabling the device when finished and asserts GHIGH to prevent any contention
(see the UltraScale Architecture Configuration User Guide (UG570) [Ref 4]. When OT is
deasserted, GHIGH also is deasserted and the start-up sequence is initiated releasing all
global resources. By default this functionality is disabled and must be explicitly enabled.
The automatic power down is enabled by using a configuration option in the software
design tools. To power down the device when the device temperature is higher than the
maximum value temperature allowed, add the following to the XDC file:
See the Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 2] for
additional details on device configuration bitstream settings. Enable and Disable are
allowable values. When the device enters power down, the SYSMON continues to operate in
whatever mode was configured prior to power down using an internal clock oscillator. The
device automatically powers up after the temperature has fallen below the
user-programmable lower limit. The SYSMON OT signal can also be reset by writing a 1 to
the OT bit in SYSMON configuration register 1 via the JTAG DRP interface. On-chip sensors
are monitored via the JTAG TAP during device power down. During power down, the
SYSMON uses an internal oscillator instead of DCLK. On power-up, several DCLK cycles are
required to resynchronize the DRP. JTAGLOCKED remains High until the DRP is ready for use.
Application Guidelines
The SYSMON is a precision analog measurement system based on a 10-bit analog-to-digital
converter (ADC) with an LSB size approximately equal to 1mV. To achieve the best possible
performance and accuracy with all measurements (both on-chip and external), several
dedicated pins for the ADC reference and power supply are provided. When connecting
these pins, follow the guidelines in this chapter to ensure the best possible performance
from the ADC. This chapter outlines the basic design guidelines to consider as part of the
requirements for board design.
For typical usage, the reference voltage between VREFP and VREFN should be maintained at
1.25V ± 0.2% using an external reference IC. Reference voltage ICs that deliver 1.25V are
widely available from several vendors. Many vendors offer reference voltage ICs in small
packages (SOT-23 and SC70).
RECOMMENDED: The 1.25V reference should be placed as close as possible to the reference pins and
connected directly to the V REFP input, using the decoupling capacitors recommended in the reference IC
data sheet. The recommended reference connections are illustrated in Figure 5-1.
The SYSMON also has an on-chip reference option that is selected by connecting VREFP and
VREFN to ADCGND as shown in Figure 5-1. Due to reduced accuracy, the on-chip reference
does impact the measurement performance of the SYSMON. The performance with on-chip
reference is specified in the data sheets.
Similarly, for the digital supplies for the interconnect logic, high switching rates easily result
in high-frequency voltage variations on the supply, even with decoupling. In an effort to
mitigate these effects on the ADC performance, a dedicated supply and ground reference is
provided. Figure 5-1 illustrates how to use the 1.8V VCCAUX supply to power the analog
circuitry. VCCAUX is filtered using a low-pass network. The filter design depends on the
ripple and ripple frequency (if any) on the VCCAUX supply if, for example, a switching
regulator is used. There is also a power-supply rejection specification for the external
reference circuit to consider. The filtering should ensure no more than 1 LSB (1mV) of noise
on the reference output to minimize any impact on ADC accuracy at 12 bits. If the low-pass
network filtering of VCCAUX contains more than 1 LSB of noise, an additional regulator might
be required (for example, ADP123). See XADC Layout Guidelines (XAPP554) [Ref 1] for
additional details.
The other source of noise coupling into the ADC is from the ground reference GNDADC. In
mixed-signal designs, it is common practice to use a separate analog ground plane for
analog circuits to isolate the analog and digital ground return paths to the supply. Common
ground impedance is a mechanism for noise coupling and needs to be carefully considered
when designing the PCB. This is shown in Figure 2-3, where the common ground impedance
RG converts digital switching currents into a noise voltage for the analog circuitry. While a
separate analog ground plan is recommended for 10-bit operation, it is often not possible
or practical to implement a separate analog ground plane in a design. For example, if only
the on-chip sensors are used, one low-cost solution is to isolate V REFN and GNDADC ground
references (such as a trace) from the digital ground (plane) using a ferrite bead as shown in
Figure 5-1.
~ 20 mA 100 nF ~ 20 mA 100 nF
(Note 1) (Note 1)
470 nF 1.25V ± 0.2% 470 nF
REF3012
REF3112 ~50 µA 100 nF VREFP
(Note 1) VCCADC VREFP VCCADC
10 µF
SYSMON SYSMON
~50 µA
VREFN GNDADC VREFN GNDADC
The ferrite bead behaves like a resistor at high frequencies and functions as a lossy inductor.
A typical ferrite impedance versus frequency plot is shown in Figure 5-2. The ferrite helps
provide high frequency isolation between digital and analog grounds. The reference IC
maintains a 1.25V difference of between VREFP and VREFN. The ferrite offers little resistance
to the analog DC return current.
The reference inputs should be routed as a tightly coupled differential pair from the
reference IC to the package pins. If routed on the same signal layer, the supply and analog
ground traces (VCCADC and GNDADC) should be used to shield the reference inputs because
they have a higher tolerance to any coupled noise.
X-Ref Target - Figure 5-2
Z , R, and XL vs Frequency
1200
1000 Z
R
800
Impedance (Ω)
XL
600
R
400
Z
200
XL
0
1 10 100 1000 10000
Frequency (MHz)
UG580_c5_02_110612
V2 R1
+
AC 10 9k
– R3 VCAFFP
VAUXP[x]
25
R2 RAAF
C1
1k CAAF
680 pF
R5 R4
VAUXN[x]
1 k 25 VCAFFN
RAAF
UG580_c5_03_120213
Anti-Alias Filters
Also shown in Figure 5-3, is a low-pass filter network at the analog differential inputs. This
filter network is commonly referred to as the anti-alias filter and should be placed as close
as possible to the package pins. The sensor can be placed remotely from the package as
long as the differential input traces are closely coupled. The anti-alias filter attenuates
high-frequency signal components entering the ADC where they could be sampled and
aliased, resulting in ADC measurement corruption. A discussion of aliasing in sampled
systems is beyond the scope of this document. A reference book on data converters can
provide more information on this topic.
https://secure.xilinx.com/webreg/clickthrough.do?cid=352493
This HDL example sets up the SYSMON to monitor all the on-chip sensors, i.e., temperature,
VCCINT, VCCAUX , and VCCBRAM. See Temperature Sensor and Power and User Supply Sensors.
In addition, four auxiliary analog input channels are also monitored. The SYSMON is also set
to automatically generate alarm outputs when the defined operating ranges for the device
supply voltages and temperature are exceeded (see Automatic Alarms). The SYSMON is
operated in continuous sequence mode for this example (see Sequencer Modes). For clarity
(and shorter simulations), the averaging function is disabled by the design. The disabling of
the averaging function can be seen during the DRP write. Averaging does not have any
impact on the simulation results because an ideal model of the SYSMON is used.
RECOMMENDED: Enable averaging when monitoring the on-chip sensors in a typical application to
minimize any noise impacts. This is especially true if the automatic alarm functions are used.
Apart from initializing the alarm threshold registers and the automatic channel sequencer
register, the configuration registers need to be initialized to enable alarm outputs,
sequencer modes, and ADC clock divider (see Configuration Registers (40h to 43h) for more
information). Here is an instantiation in Verilog of the SYSMON example design:
wire busy;
wire [5:0] channel;
wire drdy;
wire eoc;
wire eos;
init_read : begin
daddr = 8'h40;
den_reg = 2'h2; // performing read
if (busy == 0 ) state <= read_waitdrdy;
end
read_waitdrdy :
if (drdy ==1) begin
di_drp = do_drp & 16'h03_FF; //Clearing AVG bits for Configreg0
daddr = 8'h40;
den_reg = 2'h2;
dwe_reg = 2'h2; // performing write
state = write_waitdrdy;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
write_waitdrdy :
if (drdy ==1) begin
state = read_reg00;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
read_reg00 : begin
daddr = 8'h00;
den_reg = 2'h2; // performing read
if (eos == 1) state <=reg00_waitdrdy;
end
reg00_waitdrdy :
if (drdy ==1) begin
MEASURED_TEMP = do_drp;
state <=read_reg01;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
read_reg01 : begin
daddr = 8'h01;
den_reg = 2'h2; // performing read
state <=reg01_waitdrdy;
end
reg01_waitdrdy :
if (drdy ==1) begin
MEASURED_VCCINT = do_drp;
state <=read_reg02;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
read_reg02 : begin
daddr = 8'h02;
daddr = 8'h12;
den_reg = 2'h2; // performing read
state <= reg12_waitdrdy;
end
reg12_waitdrdy :
if (drdy ==1) begin
MEASURED_AUX2= do_drp;
state <= read_reg13;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
read_reg13 : begin
daddr = 8'h13;
den_reg = 2'h2; // performing read
state <= reg13_waitdrdy;
end
reg13_waitdrdy :
if (drdy ==1) begin
MEASURED_AUX3= do_drp;
state <=read_reg00;
daddr = 8'h00;
end
else begin
den_reg = { 1'b0, den_reg[1] } ;
dwe_reg = { 1'b0, dwe_reg[1] } ;
state = state;
end
endcase
//
assign SYSMON_EOC = eoc;
assign SYSMON_EOS = eos;
endmodule
TIME VAUXP[0] VAUXN[0] VAUXP[1] VAUXN[1] VAUXP[2] VAUXN[2] VAUXP[3] VAUXN[3] Temp VCCINT VCCAUX VCCBRAM VUSER0
00000 0.005 0.0 0.2 0.0 0.5 0.0 0.1 0.0 25 1.0 1.8 1.0 1.0
34000 0.020 0.0 0.400 0.0 0.49 0.0 0.2 0.0 85 1.05 1.9 1.05 1.0
67000 0.049 0.0 0.600 0.0 0.51 0.0 0.5 0.0 105 0.95 1.71 0.95 1.0
100000 0.034 0.0 0.900 0.0 0.53 0.0 0.0 0.0 0 1.00 1.8 1.0 1.0
The format of the analog stimulus file is based on space- or tab-delimited data and can be
created in a spreadsheet. Many tools such as SPICE simulators or equipment such as
oscilloscopes export comma-separated value (CSV) formats, that can be manipulated in a
spreadsheet to generate an analog stimulus file for simulation. All time stamp information
must be listed in the first column. Other columns list the analog values for the on-chip
sensors and external analog inputs. The order of the columns is not important. The only
requirement is that time stamp information is listed in the first column. For each time stamp
added to the first column, a corresponding value is added to the other columns. Only the
required analog input channel columns must be listed. In this example, only the on-chip
sensors and auxiliary channels zero to three are listed in the analog stimulus file. In this
stimulus file, the temperature moves 85°C to 105°C at 67 µs after the start of the simulation.
The temperature alarm (ALARM[0]) becomes active High shortly after this event when the
temperature is measured by the ADC (see Figure 5-4). The upper alarm threshold for
temperature has been set to B5EDh or 85°C.
initial
begin
DCLK = 0;
RESET = 1;
#100 RESET = 0;
end
.MEASURED_TEMP (MEASURED_TEMP),
.MEASURED_VCCINT (MEASURED_VCCINT),
.MEASURED_VCCAUX (MEASURED_VCCAUX),
.MEASURED_VCCBRAM (MEASURED_VCCBRAM),
.MEASURED_AUX0 (MEASURED_AUX0),
.MEASURED_AUX1 (MEASURED_AUX1),
.MEASURED_AUX2 (MEASURED_AUX2),
.MEASURED_AUX3 (MEASURED_AUX3)
);
endmodule
Simulation Output
The simulation output in Figure 5-4 shows the user-defined sequence in continuous
sampling mode. The channels monitored in the sequence can be seen by looking at the
CHANNEL[5:0] bus. The sequence is 8, 0, 1, 2, 3, 6, 10, 11, 12, and 13, which corresponds to
calibration, temperature, VCCINT, VCCAUX , VCCBRAM, Aux0, Aux1, Aux2, and Aux3. Then the
sequence repeats. The calibration channel takes longer to complete than the other
channels. This is because the calibration routine involves three conversions (measurements)
using the ADC. The measured results are shown using the analog waveform settings for the
Vivado simulator.
7HPSHUDWXUHPHDVXUHPHQWFDXVHV
$/$50>@WRJRDFWLYHZKHQ7HPSHUDWXUH
&+$11(/ K
(QGRI6HTXHQFH
'535HDGRI7HPSHUDWXUH
FRQILUPVKLJKWHPSHUDWXUH
FDXVHG$/$50>@
&K GHJUHHV&
0HDVXUHG9DOXHV
0HD DVXUHG
HGG 9DO
9 OXHV
9DOX HV
0HDVXUHG9DOXHVVKRZQZLWK VKRZQZLWK
VKRZQ
VKR ZQZLW
ZQ ZLWK
K
$QDORJ:DYHIRUPV $QDORJ:DYHIRUPV
$QD DORJ :D
:DYHI
YHIRUP
YHIR V
RUP
,QWHUSRODWLRQ6W\OH+ROG,QWHUSRODWLRQ6W\OH
,QWHUS
,QW HUSROD
HUSRODWLR
RODWLRQ6
WLR Q6
Q 6W\O
W\OH
H
+ROG
+ROG
8*BFBB
The design initially performs a DRP write to register 40h (configuration register 0) to set the
AVG1 and AVG0 bits to 00 (see Figure 5-5). This disables the averaging functionality for
simulation. The DRP Write (see Figure 5-5) has been simulated with Config Reg0 (40H) set
to 903FH to show how the DRP writes 003FH. Do_drp is updated to 003FH after the DRP
write is completed.
X-Ref Target - Figure 5-5
'535HDG
'53:ULWH
)RULOOXVWUDWLYHSXUSRVHVVLPXODWHGZLWK
,1,7B
KI
8*BFBB
As shown in Figure 5-6, when the EOS signal pulses High for one DCLK period at the end of
a sequence, the test bench reads the status registers. The simulation model uses the full
16-bit ADC conversion result because it is an ideal model of the ADC. For example, VCCINT
is shown as 5999h for 1.05V. From Equation 2-8, 1.05V is 166h for 10-bit data. For 16-bit
data, 5999h = 1.05 x (65536/3). This is a 10-bit MSB justified result. However, the six LSBs
of the status register also contain data that would be 011001b if the ADC was an ideal
16-bit ADC.
X-Ref Target - Figure 5-6
(QGRI6HTXHQFH
'535HDG
0HDVXUHG9DOXHV
5HDG'DWD VKRZQZLWK
$QDORJ:DYHIRUPV
,QWHUSRODWLRQ6W\OH
+ROG
8*BFBB
The temperature output transitions High (see Figure 5-4). The ALARM[0] becomes active at
the end of the conversion on the temperature channel (00h) when the result is loaded in the
status register. The result is read from the status register by the design when EOS next
transitions High. The temperature is 105°C (as set in the stimulus file) and is greater than
85°C limit set when the SYSMONE1 was instantiated in the design (.INIT_50(16'hb5ed)).
The VCCAUX_ALARM output transitions High during the second pass through the sequence
(see Figure 5-4). The alarm becomes active at the end of the conversion on the VCCAUX
channel when the result is loaded in the status register. The result is read from the status
register by the test bench when EOS next transitions High. The VCCAUX is ~1.9V (as set in the
stimulus).
Additional Resources
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see Xilinx
Support.
For a glossary of technical terms used in Xilinx documentation, see the Xilinx Glossary.
Solution Centers
See the Xilinx Solution Centers for support on devices, software tools, and intellectual
property at all stages of the design cycle. Topics include design assistance, advisories, and
troubleshooting tips.
References
These documents provide supplemental material useful with this guide: