- Matthew Ballance - Mentor, A Siemens Business
In today's complex designs, more and more verification and validation is being done at the SoC level – driven by the need to verify system-level effects that involve both hardware and software, and necessitated by the fast emulation and post-silicon execution platforms required to execute a meaningful amount of software in a reasonable amount of time. Block- and subsystem-level verification is still critical, of course, and reusing some portion of the test intent from block level to SoC level is critical to making testing productive at the SoC level. Automating block-level test creation, specifically by adopting constrained-random generation techniques, has been key to test-creation productivity at the block level. Automation is also critical for creating SoC-level tests, and many in-house tools have been created to automate this process.
These needs of automation and reuse have motivated the work of the Accellera Portable Stimulus Working Group (PSWG). A standardized input format allows users to achieve portability of test intent across execution platforms and verification environments, and reuse the test specifications they create across tools from multiple vendors. The PSWG has selected a baseline input-language specification that will shortly be refined into the first version of the Portable Stimulus Specification standard . The emerging standard includes several mechanisms to enable existing descriptions, such as utility code, to be incorporated into tests specified in terms of the portable stimulus specification, with a goal of accelerating adoption of the standard.
A Portable Stimulus Specification description is a single representation of test intent that is reusable by a variety of users across different levels of abstraction, and on different execution platforms. As a consequence, it caters to the requirements and concerns of users doing verification at block level, system level, and SoC level. The Portable Stimulus Specification supports data structures, constraints, and data-centric randomization, in much the same way that existing verification languages (e.g. SystemVerilog) do. In addition, however, the Portable Stimulus Specification supports a declarative specification of control flow: sequential and parallel execution of operations, selections between operations, and loops. The fact that these portions of the specification have declarative semantics enables processing tools to apply automation, and enables the test intent to be retargeted to various platforms in ways far beyond what could be supported by simply translating existing behavioral code.
View & Download:
Read the entire Making Legacy Portable with the Portable Stimulus Specification technical paper.