Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16606 Discussions

Qsys disable interface based on parameter

Altera_Forum
Honored Contributor II
1,516 Views

Hi, 

I have a VHDL component packed as Qsys Component Editor and I need to disable interface based on parameter set by user. 

 

I have used naive approach and have this in TCL: 

add_parameter C_MDIO BOOLEAN false set_parameter_property C_MDIO DEFAULT_VALUE false set_parameter_property C_MDIO DISPLAY_NAME C_MDIO set_parameter_property C_MDIO TYPE BOOLEAN set_parameter_property C_MDIO UNITS None set_parameter_property C_MDIO DESCRIPTION "Enables MDIO Controller" set_parameter_property C_MDIO HDL_PARAMETER true ... # # connection point MDIO_MASTER# add_interface MDIO_MASTER conduit end set_interface_property MDIO_MASTER associatedClock MDIO_CLK set_interface_property MDIO_MASTER associatedReset "" set_interface_property MDIO_MASTER ENABLED set_interface_property MDIO_MASTER EXPORT_OF "" set_interface_property MDIO_MASTER PORT_NAME_MAP "" set_interface_property MDIO_MASTER CMSIS_SVD_VARIABLES "" set_interface_property MDIO_MASTER SVD_ADDRESS_GROUP "" add_interface_port MDIO_MASTER MDIO_IN mdioin Input 1 add_interface_port MDIO_MASTER MDIO_OUT mdioout Output 1 add_interface_port MDIO_MASTER MDIO_T mdiot Output 1  

 

This causes following error: 

Error: get_parameter_value not allowed during GLOBAL while executing "get_parameter_value C_MDIO " invoked from within "set_interface_property MDIO_MASTER ENABLED "  

 

I kinda get why it isn't allowed (so that's not my question). 

 

What I'd like to know is how should I do it when I want to enable/disable certain interfaces based on user's choice in component configuration in Qsys.. 

 

Thanks for any help :)
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
674 Views

OK, I've solved it. 

 

You need to create an elaboration callback and change the property there: 

 

set_module_property ELABORATION_CALLBACK elaborate proc elaborate {} { set_interface_property MDIO_MASTER ENABLED }
0 Kudos
Reply