openFPU64 - Open Source Double Precision FPU

Details
Category: Arithmetic Core
Created: April 17, 2010
Updated: January 27, 2020
Language: VHDL
Other project properties
Development Status: Beta
WishBone compliant: No
WishBone version: n/a
License: GPL
Description
Free and open source double precision Floating Point Unit (FPU).
The openFPU64 currently features:
- double precision
- Addition/Subtraction
- Multiplication
- rounding (to nearest even)
- subnormals/denormals
- validated against IEEE754
- Compatible with Avalon Bus
- Wishbone interface will be provided soon
New algorithms can be added easily, just modify the code marked
with ADD_ALGORITHMS_HERE
Everything marked with FUTURE is not yet implemented,
but already added for easier transition.
Tested on CycloneII and Cyclone III FPGAs.
If any questions arise, don't hesitate to contact me.
Performance
Add/Sub have an fmax of 112Mhz on a Cyclone II.
Multiply has a fmax of 70Mhz on a Cyclone II.
A faster implementation of Multiply will be provided soon.
(faster in regard to fmax, with only 2 clock cycles more delay)
Testsuites
Due to the size and a 'bug' in the websvn which got the tar.bz2 corrupted I removed the testsuites from svn.
I uploaded them to
http://www.hs-augsburg.de/~phuewe/openFPU64tests.tar.bz2
please download them from there.
After downloading them, untar them to tests/
From openfpu64 root directory you can now create the testsuites using
make TESTSUITENAME_testsuite
e.g.
make add_testsuite
You can then compile the openfpu64_tb.vhd with modelsim or ghdl.
If you use ghdl you can generate the executable testbench by simply running make.
The testsuites contain 45k testcases for add/sub each and 90k for multiply.