• 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. Device spacing in modgen using SKILL

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 14624
  • 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

Device spacing in modgen using SKILL

sbilla
sbilla over 6 years ago

Can anyone help me in finding out how to set custom device spacing in a modgen using SKILL. I've gone through ciConCreate() in the documentation and can create a modgen using it, but couldn't find any option that sets device spacing. Any help will be greatly appreciated.

Thank you.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    For each of the member lists you pass to ciConCreate, there are a set of properties you can provide - you see these in the documentation examples as things like "row", "column", "abutment". You can also specify:

    ("horiCustomSpacing" 1.5)
    ("vertCustomSpacing" 3.0)

    There is one brief mention of horiCustomSpacing in an example in the docs, but otherwise the easiest way to find this out is to create the modgen using the UI and then use ciConFind and inspect the members (not that there is an additional field when inspecting it which shows the type - that's omitted when calling ciConCreate().

    Probably would be worth contacting customer support to get this better documented.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • sbilla
    sbilla over 6 years ago in reply to Andrew Beckett

    Thank you very much, Andrew.

    I tried the following to specify the spacing.

    memberList = list(list("M48.1" 'inst list(list("horiCustomSpacing" 1.2) list("vertCustomSpacing" 1.2))) list("M48.2" 'inst list(list("horiCustomSpacing" 1.2) list("vertCustomSpacing" 1.2))))

    constr_id = ciConCreate(cache_id 'modgen ?members memberList ?params list( list( "numRows" 1 ) list( "numCols" 1 )))

    It is creating the modgen which is no different from the one that is created when the spacing parameters are not given. constr_id~>members shows the numbers that were set, though:

    (("M48.1" inst

    (("bodyContacts" enumset nil)

    ("bodyContactType" string "")

    ("bodyContactSep" float 0.0)

    ("bodyContactRefLayer" int 0)

    ("bodyContactNetToUse" int -1)

    ("dummyNetToUse" int -1)

    ("dummyParamSource" enum "neighbor")

    ("horiCustomSpacing" float 1.2)

    ("hCustomSpacingRefLayer" int -1)

    ("hCustomSpacingRefPurpose" int -1)

    ("vertCustomSpacing" float 1.2)

    ("vCustomSpacingRefLayer" int -1)

    ("vCustomSpacingRefPurpose" int -1)

    ("dummyParams" string "")

    ("row" int 0)

    ("col" int 0)

    ("abutment" int 0)

    ("abutType" int -1)

    ("orient" enum "R0")

    ("vertAlignment" enum "top")

    ("horiAlignment" enum "left")

    )

    )

    ("M48.2" inst

    (("bodyContacts" enumset nil)

    ("bodyContactType" string "")

    ("bodyContactSep" float 0.0)

    ("bodyContactRefLayer" int 0)

    ("bodyContactNetToUse" int -1)

    ("dummyNetToUse" int -1)

    ("dummyParamSource" enum "neighbor")

    ("horiCustomSpacing" float 1.2)

    ("hCustomSpacingRefLayer" int -1)

    ("hCustomSpacingRefPurpose" int -1)

    ("vertCustomSpacing" float 1.2)

    ("vCustomSpacingRefLayer" int -1)

    ("vCustomSpacingRefPurpose" int -1)

    ("dummyParams" string "")

    ("row" int 0)

    ("col" int 1)

    ("abutment" int 0)

    ("abutType" int -1)

    ("orient" enum "R0")

    ("vertAlignment" enum "top")

    ("horiAlignment" enum "left")

    )

    )

    )

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sbilla
    sbilla over 6 years ago in reply to sbilla

    Got it! I need to change  "vertAlignment"  and  "horiAlignment" to "custom" to make it work. Thank you very much, Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to sbilla

    Sorry - forgot to include those in the list. They were in my example too, but I didn't notice ;-)

    Glad you got it working.

    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