• 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. Generate Layout hierarchy, ignoring existing layouts of...

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 143
  • Views 6698
  • 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

Generate Layout hierarchy, ignoring existing layouts of subcells.

vtboy51
vtboy51 over 1 year ago

I have written a SKILL script that uses the function lxGenFromSource to generate the layout view. The purpose of the code is to do an area calculation of each device, and I would like to ignore any existing layout views that exists and always generate "new" layouts (which is always done in a scratch library). Is there an environment variable I can set?

  • Cancel
Parents
  • RobMan
    RobMan over 1 year ago

    'lxGenFromSource' accepts a lib/cell/view arguments so you can specify it that way....

    lxGenFromSource(
    d_schCellViewID
    [ ?layLibName t_layLibName ]
    [ ?layCellName t_layCellName ]
    [ ?layViewName t_layViewName ]
    [ ?configLib t_configLib ]
    [ ?configCell t_configCell ...........

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • vtboy51
    vtboy51 over 1 year ago in reply to RobMan

    So I do use the lib/cell/view fields to define where to generate the layout cells in, but if a layout cell exists in my schematic library (which is not where I've specified the layout to be generated) it will still pull it from the schematic library and instantiate it. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan over 1 year ago in reply to vtboy51

    That would be my expectation.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • RobMan
    RobMan over 1 year ago in reply to vtboy51

    That would be my expectation.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • vtboy51
    vtboy51 over 1 year ago in reply to RobMan

    I would think there is somewhere I can add an "ignore" library list to my settings, such that it won't look in that list of libs for layout cells. My temporary fix is to copy the schematics hierarchically into a new library (minux layouts) and then run, but that obviously is a pain each time.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan over 1 year ago in reply to vtboy51

    Apologies, I think I might have misunderstood the previous statement. Are you suggesting you specify lib/cell/view and it is ignored?

    e.g. You have schematic design 'myLib aCell schematic'. You call

    lxGenFromSource(
    dbOpenCellViewByType("myLib" "aCell" "schematic")

    ?layLibName "myLayoutLib"

    ?layCellName "aLayoutCell"

    ?layViewName "layout" 

    )

    But the cell 'myLib aCell layout' is created?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • vtboy51
    vtboy51 over 1 year ago in reply to RobMan

    Correct. I set "cv" equal to my current schematic library (which has existing layout views), and then pass that into the lxGenFromSource function. In that function I specify a layoutLibName, layoutCellName, and layoutViewName which are different than the schematic library. 

    cv = dbOpenCellViewByType(schLibName schCellName "schematic" "schematic" "w")



    ;CADENCE FUNCTION FOR DOING GEN FROM SOURCE
    lxGenFromSource(cv
    ?layLibName layoutLibName ;LAYOUT LIB NAME
    ?layCellName layoutCellName ;LAYOUT CELL NAME
    ?layViewName layoutViewName ;LAYOUT VIEW NAME
    ?initDoStacking "t" ;AUTO ABUT MOS INTO CHAIN
    ?initCreateInstances t ;GEN ALL INSTANCES IN SCH W/O IGNORE PROP
    ?lxGenerateInBoundary t ;GEN INSIDE BOUNDARY SHAPE
    ;?lxPositionMinSep deviceSep
    ?initAreaSource1 "Utilization"
    ?initAreaSource1Val 100.0
    ?initAreaSource2 "AspectRatio"
    ?initAreaSource2Val 1.0
    ;?extractAfterGenerateAll nil
    ;?extractSchematic nil
    );end lxGenFromSource

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan over 1 year ago in reply to vtboy51

    I assume you are quoting (string) the layoutLibName, layoutCellName & layoutViewName).

    This works. Creating a new layout view 'layoutLibName layoutCellName layoutViewName'

    If it's not working for you I suggest you connect customer support. There's probably some subtle mistake somewhere.

    • 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