Abstract
This paper presents verification and benchmarking required for the development of a coprocessor digital circuit for integer multiple-precision arithmetic (MPA). Its code is developed, with the use of very high speed integrated circuit hardware description language (VHDL), as an intellectual property core. Therefore, it can be used by a final user within their own computing system based on field-programmable gate arrays (FPGAs). The coprocessor is still under development and its open-source code is available on the Internet, based on the Mozilla Public License. Therefore, verification and benchmarking of the coprocessor code are vitally important issues as the sources are continually downloaded by users all over the world. In this contribution, we present software tools developed as a part of the system, allowing for detection of errors in the coprocessor code as well as for execution of its benchmarking tests. The research conclusion is that, without well-designed verification and benchmarking software tools, the development of any advanced digital circuit, such as a coprocessor, is actually impossible in realistic time. It stems from the fact that 60% of the project repository include hardware-description codes, whereas the rest of the codes support correct development of the project, i.e., verification and benchmarking in the design process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aldec Inc.: Riviera-PRO Manual (2017). www.aldec.com. Accessed 08 Aug 2019
Bryant, R.E.: A methodology for hardware verification based on logic simulation. J. ACM 38(2), 299–328 (1991). https://doi.org/10.1145/103516.103519
Granlund, T.: GMP Development Team: The GNU multiple precision arithmetic library (Edition 6.1.2) (2016). www.gmplib.org. Accessed 08 Aug 2019
Kim, J., Kim, E.S., Yoo, J., Lee, Y.J., Choi, J.G.: An integrated software testing framework for FPGA-based controllers in nuclear power plants. Nucl. Eng. Technol. 48(2), 470–481 (2016). https://doi.org/10.1016/j.net.2015.12.008
Lissel, R., Gerlach, J.: Introducing new verification methods into a company’s design flow: an industrial user’s point of view. In: 2007 Design, Automation and Test in Europe Conference and Exhibition, pp. 1–6 (2007). https://doi.org/10.1109/DATE.2007.364675
Rudnicki, K., Stefanski, T.P.: IP core of coprocessor for multiple-precision-arithmetic computations. In: 2018 25th International Conference Mixed Design of Integrated Circuits and System (MIXDES), pp. 416–419 (2018). https://doi.org/10.23919/MIXDES.2018.8436868
Rudnicki, K., Stefański, T.P.: Implementation of addition and subtraction operations in multiple precision arithmetic. In: 2019 MIXDES - 26th International Conference Mixed Design of Integrated Circuits and Systems, pp. 231–235 (2019). https://doi.org/10.23919/MIXDES.2019.8787156
Rudnicki, K., Stefański, T.P., Żebrowski, W.: Integer-MPA-coprocessor (2020). https://github.com/stafan26/integer-MPA-coprocessor
Rudnicki, K., Stefański, T.P., Żebrowski, W.: Open-source coprocessor for integer multiple precision arithmetic. Electronics 9(7), 1141 (2020). https://doi.org/10.3390/electronics9071141
Stefański, T.: Applications of the discrete green’s function in the finite-difference time-domain method. Prog. Electromagn. Res.-PIER 139, 479–498 (2013). https://www.jpier.org/PIER/pier.php?paper=13032906
Stefański, T.P.: A new expression for the 3-D dyadic FDTD-compatible green’s function based on multidimensional z-transform. IEEE Antennas Wirel. Propag. Lett. 14, 1002–1005 (2015). https://doi.org/10.1109/LAWP.2015.2388955
Stefański, T.P., Rudnicki, K., Żebrowski, W.: Implementation of coprocessor for integer multiple precision arithmetic on Zynq Ultrascale+ MPSoC. In: 2021 28th International Conference on Mixed Design of Integrated Circuits and System, pp. 280–285 (2021). https://doi.org/10.23919/MIXDES52406.2021.9497554
Stefański, T.: Discrete green’s function approach to disjoint domain simulations in 3D FDTD method. Electron. Lett. 49, 597–598 (2013). https://digital-library.theiet.org/content/journals/10.1049/el.2012.4462
Vemuri, R., Kalyanaraman, R.: Generation of design verification tests from behavioral VHDL programs using path enumeration and constraint programming. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 3(2), 201–214 (1995). https://doi.org/10.1109/92.386221
Xilinx Inc.: Integrated Logic Analyzer v6.2 - LogiCORE IP Product Guide, PG172 (2016). www.xilinx.com. Accessed 08 Aug 2019
Xilinx Inc.: Vivado Design Suite User Guide - Getting Started, UG910 (v2018.3) (2018). www.xilinx.com. Accessed 08 Aug 2019
Xilinx Inc.: Xilinx Quick Emulator User Guide, UG1169 (v2020.1) (2020). www.xilinx.com. Accessed 24 Mar 2022
Zheng, D., Wang, Y., Xueyi, Z.: The methods of FPGA software verification. In: 2011 IEEE International Conference on Computer Science and Automation Engineering, vol. 3, pp. 86–89 (2011). https://doi.org/10.1109/CSAE.2011.5952639
Acknowledgments
Tomasz P. Stefański is grateful to Cathal McCabe at Xilinx Inc. for arranging the donation of design software tools.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix: Project Repository
Appendix: Project Repository
The project repository [8] consists of documentation (doc), firmware and software directories. Then, firmware directory consists of zedboard, scripts, sim and src directories. In software directory, the following directories are present: DPI, common, data_apps, emusrup, helpers, runtimes, vhdl_gens. Additionally, one can find there the scripts clean_all_programs.sh and compile_all_programs.sh which make it possible to clean and compile all the source files in this directory. The directory DPI includes the codes necessary to execute DPI simulations in Vivado for the MPA core and its modules alone. Then, the directory common includes various C functions used by many different codes in the project repository. In the directory data_apps, one can find codes allowing for the generation of input files for benchmarking of the MPA coprocessor. In the directory emusrup, one can find the code of the MPA coprocessor emulator. In the directory helpers, one can find some useful codes, e.g., allowing us to change the format of binary files. In the directory runtimes, one can find some useful codes allowing for evaluation of the CPU throughput in benchmarking codes. In the directory vhdl_gens, one can find useful codes allowing us to generate, automatically, some VHDL codes, e.g., for the multiplexers used in the coprocessor design.
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Stefański, T.P., Rudnicki, K., Żebrowski, W. (2023). Verification and Benchmarking in MPA Coprocessor Design Process. In: Kowalczuk, Z. (eds) Intelligent and Safe Computer Systems in Control and Diagnostics. DPS 2022. Lecture Notes in Networks and Systems, vol 545. Springer, Cham. https://doi.org/10.1007/978-3-031-16159-9_22
Download citation
DOI: https://doi.org/10.1007/978-3-031-16159-9_22
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-16158-2
Online ISBN: 978-3-031-16159-9
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)