
Processor Verification in Python Lavanya J Senior Project Officer | Shakti Lab | RISE Group | CSE Dept | IIT Madras DVClub Apr 2021 Agenda • Processor Adoption & Verification Trend • Shakti Introduction • Processor Verification Components • Python Packages for Verification • Why Python adoption ? 2 Trend: RISC-V Processors & Verification methodology RISC-V in nearly a quarter of the designs 124+ RISC-V Cores & SoCs 1000+ members in the RISC-V International (RI) consortium The 2020 study has included Python based verification methodology like CoCoTb for the first time Ref: Wilson Research Group and Mentor, A Siemens Business, 2020 Functional Verification Study 3 Shakti RISC-V Base Processors E-Class C-Class I-Class 3 Stage in-order 6 Stage in-order 12 Stage Out-of-order Low power-low compute With MMU support Performance oriented Running RTOs Running Linux & seL4 Linux & RTOs Targeting IoT & Robotics Targeting Control/Compute Targeting Compute/ Mobile platforms Applications platforms Coming Soon... Rise Creek RIMO Moushik 4 Shakti Processor Verification ● Based on open-source tools ● Simulation of Bluespec generated verilog design using Verilator ● Framework maintained commonly across E-Class, C-Class, I-Class cores maximizing reuse. ● Comprehensive suites of directed (risc-tests, riscv-compliance) and random assembly tests (Shakti’s AAPG) 5 Shakti Processor Verification ● Processor verification incorporates ISA level state checking at every instruction execution along with end of test memory check. 6 Processor Verification Components Random Assembly Spike Instruction Set Program Generator in Simulator - ISS Python (Shakti’s AAPG) Test Reference (C/C++) https://gitlab.com/shaktiproject/tools/aapg Generators Model Regression Scripting & RISC-V GNU Toolchain Continuous Toolchain for test Flow Integration (C/C++) compilation Automation (CI) Test Bench Coverage collection Verilator based code CoCoTb based RISC-V Processor coverage Python Testbench Verification CoCoTb-coverage Components for functional coverage definitions Why CoCoTb-Verilator over traditional methodology ? ● Quick framework ramp up with students and open source contributors alike ● Flexibility to setup the framework in remote workstations ● Ease of integration with external reference models ● Re-use of huge Python ecosystem libraries ● Does not compromise on verification quality ● Massive simulation parallelization is possible restricted only by the compute capability 8 CoCoTb-Verilator based verification ● Coroutine based Cosimulation Testbench (CoCoTb) provides standardized interfaces to talk to the RTL simulator ● CoCoTb library provided test bench components like drivers, monitors and scoreboard to implement a UVM based verification framework ● CoCoTb-Coverage package supports definitions for constraint random generation as well as functional coverage definition CoCoTb-Verilator based UVM framework 9 Conclusions and Future Work ● RISC-V processor verification in CoCoTb-Verilator leverages competitive, industry standard open source methodologies without compromising on the verification quality. ● Python based environment setup aids Shakti processors for rapid and cost effective design wins. ● Further steps are being explored to use Python at all verification abstraction levels. ● Shakti is collaborating with InCore Semiconductors-Tessolve for C-Class SoC development work. 10 Thank You! 11.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-