HIL Monitor

Plugins ››
Parent Previous Next

Table of Contents

1        Introduction        1

1.1        Ordering codes        2

1.2        Hardware Features        2

1.2.1        Connectors        3

2        Usage        5

2.1        Connecting External Signals        5

2.1.1        Input Signal Adaptation        5

2.1.2        Power Measurement        5

2.1.3        Power Probe        6

2.2        Configuration        10

2.2.1        Inputs        11

2.2.2        Outputs        11

2.2.3        Pattern OUT        11

2.3        Monitoring Inputs and Manipulating Outputs        13

2.3.1        Manipulation Dialog        13

2.3.2        HIL Monitor Plugin        15

2.3.3        Watch Window and Evaluation Expressions        15

2.3.4        Trace        16

2.3.5        Profiler        18

2.3.6        testIDEA        20

2.3.7        isystem.connect access        21

3        Output Pattern Generator        22

3.1        Pattern Definition File Format Specification        23



The I/O Module is an optional add-on to the iC5000 emulator.

It provides the capability to measure digital and analog signals as well as drive them.

Input signals can be read out asynchronously from winIDEA IDE or by external applications and scripts using the isystem.connect interface. A real-time capture, alongside the on-chip trace or standalone, is also possible.

Output signals can likewise be driven from the IDE or via isystem.connect. Beside simple assertion of an output, one or more outputs can be driven by a state machine based waveform generator, which can be triggered by input signals.

testIDEA uses isystem.connect interface to assert outputs prior to the test and verify inputs after the test.

2.1Ordering codes

iSYSTEM offers two I/O Modules featuring different sets of ports. Refer to the chart below for more information about the differences between the modules.

IC50011 (Standard I/O Module – IOM2),

IC50014 (24-port digital I/O Module – IOM2-D)

2.2Hardware Features




System Port: Trace trigger output, 100ohm series termination



Digital inputs: 10kOhm input impedance, 5V tolerant, ESD protected



Digital outputs: 100ohm output series termination, ESD protected



Analog inputs: 8-bit ADCs, 1MSPS, 1MOhm input impedance, range is ±5.0V with 1:1 probe, ±50V with a 10:1 probe, 3ns acquisition time.
Power measurement probe uses these two inputs for power measurement.


Analog outputs: 8-bit DACs, ±4.5V bipolar output, ±7mA drive, 100ohm output resistance



Current Sense Port: For power measurement via Power Probe


10MHz temperature compensated precision oscillator TCXO for a high accuracy long duration trace/analyzer session measurements



All digital signals are 3.3V LVTTL compatible and are ESD protected.

All analog signals have a Schottky diode over- / undervoltage protection, except the Current Sense signals.

The maximum voltage on the Current Sense probe is 60V.

Nominal sampling rate of all inputs and outputs is 1MSPS.


Connector Pinout

10-pin header for the System Port.

16-pin header for 8 digital inputs.

16-pin header for 8 digital outputs.

10-pin header for 2 analog outputs.

2 BNC connectors for 2 analog inputs.

10-pin header for Power Measurement Port (rev. C and later).

All connectors, except the BNCs, are standard Berg 2.54mm / 100mils raster.

For analog inputs, standard scope probes can be used.

10-pin header for the System Port.

16-pin header for 8 digital inputs.

32-pin header for 16 digital inputs.

16-pin header for 8 digital outputs.

10-pin header for 2 analog outputs.

All connectors are standard Berg 2.54mm / 100mils raster.


3.1Connecting External Signals

3.1.1Input Signal Adaptation

When connecting to external signals please make sure not to exceed the specified input and output range of the IOM signal interface. If the digital input source voltage is higher than 5V, please condition the signal source with a suitable resistor divider, or a resistor-zener diode limiter.

In case, for example, a 24V source is connected directly to a module digital input, an excess input current of about 18mA will flow through an input 1K resistor and a diode in the ESD protection device to the module internal 5V power supply.

Although this may not sound catastrophic, it must be avoided. Any long-term exposure will lead to a degradation of the module electronics due to electromigration. 

On the other hand, if an analog input signal amplitude is smaller than the module input analog range, it is recommended to add a suitable amplifier to make use of the full A/D converter resolution.

3.1.2Power Measurement

When the IOM is switched to Power Measurement mode (Hardware/Options/ IO dialog, Use AIN0/AIN1 for Power Measurement), the AIN0 is used for voltage measurement and AIN1 for current measurement.

For voltage measurement

Connect AIN0 input to the target voltage at the RS-. That’s the low side of the target shunt resistor.

If the voltage is higher than 5V, use a suitable resistor divider. Enter the divider ratio as a Voltage/Multiply factor in the configuration dialog.

For current measurement

Disconnect the AIN1 from other sources

Use the Current Sense connector to connect the RS+ and RS- pins to a high side and a low side of the target shunt resistor, respectively.

Specify the resistance of the RS shunt resistor in the configuration dialog.

This schematic depicts correct power measurement setup.

Note: The full-scale shunt voltage range is 250mV. So, for example, a 1Ω shunt resistor gives a current range of 250mA.

Full-scale Shunt Voltage

Shunt Resistance

Full-scale Current Range

Shunt Power Dissipation


1.00 Ω




0.25 Ω




0.10 Ω



3.1.3Power Probe

The PowerProbe is an optional power interface board. It is to be connected between a target power supply and a target board itself. Additional connections are to be made for the IOM current and voltage probes., Jumpers and a Switch

P1 and P2        

Target power supply inputs. Use one or the other. Maximum voltage is 20V.


10-pin Berg connector to connect the IOM Current Probe.

P4 and P5        

Power supply output towards the target.


BNC connector for the IOM Voltage Probe. To be connected to the AIN0 analog input.


Jumper block for selecting different shunt resistors.

1) Excessive current will burn the resistors.  
2) Never set more than one jumper position at a time.
3) Selected shunt resistors must handle the heat generated by the power dissipated on them.

Three of the five available positions are populated with resistors:


Shunt Resistance

Shunt Resistance
including JB1


1.00 Ω

1.00 Ω


0.25 Ω

0.26 Ω


0.10 Ω

0.11 Ω

The remaining two positions are available for a custom user setup with unpopulated resistors R5 and R6.

Note that with lower shunt resistor values also the JB1 jumper resistance starts to play a role and may influence the measurement. This can be easily compensated by slightly increasing the shunt resistance value in the winIDEA setup dialog, by 0.01Ω, for example.


Jumper block for selecting different voltage ranges.

Note: 1) Never set more than one jumper position at a time.

Three of the five available positions are populated with resistor dividers:



Voltage Multiply (configuration)










The remaining two positions are available for a custom user setup with unpopulated resistors R12 and R13. The lower part of the voltage divider is set by the R9 of 10kΩ.


Switches target power on or off.


Power LED. Note that the LED needs a very small current to light and may glow because of a parasitic current flowing, for example, when the emulator switched on and the target is off. Procedure

Switch off target and emulator

Power down the target supply

Select 2.5A or higher target current range to be on the safe side

Select 20V voltage range

Set SW1 to OFF position

Connect target supply to P1 or P2

Connect target to P4 or P5

Connect the ST1 voltage probe to the IOM AIN0 input

Connect P3 to the IOM Current Sense connector

Switch emulator on

Switch target supply on

Switch SW1 to ON position

Now, you are set to go.

In case the target current and/or voltage are below the other given ranges, repeat the procedure above and select appropriate ranges to improve resolution of the measurement.

To verify that the displayed voltage and current values are correct, use an independent voltage and current measurement instrument.


I/O module configuration is performed in Hardware/Options dialog.

All signals are accessible (HIL interface) by a configurable symbolic name. I/Os are mapped as follows:


HIL Mapping


Digital IN



Digital OUT



Analog IN



Analog OUT





If set, the Input will be shown in the Measurement plugin and via HIL interface. IN


Multiplier specifies by how much the detected input is multiplied.

If a signal is externally divided by 10, set the multiplier to 10.

Advanced configuration

The button next to signal name allows further configuration of an analog signal.

Range setting provides means to display an analog signal scaled to the range of interest.

Full        the signal is scaled between minimum and maximum measurable range

Fixed        the signal is scaled between the configured Min and Max values

Auto        the signal is scaled between minimum and maximum recorded values



An output can be driven manually (e.g. via script or Manipulation Dialog), via Pattern engine or both.




The output cannot be driven


The output can be driven manually only


The output can be driven by the pattern engine only


The output can be driven manually and by the pattern engine

Initial state

When the I/O module is initialized, the outputs will assume the specified initial state.

3.2.3Pattern OUT

Outputs can be driven by the Output Pattern Generator. To learn more about it, please refer to the Output Pattern Generator chapter. This setting defines which pattern is loaded at initialization time.        

Clock Source

This is the pattern clock source.

Internal – the 1MHz internal sampling clock is used (default)

External – the positive edge on DIN0 is used as clock

Clock Prescaler

Prescaler is used with in conjuction with the pattern sample duration.

This setting is used only with internal Clock Source. The 1:1 prescaler is using the internal 1MHz clock.Using higher prescalers, longer durations can be achieved.

3.3Monitoring Inputs and Manipulating Outputs

3.3.1Manipulation Dialog

The Hardware/Tools/IO Module dialog provides the monitoring and manipulation capability of the I/O Module.

For all inputs (Digital IN, Analog IN) the currently detected state is displayed and periodically refreshed.

Digital and Analog outputs which can be manually driven, can be asserted to the specified value.

Note: the value is asserted when the Set button is clicked. OUT

New Pattern programs can be loaded with the button. New dialog will open, where you enter the pattern source filename and other relevant settings:

File name – pattern source must comply with the pattern definition file format specification.

Scale time – multiply all times with this factor.

Scale AOUT – multiply the Analog OUT values by this factor.

The UseConfig, UseTableA and UseTableB options specify which part of the program is loaded from the pattern file:

UseConfig – pattern state machine configuration is loaded

UseTableA – table A is loaded

UseTableB – table B is loaded

Once the pattern settings are ready, you can either Edit the pattern (in the CSV editor) or run it. Stop button stops the pattern generation. Reset Channel buttons can reset individual or both channels of the pattern engine (HRPTABx input is driven active).

3.3.2HIL Monitor Plugin

Plugin/HIL Monitor provides the monitoring and manipulation capability of the I/O Module.

To modify an output, double click its value in the Value column.

To refresh the inputs manually, click the icon.

To refresh the inputs automatically, enable the icon.

3.3.3Watch Window and Evaluation Expressions

HIL variables can be added to the watch window (including standard expressions), by using the grave accent ` prefix.


I/O module trace is supported either in combination with the trace port or stand alone. Open Hardware / Analyzer Setup dialog and choose either one of the trace ports or the I/O module:

Note: It is not possible to use I/O module trace in combination with the on-chip trace buffer, because the I/O module trace messages can not be synchronized to the MCU's trace messages in such case.

All Input signals are sampled simultaneously. The sampling is configured in the Hardware / Options dialog.


Qualifier defines an additional filter for sampling.

Every clock – a sample is taken at every 1MHz internal clock

Every 4 / 16 / 64 clocks – a sample is taken at a divided rate

On change – a sample is taken only when the states on the input lines change. This reduces the amount of recorded data.

Note: only input lines which are not disabled in the Hardware/Options dialog are monitored for change.


All IN and OUT – all input and output lines are sampled

Direct DIN0-3 – digital inputs 0-3 are sampled at 10MHz rate. On change qualifier is used in this case. Note that other inputs and outputs are not operational in this mode.

Show Outputs in Analyzer

If this option is checked, the output channels will be available in the Analyzer. If not, only input channels are available. configuration

Beside recording the I/O module signals, the I/O module can generate a trigger for the iC5000 trace engine. Configuration is available in the manual trigger configuration dialog of the Analyzer window.

Trigger determines the condition upon which the I/O module will signal the iC5000 to start recording.


Enables the I/O module trigger output to the emulator trace engine.

Digital IN

Digital inputs 0 – 7 can be a trigger source. Two combinations of digital inputs (Condition 1 and Condition 2) can be defined.

trigger if this input is in low state

trigger if this input is in high state

do not consider this input in the trigger condition

A condition is fulfilled if the enabled inputs match the configured value.

The trigger will be generated if either of enabled Conditions matches.

In the above example, trigger is generated if DIN4 is high and DIN6 is low, or AIN0 is below 2.9V.

Analog IN 0 and 1

Both analog inputs can be a trigger source. The trigger is generated if the measured voltage is Lower or Higher than the specified threshold.

Qualifier determines the type of I/O module acquired information which is recorded in the trace buffer and streamed to the host.

Record all

If this option is checked then all I/O module inputs are recorded. Otherwise no I/O samples are recorded.


Real-time profiling of I/O module’s signals is available in Analyzer’s Profiler mode.

To enable profiling, enable the AUX option in the Profiler configuration dialog and list the channels you want to trace:

For each channel specify the description, channle and the value interpretation:

Note that in order to select output channels (DOUT / AOUT), the option Show Output in Analyzer must be enabled. The option can be found in the Hardware / Options dialog.

State variable interpretation will produce more detailed profiling analysis, but is limited to a number of samples that it can analyze. For analog values it is recommended to select a Regular variable.

For more information refer to the Analyzer Window chapter.


testIDEA is using the HIL interface to gain access to the I/O Module. This allows setting of inputs prior to performing a unit test:

…and evaluation of outputs after the test. Please note the syntax for specifying the IO channels:

For more information please refer to testIDEA manual.

3.3.7isystem.connect access

External applications can use isystem.connect to monitor and manipulate the I/O module via the HIL interface class CHILController.

This Python example demonstrate s reading and writing analog and digital I/Os. Make sure you use channel names as specified in the Hardware / Options dialog.

import isystem.connect as ic

#create connection and hil controller object

cMgr = ic.ConnectionMgr()


hilCtrl = ic.CHILController(cMgr)

#set analog output to specified voltage level

def AnalogOutputWrite(channelName, voltageLevel):

 hilCtrl.write('AOUT.' + channelName + ': ' + voltageLevel)

#get analog input voltage level

def AnalogInputRead(channelName):

 return hilCtrl.read('AIN.' + channelName)

#set digital output to specified level

def DigitalOutputWrite(channelName, state):

 hilCtrl.write('DOUT.' + channelName + ': ' + state)

#get digital input state

def DigitalInputRead(channelName):

 return hilCtrl.read('DIN.' + channelName)

AnalogOutputWrite('AOUT0', '1.8')

print "Analog input AIN0 voltage level: ", AnalogInputRead('AIN0')

DigitalOutputWrite('DOUT0', 'HIGH')

print "Digital input DIN0 state: ", DigitalInputRead('DIN0')

4Output Pattern Generator

The Pattern module generates data on 3 output ports, one 8-bit digital and two analog.

The output data is selected by individual Output Muxes and provided by Pattern Tables A an B. Table T1 shows all possible options available. Registers SELOUTD, SELOUTA0 and SELOUTA1 select options, as defined in the Table T1. Option #7 (RTMx ? A : B) provides the possibility to alter the pattern output data according to some real time events using RTM input of the Output Mux. When the RTM is high, the Table A is selected, and Table B otherwise.

The RTM inputs are selected by RTMUXD, RTMUXA0 and RTMUXA1 registers and provided by Event Comparators. Low, High, Falling or Rising for each Digital, Analog0 and Analog1 comparators are available. The Digital Event Comparator compares input data selected by EVSSELD to EVCDM0 and EVCDM1 registers. Analog Comparators compare input data selected by EVSSELA0/1 to EVCA0/1 registers. EVSSELD/A0/A1 registers chooses comparator inputs between IOModule input ports and Pattern Output ports.

Pattern Tables A and B can be reset in real time, using RTRPTA and RTRPTB registers, which choose the reset event. Pattern tables can be also reset by the host via Hardware Tools / I/O Module dialog.

Each of Pattern Tables A and B can hold up to 512 entries. Data size 12 bit. Time resolution 1us, data change can be delayed for 2^20 us max.

4.1Pattern Definition File Format Specification

Pattern definition file is a CSV file using the following format.

HEADER,<version>  // must preceede any other entry other than REM

<version> = 1


Defines a comment.


Configures a register.

<REGNAME>  = name of register

<REGVALUE> = 0x<hex> | <dec> | <enum> | <voltage in mV>









A | B

A & B

A + B

A - B

RTMx ? A : B




















0x<hex> | <dec>


0x<hex> | <dec>


<voltage in mV>


<voltage in mV>






TABLE[, [A | B] [, mV]]  

Defines a table. SEQ and GOTO entries which follow are put into this table.

if A or B is not specified, a non assigned table is loaded - used for incremental programming

if mV is specified, the data is interpreted as millivolts and is adjusted by the loader


SEQ, <duration>[, <data>[, <label>]]

Defines a single sequential table entry, its duration, data to assert on the output and a label.

       <duration> = <dec> | <def>

       <data>     = 0x<hex> | <dec> | <def>


GOTO, <destination>[, <data>]

Defines a jump in the table. The jump consumes one cycle, if data is specified, this data is asserted for the duration of the cycle.

       <destination> = <label> | <dec> | 0x<hex>

       <data>     = 0x<hex> | <dec> | <def>


DEF, <label>[, <value>]  

Defines a label, if <value> is omitted, current position is used.

       <value>     = 0x<hex> | <dec> | <label>


TableA square









Disclaimer: iSYSTEM assumes no responsibility for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information herein.

© iSYSTEM . All rights reserved.