• 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. Custom IC SKILL
  3. problems when using techGetSpacingRule

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 13726
  • 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

problems when using techGetSpacingRule

Adhil
Adhil over 13 years ago

Hi

1. Im trying to execute the following command:

techGetSpacingRule( tfId "minSpacing" "PC" "CA")

but the it returns nil. is this because the techfile.tf is improperly written, or are there any other reasons

 2. in totally unrelated issue, what is the difference between a master and a supermaster?

 

Adhil.

  • Cancel
  • skillUser
    skillUser over 13 years ago

    Hi Adhil,

    Are you sure that the rule is encoded in the tech file?  You could inspect the minSpacing rules to see what is present, for example:

     setof(minsp techGetSpacingRules(tfId) car(minsp)=="minSpacing")
    => (("minSpacing" 1.0 "Nwell") 
         ("minSpacing" 0.3 "Oxide") 
         ("minSpacing" 0.3 "Poly") 
         ("minSpacing" 0.4 "Nimp") 
         ("minSpacing" 0.4 "Pimp")
         ("minSpacing" 0.2 "Cont") 
         ... 
         ("minSpacing" 0.0 "Metal3" "Via2") 
         ("minSpacing" 0.2 "Oxide" "Poly") 
         ("minSpacing" 0.2 "Poly" "Cont")
       )
    

    So my example shows three two-layer minSpacing rules.

     

    For the other question, for PCells the "master" of the PCell is termed the superMaster, if looking up from the instance you will see the master first (that is to say the cell that has this particular set of parameter values) and above this is the superMaster (the parent that is stored on disk).  The superMaster is the "default" PCell, but even if you were to place an instance with default parameters a (sub)-master would be created.  If you are looking 'down' from the PCell you have the PCell master, a sub-master(s) and then the instance(s).  Although this may be confusing, I hope that it answers your question and maybe sheds some light on the terminology used.

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Adhil
    Adhil over 13 years ago

    Ya I am a bit confused, let me get this straight.

    1. the supermaster has the parameters of the parent pcell stored in real memory.
    2. the submaster has the parameters of an instantiated pcell (which means when it is placed on a particular cellview).
    3. then what is the master?

    Adhil

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Adhil,

    Let me try stating it differently to see if it is clearer for you.

    Every instance in the design is an instantiation of a master. So if you do instId~>master you'll get the cellView object containing a set of shapes, instances, and other objects which represents the thing being instantiated. For normal cells, this is identical to the cellView you'd get when you open the instantiated cellView directly with dbOpenCellViewByType(libName cellName viewName) . If it is a pcell that is instantiated, the master is actually a subMaster. A subMaster is the cellView for the particular variant being instantiated - i.e. the specific combination of parameters that was used on the instance. All instances with the same set of parameters (for the same pcell) will share the same subMaster. However, if you were to use the dbOpenCellViewByType(pcellLibName pcellCellName pcellViewName) you wouldn't get this subMaster because it wouldn't know anything about the specific set of parameters; instead you get the superMaster which is the starting point for the pcell. You can also get from any subMaster to the corresponding superMaster by doing instId~>master~>superMaster. Note that only pcells have superMasters.

    Does that help?

    Andrew.

    • 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