[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fpu] fdiv
> > Anyhow if we do normalization after each operation
> > where the denormalized numbers are going to come
> from?
>
> Either from user input or as a result from a
> operation.
>
> You have to normalize after each operation. The
> denormalized
> outputs are exceptions.
Still I did not get your point.
it seems to me either to normalize or not to normalize
I can not make special cases
>
> >>
> >> I do mean rounding. When you divide 1 by 3 for
> >> example,
> >> you need to round properly.
> >> This could probably be a separate block, except
> then
> >> each
> >> core (add/sub, mul, div) will have to provide
> some
> >> additional
> >> bits of the fraction. I think it would be easier
> for
> >> now
> >> to include that function in tot the individual
> cores
> >> as well.
> >> We can always later optimize and combine
> features.
> >>
> >
> > 1/3 = 0.333333333..... until all bits are used. in
> > this case no rounding is needed because you
> consumed
> > all bits but when you downconvert the extended
> format
> > (higher no. of bits) to the single format you need
> to
> > decided how to remove the extra bits (rounding)
> thats
> > why I think the rounding is done only when you
> convert
> > from higher bits to lower one. every thing else
> should
> > be done by the arithmetic operation itself
> > (div,mul....)
>
> OK, lets clarify terminolagy. When you say
> "extended" format
> I'm thinking of 64+ bit floating point.
this is called the double precision
>
> Every block need to do rounding. The output of the
> add/sub
> unit before rounding and normalization is 27 bits.
> (one hidden
> bit, 23 bits fraction, 3 extra bits for precision to
> do rounding).
as far as I know the minimum extended number of bits
that should be supported by IEEE is 32 bit for
fraction including the hidden bit and 11 bit for
exponent
>
> Since the result of each floating point core is
> going back to the
> register file, it has to be properly rounded.
>
> Lets just agree that each block does it's own
> rounding for now.
>
OK but we will have more hardware
> >>
> >> You are welcome to attend my Verilog class mid
> >> October in Bangkok !
> >>
> > Thanks for your explaination and invitation but
> could
> > you please tell me what is the difference from
> > synthesis point of view?
>
> No, synthesis does not care. But it's very important
> for simulation.
>
are you sure in VHDL there is also some differences
thats why I am asking
> >>>> There is no need for a reset.
> >>>>
> >
> > why ?
>
> exactly: why ?
>
to start from a defined state
> >>
> >> oops, forgot:
> >> input [1:0] round_mode;
> >>
> >
> > Depends if we are going to round in the fdiv
> itself or
> > a seperate core because you duplicate it for each
> > execution unit in the FPU.
>
> I realize we are duplicating for now, but it will
> simplify the
> design phase. We can always combine later.
OK in the next release we should start from the
documentation to get more effecient design without
duplication and confusions
>
>
> >> Ahm, there is no extended format. We only do
> single
> >> precision
> >> floating point.
> >
> > I mean internal representation of the numbers
>
> Internally the numbers are represented in the least
> number of
> bit that are needed. For add/sub, 27 bit fraction, 8
> bit exponent
> before romlization/rounding.
>
see above note.
> > will you be updating the fmul soon?
>
> No, probably not. I'm working on add/sub - trying to
> figure out
> rounding.
>
>
so let me know the results
> > Thanks for your help
> > Jamil Khatib
>
>
> rudi
>
Jamil
__________________________________________________
Do You Yahoo!?
Yahoo! Mail – Free email you can access from anywhere!
http://mail.yahoo.com/