• 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. copy a layer but replace it with new layer

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 16013
  • 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

copy a layer but replace it with new layer

Satendra
Satendra over 14 years ago

I want to copy the prboundary layer and paste it as LVT layer exactly as prboundary layer. So its like I have a layout with prBoundary. now I want to create LVT layer over prboundary layer.

I want to do this for all the cells in the library. I am naive to the skill environment. Can somebody help me to get this done.

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    This post is a classic reason why I put together the Forum Guidelines . Since prBoundary objects are represented completely differently in CDB and OA, knowing which version you're using is rather important in order for somebody to be able to answer this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Satendra
    Satendra over 14 years ago

     oh sorry I missed that...I am using CDB

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

    procedure(MyCopyLayer(@key (cvId geGetEditCellView()) (fromLayer "prBoundary") (fromPurpose "drawing")
        (toLayer "LVT") (toPurpose "drawing"))
    let((srcLPP newShape)
      srcLPP=car(exists(LPP cvId~>lpps LPP~>layerName==fromLayer && LPP~>purpose==fromPurpose))
      foreach(shape srcLPP~>shapes
        newShape=dbCopyFig(shape cvId)
        newShape~>layerName=toLayer
        newShape~>purpose=toPurpose
      )
      t
    )
    )

    Code untested, but something like this should do the job. You can then use:

    MyCopyLayer(?cvId cvId ?toLayer "newLayer" ?fromLayer "somethingElse")

    I made the default copy from prBoundary to "LVT"

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Satendra
    Satendra over 14 years ago

    Thanks a lot Andrew. I was sweating for getting this done.

    Just one more question. I have library named regular_std_cells and I want to do this for all the cells in this library. is there a way to get this done in one shot. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • berndf
    berndf over 14 years ago

    Probably something like this

    procedure( BFdoSomethingByCellViewByPattern( t_libName t_viewNamePattern "tt" )
            let( ( b_ddId d_libId l_cellList l_cellViewList )

    d_libId = ddGetObj( t_libName )

    l_cellList = setof(
                    d_cell
            d_libId~>cells 
            rexMatchList( t_viewNamePattern d_cell~>views~>name )
            )

    foreach( d_cell l_cellList
        l_cellViewList = setof(
                d_view
                d_cell~>views
                rexMatchp( t_viewNamePattern d_view~>name )
                )
        foreach( d_cellView l_cellViewList
        b_ddId = ddGetObj( t_libName d_cell~>name d_cellView~>name )
        printf(
            "-- FdoSomethingByCellViewByPattern -- Do something %s/%s/%s\n"
            t_libName d_cell~>name d_cellView~>name
            )
        ;; execute the do code here
        ) ;; close foreach
    ) ;; close foreach

    ) ;; close let

     

    Bernd

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Satendra
    Satendra over 14 years ago
    Dear Bernd,
    Thanks a lot for the help. I really appreciate that.
    Satendra
    • 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