Visible to Intel only — GUID: mwh1409958814980
Ixiasoft
Visible to Intel only — GUID: mwh1409958814980
Ixiasoft
3.7. Control Interfaces Dynamically with an Elaboration Callback
You can allow user parameters to dynamically control your component's behavior with an elaboration callback procedure during the elaboration phase. Using an elaboration callback allows you to change interface properties, remove interfaces, or add new interfaces as a function of a parameter value. You define an elaboration callback by setting the module property ELABORATION_CALLBACK to the name of the Tcl callback procedure that runs during the elaboration phase. In the callback procedure, you can query the parameter values of the component instance, and then change the interfaces accordingly.
Avalon® Streaming Source Interface Optionally Included in a Component Specified with an Elaboration Callback
set_module_property ELABORATION_CALLBACK elaborate
proc elaborate {} {
# Optionally disable the Avalon streaming data output
if{[ get_parameter_value ENABLE_STREAM_OUTPUT] == "false" }{
set_port_property aso_data termination true
set_port_property aso_valid termination true
set_port_property aso_ready termination true
set_port_property aso_ready termination_value 0
}
# Calculate the Data Bus Width in bytes
set bytewidth_var [expr [get_parameter_value AXI_DATA_W]/8]
set_parameter_value AXI_NUMBYTES $bytewidth_var
}