Automatic Placement For Custom Layout in Virtuoso Layout Suite GXL
Automatic Placement For Custom Layout in Virtuoso Layout Suite GXL
Automatic Placement For Custom Layout in Virtuoso Layout Suite GXL
INTRODUCTION
The Cadence Virtuoso custom design platform is well known throughout the industry as the long-
standing de facto standard for custom design. The vast majority of users create layout with the
platform at the purely manual shape-based editing level (Virtuoso Layout Suite L), or the assisted
connectivity-based editing level (Virtuoso Layout Suite XL). However, Virtuoso Layout Suite XL and
GXL products also offer many assisted and automatic capabilities. In this paper we consider the
placement1 capabilities of these products. First, we define the addressed design space and a
common set of terminology for placement in the custom design platform. Then we will describe in
detail the capabilities of three of the automatic placement tools: the Analog Placer, the Custom
Digital Placer, and the Floorplanning Block Placer.
COMMON TERMINOLOGY
We begin by defining the design space served by the Virtuoso platform. A wide variety of designs
in a wide variety of technologies are created using the platform. One usable definition of the
design space is all designs done on chips, rather than on PCBs or with discrete components, which
are not created using big digital synthesis/placement/routing tools such as the Cadence Encounter®2
platform. This can encompass design areas as varied as MEMS3 on GaAs substrate to an RF design
on SiGe to common analog designs in a typical CMOS process. For the purpose of defining the
primary design space focus of custom design we will concentrate on three basic areas: Analog
Design, Custom Digital Design, and Chip-level assembly of mixed-signal designs. For the purpose
of this paper, we will refer to these areas as the custom design space. Although there are many
other types of designs implemented by users with the Virtuoso platform, these areas comprise the
majority of our users.
Now we turn to the definition of placement in the custom design space. At the most basic level
(Virtuoso Layout Suite L), placement means the user creating individual polygons on particular
layers which are arranged to create transistors, resistors, capacitors, routing and pins. There
certainly are designs and designers for whom this is the lowest cost path to the highest
performance layout. But given the continuous need for higher productivity, and more designs in
the custom space, for most users it makes sense to move to a slightly higher level of abstraction,
which is referred to as a connectivity-driven design flow. Virtuoso Layout Suite XL—which is
typically used in the Analog Design flow—provides the capabilities for this connectivity-driven
design flow. In this flow, devices such as transistors, resistors, capacitors, etc. are represented by
Parameterized Cells (Pcells) specified in the technology library. Pins are defined programmatically in
the tool, and routing connectivity is automatically determined from a connectivity source such as a
netlist or schematic. This then simplifies the placement problem to finding a coordinate/transform
(X, Y, orientation) for each Pcell and Pin, and optionally creating other associated geometry to
allow proper functioning of those instances, such as guard rings or well geometry. The routing step
then completes the layout by creating vias and path segments such that all necessary connectivity
is completed. This flow contrasts with the Cadence Encounter design space primarily in the level of
layout building-block abstraction applied to the problem. In those “big digital” designs, placement
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 2
typically refers to assigning final transformation to standard cells or macro/IP abstracts on the chip’s
surface. Utilizing this level of abstraction also allows many of the details of chip-level
implementation (wells, guard rings, flexible cell size and pin locations) to be avoided in big digital
design, leading to correspondingly higher capacity. All of these detailed implementation
complexities are decided during the standard cell design phase, which is typically done in the
Virtuoso platform, falling into the custom design category. In addition the Virtuoso platform can
cater to mixed-signal design space at chip and block level with medium-sized designs for the chip-
level assembly flow. The basic flow of design can also be repeated at a number of levels of
hierarchy to incrementally build the whole chip from the top down. Various flows like Analog on
Top (AOT) have been developed specifically to generate and place hierarchical layouts in the
custom design space as compared to a big flat abstract design methodology of the Cadence
Encounter platform.
From the discussion above, we see the common characteristics of placement in the custom design
space as: device-level rather than gate/cell level, and detail-geometric-oriented rather than
abstracted. Due to the wide variety of user preference on the fully manual to automated
continuum we find a variety of different types of placement tasks. Within the Virtuoso platform,
we refer to three basic types of placement tasks: Initial, Assisted Sub-block, and Automatic.
INITIAL PLACEMENT
In a connectivity-driven design flow, the connectivity, pins and many of the parameters controlling
the creation of the instances have been specified on the netlist or schematic, typically for
simulation purposes as well as driving layout. Utilizing this information, Virtuoso Layout Suite XL
provides the user with initial placement capabilities as an alternative to complete manual creation
of instances and pins. The most commonly used is known as Generate from Source (GFS)4 as it
creates all of the instances and pins from the connectivity source. They are placed in a somewhat
arbitrary manner, but are then available on the layout canvas to be interactively placed by the user.
Users can make use of the re-initialize engine5 to do an initial segregated placement based on cell
type of instances. It places IOs on top, Macros on the left, Standard cells on the right and Custom
layouts at the bottom of the design boundary; this gives the user a better idea of the types of
blocks and their number, which helps in choosing available placement options. Many users also
want the option to have that initial placement roughly follow the placement of the symbols in the
schematic. This feature is typically known as Place as Schematic (PAS)6, and is available as an option
to GFS or as a separate command. In addition, if the user is not interested in having all instances
created in a batch manner, the Pick from Schematic (PFS)7 command allows the user to interactively
select instances from the schematic and create them at targeted locations in the layout. GFS, PAS
and PFS provide utilities for users to assist their interactive layout process; they provide little
automation for the full placement process.
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 3
editing, and interactive device abutment. All of these tools allow the layout designer to continue
the practice of custom and interactive design of the layout, while at the same time accelerating
their activities and enforcing design rules, constraints, and correct abutment more automatically.
AUTOMATIC PLACEMENT
Finally we reach the full automatic placement tools. These perform fully automatic placement on all
of the instances and pins in our current design. The results produced may not be the 100%
complete layout, but it takes the designer to the 80% solution with much greater productivity than
the manual/assisted design flow. In the following section we will look in detail at the capabilities
for each of these automatic placement features for Virtuoso Layout Suite GXL: Analog Placement,
Custom Digital Placement, and Floorplanning Block Placement.
ANALOG PLACEMENT12
The Analog Placer is designed primarily to address analog circuits with sizes of 10 – 200 placeable
instances. These placeable instances may map one-to-one with the actual transistors in the design,
or groups of instances may be built into sub-blocks using the techniques discussed in 2.2. It
performs flat transistor-level placement, primarily driven by constraints such as Symmetry,
Alignment, Clusters, and Matching and connectivity to minimize wire length. It has the capability
to automatically create well and guard ring geometry around appropriate groups of instances. The
primary goal of the Analog Placer is to obey all specified constraints, then optimize for area and
wirelength.
Three analog design flows that use the Analog Placer most successfully are Basic Analog
Placement, Analog Placement for Chip Planning and Rapid Analog Prototyping.
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 4
Figure 2. Standard Cell Placement
Basic Analog Placement uses the Analog Placer to create the 80% complete layout for typical
analog circuits like Cascode OpAmps, Comparators and the like. In this type of flow the circuit
designer or layout designer may spend slightly more time creating and tuning constraints on the
design, to get the best placement. This has the benefit of capturing this knowledge of the critical
constraints (characteristics) of the layout design to be re-used in the future. An example design
that has utilized the Analog Placer for the layout can be seen in Figure 1. This design took 9.1
seconds for placement on a Linux machine with an Intel Core™ CPU running at 2.13 GHz.
Next, looking at the Analog Placement for Chip Planning flow, Cadence has users who are
successfully employing the Analog Placer as an ‘area-estimate’ tool. In this flow, the designer uses
the Circuit Prospector11 to automatically create reasonable constraints and then runs the Analog
Placer in a scripted fashion, and collects results on the typical area, aspect ratio and pin locations
and uses those for the top-down floorplanning flow. These placements can then either be used as
a starting point, or only used to create the template (PRBoundary and Pin Positions) used by the
layout engineer.
And lastly we have our Rapid Analog Prototyping flow. In this case our circuit designers want
early feedback on device and wiring parasitics without doing detailed layout design. So they
might use the Analog Placer as part of an automated flow to do automatic placement and
routing, and extract parasitics and then re-simulate their design with these parasitics in place.
Here the process of adding constraints, especially such as Modgen constraints, can greatly aid the
process, as it will ensure that the important parasitics are consistent between the prototype
layout and the final layout.
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 5
Figure 3. Transistor Level Placement
The placement of standard cells includes an option to perform row compaction and has an
internal global routing estimate, which minimizes area and wirelength. Additionally it has the
capability to create filler cells to complete power and ground paths by filling spaces and also
create standard cell substrate contacts.
The Custom Digital Placer can also be used to place transistor-level devices for the creation of
standard cells and macro cells. In this mode, the placer can perform abutment of components to
maximize device sharing by forming chains of abutted components, which minimizes area and
wirelength. For smaller standard cells the XL chaining command may produce better results.
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 6
Figure 4. Floorplanning Block Placer
together; this reduces the net length and improves the efficiency of the final layout. Users give
additional costs like no overlaps—within boundary, net criticality, etc.—to further fine-tune the
results.
The block placement technology is well integrated with the Virtuoso Space-based Global Router15
and can use the congestion data generated by it to improve placement results incrementally.
The front end constraints provided by the schematic designer—like alignment, boundary area,
distance between noisy digital and victim analog blocks and clustering—are respected faithfully
by the block placer, which is well integrated with the Constraint Infrastructure16 used for
visualization, transfer and modification of constraints.
The custom design user utilizes the block placer because it understands the mixed-signal design
space: e.g., the features of snapping origin and soft edges to manufacturing grid, automatic soft
block re-size, and rectilinear blocks support to optimize space. It can place digital and analog
macro layouts with equal ease to generate data that is hierarchical and perfectly interoperable
with the Encounter platform. This complements the Encounter platform solution, which is used to
place millions of same-sized, rectangular standard cell abstracts. So for a medium-sized mixed-
signal design with irregular space availability, a low-cost path to place blocks is available, and is
popular with many users for Analog on Top and Mixed-Signal on Top design flows.
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 7
CONCLUSION
A common terminology for types of placement technology in the custom design space has been
presented and defined, among the areas of initial placement, assisted sub-block placement, and
automatic placement. This common vocabulary for types of placement will aid in our discussion
inside Cadence and with users. The current state of Virtuoso Layout Suite GXL Automatic
Placement capabilities was also presented in Section 3. Clear understanding of these capabilities
will assist in mapping the areas to promote adoption of automatic placement. It also gives us a
common starting point for identifying areas of focus for future innovation and improvement. The
descriptions of the automatic placement tools and flows presented in this paper helps our whole
community better understand the capabilities and potential of the Virtuoso Layout Suite products.
REFERENCES
1. "Placement (EDA)." Wikipedia, The Free Encyclopedia. 2 Sep 2008, 18:50 UTC. 26 Jan 2009
http://en.wikipedia.org/w/index.php?title=Placement_(EDA)andoldid=235867041
2. Cadence Design Systems, Inc, Encounter User Guide, Product Version 8.1, Chapter 15 Placing
the Design. http://sourcelink.cadence.com/docs/files/Release_Info/Docs/soceUG/soceUG8.1/
placement.html#12532294
4. Cadence Design Systems, Inc, Virtuoso Layout Suite XL User Guide, Product Version 6.1.3,
Chapter 6 Generating a Layout, Generating All Components from Source. http://sourcelink.
cadence.com/docs/files/Release_Info/Docs/vxlhelp/vxlhelp6.1.3/chap6.html#1034258
5. Cadence Design Systems, Inc, Virtuoso Floorplanner User Guide, Product Version 6.1.3,
Chapter 1 Floorplanner Commands, Reinitializing the Design. http://sourcelink.cadence.com/
docs/files/Release_Info/Docs/fphelp/fphelp6.1.3/chap1.html#1064093
6. Cadence Design Systems, Inc, Virtuoso Layout Suite XL User Guide, Product Version 6.1.3,
Chapter 7 Editing the Layout, Moving Generated Components into the Design Boundary.
http://sourcelink.cadence.com/docs/files/Release_Info/Docs/vxlhelp/vxlhelp6.1.3/chap7.
html#1048484
7. Cadence Design Systems, Inc, Virtuoso Layout Suite XL User Guide, Product Version 6.1.3,
Chapter 6 Generating a Layout, Generating Selected Components from Source.
http://sourcelink.cadence.com/docs/files/Release_Info/Docs/vxlhelp/vxlhelp6.1.3/chap6.
html#1050748
8. Cadence Design Systems, Inc, Virtuoso Layout Suite XL User Guide, Product Version 6.1.3,
Chapter 5 Device Abutment, Chaining Transistors Interactively. http://sourcelink.cadence.com/
docs/files/Release_Info/Docs/vxlhelp/vxlhelp6.1.3/chap5.html#1038419
9. Cadence Design Systems, Inc, Virtuoso Layout Suite XL User Guide, Product Version 6.1.3,
Chapter 6. Generating a Layout, Generating Synchronous Clones. http://sourcelink.cadence.
com/docs/files/Release_Info/Docs/vxlhelp/vxlhelp6.1.3/chap6.html#1054759
10. Cadence Design Systems, Inc, Virtuoso Analog Placement User Guide, Product Version 6.1.3,
Chapter 3 Working with Module Generators. http://sourcelink.cadence.com/docs/files/
Release_Info/Docs/anaPlaceGXL/anaPlaceGXL6.1.3/modgens.html
11. Cadence Design Systems, Inc, Virtuoso Unified Custom Constraints User Guide, Product
Version 6.1.3, Chapter 2 The Circuit Prospector Assistant. http://sourcelink.cadence.com/docs/
files/Release_Info/Docs/constraints/constraints6.1.3/chap2.html
www.cadence.com AUTOMATIC PLACEMENT FOR CUSTOM LAYOUT IN VIR TUOSO LAYOUT SUITE GXL 8
12. Cadence Design Systems, Inc, Virtuoso Analog Placement User Guide, Product Version 6.1.3,
Chapter 4 Creating an Analog Placement. http://sourcelink.cadence.com/docs/files/Release_
Info/Docs/anaPlaceGXL/anaPlaceGXL6.1.3/autoplace.html#1035250
13. Cadence Design Systems, Inc, Virtuoso Custom Placer User Guide, Product Version 6.1.3.
http://sourcelink.cadence.com/docs/files/Release_Info/Docs/vcphelp/vcphelp6.1.3/vcphelpTOC.
html
14. Cadence Design Systems, Inc, Virtuoso Floorplanner User Guide, Product Version 6.1.3,
Chapter 1 Floorplan Commands, Placing Blocks. http://sourcelink.cadence.com/docs/files/
Release_Info/Docs/fphelp/fphelp6.1.3/chap1.html#1058663
15. Cadence Design Systems, Inc, Virtuoso Space-based Router User Guide, Product Version
6.1.3, Chapter 1 Getting Started with the Space-based Router. http://sourcelink.cadence.com/
docs/files/Release_Info/Docs/autouser/autouser6.1.3/start.html
16. Cadence Design Systems, Inc, Virtuoso Unified Custom Constraints User Guide, Produce
Version 6.1.3, Chapter 1 The Constraint Manager Assistant. http://sourcelink.cadence.com/
docs/files/Release_Info/Docs/constraints/constraints6.1.3/chap1.html
© 2009 Cadence Design Systems, Inc. All rights reserved. Cadence, the Cadence logo, Encounter, and Virtuoso are either trademarks or registered trademarks of
Cadence Design Systems, Inc. in the United States and/or other jurisdictions. All others are properties of their respective holders.
20933 07/09 KM/MVC/DM/PDF