• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Logic Design
  3. How to set_current_module in RTL Compiler??

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 62
  • Views 17856
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to set_current_module in RTL Compiler??

archive
archive over 18 years ago

Hi all,

I need to perform synthesis of a sub-block of the design. And then merge it with the top design.
I am using RTL Compiler.

In pks or build gates this was simple, we had the command set_current_module .. and one can then perform synthesis on a subdesign.

There seems to be no direct equivalent of set_current_module in RTL Compiler.

I found one command in RTL Comiler, derive_environment.
This promotes a subdesign to a topdesign.
So in design database we will now have
/designs/topdesign
/designs/subdesign_promoted_top

The synthesis which I perform on /designs/subdesign_promoted_top is now independent of actual topdesign.

This  works. But how can I later merge the
/designs/subdesign_promoted_top
into
/designs/topdesign ??

I see no way to do this in the userguide!

Can someone help me?

Thanks in advance,
Pradeep


Originally posted in cdnusers.org by spveer
  • Cancel
  • archive
    archive over 18 years ago

    Hi Pradeep,

    Try the following:

    edit_netlist new_instance -name /designs/subdesign_promoted_top /designs/topdesign

    There are more options for "edit_netlist new_instance" in the manual

    Regards,
    Max


    Originally posted in cdnusers.org by Stalker
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Sorry, tipo:
    edit_netlist new_instance -name SUBDESIGN_INST_NAME /designs/subdesign_promoted_top /designs/topdesign


    Originally posted in cdnusers.org by Stalker
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Thanks Stalker,

    I will try this tomorrow, when I am in office..

    But what should I do with the existing subdesign in the topdesign..?
    will that be overwritten?

    Or should I first remove the existing subdesign, and then create a new instance using the subdesign_promoted_top?

    Can you please tell me if possible, about how merging takes place...

    Thanks,
    Pradeep


    Originally posted in cdnusers.org by spveer
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    You can continue working with you topdesign as usual, the only thing, that you can't omit the design name in the commands, for example:
    write_hdl topdesign > top.v
    and not
    write_hdl > top.v
    I don't know exactly how the new instance is linked, but I think the subdesign_promoted_top is needed for correct work.


    Originally posted in cdnusers.org by Stalker
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Hi Max,

    I tried using this...
    edit_netlist new_instance -name SUBDESIGN_INST_NAME /designs/subdesign_promoted_top /designs/topdesign

    now on the topdesign I have an unconnected instance in the hierarchy,  called SUBDESIGN_INST_NAME

    If I try to optimize, since this instance is unconnected, and not driving any ports, the instance is removed by synthesis.

    ------
    I also tried the following:

    The hierarchy looks like this:
    /designs/topdesign/instances_hier/xxxx
    /designs/topdesign/instances_hier/subdesign  ----- this is promoted to subdesign_promoted_top
    /designs/topdesign/instances_hier/SUBDESIGN_INST_NAME  ---- this is subdesign_promoted_top copied back into topdesign


    now I removed subdesign
    rm /designs/topdesign/instances_hier/subdesign

    So the hierarchy now looks like this:
    /designs/topdesign/instances_hier/xxxx
    /designs/topdesign/instances_hier/SUBDESIGN_INST_NAME  ---- this is subdesign_promoted_top copied back into topdesign

    then I have run 'synthesize'... But however the tool sees /designs/topdesign/instances_hier/SUBDESIGN_INST_NAME, not driving any ports and optimizes it away.... but doesnt link it to topdesign!! :(

    ----

    I am still not sure, how to link the designs....


    Originally posted in cdnusers.org by spveer
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Hi Pradeep,

    have you tried the change_link command. I have used this in the past in a similar flow with pretty good success. I think the key is that the pin names have to match.

    gh-


    Originally posted in cdnusers.org by grasshopper
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Hi gh,

    yes,  change_link works...!
    i was just trying that and got ur mail too :)

    thanks n regards,
    pradeep


    Originally posted in cdnusers.org by spveer
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jojo57006
    jojo57006 over 11 years ago

    Hello, 

    Me too I am trying to synthesize subdesigns because my vhdl code is too big. So, I need to put to a top-level every instance of my design and so on use the command derive_environment.

    Please can you help me to use this command. Where I write :
    rc :> derive_environment /designs/my_top_design/instances_hier/my_subdesign_to_put_to_top_level
    the terminal is block !!

    This command take a long time or there is a problem with it ? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • grasshopper
    grasshopper over 11 years ago

    How big is  /designs/my_top_design/instances_hier/my_subdesign_to_put_to_top_level ?

    What exactly is your goal ? Can you describe what your flow is ?

     

    gh-

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jojo57006
    jojo57006 over 11 years ago

    My goal is to make the low power multi vdd synthesis of my design : design/top_rs232

    I have 200 000 gates to synthesize and I work on the server of my school. I can't make the synthesis directly because of this server so I want to elaborate all the design and synthesize each blocks separately. After I will read all the .v file and redo the synthesis which now the server can support.   

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information