For the past decade, the semiconductor industry has been moving in one direction: shift-left, specifically, shifting more validation into the pre-silicon phase. The idea was straightforward: if software ultimately determines how a system behaves, then software should become a primary vehicle for verification.
The industry responded by investing heavily in virtual platforms, emulation systems, and FPGA prototyping. Instead of waiting for silicon, engineers could boot operating systems, run applications, and validate software stacks months before tape out. It was a major step forward.
Companies like Synopsys helped accelerate this transition through platforms such as ZeBu, HAPS, and Virtualizer, enabling software bring-up and system validation long before first silicon arrived.
For many years, the approach worked remarkably well. But the assumptions behind that success are starting to break down.
The End of the Representative Workload
Traditional software-driven validation relies on a simple premise: run enough realistic workloads and you’ll exercise enough of the system to gain confidence in its correctness. That assumption becomes harder to defend every year.
In mobile devices, software behavior is relatively predictable. Applications evolve, but the overall workload profile remains reasonably stable. Running a set of representative workloads often provides meaningful validation coverage.
AI infrastructure is a different story. There is no longer a single representative workload. Every model stresses the architecture differently, every framework generates different traffic patterns, every deployment creates unique interactions between processors, memory subsystems, accelerators, caches, and interconnects. The diversity of software is growing faster than our ability to validate it, and that creates a fundamental problem. If no workload is truly representative, then software-driven validation alone can never provide complete confidence in system behavior.
The Nature of Bugs Has Changed
At the same time, the systems themselves have become dramatically more complex. Modern SoCs are no longer collections of largely independent blocks connected through standard interfaces. They are tightly integrated computing platforms where CPUs, GPUs, NPUs, memory hierarchies, coherent fabrics, security engines, and accelerators constantly interact.
As architectures evolve, bugs evolve with them. Many of the most challenging failures no longer originate inside a single IP block. Instead, they emerge from interactions between blocks, a coherency conflict, a race condition, a timing-dependent synchronization failure, a resource contention scenario that only appears after millions or billions of cycles.
These bugs are notoriously difficult to find because they often require highly specific conditions to occur simultaneously. Real software may eventually expose them, or it may never expose them at all. That uncertainty is becoming increasingly unacceptable as design complexity continues to grow.
The Coverage Problem Nobody Likes to Discuss
Software-driven validation remains one of the most important verification techniques available. But realism and coverage are not the same thing, in fact, they are often competing objectives.
Compilers are designed to generate correct and efficient code; operating systems are designed to behave predictably. Application developers actively avoid pathological conditions. None of these technologies are trying to break the hardware. As a result, many of the extreme corner cases that expose hardware vulnerabilities simply never occur.
Ironically, the closer verification gets to real-world software behavior, the easier it becomes to miss some of the most critical hardware failures. The industry rarely discusses this openly because software-driven validation has delivered enormous value. But the reality is simple: real software is excellent at validating expected behavior, but it is often surprisingly poor at exposing unexpected behavior.
Why Synthetic Stress Matters Again
This is why the industry is rediscovering something verification engineers have known for decades: sometimes you have to intentionally stress the system. Instead of relying exclusively on compiled software workloads, engineers are increasingly generating synthetic instruction streams specifically designed to push hardware into extreme operating conditions. These tests are not intended to mimic applications, they are intended to expose weaknesses, heavy contention, rare coherency states, unusual timing relationships, complex synchronization scenarios. Conditions that real software might never trigger, but that hardware must still manage correctly.
The goal is not realism, the goal is coverage, and in modern systems, both are necessary. The most effective verification strategies no longer choose between software realism and synthetic stress, they combine them.
Generating Stress Is Easy – Running It Is Not
Finding difficult scenarios is only half the challenge, executing enough of them is where the real problem begins. Many of the most interesting failures emerge only after extremely long execution runs. The system may need to traverse billions of states before the problematic condition finally appears.
Simulation can no longer keep pace, the performance gap has simply grown too large. This is precisely why hardware-assisted verification has become an essential part of modern verification strategies.
Emulation and FPGA prototyping provide the scale required to explore deep system behavior while maintaining enough visibility to understand what went wrong when failures occur. Platforms such as ZeBu and HAPS have evolved from useful verification tools into essential infrastructure for advanced SoC development. Without them, many of today’s system-level verification challenges would be practically impossible to solve within realistic schedules.
From Running Software to Exploring Systems
This is where hardware-assisted test generation becomes particularly interesting. Traditionally, hardware-assisted platforms have been used primarily to execute software, however, the emerging model expands that role significantly. Instead of simply running applications faster, these platforms become engines for systematic system exploration.
Automatically generated workloads can target specific architectural stress points, execute at scale, and expose behaviors that traditional software validation may never reach. The objective shifts from observing system behavior to actively searching for vulnerabilities.
That distinction matters. One approach validates what software happens to do, the other investigates what hardware could do under extreme conditions. As systems become more complex, both perspectives become essential.
The Bigger Opportunity: Verification Continuity
Perhaps the most important shift is not the individual technologies involved. It is the way they are connected. Verification has historically been fragmented. Tests created during RTL verification are often discarded before emulation. Emulation environments differ from prototyping environments. Post-silicon validation frequently starts over with entirely new workloads. Knowledge gets lost, coverage gets fragmented, engineering effort gets duplicated.
Spearheaded by Synopsys, the industry is increasingly moving toward a more continuous model. Automated test generation technologies such as Threadmill for Arm and STING for RISC-V, combined with reference models from Imperas and hardware-assisted platforms like ZeBu and HAPS, create the foundation for verification flows that span the entire design lifecycle. Figure 1 illustrates the solution.

A workload generated during early RTL development can evolve through emulation, prototyping, and ultimately silicon validation. The verification intent survives, the investment compounds. Instead of treating tests as disposable artifacts, teams begin treating them as long-term assets. That changes the economics of verification.
Complexity Is No Longer Optional
The challenge becomes even more pronounced as architectural diversity continues to increase. The industry is no longer converging around a single compute architecture. Arm continues to expand across infrastructure and AI deployments, RISC-V adoption continues to accelerate, specialized accelerators are appearing everywhere.
Heterogeneity is becoming the default state of modern computing. Verification methodologies must evolve accordingly. The ability to apply consistent stress-generation and validation strategies across multiple architectures is becoming just as important as raw execution performance. Scalability today is not only about speed, but also about architectural flexibility.
Debug Becomes the Real Bottleneck
As systems become larger and more interconnected, finding failures is often no longer the hardest part, understanding them is. Many verification teams already generate more failures than they can efficiently debug. The bottleneck has shifted, debug is increasingly becoming the limiting factor in overall verification productivity.
This is another reason synthetic workloads matter. Failures generated by targeted stress tests tend to be smaller, more deterministic, and easier to reproduce than failures buried deep inside a complex software stack. Combined with reference models, observability tools, and environments such as Verdi, they allow engineers to move from symptom to root cause much more efficiently. In an era of exploding system complexity, deterministic debug is becoming just as valuable as verification coverage.
Conclusions
Verification has always evolved alongside semiconductor complexity. Every major architectural transition eventually forces a methodological transition. This is simply the latest example.
Software-driven validation transformed the industry because software became central to system behavior. Now software itself is becoming too diverse, too dynamic, and too unpredictable to serve as the sole foundation for verification. Running real workloads remains essential, but software alone is no longer enough.
The next generation of verification will combine realistic applications with systematic stress generation, leveraging hardware-assisted platforms to explore behaviors that real software may never encounter. Because the most expensive bug is rarely the one you can reproduce, it’s the one your workload never exercised in the first place.
Also Read:
All-Embracing Multiphysics Analysis for Chiplet-Based Systems
Podcast EP351: A Detailed Overview of the Emerging Standards for 400G with Kent Lusted
Share this post via:
Share this post via:


Comments
There are no comments yet.
You must register or log in to view/post comments.