Scalable Hardware–Software Co-Verification through Linux Driver Reuse: Methodology Validated on USB4 and xHCI Host Controllers.

Suchir Gupta, Amit Sharma, Suneetha Suryadevara, Vishnuvardhan reddy mandala
Synopsys


Abstract

Modern SoC verification demands robust hardware/software co-verification strategies to ensure functional correctness and protocol compliance. Bare-metal device drivers serve as critical verification components for IP-level testbenches, hardware/software co-verification, and pre-silicon validation. However, developing verification-grade bare-metal drivers from scratch is resource-intensive, error-prone, and delays verification closure. This paper introduces a systematic methodology for transforming production-grade Linux drivers into bare-metal verification drivers using SystemVerilog DPI-C interfaces. Key innovations include: (1) a hardware abstraction layer with DPI-C interfaces bridging software and RTL, (2) a structured driver transformation process preserving original semantics while ensuring traceability, and (3) a multi-level validation strategy spanning simulation and emulation platforms to guarantee functional correctness. We validated the framework on USB4 Connection Manager and USB Host Controller (xHCI) drivers, achieving an 80% reduction in driver development time while reusing 39K–45K lines of production-validated Linux code. All functional tests passed confirming cycle-accurate behavior and complete equivalence with Linux implementations across both simulation and emulation environments. This methodology enables accelerated verification closure, improved stimulus realism, and reduced risk across diverse hardware platforms. The framework is broadly applicable to any Linux device driver, enabling systematic reuse of mature software for pre-silicon validation.