ieee754fpu by libre-soc

An IEEE754 toolkit in nmigen. Similar to J Hauser's hardfloat-3 and Jon Dawson's FPU. 100k+ unit tests included

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).

Developed under a Grant from NLnet (, more information may be found at


  • 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

Project Meta

  • Registered on LibreCores 1 year ago
  • Project started 3 years ago
  • Last commit 1 year ago



Commits per year



Unique contributors per year


Data not available



Share of languages used

Data Sheet
Project Web Site
Issue Tracker
Last activity 1 year ago
Primary language: Python
2063 commits by 5 contributors
Luke Kenneth Casson Leighton Michael Nolan Jacob Lifshay Aleksandar Kostovic Cesar Strauss

activity over the last year

LibreCores data updated 1 year ago