Close

Direct read / flow-through

A project log for DTAP2-ULSR

Universal Latch-based Shift Register. Still not JTAG and fewer pins

yann-guidon-ygdesYann Guidon / YGDES • 5 hours ago•0 Comments

In our series "yet more things that usual scanchains and even JTAG can't do", here comes...

.

.

There are 4 sequences that produce overlapping pulses, and one of them is chosen for RESET.

An overlapping sequence makes the whole shift register "transparent", which is useful for the RESET cycle, but can also serve other purposes.

RESET is defined as SD+ SC+ SD- SC-

Now, what if there was a sequence SC+ SD+ SC- SD- ?

Apart from the last point, nothing changes, the chain is flow-through.

Now what if we could tell the overlap is a reset command or not ?

In the chain, a given set of cells can act as MUX such that a given signal is not only captured, but directly read (through the rest of the chain) and observed in real time, for onchip debugging.

Inserting a MUX in the scan chain is easy, the control though is not. There needs to be a "update" cell (3 latches) controlled by the update counter, which can itself be reset. So there must be an extra state bit that tells if an overlapping sequence is a reset or flow-through.

Two bits of "update" can select among 3 sources, and default to normal chain upon reset. So there's now a MUX4 with 3 state bits.

.

.

Decoding a RESET and a read-through is a circuit called "phase discriminator", I think, it's common in position encoders (mouse wheels etc). It's quite simple to do, one gate and two DFF.

CircuitJS

One can easily notice that the sequence at the start matters, but then it can end in any of two ways without difference. This could be used to send more pulses, to select a different signal source.

In the following circuit, a Johnson counter selects one out of three sources to insert in the chain.

But the control logic becomes more elaborate, as the number of signals to observe increases, so the following circuit may look easier to implement:

circuitjs

wooops swap the MUX2 polarity...

.

Of course : the observed signal will be delayed "quite a bit" proportionally to the distance from the output pin so these stages should be at, or near, the end. But there is no strict requirement and it's application dependent so if the signal is slow, well, you don't need to bother. It's flexible !

Anyway, can your JTAG system be used to select one signal for real time observation ?

Discussions