[Cryptech Tech] First draft of interconnect survey

Joachim Strömbergson joachim at secworks.se
Tue Feb 4 09:00:05 UTC 2014


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

Aloha!

Randy Bush wrote:
> in the software world, we would try to build a shim layer which
> would allow us to use wishbone or amba.  i suspect that would be far
> to complex in this space.

You could do that, albeit it will cost you HW (registers, some logic and
wires). At least for the simpler interconnect types (AMBA APB and the
Wishbone equivalent). For AHB and AXI the complexity is bigger with
buffers and state machines needed to run the protocol.

I rather prefer to design HW implementations where the top level only
implements the specific interconnect. In this way we (or someone else)
can provide a replacement interface for whatever interconnect they want.
But what we need is to decide on one interface standard as a start.

The SHA-256 core I'm preparing to move into the Cryptech repo has this
structure:

https://github.com/secworks/sha256

In the RTL source there is a sha256_core.v that provides the real
SHA-256 functionality. The interface of the core is _wide_ with 512 bit
message block input and 256 bit digest output (and some control and
status ports).

Then there is a sha245.v file that provides a very simple, 32-bit memory
like interface on top of the core.

I would suggest that we would then have (for example):
 - sha256_wb.v - For SHA-256 core with Wishbone interface.
 - sha256_apb.v - For SHA-256 core with AMBA APB interface.

This way of structuring the core design is something I would suggest
that we use for all cores developed.


> the availability of a larger number of somewhat more liberally
> licensed cores makes wishbone attractive to this neophyte.  but then,
> other than a cpu or three, how much will we rely on cores not
> internally developed?

For our example platform I would say that we could very well use cores for:
* CPU
* UART (one or more)
* GPIO (A/D interface for example)
* External memory interfaces (FLASH, SDRAM)
* Timers, watchdog
* IRQ

Most of these are fairly easy to design, but will take time. If we can
adopt a core and simply do verification, code review we will save time.
I can also see that we might need cores such as:

* USB
* Ethernet MAC

And if Cryptech is to become successful I wouldn't be surprised of
someone created implementations that includes PCI, PCie and other
external interfaces as well as other CPU cores etc.

Following a widely used interconnect standard might not just be good for
us, but more importantly be good for the users of the Cryptech design.

- -- 
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.0.22 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCAAGBQJS8KwVAAoJEF3cfFQkIuyNJe8P/1z06J5w7vD7MUfsE2rk93ZV
+8BKaHj32x7RKYm7EBYE1l1JSFVpeG1K1+8ty10U+XNFsvushIbuk5KdC1qs1Zhz
pOUsHlGUHZ8+uNBkUzbhxLO+WcU429JiDEqCIaluxwN+z9g4txgAlVeAWNu5f7+E
tPxfVUVGgZNiosdjWVl20tnMDqgri3tBos/hvVJlmWGbBRTmBp23SMIs4FNxZsuO
H3SUmVKUWyqRTUMIswwONyj037qPvli2tWz+0elFxAUeEH+s5+EGT6VrM7iZDO9m
LFH01EKg3B+Z23v9gC7/CVMMcBk3+6D62UNrGxxA8aun3bSC3581Yzid5S15ujUm
BqEmWNxM8H4NIBZ8Ecw+Jjc7zlPS/B/sFlhyfRRtpJvNGueHqio3tfJoxk5qLHTr
9tC6GCS73+mII7uaNBSiN5xeQTVzwF33LIhM9YanxY8qvmSJ9UFyawE4TcvpxeNS
i0pt5Rt1MPiXgkC9fIyKXQKABITApsfUd5vmjfgF60EOHP2+L6OdWoaAJcDNmCLf
cDMlIjmoRw0fSbLzFHCn6N0oQIu3flqKd7g2SqKuq3Bc172gV0PWdWQ58jYSRIYX
TzR68P76aD3jjP+GUq2310pvh5LFShL6fYgR08l2VFdcR/t4OOVFLJFBuDtik83n
1rtE+KxKhEUUxW9datog
=TPNF
-----END PGP SIGNATURE-----



More information about the Tech mailing list