# Re: [f-cpu] magnetude comparison

```
Michael Riepe a écrit :

```
Hi again,

On Tue, Mar 02, 2004 at 01:13:56AM +0100, gaetan@xeberon.net wrote:
[...]

vhdl world is so wonderful...

Yes, definitely. ;)

[...]

(damned, why there isn't mathml supported by all email reader)

Because some of them still run in text mode?

arg!!! some people still use 'mail' command?

Mutt - the best e-mail client money can't buy :)

[...]

If you use a shifter that requires a binary encoded shift count :)

My omega network shifter can also be controlled by bit vectors that
represent numbers like (2**shift_count)-1. They are much easier to
generate in this case: a single left-to-right cascade_or is sufficient.
That will take d=3/t=3 for a 64-bit operand -- half a stage.

i don't know what an omega network it, i though my LOP was a good thing...

It is, because it's still faster (no late shift count calculation at all).

[...]

but if i do
f = (a and b) or (c and e)
then i should estimate it d=2/t=2 (right?)

That depends on the target, but d=2/t=2 -- meaning separate AND and
OR gates -- is the safest choice.

that's not very funny, i have some control logic (with some "complex" boolean equations)....

How complex? How many input variables, at most?

i have something like:
sel = C and (not(g) or (MSB and L) )
d=3/t=3
it's the output selector of compound adder in close datapath (rounding to nearest)
since MSB, L and C comes from the A+B output of the adder, is a full length delay.
+ mux4 to select beween the 4 rounding mode selectors (d=1/t=1)
+ mux2 to select the output
=> i have the rounded result ~d=5/t=5 after the adder.

one of the most complex signal is in the far datapath:
seladd = (not (c) and g and (LSB or r or s) ) or
( c and L and ( [LSB-1] or g or r or s) )
selsub = (c and ( (not(g) and not(r) and not(s)) or
( g and r) or
( MSB and g and (LSB or s)
)
)
delay: d=3/t=3 (if i could have cound an additionnal d/t for not(g) and not(r) and not(s), but it can be computed before)
and then
else -- effective substraction
sel = selsub
end;
d=4/t=4
it's the compound adder selector in the far datapath (for rounding to nearest)
=> so in this datapath i will have the rounded result d=6/t=6 after the end of the added... :(

[...]

i will take some nights to digest it i think... but it's very interesting...
but why not writing it down (for example in the wiki), then any new rooky that may come will not
ask you that again and again...

Because I'm a lazy *censored*? ;)

```and you write me huge mails?

++

--

~~ Gaetan ~~
http://www.xeberon.net

*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/

```