Get email delivery of the Cadence blog featured here
If row-based placement is a topic that interests you, you might have read our post from the last week. If you haven’t read it yet, I’d highly recommend it for its focus on the need and benefits of row-based layouts at advanced nodes. For a recap, here’s what the post revolves around.
We saw the need for row-based layouts at advanced nodes to:
Address the increasingly complex density rules
Deal with an exponentially increasing DRC rule count
Achieve uniformity in layout styles across various teams
Reduce the learning curve for new engineers
Now that we've talked about why row-based placement, I'll turn my attention to how it's done in Virtuoso.
At advanced nodes, Virtuoso provides the capability to define reusable row templates. You can use these templates to generate row regions with uniform (or non-uniform) rows in the layout design. You can then place all the supported devices in these rows. The diagram below summarizes the tasks involved:
Let's now talk about the individual tasks.
The Row Template Manager provides the capability to define row templates. You can create row templates specific to your design style and then use these templates to generate rows in the layout canvas. Typically, the layout engineers do not define layout templates. Instead, a key engineer, who drives the methodology, defines the row templates.
What's a row template?
A row template specifies directives about how a layout would appear and how devices must be placed in rows. A row template includes information about the:
Now that you have your row template in place, use the Placement Planning form to create a row region object in the layout canvas. The row region can be drawn in the entire PR boundary or in a specific part of the PR boundary to allow multiple row regions within a single PR boundary. While the row template determines how rows must be created in the region, a row region contains repetitions of the row template based on the height of the row region or as per the user specifications. Row attributes determine the types of instances that can be placed in each row and the manner in which they must be placed.
The next step is to use the automatic and assisted placement options to place all devices, Modgens, and standard cells in these rows. Choose a suitable mode:
Tip: Depending on the complexity of your design and placement needs, you can choose to do a complete assisted placement or use the assisted placement options to refine the placement after running the Virtuoso Placer.
After placement, the next task is to ensure design correctness and conformance with advanced node layout constraints. To do this, insert dummy fill in the empty spaces within the rows. Depending on your design type, different types of fill flows are supported:
Finally, use the Batch Checker to verify whether the placement is in accordance with the predefined placement constraints.
For more information on Cadence circuit design products and services, visit www.cadence.com.
Virtuosity has been our most viewed and admired blog series for a long time that has brought to fore some lesser known, yet very useful software and documentation improvements, and also shed light on some exciting new offerings in Virtuoso. We are now expanding the scope of this series by broadcasting the voice of different bloggers and experts, who would continue to preserve the legacy of Virtuosity, and try to give new dimensions to it by covering topics across the length and breadth of Virtuoso, and a lot more… Click Subscribe to visit the Subscription box at the top of the page in which you can submit your email address to receive notifications about our latest Virtuosity posts.