Trigger At Startup - 2024.1 English

Vivado Design Suite User Guide: Programming and Debugging (UG908)

Document ID
UG908
Release Date
2024-05-30
Version
2024.1 English

The Trigger at Start up feature is used to configure the trigger settings of an ILA core in a design programming file (.bit or .pdi) so that it is pre-armed to trigger immediately after device start up. You do this by taking the various trigger settings that ordinarily get applied to an ILA core running in a design in hardware, and applying them to the ILA core in the implemented design.

Important: The following process for using Trigger at Start up assumes that you have a valid ILA design working in hardware, and that the ILA core has NOT been flattened during the synthesis flow.
Tip: The following example references a bitstream for FPGA products, but the same steps can be applied to a PDI that targets the Versal architecture.

To use the Trigger at Start up feature perform the following steps:

  1. Run through the first pass of the ILA flow as usual to set up the trigger condition.
    1. Open the target, configure the device, and bring up the ILA Dashboard.
    2. Enter the trigger equations for the ILA core in the ILA Dashboard.
  2. From the Vivado Tcl command line, export the trigger register map file for the ILA core. This file contains all of the register settings to "stamp" back on to the implemented netlist. The output from this is a single file.
    % run_hw_ila -file ila_trig.tas [get_hw_ilas hw_ila_1]
  3. Go back and open the previously implemented routed design in Vivado IDE. There are two ways to do this depending on your project flow.
    1. Project Mode: Use the Flow Navigator to open the implemented design.
    2. Non-Project Mode: Open your routed checkpoint: %open_checkpoint < file >.dcp
  4. At the Implemented Design Tcl Console, apply the trigger settings to the current design in memory, which is your routed netlist.
    %apply_hw_ila_trigger ila_trig.tas
    Note: If you see an ERROR indicating that the ILA core has been flattened during synthesis, you need to regenerate your design and force synthesis to preserve hierarchy for the ILA core. Ensure that you have a valid ILA design working in hardware, and that the ILA core has NOT been flattened during the synthesis flow.
  5. At the Implemented Design Tcl Console, write the bitstream with Trigger at Start up settings.
    Important: To pick up the routed design changes do this at the Tcl command console only: write_bitstream trig_at_startup.bit
  6. Go back to the Hardware Manager and reconfigure with the new .bit file that you generated in the previous step. You have to set the property for the updated .bit file location either through the GUI or through a Tcl command. Make sure you set the new .bit file as the one to use for configuration in the hardware tool.
    1. Select the device in the hardware tree.
    2. Assign the .bit file generated in step 5.
  7. Program the device using the new .bit file.

    Once programmed, the new ILA core should immediately arm at start up. You should see an indication in the Trigger Capture Status for the ILA core. If trigger or capture events have occurred, the ILA core is now populated with captured data samples.