@head: Max's Chips and Dips: Building a PCell-based Standard Cell Library
@deck: The engineering team at CMC Technologies chose PyCell Studio when architecting their new technology, and found that it delivered a number of unanticipated productivity benefits in addition to exceeding their technical requirements.
@text: <a href=" target="_new">CMC Technologies (CMC)</a> of Newport Beach, California faced a unique problem when architecting their new digital logic technology. They needed to quickly develop a library of device-level components and digital standard cells that could be used to build a wide range of digital functions, and that could be easily targeted to different process nodes. The engineering team at CMC chose PyCell Studio for the task, and found that it delivered a number of unanticipated productivity benefits in addition to exceeding their technical requirements.
Joseph Karniewicz, Ph.D. is a pcell design consultant with more than 25 years of experience in the areas of process development, process/device simulation, device characterization and PCell design. He knew that developing this library would be a major design challenge, due to the complex nature of the cells themselves as well as the requirement that they all conform to a variable pitch standard cell architecture. Before he could start development, he needed to identify a layout generation technology that met all of the following requirements:
<li<b>Interoperable:</b> The library must be usable by the widest possible variety of layout and analysis tools from multiple vendors. <br </li>
<li<b>Migratable:</b> The library must be portable to new, and as yet unspecified, process technologies as CMC developed relationships with new customers. <br </li>
<li<b>Flexible:</b> The library must support a variety of unique layout techniques required by CMC's logic technology.</li>
<b>Migratable to Future Processes</b>
The migration requirement was particularly daunting. <i>"We needed enough flexibility to handle any design rule set that could be thrown at us,"</i> said Joseph. <i>"For example, down at the transistor level, we needed to have adjustable metal extension over via on the top, bottom, right and left. Up higher, the digital standard cells all needed adjustable pitch, cell height and pin locations."</i>
CMC quickly identified PyCell Studio from <a href=" target="_new">Ciranova, Inc.</a> as an ideal solution which met all of their stated requirements. PyCell Studio is a complete, stand-alone environment for creating interoperable PCells and layout generators for use in any OpenAccess tool, including tools from market leader Cadence Design Systems, Inc.
<b>Modern Layout API</b>
A primary reason that CMC chose PyCell Studio was the Ciranova Layout API, which provides a high-level programming interface designed for building cell generators in environments subject to complex design rules. Joseph says that the Ciranova Layout API represents a significant advance in the state of the art.
<i>"The APIs are rich and all of the properties that are associated with each one of these objects are also very rich,"</i> commented Joseph. <i>"There is the beautiful structure of object-oriented APIs, the class structure, the way the hierarchy is built and the way classes are derived, the way shapes begat rectangles and polygons. There is lots of functionality built in so that just about anything, any piece of information that a PyCell designer would like to get his hands on is easily available just by querying the object."</i>
Joseph has made extensive use of this ability to query an object, both as a debug feature and as part of the PCells he builds. <i>"When you place an object, you are able to query lots of information about that object, such as layers, sizes and orientation. You can take two rectangles and create a third rectangle, the logical AND or OR of those rectangles, which you can build right into the PCell design. So you can get a lot of information just by doing operations on objects rather than having an algebraic equation to represent that information."</i>
<b>Integrated Layout Viewer and IDE</b>
Joseph identified PyCell Studio's integration of a layout viewer and IDE with the API as a significant productivity enhancement. <i>"The way the IDE is integrated with Python and the API is pretty slick. It is very easy to make code modifications throughout every file in the whole project. When you find a bug, the ability to move up and down the stack, and insert break points and watch variables is a tremendous time saver. You can also do design rule checks in real time. I would never want to do a PCell again without having an IDE available."</i>
The Ciranova API supplies smart objects such as Bar and ContactRing. Joseph added his own building blocks in order to create the specialized structures he required. <i>"First I created very basic structures, geometrical building blocks. I built those into fundamental electrical devices, like n-channel and p-channel transistors, then take the transistors and put them into higher level NAND gates, NOR gates, inverters and pass gates. I use those in things like decoders and logic nodes, and just keep building up this hierarchy. It's like climbing a mountain. You just kind of take one step after another and then when you look back down, you say, </i>'Wow. How did that happen?'<i> That's the beautiful thing about hierarchy, isn't it?"</i>
<b>Object Oriented Design</b>
At a higher level, Joseph has taken full advantage of the object-oriented capabilities of the API and Python to build the library. <i>"What Python handed to me was the ability to define objects like nets and pins and devices and have them all refer back to each other. For example, a device has associated with it a list of pins. Each pin is associated with a particular net. Each net has associated with it a list of devices. This kind of interconnectivity between objects makes it fairly easy to lay out devices in a rectangular grid and to interconnect those devices with a rectangular grid of metal lines. The object oriented nature of Python fits very naturally with the object oriented nature of device layout and interconnectivity. If I had to do that with a scripting language, I would have had to create many of these data structures myself. It would have been a mess."</i>
Now that the library project is complete, CMC has turned their attention to assembling higher level blocks. <i>"After we created these cells, our approach is to use an ASCII file which describes how these cells should be interconnected to make a full chip. For example, if we wanted to build an ALU based on these cells, we would have a text file which would describe the interconnectivity, what PyCells we need and how they should connect to one another and how they should be laid out. This building up of a full chip from a connectivity specification list was made feasible by the fact that I had PyCell Studio's object-oriented capabilities available."</i>
<b>Integration into Customer Design Flows</b>
CMC Technologies expects to debut their new class of logic circuit designs in late 2007. Upon introduction, their technology will feature the migratable library that Joseph developed using PyCell Studio. The library is fully interoperable among tools supporting the OpenAccess database. According to Ben Cooper, Co-Founder and CTO of CMC Technologies, <i>"This highly functional library built around OpenAccess will allow us to build an automated work flow based on Ciranova tools. This new work flow has the potential to enable our customers to go from basic product design to chip in much shorter time. That competitive advantage should translate positively to their bottom line."</i>
For more information about CMC Technologies, please contact Dave Brennan, Co-Founder and CEO at 949.275.2535 or via email at<a href="mailto:"</a>. For more information about Ciranova and PyCell Studio, please contact <a href="mailto:" target="_new"></a>. Joseph Karniewicz can be contacted at <a href="mailto:"></a>.
@author – can you put the usual blurb about me in here – cheers -- Max