ownergit repository hosting
last changeSat, 23 Jan 2021 22:33:44 +0000 (19:33 -0300)

IEEE754 Floating-Point ALU, in nmigen

This project implements a pipelined IEEE754 floating-point ALU that supports FP16, FP32 and FP64. It is a general-purpose unit that may be used in any project (not limited to one specific processor).


Building sfpy

The standard sfpy will not work without being modified to the type of IEEE754 FP emulation being tested. This FPU is emulating RISC-V, and there is some weirdness in x86 IEEE754 implementations when it comes to FP16 non-canonical NaNs.

The following modifications are required to the sfpy berkeley-softfloat-3 submodule:

cd /path/to/sfpy/berkeley-softfloat-3
git apply /path/to/ieee754fpu/berkeley-softfloat.patch

The following modifications are required to the sfpy SoftPosit Makefile:

cd /path/to/sfpy/SoftPosit
git apply /path/to/ieee754fpu/SoftPosit.patch

Useful resources

2021-01-23 Cesar StraussConvert add and sub to return PartitionedSignal master
2021-01-23 Cesar StraussRevert order of operations in PartitionedSignal.implies()
2021-01-23 Cesar StraussClarify comment about operations returning plain Signals
2021-01-23 Cesar StraussConvert all bitwise logical ops to return PartitionedSignal
2021-01-23 Cesar StraussAlso copy the module in
2021-01-23 Cesar StraussReturn a PartitionedSignal from the bitwise "not" operation
2021-01-23 Cesar StraussImplement
2021-01-23 Cesar StraussUse z3 solver instead of yices2 when convenient
2021-01-20 Cesar StraussAdd tests for bitwise logical operators
2021-01-20 Cesar StraussReverse order of operations in implies()
2021-01-18 Cesar StraussDo not register carry-out on the PartitionedAdder
2021-01-17 Cesar StraussFix PartitionedSignal.neg and its test case
2021-01-17 Cesar StraussAllow the proof driver to check operations with integer...
2021-01-16 Cesar StraussUse RipleLSB in PartitionedXOR, and invert outputs ls180-24jan2020
2021-01-16 Luke Kenneth... add first cut at formal proof for PartitionedXOR
2021-01-16 Luke Kenneth... add PartitionedXOR to PartitionedSignal (xor operator)
6 weeks ago ls180-24jan2020
5 weeks ago master
19 months ago messy-div-pipe-works