Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

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>

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

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

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

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