• 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. Help needed in SKILL Code for PCell Creation

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 145
  • Views 14171
  • 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

Help needed in SKILL Code for PCell Creation

Messi
Messi over 14 years ago

Hi,

   Can anyone please help in writing a code to create pcell.I would like to have these as the pcell parameters:3-4 rectangles(layers),width,length and type..Each rectangle should use different layer like layer1 ACTIVE,layer2 POLY etc...I want the layers to be created based on parameter "type".

Based on this parameter it should create these rectangles..eg: if type is case("Width")- it should create single layer like layer1.if case is "overlap" it should create 2 layers say layer1 and layer2.

    Can anyone please help me out..

Thanks,

 Messi

  • Cancel
Parents
  • Austin CAD Guy
    Austin CAD Guy over 14 years ago

    The interface to a pcell is through its parameters. The pcell is drawn based on the data input through those parameters. The code you write for the pcell reads the values of the parameters and then creates the pcell contents.

    You have to first create a set of requirements for the pcell. What should it do and how should it be controlled? What are the inputs to the pcell and what are the results for each input? You want to have as complete requirements as you can before you start.

     Once you have captured the requirements, you can map them to the pcell parameters. Be aware that the  parameters for a pcell are fixed when the pcell is compiled, you cannot add parameters on the fly, you can only change the values. For your application, you may want to pass in data structures describing the rectangles to be built based on the type parameter or you can build the layers and default widths and lengths into the pcell itself.

    I often structure the code so that the data creation function can be executed in any cellView for easier testing. I pass in the cellView ID (the variable pcCellView during the execution of a pcell) . The previous post is an example of that methodology.This is a good starting point for you.

    Ted

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Austin CAD Guy
    Austin CAD Guy over 14 years ago

    The interface to a pcell is through its parameters. The pcell is drawn based on the data input through those parameters. The code you write for the pcell reads the values of the parameters and then creates the pcell contents.

    You have to first create a set of requirements for the pcell. What should it do and how should it be controlled? What are the inputs to the pcell and what are the results for each input? You want to have as complete requirements as you can before you start.

     Once you have captured the requirements, you can map them to the pcell parameters. Be aware that the  parameters for a pcell are fixed when the pcell is compiled, you cannot add parameters on the fly, you can only change the values. For your application, you may want to pass in data structures describing the rectangles to be built based on the type parameter or you can build the layers and default widths and lengths into the pcell itself.

    I often structure the code so that the data creation function can be executed in any cellView for easier testing. I pass in the cellView ID (the variable pcCellView during the execution of a pcell) . The previous post is an example of that methodology.This is a good starting point for you.

    Ted

     

    • 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