Skip to main content

Functional Simulation Verification of RISC-V Instruction Set Based High Level Language Modeled FPU

  • Conference paper
  • First Online:
  • 1487 Accesses

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1066))

Abstract

Verification of a Floating point Unit is a challenging and unique task. Major challenges are the selection of reference model for verification and coverage domains and space of test vectors. The proposed paper considers a RISC-V compliant floating point unit modelled using a high level language, Bluespec System Verilog as Design Under Test (DUT) for verification. A reference model of floating point unit is developed in ‘C’ compliance with RISC-V ISA. To fulfil the requirements of test vector coverage domain and space, we have adopted four different kinds of test vectors schemes for verification. At first, a pseudo random verification approach is used to reduce the initial errors in design. In step-2, a RISC-V test suite was used to verify the proposed design for compliance with RISC-V ISA. In step-3, FPgen/IBM floating point test vectors were used to test for corner case test vectors, for better coverage space. Further, we adopted a unique approach to validate the RISC-V FPU in FPGA by providing the above three kinds of test vectors as inputs through ‘C’ application code on host machine. The outputs are compared with the above ‘C’ based reference model/FPgen output vectors/RISC-V test suite output vectors. In step-4, FPU on FPGA is validated using Whetstone code on host-machine FPU and redirected Whetstone floating point computations to FPU DUT on Xilinx Virtex-6 vc6lx550T FPGA device. Finally, the RISC-V FPU is integrated with dual issue out-of-order execute, in-order commit RISC-V processor and demonstrated a whetstone benchmarking application on FPGA. Major benefits of the proposed floating point verification can be extended to an application based RISC-V compliant floating point unit validation on FPGA without the use of RISC-V processor pipeline.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   89.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   119.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Goni, O., Todorovich, E., et al.: Generic construction of monitors for floating point unit designs. In: 2012 VIII Southern Conference on Programmable Logic (2012)

    Google Scholar 

  2. Hauser, J.: “Softfloat” technical Report - International Computer Science Institute (2010). http://www.jhauser.us/arithmetic/SoftFloat.html

  3. Cowlishaw, M.: The decNumber C library, 3rd ed. IBM Corp. (2008). https://www.ibm.com/support/knowledgecenter/en/SSB23S_1.1.0.15/gtpa2/pkdecsp.html, http://mirrors.josefsipek.net/speleotrove.com/decimal/decnumber.pdf

  4. Brunelli, C., Nurmi, J., et al.: Design and verification of a VHDL model of a floating-point unit for a RISC microprocessor. In: IEEE International Symposium on System-on-Chip (2016)

    Google Scholar 

  5. Chen, C.I., Yu, C.Y., Lu, Y.J., Wu, C.F.: Apply high-level synthesis design and verification methodology on floating-point unit implementation. In: International Symposium on VLSI Design, Automation and Test (VLSI-DAT) (2014)

    Google Scholar 

  6. EEMBC FPMark. https://www.eembc.org/fpmark/

  7. Pachiana, G., Rodriguez, J.A.: Coverage modeling for verification of floating point Arithmetic units. In: Argentine School of Micro-Nanoelectronics, Technology and Applications (2014)

    Google Scholar 

  8. IBM Floating Point Test Generator. https://www.research.ibm.com/haifa/projects/verification/fpgen/

  9. Goñi, O., Todorovich, E., et al.: Components for coverage-driven verification of floating-point units. In: IEEE IX Southern Conference on Programmable Logic (SPL) (2014)

    Google Scholar 

  10. Krautz, U., Paruthi, V., et al.: Automatic verification of floating point units. In: Proceedings of 51st Annual Design Automation, DAC 2014 (2014)

    Google Scholar 

  11. Guralnik, E., Birnbaum, A.J., Koyfman, A., et al.: Implementation specific verification of divide and square root instructions. In: 19th IEEE International Symposium on Computer Arithmetic (2009)

    Google Scholar 

  12. Duale, A.Y., Decker, M.H., et al.: Decimal floating-point in z9: an implementation and testing perspective. http://research.ibm.com/haifa/projects/verification/fpgen/papers/duale.pdf

  13. Jacobi, C., et al.: Automatic formal verification of fused-multiply-add FPUs. https://www.research.ibm.com/haifa/projects/verification/SixthSense/papers/flavor_date_05.pdf

  14. Aharoni, M., et al.: FPgen – a test generation framework for datapath floating-point verification. In: Eighth IEEE International High-Level Design Validation and Test Workshop (2003)

    Google Scholar 

  15. Guralnik, E., et al.: Simulation-Based Verification of Floating-Point Division (2011). https://www.research.ibm.com/haifa/projects/verification/fpgen/papers/Simulation_Based_Verification_of_Floating_Point_Division.pdf

    Article  MathSciNet  Google Scholar 

  16. Seidel, P.-M.: Formal verification of an iterative low-power x86floating-pointmultiplier with redundant feedback. https://arxiv.org/pdf/1110.4675.pdf

  17. Kiran Kumar, M.A., et al.: Symbolic trajectory evaluation: the primary validation vehicle for next generation intel® processor graphics FPU. http://www.cs.utexas.edu/~hunt/fmcad/FMCAD12/025.pdf

  18. Ouchani, S., et al.: A formal verification framework for bluespec system verilog in specification & design languages (FDL) (2013)

    Google Scholar 

  19. OMG: OMG Systems Modelling Language (OMG SysML) Specification, Object Management Group. http://www.omgsysml.org/

  20. Bluespec inc. http://www.bluespec.com

  21. Singh, G., et al.: Model-checking based verification for hardware designs specified using bluespec system verilog. In: IEEE 8th International Workshop on Test and Verification (2007)

    Google Scholar 

  22. Beyer, S.: The application of formal technology on fixed-point arithmetic systemC designs. In: Design and Verification Conference and Exhibition. One spin soluution (2015)

    Google Scholar 

  23. Ram, R.: Formal verification of floating point hardware with assertion based VIP. In: Design and Verification Conference and Exhibition. One spin solutions (2018)

    Google Scholar 

  24. Travis, W., Pouarz, V., et al.: Efficient and exhaustive floating point verification using sequential equivalence checking. In: DVCon (2017)

    Google Scholar 

  25. Cimatti, A., et al.: Software model checking SystemC. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 32, 774–787 (2013)

    Article  Google Scholar 

  26. Cimatti, A., Griggio, A., Micheli, A., Narasamdya, I., Roveri, M.: Kratos – a software model checker for SystemC. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 310–316. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_24

    Chapter  Google Scholar 

  27. Herber, P., et al.: Formal verification of SystemC designs using the BLAST software model checker. In: International Workshop on Model-Based Architecting and Construction of Embedded Systems (ACES-MB) (2013)

    Google Scholar 

  28. Ngo, V.C., et al.: Statistical model checking for SystemC models. In: IEEE 17th International Symposium on High Assurance Systems Engineering (HASE) (2016)

    Google Scholar 

  29. Oscar, O.: On the Formal Semantics of Bluespec System Verilog, Thesis (2013)

    Google Scholar 

  30. Hauksson, H.: Towards model checking BSV in Uppaal, MscThesis (2013)

    Google Scholar 

  31. Singh, G., et al.: Model checking bluespec specified hardware designs. In: Eighth International Workshop on Microprocessor Test and Verification (2017)

    Google Scholar 

  32. Richards, D., et al.: A prototype embedding of bluespec system verilog in the PVS theorem prover. In: Second NASA Formal Methods Symposium, NFM 2010 (2010)

    Google Scholar 

  33. Richards, D., et al.: A prototype embedding of bluespec systemverilog in the SAL model checker. http://www.cs.ox.ac.uk/dcc2010/slides/richards.pdf

  34. Singh, G., Shukla, Sandeep K.: Verifying compiler based refinement of bluespecTM specifications using the SPIN model checker. In: Havelund, K., Majumdar, R., Palsberg, J. (eds.) SPIN 2008. LNCS, vol. 5156, pp. 250–269. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85114-1_18

    Chapter  Google Scholar 

  35. Raveendran, A., Patil, V.B., et al.: Out of order floating point co-processor for RISC V ISA. In: IEEE VLSISATA (2015)

    Google Scholar 

  36. Waterman, A., Lee, Y., Patterson, D.A., Asanovi, K.: The RISC-V instruction set manual. Base User-Level ISA. V2.2, vol. I (2017)

    Google Scholar 

  37. Clarke, E., German, S.: Verifying the SRT division algorithm using theorem proving techniques. Formal Methods Syst. Des. 14, 7–44 (1999)

    Article  Google Scholar 

  38. Fournier, L., Arbetman, Y., et al.: Functional verification methodology for microprocessors using the genesys test program generator. Application to the x86 microprocessors family. In: DATE99 (1999)

    Google Scholar 

  39. Harrison, J.: Formal verification of IA-64 division algorithms. In: Aagaard, M., Harrison, J. (eds.) TPHOLs 2000. LNCS, vol. 1869, pp. 233–251. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-44659-1_15

    Chapter  Google Scholar 

  40. Jerinic, V., Langer, J., Heinkel, U., Muller, D.: New methods and coverage metrics for functional verification. In: IEEE Design, Automation and Test in Europe (2006)

    Google Scholar 

  41. IEEE standards Board and ANSI. IEEE Standards for Binary Floating-point Arithmetic, IEEE Std., 754-2008 (2008)

    Google Scholar 

  42. Whetstone. https://www.netlib.org/benchmark/whetstone.c

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Aneesh Raveendran .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Raveendran, A., Kumar, V., Vivian, D., Selvakumar, D. (2019). Functional Simulation Verification of RISC-V Instruction Set Based High Level Language Modeled FPU. In: Sengupta, A., Dasgupta, S., Singh, V., Sharma, R., Kumar Vishvakarma, S. (eds) VLSI Design and Test. VDAT 2019. Communications in Computer and Information Science, vol 1066. Springer, Singapore. https://doi.org/10.1007/978-981-32-9767-8_41

Download citation

  • DOI: https://doi.org/10.1007/978-981-32-9767-8_41

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-32-9766-1

  • Online ISBN: 978-981-32-9767-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics