Forum Discussion

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

Qsys Custom Component dynamix entity names

Hi all,I would like to know if it is possible for Qsys to generate dynamic entity names for custom components? I see all submodules of Qsys components have entity names with the Qsys system name appended in front. I would like to do the same for my custom components and its sub-entities. I have generated the hw tcl files from the VHDL source of the custom component. Say I have a component with toplevel entity custom_top inside my Qsys system (qsys_1). I would like to rename the entity (and the copied custom IP file) upon generation to qsys_1_custom_top, as is done with all other Qsys generated components.The problem comes in when I have 2 Qsys systems using the same custom component in the same design (and cannot be connected in one top-qsys, so I instantiate both Qsys top-levels somewhere else), then both will copy the custom component VHDL files, and copies of the same component (entity) will be in both qip files. When synthesizing, Quartus will see both entities with same name and generate an error.Thanks.

4 Replies

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

    You *might* be able to do this by writing a generation callback function in the .tcl file for the component. I am not aware of a way to get Qsys to do this natively, typically I avoid this problem by instantiating the multiple systems in a larger Qsys system (the design hierarchy will take care of the overlap)

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

    Thanks.

    Was also thinking about using a generation callback, was hoping someone has done something similar.

    Our design and its complexity does not easily allow for the multiple Qsys systems in one top-level. Have thought about that, it is just not practical.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I think I found an example to look at. In your installation directory look here: ip\altera\sopc_builder_ip\altera_avalon_sysid_qsys

    You will see a temporary HDL file with the .v.terp extension that has a module name poked into it by the generate callback from the .tcl file. So if you expose a parameter to make a unique name then you can use the "terp" functionality that the Qsys system id peripheral uses. I'm pretty sure this functionality is not documented since it's news to me too so don't expect it to be supported by Altera or not change from release to release.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks,

    Looks like a good example as to what it is I am trying to do. Will see if I can make it happen with our IP.