• 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. How to call an instance into layout

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 16497
  • 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 call an instance into layout

Muralidhar
Muralidhar over 8 years ago

Hi,

I am writing a program to call the devices from the technology library (P cells) using the following code

master=dbOpenCellViewByType("cmos28g" "nfet" "layout")    ;cmos28g is the library, nfet is the cell name and layout is view name

paralist=list(list("W" "float" "0.5") list("L" "float" "0.5"))

dbCreateParamInst= (geGetEditCellView() master "instname"  list(0 0) "R0" 1 paralist)

By excuting this program I am getting the instance in my layout but not with the parameters that I specified. It is coming with the same parameters that are in the original layout (i.e., in the cmos28g library layout).

Is there anything wrong in the program ?  (or) Do I need to include anything else?.  Please clarify it.

Thanks.

  • Cancel
  • skillUser
    skillUser over 8 years ago
    I don't think that this can be your code, for example, I see the following typo:
    dbCreateParamInst= (

    The instance name would have to change for each instance also.
    If this is your code then I would not have expected it to work, but anyway, fix the typo above and/or post your real code.
    Good luck!
    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Muralidhar
    Muralidhar over 8 years ago
    Actually, that was my typo mistake. Following is the actual code

    master=dbOpenCellViewByType("cmos28g" "nfet" "layout") ;cmos28g is the library, nfet is the cell name and layout is view name

    paralist=list(list("W" "float" "0.5") list("L" "float" "0.5"))

    gen_inst=dbCreateParamInst (geGetEditCellView() master "instname" list(0 0) "R0" 1 paralist) ;anyway instname will be varied

    I tried this code to generate a single device.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 8 years ago
    Then you must have the parameter names incorrect. Take a look at Tools -> CDF -> Edit for the nfet cell from the cmos28g library - I'm guessing the parameters are actually named something like "w" and "l" (lowercase) - but check for sure in the CDF. The instance you have created probably has properties for "W" and "L" rather than parameters for "w" and "l", hence you get a default device.

    Try again and report back.

    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Muralidhar
    Muralidhar over 8 years ago
    The CDF parameters are defined with lowercase letters only (l, w). But when I use the lowercase letters in paralist like
    paralist=list(list("w" "float" 0.5) list("l" "float" 0.5))
    I am getting a warning in my virtuoso as dbCreateParaminst : Datatype for input parameter 'l' does not match with the definition
    and getting the result as nil.

    If I use uppercase letters atleast I am getting device.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 8 years ago
    Well you have to match the expected type of the parameter also! It is probably a string, not a float, which is why you are getting the warning. Look again, closely, at the CDF parameters when you do Tools -> CDF -> Edit, you will see the parameter type, make sure you provide the type and value to match what is expected.
    Best regards,
    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Muralidhar
    Muralidhar over 8 years ago
    I changed it. Now, it is working thanks for your suggestions
    • 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