Visible to Intel only — GUID: mwh1409958805993
Ixiasoft
Visible to Intel only — GUID: mwh1409958805993
Ixiasoft
3.3.10.4. Declare Parameters with Custom _hw.tcl Commands
The example below illustrates a custom _hw.tcl file, with more advanced parameter commands than those generated when you specify parameters in the Component Editor. Commands include the ALLOWED_RANGES property to provide a range of values for the AXI_ADDRESS_W (Address Width) parameter, and a list of parameter values for the AXI_DATA_W (Data Width) parameter. This example also shows the parameter AXI_NUMBYTES (Data width in bytes) parameter; that uses the DERIVED property. In addition, these commands illustrate the use of the GROUP property, which groups some parameters under a heading in the parameter editor GUI. You use the ENABLE_STREAM_OUTPUT_GROUP (Include Avalon streaming source port) parameter to enable or disable the optional Avalon® Streaming interface in this design, and is displayed as a check box in the parameter editor GUI because the parameter is of type BOOLEAN. Refer to figure below to see the parameter editor GUI resulting from these _hw.tcl commands.
Parameter Declaration
In this example, the AXI_NUMBYTES parameter is derived during the Elaboration phase based on another parameter, instead of being assigned to a specific value. AXI_NUMBYTES describes the number of bytes in a word of data. Platform Designer calculates the AXI_NUMBYTES parameter from the DATA_WIDTH parameter by dividing by 8. The _hw.tcl code defines the AXI_NUMBYTES parameter as a derived parameter, since its value is calculated in an elaboration callback procedure. The AXI_NUMBYTES parameter value is not editable, because its value is based on another parameter value.
add_parameter AXI_ADDRESS_W INTEGER 12 set_parameter_property AXI_ADDRESS_W DISPLAY_NAME \ "AXI Subordinate Address Width" set_parameter_property AXI_ADDRESS_W DESCRIPTION \ "Address width." set_parameter_property AXI_ADDRESS_W UNITS bits set_parameter_property AXI_ADDRESS_W ALLOWED_RANGES 4:16 set_parameter_property AXI_ADDRESS_W HDL_PARAMETER true set_parameter_property AXI_ADDRESS_W GROUP \ "AXI Port Widths" add_parameter AXI_DATA_W INTEGER 32 set_parameter_property AXI_DATA_W DISPLAY_NAME "Data Width" set_parameter_property AXI_DATA_W DESCRIPTION \ "Width of data buses." set_parameter_property AXI_DATA_W UNITS bits set_parameter_property AXI_DATA_W ALLOWED_RANGES \ {8 16 32 64 128 256 512 1024} set_parameter_property AXI_DATA_W HDL_PARAMETER true set_parameter_property AXI_DATA_W GROUP "AXI Port Widths" add_parameter AXI_NUMBYTES INTEGER 4 set_parameter_property AXI_NUMBYTES DERIVED true set_parameter_property AXI_NUMBYTES DISPLAY_NAME \ "Data Width in bytes; Data Width/8" set_parameter_property AXI_NUMBYTES DESCRIPTION \ "Number of bytes in one word" set_parameter_property AXI_NUMBYTES UNITS bytes set_parameter_property AXI_NUMBYTES HDL_PARAMETER true set_parameter_property AXI_NUMBYTES GROUP "AXI Port Widths" add_parameter ENABLE_STREAM_OUTPUT BOOLEAN true set_parameter_property ENABLE_STREAM_OUTPUT DISPLAY_NAME \ "Include Avalon Streaming Source Port" set_parameter_property ENABLE_STREAM_OUTPUT DESCRIPTION \ "Include optional Avalon streaming source (default),\ or hide the interface" set_parameter_property ENABLE_STREAM_OUTPUT GROUP \ "Streaming Port Control" ...