next up previous [pdf]

Next: Profiling Up: Fu et al.: FPGA Previous: A stream Compiler (ASC)


Customized Number Representations

FPGA-based implementations have the advantage over current software-based implementations of being able to use customizable number representations in their circuit designs. On a software platform, users are usually constrained to a few fixed number representations, such as 32/64-bit integers and single/double-precision floating-point; while the reconfigurable logic and connections on an FPGA enables the users to explore various number formats with arbitrary bit-widths. Furthemore, users are also able to design the arithmetic operations for these customized number representations, can thereby providing a highly customized solution for a given problem.

cus-rep-wf
cus-rep-wf
Figure 1.
Basic steps to achieve a hardware design with customized number representations.
[pdf] [png]

In general, to provide a customized number representation for an application, we have three questions to solve:

This section discusses our approaches to finding a solution to these three problems. The approaches are partly based on our previous work on bit-width optimization (Lee et al., 2006) and comparison between different number representations (Fu et al., 2006,2007). As shown in Fig. 1, we manually partition the Fortran program into two parts: one part will run in software and the other in hardware (target code). The first step is to profile the target code to acquire information about the distribution of values that each variable can take. In the second step, based on the range information, we map the Fortran code into a hardware design described in ASC format, which includes implementation of arithmetic operations and function evaluation. In the third step, the ASC description is translated into bit-accurate simulation code, and merged into the original Fortran program to provide a value simulator for the original application. Using this value simulator, explorations can be performed with configurable settings such as different number representations, different bit-widths and different arithmetic algorithms. Based on the exploration results, we can determine the optimal number format for this application with regards to certain characteristics such as circuit area and performance.



Subsections
next up previous [pdf]

Next: Profiling Up: Fu et al.: FPGA Previous: A stream Compiler (ASC)

2007-09-18