📄 rijndael_en_top.vhd
字号:
case P(7) is when '0' => visual_C22_O <= XORD_6(7 downto 0); when others => visual_C22_O <= Q(7 downto 0); end case; end process; S0(7 downto 0) <= ( AN2_0(7 downto 0)) and ( B(7 downto 0)); AN2_0(7) <= A(0); AN2_0(6) <= A(0); AN2_0(5) <= A(0); AN2_0(4) <= A(0); AN2_0(3) <= A(0); AN2_0(2) <= A(0); AN2_0(1) <= A(0); AN2_0(0) <= A(0); S1(7 downto 0) <= ( AN2_1(7 downto 0)) and ( D(7 downto 0)); AN2_1(7) <= A(1); AN2_1(6) <= A(1); AN2_1(5) <= A(1); AN2_1(4) <= A(1); AN2_1(3) <= A(1); AN2_1(2) <= A(1); AN2_1(1) <= A(1); AN2_1(0) <= A(1); S2(7 downto 0) <= ( AN2_2(7 downto 0)) and ( F(7 downto 0)); AN2_2(7) <= A(2); AN2_2(6) <= A(2); AN2_2(5) <= A(2); AN2_2(4) <= A(2); AN2_2(3) <= A(2); AN2_2(2) <= A(2); AN2_2(1) <= A(2); AN2_2(0) <= A(2); S3(7 downto 0) <= ( AN2_3(7 downto 0)) and ( H(7 downto 0)); AN2_3(7) <= A(3); AN2_3(6) <= A(3); AN2_3(5) <= A(3); AN2_3(4) <= A(3); AN2_3(3) <= A(3); AN2_3(2) <= A(3); AN2_3(1) <= A(3); AN2_3(0) <= A(3); S4(7 downto 0) <= ( AN2_4(7 downto 0)) and ( J(7 downto 0)); AN2_4(7) <= A(4); AN2_4(6) <= A(4); AN2_4(5) <= A(4); AN2_4(4) <= A(4); AN2_4(3) <= A(4); AN2_4(2) <= A(4); AN2_4(1) <= A(4); AN2_4(0) <= A(4); S5(7 downto 0) <= ( AN2_5(7 downto 0)) and ( L(7 downto 0)); AN2_5(7) <= A(5); AN2_5(6) <= A(5); AN2_5(5) <= A(5); AN2_5(4) <= A(5); AN2_5(3) <= A(5); AN2_5(2) <= A(5); AN2_5(1) <= A(5); AN2_5(0) <= A(5); S6(7 downto 0) <= ( AN2_6(7 downto 0)) and ( P(7 downto 0)); AN2_6(7) <= A(6); AN2_6(6) <= A(6); AN2_6(5) <= A(6); AN2_6(4) <= A(6); AN2_6(3) <= A(6); AN2_6(2) <= A(6); AN2_6(1) <= A(6); AN2_6(0) <= A(6); S7(7 downto 0) <= ( AN2_7(7 downto 0)) and ( R(7 downto 0)); AN2_7(7) <= A(7); AN2_7(6) <= A(7); AN2_7(5) <= A(7); AN2_7(4) <= A(7); AN2_7(3) <= A(7); AN2_7(2) <= A(7); AN2_7(1) <= A(7); AN2_7(0) <= A(7); T_0(7 downto 0) <= ( S0(7 downto 0)) xor ( S1(7 downto 0)); T_1(7 downto 0) <= ( T_0(7 downto 0)) xor ( S2(7 downto 0)); T_2(7 downto 0) <= ( T_1(7 downto 0)) xor ( S3(7 downto 0)); T_3(7 downto 0) <= ( T_2(7 downto 0)) xor ( S4(7 downto 0)); T_4(7 downto 0) <= ( T_3(7 downto 0)) xor ( S5(7 downto 0)); T_5(7 downto 0) <= ( T_4(7 downto 0)) xor ( S6(7 downto 0)); MPOLMUL8OUT(7 downto 0) <= ( T_5(7 downto 0)) xor ( S7(7 downto 0)); end MPOLMUL8;----------------------------------------------------
--
-- Library Name : rijndael_min_new
-- Unit Name : MIX_EN32
-- Unit Type : Block Diagram
--
------------------------------------------------------
library ieee;use ieee.STD_LOGIC_1164.all;use ieee.STD_LOGIC_UNSIGNED.all;entity MIX_EN32 is port ( CLK : in std_logic; DA_CO_S : in std_logic_vector(1 downto 0 ); DE_IN_E : in std_logic; DE_KEY : out std_logic_vector(31 downto 0 ); DK32_E : in std_logic; E_DK1 : in std_logic; E_DK2 : in std_logic; E_DK3 : in std_logic; E_DK4 : in std_logic; E_MP1 : in std_logic; E_MP2 : in std_logic; E_MP3 : in std_logic; E_MP4 : in std_logic; KEY_EN : in std_logic_vector(31 downto 0 ); RST : in std_logic; SECT_CON : in std_logic_vector(1 downto 0 ) ); end MIX_EN32; use work.all;architecture MIX_EN32 of MIX_EN32 is signal DE_kRY1 : std_logic_vector(7 downto 0 ); signal DE_kRY2 : std_logic_vector(7 downto 0 ); signal DE_kRY3 : std_logic_vector(7 downto 0 ); signal DE_kRY4 : std_logic_vector(7 downto 0 ); signal EK_IN : std_logic_vector(7 downto 0 ); signal KEY_ENS : std_logic_vector(31 downto 0 ); signal ks : std_logic_vector(31 downto 0 ); signal M : std_logic_vector(6 downto 0 ); signal MPOLMUL8_Q : std_logic_vector(7 downto 0 ); signal MPOMUL_Q1 : std_logic_vector(7 downto 0 ); signal MPOMUL_Q2 : std_logic_vector(7 downto 0 ); signal MPOMUL_Q3 : std_logic_vector(7 downto 0 ); signal MPOMUL_Q4 : std_logic_vector(7 downto 0 ); signal S2311_HH : std_logic_vector(7 downto 0 ); signal S2311_HL : std_logic_vector(7 downto 0 ); signal S2311_LH : std_logic_vector(7 downto 0 ); signal S2311_LL : std_logic_vector(7 downto 0 ); signal S2311_Q : std_logic_vector(7 downto 0 ); signal SS1 : std_logic_vector(7 downto 0 ); signal SS2 : std_logic_vector(7 downto 0 ); signal SS3 : std_logic_vector(7 downto 0 ); signal XOR_Q : std_logic_vector(7 downto 0 ); component MPOLMUL8 port ( A : in std_logic_vector(7 downto 0 ); B : in std_logic_vector(7 downto 0 ); M : in std_logic_vector(6 downto 0 ); MPOLMUL8OUT : out std_logic_vector(7 downto 0 ) ); end component; signal visual_C37_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C39_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C40_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C41_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C42_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C43_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C44_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C45_Q : std_logic_vector(8 - 1 downto 0 ); signal visual_C46_Q : std_logic_vector(32 - 1 downto 0 ); signal visual_C27_O : std_logic_vector(8 - 1 downto 0 ); signal visual_C28_O : std_logic_vector(8 - 1 downto 0 ); signal visual_C29_O : std_logic_vector(8 - 1 downto 0 ); signal visual_C30_O : std_logic_vector(8 - 1 downto 0 ); signal visual_C34_O : std_logic_vector(8 - 1 downto 0 ); signal visual_C35_Q : std_logic_vector(32 - 1 downto 0 ); signal visual_C36_O : std_logic_vector(8 - 1 downto 0 ); -- Start Configuration Specification -- ++ for all : MPOLMUL8 use entity work.MPOLMUL8(MPOLMUL8); -- End Configuration Specification begin C32: MPOLMUL8 port map ( A => S2311_Q(7 downto 0), B => EK_IN(7 downto 0), M => M(6 downto 0), MPOLMUL8OUT => MPOLMUL8_Q(7 downto 0) ); SS2(7 downto 0) <= "00000010"; SS3(7 downto 0) <= "00000011"; SS1(7 downto 0) <= "00000001"; S2311_HH(7 downto 0) <= (visual_C27_O); process (SS2 , SS3 , SS1 , DA_CO_S) begin case DA_CO_S(1 downto 0) is when "00" => visual_C27_O <= SS2(7 downto 0); when "01" => visual_C27_O <= SS3(7 downto 0); when "10" => visual_C27_O <= SS1(7 downto 0); when others => visual_C27_O <= SS1(7 downto 0); end case; end process; S2311_HL(7 downto 0) <= (visual_C28_O); process (SS1 , SS2 , SS3 , DA_CO_S) begin case DA_CO_S(1 downto 0) is when "00" => visual_C28_O <= SS1(7 downto 0); when "01" => visual_C28_O <= SS2(7 downto 0); when "10" => visual_C28_O <= SS3(7 downto 0); when others => visual_C28_O <= SS1(7 downto 0); end case; end process; S2311_LH(7 downto 0) <= (visual_C29_O); process (SS1 , SS2 , SS3 , DA_CO_S) begin case DA_CO_S(1 downto 0) is when "00" => visual_C29_O <= SS1(7 downto 0); when "01" => visual_C29_O <= SS1(7 downto 0); when "10" => visual_C29_O <= SS2(7 downto 0); when others => visual_C29_O <= SS3(7 downto 0); end case; end process; S2311_LL(7 downto 0) <= (visual_C30_O); process (SS3 , SS1 , SS2 , DA_CO_S) begin case DA_CO_S(1 downto 0) is when "00" => visual_C30_O <= SS3(7 downto 0); when "01" => visual_C30_O <= SS1(7 downto 0); when "10" => visual_C30_O <= SS1(7 downto 0); when others => visual_C30_O <= SS2(7 downto 0); end case; end process; M(6 downto 0) <= "0001101"; EK_IN(7 downto 0) <= (visual_C34_O); process (KEY_ENS , DA_CO_S) begin case DA_CO_S(1 downto 0) is when "00" => visual_C34_O <= KEY_ENS(31 downto 24); when "01" => visual_C34_O <= KEY_ENS(23 downto 16); when "10" => visual_C34_O <= KEY_ENS(15 downto 8); when others => visual_C34_O <= KEY_ENS(7 downto 0); end case; end process; KEY_ENS(31 downto 0) <= (visual_C35_Q); process (CLK , RST) begin if (RST = '0') then visual_C35_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (DE_IN_E = '1') then visual_C35_Q <= (KEY_EN(31 downto 0)); end if; end if; end process; S2311_Q(7 downto 0) <= (visual_C36_O); process (S2311_HH , S2311_HL , S2311_LH , S2311_LL , SECT_CON) begin case SECT_CON(1 downto 0) is when "00" => visual_C36_O <= S2311_HH(7 downto 0); when "01" => visual_C36_O <= S2311_HL(7 downto 0); when "10" => visual_C36_O <= S2311_LH(7 downto 0); when others => visual_C36_O <= S2311_LL(7 downto 0); end case; end process; MPOMUL_Q1(7 downto 0) <= (visual_C37_Q); process (CLK , RST) begin if (RST = '0') then visual_C37_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_MP1 = '1') then visual_C37_Q <= (MPOLMUL8_Q(7 downto 0)); end if; end if; end process; XOR_Q(7 downto 0) <= ( MPOMUL_Q1(7 downto 0)) xor ( MPOMUL_Q2(7 downto 0)) xor ( MPOMUL_Q3(7 downto 0)) xor ( MPOMUL_Q4(7 downto 0)); MPOMUL_Q2(7 downto 0) <= (visual_C39_Q); process (CLK , RST) begin if (RST = '0') then visual_C39_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_MP2 = '1') then visual_C39_Q <= (MPOLMUL8_Q(7 downto 0)); end if; end if; end process; MPOMUL_Q3(7 downto 0) <= (visual_C40_Q); process (CLK , RST) begin if (RST = '0') then visual_C40_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_MP3 = '1') then visual_C40_Q <= (MPOLMUL8_Q(7 downto 0)); end if; end if; end process; MPOMUL_Q4(7 downto 0) <= (visual_C41_Q); process (CLK , RST) begin if (RST = '0') then visual_C41_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_MP4 = '1') then visual_C41_Q <= (MPOLMUL8_Q(7 downto 0)); end if; end if; end process; DE_kRY1(7 downto 0) <= (visual_C42_Q); process (CLK , RST) begin if (RST = '0') then visual_C42_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_DK1 = '1') then visual_C42_Q <= (XOR_Q(7 downto 0)); end if; end if; end process; DE_kRY2(7 downto 0) <= (visual_C43_Q); process (CLK , RST) begin if (RST = '0') then visual_C43_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_DK2 = '1') then visual_C43_Q <= (XOR_Q(7 downto 0)); end if; end if; end process; DE_kRY3(7 downto 0) <= (visual_C44_Q); process (CLK , RST) begin if (RST = '0') then visual_C44_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_DK3 = '1') then visual_C44_Q <= (XOR_Q(7 downto 0)); end if; end if; end process; DE_kRY4(7 downto 0) <= (visual_C45_Q); process (CLK , RST) begin if (RST = '0') then visual_C45_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (E_DK4 = '1') then visual_C45_Q <= (XOR_Q(7 downto 0)); end if; end if; end process; ks(31 downto 24) <= DE_kRY1(7 downto 0); ks(23 downto 16) <= DE_kRY2(7 downto 0); ks(15 downto 8) <= DE_kRY3(7 downto 0); ks(7 downto 0) <= DE_kRY4(7 downto 0); DE_KEY(31 downto 0) <= (visual_C46_Q); process (CLK , RST) begin if (RST = '0') then visual_C46_Q <= (others => '0'); elsif (CLK'event and CLK = '1') then if (DK32_E = '1') then visual_C46_Q <= (ks(31 downto 0)); end if; end if; end process; end MIX_EN32;----------------------------------------------------
--
-- Library Name : rijndael_min_new
-- Unit Name : MIXCOLUMN_EN
-- Unit Type : Block Diagram
--
------------------------------------------------------
library ieee;use ieee.STD_LOGIC_1164.all;use ieee.NUMERIC_STD.all;use ieee.STD_LOGIC_UNSIGNED.all;entity MIXCOLUMN_EN is port ( CLK : in std_logic; DE_KEY : out std_logic_vector(31 downto 0 ); DE_KEY_E32 : in std_logic; KEY_EN : in std_logic_vector(31 downto 0 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -