Intel® Quartus® Prime Pro Edition User Guide: Platform Designer

ID 683609
Date 12/20/2023
Public

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

Document Table of Contents

3.3.10. Specify Parameters in the Platform Designer Component Editor

Components can include parameterized HDL, which allow users of the component flexibility in meeting their system requirements. For example, a component with a configurable memory size or data width, allows using one HDL implementation in different systems, each with unique parameters values.

The Parameters tab allows you specify the parameters that are used to configure instances of the component in a Platform Designer system. You can specify various properties for each parameter that describe how to display and use the parameter. You can also specify a range of allowed values that are checked during the validation phase. The Parameters table displays the HDL parameters that are declared in the top-level HDL module. If you have not yet created the top-level HDL file, the top-level synthesis file template created from the Files tab include the parameters that you create on the Parameters tab.

When the component includes HDL files, the parameters match those defined in the top-level module, and you cannot add or remove them on the Parameters tab. To add or remove the parameters, edit your HDL source, and then re-analyze the file.

If you create a top-level template HDL file for synthesis with the Component Editor, you can remove the newly-created file from the Synthesis Files list on the Files tab, make your parameter changes, and then re-analyze the top-level synthesis file.

You can use the Parameters table to specify the following information about each parameter:

  • Name—specifies the parameter name.
  • Default Value—sets the default value for new instances of the component.
  • Editable—specifies if the user can edit the parameter value.
  • Type—defines the parameter type as string, integer, boolean, std_logic, logic vector, natural, or positive.
  • Group—groups parameters in the parameter editor.
  • Tooltip—adds a description of the parameter that appears when the user of the component points to the parameter in the editor.
Figure 129. Parameters Tab in the Platform Designer Components Editor

On the Parameters tab, you can click Preview the GUI at any time to see how the declared parameters appear in the parameter editor. Parameters with their default values appear with checks in the Editable column. Editable parameters cannot contain computed expressions. You can group parameters under a common heading or section in the editor with the Group column, and a tooltip helps users of the component understand the function of the parameter. Various parameter properties allow you to customize the component’s parameter editor, such as specifying parameter option controls, or displaying an image.

_hw.tcl Created from Entries in the Parameters Tab

In this example, the first add_parameter command includes commonly-specified properties. The set_parameter_property command specifies each property individually. The Tooltip column on the Parameters tab maps to the DESCRIPTION property, and there is an additional unused UNITS property created in the code. The HDL_PARAMETER property specifies that the value of the parameter is specified in the HDL instance wrapper when creating instances of the component. The Group column in the Parameters tab maps to the display items section with the add_display_item commands. If you want to expose the HDL parameter so that you can overwrite the value when you instantiate the module, set AFFECTS_GENERATION to false.

Note: If a parameter <n> defines the width of a signal, the signal width must follow the format <n-1> : 0.
# 
# parameters
# 
add_parameter AXI_ID_W INTEGER 4 "Width of ID fields"
set_parameter_property AXI_ID_W DEFAULT_VALUE 4
set_parameter_property AXI_ID_W DISPLAY_NAME AXI_ID_W
set_parameter_property AXI_ID_W TYPE INTEGER
set_parameter_property AXI_ID_W UNITS None
set_parameter_property AXI_ID_W DESCRIPTION "Width of ID fields"
set_parameter_property AXI_ID_W HDL_PARAMETER true
add_parameter AXI_ADDRESS_W INTEGER 12
set_parameter_property AXI_ADDRESS_W DEFAULT_VALUE 12

add_parameter AXI_DATA_W INTEGER 32
...
# 
# display items
# 
add_display_item "AXI Port Widths" AXI_ID_W PARAMETER ""
Note:

If an AXI subordinate's ID bit width is smaller than required for your system, the AXI subordinate response may not reach all AXI managers. The formula of an AXI subordinate ID bit width is calculated as follows:

maximum_manager_id_width_in_the_interconnect + log2 = <value>

For example, if an AXI subordinate connects to three AXI managers and the maximum AXI manager ID length of the three managers is 5 bits, then the AXI subordinate ID is 7 bits, and is calculated as follows:

5 bits + 2 bits (log2(3 managers)) = 7 

Platform Designer refers to AXI interface parameters to build AXI interconnect. If these parameter settings are incompatible with the component's HDL behavior, Platform Designer interconnect and transactions may not work correctly. To prevent unexpected interconnect behavior, you must set the AXI component parameters.

Table 37.  AXI Manager Parameters
AXI Manager Parameters Description
readIssuingCapability The maximum number of outstanding read transactions for a manager.
writeIssuingCapability The maximum number of outstanding write transactions for a manager.
combinedIssuingCapability The maximum number of outstanding transactions for a manager.
Table 38.  AXI Subordinate Parameters
AXI Subordinate Parameters Description
readAcceptanceCapability The maximum number of outstanding read commands that a subordinate can accept.
writeAcceptanceCapability The maximum number of outstanding write transactions that a subordinate can accept.
combinedAcceptanceCapability The maximum number of outstanding transactions that a subordinate can accept.
readDataReorderingDepth The number of outstanding read transactions for which a subordinate interface can transmit data. If readDataReorderingDepth = 1, the subordinate processes all transactions in order.