Line 66... |
Line 66... |
-- 2016/06/05 v0.01.0095 [JD] verification failed. misalignment of words in the datapath.
|
-- 2016/06/05 v0.01.0095 [JD] verification failed. misalignment of words in the datapath.
|
-- 2016/06/06 v0.01.0100 [JD] first simulation verification against NIST-FIPS-180-4 test vectors "abc" passed.
|
-- 2016/06/06 v0.01.0100 [JD] first simulation verification against NIST-FIPS-180-4 test vectors "abc" passed.
|
-- 2016/06/07 v0.01.0105 [JD] verification against all NIST-FIPS-180-4 test vectors passed.
|
-- 2016/06/07 v0.01.0105 [JD] verification against all NIST-FIPS-180-4 test vectors passed.
|
-- 2016/06/11 v0.01.0105 [JD] verification against NIST-SHA2_Additional test vectors #1 to #10 passed.
|
-- 2016/06/11 v0.01.0105 [JD] verification against NIST-SHA2_Additional test vectors #1 to #10 passed.
|
-- 2016/06/11 v0.01.0110 [JD] optimized controller states, reduced 2 clocks per block, added lookahead register feedback.
|
-- 2016/06/11 v0.01.0110 [JD] optimized controller states, reduced 2 clocks per block, added lookahead register feedback.
|
|
-- 2016/09/25 v0.01.0220 [JD] changed 'di_ack_i' name to 'di_wr_i', and changed semantics to 'data write'.
|
--
|
--
|
--
|
--
|
-----------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
Line 87... |
Line 88... |
-- start/end commands
|
-- start/end commands
|
start_i : in std_logic := 'U'; -- reset the engine and start a new hash
|
start_i : in std_logic := 'U'; -- reset the engine and start a new hash
|
end_i : in std_logic := 'U'; -- marks end of last block data input
|
end_i : in std_logic := 'U'; -- marks end of last block data input
|
-- handshake
|
-- handshake
|
di_req_o : out std_logic; -- requests data input for next word
|
di_req_o : out std_logic; -- requests data input for next word
|
di_ack_i : in std_logic := 'U'; -- high for di_i valid, low for hold
|
di_wr_i : in std_logic := 'U'; -- high for di_i valid, low for hold
|
error_o : out std_logic; -- signalizes error. output data is invalid
|
error_o : out std_logic; -- signalizes error. output data is invalid
|
do_valid_o : out std_logic; -- when high, the output is valid
|
do_valid_o : out std_logic; -- when high, the output is valid
|
-- 256bit output registers
|
-- 256bit output registers
|
H0_o : out std_logic_vector (31 downto 0);
|
H0_o : out std_logic_vector (31 downto 0);
|
H1_o : out std_logic_vector (31 downto 0);
|
H1_o : out std_logic_vector (31 downto 0);
|
Line 175... |
Line 176... |
port map(
|
port map(
|
-- inputs
|
-- inputs
|
clk_i => clk_i,
|
clk_i => clk_i,
|
ce_i => ce_i,
|
ce_i => ce_i,
|
bytes_i => bytes_i,
|
bytes_i => bytes_i,
|
ack_i => di_ack_i,
|
wr_i => di_wr_i,
|
start_i => start_i,
|
start_i => start_i,
|
end_i => end_i,
|
end_i => end_i,
|
error_i => error_pad,
|
error_i => error_pad,
|
-- output control signals
|
-- output control signals
|
bitlen_o => msg_bitlen,
|
bitlen_o => msg_bitlen,
|