[libre-riscv-dev] IEEE754 FPU
Aleksandar Kostovic
alexandar.kostovic at gmail.com
Tue Feb 12 10:46:44 GMT 2019
Thanks for clarification Jacob! :)
Floating point is definitely tougher than I thought...
Side question to everyone: Why don't we use something off the shelf and
ready like berekely hardfloat? Yes, its scala/chisel but it can be
converted to Verilog.
On Tue, Feb 12, 2019 at 11:19 AM Jacob Lifshay <programmerjake at gmail.com>
wrote:
> On Tue, Feb 12, 2019, 02:01 Aleksandar Kostovic <
> alexandar.kostovic at gmail.com> wrote:
>
> > Okay so this is how I get it so far:
> >
> > Let's start with the number itself.
> >
> > | sign | exponent | fraction |
> > -----------------------------------------
> > | 1bit | 8 bits | 23bits |
> > -----------------------------------------
> > | 31 | 30 23 | 22 0 |
> >
> > That's for single precision - 32 bit.
> >
> > Now let's talk about how sign number is determined. To my understanding
> > sign is 0 if the number is positive(example 0.12345) and 1 in the number
> is
> > negative(example -0.12345). When we need to add two floating point
> numbers,
> > two sign's are just added using the XOR gate. If both are 0 or if both
> are
> > 1 then the output is 0. Else it's 1.
> >
> that's all fmul, not fadd.
> fadd has these cases for a + b:
> a.sign == b.sign: use a.sign if a or b aren't zero, otherwise, use rounding
> rules to get +0 or -0.
> a.sign != b.sign: if fabs(a) > fabs(b) then use a.sign, else if fabs(a) <
> fabs(b), then use b.sign, else follow rounding rules to get +0 or -0.
>
> >
> > What I don't yet understand are exponent and fraction. investigating that
> > now. Also i found this FADD hardware implementation diagram:
> >
> diagram is for fmul, fadd doesn't need a multiplier and has to check
> mantissa for sign.
>
> >
> >
> > On Tue, Feb 12, 2019 at 10:04 AM Luke Kenneth Casson Leighton <
> > lkcl at lkcl.net>
> > wrote:
> >
> > > https://steve.hollasch.net/cgindex/coding/ieeefloat.html
> > >
> > > found a useful resource.
> > > l.
> > > On Tue, Feb 12, 2019 at 5:24 AM Luke Kenneth Casson Leighton
> > > <lkcl at lkcl.net> wrote:
> > > >
> > > > and this. i like rudi, he's cool.
> > > > https://opencores.org/projects/fpu
> > >
> > > _______________________________________________
> > > libre-riscv-dev mailing list
> > > libre-riscv-dev at lists.libre-riscv.org
> > > http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
> > >
> > _______________________________________________
> > libre-riscv-dev mailing list
> > libre-riscv-dev at lists.libre-riscv.org
> > http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
> >
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
>
More information about the libre-riscv-dev
mailing list