OpenCores

Floating Point Unit :: Overview

Project maintainers

Details

Name: fpu
Created: Sep 25, 2001
Updated: Sep 2, 2014
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download
Statistics: View

Other project properties

Category: Coprocessor
Language: Verilog
Development status: Stable
Additional info: none
WishBone Compliant: No
License:

Description

This is a single precision floating point unit. It is fully IEEE 754 compliant. It can currently perform Add/Sub, Mul and Divide operations, as well as integer to floating point and floating point to integer conversions. It supports four rounding modes: Round to Nearest Even, Round to Zero, Round to +INF and Round to -INF.

There is now also a separate FP compare unit. It is located in the fpu/fcmp directory.

Motivation

- A 100% IEEE 754 compliant Floating Point Unit
- Usable by the OR1K CPU
- Options to extend the core
- Free !

Compatibility

To the best of my knowledge the FPU is 100% IEEE 754 compliant. I have run over 14Mil. test vectors on it, that where generated using the SoftFloat library by John R. Hauser, which can be found at: http://www.jhauser.us/arithmetic/SoftFloat.html. The test pattern generator is included with the distribution.

Performance

- Single cycle execution
- 4 stage pipeline

Implementing the core

It is very difficult to partition such a complex piece of hardware for optimal pipe lining. Therefore you will need a synthesis tool that has a "retiring" feature to obtain best results.

Actual Add/Sub, Multiply and Divide cores must be replaced in the primitives.v file, or your synthesis tool must be able to synthesize them for you. I might fix this in the future.

Status

- Second version of the core is released. Included with the release is also a test bench and a test pattern generator.
- I won't be doing any more work on the core in the near future, except for bug fixes.
- The core can be downloaded from OpenCores CVS via cvsweb or via cvsget (use fpu for module name)

Things that need to be done

- Add a remainder function
- Predict leading zeros to improve performance of post normalize unit

Change log

- 9/16/00 RU Added FP compare unit
- 9/15/00 RU Added int to float and float to int conversion
- 9/15/00 RU Fixed documentation
- 9/13/200 RU Initial release



This IP Core is provided by:

www.ASICS.ws - Solutions for your ASIC/FPGA needs -

© copyright 1999-2014 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.