Customization can be a big help. Chip design teams use many different EDA tools during product development to design, simulate, verify, and tapeout today’s advanced ICs. Different EDA suppliers specialize in different parts of the design flow, using a variety of commands and use models. Design engineers often face usability challenges when adding tools to their flows, or when they encounter tools they use infrequently. Simple changes to default design colors, shortcut key-bindings, or the overall look and feel of the tool can result in frustration and accumulating lapses in productivity.
These differences can be especially challenging near the end of the design cycle when engineers are running signoff verification and design optimization tasks in the face of rapidly approaching tapeout deadlines. Even after chips are manufactured, engineers may still need to review and edit layouts to debug any discrepancies between real-world functionality and their simulation results.
When tool sets don’t look or operate like each other, it can take a significant amount of time for engineers to learn or remember how to use them effectively so they can quickly and accurately reconcile discrepancies or conflicts.
When engineers can customize layout tools for their existing preferences, productivity improves. They can quickly set up or initiate tasks without wasting time figuring out the tool operation. Better yet, customization enables engineers to extend tools to implement new functionality that automates otherwise tedious, error-prone tasks not only improves productivity, but frees up valuable resources for more value-added activities.
While all this sounds good, designers cannot spend all their time configuring the perfect layout or verification tool. In addition, if design and verification teams are to work together effectively, there must be at least some level of tool standardization and uniformity across individuals, teams, and organizations. This is why computer-aided design (CAD) teams typically develop standardized flows and environment. These will be based on company guidelines and each team’s unique requirements, and enable design and verification teams to work together effectively. It is important for EDA tools to support such standardization and configuration across multiple IC design companies, design teams, and individual designers.
As an example, a layout viewer like the Calibre DESIGNrev interface from Siemens EDA gives design engineers the flexibility and control to perform chip finishing work more efficiently while still ensuring compliance with standardized guidelines. Designers can customize the interface to suit their individual preferences and still be confident they are complying with all team and organizational requirements. When loading a database into the viewer, designers may be allowed to set a custom search path as an individual preference, but they cannot, for example, modify data integrity by disabling property preservation. Full scripting access to tool functionality even allows designers to build additional functionality tailored to their unique requirements.
Of course, once any additional functionality is built, designers can share their custom environments with each other, and CAD teams can deploy them across a project or target technology node, increasing productivity by reducing the time needed to complete certain tasks.
What can be configured?
Designers often do not know where or how to begin configuring their EDA tools, or the extent to which customization is available to configure the environments. Even the most experienced may not know how to configure new tools introduced into the design flow by the CAD team. Allowing designers to build and save their tool preferences in a disk-based configuration directory, like the Calibre DESIGNrev interface does, simplifies the process and creates a centralized location containing these tool preferences, default layer properties, layout preferences, or other keyboard shortcuts:
- Tool preferences allow designers to save any options set in the interface, such as grid sizing, ruler snapping, and overall tool appearance. Designers typically choose these options based on what best suits a particular task or personal preferences.
- Layer properties control the default behavior of an IC layout’s layers: layer names, colors, fill patterns, and connectivity. Layer names and connectivity are typically tied to a particular foundry process node, and layer colors and fill patterns are typically chosen to be consistent with other design tools. Because these factors do not change throughout the course of a project, they are usually standardized across the entire design team.
- Keyboard shortcuts allow designers to choose their own custom options. These are usually based on personal preference, although they may be standardized to be consistent with other layout and design tools.
- Reader preferences control how any non-standard objects in a layout are handled by the tool. Because the processing must be consistent with both the settings used for running physical and circuit verification, and the settings the foundry allows, this option is also typically standardized across the design team to ensure everyone is working with the same constraints.
What can be added?
Even the best layout tools do not cover every detail of every design flow. Enabling designers to build their own functionality allows both individuals and teams to implement their unique needs and preferences without requiring CAD support.
The Calibre DESIGNrev interface provides full scripting access to its API and all layout data using a standard Tcl/Tk programming language interface, enabling any level of customization. This custom functionality can be invoked on the command line or added to the interface itself for easier invocation.
Although user-defined scripts are usually run in standalone mode on the command line, many designers also store their customization in a personal configuration directory so they are available during every layout viewer session. Saved Tcl procedures can be sourced automatically whenever the layout viewer launches, or after the Tk packages are loaded, to define custom procedures added to the interface. The possibilities for customization are almost endless. A simple wrapper can be used with common functionality to make it easier for designers to run designated tasks.
Because this custom code can be shared, it is easy for design teams to use it to standardize their operations. For instance, a custom script can ensure that layouts are created a certain way based on the design team’s unique requirements, or that report files are formatted to meet a team’s specific reporting priorities and requirements.
How do I share customization?
While endless customization is great in theory, it actually becomes counterproductive to collaboration if everyone customizes a tool. Time will be wasted confirming what someone else’s settings are before various colleagues will be able to work together on a particular task. By default, configuration files are stored in each designer’s home directory. After defining a custom set of preferences and defaults in their individual configuration directories, designers could copy their personal directory and provide it to other engineers, but that is potentially error-prone. Other designers might modify files that they should not, creating inconsistencies for processes that must be standardized across teams.
As a result, design teams typically settle on common customization options. As the safer alternative, many CAD teams keep one common copy of the configuration directory and have design engineers simply point to that. Layout viewers that support a customizable set of preferences make it easy to deploy these common options across a team, project, or organization by setting up a multi-level configuration.
Returning to the example of the Calibre DESIGNrev interface, this kind of multi-level configuration is established by setting an environment variable containing a prioritized list of directories that are automatically sourced. The order of the directories allows CAD teams to manage several different types of environments. So, the CAD team may set recommended defaults that differ from the EDA tool’s defaults. However, they may allow design engineers to set their own defaults to override the CAD team’s settings. By simply reversing the order of the directories, the CAD team can prevent designers from overriding the CAD team’s settings. For even more flexibility, CAD teams can enforce an environment variable to require certain settings, while allowing others to be overridden.
At the other end of the spectrum, design teams who find it beneficial to fully manage users’ environment can exclude individual home directories altogether, thereby forcing use of the common configuration. CAD teams can also use the environment variable to make it easier to manage multiple configuration directories that apply to various levels of their organizations.
For instance, both analog and digital design teams may need to share certain settings, but each may have other unique settings. In this case, the CAD team can set up the environment variable to allow different subsets of the defaults to apply to different groups. These levels of flexibility and control allow companies to deploy custom environments across a variety of organizational models, catering to the specific design processes and methodologies of their teams while ensuring that all organizational requirements are enforced.
Customization made easy
EDA tools must support a variety of different IC design and verification flows with different needs and requirements. However, manually customizing individual tools to meet those unique requirements and extending their functionality to offer otherwise unsupported capabilities is a time-consuming task requiring constant maintenance and significant time and resources.
Providing an ability to quickly and easily create custom environments that are readily deployable and maintainable ensures that designers and teams have access to configurations that best align with their organizational requirements and respect their personal preferences. Creating custom layout viewing environments allows designers to focus on the task at hand, rather than spending unproductive time setting up or learning to use a layout tool.
This flexibility and increased productivity ultimately ensure compliance with specific organizational requirements and also result in faster turnaround times and time to market.
To learn more about how the Calibre toolsuite enables customized layout environments, read or download a copy of our technical paper, A custom layout environment improves productivity across IC design and verification flows.