[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] New snapshot for EU_INC and EU_CMP


Michael Riepe wrote:
> On Tue, Jul 30, 2002 at 08:54:46PM +0200, Etienne LABARRE wrote:
> [...]
> > > Did you find source code or documentation for package std_logic_misc?
> > ???? It's standard library. Packages std_logic_1164 and std_logic_misc
> > are available with all vhdl tools.
> > (For example, with Simili, in Simili_dir/lib/ieee/stdlogicmisc.vhd)
> A `standard' is something people have agreed on. Not everything that
> is found in library std or library ieee is a standard (especially if
> you use Synopsys).

i'll agree with MR as long as no deecisive argument is found.

> [...]
> > ==> the code don't must depend to techno.
> Therefore we only use elements that are supposed to be available
> everywhere: and/or gates with 2...4 inputs, 2-input xor gates, inverters
> and muxes. With the famous `6 Gate Rule', any of them count as 1 gate.
> Bigger elements (like an 8-input and gate) count as 2 or more gates.
yep, because the technology must be "portable"...

btw, sometimes i make big "ORs" with a code like
 a <= '1' when b /= "0000000000" else '0';
is this technology dependent enough ? :-)

Ben Franchuk wrote:
> What about inverted inputs? Do they count as a gate and what about
> flip/flop set up and delay times and what memory elements can
> one count on.

Inverted inputs and outputs are usually rather well handled by the
synthesisers and optimisers, so they are not taken into account.
most "standard" libraries contain gates with one or more inverted
inputs and outputs, so it's again technology dependent, but transparent.

What matters most is to have balanced, short and simple pipeline stages
to ensure the highest clock frequency possible.

<end of digression>
> After the first synthesis experiences, I later added another rule:
> 2-input xors count as 2 gates, and the sum of gate delays must not
> exceed 10. I call this the `6G/10T' rule.
what is 'T' ?

> [...]

> MSB1 is supposed to return the *number* of the most significant `1'
> bit: msb1(0xffffffff) = 64, msb1(0) = 0. Currently it returns some
> strange bit mask. Likewise for MSB0.

This feature has been dropped, particularly if popc is implemented :
you can feed the bit mast to POPC which will return the number of bits.
Of course there are faster ways to implement that, but there is no
reason of adding one cycle of latency to the units. Particularly
if it's not used often.

> I'll attach a testbench for eu_cmp.
>  Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
>  "All I wanna do is have a little fun before I die"
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/