• 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 Design
  3. Issue: SKILL Script Creates Schematic and Symbol But Ports...

Stats

  • Replies 2
  • Subscribers 128
  • Views 102
  • Members are here 0

Issue: SKILL Script Creates Schematic and Symbol But Ports Are Missing

Mooh
Mooh 1 day ago

SKILL script to automatically generate a schematic and symbol for a 2nH inductor. The script executes without errors, but the ports are not appearing in the generated views (see attached image).


I'm using IC23.1. Could anyone help please


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

; Set library and cell names
lib = "XX"
cell = "inductor_2nH"


; Create schematic cellview
cv = dbOpenCellViewByType(lib cell "schematic" "schematic" "w")

; Add inductor instance from analogLib
inst = dbCreateInst(cv dbOpenCellViewByType("analogLib" "ind" "symbol" "" "r") "L1" 0.5:0.5 "R90")

; Set inductor value to 2nH
dbCreateProp(inst "l" "string" "2n")

; Create input port
schCreatePin(cv dbCreateNet(cv "in") "in" "inputOutput" nil 0.25:0.5 "R0")

; Create output port
schCreatePin(cv dbCreateNet(cv "out") "out" "inputOutput" nil 1.125:0.5 "R0")

; Connect ports to inductor
schCreateWire( cv "draw" "full" list(0.25:0.5 0.5:0.5) 0.3 0.3 0.0 )
schCreateWire( cv "draw" "full" list(0.875:0.5 1.125:0.5) 0.3 0.3 0.0 )

; Save and close schematic
schCheck(cv)
dbSave(cv)
dbClose(cv)


; Create symbol cellview
cvSym = dbOpenCellViewByType("XX" "inductor_2nH" "symbol" "schematicSymbol" "w")

; Draw symbol rectangle
dbCreateRect(cvSym list("device") list(0.0625:0.125 0.5:0.25))

; Add pins to symbol
schCreatePin(cvSym dbCreateNet(cvSym "in") "in" "inputOutput" nil 0.25:0.5 "R0")
schCreatePin(cvSym dbCreateNet(cvSym "out") "out" "inputOutput" nil 1.125:0.5 "R0")

; Save and close symbol
dbSave(cvSym)
dbClose(cvSym)

println("Inductor schematic and symbol created successfully in Hamada library!")


///////////////////////////////////////////////////////////////////////////////////////////////////

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 1 day ago

    To create symbol pins you need to use schCreateSymbolPin rather than schCreatePin. Something like this:

    ; Add pins to symbol
    ;schCreatePin(cvSym dbCreateNet(cvSym "in") "in" "inputOutput" nil 0.25:0.5 "R0")
    ;schCreatePin(cvSym dbCreateNet(cvSym "out") "out" "inputOutput" nil 1.125:0.5 "R0")
    ; Use the correct functions and also move the locations to be on the rectangle created above
    pinMaster=dbOpenCellViewByType("basic" "sympin" "symbolNN")
    schCreateSymbolPin(cvSym pinMaster "in" "inputOutput" 0.0625:0.18750 "R0")
    schCreateSymbolPin(cvSym pinMaster "out" "inputOutput" 0.5:0.18750 "R0")
    dbClose(pinMaster)

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 1 day ago

    To create symbol pins you need to use schCreateSymbolPin rather than schCreatePin. Something like this:

    ; Add pins to symbol
    ;schCreatePin(cvSym dbCreateNet(cvSym "in") "in" "inputOutput" nil 0.25:0.5 "R0")
    ;schCreatePin(cvSym dbCreateNet(cvSym "out") "out" "inputOutput" nil 1.125:0.5 "R0")
    ; Use the correct functions and also move the locations to be on the rectangle created above
    pinMaster=dbOpenCellViewByType("basic" "sympin" "symbolNN")
    schCreateSymbolPin(cvSym pinMaster "in" "inputOutput" 0.0625:0.18750 "R0")
    schCreateSymbolPin(cvSym pinMaster "out" "inputOutput" 0.5:0.18750 "R0")
    dbClose(pinMaster)

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data

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.

© 2026 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information