|Abstract:||The verification of electronic systems and subsystems is generally achieved today using software tests typically written in C. This practice allows exercising system use-cases from a programmer’s view, and creating real-life scenarios to test the system’s hardware and software layers.|
While prevalent and a fast growing practice, C tests creation is a manual and labor intensive effort that resembles the classic directed testing approach that was used for HW verification in the past. Combined with the complexity of writing the tests for systems and subsystems with multiple cores, many IPs, constrained resources, complex power control, coherent interconnect, and complex software controlled operations means that manual development of software driven tests barely scratches the surface of the full scenario space that each system/subsystem use case describes. Another prevalent need is to enable HW verification teams to run the same system scenarios early (often described as the “shift to the left” desire). A more focused testing effort and early identification of issues in phases that they can still easy to debug and fixed are some of the major benefit of introducing the programmer view to HW verification teams.
In this technical presentation, we will present a simplified yet representative SOC, and use a model-based approach to capture the legal scenario space in terms of it’s activities, resource availability, control flow and scheduling. After experiencing the modeling process, we will see how test writers with minimal knowledge of the system specifications, testbench knowledge, or the target implementation can easily create sophisticated, correct-by-construction scenarios. The same scenarios can be mapped to transaction-level coreless testbenches (e.g. UVM testbenches), or be ported to faster platforms like post-silicon, virtual platform and FPGA to achieve massive amount of quality content. Finally, coverage driven process can be used to achieve an automated, organized and predictable software driven test development that removes much of the compromises and risks of directed SW testing.
- Automation of complex correct-by-construction scenarios (metric driven)
- Highly reusable abstract model
- Flexible targeting of multiple platforms (simulation, emulation, fpga, post silicon …) and verification environments