[Cryptech Tech] First hash via EIM

Joachim Strömbergson joachim at secworks.se
Fri Feb 6 06:27:58 UTC 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Aloha!

Шатов Павел wrote:
> Yes, I've tried compiling the project and saw that warning, that
> sys_eim_rd is not used. Paul, in my baseline project I've included a
> testbench (tb_demo_adder.v) that simulates complete demo adder core
> operation. It writes X and Y operands, modifies control register to
> trigger addition, then polls status register and reads Z=X+Y register
> from the adder core. This testbench has two tasks, namely eim_write
> and eim_read, that simulate write and read transactions from the CPU.
>  You can modify the original testbench to debug operation of your
> cores, if you need.

That would be to test the EIM interface connectivity and the core
selector should have a testbench that checks that it works. All old
cores (sha256 for example) have separate self-testing testbenches on
core as well as top level with the memory like interface.


> Please have a look at the attached pictures: sys_eim_addr,
> sys_eim_wr, sys_eim_rd and sys_eim_dout are asserted simultaneously
> (sys_eim_dout is only assigned during write transactions). Flags
> become active for one cycle, so our cores should handle transactions
> as soon one of the flags is set. During read transaction arbiter
> internally delays read flag (sys_req_dly signal in the waveforms) for
> one additional cycle to allow user logic to place read value into 
> eim_data_in register. This value is then latched and sent to the CPU.
> If our cores have registered outputs, then core multiplexor should be
> non-pipelined to match latency expected by EIM arbiter. If pipelined
> multiplexor is needed, then one more bit should be added to
> sys_req_dly to increase arbiter latency by one cycle. Pipelined
> multiplexor consumes more slices, but makes meeting internal timing
> constraints easier. I'll take a closer look at this issue tomorrow. I
>  should be not very difficult to fix it.

I don't think that there are an issue to fix at the moment. We meet
timing with ns to spare. But it is good to know that we could
potentially add a delay cycle for read operations.

Note that I've changed the names slightly to instead talk about read and
write data. It becomes fairly confusing when an input port is called
output-something.

- -- 
Med vänlig hälsning, Yours

Joachim Strömbergson - Alltid i harmonisk svängning.
========================================================================
 Joachim Strömbergson          Secworks AB          joachim at secworks.se
========================================================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCAAGBQJU1F7uAAoJEF3cfFQkIuyNQMwQAMXx1c8103020EQ9PJfQuOSp
N7/jPjW+kQU68D2mBNuD6bQ6a14lVPHDmWL3mBh785g/jo/CAAa4dXVSaRgSbOKT
d2hB1R4C64duW4mQJOhoXBaR/a9LZ2jJnz5SBwMNG3nEkz++N6qxR5ES4C3DmcDG
O7/5xyGYfioSokSjRFSdW3L9Q8+Fxbu9W9UQcn3cLOlm0rD8DGb5d1vwhPHjbOKM
dSwanP6dD73mdUjExs5XK3bVntkbk9LDBqjl4JQ/+YCYlfsVwmj6VZJ+hLrlk95r
4zOzwCkpiowdmwloT1xvt5oAjF1Ig3gfULdyZQeRTZJ8lw2i6Ev1aNM/yaU7uPOV
w9Xy17iD8YpviNdYZqteIw0SLBO7ltpfc9jpG36T5lmSsq2/jVrQWmLoFhd4uny4
H8AxSEAwIOGmpLccqxszE2EMKH6018PCkSTMPKGBK+uK6XR+XF0+9+V46k6pk5Hg
p6KAVEl1ueDTCmHaYr2r6cucLmJYLVrYRGsiTtLU+yt7n69IrUuF25kkyi/n0KrJ
ar6VwRV40kQX6rvIz/Kuyj0dxqy0oT9zRXvYjvfKvFrIbtj/TJPnLdrmZuYDDASi
1KNsjVZDx+1rHW7RPrwjqlNpY2BbDfH0icHAgyFnHYw9txqiDgS4xyyLdt+ItlgL
LnWovREN14hE10yrdFso
=M8ov
-----END PGP SIGNATURE-----


More information about the Tech mailing list