Hi,

For implementing XSVF player fully, we need to be able to issue clocks 
in any of the stable states, not just the TAP_IDLE state.

A "true" implementation of SVF RUNTEST means you need either clocks or 
usecs delay before retrying.  Then there are the new Lattice SVF 
extensions that I added
which are kind of like RUNTEST but more flexible.  (You can add 
extensions when you own the SVF to XSVF converter code.  :) )

LCOUNT, LDELAY, and LSDR are the 3 Lattice extensions.   They are very 
simple and were easy to add.

But to pull off LSDR correctly and RUNTEST correctly, we need


"jtag_add_clocks( in num_clocks )"


This function can verify that the existing state is stable, else 
explode.   Or the stable_state to wait in can be added as a new designed 
in argument.

This is the bottom of LSDR support loop, approximately:


                        xsvf_add_statemove(loop_state);

                        //jtag_add_clocks(loop_clocks);

                        jtag_add_sleep(loop_usecs);


i.e. you have to be able to issue clocks and a delay BOTH.   My guess is 
the part attached to the TAP may advance internally based on clocks, but 
then also needs a delay.  Whatever, its called for, mostly for "erasing" 
and "programming" FPGAs which have these indeterminate delays and 
looping/polling of status bits to indicate completion of a particular step.


Notice that there is a state move just before jtag_add_clocks().   I 
think this can be counted on.


I wonder if we can "genericize" jtag_add_runtest(xruntest, xendir) to 
not be so tied to TAP_IDLE.  

i.e. this would also work:

jtag_change_state_and_clock( new_stable_state, num_clocks )  

The above function may boil down to jtag_add_runtest() with the right 
arguments.

This would mean a fancy search and replace would get the job done, jedit 
could do this with its multi-file regular expression search and replace. 

Or would folks prefer a new jtag API function?


Thanks,

Dick





_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to