Access Course Materials
Member Login Required
Member Login Required
Verify User Environment
Intro to OpenAccess
Using the Documentation
Fundamental Classes
Build a Library
The Tech Library
Build a Design
UU-DBU, LPP, Iterating
Special Objects in oaBlock
oaNet, oaTerm, oaPin
Instances
oaPartitions
Polygon Operators Extension
Embedded Module Hierarchy
Interrogate Design
Change a Cell Design Layout from the Shell in Ten Lines
Search a 50,000-gate design and find a net with an electromigration failure. After discuvering the failure is inside a library book, incorrectly used, we simply swap the instance for the correct library book. This is done directly from the Python shell, without even writing a script or opening a tool!
Counting FETs
Our Polygon Operators Extension to Si2 OpenAccess is also available in our Scripting Interface. This gives the user the pwoer to perform shape manipulations on our entire sets of polygons (figure sets). This demonstration logically “AND”s the poly shapes with the active shapes, producing a new set of shapes defining all FETs in a 50,000-gate design.
Next, we logically “AND” the FET shapes with the Nwell shapes to get the P-channel FETs. Finally, we use the Count and Area methods to obtain exact counts and area for both P-channel and N-channel FETs.
Two Tool Interoperability
Si2 OpenAccess is known for enabling tool interoperability. This demonstration shows an additional kind of interoperability between design tools.
The shell provides a common ground to run Ngspice from the same script where we build the layout, schematic, and symbol for the design simulated in successive runs of the Ngspice simulator.
We ultimately produce a symmetric inverter design for a library from a python script, on the fly.
Wiggleroom
Digital designs often require “emergency” changes to make just a little more room. This demonstration writes a script to locate a particular cell and its neighboring cells.
Next, we look through the list of neighboring cells, find the closest neighbors, and calculate the number of adjacent placement grids available as filler cells. Whether you call it wiggleroom, a shoe-horn, or just a squeeze it in, it happens all the time.
Here, we use the power of the Polygon Operators Extension to expedite our search, using figure sets detected as touching a resized version of our selected cell.
Low Pass Filter
Building a Low Pass Filter can be tedious. As stages are added, the filter frequency is reduced, so each stage is desighed to a higher target. If the target is too high, another pass is needed.
The RC Product define sthe 3db frequency, but that must be planned at minumum C to reduce the final physical design size. Thius demonstration uses a script to bould our library stage, then another script to combine them into a final design.
Build a Simple Inverter
This demonstration steps through writing a script to build a simple inverter, in Python. This should provide the fundamental method for scripting any circuit.
oaxPop 2.0 Connectivity
Give your application the ability to determine which physical shapes are electrically connected without a netlist. This addition to the Polygon Operators Extension lets you extract connectivity directly from the Physical Design. The application defines the layers used, including consideration of diffusion layers, as well as: