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

SHL II (Re: [f-cpu] DATE2002, day 1 report)

hi !

Michael Riepe wrote:
> On Wed, Mar 06, 2002 at 12:49:12AM +0100, Yann Guidon wrote:
> [...]
> > PS2: i found a new/better barrel shifter structure
> > this morning in the metro :-)
> Faster? Details?

:-D what a quick answer !

btw, i met people from the Hannover university,
i talked about you with someone :-)

For the shifter idea, it is very simple, maybe easier
to understand than the reversed Omega network.

My constraints are : reduce crosstalk problems,
have a simple routing algorithm (which easily supports SIMD)
have a simple building block from which i can make
a scalable (64+) unit without wire lenght problems.

The solution does not involve 2-mux gates but 3-mux gates.
It does not solve Xtalk problems but
routing is very simple, too (full-custom version
is really easy). The principle is that
there are 3 wiring layers : one with does not
shift, the other shifts right and the other shifts left,
16 bits at a time (which is a reasonable wire length).
Because it is highly regular, place and route is
straight-forward (though there are exceptions with the
rightmost and leftmost versions with a 2-mux only).

The problem is that the speed of the circuit depends on the
wire length so having a wire that crosses a lot of wires
can become a problem. I think that the Omega network is
not optimal because the longest wire wross 32 wires
for the 64 bit version. if it scales up, it increases to 64...
Furthermore, some permutations make the path much longer than the
shortest geometrical path (a line) from the input to the output,
the signal zig-zags through it.

I use a more straight-forward (naive ?) way, but the unit is
split into three : one performs SDUP (so one register operand can
serve to control the shift amount), the other part is a 2-stage
4-mux shift/rotate for doing 8-bit and 16-bit shifts/rotates,
and the last part is a series of 16-bit (only 16 bits left, 16-bits
right or no shift) blocks. Because we have still to shift 64-16 bits,
there are 48/16=3 16-bit shift block layers.

But i'll have to rest a bit before i write
documentation, code and draw stuffs. be patient, DATE has only begun :-)

>  Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/