Cold Start
In generalized tandem simulation, an abstract Instruction-Level Abstraction (ILA) model is co-simulated against a more detailed RTL Execution Model (RTEM) of the same design. Because the ILA deliberately omits many RTL micro-architectural state elements (internal counters, pipeline registers, and similar implementation details), those RTL variables have no counterpart in the ILA and must be initialized before the two models can be brought into lock-step.
Purpose
A cold start solves this initialization problem. Rather than running the RTL model from an arbitrary or random state, the cold-start procedure drives the RTEM into a well-defined reset configuration for the micro-architectural variables, after which the architectural-variable (AV) map is used to load the RTL architectural variables (RTAVs) with values taken from the ILA (ILAVs). Without this step, the RTL model would carry unconstrained internal state that is inconsistent with the ILA's view of the design.
Mechanism
The cold start is specified declaratively as an additional field, the cold start map, of the refinement map. It contains two parts:
- Pre-swap cycle / sequence. An input sequence applied to the RTEM that forces the design into reset. A simple form asserts the reset signal for a few cycles; a more general form supplies an arbitrary stimulus sequence to RTEM input pins (e.g., a reset followed by a global start).
- Swap cycle. The number of cycles for which the swapped-in RTAVs are held in place. This is necessary for designs in which an architectural value takes multiple cycles to propagate from an architectural register into the micro-architectural state (e.g., a pipeline stage), so that all internal variables reach their consistent values before regular tandem stepping begins.
Once the pre-swap sequence has completed and the swap-cycle delay has elapsed, ordinary tandem simulation can proceed using the AV map to keep RTAVs synchronized with ILAVs.
Relation to Prior Work
The approach mirrors the initialization step used in earlier processor tandem-simulation work, and it is one of the mechanisms that enables jump-starting (warm-up simulation) — another tandem-simulation concept in which simulation is launched partway through a program rather than from time zero.
Implementation Context
In the ASPDAC'22 case studies that introduced the generalized methodology, the cold-start field is part of the same refinement map used to describe the correspondence between an ILA and each of several RTL implementations (accelerator designs such as AES and FlexNLP, and RISC-V processor cores such as Pico, Piccolo, and Rocket). Automation of the cold-start map is what allows the same ILA to be paired with multiple different refinement maps and RTL implementations without manual RTL-state initialization.