Portable Stimulus: The Next Big Leap In SoC Verification

A few years ago, I heard a veteran engineer talk about verification being akin to ‘taming infinity’.

It’s a fitting analogy! Embedded systems often have a vast parameter landscape, with hundreds,  sometimes thousands,  of possible value combinations. Navigating this complexity can feel overwhelming. Think about a typical system, where there can exist several varying parameter configurations with, at the very least, hundreds of possible combinations of values. And especially during debugging, the tricky part is that the set of problematic parameter values often changes from test to test.

Ever seen unexplained behaviour in a system and wondered what, Or more precisely, which combination of values of which parameters is causing it? Talk about finding a needle in a haystack!

Constrained randomization in the Portable Stimulus Standard (PSS) lets you declaratively specify what aspects of a scenario, or in other words, which variables, can vary. All the while, ensuring each generated test is legal and hits deep corner cases.  For example, in a scenario testing cache coherence in a multi-core system, it would be instructions, addresses, operation types, ordering, number of cores, etc.

Whew! So many parameters! What if you need to zoom in on a corner case? Simply apply directed constraints to steer the generated C tests. This can accelerate debugging without the need for endless scripts. 

Now, when you think of randomization, naturally, coverage comes to mind. PSS ensures consistent coverage by allowing engineers to embed coverage collection directly into the stimulus model. PSS tools can automatically generate additional scenarios to hit uncovered or user-specified coverage points. In this way, coverage-driven test generation minimizes the number of tests needed to achieve comprehensive coverage, greatly reducing the amount of time and manual effort required.

While the concept of constrained randomization is not exactly a new one in the history of verification, this capability, coupled with a host of other features like coverage and multi-axial reuse, makes PSS stand out. Beyond catching elusive bugs, PSS offers vertical reuse, from IP blocks right up to full SoCs.  This means that a test scenario developed for an IP block can be reused when that block is integrated into a larger subsystem or the entire SoC. This approach not only saves time but also ensures consistency in testing across different design levels. By reusing test intent vertically, teams can identify integration issues early and reduce the effort required to develop new tests at each hierarchical level.

And what about horizontal reuse? You can write your top-level test just once, then automatically generate both C code for emulation/baremetal platforms and SystemVerilog sequences for a UVM environment- all from the same specification. No more duplicate work, no more wondering “did we test that combination over here?”. Horizontal reuse means taking the same high-level stimulus model and applying it across different execution platforms—simulation, emulation, FPGA prototyping, silicon bring-up, embedded software on actual hardware, and so on. 

Wondering where it stops ?! Well, there is another axis of reuse: the application of the test intent across different projects or design variants. For instance, if you’re developing multiple SoC variants that share common components or functionalities, PSS enables you to reuse the same test scenarios with minimal modifications. This is particularly useful in product families where features are incrementally added or modified. By adjusting constraints or parameters within the PSS model, you can tailor tests to specific project needs without starting from scratch.

All this means a more efficient and scalable verification process. It reduces redundancy, ensures consistency, and accelerates time-to-market. At Vayavya Labs, we have been pioneers in the field of device-driver generation and active participants of the Portable Stimulus Working Group since its inception in 2014. This group works continuously to ensure that PSS stays relevant to industry needs, and on improving the standard.

In today’s complex designs, PSS isn’t just another methodology or language, it’s the efficiency boost you’ve been waiting for. Ready to tame the chaos of randomization? Let’s talk Portable Stimulus.

Have questions or need to know more about how Portable Stimulus can be used for your business? Write to us at sales@vayavyalabs.com. Our experts will be happy to connect with you. 

×
Semiconductor IP