Processor Verification in Python

Processor Verification in Python

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us