switch to exact version of cython
[ieee754fpu.git] / README.md
1 # IEEE754 Floating-Point ALU, in nmigen(tm)
2
3 nmigen (and all aliases) are Trademarks of M-Labs.
4 nmigen is a Registered Trademark of M-Labs
5 https://uspto.report/TM/88980893
6
7 This project implements a parameteriseable pipelined IEEE754 floating-point
8 ALU that supports FP16, FP32 and FP64. Other FP sizes (FP80, BF16, FP128)
9 are a matter of adding new parameters for mantissa and exponent.
10 The IEEE754 FP Library is a general-purpose unit that may be used in
11 any project (not limited to one specific processor). Limited Formal
12 Correctness Proofs are provided (so far for fpadd, fpsub) as well as
13 hundreds of thousands of unit tests.
14
15 Developed under Grants from NLnet (http://nlnet.nl), from
16 EU Grants 871528 and 957073. more information may be found at
17 http://libre-soc.org
18
19 # Requirements
20
21 * nmigen (https://gitlab.com/nmigen/nmigen)
22 * libresoc-nmutil (https://git.libre-soc.org/?p=nmutil.git;a=summary)
23 * yosys (latest git repository, required by nmigen)
24 * sfpy (running unit tests). provides python bindings to berkeley softfloat-3
25
26 # Building sfpy
27
28 The standard sfpy will not work without being modified to the type of
29 IEEE754 FP emulation being tested. This FPU is emulating RISC-V, and
30 there is some weirdness in x86 IEEE754 implementations when it comes
31 to FP16 non-canonical NaNs.
32
33 The following modifications are required to sfpy:
34
35 cd /path/to/sfpy
36 git apply /path/to/ieee754fpu/sfpy.patch
37
38 The following modifications are required to the sfpy berkeley-softfloat-3
39 submodule:
40
41 cd /path/to/sfpy/berkeley-softfloat-3
42 git apply /path/to/ieee754fpu/berkeley-softfloat.patch
43
44 The following modifications are required to the sfpy SoftPosit Makefile:
45
46 cd /path/to/sfpy/SoftPosit
47 git apply /path/to/ieee754fpu/SoftPosit.patch
48
49 # Useful resources
50
51 * https://en.wikipedia.org/wiki/IEEE_754-1985
52 * http://weitz.de/ieee/
53 * https://steve.hollasch.net/cgindex/coding/ieeefloat.html
54