📄 sha1_add_pack.vhd
字号:
---------------------------------------------------------------------------- sha1_3fa_slice used in the wallace-tree--------------------------------------------------------------------------LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY sha1_add_pack IS PORT ( A : IN std_logic_vector(31 DOWNTO 0); Ft : IN std_logic_vector(31 DOWNTO 0); Wt : IN std_logic_vector(31 DOWNTO 0); Kt : IN std_logic_vector(31 DOWNTO 0); E : IN std_logic_vector(31 DOWNTO 0); H0 : IN std_logic_vector(31 DOWNTO 0); SUM0 : OUT std_logic_vector(31 DOWNTO 0); SUM1 : OUT std_logic_vector(31 DOWNTO 0) );END sha1_add_pack;ARCHITECTURE rtl OF sha1_add_pack IS COMPONENT sha1_2fa_slice PORT ( a : IN std_logic; b : IN std_logic; c : IN std_logic; d : IN std_logic; e : IN std_logic; f : IN std_logic; cout0 : OUT std_logic; cout1 : OUT std_logic; sum0 : OUT std_logic; sum1 : OUT std_logic ); END COMPONENT; COMPONENT sha1_3fa_slice PORT ( a : IN std_logic; b : IN std_logic; c : IN std_logic; d : IN std_logic; e : IN std_logic; f : IN std_logic; cin0 : IN std_logic; cin1 : IN std_logic; cout0 : OUT std_logic; cout1 : OUT std_logic; cout2 : OUT std_logic; sum0 : OUT std_logic; sum1 : OUT std_logic ); END COMPONENT; COMPONENT sha1_4fa_slice PORT ( a : IN std_logic; b : IN std_logic; c : IN std_logic; d : IN std_logic; e : IN std_logic; f : IN std_logic; cin0 : IN std_logic; cin1 : IN std_logic; cin2 : IN std_logic; cout0 : OUT std_logic; cout1 : OUT std_logic; cout2 : OUT std_logic; cout3 : OUT std_logic; sum : OUT std_logic ); END COMPONENT; COMPONENT sha1_4fa_nocout_slice PORT ( a : IN std_logic; b : IN std_logic; c : IN std_logic; d : IN std_logic; e : IN std_logic; f : IN std_logic; cin0 : IN std_logic; cin1 : IN std_logic; cin2 : IN std_logic; sum : OUT std_logic ); END COMPONENT; --cout01 0 is the num of 32 bits, 1 is the num in this slice SIGNAL cout00_internal : std_logic; SIGNAL cout01_internal : std_logic; SIGNAL cout10_internal : std_logic; SIGNAL cout11_internal : std_logic; SIGNAL cout12_internal : std_logic; SIGNAL cout20_internal : std_logic; SIGNAL cout21_internal : std_logic; SIGNAL cout22_internal : std_logic; SIGNAL cout30_internal : std_logic; SIGNAL cout31_internal : std_logic; SIGNAL cout32_internal : std_logic; SIGNAL cout40_internal : std_logic; SIGNAL cout41_internal : std_logic; SIGNAL cout42_internal : std_logic; SIGNAL cout50_internal : std_logic; SIGNAL cout51_internal : std_logic; SIGNAL cout52_internal : std_logic; SIGNAL cout60_internal : std_logic; SIGNAL cout61_internal : std_logic; SIGNAL cout62_internal : std_logic; SIGNAL cout70_internal : std_logic; SIGNAL cout71_internal : std_logic; SIGNAL cout72_internal : std_logic; SIGNAL cout80_internal : std_logic; SIGNAL cout81_internal : std_logic; SIGNAL cout82_internal : std_logic; SIGNAL cout90_internal : std_logic; SIGNAL cout91_internal : std_logic; SIGNAL cout92_internal : std_logic; SIGNAL cout100_internal : std_logic; SIGNAL cout101_internal : std_logic; SIGNAL cout102_internal : std_logic; SIGNAL cout110_internal : std_logic; SIGNAL cout111_internal : std_logic; SIGNAL cout112_internal : std_logic; SIGNAL cout120_internal : std_logic; SIGNAL cout121_internal : std_logic; SIGNAL cout122_internal : std_logic; SIGNAL cout130_internal : std_logic; SIGNAL cout131_internal : std_logic; SIGNAL cout132_internal : std_logic; SIGNAL cout140_internal : std_logic; SIGNAL cout141_internal : std_logic; SIGNAL cout142_internal : std_logic; SIGNAL cout150_internal : std_logic; SIGNAL cout151_internal : std_logic; SIGNAL cout152_internal : std_logic; SIGNAL cout160_internal : std_logic; SIGNAL cout161_internal : std_logic; SIGNAL cout162_internal : std_logic; SIGNAL cout170_internal : std_logic; SIGNAL cout171_internal : std_logic; SIGNAL cout172_internal : std_logic; SIGNAL cout180_internal : std_logic; SIGNAL cout181_internal : std_logic; SIGNAL cout182_internal : std_logic; SIGNAL cout190_internal : std_logic; SIGNAL cout191_internal : std_logic; SIGNAL cout192_internal : std_logic; SIGNAL cout200_internal : std_logic; SIGNAL cout201_internal : std_logic; SIGNAL cout202_internal : std_logic; SIGNAL cout210_internal : std_logic; SIGNAL cout211_internal : std_logic; SIGNAL cout212_internal : std_logic; SIGNAL cout220_internal : std_logic; SIGNAL cout221_internal : std_logic; SIGNAL cout222_internal : std_logic; SIGNAL cout230_internal : std_logic; SIGNAL cout231_internal : std_logic; SIGNAL cout232_internal : std_logic; SIGNAL cout240_internal : std_logic; SIGNAL cout241_internal : std_logic; SIGNAL cout242_internal : std_logic; SIGNAL cout250_internal : std_logic; SIGNAL cout251_internal : std_logic; SIGNAL cout252_internal : std_logic; SIGNAL cout260_internal : std_logic; SIGNAL cout261_internal : std_logic; SIGNAL cout262_internal : std_logic; SIGNAL cout270_internal : std_logic; SIGNAL cout271_internal : std_logic; SIGNAL cout272_internal : std_logic; SIGNAL cout280_internal : std_logic; SIGNAL cout281_internal : std_logic; SIGNAL cout282_internal : std_logic; SIGNAL cout290_internal : std_logic; SIGNAL cout291_internal : std_logic; SIGNAL cout292_internal : std_logic; SIGNAL cout300_internal : std_logic; SIGNAL cout301_internal : std_logic; SIGNAL cout302_internal : std_logic;BEGIN SUM0(2) <= '0'; SHA1_2FA_SLICE0: sha1_2fa_slice PORT MAP( a => A(0), b => Ft(0), c => Wt(0), d => Kt(0), e => E(0), f => H0(0), cout0 => cout00_internal, cout1 => cout01_internal, sum0 => SUM0(0), sum1 => SUM1(0) ); SHA1_3FA_SLICE1: sha1_3fa_slice PORT MAP( a => A(1), b => Ft(1), c => Wt(1), d => Kt(1), e => E(1), f => H0(1), cin0 => cout00_internal, cin1 => cout01_internal, cout0 => cout10_internal, cout1 => cout11_internal, cout2 => cout12_internal, sum0 => SUM0(1), sum1 => SUM1(1) ); SHA1_4FA_SLICE2: sha1_4fa_slice PORT MAP( a => A(2), b => Ft(2), c => Wt(2), d => Kt(2), e => E(2), f => H0(2), cin0 => cout10_internal, cin1 => cout11_internal, cin2 => cout12_internal, cout0 => cout20_internal, cout1 => cout21_internal, cout2 => cout22_internal, cout3 => SUM0(3), sum => SUM1(2) ); SHA1_4FA_SLICE3: sha1_4fa_slice PORT MAP( a => A(3), b => Ft(3), c => Wt(3), d => Kt(3), e => E(3), f => H0(3), cin0 => cout20_internal, cin1 => cout21_internal, cin2 => cout22_internal, cout0 => cout30_internal, cout1 => cout31_internal, cout2 => cout32_internal, cout3 => SUM0(4), sum => SUM1(3) ); SHA1_4FA_SLICE4: sha1_4fa_slice PORT MAP( a => A(4), b => Ft(4), c => Wt(4), d => Kt(4), e => E(4), f => H0(4), cin0 => cout30_internal, cin1 => cout31_internal, cin2 => cout32_internal, cout0 => cout40_internal, cout1 => cout41_internal, cout2 => cout42_internal, cout3 => SUM0(5), sum => SUM1(4) ); SHA1_4FA_SLICE5: sha1_4fa_slice PORT MAP( a => A(5), b => Ft(5), c => Wt(5), d => Kt(5), e => E(5), f => H0(5), cin0 => cout40_internal, cin1 => cout41_internal, cin2 => cout42_internal, cout0 => cout50_internal, cout1 => cout51_internal, cout2 => cout52_internal, cout3 => SUM0(6), sum => SUM1(5) ); SHA1_4FA_SLICE6: sha1_4fa_slice PORT MAP( a => A(6), b => Ft(6), c => Wt(6), d => Kt(6), e => E(6), f => H0(6), cin0 => cout50_internal, cin1 => cout51_internal, cin2 => cout52_internal, cout0 => cout60_internal, cout1 => cout61_internal, cout2 => cout62_internal, cout3 => SUM0(7), sum => SUM1(6) ); SHA1_4FA_SLICE7: sha1_4fa_slice PORT MAP( a => A(7), b => Ft(7), c => Wt(7), d => Kt(7), e => E(7), f => H0(7), cin0 => cout60_internal, cin1 => cout61_internal, cin2 => cout62_internal, cout0 => cout70_internal, cout1 => cout71_internal, cout2 => cout72_internal, cout3 => SUM0(8), sum => SUM1(7) ); SHA1_4FA_SLICE8: sha1_4fa_slice PORT MAP( a => A(8), b => Ft(8), c => Wt(8), d => Kt(8), e => E(8), f => H0(8), cin0 => cout70_internal, cin1 => cout71_internal, cin2 => cout72_internal, cout0 => cout80_internal, cout1 => cout81_internal, cout2 => cout82_internal, cout3 => SUM0(9), sum => SUM1(8) ); SHA1_4FA_SLICE9: sha1_4fa_slice PORT MAP( a => A(9), b => Ft(9), c => Wt(9), d => Kt(9), e => E(9), f => H0(9), cin0 => cout80_internal, cin1 => cout81_internal, cin2 => cout82_internal, cout0 => cout90_internal, cout1 => cout91_internal, cout2 => cout92_internal, cout3 => SUM0(10), sum => SUM1(9) ); SHA1_4FA_SLICE10: sha1_4fa_slice PORT MAP( a => A(10), b => Ft(10), c => Wt(10), d => Kt(10), e => E(10), f => H0(10), cin0 => cout90_internal, cin1 => cout91_internal, cin2 => cout92_internal,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -