switch to exact version of cython
[ieee754fpu.git] / README.md
1 # IEEE754 Floating-Point ALU, in nmigen
2
3 This project implements a pipelined IEEE754 floating-point ALU that
4 supports FP16, FP32 and FP64. It is a general-purpose unit that
5 may be used in any project (not limited to one specific processor).
6
7 Developed under a Grant from NLnet (http://nlnet.nl), more information
8 may be found at http://libre-soc.org
9
10 # Requirements
11
12 * nmigen
13 * libresoc-nmutil
14 * yosys (latest git repository, required by nmigen)
15 * sfpy (running unit tests). provides python bindings to berkeley softfloat-3
16
17 # Building sfpy
18
19 The standard sfpy will not work without being modified to the type of
20 IEEE754 FP emulation being tested. This FPU is emulating RISC-V, and
21 there is some weirdness in x86 IEEE754 implementations when it comes
22 to FP16 non-canonical NaNs.
23
24 The following modifications are required to the sfpy berkeley-softfloat-3
25 submodule:
26
27 cd /path/to/sfpy/berkeley-softfloat-3
28 git apply /path/to/ieee754fpu/berkeley-softfloat.patch
29
30 The following modifications are required to the sfpy SoftPosit Makefile:
31
32 cd /path/to/sfpy/SoftPosit
33 git apply /path/to/ieee754fpu/SoftPosit.patch
34
35 # Useful resources
36
37 * https://en.wikipedia.org/wiki/IEEE_754-1985
38 * http://weitz.de/ieee/
39 * https://steve.hollasch.net/cgindex/coding/ieeefloat.html
40