• 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. need a gui based remaster script for cells

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13059
  • 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

need a gui based remaster script for cells

SatendraMaurya
SatendraMaurya over 6 years ago

I wanted to replace the cells in the schematic from one lib to other and potentially different cellname

I wrote the following SKILL code:

;; liblist=ddGetLibList()~>name
;; cellist=ddGetObj("smaurya_l")

procedure( replace()
let((oldcellnameL oldcellnameS)
liblist=ddGetLibList()~>name

libNameOld=hiCreateListBoxField(
?name 'libNameOld
?numRows 6
?choices liblist
?prompt "Old Library Name"
?callback "oldcellnameL=(libNameOld~>value) println(oldcellnameL) sprintf(oldcellnameS \"%L\" oldcellnameL) println(oldcellnameS)"
)
println(oldcellnameS)
cellNameOld=hiCreateListBoxField(
?name 'cellNameOld
?numRows 6
?choices ddGetObj(oldcellnameS)~>cells~>name
?prompt "Old Cell Name"
?callback "ddsUpdateSyncWithForm()"
)
;;new
libNameNew=hiCreateListBoxField(
?name 'libNameNew
?numRows 6
?choices liblist
?prompt "new Library Name"
?callback "ddsUpdateSyncWithForm()"
)
newcellname=ddGetObj('libNameNew)~>name
cellNameNew=hiCreateListBoxField(
?name 'cellNameNew
?numRows 6
?choices newcellname
?prompt "new Cell Name"
?callback "ddsUpdateSyncWithForm()"
)

randFrameField = hiCreateFrameField(?name 'myrandFrameField)
netlisterForm = hiCreateAppForm(
?name 'netlisterForm
?formTitle "Replace"
?fields list(
list(randFrameField 5:0 405:100)
list(libNameOld 10:10 400:100 100)
list(cellNameOld 10:100 400:100 100)
list(libNameNew 10:190 400:100 100)
list(cellNameNew 10:280 400:100 100)

);fields
?buttonLayout 'Close
?initialSize t
) ;hiCreateAppForm

hiDisplayForm(netlisterForm)
);let
);procedure

;;procedure( celllist(libname)

I wanted the user choose the library and then select the cells from that list.I am able to get the library list but somehow I am not able to populate the celllist of that library. I am using callback to pass on selected libname to the celllist but its always empty.

Is there a way to set variable in callback section and use it later.

Satendra'

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Hi Satendra,

    In the ?callback for libNameOld put:

    ?callback "netlisterForm->cellNameOld->choices=ddGetObj(car(netlisterForm->libNameOld->value))~>cells~>name"

    You'll need a similar callback for the libNameNew field too.

    Regards,

    Andrew.

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

    Thanks a lot Andrew. It worked.

    • 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