SHA-2 Workbench  1.0
A Flexible Framework for Exploring, Evaluating, and Comparing SHA-2 Designs

Configuring the framework

To configure the framework for employing a specific transformation round block:

  1. Choose an implementation for the transformation round block
    This is done by specifying an architecture for the Compressor_pipeline_stage component.
    • If the Naive architecture is chosen, it is necessary to specify also an architecture for the Transf_round_comb component within the Naive architecture.
    • If an architecture requiring system-level data prefetching is chosen (requiring PREFETCH_ROUNDS > 1), it is necessary to specify also an architecture for the Initialisation_block component.
  2. Configure the generic parameters of the top level entity
    The following parameters needs to be adjusted according to the requirements of the selected transformation round block:
    • PIPELINE_WORDS: Number of words in the pipeline register
    • PREFETCH_ROUNDS: Number of prefetch steps
    • FIX_TIME: Whether is required to delay the Compressor pipeline
    • UNROLLING_FACTORS: Unrolling factor (unless the transformation round block is itself generic on the unrolling factor)
    The following parameters are instead independent on the selected transformation round block:

Add a different transformation round block

A new transformation round block is added by defining an architecture for the Transf_round or the Transf_round_comb entity. The latter can be used if the design focuses only on the combinatorial part. However, if the transformation round block needs to move the pipeline registers, as is the case when optimisations like spatial reordering or variables precomputation, an architecture for the Transf_round entity must be defined.

Architecture Details

For more details on the implementation, see the architecture of the top level entity.