We have posted before about the Functional Coverage for SystemC (FC4SC) library that we developed and made available to the semiconductor industry. We are pleased to report that the Accellera Systems Initiative standards organization has accepted our donation of FC4SC for use by their SystemC Verification Working Group. Since we released FC4SC as open source, many users have adopted the library and provided feedback. We look forward to working with Accellera to evolve the library and deploy it even more widely.
AMIQ Consulting developed the FC4SC library to complement existing C++ and SystemC libraries with the coverage collection capabilities required for any modeling and verification project. Functional coverage lies at the core of semiconductor functional verification as the primary metric to assess the quality and track the progress of the entire verification process. FC4SC provides mechanisms for functional coverage definition, collection, and reporting. It can be used in any application compliant with the C++ standard, starting with C++11, including SystemC models.
The primary use for the library is to measure the level of exercise of C++/SystemC verification models or C++ applications, checking which features were tested and which parameters were used during the test runs. Verification engineers can augment an existing C++/SystemC project with functional coverage to assess the quality and diversity of test suites. With this library, SystemC/C++ projects have an accurate way to track the level of feature exercise and, therefore, the overall verification progress.
The FC4SC library is designed to interoperate with other tools and technologies, providing an application programming interface (API) that closely resembles the functional coverage definition and usage in the IEEE 1800-2017 SystemVerilog standard. The collected data is saved in the Accellera Unified Coverage Interoperability Standard (UCIS) format for future interoperability with other coverage tools. Users can generate reports showing coverage holes, partially covered coverage bins, and other coverage analysis metrics.
We felt that the industry needed better functional coverage capabilities for C++/SystemC projects and decided to make FC4SC available as open source in our GitHub repo in February 2018. We were pleased to see immediate interest, with dozens of downloads, comments, and suggestions from users. This feedback resulted in the November 2018 2.1.1 update release, which included a better coverage definition API and several other requested features. Members of the Accellera SystemC Verification Working Group were among the users contributing ideas for enhancement, so we offered to contribute the library to help with their work. In addition, we presented tutorials on FC4SC at DVCon Europe in 2018 and DVCon (US) in 2019, spurring even more interest in the industry. Then, at DVCon Europe 2019, Accellera organized an UVM-SystemC tutorial in which the FC4SC library was included as a topic of discussion.
While we can’t predict exactly how Accellera will make use of the FC4SC library in its SystemC standardization efforts, we are active members and will continue to work on it. We will also retain our open-source repository and interact with the users.
Thank you to Accellera for recognizing the unique values of FC4SC and embracing it. If you’re doing SystemC/C++ modeling, design, or verification, please try out our library and let us know what you think. Many projects have found it valuable, and we believe that you will as well.