Services - tools - models - for embedded software development
Embecosm divider strip
Prev  Next

3.4.4.  TapActionIRScan

This class implements capture, shift and update of a value through the instruction register. It has a number of private instance variables.

Constructor

The primary responsibility of the constructor is to initialize all the instance variables. The input register and size are taken from the arguments, the output register and count of bits shifted are zeroed and the IR-Scan process state machine is set to SHIFT_IR_PREPARING.

process

This method generates the appropriate values of TDI and TMS to process the action and capture TDI. It is controlled by its own state machine, whose state is recorded in iRScanState as shown in Figure 3.2

State machine for the JtagActionIRScan process.

Figure 3.2.  State machine for the JtagActionIRScan process.


A subtlety of the implementation is that, because TDO changes on the falling edge, its value is always one step later than that of TDI. Thus TDO is not captured on the first cycle in Shift-IR state and its last bit is captured immediately after leaving Shift-IR state.

getIRegOut

This function is part of the public API, allowing the user to access the value shifted through TDO on completion.

Embecosm divider strip