[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[f-cpu] Yet Another Upload
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.
* 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
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.
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).
--
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/