|
SHA-2 Workbench
1.0
|
Precomputed, non-unrolled architecture of the transformation round block. More...
Libraries | |
| ieee | |
| Standard library. | |
| shacomps | |
| Basic SHA components library. | |
| components | |
| Basic integrated circuits components library. | |
Use Clauses | |
| numeric_std | |
| Arithmetic library, included for the unsigned modulo addition. | |
Signals | |
| reg_input | std_logic_vector ( 8 * WORD_WIDTH downto 0 ) := ( others = > ' 0 ' ) |
| Output of the multiplexer, and input of the compressor pipeline register. | |
| reg_output | std_logic_vector ( 8 * WORD_WIDTH downto 0 ) := ( others = > ' 0 ' ) |
| Output of the compressor pipeline register. | |
| feedback | std_logic_vector ( 8 * WORD_WIDTH downto 0 ) := ( others = > ' 0 ' ) |
| Internal output signal, to be used as feedback input. | |
| d_t | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Value of the accumulator \(D\) input to the compressor round. | |
| h_t | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Value of the accumulator \(H\) input to the compressor round. | |
| Maj_o | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the \(Maj\) function block. | |
| Ch_o | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the \(Ch\) function block. | |
| Sigma_0_o | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the \(\Sigma_0\) function block. | |
| Sigma_1_o | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the \(\Sigma_1\) function block. | |
| delta_reg_in | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the \(\delta\) function. | |
| delta_reg_out | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Precomputed value of the \(\delta\) function. | |
| delta_first_reg_in | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Precomputed value of the \(\delta'\) function. | |
| delta_first_reg_out | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Precomputed value of the \(\delta'\) function. | |
| intermediate_sum2 | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the addition of \(Ch\) and \(\Sigma_1\). | |
| intermediate_sum3 | std_logic_vector ( WORD_WIDTH - 1 downto 0 ) := ( others = > ' 0 ' ) |
| Output of the Carry-Save Adder on the path for computing \(A\). | |
Instantiations | |
| pipeline_reg | reg <Entity reg> |
| Pipeline register of the compressor pipeline. | |
| delta | CS_adder <Entity CS_adder> |
| Adder for computing the \(\delta\) function. | |
| delta_reg | reg <Entity reg> |
| Precomputation register for the \(\delta\) value. | |
| delta_first_reg | reg <Entity reg> |
| Precomputation register for the \(\delta'\) value. | |
| maj | Majority <Entity Majority> |
| \(Maj\) function block | |
| sigma0 | Sigma_0 <Entity Sigma_0> |
| \(\Sigma_0\) function block | |
| ch | Choose <Entity Choose> |
| \(Ch\) function block | |
| sigma1 | Sigma_1 <Entity Sigma_1> |
| \(\Sigma_1\) function block | |
| intermediate_csa | CS_adder <Entity CS_adder> |
| Carry-Save Adder on the path for computing \(A\). | |
Aliases | |
| d_in | is input ( 5 * WORD_WIDTH - 1 downto 4 * WORD_WIDTH ) |
| Input value of the accumulator \(D\). | |
| h_in | is input ( WORD_WIDTH - 1 downto 0 ) |
| Input value of the accumulator \(H\). | |
| valid_reg | is reg_output ( 8 * WORD_WIDTH ) |
| Flag of validity for the register. | |
| a_t | is reg_output ( 8 * WORD_WIDTH - 1 downto 7 * WORD_WIDTH ) |
| Value of the accumulator \(A\) input to the compressor round. | |
| b_t | is reg_output ( 7 * WORD_WIDTH - 1 downto 6 * WORD_WIDTH ) |
| Value of the accumulator \(B\) input to the compressor round. | |
| c_t | is reg_output ( 6 * WORD_WIDTH - 1 downto 5 * WORD_WIDTH ) |
| Value of the accumulator \(C\) input to the compressor round. | |
| e_t | is reg_output ( 4 * WORD_WIDTH - 1 downto 3 * WORD_WIDTH ) |
| Value of the accumulator \(E\) input to the compressor round. | |
| f_t | is reg_output ( 3 * WORD_WIDTH - 1 downto 2 * WORD_WIDTH ) |
| Value of the accumulator \(F\) input to the compressor round. | |
| g_t | is reg_output ( 2 * WORD_WIDTH - 1 downto WORD_WIDTH ) |
| Value of the accumulator \(G\) input to the compressor round. | |
| a_feedback | is feedback ( 8 * WORD_WIDTH - 1 downto 7 * WORD_WIDTH ) |
| Value of the accumulator \(A\) output from the compressor round. | |
| b_feedback | is feedback ( 7 * WORD_WIDTH - 1 downto 6 * WORD_WIDTH ) |
| Value of the accumulator \(B\) output from the compressor round. | |
| c_feedback | is feedback ( 6 * WORD_WIDTH - 1 downto 5 * WORD_WIDTH ) |
| Value of the accumulator \(C\) output from the compressor round. | |
| d_feedback | is feedback ( 5 * WORD_WIDTH - 1 downto 4 * WORD_WIDTH ) |
| Value of the accumulator \(D\) output from the compressor round. | |
| e_feedback | is feedback ( 4 * WORD_WIDTH - 1 downto 3 * WORD_WIDTH ) |
| Value of the accumulator \(E\) output from the compressor round. | |
| f_feedback | is feedback ( 3 * WORD_WIDTH - 1 downto 2 * WORD_WIDTH ) |
| Value of the accumulator \(F\) output from the compressor round. | |
| g_feedback | is feedback ( 2 * WORD_WIDTH - 1 downto WORD_WIDTH ) |
| Value of the accumulator \(G\) output from the compressor round. | |
| h_feedback | is feedback ( WORD_WIDTH - 1 downto 0 ) |
| Value of the accumulator \(H\) output from the compressor round. | |
| valid_out | is output ( 8 * WORD_WIDTH ) |
| Flag of validity for the output register. | |
| a_out | is output ( 8 * WORD_WIDTH - 1 downto 7 * WORD_WIDTH ) |
| Value of the accumulator \(A\) output from the stage. | |
| b_out | is output ( 7 * WORD_WIDTH - 1 downto 6 * WORD_WIDTH ) |
| Value of the accumulator \(B\) output from the stage. | |
| c_out | is output ( 6 * WORD_WIDTH - 1 downto 5 * WORD_WIDTH ) |
| Value of the accumulator \(C\) output from the stage. | |
| d_out | is output ( 5 * WORD_WIDTH - 1 downto 4 * WORD_WIDTH ) |
| Value of the accumulator \(D\) output from the stage. | |
| e_out | is output ( 4 * WORD_WIDTH - 1 downto 3 * WORD_WIDTH ) |
| Value of the accumulator \(E\) output from the stage. | |
| f_out | is output ( 3 * WORD_WIDTH - 1 downto 2 * WORD_WIDTH ) |
| Value of the accumulator \(F\) output from the stage. | |
| g_out | is output ( 2 * WORD_WIDTH - 1 downto WORD_WIDTH ) |
| Value of the accumulator \(G\) output from the stage. | |
| h_out | is output ( WORD_WIDTH - 1 downto 0 ) |
| Value of the accumulator \(H\) output from the stage. | |
Precomputed, non-unrolled architecture of the transformation round block.
Implementation of the architecture originally proposed in I. Algredo-Badillo, C. Feregrino-Uribe, R. Cumplido, and M. Morales-Sandoval, "FPGA-based implementation alternatives for the inner loop of the Secure Hash Algorithm SHA-256", Microprocess. Microsyst., vol. 37, no. 6-7, pp. 750-757, 2013.
|
Alias |
Value of the accumulator \(A\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(A\) output from the stage.
|
Alias |
Value of the accumulator \(A\) input to the compressor round.
|
Alias |
Value of the accumulator \(B\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(B\) output from the stage.
|
Alias |
Value of the accumulator \(B\) input to the compressor round.
|
Alias |
Value of the accumulator \(C\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(C\) output from the stage.
|
Alias |
Value of the accumulator \(C\) input to the compressor round.
|
Instantiation |
\(Ch\) function block
|
Signal |
Output of the \(Ch\) function block.
|
Library |
Basic integrated circuits components library.
|
Alias |
Value of the accumulator \(D\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Input value of the accumulator \(D\).
|
Alias |
Value of the accumulator \(D\) output from the stage.
|
Signal |
Value of the accumulator \(D\) input to the compressor round.
This value is precomputed during the precomputation step, hence it is not read from the registers
|
Instantiation |
Adder for computing the \(\delta\) function.
|
Instantiation |
Precomputation register for the \(\delta'\) value.
|
Signal |
Precomputed value of the \(\delta'\) function.
This signal is input to the precompuation register
|
Signal |
Precomputed value of the \(\delta'\) function.
This signal is output from the precompuation register
|
Instantiation |
Precomputation register for the \(\delta\) value.
|
Signal |
Output of the \(\delta\) function.
This signal is input to the precompuation register
|
Signal |
Precomputed value of the \(\delta\) function.
This signal is output from the precompuation register
|
Alias |
Value of the accumulator \(E\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(E\) output from the stage.
|
Alias |
Value of the accumulator \(E\) input to the compressor round.
|
Alias |
Value of the accumulator \(F\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(F\) output from the stage.
|
Alias |
Value of the accumulator \(F\) input to the compressor round.
|
Signal |
Internal output signal, to be used as feedback input.
|
Alias |
Value of the accumulator \(G\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Value of the accumulator \(G\) output from the stage.
|
Alias |
Value of the accumulator \(G\) input to the compressor round.
|
Alias |
Value of the accumulator \(H\) output from the compressor round.
This temporary signal is employed to perform the feedback
|
Alias |
Input value of the accumulator \(H\).
|
Alias |
Value of the accumulator \(H\) output from the stage.
|
Signal |
Value of the accumulator \(H\) input to the compressor round.
This value is precomputed during the precomputation step, hence it is not read from the registers
|
Library |
Standard library.
|
Instantiation |
Carry-Save Adder on the path for computing \(A\).
|
Signal |
Output of the addition of \(Ch\) and \(\Sigma_1\).
|
Signal |
Output of the Carry-Save Adder on the path for computing \(A\).
|
Instantiation |
\(Maj\) function block
|
Signal |
Output of the \(Maj\) function block.
|
Package |
Arithmetic library, included for the unsigned modulo addition.
|
Instantiation |
Pipeline register of the compressor pipeline.
It works also as working register
|
Signal |
Output of the multiplexer, and input of the compressor pipeline register.
|
Signal |
Output of the compressor pipeline register.
|
Library |
Basic SHA components library.
|
Instantiation |
\(\Sigma_0\) function block
|
Instantiation |
\(\Sigma_1\) function block
|
Signal |
Output of the \(\Sigma_0\) function block.
|
Signal |
Output of the \(\Sigma_1\) function block.
|
Alias |
Flag of validity for the output register.
|
Alias |
Flag of validity for the register.