Never miss a story from Analog/Custom Design. Subscribe for in-depth analysis and articles.
Our new AI-powered custom design solution, Virtuoso Studio, leverages our 30 years of industry knowledge and leadership providing innovative features, reimagined infrastructure for unrivalled productivity, and new levels of integration that stretch beyond classic design boundaries. In this blog series, learn how the best analog design tools just got better to help you keep pace with your challenging design issues.
By Girish Vaidyanathan, Sr. Product Manager, Virtuoso Studio, Cadence
Partitioning and grouping similar things helps humans to break down a big problem to comprehend it more easily. Using naming conventions for tagging the groups facilitates easy access to required information through a catalog. Electronic circuit designers have extended this idea into the way they manage our design data.
The partitioning of a big subsystem into blocks based on their function serves the same purpose. The circuit designer does the partitioning on the logical view of the design. Partitioning again within each block leads to the concept of a design hierarchy, which has been prevalent since the early days of electronic circuit and system design. Designers utilized the hierarchy to their benefit by identifying repeated elements and grouping them into small sub-blocks so that the sub-block only needs to be built once and can be reused many times.
When designs were fully manual, design hierarchies were used as much as possible to increase the amount of reuse. However, as the digital systems became bigger and tools became smarter to optimize the design and its implementation, design hierarchies held their relevance only at the RTL level, where users manually construct and comprehend the design during debugging.
Hierarchies stopped becoming crucial in layouts as:
Has the time come to take a similar approach in custom design?
Custom blocks have not grown to a similar extent as their digital cousins, but the tools to implement them certainly have become smarter over the past three decades. Advanced process nodes restrict the freedom of choices and increase the complexity of design rules, paving the way to grid-based and row-based layout methodologies. Faster custom layout creation is enabled by automatically snapping instances and wires to grids. The automatic filling of empty spaces has become feasible on a row-based layout structure, thereby solving density rules compliance even for device-level layouts.
Gridded layout methodology has also simplified the automatic placement and routing (P&R) problem. Automatic P&R produces excellent results as the layout becomes more structured and routing happens on tracks. Today, it is feasible to create tapeout-quality, DRC-correct, matched, and symmetric analog and custom digital layouts completely through constraint-driven automation. Layout designers make decisions about the appropriate physical constraints that drive the tools. The automatic P&R flow in Cadence Virtuoso Studio integrates the various individual features and engines into a seamless customizable flow to meet the layout creation of different design styles.As the tools can recreate the layout using constraints, partitioning the layout to reuse tiny sub-cells is no longer necessary. Nevertheless, it still takes many custom layout designers to inspect the result from automation, debug it if something fails, and create or update the constraints to rerun the automation.
Like other databases in the past, OpenAccess maintains the restriction that one design is stored as one file on the disk and can be edited by only one person at a time. The file is locked by the first person who opens it in the layout editor. Hence, even though a large custom layout can be implemented flat by automation tools, reviewing and modifying it by multiple users poses a challenge.
The concurrent layout editing functionality in the Virtuoso Layout Suite, part of Virtuoso Studio, solves the problem elegantly. A layout can be partitioned into many pieces by the block owner and assigned to different users. Users can open and edit their partitions without disrupting others’ work. They can review other partitions and bring in their changes as needed. The block owner can review the changes added by other users on their corresponding partitions and integrate the changes to the original layout. The block owner can also discard some edits and inform the partition owner about the challenges in accepting them.
Though a layout hierarchy is unnecessary, partitioning still holds its significance. In custom layout, some parts of the circuits need to be carefully protected from others. And some parts need to be kept together for better matching. Because circuit designers manually create the logical representation of the design as a schematic or netlist, design hierarchies cannot be avoided. However, there may be better ways to implement them in the layout than grouping elements into a logical hierarchy. When the layout is done manually, the designer doesn’t care about matching the logical hierarchy with the physical hierarchy. Instead, they create their design hierarchy in the layout and rely on layout versus schematic (LVS) to ensure that the two match. In fact, the LVS tool’s importance in the circuit design flow has remained strong due to this mismatched logical and physical hierarchy.
In an ideal world where logical and physical design hierarchies are perfectly matched, users can rely on schematic-driven layout checks in the Virtuoso Layout Suite to ensure that the design remains LVS correct all the time.
What is the right solution to this problem?
The virtual hierarchy concept in the Virtuoso Layout Suite allows the layout designer to create a grouping of elements in the layout differently than the schematic but still maintain the SDL correspondence. With virtual hierarchy, the layout designer can partition the design and create groups and sub-groups to separate the layout that need to be isolated. From an OpenAccess database point of view, the layout is still flat, as there is only one layout cellview. The virtual hierarchy helps the automation tools in the layout implementation process.
With virtual hierarchy, layout designers are empowered to choose a design hierarchy different from the logical design hierarchy. The layout can be partitioned in a way that guides the automation to construct the layout as needed. Retaining the layout as a single cellview ensures SDL correspondence, guaranteeing LVS correctness. As users don’t over-partition the layout, the automatic P&R tools have more freedom to generate an optimized layout that meets all the constraints set by the user. Row-based methodology improves the quality of results and the tool runtime.
Concurrent layout editing resolves the layout review, debug, and edit problem as multiple users can concurrently be assigned to work on different portions of the same layout. The block owner can assign junior members of the team to review the layout and suggest changes. Eventually, the block owner can assimilate the work done by various users into the original layout without any hassle.
Learn more about Virtuoso Studio and the Virtuoso Layout Suite.