Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20704 Discussions

SingalTap stop acqusition condition

adrianf0
Beginner
1,355 Views

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 III
831 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.

0 Kudos
adrianf0
Beginner
831 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.

0 Kudos
adrianf0
Beginner
831 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.

0 Kudos
sstrell
Honored Contributor III
831 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

0 Kudos
adrianf0
Beginner
831 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?

0 Kudos
adrianf0
Beginner
831 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.

 

0 Kudos
Reply