[Cryptech-Commits] [core/sha256] 01/01: Updating README with info on the design.

git at cryptech.is git at cryptech.is
Tue Feb 25 09:10:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

joachim at secworks.se pushed a commit to branch master
in repository core/sha256.

commit e242bbecb22b37672427db9956a667ea75a435c9
Author: Joachim Strömbergson <joachim at secworks.se>
Date:   Tue Feb 25 10:10:00 2014 +0100

    Updating README with info on the design.
---
 README.md | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index b5fcd12..d27d280 100644
--- a/README.md
+++ b/README.md
@@ -11,8 +11,33 @@ there is no sharing of operations such as adders.
 The hardware implementation is complemented by a functional model
 written in Python.
 
-
-## Implementation ##
+## Implementation details ##
+The sha256 is divided into the following sections.
+- src/rtl - RTL source files
+- src/tb  - Testbenches for the RTL files
+- src/model/python - Functional model written in python
+- doc - documentation (currently not done.)
+- toolruns - Where tools are supposed to be run. Includes a Makefile for
+building and simulating the design using [Icarus Verilog](http://iverilog.icarus.com/)
+
+The actual core consists of the following files:
+- sha256_core.v - The core itself with wide interfaces.
+- sha256_w_mem.v - W message block memort and expansion logic.
+- sha256_k_constants.v - K constants ROM memory.
+
+The top level entity is called sha256_core.
+
+Unless you want to provide your own interface you also need to select
+one top level wrapper. There are two wrappers provided:
+- sha256.v - A wrapper with a 32-bit memory like interface.
+- wb_sha256.v - A wrapper that implement a [Wishbone](http://opencores.org/opencores,wishbone) interface.
+
+***Do not include both wrappers in the same project.***
+
+The core (sha256_core) will sample all data inputs when given the init
+or next signal. the wrappers provided contains additional data
+registers. This allows you to load a new block while the core is
+processing the previous block.
 
 The W-memory scheduler is based on 16 32-bit registers. Thee registers
 are loaded with the current block. After 16 rounds the contents of the
@@ -20,8 +45,10 @@ registers slide through the registers r5..r0 while the new W word is
 inserted at r15 as well as being returned to the core.
 
 
-### Cyclone IV E ###
-Implementation results using the Altera Quartus-II v13.1 design tool.
+## FPGA-results ##
+
+### Altera Cyclone FPGAs ###
+Implementation results using Altera Quartus-II 13.1.
 
 ***Cyclone IV E***
 - EP4CE6F17C6




More information about the Commits mailing list