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

[f-cpu] New snapshot for EU_INC and EU_CMP



Hi all,

New snapshot include a lot of changes and features :

INC unit and CMP unit are now two different units, for simplify and
decrease latency

Both units are based to the same component : find_lsb
 It's a binary tree for find the first null lsb in a word.
 It supports SIMD operations (size of chunk = 8, 16, 32, 64, 128, 256
 bits)
 It's based to only one function : and_reduce. It's is a standard
 function of ieee.std_logic_1164 library.
 Latency of find_lsb is not exactly know, but i can estimate this
 to 3 level of 4-and, and 1 level of mux, or more exactly 2 level of
 8-and, and 1 level of mux. The precise latency is not important,
 because max latency will be fixed by timing constraints during synthetisis process.
 (It's an explain of my choice of standard function. "Just an
 Illusion"
 will can explain this more easy that me, i think...)

For INC unit, the data flow is :
 1 level of mux
 find_lsb : 3 level of 4-and, 1 level of mux
 1 level of xor
 2 level of mux
 total is 8 levels.
 Critical datapath is only for ABS operation.

 Supported operations :
 INC, DEC, NEG, ABS, LSB0, LSB1

 All operations are tested by my testbenches.

For CMP unit, the data flow is :
 1 level of xor,
 1 level of mux,
 find_lsb : 3 level of 4-and, 1 level of mux
 2 level of mux,
 total is 8 levels.
 Critical datapath is for CMP, MIN, MAX, SORT operations.

 Supported operations :
 CMP, MIN, MAX, SORT, MSB0, MSB1

 Today, only CMP, MSB0 and MSB1 are tested by my testbenches. Todo :
 test for others operations.


All operations can need only one cycle, if we accept the 8 level of gates
latency.

Etienne.

eu_inc_EL_290702.tar.gz