ProcessorCI: Continuous Integration for RISC-V processors on FPGAs
Abstract
This paper presents an automated infrastructure for the verification of RISC-V processors, using continuous integration techniques combined with FPGAs from multiple vendors, such as Altera/Intel, Xilinx/AMD, Gowin, and Lattice. We designed a robust and scalable environment that facilitates early detection of faults in various RISC-V processor implementations, ensuring compliance with ISA specifications. Preliminary results demonstrate the effectiveness of the approach, highlighting the methodology’s ability to quickly identify errors and gather essential data for processor selection and verification.References
Armstrong, A., Bauereiss, T., Campbell, B., Reid, A., Gray, K. E., Norton, R. M., Mundkur, P., Wassell, M., French, J., Pulte, C., Flur, S., Stark, I., Krishnaswami, N., and Sewell, P. (2019). ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS. Proc. ACM Program. Lang., 3(POPL).
Bertran, R., Buyuktosunoglu, A., Gupta, M. S., Gonzalez, M., and Bose, P. (2012). Systematic Energy Characterization of CMP/SMT Processor Systems via Automated Micro-Benchmarks. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, pages 199–211.
Bruns, N., Herdt, V., and Drechsler, R. (2023). Processor Verification using Symbolic Execution: A RISC-V Case-Study. In 2023 Design, Automation Test in Europe Conference Exhibition (DATE), pages 1–6.
Cui, E., Li, T., and Wei, Q. (2023). RISC-V Instruction Set Architecture Extensions: A Survey. IEEE Access, 11:24696–24711.
Hennessy, J. L. and Patterson, D. A. (2019). A new golden age for computer architecture. Commun. ACM, 62(2):48–60.
Herdt, V., Große, D., Jentzsch, E., and Drechsler, R. (2020). Efficient Cross-Level Testing for Processor Verification: A RISC-V Case-Study. In 2020 Forum for Specification and Design Languages (FDL), pages 1–7.
Joannou, A., Rugg, P., Woodruff, J., Fuchs, F. A., van der Maas, M., Naylor, M., Roe, M., Watson, R. N. M., Neumann, P. G., and Moore, S. W. (2024). Randomized Testing of RISC-V CPUs Using Direct Instruction Injection. IEEE Design Test, 41(1):40–49.
Jones, R. B., Dill, D. L., and Burch, J. R. (1995). Efficient validity checking for processor verification. In Proceedings of the 1995 IEEE/ACM International Conference on Computer-Aided Design, ICCAD ’95, page 2–6, USA. IEEE Computer Society.
Orenes-Vera, M., Martonosi, M., and Wentzlaff, D. (2023). From RTL to SVA: LLM-assisted generation of Formal Verification Testbenches.
Rülling, W. (2003). Circuit Verification, pages 210–218. Springer US, Boston, MA.
Sawada, J. (2000). Processor Verification with Precise Exceptions and Speculative Execution.
Schubert, K.-D., Abrar, S. S., Averill, D., Bauman, E., Brown, A. C., Cash, R., Chatterjee, D., Gullickson, J., Nelson, M., Pasnik, K. A., and Sugavanam, K. (2018). Addressing verification challenges of heterogeneous systems based on IBM POWER9. IBM Journal of Research and Development, 62(4/5):11:1–11:12.
Thomas, F., Hetterich, L., Zhang, R., Weber, D., Gerlach, L., and Schwarz, M. (2024). RISCVuzz: Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing. [link].
Waterman, A., Lee, Y., Patterson, D. A., and Asanović, K. (2014). The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.0. Technical Report UCB/EECS-2014-54, EECS Department, University of California, Berkeley.
Bertran, R., Buyuktosunoglu, A., Gupta, M. S., Gonzalez, M., and Bose, P. (2012). Systematic Energy Characterization of CMP/SMT Processor Systems via Automated Micro-Benchmarks. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, pages 199–211.
Bruns, N., Herdt, V., and Drechsler, R. (2023). Processor Verification using Symbolic Execution: A RISC-V Case-Study. In 2023 Design, Automation Test in Europe Conference Exhibition (DATE), pages 1–6.
Cui, E., Li, T., and Wei, Q. (2023). RISC-V Instruction Set Architecture Extensions: A Survey. IEEE Access, 11:24696–24711.
Hennessy, J. L. and Patterson, D. A. (2019). A new golden age for computer architecture. Commun. ACM, 62(2):48–60.
Herdt, V., Große, D., Jentzsch, E., and Drechsler, R. (2020). Efficient Cross-Level Testing for Processor Verification: A RISC-V Case-Study. In 2020 Forum for Specification and Design Languages (FDL), pages 1–7.
Joannou, A., Rugg, P., Woodruff, J., Fuchs, F. A., van der Maas, M., Naylor, M., Roe, M., Watson, R. N. M., Neumann, P. G., and Moore, S. W. (2024). Randomized Testing of RISC-V CPUs Using Direct Instruction Injection. IEEE Design Test, 41(1):40–49.
Jones, R. B., Dill, D. L., and Burch, J. R. (1995). Efficient validity checking for processor verification. In Proceedings of the 1995 IEEE/ACM International Conference on Computer-Aided Design, ICCAD ’95, page 2–6, USA. IEEE Computer Society.
Orenes-Vera, M., Martonosi, M., and Wentzlaff, D. (2023). From RTL to SVA: LLM-assisted generation of Formal Verification Testbenches.
Rülling, W. (2003). Circuit Verification, pages 210–218. Springer US, Boston, MA.
Sawada, J. (2000). Processor Verification with Precise Exceptions and Speculative Execution.
Schubert, K.-D., Abrar, S. S., Averill, D., Bauman, E., Brown, A. C., Cash, R., Chatterjee, D., Gullickson, J., Nelson, M., Pasnik, K. A., and Sugavanam, K. (2018). Addressing verification challenges of heterogeneous systems based on IBM POWER9. IBM Journal of Research and Development, 62(4/5):11:1–11:12.
Thomas, F., Hetterich, L., Zhang, R., Weber, D., Gerlach, L., and Schwarz, M. (2024). RISCVuzz: Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing. [link].
Waterman, A., Lee, Y., Patterson, D. A., and Asanović, K. (2014). The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.0. Technical Report UCB/EECS-2014-54, EECS Department, University of California, Berkeley.
Published
2024-10-23
How to Cite
AVELAR, Julio N.; LAGO, Victor P.; MALAGUTI, Ângelo R. P.; AZEVEDO, Rodolfo.
ProcessorCI: Continuous Integration for RISC-V processors on FPGAs. In: UNDERGRADUATE RESEARCH WORKSHOP - SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS (SSCAD), 25. , 2024, São Carlos/SP.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2024
.
p. 1-8.
DOI: https://doi.org/10.5753/sscad_estendido.2024.244745.
