• 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. Mixed-Signal Design
  3. Chop only section of the MPP lines

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 64
  • Views 15484
  • 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

Chop only section of the MPP lines

vadagar
vadagar over 5 years ago

Hi.

I created a shield line structure where I need to chop the only section of the bottom shield. In the following image, the bottom shield (in red) and signal  (in green) are shown. The blue rectangle drawn is where the red bottom shield needs to be removed. The all bottom shield is set to choppable. The white text layer is the master.  

When I tried to chop, I will get the following messages:

*WARNING* RODChopMPP: ROD Multipart Path: invalid chop occurred, chop ignored because master path is not choppable
*WARNING* RODChopMPP: Hint: you must chop entirely through the master path at right angles for a good chop
*WARNING* RODChopMPP: Use rodUnNameShape if you want to remove the multi-part path relationships

Is there a way to implement it? or am I doing something wrong?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    I'm not sure this is possible with an MPP, but I can't really check without seeing the code that produces the MPP in the first place.

    Another approach would be to create a fluid pcell, but that's going to be much more complicated (at least without using Cadence PCell Designer to create it).

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • vadagar
    vadagar over 5 years ago in reply to Andrew Beckett

    I used rodCreatePath(). offsetSubPath and SubRect are generated by another program as a lists. The code works fine. Only thing chopping a particular layer at particular locations.

    rodCreatePath(
       ?name 'metal_shield ;'
       ?layer list("TEXT" "drawing")
       ?width  masterWidth
       ;?pts sheild_path
                     ?pts list(0:0 10:0)
       ?justification "center"
       ?offset 0.0
       ?endType "truncate"
       ?beginExt 0.0
       ?endExt 0.0
       ?choppable nil
       ?cvId cv
       ?offsetSubPath signal_list
       ?subRect sub_rect_list
      );rodCreatePath

    Regards,

    Vadagar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to vadagar

    Vadagar,

    The devil is in the details. It's the offsetSubPath and subRect that I need to see... Perhaps you can show what's in signal_list and sub_rect_list?

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • vadagar
    vadagar over 5 years ago in reply to Andrew Beckett

    I am not able to post the code... Error is occurring. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • vadagar
    vadagar over 5 years ago in reply to Andrew Beckett
    Hi Here is shield line creation code. Somehow whole code can not posted here.
    input_list = list("METAL1"  "METAL2")
    ;//shield line creation
     for( i 1 3
     
      signal_list = append1(signal_list
        list(
        ?layer   list(nth(i-1 input_list)   "drawing")
                                    ?width   sh_width
                                    ?choppable     nil
                                    ?sep     sep_start
                                    ?justification   "left"
                                    ?beginOffset     -0.050000
                                    ?endOffset       -0.050000
                            ) )  
     );for
     
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to vadagar

    OK, that code isn't enough for me to reproduce anything. There are lots of variables that aren't defined - the loop has three points in it, but the input_list only has two layers - and the result looks nothing like the layout you produced.

    It would be sufficient to just know what signal_list and sub_rect_list look like - i.e. what the variables contain - rather than seeing the code that produced them (knowing masterWidth would be useful too).

    Also, which IC subversion are you using - getVersion(t) will tell you that?

    Andrew.

    • Cancel
    • Vote Up +1 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