Git Product home page Git Product logo

flopoco-operators's Introduction

flopoco-operators

This repo is designed to wrap Flopoco FP operators into modules with parameterizable latency and also provide matching, drop-in-replacements that do not use the Flopoco-generated VHDL-code but instead use SystemVerilog and a C implementation for the actual math, which is faster to simulate and works in Verilator to Simulate (which does not support VHDL).

Operators use the Flopoco-specific format that is 2 bits wider than the IEEE-based formats and is simpler to decode. As the C-implementations do support subnormals and operate on IEEE formats, they are wrapped with conversions from and to the Flopoco-specific format with 0 latency, that will strip away unsupported values & flags. Currently this repo only includes single-precision operators as that is all I needed.

The actual Flopoco VHDL implementations are missing from this repo. They can be generated by Flopoco (see Wiki article for example). As Flopoco optimizes for a specific target FPGA-architecture, the modules I built (and whose names are hardcoded in files like CMakeSources.txt) are only optimal to my specific target-FPGA (which is actually not supported by Flopoco, so I used similar architectures as targets) and probably only synthesizable on Xilinx 7-series FPGAs. Also avoids any licensing issues with Flopoco.

Ideally, this repo would be enhanced by scripts that can generate operators on demand for the needed target architecture or a file-name structure that allows to store all possible targets next to each other. Since I have only one target platform, I have not spent the time to implement this part and simply generated only the operators suitable for my specific needs. This main point of making this repo available is the drop-in replacements that allows simulating it in Verilator.

flopoco-operators's People

Contributors

ramonwirsch avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.