|author||Konrad Rzeszutek Wilk <firstname.lastname@example.org>||Sat Jun 12 22:29:43 2021 -0400|
|committer||Konrad Rzeszutek Wilk <email@example.com>||Sat Jun 12 22:29:43 2021 -0400|
GDS/LEF/GL from 30cbda0 GDS/LEF/GL with 800x800 dimensions 4d045a4aef1bd522b1c378c89628378044614762 gds/wrapper_sha1.gds 54199fb46543c26701a9ed93bdedac6b56cd762a gds/wrapper_sha1.gds.png b82d527c1ec480445aa15bec3902579b9d52c2e3 gds/wrapper_sha1.lef 54893f024ac6c2f2516e6ad09d1df2fab4cfa2ba gds/wrapper_sha1.lvs.powered.v ad87675815fe642a05e7c6ab6f825f8ad68906de gds/wrapper_sha1.lvs.v No DRC errors. Signed-off-by: Konrad Rzeszutek Wilk <firstname.lastname@example.org>
See a https://github.com/konradwilk/sha1 for the full git history of this code. Branch name is submission-mpw-two.
This is an implementation of [https://www.rfc-editor.org/rfc/inline-errata/rfc3174.html](RFC 3174) of SHA-1 engine.
It is not the most secure one nowadays (it is still used for git commit ids and TPM PCR values), but it looked like the easiest of the SHA engines to implement. The communication channel is via WishBone commands to provide sixteen words after which the engine starts and computes the digest in about 160 cycles. Then digest can be retrieved via the wishbone. There is a IRQ line so when it has completed it will bring it high if that is enabled.
If you want to see this more interactively, I would recommend you clone https://github.com/konradwilk/sha1 and run
which will use the various WishBone commands to program it.