Efficient C level hardware design for floating point biomedical DSP applications

Recent advances in embedded system design has increased their interference in different application domains, where software only solutions have prevailed. This new implementation platform require however quality of results in terms of speed, power and computational complexity, along with strict time-to-market schedules. Performance is sought by utilizing modern Field Programmable Gate Array (FPGA) devices, offering hundreds of GFLOPs with maximum power efficiency. Productivity is enforced with High-Level Synthesis (HLS) or Electronic System Level (ESL) or C-based hardware design methodologies, that offer an efficient abstraction level to boost-up early prototyping. However, just like the migration from schematics to Hardware Description Languages (HDLs) required specific coding styles for efficient hardware design, C-based hardware design also requires efficient coding guidelines to be followed. This paper presents a set of such coding guidelines, and evaluates their efficiency for FPGA based scientific, floating point arithmetic calculations. As found through extensive experimentation, the performance and area optimizations offered by efficient coding can improve the ones offered by HLS only, even more than 90%. So, while not every C program can be turned into hardware with the press of a button, efficient coded C programs can offer a profitable productivity boost.

[1]  Faizal Arya Samman,et al.  SPECTRON: Streaming processor specific for adaptronic and biomeditronic applications , 2012, The 5th 2012 Biomedical Engineering International Conference.

[2]  Chia-Ching Chou,et al.  An efficient and accurate empirical mode decomposition of the technical design and methods for biological sound , 2012, 2012 IEEE Biomedical Circuits and Systems Conference (BioCAS).

[3]  Gary Smith,et al.  High-Level Synthesis: Past, Present, and Future , 2009, IEEE Design & Test of Computers.

[4]  Karl S. Hemmert,et al.  Fast, Efficient Floating-Point Adders and Multipliers for FPGAs , 2010, TRETS.

[5]  Jaideep Chandran,et al.  Implementation of a colorimetric algorithm for portable blood gas analysis , 2010, 2010 International Conference on Microelectronics.

[6]  Brent W. Robinson,et al.  Fixed and floating point analysis of linear predictors for physiological hand tremor in microsurgery , 2010, 2010 IEEE International Conference on Acoustics, Speech and Signal Processing.

[7]  Viktor K. Prasanna,et al.  Scalable and Modular Algorithms for Floating-Point Matrix Multiplication on Reconfigurable Computing Systems , 2007, IEEE Transactions on Parallel and Distributed Systems.

[8]  Hui Ding,et al.  Hardware acceleration for motion tracking system used in image-guided surgery , 2010, 2010 3rd International Conference on Biomedical Engineering and Informatics.