[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [f-cpu] Yet Another Upload



hi !

Michael Riepe wrote:

I'm going to upload fcpu-mr-20030418.tar.gz to
http://f-cpu.seul.org/~f-cpu/new/ tonight.

Highlights:

* EU_AFU is included.

hmmm i better look at it :-)

* EU_ASU now supports twenty-four (24) operations, not counting
SIMD, chunk sizes or immediate instructions:

add a + b modulo 2**n
addc a + b with carry-out
avg (a + b) / 2 unsigned
avgs (a + b) / 2 signed
addus saturate(a + b) unsigned
addss saturate(a + b) signed

add1 a + b + 1 modulo 2**n
addc1 a + b + 1 with carry-out
avg1 (a + b + 1) / 2 unsigned
avgs1 (a + b + 1) / 2 signed
addus1 saturate(a + b + 1) unsigned
addss1 saturate(a + b + 1) signed

sub a - b modulo 2**n
subb a - b with borrow-out
diff (a - b) / 2 unsigned
diffs (a - b) / 2 signed
subus saturate(a - b) unsigned
subss saturate(a - b) signed

sub1 a - b - 1 modulo 2**n
subb1 a - b - 1 with borrow-out
diff1 (a - b - 1) / 2 unsigned
diffs1 (a - b - 1) / 2 signed
subus1 saturate(a - b - 1) unsigned
subss1 saturate(a - b - 1) signed

it is getting really impressing !

Carry and borrow outputs use the numeric values 0 and 1.
I'm currently considering additional `widening' addw/subw
instructions that will provide a `correct' value in the
upper half, as if the operands had been sign-extended and
added/subtracted in a wider mode.

* EU_SHL will now scale up to 2048 bits, and I finally implemented
the widen instruction. Shift, rotate, bitrev, byterev and widen
operate on individual chunks while other bytewise instructions
(mix, expand, permute, sdup and cshift) may transfer data from
one chunk to another. Word width is limited to 2048 bits because
permute/sdup can only address up to 256 8-bit chunks internally.
Other operations will work with wider words, too.

* package Generic_Adder now includes the new carry-select adder
I'm using everywhere. The carry-increment adder should not
be used any longer.

As usual, packages and units have been tested with the included
testbenches.

cool.

i should however reinstall NCSIM but i am very very busy now and in the following months.

Synthesis reports welcome. BTW: You may also try to synthesize 128-bit
or 256-bit versions of individual units (except IMul64 which doesn't
auto-scale yet).

I am more worried about the correct work of the general scripts and what they can do now.
Tests must also be redone regularly to check that all the sources work
correctly with all the known tools. If someone wants to do a regression server .....
I seem to remember that a lot of important things were missing in the main script.
But keeping it up to date made me forget what was missing ....

Hmmmm now that Michael has added yet more functions, the C version of the unit
must be rewritten : cool ! ....

YG (way behind)

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