The five JTAG ports in ORPSoC are modeled as SystemC
sc_in<bool> (for jtag_tck
,
jtag_tdi
, jtag_tms
and
jtag_trst
) and sc_in<bool> ports
(for jtag_tdo
).
Rather than drive the JTAG ports directly, requiring detailed management of the Test Access Port (TAP) state machine, the GDB interface uses the Embecosm cycle accurate SystemC JTAG interface [9]. This provides a SystemC FIFO interface on which requests to read and write the JTAG instruction and data registers can be queued, as well as requests to reset the JTAG TAP state machine.