• 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. Digital Implementation
  3. Design hierarchy in Encounter

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 91
  • Views 16522
  • 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

Design hierarchy in Encounter

Aram Shahinyan
Aram Shahinyan over 12 years ago

Dear Friends,

I have a block with the same structure (sub module) repeating many times. I have done manual placement & routing for one slice

and saved a design.

Now I need to instantiate and use a hand made slice many times (just like instantiating in layout editor)

Any ideas how I can do that?

Thanks in Advance,

Aram

  • Cancel
  • Kari
    Kari over 12 years ago
    you should create a LEF for your block, then that LEF can be loaded at the next level of the design and placed like any block. 
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Aram Shahinyan
    Aram Shahinyan over 12 years ago

     Hi Kari,

    Thank You. Yes, that's one of the ways. Actually I'm doing the design in block level, so I would skip splitting one 

    block to many LEFs. Is there any other way? I've read there's partitioning and master/clone technique, but I haven't figured

    out how to do master/clone. I would appreciate if you can walk me through some steps

    Thank You,

    Aram

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kari
    Kari over 12 years ago
    if your top-level netlist has this block's module instantiated several times, then once instance will be the master partition and the rest will be the clones. then you just design this block once (like you already have) and it is repeated at the top-level. As for the actual partitioning process and assigning the master, please check the EDI User Guide (See the chapter called "Partitioning the Design" and the section called "Specifying Multiple Instantiated Partitions and Blackboxes".)
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Aram Shahinyan
    Aram Shahinyan over 12 years ago

    BTW, another issue here is that Encounter does not accept verilog netlists that have same cell instantiated more than once and asks to uniquify netlist with uniquifyNetlist utility. After that procedure extra modules are being generated (module_name_SPC1, module_name_SPC2, etc..) and unique cells are getting instantiated. Please let me know if explanation is not clear.

    My point is in this case names for the same module become different, and how master/clone can be recognized? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kari
    Kari over 12 years ago
    It's been a while since I did this, but it might be that you don't uniquify the netlist if you are doing the master/clone flow. EDI should still accept the netlist, you may have warnings... if EDI really isn't accepting the netlist, then post back the exact error message and we'll see if we can figure out what's going on.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Aram Shahinyan
    Aram Shahinyan over 12 years ago

    Hi Kari,

    2 issues when not using unique netlist

     Issue 1  Optimization is limited with non unique netlist

    **WARN: (ENCECO-560):   Netlist is not unique. Cell "array_col_slice" is a multi-instantiated cell. Uniquify your netlist to avoid the problem.
    **WARN: (ENCECO-560):   Netlist is not unique. Cell "mux_out" is a multi-instantiated cell. Uniquify your netlist to avoid the problem.
    **WARN: (ENCOPT-3213):  Netlist is not uniquified -- Some optimization is limited!

     Issue 2 Clock tree synthesis does not work with non unique netlist

    <clockDesign CMD> specifyClockTree -file Clock.ctstch
    Checking spec file integrity...
    **WARN: (ENCECO-560):   Netlist is not unique. Cell "array_col_slice" is a multi-instantiated cell. Uniquify your netlist to avoid the problem.
    **WARN: (ENCECO-560):   Netlist is not unique. Cell "mux_out" is a multi-instantiated cell. Uniquify your netlist to avoid the problem.
    Module WPREDecoderPerPort is multiply-instantiated in WDecoderPerPort and another module.
    **ERROR: (ENCCK-404):   Your netlist is not unique. CTS requires a unique netlist before it can run clock tree synthesis. Please load a unique netlist into EDI before you run CTS.
     

    Thanks,

    Aram

    • 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