Intel® Quartus® Prime Pro Edition User Guide: Debug Tools

ID 683819
Date 10/13/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Visible to Intel only — GUID: mwh1410384264564

Ixiasoft

Document Table of Contents

7.5.4. Using the In-System Sources and Probes Service

The In-System Sources and Probes (ISSP) service provides scriptable access to the In-System Sources and Probes Intel® FPGA IP in a similar manner to using the In-System Sources and Probes Editor in the Intel® Quartus® Prime software.

ISSP Service

Before you use the ISSP service, ensure your design works in the In-System Sources and Probes Editor. In System Console, open the service for an ISSP instance:

set issp_index 0 set issp [lindex [get_service_paths issp] 0] set claimed_issp [claim_service issp $issp mylib]

View information about this particular ISSP instance:

array set instance_info [issp_get_instance_info $claimed_issp] set source_width $instance_info(source_width) set probe_width $instance_info(probe_width)

The Intel® Quartus® Prime software reads probe data as a single bitstring of length equal to the probe width:

set all_probe_data [issp_read_probe_data $claimed_issp]

As an example, you can define the following procedure to extract an individual probe line's data:

proc get_probe_line_data {all_probe_data index} { set line_data [expr { ($all_probe_data >> $index) & 1 }] return $line_data } set initial_all_probe_data [issp_read_probe_data $claim_issp] set initial_line_0 [get_probe_line_data $initial_all_probe_data 0] set initial_line_5 [get_probe_line_data $initial_all_probe_data 5] # ... set final_all_probe_data [issp_read_probe_data $claimed_issp] set final_line_0 [get_probe_line_data $final_all_probe_data 0]

Similarly, the Intel® Quartus® Prime software writes source data as a single bitstring of length equal to the source width:

set source_data 0xDEADBEEF issp_write_source_data $claimed_issp $source_data

You can also retrieve the currently set source data:

set current_source_data [issp_read_source_data $claimed_issp]

As an example, you can invert the data for a 32-bit wide source by doing the following:

set current_source_data [issp_read_source_data $claimed_issp] set inverted_source_data [expr { $current_source_data ^ 0xFFFFFFFF }] issp_write_source_data $claimed_issp $inverted_source_data