xlgetparam and xlsetparam - 2020.2 English

Vivado Design Suite Reference Guide: Model-Based DSP Design Using System Generator (UG958)

Document ID
Release Date
2020.2 English

Used to get and set parameter values in the System Generator token. Both functions are similar to the Simulink get_param and set_param commands and should be used for the System Generator token instead of the Simulink functions.


[value1, value2, ...] = xlgetparam(sysgenblock, param1, param2, ...)

xlsetparam(sysgenblock, param1, value1, param2, value2, ...) 


The System Generator token differs from other blocks in one significant manner; multiple sets of parameters are stored for an instance of a System Generator token. The different sets of parameters stored correspond to different compilation targets available to the System Generator token. The 'compilation' parameter is the switch used to toggle between different compilation targets stored in the System Generator token. In order to get or set parameters associated with a particular compilation type, it is necessary to first use xlsetparam to change the 'compilation' parameter to the correct compilation target, before getting or setting further values.

[value1, value2, ...] = xlgetparam(sysgenblock, param1, param2, ...) 

The first input argument of xlgetparam should be a handle to the System Generator block. Subsequent arguments are taken as names of parameters. The output returned is an array that matched the number of input parameters. If a requested parameter does not exist, the returned value of xlgetparam is empty. The xlgetparams function can be used to get all the parameters for the current compilation target.

xlsetparam(sysgenblock, param1, value1, param2, value2, ...) 

The xlsetparam function also takes a handle to a System Generator token as the first argument. Subsequent arguments must be provided in pairs, the first should be the parameter name and the second the parameter value.

Specifying the Compilation Parameter

The 'compilation' parameter on the System Generator token captures the compilation type chosen; for example 'HDL Netlist' or 'IP Catalog'. As previously stated, when a compilation type is changed, the System Generator token will remember all the options chosen for that particular compilation type. For example, when 'HDL Netlist' is chosen, the corresponding target directory could be set to 'hdl_dir', but when 'IP Catalog' is chosen, the target directory could point to a different location, for example 'ip_cat_dir'. Changing the compilation type causes the System Generator token to recall previous options made for that compilation type. If the compilation type is selected for the first time, default values are use to populate the rest of the options on the System Generator token.

When using xlsetparam to set the compilation type of a System Generator token, be aware of the above behaviour, since the order in which parameters are set is important; be careful to first set a block's 'compilation' type before setting any other parameters.

When xlsetparam is used to set the 'compilation' parameter, it must be the only parameter that is being set on that command. For example. the form below is not permitted:

xlsetparam(sysgenblock,'compilation','HDL Netlist', 'synthesis_tool', 'Vivado synthesis') 


Example 1: Changing the synthesis tool used for HDL netlist.

xlsetparam(sysgenblock, 'compilation', 'HDL Netlist'); 
xlsetparam(sysgenblock, 'synthesis_tool', 'Vivado synthesis') 

The first xlsetparam is used to set the compilation target to 'HDL Netlist'. The second xlsetparam is used to change the synthesis tool used to 'Vivado synthesis'.

Example 2: Getting family and part information.

fam = 
part =