• 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. add an ivCellType property (value: graphic) in all the layout...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 126
  • Views 14501
  • 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

add an ivCellType property (value: graphic) in all the layout cellviews of a library

isazulkc
isazulkc over 14 years ago
Hi, I want to add an ivCellType: graphic to all my layout cellview. I know I can do it individually in each cellview, but it's too long. There is an efficient way to do it at a library level ? Thanks
  • Cancel
  • Quek
    Quek over 14 years ago

    Hi isazulkc

    You can use the following skillscript. It will add "ivCellType" property with value "graphic" to all cells in a library. Please save it as "createprop.il" in the working directory and load it in ciw using:

    load "createprop.il"

    Execute it using:

    CCScreateProp("yourLibName")
    OR
    CCScreateProp("yourLibName" "ivCellType" "string" "macro")

    Diva does not check for ivCellType property at the library level.

    Best regards
    Quek

    procedure( CCScreateProp(myLib @optional (myProp "ivCellType")
        (propType "string") (value "graphic"))
       let( (libID bag)
          libID=ddGetObj(myLib)
          foreach( cell libID~>cells
              bag=dbOpenBag(cell "a")
              unless( dbFindProp(bag myProp)
                dbCreateProp(bag myProp propType value)
            printf("Property added for cell %s\n" cell~>name)
              ) ;unless
              dbSaveBag(bag)
              dbCloseBag(bag "a")
          ) ;foreach
       ) ;let
    ) ;procedure

    createprop.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 14 years ago

    Hi isazulkc

    It is not possible to add a library level "ivCellType" property. You can use the following skillscript to add "ivCellType=graphic" to all cells in a library. Please enter the following in ciw after loading the script:

    CCScreateProp("yourLibName")

    Best regards
    Quek

    procedure( CCScreateProp(myLib @optional (myProp "ivCellType")
            (propType "string") (value "graphic"))
       let( (libID bag)
          libID=ddGetObj(myLib)
          foreach( cell libID~>cells
              bag=dbOpenBag(cell "a")
              unless( dbFindProp(bag myProp)
                dbCreateProp(bag myProp propType value)
                printf("Property added for cell %s\n" cell~>name)
              ) ;unless
              dbSaveBag(bag)
              dbCloseBag(bag "a")
          ) ;foreach
       ) ;let
    ) ;procedure   

    createprop.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • isazulkc
    isazulkc over 13 years ago
    Hi Quek, Thanks for the script, I just try it. It add the "ivCellType" property to the cell property, but for macrocell extraction I need to add this property to the layout cellviews properties. How can I modify this script to add ivCellType graphic in the Layout Cellview properties instead of the cell property. Thanks a lot! Isazulkc
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 13 years ago

    Hi isazulkc

    You can try this:

    procedure( CCScreateProp(myLib @optional (myProp "ivCellType")
            (propType "string") (value "graphic"))
       let( (libID bag)
          libID=ddGetObj(myLib)
          foreach( cell libID~>cells
              bag=dbOpenBag(cell "a")
              unless( dbFindProp(bag myProp)
                dbCreateProp(bag myProp propType value)
                printf("Property added for cell %s\n" cell~>name)
              ) ;unless
              dbSaveBag(bag)
              dbCloseBag(bag "a")
              cv=dbOpenCellViewByType(myLib cell~>name "layout" "" "a")
              evalstring(strcat("cv~>" myProp "=\"" value "\""))
              dbSave(cv)
              dbClose(cv)
         ) ;foreach
       ) ;let
    ) ;procedure   


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • isazulkc
    isazulkc over 13 years ago
    Hi Quek, There is some error when running as all the cell in the library don't have a layout view. I'm sure only a condition line in the script will solve the problem. However I don't have any knowledge in skill. Do you have some good reference to learn skill or do I need only to go through cadence reference and user guide? Thanks to tell me the condition line to add and some goods reference for skill. Best regards, Isazulkc
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Isazulkc,

    Change this bit:

              evalstring(strcat("cv~>" myProp "=\"" value "\""))
              dbSave(cv)
              dbClose(cv)

    to:

              when(cv
                dbSet(cv value myProp)
                dbSave(cv)
                dbClose(cv)
              )

    I also changed the evalstring bit to use dbSet which is cleaner than using run-time evaluation.

    Note that I didn't test any of this - it was just from visual inspection of the SKILL code.

    Regards

    Andrew.

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

    Hi Andrew,

    Thanks, that works fine now :-). Could you advise some good references to get into and develop skill script.

    Best regards,

     Isazulkc

     

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

    Try the SKILL Language User Guide.

    Regards,

    Andrew.

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

    Thanks !

     Regards,

    Isazulkc

    • 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