[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3466752.3480092acmconferencesArticle/Chapter ViewAbstractPublication PagesmicroConference Proceedingsconference-collections
research-article
Open access

Effective Processor Verification with Logic Fuzzer Enhanced Co-simulation

Published: 17 October 2021 Publication History

Abstract

The study on verification trends in the semiconductor industry shows that the design complexity is increasing, fewer companies achieve first silicon success and need more spins before production, companies hire more verification engineers, and 53% of the whole hardware-design-cycle is spent on the design verification [18]. The cost of a respin is high, and more than 40% of the cases that contribute to it are post-fabrication functional bug exposures  [16]. The study also shows that 65% of verification engineers’ time is spent on debug, test creation, and simulation  [17]. This paper presents a set of tools for RISC-V processor verification engineers that help to expose more bugs before production and increase the productivity of time spent on debugging, test creation and simulation. We present Logic Fuzzer (LF), a novel tool that expands the verification space exploration without the creation of additional verification tests. The LF randomizes the states or control signals of the design-under-test at the places that do not affect functionality. It brings the processor execution outside its normal flow to increase the number of microarchitectural states exercised by the tests. We also present Dromajo, the state of the art processor verification framework for RISC-V cores. Dromajo is an RV64GC emulator that was designed specifically for co-simulation purposes. It can boot Linux, handle external stimuli, such as interrupts and debug requests on the fly, and can be integrated into existing testbench infrastructure with minimal effort. We evaluate the effectiveness of the tools on three RISC-V cores: CVA6, BlackParrot, and BOOM. Dromajo by itself found a total of nine bugs. The enhancement of Dromajo with the Logic Fuzzer increases the exposed bug count to thirteen without creating additional verification tests.

References

[1]
[n.d.]. [information is disclosed per double-blind peer review guidelines].
[2]
W. Anderson. 1992. Logical verification of the NVAX CPU chip design. In Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers Processors. 306–309.
[3]
Azad, Zahra; Delshadtehrani, Leila; Zhou, Boyou; Joshi, Ajay; Gilani, Farzam; Lim, Katie; Petrisko, Daniel; Jung, Tommy; Wyse, Mark; Guarino, Tavio; Veluri, Bandhav; Wang, Yongqin; Oskin, Mark; Taylor, Michael. 2019. The BlackParrot Processor: An Open-Source Industrial-Strength RV64G Multicore Processor. (Mar 2019).
[4]
J. Bachrach, H. Vo, B. Richards, Y. Lee, A. Waterman, R. Avižienis, J. Wawrzynek, and K. Asanov. 2012. Chisel: Constructing hardware in a Scala embedded language. In DAC Design Automation Conference 2012. 1212–1221.
[5]
Brian Bailey, Harry Foster, Chirag Gandhi, Tom Anderson, Craig Shirley, Adam Sherer, Rajesh Ramanujam, Roger Sabbaugh, Vigyan Singhal, and Kevin McDermott. 2018. When Bugs Escape). https://semiengineering.com/when-bugs-escape/
[6]
Christopher Celio. 2018. A Highly Productive Implementation of an Out-of-Order Processor Generator. Ph.D. Dissertation. EECS Department, University of California, Berkeley. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2018/EECS-2018-151.html
[7]
Chipyard. [n.d.]. 8.2. Communicating with the DUT. https://chipyard.readthedocs.io/en/latest/Advanced-Concepts/Chip-Communication.html
[8]
Shenghsun Cho, Mrunal Patel, Han Chen, Michael Ferdman, and Peter Milder. 2018. A Full-System VM-HDL Co-Simulation Framework for Servers with PCIe-Connected FPGAs(FPGA ’18). Association for Computing Machinery, New York, NY, USA, 87–96. https://doi.org/10.1145/3174243.3174269
[9]
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, and Arvind. 2017. Kami: A Platform for High-Level Parametric Hardware Specification and Its Modular Verification. Proc. ACM Program. Lang. 1, ICFP (Aug 2017), 30 pages. https://doi.org/10.1145/3110268
[10]
M. Chupilko, A. Kamkin, A. Kotsynyak, A. Protsenko, S. Smolov, and A. Tatarnikov. 2018. Test Program Generator MicroTESK for RISC-V. In 2018 19th International Workshop on Microprocessor and SOC Test and Verification (MTV). 6–11.
[11]
Western Digital. [n.d.]. Whisper Instruction Set Simulator. https://github.com/westerndigitalcorporation/swerv-ISS
[12]
Schuyler Eldridge, Alper Buyuktosunoglu, and Pradip Bose. 2018. Chiffre: A Configurable Hardware Fault Injection Framework for RISC-V Systems. In 2nd Workshop on Computer Architecture Research with RISC-V (CARRV ’18).
[13]
[13] RISC-V Foundation.[n.d.]. https://github.com/riscv/riscv-compliance
[14]
[14] RISC-V Foundation.2013. https://github.com/riscv/riscv-tests
[15]
Google. 2019. SV/UVM based instruction generator for RISC-V processor verification. https://github.com/google/riscv-dv
[16]
Mentor Harry Foster. 2019. Part 12: The 2018 Wilson Research Group Functional Verification Study (IC/ASIC Verification Results Trends). https://blogs.mentor.com/verificationhorizons/blog/2019/01/29/part-12-the-2018-wilson-research-group-functional-verification-study/
[17]
Mentor Harry Foster. 2019. Part 7: The 2018 Wilson Research Group Functional Verification Study (IC/ASIC Design Trends). https://blogs.mentor.com/verificationhorizons/blog/2019/01/29/part-7-the-2018-wilson-research-group-functional-verification-study/
[18]
Mentor Harry Foster. 2019. Part 8: The 2018 Wilson Research Group Functional Verification Study (IC/ASIC Resource Trends). https://blogs.mentor.com/verificationhorizons/blog/2019/01/29/part-8-the-2018-wilson-research-group-functional-verification-study/
[19]
Vladimir Herdt, Daniel Grosse, Eyck Jentzsch, and Rolf Drechsler. 2020. Efficient Cross-Level Testing for Processor Verification: A RISC-V Case-Study. In Forum on Specification and Design Languages (FDL).
[20]
R. C. Ho, C. Han Yang, M. A. Horowitz, and D. L. Dill. 1995. Architecture validation for processors. In Proceedings 22nd Annual International Symposium on Computer Architecture. 404–413.
[21]
Bo-Yuan Huang, Hongce Zhang, Pramod Subramanyan, Yakir Vizel, Aarti Gupta, and Sharad Malik. 2018. Instruction-Level Abstraction (ILA): A Uniform Specification for System-on-Chip (SoC) Verification. ACM Trans. Des. Autom. Electron. Syst. 24, 1, Article 10 (dec 2018), 24 pages. https://doi.org/10.1145/3282444
[22]
A. Izraelevitz, J. Koenig, P. Li, R. Lin, A. Wang, A. Magyar, D. Kim, C. Schmidt, C. Markley, J. Lawson, and J. Bachrach. 2017. Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations. In 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 209–216. https://doi.org/10.1109/ICCAD.2017.8203780
[23]
Jing-Yang Jou and Chien-Nan Liu. 1999. Coverage Analysis Techniques for HDL Design Validation. IEEE Asia Pacific Conference on Chip Design Languages (01 1999).
[24]
Roope Kaivola, Rajnish Ghughal, Naren Narasimhan, Amber Telfer, Jesse Whittemore, Sudhindra Pandav, Anna Slobodov, Christopher Taylor, Vladimir Frolov, Erik Reeber, and Armaghan Naik. 2009. Replacing Testing with Formal Verification in Intel CoreTM i7 Processor Execution Engine Validation. In Computer Aided Verification, Ahmed Bouajjani and Oded Maler (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 414–429.
[25]
M. Kantrowitz and L. M. Noack. 1996. I’m done simulating; now what? Verification coverage analysis and correctness checking of the DECchip 21164 Alpha microprocessor. In 33rd Design Automation Conference Proceedings, 1996. 325–330.
[26]
Kevin Laeufer, Jack Koenig, Donggyu Kim, Jonathan Bachrach, and Koushik Sen. 2018. RFUZZ: coverage-directed fuzz testing of RTL on FPGAs. In Proceedings of the International Conference on Computer-Aided Design, ICCAD 2018, San Diego, CA, USA, November 05-08, 2018, Iris Bahar(Ed.). ACM, 28. https://doi.org/10.1145/3240765.3240842
[27]
lowRISC. 2019. Ibex Core Verification. https://github.com/lowRISC/ibex/blob/master/doc/verification.rst
[28]
Imperas Software Ltd.[n.d.]. Imperas announce first reference model with UVM encapsulation for RISC-V verification. https://www.imperas.com/articles/imperas-announce-first-reference-model-with-uvm-encapsulation-for-/risc-v-verification
[29]
Imperas Software Ltd.[n.d.]. OVP RISC-V Solutions. https://www.ovpworld.org/info_riscv
[30]
M. Naylor and S. Moore. 2015. A generic synthesisable test bench. In 2015 ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE). 128–137.
[31]
[31] OpenHWGroup.2020. https://github.com/openhwgroup/force-riscv
[32]
R. T. Possignolo, E. Ebrahimi, H. Skinner, and J. Renau. 2016. Fluid Pipelines: Elastic circuitry meets Out-of-Order execution. In 2016 IEEE 34th International Conference on Computer Design (ICCD). 233–240.
[33]
[33] Anmol Sahoo.2019. https://pypi.org/project/aapg/
[34]
Timothy Sherwood, Erez Perelman, Greg Hamerly, and Brad Calder. 2002. Automatically Characterizing Large Scale Program Behavior. ACM SIGPLAN Notices 37 (09 2002). https://doi.org/10.1145/605397.605403
[35]
Timothy Sherwood, Suleyman Sair, and Brad Calder. 2003. Phase tracking and prediction. ACM Sigarch Computer Architecture News 31, 336– 347. https://doi.org/10.1145/871656.859657
[36]
Christopher Batten Shunning Jiang, Christopher Torng. 2018. An Open-Source Python-Based Hardware Generation, Simulation, and Verification Framework. In Proceedings of the First Workshop on Open-Source EDA Technology (WOSET18).
[37]
Wilson Snyder. [n.d.]. Verilator. https://www.veripool.org/wiki/verilator
[38]
S. Tasiran and K. Keutzer. 2001. Coverage metrics for functional validation of hardware designs. IEEE Design Test of Computers 18, 4 (2001), 36–45.
[39]
Esperanto Technologies. 2019. Dromajo - Esperanto Technology’s RISC-V Reference Model. https://github.com/chipsalliance/dromajo
[40]
Timothy Trippel, Kang G. Shin, Alex Chernyakhovsky, Garret Kelly, Dominic Rizzo, and Matthew Hicks. 2021. Fuzzing Hardware Like Software. arxiv:2102.02308 [cs.AR]
[41]
I. Wagner, V. Bertacco, and T. Austin. 2005. StressTest: an automatic approach to test generation via activity monitors. In Proceedings. 42nd Design Automation Conference, 2005.783–788.
[42]
Sheng-Hong Wang, Rafael Trapani Possignolo, Qian Chen, Rohan Ganpati, and Jose Renau. 2019. LGraph: A Unified Data Model and API for Productive Open-Source Hardware Design. In Open-Source EDA Technology, Proceedings of the Second Workshop on(WOSET’19).
[43]
Claire Wolf. 2017. SymbiYosys (sby) - Front-end for Yosys-based formal verification flows. https://github.com/YosysHQ/SymbiYosys
[44]
D. A. Wood, G. A. Gibson, and R. H. Katz. 1990. Verifying a multiprocessor cache controller using random test generation. IEEE Design Test of Computers 7, 4 (1990), 13–25.
[45]
Alberto Dassatti Xavier Ruppen, Roberto Rigamonti. 2018. Test Program Generation for Functional Verification of PowePC Processors in IBM. In Barcelona RISC-V Workshop.
[46]
F. Zaruba and L. Benini. 2019. The Cost of Application-Class Processing: Energy and Performance Analysis of a Linux-Ready 1.7-GHz 64-Bit RISC-V Core in 22-nm FDSOI Technology. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 27, 11 (Nov 2019), 2629–2640. https://doi.org/10.1109/TVLSI.2019.2926114
[47]
Rui Zhang, Calvin Deutschbein, Peng Huang, and Cynthia Sturton. 2018. End-to-End Automated Exploit Generation for Validating the Security of Processor Designs. In Proceedings of the International Symposium on Microarchitecture (MICRO). IEEE/ACM.
[48]
Jerry Zhao, Ben Korpan, Abraham Gonzalez, and Krste Asanovic. 2020. SonicBOOM: The 3rd Generation Berkeley Out-of-Order Machine. (May 2020).

Cited By

View all
  • (2024)μCFI: Formal Verification of Microarchitectural Control-flow IntegrityProceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security10.1145/3658644.3690344(213-227)Online publication date: 2-Dec-2024
  • (2024)AsFuzzer: Differential Testing of Assemblers with Error-Driven Grammar InferenceProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680345(1099-1111)Online publication date: 11-Sep-2024
  • (2024)Formal Verification of Source-to-Source Transformations for HLSProceedings of the 2024 ACM/SIGDA International Symposium on Field Programmable Gate Arrays10.1145/3626202.3637563(97-107)Online publication date: 1-Apr-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MICRO '21: MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture
October 2021
1322 pages
ISBN:9781450385572
DOI:10.1145/3466752
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2021

Check for updates

Author Tags

  1. RISC-V
  2. co-simulation
  3. enhanced simulation
  4. microprocessor verification

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

MICRO '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 484 of 2,242 submissions, 22%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)627
  • Downloads (Last 6 weeks)86
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)μCFI: Formal Verification of Microarchitectural Control-flow IntegrityProceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security10.1145/3658644.3690344(213-227)Online publication date: 2-Dec-2024
  • (2024)AsFuzzer: Differential Testing of Assemblers with Error-Driven Grammar InferenceProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680345(1099-1111)Online publication date: 11-Sep-2024
  • (2024)Formal Verification of Source-to-Source Transformations for HLSProceedings of the 2024 ACM/SIGDA International Symposium on Field Programmable Gate Arrays10.1145/3626202.3637563(97-107)Online publication date: 1-Apr-2024
  • (2024)An Educational Tool to Analyze the Hardware/Software Integration in RISC-V Systems2024 39th Conference on Design of Circuits and Integrated Systems (DCIS)10.1109/DCIS62603.2024.10769201(1-6)Online publication date: 13-Nov-2024
  • (2023)MorFuzzProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620311(1307-1324)Online publication date: 9-Aug-2023
  • (2023)Toward Developing High-Performance RISC-V Processors Using Agile MethodologyIEEE Micro10.1109/MM.2023.327356243:4(98-106)Online publication date: 1-Jul-2023
  • (2023)SurgeFuzz: Surge-Aware Directed Fuzzing for CPU Designs2023 IEEE/ACM International Conference on Computer Aided Design (ICCAD)10.1109/ICCAD57390.2023.10323819(1-9)Online publication date: 28-Oct-2023
  • (2023)ProcessorFuzz: Processor Fuzzing with Control and Status Registers Guidance2023 IEEE International Symposium on Hardware Oriented Security and Trust (HOST)10.1109/HOST55118.2023.10133714(1-12)Online publication date: 1-May-2023
  • (2023)Fault Attacks on Access Control in Processors: Threat, Formal Analysis and Microarchitectural MitigationIEEE Access10.1109/ACCESS.2023.3280804(1-1)Online publication date: 2023
  • (2023)Functional Verification for Agile Processor Development: A Case for Workflow IntegrationJournal of Computer Science and Technology10.1007/s11390-023-3285-838:4(737-753)Online publication date: 31-Jul-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media