What problem does it solve?
Ensures each RTL module faithfully implements its microarchitecture by exercising FSM transitions, pipeline behavior, and data transformations and detecting mismatches versus the golden C reference model.
Core Features & Use Cases
- Per-module unit test generation: Produces targeted testbenches that go beyond connectivity smoke tests to validate uarch-level behaviors.
- Reference comparison: Compares RTL outputs to a C reference model using DPI-C or file-based modes to catch semantic violations.
- Rapid triage and regression: Generates sim/{module}/tb_{module}.sv and sim/{module}/{module}_unit_results.json to automate failure analysis, coverage checks, and regression gating.
- Use Case: Validate a newly implemented ALU datapath FSM against the C model to catch state transition and arithmetic edge-case bugs before full regression.
Quick Start
Invoke the p4s-unit-test orchestrator to generate and run per-module testbenches and compare RTL outputs against the C reference model.