Giter Club home page Giter Club logo

hardfloat's People

Contributors

dpetrisko avatar mysoreanoop avatar ricoli424 avatar taylor-bsg avatar tommydcjung avatar xusine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

hardfloat's Issues

Add FuseSoC core files

Hi there!

I created some FuseSoC cores for this project in a new repo. The goal is to improve dependency management (for the moment it relies on git submodules).
Do you want to integrate them into this repo or should we keep them separate?
If you want to integrate them to this repo, for the future it may be favorable to move from Makefiles to FuseSoC for the testing process as well.

Thanks!
Flavien

Async reset flop

The divSqrtRecFN_small.v module is the only sequential logic in HardFloat. It uses async reset, which goes against bsg guidelines. It may make sense to convert this to sync to fit guidelines. Otherwise, we'll need to check for implications on our CAD flow.

always @(negedge nReset, posedge clock) begin
        if (!nReset) begin
            cycleNum <= 0;
        end else begin
            if (!idle || inValid) begin
                cycleNum <=
                      (entering && !normalCase_S ? 1 : 0)
                    | (entering_normalCase
                           ? (sqrtOp ? (sExpA_S[0] ? sigWidth : sigWidth + 1)
                                  : sigWidth + 2)
                           : 0)
                    | (!idle && !skipCycle2 ? cycleNum - 1 : 0)
                    | (!idle &&  skipCycle2 ? 1            : 0);
            end
        end

Behaviour of countLeadingZeros does not match bsg_counting_leading_zeros

PR #9 replaced the hardfloat module countLeadingZeros with bsg_counting_leading_zeros but the behaviour of these two modules different when the input to the module is 0. For countLeadingZeros, an input of 0 outputs the total number of zeros (ie. the input width). The bsg_counting_leading_zeros module is using a bsg_priority_encode which is defined to the output 0 when the input data is 0.

Have we double checked the logic around the clz replacements to ensure that this mismatch in behavior is never a problem?

TestFloat Suite

We should add a testfloat harness for a post-synth netlist of Hardfloat. We've run into several post-synth issues in the wild, so this is a valuable endeavour

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.