VFLOAT: The Northeastern Variable precision FLOATing point library


Contents


What's New

Update Date
Fixed fix2float and float2fix and added new square root and divide, as well as two new versions of an accumulator. November 13, 2007

Introduction

We have developed a library of fully parameterized hardware modules for variable precision floating-point arithmetic. The library includes modules for format control, arithmetic operators and conversion to and from any fixed-point format. All the modules have been implemented in VHDL and designed to run on different FPGA devices. They have been tested on reconfigurable computing engines from Annapolis Microsystems.

An important feature of these modules is that denormalize, and normalize/round are decoupled from the arithmetic operations. This gives the designer full control over where and when to normalize floating point calculations, and results in savings of area in their hardware implementation. The currently implemented arithmetic operators are floating point add/sub, multiply, divide, square root, and accumulate.

Please let us know if you are using the library by sending email to Prof. Leeser. We would also like to receive bug reports. We will do our best to keep the library up to date.

Back to Top

Floating Point Modules

Fixed-point to floating-point conversion (unsigned)

Fixed-point to floating-point conversion (signed)

Floating-point to fixed-point conversion (unsigned)

Floating-point to fixed-point conversion (signed)

Floating-point adder/subtracter

Floating-point multiplier

Floating-point divider

Floating-point square root

Floating-point accumulator

Floating-point round and normalizer

Click here for a graph of the dependences for each of the modules in the library.

Back to Top

Download Area

All the revised library modules can be downloaded here. (Fix2float and float2fix now work for signed and unsigned.)

Two new accumulators are presented: One based on an adder tree with fixed latencies and another using a single adder and feedback with variable latency.

To use the modules, first unzip the zip file to some directory. In this directory, there are two subdirectories, one is named library_modules, which contains the modules for format control, operators and conversion to and from any fixed-point format. The other is named floatlib; it contains all the necessary sub-modules. The dependencies of these modules can be found by click the hyperlink on the left side. To simulate, first compile all the vhd files in directory floatlib, then compile the module you want simulate in the library_modules, configure library modules according to the dependencies.

Below are some examples that implement basic single precision IEEE operations such as addition and multiplication.

Example name Download link
IEEE adder Adder
IEEE subtractor Subtractor
IEEE divider Divider
IEEE square root Square root
IEEE multiplier Multiplier

Archive Area

All the original library modules can be downloaded here. (Created on June, 2002)

If you have any questions or problems using the library, please contact Sherman Braganza

Back to Top

Other Information

Publications:

X. Wang, M. Leeser, and S. Braganza, Advanced Components in the Variable Precision Floating-Point Library, Field-programmable Custom Computing Machines (FCCM) 2006, April 2006, Napa CA.

X. Wang, M. Leeser, and H. Yu, A Parameterized Floating-Point Library Applied to Multispectral Image Clustering, 7th Annual MAPLD International Conference, September 2004, Washington DC.

X. Wang and M. Leeser, Variable Precision Floating Point Division and Square Root, 8th Annual High Performance Embedded Computing Workshop, October 2004, Lexington, MA.

Pavle Belanovic and Miriam Leeser, A Library of Parameterized Floating Point Modules and Their Use. 12th International Conference on Field Programmable Logic and Application. September 2002.

Pavle Belanovic Library of Parameterized Hardware Modules for Floating-Point Arithmetic with An Example Application M.S. Thesis, Dept of Electrical and Computer Engineering, Northeastern University, June 2002

People:

Faculty: Dr. Miriam Leeser

Graduate Students: Pavle Belanovic, Haiqian Yu, Sherman Braganza, Xiaojun Wang

Institutions:

Reconfigurable Computing Lab

Terms:

ATTENTION: 

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 

 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

 

Back to Top

Maintained by Sherman Braganza
Reconfigurable Computing Lab, ECE Department,  Northeastern University Last revised: November, 2007.