diff --git a/cv32e40p/docs/VerifPlans/README.md b/cv32e40p/docs/VerifPlans/README.md index 3ac755d07a..755f264440 100644 --- a/cv32e40p/docs/VerifPlans/README.md +++ b/cv32e40p/docs/VerifPlans/README.md @@ -8,7 +8,10 @@ Below are two different chapters describing verification plans status and direct # CV32E40P (V2) Verification Plans ## Short verification methodology introduction -For CV32E40P**v2** verification, the formal verification methodology has been choosen over the stimuli-based simulation that was done for version one of the core. However, full verification closure is not feasible using only formal verification due to complexity of specific scenarios. All these specific uncoverable scenarios from formal verification are then exercised by stimuli-based simulation using a reference model of the core. These scenarios along with formal assertions are described inside verifications plans, for which details are given in a table below. Regarding already available v1 plans, their re-use or not is specified in this table. +For CV32E40Pv2 verification, the formal verification methodology has been chosen over the stimuli-based simulation that was done for v1 version of the core. However, full verification closure is not feasible using only formal verification due to complexity of specific scenarios. All these specific uncoverable scenarios from formal verification are then exercised by stimuli-based simulation using a reference model of the core. These scenarios along with formal assertions are described inside verifications plans, for which details are given in a table below. Regarding already available v1 plans, their re-use or not is specified in this table. + +RISC-V ISA Formal Verification methodology is described [here](https://github.com/openhwgroup/core-v-verif/tree/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_RISCV_vPlan_v1.1.pdf). +Setup and script files to launch RISC-V ISA Formal Verification using Siemens Questa Processor tool are available [here](https://github.com/openhwgroup/cv32e40p/tree/dev/scripts/riscv_isa_formal). ## Verification Plan Status @@ -29,27 +32,27 @@ Under the heading `Link`, the name shown corresponds to the filename of the vpla | Category | Feature | VPlan Status | Review Status | Comment | Link | |---------------------|----------------|--------------|---------------|---------|------| -| **Base Instruction Set** | RV32IMC + F + Zfinx + Zifencei | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | | -| **Interrupts** | CLINT | v1-updated | **Ready for Review** | Addition of missing XPULP / F / Zfinx interrupts | [CV32E40P_interrupts.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/interrupts/CV32E40P_interrupts.xlsx "Interrupts Vplan")| -| **Debug & Trace** | Debug | v1-reused | Reviewed | Missing XPULP-specific debug are in a separate vplan | [CV32E40P_debug.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/debug-trace/CV32E40P_debug.xlsx "Debug Vplan")| -| **Privileged Spec** | CSRs / Zicsr | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | | -| **Micro-architecture** | OBI | v1-reused | Reviewed | | [CV32E40P_OBI_VerifPlan.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40P_OBI_VerifPlan.xlsx "OBI Vplan") | -| | Pipeline / SleepUnit | v1-reused | Reviewed | | [CV32E40P_Pipeline_Sleep.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40P_Pipeline_Sleep.xlsx "Pipeline Sleep Vplan") | -| | FPU Register File | v2-sim-new | **Ready for Review** | | [CV32E40P_FPU_register_file.xlsx](https://github.com/XavierAubert/core-v-verif/blob/b654922fa6ac061b9fe2757e3928eb25603b3e89/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40P_FPU_register_file.xlsx "FPU Reg. File Vplan") | -| **Additional ISA** | F / Zfinx | v2-sim-new | **Ready for Review** | Includes uncoverable items from formal verification | [CV32E40P_F-Zfinx-instructions.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/Zfinx_F_instructions/CV32E40P_F-Zfinx-instructions.xlsx "Add. F/Zfinx Vplan") | -| **XPULP** | Post-Increment Load/Store (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | -| | Post-Increment Load/Store (Simulation) | v2-sim-new | **Ready for Review** | Addition of "pipeline" with simulation (preceeding F multicycle) | [CV32E40P_xpulp-postinc-loadstore.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-postinc-loadstore.xlsx "Post-Inc Load/Store simu Vplan") | -| | Bitmanipulation (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | | -| | Bitmanipulation (Simulation) | v2-sim-new | **Ready for Review** | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40P_xpulp-bitmanipulation.xlsx](https://github.com/XavierAubert/core-v-verif/blob/2234255b7e5a2c83099dbb5755a2bdc9768c7009/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-bitmanipulations.xlsx "Bitmanip simu Vplan") | -| | General ALU (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | | -| | General ALU (Simulation) | v2-simu-new | **Ready for Review** | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40P_xpulp-general-alu.xlsx](https://github.com/XavierAubert/core-v-verif/blob/2234255b7e5a2c83099dbb5755a2bdc9768c7009/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-general-alu.xlsx "General ALU simu Vplan") | -| | Immediate Branching (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | | -| | Immediate Branching (Simulation) | v2-simu-new | **Ready for Review** | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40P_xpulp-immediate-branching.xlsx](https://github.com/XavierAubert/core-v-verif/blob/2234255b7e5a2c83099dbb5755a2bdc9768c7009/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-immediate-branching.xlsx "Imm Branching simu Vplan") | -| | MAC (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | -| | MAC (Simulation) | v2-sim-new | **Ready for Review** | Addition of missing coverage from formal (operands "toggle") | [CV32E40P_xpulp-multiply-accumulate.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-multiply-accumulate.xlsx "MAC simu Vplan") | -| | SIMD (Formal) | v2-formal-new | Not Available for Review | Waiting Approval from Siemens | -| | SIMD (Simulation) | v2-sim-new | **Ready for Review** | Addition of missing coverage from formal (operands "toggle") | [CV32E40P_xpulp-packed-simd.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-packed-simd.xlsx "SIMD simu Vplan") | -| | HWLoop (Simulation) | v2-sim-new | **Ready for Review** | Feature not test at all in formal verification | [CV32E40P_xpulp-hwloop.xlsx](https://github.com/openhwgroup/core-v-verif/blob/2378099bfce1c7b2b3d089ea2cb60ad422c05e94/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40P_xpulp-hwloop.xlsx "HWLoop Vplan") | +| **Base Instruction Set** | RV32IMC + F + Zfinx + Zifencei | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| **Interrupts** | CLINT | v1-updated | Reviewed | Addition of missing XPULP / F / Zfinx interrupts | [CV32E40Pv2_interrupts.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/interrupts/CV32E40Pv2_interrupts.xlsx "Interrupts Vplan")| +| **Debug & Trace** | Debug | v1-reused | Reviewed | Missing XPULP-specific debug are in a separate vplan | [CV32E40Pv2_debug.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/debug-trace/CV32E40Pv2_debug.xlsx "Debug Vplan")| +| **Privileged Spec** | CSRs / Zicsr | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| **Micro-architecture** | OBI | v1-reused | Reviewed | | [CV32E40P_OBI_VerifPlan.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40P_OBI_VerifPlan.xlsx "OBI Vplan") | +| | Pipeline / Sleep Unit | v1-reused | Reviewed | | [CV32E40P_Pipeline_Sleep.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40P_Pipeline_Sleep.xlsx "Pipeline Sleep Vplan") | +| | FPU Register File | v2-sim-new | Reviewed | | [CV32E40Pv2_FPU_register_file.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/micro_architecture/CV32E40Pv2_FPU_register_file.xlsx "FPU Reg. File Vplan") | +| **Additional ISA** | F / Zfinx | v2-sim-new | Reviewed | Includes uncoverable items from formal verification | [CV32E40Pv2_F-Zfinx-instructions.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/Zfinx_F_instructions/CV32E40Pv2_F-Zfinx-instructions.xlsx "Add. F/Zfinx Vplan") | +| **XPULP** | Post-Increment Load/Store (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | Post-Increment Load/Store (Simulation) | v2-sim-new | Reviewed | Addition of "pipeline" with simulation (preceeding F multicycle) | [CV32E40Pv2_xpulp-postinc-loadstore.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-postinc-loadstore.xlsx "Post-Inc Load/Store simu Vplan") | +| | Bitmanipulation (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | Bitmanipulation (Simulation) | v2-sim-new | Reviewed | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40Pv2_xpulp-bitmanipulation.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-bitmanipulations.xlsx "Bitmanip simu Vplan") | +| | General ALU (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | General ALU (Simulation) | v2-simu-new | Reviewed | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40Pv2_xpulp-general-alu.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-general-alu.xlsx "General ALU simu Vplan") | +| | Immediate Branching (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | Immediate Branching (Simulation) | v2-simu-new | Reviewed | Lowest priority as formal already checks everything needed, added because corev-dv generator will generate those instructions anyway | [CV32E40Pv2_xpulp-immediate-branching.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-immediate-branching.xlsx "Imm Branching simu Vplan") | +| | MAC (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | MAC (Simulation) | v2-sim-new | Reviewed | Addition of missing coverage from formal (operands "toggle") | [CV32E40Pv2_xpulp-multiply-accumulate.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-multiply-accumulate.xlsx "MAC simu Vplan") | +| | SIMD (Formal) | v2-formal-new | Reviewed | | [CV32E40Pv2_Formal_VerificationPlans.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx) | +| | SIMD (Simulation) | v2-sim-new | Reviewed | Addition of missing coverage from formal (operands "toggle") | [CV32E40Pv2_xpulp-packed-simd.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-packed-simd.xlsx "SIMD simu Vplan") | +| | HWLoop (Simulation) | v2-sim-new | Reviewed | Feature not test at all in formal verification | [CV32E40Pv2_xpulp-hwloop.xlsx](https://github.com/openhwgroup/core-v-verif/blob/cv32e40p/dev/cv32e40p/docs/VerifPlans/Simulation/xpulp_instruction_extensions/CV32E40Pv2_xpulp-hwloop.xlsx "HWLoop Vplan") |
diff --git a/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx b/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx new file mode 100755 index 0000000000..29c79cb6fe Binary files /dev/null and b/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_Formal_VerificationPlans.xlsx differ diff --git a/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_RISCV_vPlan_v1.1.pdf b/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_RISCV_vPlan_v1.1.pdf new file mode 100755 index 0000000000..20cc0af322 Binary files /dev/null and b/cv32e40p/docs/VerifPlans/RISC-V_ISA_Formal/CV32E40Pv2_RISCV_vPlan_v1.1.pdf differ