Abstract
While hardware/software partitioning has been shown to provide significant performance gains, most hardware/software partitioning approaches are limited to partitioning computational kernels utilizing integers or fixed point implementations. Software developers often initially develop an application using floating point representations built-in to most programming languages and later convert the application to a fixed point representation—a potentially time consuming process. In this paper, we present the Arizona Float ⇔ Fixed Hardware Library (AFFHL) consisting of efficient, configurable floating point to fixed point and fixed point to floating point hardware converters. By utilizing these converters, a system’s hardware/software implementation can be separated into a floating point domain consisting of the microprocessor and memory subsystem and a fixed point domain consisting of one or more partitioned hardware coprocessors. This separation enables a rapid hardware/software partitioning approach in which floating point software kernels can be implemented using fixed point hardware coprocessors without the need for application developers to first rewrite software applications as fixed point implementations. We further present an overview of a basic hardware/software partitioning methodology for rapidly partitioning computational kernels within floating point software application to either statically determined fixed point hardware coprocessors or dynamically adaptable fixed point hardware coprocessors in which the required fixed point representation can be dynamically determined and adjusted at runtime.
Similar content being viewed by others
References
Arizona Float ⇔ Fixed Hardware Library (AFFHL) (2009). http://www.ece.arizona.edu/~embedded/Research/Float2Fixed#AFFHL
Balboni A, Fornaciari W, Sciuto D (1996) Partitioning and Exploration in the TOSCA Co-Design Flow. In: Proceedings of the international workshop on hardware/software codesign (CODES), pp 62–69
Banerjee P, Bagchi D, Haldar M, Nayak A, Kim V, Uribe R (2004) Automatic conversion of floating-point matlab programs into fixed-point FPGA based hardware design. In: Proceedings of the design automation conference (DAC), pp 484–487
Belanovíc P, Rupp M. (2005) Automated floating-point to fixed-point conversion with the fixify environment. In: International workshop on rapid system prototyping (RSP)
Berkeley Design Technology Inc (2004) http://www.bdti.com/articles/info_eet0207fpga.htm#DSPEnhanced%20FPGAs
Böhm W, Hammes J, Draper B, Chawathe M, Ross C, Rinker R, Najjar W (2002) Mapping a single assignment programming language to reconfigurable systems. J Supercomput 21:117–130
Chen W, Kosmas P, Leeser M, Rappaport C (2004) An FPGA implementation of the two-dimensional finite-difference time-domain (FDTD) algorithm. In: Proceedings of the international symposium on field-programmable gate arrays (FPGA), pp 97–105
Clark M, Mulligan M, Jackson D, Linebarger D (2005) Accelerating fixed-point design for MB-OFDM UWB systems. Comms Design, January 26
Cmar R, Rijnders L, Schaumont P, Vernalde S, Bolsens I (1999) A methodology and design environment for DSP ASIC fixed point refinement. In: Proceedings of the design automation and test in Europe conference (DATE)
Gajski D, Vahid F, Narayan S, Gong J (1998) SpecSyn: an environment supporting the specify-explore-refine paradigm for hardware/software system design. IEEE Trans VLSI Syst 6(1):84–100
Guo Z, Buyukkurt B, Najjar W, Vissers K (2005) Optimized generation of data-path from C codes. In: Proceedings of the design automation and test in Europe conference (DATE), pp 112–117
Guthaus M, Ringenberg J, Ernst D, Austin T, Mudge T, Brown R (2001) MiBench: A free, commercially representative embedded benchmark suite. IEEE international workshop on workload characterization (WWC)
Henkel J (1999) A low power hardware/software partitioning approach for core-based embedded systems. In: Proceedings of the design automation conference (DAC), pp 122–127
Henkel J, Li Y (1998) Energy-conscious HW/SW-partitioning of embedded systems: A case study on an MPEG-2 encoder. In: Proceedings of the international workshop on hardware/software codesign (CODES), pp 23–27
IEEE. IEEE 754: Standard for Binary Floating-Point Arithmetic. http://grouper.ieee.org/groups/754/
Keane J, Bradley C, Ebeling C (2004) A compiled accelerator for biological cell signaling simulations. In: Proceedings of the international symposium on field-programmable gate arrays (FPGA), pp 233–241
Keding H, Willems M, Coors M, Meyr H (1998) Fridge: A fixed-point design and simulation environment. In: Proceedings of the design automation and test in Europe conference (DATE)
Lee C, Potkonjak M, Mangione-Smith W (1997) MediaBench: A tool for evaluating and synthesizing multimedia and communications systems. In: Proceedings of the international symposium on microarchitecture (MICRO), pp 330–335
Lysecky R, Stitt G, Vahid F (2006) Warp processors. ACM Trans Des Autom Electron Syst 11(3):659–681
Menard D, Chillet D, Charot F, Sentieys O (2002) Automatic floating-point to fixed-point conversion for dsp code generation. In: Proceedings of the international conference on compilers, architectures and synthesis for embedded systems (CASES), pp 270–276
Saldanha L, Lysecky R (2008) Hardware/software partitioning of floating point software applications to fixed-point coprocessor circuits. In: Proceedings of the international conference on hardware/software codesign and system synthesis (CODES + ISSS)
Shi C, Brodersen RW (2003) An automated floating-point to fixed-point conversion methodology. In: Proceedings of the IEEE international conference on acoustics, speech, and signal processing, pp 529–532
Shi C, Brodersen RW (2004) Automated Fixed-point data-type optimization tool for signal processing and communication systems. In: Proceedings of the design automation conference (DAC)
Stitt G, Vahid F, McGregor G, Einloth B (2005) Hardware/software partitioning of software binaries: A case study of H.264 decode. In: Proceedings of the international conference on hardware/software codesign and system synthesis (CODES + ISSS), pp 285–290
Stitt G, Vahid F, Nematbakhsh S (2004) Energy savings and speedups from partitioning critical loops to hardware in embedded systems. ACM Trans Embed Comput Syst 3(1):218–232
Venkataramani G, Najjar W, Kurdahi F, Bagherzadeh N, Bohm W (2001) A compiler framework for mapping applications to a coarse-grained reconfigurable computer architecture. In: Proceedings of the international conference on compiler, architecture and synthesis for embedded systems (CASES)
Villarreal J, Lysecky R, Cotterell S, Vahid F (2001) Loop analysis of embedded applications. University of California Riverside Technical Report UCR-CSE-01-03
Wan M, Ichikawa Y, Lidsky D, Rabaey L (1998) An energy conscious methodology for early design space exploration of heterogeneous DSPs. In: Proceedings of the ISSS custom integrated circuits conference (CICC)
Willems M, Bürsgens V, Keding H, Grötker T, Meyr H (1997) System level fixed-point design based on an interpolative approach. In: Proceedings of the design automation conference (DAC), pp 293–298
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Saldanha, L., Lysecky, R. Float-to-fixed and fixed-to-float hardware converters for rapid hardware/software partitioning of floating point software applications to static and dynamic fixed point coprocessors. Des Autom Embed Syst 13, 139–157 (2009). https://doi.org/10.1007/s10617-009-9044-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-009-9044-4