diff --git a/difftest/doc/rational.md b/difftest/doc/rational.md index 292b0d130..c06302b8b 100644 --- a/difftest/doc/rational.md +++ b/difftest/doc/rational.md @@ -20,7 +20,7 @@ The goal of offline difftest is to ensure the correctness of each instruction’ - **Using SAIL Simulator:** SAIL offers a highly formalized and customizable architecture simulation framework. Despite its slower speed, SAIL’s precision and flexibility make it well-suited for offline verification needs. - **Removing Platform Dependencies:** To simplify the simulation, platform-related parts of SAIL will be removed, focusing on validating the instruction set and processor core. - **Function Patch:** For example, in validating FP (floating-point) related instructions, certain functions, such as `fp reduce order`, may need to be replaced. - - **Handling Undefined Behavior:** To verify undefined behavior, an interface will be provided for the simulator to inject specific behavior. This may involve forking the SAIL project or directly customizing its source code. + - **Handling Undefined Behavior:** To verify undefined behavior, an interface will be provided for the simulator to inject specific behavior. This may involve adding external functions to SAIL and patching its source code. ##### 3. **DiffTest Algorithm** - **Instruction Alignment:** During the comparison process, it’s crucial to ensure that the DUT and model instruction streams are properly aligned. This may require special alignment algorithms to handle challenges arising from out-of-order or parallel execution.