update for upload to pypi
[ieee754fpu.git] / README.md
index bf4fa912eeb435d0d325239f1ff06de043859c71..318d6b43c75511956fe8f7aaec8d9d1c32829598 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,40 @@
 # IEEE754 Floating-Point ALU, in nmigen
 
 This project implements a pipelined IEEE754 floating-point ALU that
-supports FP16, FP32 and FP64.
+supports FP16, FP32 and FP64.  It is a general-purpose unit that
+may be used in any project (not limited to one specific processor).
+
+Developed under a Grant from NLnet (http://nlnet.nl), more information
+may be found at http://libre-soc.org
+
+# Requirements
+
+* nmigen
+* libresoc-nmutil
+* yosys (latest git repository, required by nmigen)
+* sfpy (running unit tests).  provides python bindings to berkeley softfloat-3
+
+# 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
+
+* https://en.wikipedia.org/wiki/IEEE_754-1985
+* http://weitz.de/ieee/
+* https://steve.hollasch.net/cgindex/coding/ieeefloat.html
+