fpu-wrappers
fpu-wrappers copied to clipboard
Wrappers for open source FPU hardware implementations.
fpu-wrappers
This repo intends to create wrappers for open source FPU hardware implementations currently including:
| op | berkeley-hardfloat | fpnew | flopoco | CNRV-FPU | opencores-fpu | fudian | vfloat |
|---|---|---|---|---|---|---|---|
| add | Y | Y | Y | Y | Y | Y | Y |
| mul | Y | Y | Y | Y | Y | Y | Y |
| fma | Y | Y | Y | Y | Y | Y | |
| cmp | Y | Y | Y | Y | |||
| div | Y | Y | Y | Y | Y | Y | Y |
| sqrt | Y | Y | Y | Y | Y | Y | |
| fp2int | Y | Y | Y | Y | Y | Y | Y |
| int2fp | Y | Y | Y | Y | Y | Y | Y |
| fp2fp | Y | Y | Y | Y | |||
| pow | Y | ||||||
| log | Y | ||||||
| exp | Y | ||||||
| custom | Y | Y |
custom means custom floating point format.
And make performance comparison.
Module naming convection:
- Type 1: Floating point format + operator(FAdd/FMA/FExp)
- Type 2: Floating point format
ToFloating point format - Type 3: Floating point format + FPU(many operations)
Possible floating point formats:
- HF: berkeley-hardfloat +1 bits
- IEEE: IEEE 754
- FPC: flopoco +2 bits
IEEE754 FMA:
- Area: fpnew = flopoco < hardfloat < fudian
- Frequency: hardfloat = flopoco > fpnew > fudian
- Power: fpnew < hardfloat < flopoco < fudian