The best way to complete a complex task is to break it into smaller, simpler tasks.
This is exactly what Symbolic Placement of Devices, popularly known as SPD, does for layout engineers. SPD is a symbolic row-based placer. Designed primarily for small to medium-sized designs, SPD displays only the relevant information needed to perform device placement. Using SPD layout, engineers can easily edit device placement, preview the updated designs, and finally, generate the layout.
Why Do I Need a Tool Like SPD?
The design rules for real devices are constantly increasing. As a result, the amount of computation needed to perform any task, starting from Pcell evaluation right through to device placement, has also increased by many times.
Several applications perform complicated post-processing tasks to get a DRC error-free design. SPD helps you avoid most of these additional tasks and heavy computation during editing. Complexity comes into picture only when you preview the design. This is when the tool converts symbolic devices to real devices.
Row-based Placement
The prime focus of SPD is to improve productivity of layout designers by facilitating quick and easy placement of PMOS and NMOS devices. By default, the symbolic layout arranges devices in an NP row pattern. The top row (P row) of the design, represented in red, contains the PMOS devices and the bottom row (N row), represented in green, contains the NMOS devices. SPD supports several row patterns that you can use to optimize your design.
The Benefits
Among the several benefits of SPD, the top three are:
- Symbolic - Symbolically represented devices, with neatly drawn orthogonal flight lines, minus any complex data, are easy to understand. Editing placement of these devices is a lot simpler than real devices.
- Simplicity - The simple use model of the SPD commands enables device placement in just a few mouse clicks
- Speed - Editing in SPD is much faster than editing real devices on the main layout canvas
Getting Started with SPD
To get you started with SPD and help you learn more about the tool, we have created a few videos to demonstrate its various features:
- Getting Started with Symbolic Placement of Devices
- Performing Multirow Placement in SPD
- Creating Signal Trunks in SPD for Pin-to-Trunk Routing
- Using User-Defined Abutment and Callback Functions in SPD
Click the video link now OR visit Cadence Online Support and search under Resources — Video Library for the video title.
Note: Cadence Help supports native playback of videos (mp4) added to the installed Virtuoso Documentation Library. Look under Video Demos for a video topic of your interest.
Getting Started with Symbolic Placement of Devices
This video demonstrates the complete SPD flow. It also shows how to use some of the main commands, such as smart move, abut, and generating chained devices.
Performing Multi-row Placement in SPD
SPD supports several row patterns, such as NP, PN, NPPN, PNNP, NPNP, PNPN, NNPP, PPNN, NNNP, PNNN, NPPP, PPPN, NNNN, and PPPP. The video shows how using multiple row patterns in SPD helps in optimizing a design.
Creating Signal Trunks in SPD for Pin-to-Trunk Routing
Flight lines in the symbolic design can be converted to signal trunks. These trunks can be directly used for pin-to-trunk routing in layout. The combined flow can provide up to 10X productivity gain. Check out the video to see how to create signal trunks in SPD and then use them for pin-to-trunk routing in Virtuoso Layout Suite XL.
Using User-Defined Abutment and Callback Functions
In advanced node designs, to perform PDK-specific abutments, such as dummy poly abutment, you might need to define your own custom abutment callback functions. You can enable user-defined abutment in SPD by loading the callback functions and registering them before launching SPD. Otherwise, only the default oxide diffusion abutment will take place.
SPD also supports the user flow callback functions that further help in customizing the design in specific steps of the SPD flow. Although particularly useful at advanced nodes, the user flow callback functions are also supported in mature node versions.
The video demonstrates the SPD flow when you have defined the user-defined abutment and user flow callback functions.
Related Resources
- Virtuoso Symbolic Placement of Devices User Guide
- Virtuoso Layout Suite SKILL Reference
- Rapid Adoption Kit
Note: For more information on Cadence products and services, visit www.cadence.com.
What's Next
Virtuoso Video Diary will next bring to you a video on the Net Class Group and Net Class Hier Group constraint types that are available in the Constraint Manager assistant. You can use these constraint types to group multiple routing-related constraint types. The Net Class Hier Group constraint type also allows you to define spacing between each member. The related video demonstrates the process of using these constraints types. Stay tuned…
About Virtuoso Video Diary
Virtuoso Video Diary is an online journal that relays information about Virtuoso videos that are available in the Cadence Online Support Video Library. For IC6.1.7 and ICADV12.2, over 100 videos on a wide variety of new and exciting Virtuoso features have already been created. Virtuoso Video Diary brings you direct links to these videos and other related material, on regular basis, in your mailbox. Subscribe to receive the e-mail notifications.