Towards Test-Driven Development for FPGA-Based Modules Across Abstraction Levels
Computer science engineering; Doctor of philosophy, Computer Architecture. School of Computer Science University of Castilla-La Mancha, Ciudad Real, Spain
Jesus.Barba@uclm.es
Computer Architecture and Networks Group, University of Castilla-La Mancha, Ciudad Real, Spain
juancarlos.lopez@uclm.es
JOURNAL — IEEE Access
PAGES — 31581 – 31594
ISSN — 2169-3536
VOLUME — 9
PUBLISHER — IEEE
YEAR — 2021
Julián Caba, Fernando Rincón, Jesús Barba, José A. De La Torre, Julio Dondo, Juan C. López, Towards Test-Driven Development for FPGA-Based Modules Across Abstraction Levels In Expert Systems with Applications, Volume 9, 2021, Pages 31581 – 31594, ISSN 2169-3536, https://doi.org/10.1109/ACCESS.2021.3059941.
(https://ieeexplore.ieee.org/document/9355128/metrics#metrics)
@ARTICLE{9355128,
author={Caba, Julián and Rincón, Fernando and Barba, Jesús and De La Torre, José A. and Dondo, Julio and López, Juan C.},
journal={IEEE Access},
title={Towards Test-Driven Development for FPGA-Based Modules Across Abstraction Levels},
year={2021},
volume={9},
number={},
pages={31581-31594},
doi={10.1109/ACCESS.2021.3059941}}
Abstract
High-Level Synthesis (HLS) tools help engineers to deal with the complexity of building heterogeneous embedded systems that make it use of reconfigurable technology. Also, HLS opens up a way for introducing, into the development flow of custom hardware components, techniques well known in the software industry such as Test-Driven Development (TDD). However, the support provided by HLS tools for verification activities is limited, and it is usually focused on the initial steps of the design process. In this paper, a hardware testing framework is introduced as an enabler for effortless on-board verification of components by applying the Unit Testing Paradigm and, hence, realizing TDD on reconfigurable hardware. The proposed solution comprises a hardware/software introspection infrastructure to verify modules of a system at different stages, spawning multiple abstraction levels without extra effort nor redesigning the component. Our solution has been implemented for the Xilinx ZynQ FPGA-SoC architecture and applied to the verification of C-kernels within the CHStone Benchmark. Effortless integration into the Xilinx Vivado design flow and tools is supported by a set of automatic generation scripts developed for this end. Experimental results show a considerable speedup of the verification time and unveils inaccuracies concerning the co-simulation estimation obtained by Xilinx tools when compared with the on-board latency measured by our framework.