• Stars
    star
    264
  • Rank 149,219 (Top 4 %)
  • Language
    Scala
  • License
    Other
  • Created over 9 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Berkeley Hardware Floating-Point Units

This repository contains hardware floating-point units written in Chisel. This library contains parameterized floating-point units for fused multiply-add operations, conversions between integer and floating-point numbers, and conversions between floating-point conversions with different precision.

WARNING: These units are works in progress. They may not be yet completely free of bugs, nor are they fully optimized.

Recoded Format

The floating-point units in this repository work on an internal recoded format (exponent has an additional bit) to handle subnormal numbers more efficiently in a microprocessor. A more detailed explanation will come soon, but in the mean time here are some example mappings for single-precision numbers.

IEEE format                           Recoded format
----------------------------------    -----------------------------------
s 00000000 00000000000000000000000    s 000------ 00000000000000000000000
s 00000000 00000000000000000000001    s 001101011 00000000000000000000000
s 00000000 0000000000000000000001f    s 001101100 f0000000000000000000000
s 00000000 000000000000000000001ff    s 001101101 ff000000000000000000000
    ...              ...                   ...              ... 
s 00000000 001ffffffffffffffffffff    s 001111111 ffffffffffffffffffff000
s 00000000 01fffffffffffffffffffff    s 010000000 fffffffffffffffffffff00
s 00000000 1ffffffffffffffffffffff    s 010000001 ffffffffffffffffffffff0
s 00000001 fffffffffffffffffffffff    s 010000010 fffffffffffffffffffffff
s 00000010 fffffffffffffffffffffff    s 010000011 fffffffffffffffffffffff
    ...              ...                   ...              ... 
s 11111101 fffffffffffffffffffffff    s 101111110 fffffffffffffffffffffff
s 11111110 fffffffffffffffffffffff    s 101111111 fffffffffffffffffffffff
s 11111111 00000000000000000000000    s 110------ -----------------------
s 11111111 fffffffffffffffffffffff    s 111------ fffffffffffffffffffffff

Unit-Testing

To unit-test these floating-point units, you need the berkeley-testfloat-3 package.

To test floating-point units with the C simulator:

$ make

More Repositories

1

chipyard

An Agile RISC-V SoC Design Framework with in-order cores, out-of-order cores, accelerators, and more
Scala
1,415
star
2

gemmini

Berkeley's Spatial Array Generator
Scala
665
star
3

chisel-tutorial

chisel tutorial exercises and answers
Scala
643
star
4

riscv-sodor

educational microarchitectures for risc-v isa
Scala
641
star
5

riscv-mini

Simple RISC-V 3-stage Pipeline in Chisel
Scala
488
star
6

chisel2-deprecated

Scala
387
star
7

fpga-zynq

Support for Rocket Chip on Zynq FPGAs
Tcl
378
star
8

hammer

Hammer: Highly Agile Masks Made Effortlessly from RTL
Python
228
star
9

berkeley-softfloat-3

SoftFloat release 3
C
208
star
10

dsptools

A Library of Chisel3 Tools for Digital Signal Processing
Scala
206
star
11

chiseltest

The batteries-included testing and formal verification library for Chisel-based RTL designs.
Scala
196
star
12

riscv-torture

RISC-V Torture Test
Scala
152
star
13

hwacha

Microarchitecture implementation of the decoupled vector-fetch accelerator
Scala
139
star
14

constellation

A Chisel RTL generator for network-on-chip interconnects
Scala
138
star
15

esp-llvm

UCB-BAR fork of LLVM! NOT UPSTREAM RISCV LLVM
C++
123
star
16

midas

FPGA-Accelerated Simulation Framework Automatically Transforming Arbitrary RTL
Scala
91
star
17

testchipip

Scala
74
star
18

sha3

Verilog
73
star
19

onnxruntime-riscv

Fork of upstream onnxruntime focused on supporting risc-v accelerators
C++
68
star
20

cosa

A scheduler for spatial DNN accelerators that generate high-performance schedules in one shot using mixed integer programming (MIP)
Python
66
star
21

ccbench

Memory System Microbenchmarks
C
57
star
22

zscale

Z-scale Microarchitectural Implementation of RV32 ISA
C
51
star
23

gemmini-rocc-tests

Fork of seldridge/rocket-rocc-examples with tests for a systolic array based matmul accelerator
C
48
star
24

chisel-gui

A prototype GUI for chisel-development
Scala
45
star
25

berkeley-testfloat-3

TestFloat release 3
C
42
star
26

hwacha-template

Template for projects using the Hwacha data-parallel accelerator
C
33
star
27

barstools

Useful utilities for BAR projects
Scala
31
star
28

RoSE

A unified simulation platform that combines hardware and software, enabling pre-silicon, full-stack, closed-loop evaluation of your robotic system.
Python
30
star
29

autophase

Python
27
star
30

cva6-wrapper

Wrapper for ETH Ariane Core
Scala
20
star
31

riscv-benchmarks

C
18
star
32

nvdla-wrapper

Wraps the NVDLA project for Chipyard integration
Verilog
17
star
33

MoCA

Scala
17
star
34

riscv-blas

Custom BLAS and LAPACK Cross-Compilation Framework for RISC-V
Fortran
16
star
35

libgloss-htif

A libgloss replacement for RISC-V that supports HTIF
C
16
star
36

esp-isa-sim

Custom extensions to the RISC-V isa simulator for the UCB-BAR ESP project
C
16
star
37

asyncqueue

Lightweight re-packaging of AsyncQueue library from rocket-chip
Scala
15
star
38

fpga-spartan6

Support for zScale on Spartan6 FPGAs
Verilog
15
star
39

shuttle

A Rocket-based RISC-V superscalar in-order core
Scala
13
star
40

chisel-awl

Scala
13
star
41

protoacc

Scala
11
star
42

midas-examples

Simple MIDAS Examples
Scala
10
star
43

firrtl-transform-tutorial

A template for developing custom FIRRTL transforms
Scala
10
star
44

vaesa

Learning A Continuous and Reconstructible Latent Space for Hardware Accelerator Design
Python
9
star
45

esp-tools

Shell
9
star
46

hammer-cadence-plugins

Hammer plugins for Cadence tools
Python
9
star
47

fpga-images-zedboard

prebuilt images for zedboard zynq fpga
9
star
48

context-dependent-environments

A Scala library for Context-Dependent Evironments
Scala
9
star
49

firrtl-uclid

Scala
8
star
50

chisel-sift

Scala
8
star
51

hammer-synopsys-plugins

Hammer plugins for synopsys tools
Python
8
star
52

rocket-dsp-utils

Tools for integrating DspTools components into a rocket-chip
Scala
8
star
53

midas-release

MIDAS Public Release
Scala
8
star
54

midas-top-release

MIDAS RocketChip Template
Scala
7
star
55

riscv-docker-images

Curated set of DockerFiles for RISC-V projects
Dockerfile
7
star
56

FFTGenerator

Scala
7
star
57

plsi-mdf

Macro description format
Scala
7
star
58

spec2017-workload

FireMarshal workload for SPEC2017
Python
7
star
59

midas-zynq

A zynq host-platform shell for midas generated simulators.
Tcl
7
star
60

maltese-smt

Archived! All relevant features are now part of the firrtl smt backend or the chiseltest library.
Scala
7
star
61

nvdla-workload

Base NVDLA Workload for FireMarshal
Shell
5
star
62

hwacha-net

C
5
star
63

dosa

DOSA: Differentiable Model-Based One-Loop Search for DNN Accelerators
Python
5
star
64

compress-acc

Scala
5
star
65

esp-tests

Custom extensions to the RISC-V tests for the UCB-BAR ESP project
C
5
star
66

chipyard-toolchain-prebuilt

Pre-built riscv-gnu-toolchain binaries. You should most likely only shallow clone this.
Makefile
4
star
67

pwm-chisel-example

pwm-chisel-example for risc-v summer 2016 workshop
Scala
4
star
68

cs152-lab4

CS152 Lab 4
C
4
star
69

riscv-tools-feedstock

Shell
4
star
70

fixedpoint

Chisel Fixed-Point Arithmetic Library
Scala
4
star
71

stac-top

The SRAM timing analysis chip for verifying SRAMs generated by SRAM22
Scala
3
star
72

opencl-kernels

OpenCL kernels for ucb-bar hardware
C
3
star
73

bits

Firebox Benchmarks
Python
3
star
74

chipper-tutorial

tutorial for chipper
C++
3
star
75

coremark-workload

FireMarshal workload for CoreMark EEMBC
Shell
3
star
76

spike-devices

Collection of device models for spike
C++
3
star
77

2023-winter-demo-project-power-aka-bora

Python
3
star
78

rerocc

Scala
3
star
79

vcd2step

Converts a VCD file to a Chisel tester input file
C++
2
star
80

pocl

C
2
star
81

firrtl2

UC Berkeley Copy of the FIRRTL Compiler
Scala
2
star
82

chisel-torture

A tool that generates Chisel torture tests
C++
2
star
83

fpga-images-zybo

2
star
84

ibex-wrapper

Wrapper for lowRISC Ibex
Scala
2
star
85

bar-fetchers

Berkeley Architecture Research pre-Fetchers
Scala
2
star
86

lbnl-torch

LBNL TORCH Reference Kernels
C
2
star
87

chisel-library-template

Use for developing Chisel+Firrtl libraries
2
star
88

Baremetal-IDE

A submodule of Chipyard https://github.com/ucb-bar/chipyard
HTML
2
star
89

fpga-images-zc706

2
star
90

caliptra-aes-acc

SystemVerilog
2
star
91

testers-regression

Uses gcd to do some really basic speed comparisons
Scala
1
star
92

esp-test-env

Custom extensions to the RISC-V test environments for the UCB-BAR ESP project
C
1
star
93

chisel-release

Chisel release tooling
1
star
94

sha3-workload

FireMarshal workload for the sha3 example rocc accelerator
C
1
star
95

esp-tools-feedstock

Shell
1
star
96

stac-bringup

Bringup infrastructure for the SRAM Timing Analysis Chip
C
1
star
97

esp-opcodes

Custom extensions to the RISC-V opcodes for the UCB-BAR ESP project
TeX
1
star
98

esp-gnu-toolchain

Custom extensions to the RISC-V toolchain for the UCB-BAR ESP project
C
1
star
99

Baremetal-llama

C
1
star
100

tsi

Standalone tethered serial interface (TSI) implementation with CLI utilities.
Rust
1
star