• 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. Simple example/template for a (matrix based, if possible...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 2290
  • 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

Simple example/template for a (matrix based, if possible) schematic pcell

SteveVrk
SteveVrk over 3 years ago

One of the most severe shortcomings of Virtuoso is the lack of support to parameterize matrix structures. For example, I have an array 50x100 sub circuits that I implement in array notation on two levels (first I1<1:100> and then I array this again as I2<1:50>). But now I need to parameterize each of these in a certain way and surprisingly this is not possible, according to posts I found here.

Only way seem to be schematic pcells. I have quite some experience in Cadence Virtuoso but not SKILL. It feels so hard to get started with the schematic cells. All information I find just show code fractions and I don't even know where to put them and how to create an actual pcell.

Is there some simple "Hello World" schematic pcell (including how to add it to my library and how to include it in a test schematic) that I can use as a template and extend?

Is there possibly even a template for this use case, i.e., taking an arbitrary existing cell and creating a dynamic matrix out of it?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    The challenge is that the OA database is designed to have connectivity extracted and available live, whereas parameterised instance and bus sizes implies on-demand evaluation - that can be achieved with PCells.   

    This article contains a fairly simple example that you could start from: Creating a component that allows setting a value on a bus in an analog simulation

    There's also the facility to create schematic PCells with PCell Designer (although we've not yet added good support for iterated instances and variable width buses - it's on the plan): Generating a Schematic Parameterized Cell using PCell Designer

    Regards,

    Andrew 

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to Andrew Beckett
    SteveVrk said:
    Is there possibly even a template for this use case, i.e., taking an arbitrary existing cell and creating a dynamic matrix out of it?

    Just noticed this point. Please contact customer support, and reference this post and say that the case can be assigned to me. I have a prototype of this templating approach which I developed a little while ago and would be interested in a partner customer as we look to potentially putting such a capabilty in production (there are some limitations, so I'd like to understand whether what you need is within the limitations of the prototype).

    Thanks,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • SteveVrk
    SteveVrk over 3 years ago in reply to Andrew Beckett

    That's absolutely amazing!

    I have created a case as you mentioned. Would be exciting to work towards such a function!

    • 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