Get email delivery of the Cadence blog featured here
In our last blog post, we reviewed some of the activities at the recent Design and Verification Conference and Exhibition (DVCon) in San Jose. Portable stimulus was clearly one of the hot topics at the event, with a tightly packed room for the "Creating Portable Stimulus Models with the Upcoming Accellera Standard" tutorial, featuring members of the Accellera Portable Stimulus Working Group (PSWG).
This tutorial was a very important milestone for the PSWG. At past shows the group has presented its plans, examples of the use cases that the upcoming standard must verify, and some aspects of the standard in rather broad strokes. This year's DVCon was different: the PSWG has made enough progress on the syntax and semantics to show actual code snippets for many portions of portable stimulus models. The portable stimulus and test specification (PSS) standard is not released yet, and some changes are possible, but the key decisions have been made and the final languages are likely to look very much like the code shown at the tutorial.
Yes, we said "languages" because the PSS standard will support two input formats. There were lots of questions about this at the DVCon panels, but in truth the decision was based on practical considerations and not technical ones. The standard is chartered to cover a wide range of users, from architects to IP developers to SoC verification engineers to post-silicon validation teams. Some of these users deal mostly with SystemVerilog; others deal only with C/C++ and have no knowledge of verification languages. To satisfy this broad range, the PSWG is defining a domain-specific language (DSL) as well as a C++ option. The semantics of the two input formats will match so that users on the same project can mix models and so that vendors can provide seamless support for both options.
So what does this mean for current users of our Perspec System Verifier portable stimulus solution? There's nothing but good news. Today our users develop their models in our System-Level Notation (SLN) format, an intuitive method that aligns directly with industry-standard Unified Modeling Language (UML) diagrams. Until the PSS standard is released, we recommend that our users continue with SLN. Even after the standard is released, we will continue to support SLN for those users who do not wish to convert their models. For those who do want to move to the standard, we will provide tools and support as needed for this conversion.
We are highly confident in our ability to move users quickly and painlessly to the standard because both the DSL and C++ PSS options look very much like SLN not just semantically, but even in the choice of keywords to describe different aspects of a portable stimulus model. This is no coincidence. The PSWG voted overwhelmingly to base the Accellera standard on a joint contribution from Cadence and Mentor, and this document in turn reflected our years of experience with real verification projects using SLN and Perspec’s portable stimulus solution.
Of course, both users and other vendor members of the PSWG have contributed to the standard in its present form, and we are not discounting their contributions. However, we believe very strongly that our current SLN input format and our methodology for developing portable stimulus models are more closely aligned with the upcoming standard than any other product on the market. The following code snippets show one of the PSS examples presented at the DVCon tutorial, along with the SLN equivalent:
The close resemblance among the three formats is apparent even to a non-expert. The concepts of actions, inputs, outputs, locks, and constraints in the PSS standard all come directly from the SLN features that Cadence contributed to PSWG. The models include such familiar structures as buffers, memories, and channels. Today’s SLN users will have no trouble moving to whichever of the PSS formats they prefer, and PSS users will be able to understand both formats even if they prefer to write their models in one or the other.
The conclusion is clear. If you want to start using portable stimulus today with minimal disruption when the Accellera standard is released, you should select Cadence, Perspec System Verifier, and SLN. You need not fear being “trapped” in a language or approach that is inconsistent with the direction the industry is going. You will be closely aligned with the PSS standard in methodology and semantics, and able to use any combination of SLN, DSL, and C++ seamlessly on future projects. If you have any lingering doubts or questions or any kind, please comment below or contact your local Cadence representative.
The truth is out there... sometimes it's in a blog.