Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
779 Views

set_connection_parameter_value not callable from QSYS instance script?

Hello All, 

 

I would like to embed the SGDMA descriptor on-chip ram inside of a QSYS subsystem however for this to work properly the base address of the subsystem must be passed in so that the SGDMA units use the same base address as the external CPUs for the descriptor RAM. To this end I have created a QSYS instance script as follows (see the instance parameters tab in QSYS). In principal this looks like a really good solution to the problem except that I receive an error message, and the base address isnt properly set. 

 

Error: invalid command name "set_connection_parameter_value" 

 

Does anyone know how this can be resolved? Otherwise, I will need to add this problem to the unresolved QSYS  

issues page. 

 

proc compose {} { # manipulate parameters in here # Example: set_instance_parameter_value child0 param0 set mbsw set mbc set mbcx2 set enblBurst set baseAddr set_instance_parameter_value mm_clock_crossing_bridge_master MAX_BURST_SIZE $mbc set_instance_parameter_value mm_clock_crossing_bridge_master RESPONSE_FIFO_DEPTH $mbcx2 set_instance_parameter_value sgdma_rx enableBurstTransfers $enblBurst set_instance_parameter_value sgdma_rx writeBurstcountWidth $mbsw set_instance_parameter_value sgdma_tx enableBurstTransfers $enblBurst set_instance_parameter_value sgdma_tx readBurstcountWidth $mbsw set_connection_parameter_value sgdma_rx.descriptor_read/nif_descr_ram.s1 baseAddress $baseAddr set_connection_parameter_value sgdma_rx.descriptor_write/nif_descr_ram.s1 baseAddress $baseAddr set_connection_parameter_value sgdma_tx.descriptor_read/nif_descr_ram.s1 baseAddress $baseAddr set_connection_parameter_value sgdma_tx.descriptor_write/nif_descr_ram.s1 baseAddress $baseAddr }]]></instanceScript>
0 Kudos
4 Replies
Altera_Forum
Honored Contributor I
30 Views

Hi Jeffrey, 

 

I get the same error with the "set_interface_property" and "add_interface" command and I'm still searching for a solution. Could you solve the problem already? 

 

with kind regards, 

MrFreshman
Altera_Forum
Honored Contributor I
30 Views

Hi again! 

 

I have found the problem:in the altera documentation "Quartus II Handbook Version 12.1 

Volume 1: Design and Synthesis" on page 212 is the table 6-2 that shows the supported Tcl commands for the "Instance Script". 

These are: 

# get_parameters, get_parameters_values, get_instance_parameters, get_instance_parameters_values, send_messagem set_instance_parameter_value. 

 

Unfortunately it is not possible to declare other callback functions and to call other commands, so it is not possible to switch on/off parts of the subcomponent(IP-cores and interfaces) according to the instance parameters :(  

In my view that is a huge restriction for the IP-core design and I hope that I can find a possibility to workaround this issue! 

 

Does anyone have a suggestion, how to ENABLE/DISABLE parts of an IP-core depending on the instance parameters?  

 

A long-winding solution is to: Build a subcomponent with all possibly needed components in QSYS + declaration of the "Instance Parameters". 

Then export the QSYS component as a *_hw.tcl-file. Then you have to manipulate the composed_callback function depending on our needs. 

BUT, what happens when a customer want you to add or remove components of this IP-core?? -> You have to do the same procedure again, as there is no possibility to convert *_hw.tcl-files to *.qsys-files.  

 

with kind regards, 

MrFreshman
Altera_Forum
Honored Contributor I
30 Views

"I have to post this post, as I need at least 5 post to post a link in a post ;)"

Altera_Forum
Honored Contributor I
30 Views

I haven't found any other solution besides the hw.tcl wrapper at this point.