Some significant news was announced at the Design Automation Conference June 4 - the official debut of the Unified Coverage Interoperability Standard (UCIS 1.0) by the Accellera standards organization. Accellera hosted a June 6 lunch event at which Richard Ho (right), co-chair of the UCIS Committee and research lead at D.E. Shaw Research, gave a detailed overview of UCIS and showed how it will benefit verification engineers.
The goal of UCIS is to allow interoperability of verification coverage data across different tools from multiple vendors. The standards effort was launched in 2006 with the realization that every verification tool had its own way of tracking coverage data, making it difficult to combine or compare coverage information between tools. Further, different types of tools - RTL simulation, SystemC simulation, formal verification, and emulation, for instance - produce different kinds of data, complicating efforts to get an overall view of when verification is completed.
UCIS doesn't establish a universal coverage metric, but it is built upon a standard API that will allow engineers to merge data from different tools into a unified coverage database. It also provides an XML format for the interchange of coverage data. UCIS has broad industry support, and as Ho noted verification providers including Cadence, Synopsys, Mentor Graphics and Jasper Design Automation have all contributed to the standardization effort.
Getting a Full Picture
"What design teams would like to know," Ho said, "is what has been checked, what remains to be checked, how many resources are needed, whether specialized verification techniques are needed for specific problems, and if there are tools that address these problems. You can't really know that until you have a full picture of where verification coverage is and what needs to be done."
UCIS is thus a "first step" in getting a picture "of all the different kinds of coverage that we have, many of which span different tools and different platforms and have different abstraction levels." Simulation, for example, produces code coverage and functional coverage metrics, while formal verification has its own coverage metrics, such as assertion coverage. "A lot of these coverages overlap," Ho said.
As shown below, UCIS provides a standard API for tools that produce and consume verification coverage data. The standard provides a unified way to get that information into a coverage database, as well as a way for reporting, analysis, and test plan tools to consume the information. It supports multiple heterogeneous coverage data producers and multiple heterogeneous coverage data consumers.

The UCIS API allows multiple tools to write to, and read from, a unified coverage database. Source: Accellera
Looking forward, UCIS hopes to address a number of use models. In a temporal merge model, engineers would be able to merge simulation results over time, getting a view of coverage during the course of a project. In a spatial merge model, it will be possible to get a system-level view of a number of different blocks. In a heterogeneous use model, designers will track coverage for blocks using different types of tools.
Universal Recognition
A key part of the UCIS mission is ensuring that data is "universally recognizable." According to Ho, this ensures that "a cover point in tool A is recognized as the same cover point in tool B" even if different names are used. "We want to make sure that, when you read a database, you understand what coverage they are actually referring to."
UCIS provides an information model that defines ways to represent coverage data. A highly generalized model of coverage may be stated as:
@event if (condition) counter++ The information model is not the same as the data model. Instead, the information model is brought into the data model, which holds a range of coverage information models. In this process, Ho acknowledged, some information is lost, so it's important to represent the key parts that the user cares most about.
In addition to the data model and API, UCIS provides an XML interchange format for coverage data. This enables an exchange of data between environments. Users can, for instance, dump coverage data from one environment and read it in another. XML was chosen because it's portable, well understood, and hardware and software tool independent.
There's more. UCIS includes an assertion formal status API that can save information about the status of formal verification. An additional, formal-specific UCIS API is defined for identifying formally unreachable coverage items.
As always with initial standards releases, UCIS 1.0 has some limitations. Ho mentioned the following:
- Information loss is inevitable -- data transfer to the data model is selective
- Source code is not transferred to the UCIS database
- Standard API does not automatically create interoperability
- Many metrics are modeled differently by different vendors
- High-level operations such as merging, filtering, calculating coverage scores, and test ranking are currently implemented as user applets
Ho noted that Accellera is setting up an open source repository at the Accellera UCIS web site where users can donate applets they create.
Want to know more? An Accellera video tutorial introduction to UCIS is available here. Presented by UCIS Committee co-chairs Richard Ho and Ambar Sarkar (Paradigm Works), it is sponsored by ARM, Cadence, CircuitSutra, Forte, Mentor, and Synopsys.
Richard Goering
Richard Ho photo by Joe Hupcey III
Industry Insights blog posts about DAC 2012
ARM CTO at DAC 2012: The Truth About Semiconductor Scaling
DAC 2012 Panel - Can One System Model Serve Everybody?
DAC 2012: EDA Industry Celebrates 10 Years of OpenAccess
TSMC-Cadence Collaboration Helps Clarify 3D-IC Ecosystem
Gary Smith at DAC 2012: Multi-Platform Design and the $40M System on Chip
DAC 2012 IBM Keynote: Multi-Core Performance Growth Slowing, New Approaches Needed