Co-simulation
ConceptCo-simulation is a simulation approach in which multiple models or simulators are run together and coordinated so their behavior can be compared or combined. In processor verification, co-simulation typically couples a design under test (DUT) with a golden reference model, most often an Instruction Set Simulator (ISS), so the two implementations execute the same test program and generate per-instruction execution traces that are compared. Synchronization between the DUT and reference can be achieved with Direct Programming Interface (DPI) calls, by monitoring microarchitectural structures such as the reorder buffer, or by injecting instructions through RVFI-based interfaces. The REF is typically retained in software for flexibility, while the DUT may be deployed through software-based RTL simulation or on hardware acceleration platforms. Hardware-accelerated setups are dominated by communication overhead, which has motivated techniques such as DiffTest-H's Batch, Squash, and Replay that reduce communication frequency, transmission volume, and preserve debuggability. Co-simulation has also been specialized for processor fuzzing (e.g., MorFuzz's synchronizable and delayed-write-back-tolerant co-simulation), coverage-guided randomized instruction generation, distributed FMI-based modeling with IP protection, and cyber-security analysis of power systems.
WIKI
Co-simulation
Overview
Co-simulation is a simulation approach in which multiple models or simulators are run together and coordinated so their behavior can be compared or combined. In processor verification, a co-simulation framework runs a design under test (DUT) and a golden reference model (REF) side by side on the same test program, generates execution traces for each instruction, and compares them; if the traces differ, the cause must be investigated because the mismatch may indicate a bug. In other domains, co-simulation is used to couple heterogeneous simulators or to distribute simulation across networked platforms.
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →