Skip to content

IEEE binary 32 floating-point division hardware in Chisel based on Harmonized Parabolic Synthesis with a single stage.

License

Notifications You must be signed in to change notification settings

Ssavas/fp-division-no-pipeline

Repository files navigation

@Author Suleyman Savas contact: [email protected]

Floating point division written in Chisel - using harmonized parabolic synthesis. The implementation has a single stage which means it produces a result at a single cycle.

The divisor is inverted and the result is multiplied by the dividend.

Internal format is not IEEE 754 single precision float. (Mantissas are the same but exponents are different.)

Most significant 6 bits of the mantissa are used for addressing the coefficients.

Conversion of coefficients into binary (coeffcients are smaller than 1): decimal 0.25 = binary 0.010 decimal 0.625 = binary 0.101 (integer part and fraction part are converted seperately)

Implementation details, results and discussions can be find in the following article:

"Efficient Single-Precision Floating-Point Division Using Harmonized Parabolic Synthesis" https://ieeexplore.ieee.org/abstract/document/7987504/

How to compile:

Go into the folder

To run the tests and generate harness: sbt "run --backend c --compile --test --genHarness"

Generating verilog: sbt "run --backend v --genHarness"

More info on Chisel: https://www.chisel-lang.org/

About

IEEE binary 32 floating-point division hardware in Chisel based on Harmonized Parabolic Synthesis with a single stage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages