Community
cancel
Showing results for 
Search instead for 
Did you mean: 
adrianf0
Beginner
595 Views

SingalTap stop acqusition condition

How to define a condition under which SignalTap would stop acquisition and pushed data through jTag without waiting for a storage buffer to be fully filled?

0 Kudos
7 Replies
sstrell
Honored Contributor II
71 Views

Just click the stop button. Whatever activity is currently occurring on the tapped signals will be displayed on the Data tab of the tool.

adrianf0
Beginner
71 Views

Thank you for your reply.

Unfortunately, it's no solution for me: I need to perform many acquisitions and SignalTap is controlled by tcl commands. As far as I know, tcl interface doesn't allow to stop the acquisition.

sstrell
Honored Contributor II
71 Views

adrianf0
Beginner
71 Views

@sstrell: Thank you for the link. I overlooked the stop tcl command.

Anyway, it doesn't suit me well, as I would need to stop the acquisition arbitrary in the script. I basically want to open the acquisition window for a certain period (controlled by the trigger signal) and store (using storage qualifier) certain events occurring on the spied lines. The acquisition window is periodical (~1kHz) and I need to acquire events belonging only to a single acquisition window. What I miss, is a stop acquisition conditional logic in SignalTap which would start pushing data over jTag to PC.

sstrell
Honored Contributor II
71 Views

You can certainly do this. You can either use conditional statements in Tcl (remember, it's a full scripting language that includes loops and conditionals; this is my favorite Tcl reference guide: http://tmml.sourceforge.net/doc/tcl/) or set up a state machine trigger in Signal Tap.

 

#iwork4intel

adrianf0
Beginner
71 Views

At the level of the tcl script, I don't have access to the trigger signal indicating the acquisition window. Moreover, software delays may be in this case just at the edge. However, the machine trigger in SignalTap would be a perfect solution. Unfortunately, I haven't found in the documentation how to set up a stop acquisition condition. Could you share with me some reference?

adrianf0
Beginner
71 Views

I tried the following state-based trigger:

state ST1: if (start_acq) goto ST2;   state ST2: begin if( stop_acq && store ) begin start_store; stop_store; trigger 0; end else if (stop_acq) begin trigger 0; end else if (store) begin start_store; stop_store; end end

However, it doesn't work as expected:

  • although I expected only a single acquisition window, SignalTap returns many (segments). One could still filter out only a single acquisition window, however, when waveform is dumped to a .csv files (for further analysis) the information about segments is lost
  • even with post-fill-count argument of the trigger call set to 0, SignalTap waits for at least one valid sample. It means that if the sample doesn't occur, SignalTap will wait forever

 

EDIT: If I use `trigger 1`, it actually seems to work as intended. The only inconvenience is it needs to wait for an extra sample from the next acquisition window.

 

Reply