This SystemC module class provides the primary interface. Users can
queue instances of TapAction
on its FIFO and
it will generate the correct sequence of JTAG tap pin signals.
JtasSC
defines a set of signal ports to
connect to the target model implementing JTAG
sc_core::sc_in<bool> sysReset
Input. The system wide reset signal (active
high). Whenever this is active JtagSC
will
drive the TRST
signal to its active state (low).
sc_core::sc_in<bool> tck
Input. The JTAG clock signal. This must be
synchronous with the TCK
signals to connected devices
implementing JTAG
sc_core::sc_out<bool> tdi
Output. The TDI
signal. For
JtagSC
it is an
output, because this class is generating
the required signals on TDI
from the actions which have been
queued.
sc_core::sc_in<bool> tdo
Input. The TDO
signal. For
JtagSC
it is an
output from which the result of the actions
which have been queued is built up
sc_core::sc_out<bool> tms
Output. The TMS
signal. For
JtagSC
it is an
output, because this class is generating
the required signals to drive the TAP state machine from the
actions which have been queued.
sc_core::sc_out<bool> trst
Output. The TRST
signal. Driven low
(active) whenever the system reset (sysReset
)
is active (high). For JtagSC
it is an
output, because this class generates the
reset when required.
Users connecting to modules which do not implement TRST
should
tie this off to a dummy signal
JtasSC
defines a FIFO on which users queue
JTAG actions.
sc_core::sc_fifo<TapAction *> *tapActionQueue
The JTAG actions are of type TapAction
and its subclasses. Over successive TCK
cycles, the
JtagSC
will generate the required TMS
and
TDI
signals and capture the TDO
signals. When complete the
SystemC sc_event
from the action's
creation is signaled.
The public methods of JtagSC
are:
JtagSC (sc_core::sc_module_name name, int fifo_size = DEFAULT_TAP_FIFO_SIZE)
The constructor of new JTAG modules. The first argument,
name
, like all SystemC modules, is the name
of the module. The optional second argument specifies the size
of FIFO on which actions may be queued. Its default value,
DEFAULT_TAP_FIFO_SIZE
is 256 in the current
implementation.
~JtagSC ()
The destructor for JTAG modules. This deletes the FIFO and a number of internal data structures.