Quartus® Prime Pro Edition User Guide: Partial Reconfiguration

ID 683834
Date 10/23/2024
Public
Document Table of Contents

2.8.6.1. Monitoring the SDM

The SDM simulation model exposes the following additional simulation-only ports through the altera_config_stream_endpoint module:

  • sim_only_state
  • sim_only_pr_id
Figure 88. SDM Partial Reconfiguration Simulation Model - altera_config_stream_endpoint Module

You connect these simulation ports to the config_stream_endpoint_pr_if SystemVerilog interface. This connection allows monitoring of the SDM using your testbench’s SDM monitor.

The Quartus® Prime software automatically instantiates the config_stream_endpoint_pr_if interface when generating the simulation file set of the Partial Reconfiguration Controller and the Partial Reconfiguration External Configuration Controller IP.

You can obtain a reference to the config_stream_endpoint_pr_if that the IP instantiates by using the following singleton:

intel_pr_mailbox_test_pkg::config_stream_endpoint_pr_if_mgr

The following example shows this reference:

virtual config_stream_endpoint_pr_if pr_mailbox_if

intel_pr_mailbox_test_pkg::config_stream_endpoint_pr_if_mgr pr_mbox_mgr;

// Get the PR Config Stream Endpoint from the pr_mbox manager
pr_mbox_mgr = intel_pr_mailbox_test_pkg::config_stream_endpoint_pr_if_mgr\
   ::get();
pr_mailbox_if = pr_mbox_mgr.if_ref;

The following is the code for the config_stream_endpoint_pr_if interface:

interface config_stream_endpoint_pr_if (input logic clk);
    wire [31:0] sim_only_state;
    wire [31:0] sim_only_pr_id;
endinterface : config_stream_endpoint_pr_if

Refer to the following file for more information on the config_stream_endpoint_pr_if interface:

<installation directory>/eda/sim_lib/altera_lnsim.sv

The simulation state of the SDM simulation model represents the PR_EVENT_TYPE enumeration state of the SDM. The config_stream_endpoint_pr_test_pkg SystemVerilog package defines these enumerations. These states represent the different allowed states for the SDM. The following are SDM enumeration definitions:

package config_stream_endpoint_pr_test_pkg;
    typedef enum logic [31:0] {
        NONE,
        IDLE,
        PR_REQUEST,
        PR_IN_PROGRESS,
        PR_COMPLETE_SUCCESS,
        PR_COMPLETE_ERROR,
        PR_INCOMPLETE_SYS_BUSY,
        PR_INCOMPLETE_BAD_DATA
    } PR_EVENT_TYPE;