• 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. Hierarchically Layer generation

Stats

  • Locked Locked
  • Replies 25
  • Subscribers 146
  • Views 22753
  • 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

Hierarchically Layer generation

gparasiliti
gparasiliti over 14 years ago

Hi,

I need to generate a layer starting from other layers placed hierarchicaly in my layout, I used "layer generation" from layout menu but it works only in the cellview, I tried using skill commands but I don't know how I can get all layers from the instances placed in my cellview, off course my layout has many pcell placed.

Grazie,

Giuseppe

  • Cancel
Parents
  • stalapatra
    stalapatra over 9 years ago
    Thanks, Lawrence. That worked.

    To utilize the same function I was even looking for the queries following the thread community.cadence.com/.../1348118.

    Where I wanted to read the hierarchy first and place the generated layers in there individual hierarchies, in place of adding the generated layers at the top level.

    I was looking for the suggestions with reference to the CCShierLayerOps procedure call. Here is the sample that I was trying to use:

    procedure(CreateLayerHier(libName viewName inputLay1 inputLay2 outLayer opt size level @optional listOfCells)

    let((cv libId cellId cellList)

    libId = ddGetObj(libName)
    if(!listOfCells then
    cellList = libId~>cells
    else
    cellList = nil
    foreach(cellName listOfCells
    cellId = ddGetObj(libName cellName)
    cellList = append(list(cellId) cellList)
    );end foreach
    );end if

    foreach(cell cellList
    foreach(view cell~>views
    ;; using views matching viewName variable.
    if(view~>name == viewName && (cv = dbOpenCellViewByType(libName cell->name
    view~>name "" "a")) then
    printf("\nOpened view %L from cell %L of library %L for edit.\n"
    cv~>viewName cv~>cellName cv~>libName)

    foreach(shape cv~>shapes
    if((shape~>objType!="textDisplay" && shape~>objType!="inst" && shape~>objType!="path") then
    printf("\n Creating the layer %L. " outLayer )

    CCShierLayerOps(?cv geGetEditCellView() "inputLay1" "inputLay2" "outLayer" "opt" "size" "level")

    );end if
    );end foreach

    dbSave(cv)
    dbClose(cv)
    );end if
    );end foreach view
    );end foreach cell

    Thank you for the support.

    Regards,
    Subhabrata
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • stalapatra
    stalapatra over 9 years ago
    Thanks, Lawrence. That worked.

    To utilize the same function I was even looking for the queries following the thread community.cadence.com/.../1348118.

    Where I wanted to read the hierarchy first and place the generated layers in there individual hierarchies, in place of adding the generated layers at the top level.

    I was looking for the suggestions with reference to the CCShierLayerOps procedure call. Here is the sample that I was trying to use:

    procedure(CreateLayerHier(libName viewName inputLay1 inputLay2 outLayer opt size level @optional listOfCells)

    let((cv libId cellId cellList)

    libId = ddGetObj(libName)
    if(!listOfCells then
    cellList = libId~>cells
    else
    cellList = nil
    foreach(cellName listOfCells
    cellId = ddGetObj(libName cellName)
    cellList = append(list(cellId) cellList)
    );end foreach
    );end if

    foreach(cell cellList
    foreach(view cell~>views
    ;; using views matching viewName variable.
    if(view~>name == viewName && (cv = dbOpenCellViewByType(libName cell->name
    view~>name "" "a")) then
    printf("\nOpened view %L from cell %L of library %L for edit.\n"
    cv~>viewName cv~>cellName cv~>libName)

    foreach(shape cv~>shapes
    if((shape~>objType!="textDisplay" && shape~>objType!="inst" && shape~>objType!="path") then
    printf("\n Creating the layer %L. " outLayer )

    CCShierLayerOps(?cv geGetEditCellView() "inputLay1" "inputLay2" "outLayer" "opt" "size" "level")

    );end if
    );end foreach

    dbSave(cv)
    dbClose(cv)
    );end if
    );end foreach view
    );end foreach cell

    Thank you for the support.

    Regards,
    Subhabrata
    • Cancel
    • Vote Up 0 Vote Down
    • 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.

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

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