⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idea_de_top.vhd

📁 IDEA解密运算模块
💻 VHD
📖 第 1 页 / 共 5 页
字号:
              E_MMUL16A1_IN<='1';              KEY_BUSY<='1';              visual_S0_current <= S1;            else              visual_S0_current <= S0;            end if;           when S1 =>            if (DEK_SELM = "10001") then              E_MMUL16A1_IN<='0';              visual_S0_current <= S3;            elsif (MMUL16A1_INOV = '1') then              E_MMUL16A1_IN<='1';              DEK_SELM<=DEK_SELM+1;              visual_S0_current <= S1;            else              E_MMUL16A1_IN<='0';              visual_S0_current <= S1;            end if;           when S3 =>            if (MMUL16A1_INOV = '1') then              E_MMUL16A1_IN<='0';              DEK_SELM<="00000";              KEY_BUSY<='0';              visual_S0_current <= S0;            else              visual_S0_current <= S3;            end if;           when others =>             E_MMUL16A1_IN<='0';            DEK_SELM<="00000";            KEY_BUSY<='0';            visual_S0_current <= S0;        end case;      end if;    end if;  end process;    DEK_SEL<=DEK_SELM;end DE_KEY_CTRL;----------------------------------------------------
--  
--  Library Name :  Idea_vhd_100M
--  Unit    Name :  DE_KEY_GEN
--  Unit    Type :  Block Diagram
--  
------------------------------------------------------
 library ieee;use ieee.STD_LOGIC_1164.all;use ieee.NUMERIC_STD.all;entity DE_KEY_GEN is  port (        CLK : in std_logic;        EKLD : in std_logic;        KEY_BUSY : out std_logic;        KEY_IN : in std_logic_vector(127 downto 0 );        RST : in std_logic;        ZY_BUS_1 : out std_logic_vector(95 downto 0 );        ZY_BUS_2 : out std_logic_vector(95 downto 0 );        ZY_BUS_3 : out std_logic_vector(95 downto 0 );        ZY_BUS_4 : out std_logic_vector(95 downto 0 );        ZY_BUS_5 : out std_logic_vector(95 downto 0 );        ZY_BUS_6 : out std_logic_vector(95 downto 0 );        ZY_BUS_7 : out std_logic_vector(95 downto 0 );        ZY_BUS_8 : out std_logic_vector(95 downto 0 );        ZY_BUS_9 : out std_logic_vector(63 downto 0 )        );  end DE_KEY_GEN;  use work.all;architecture DE_KEY_GEN of DE_KEY_GEN is   signal DEK_SEL : std_logic_vector(4 downto 0 );  signal E1 : std_logic;  signal E2 : std_logic;  signal E_K : std_logic;  signal MADD16_1 : std_logic_vector(15 downto 0 );  signal MADD16OUT1 : std_logic_vector(15 downto 0 );  signal MADD18_1 : std_logic_vector(15 downto 0 );  signal MADD2_1 : std_logic_vector(15 downto 0 );  signal MMUL18_1 : std_logic_vector(15 downto 0 );  signal MMUL_16A1INQQ : std_logic_vector(15 downto 0 );  signal MULL16_1 : std_logic_vector(15 downto 0 );  signal MULL2_1 : std_logic_vector(15 downto 0 );  signal S10 : std_logic_vector(1 downto 0 );  signal S11 : std_logic_vector(4 downto 0 );  signal S12 : std_logic_vector(10 downto 0 );  signal S13 : std_logic_vector(11 downto 0 );  signal S14 : std_logic_vector(3 downto 0 );  signal S16 : std_logic_vector(12 downto 0 );  signal S17 : std_logic_vector(2 downto 0 );  signal S7 : std_logic_vector(8 downto 0 );  signal S8 : std_logic_vector(6 downto 0 );  signal S9 : std_logic_vector(13 downto 0 );  signal Y1 : std_logic_vector(15 downto 0 );  signal Y10 : std_logic_vector(15 downto 0 );  signal Y13 : std_logic_vector(15 downto 0 );  signal Y14 : std_logic_vector(15 downto 0 );  signal Y15 : std_logic_vector(15 downto 0 );  signal Y16 : std_logic_vector(15 downto 0 );  signal Y19 : std_logic_vector(15 downto 0 );  signal Y2 : std_logic_vector(15 downto 0 );  signal Y20 : std_logic_vector(15 downto 0 );  signal Y21 : std_logic_vector(15 downto 0 );  signal Y22 : std_logic_vector(15 downto 0 );  signal Y25 : std_logic_vector(15 downto 0 );  signal Y26 : std_logic_vector(15 downto 0 );  signal Y27 : std_logic_vector(15 downto 0 );  signal Y28 : std_logic_vector(15 downto 0 );  signal Y3 : std_logic_vector(15 downto 0 );  signal Y31 : std_logic_vector(15 downto 0 );  signal Y32 : std_logic_vector(15 downto 0 );  signal Y33 : std_logic_vector(15 downto 0 );  signal Y34 : std_logic_vector(15 downto 0 );  signal Y37 : std_logic_vector(15 downto 0 );  signal Y38 : std_logic_vector(15 downto 0 );  signal Y39 : std_logic_vector(15 downto 0 );  signal Y4 : std_logic_vector(15 downto 0 );  signal Y40 : std_logic_vector(15 downto 0 );  signal Y43 : std_logic_vector(15 downto 0 );  signal Y44 : std_logic_vector(15 downto 0 );  signal Y45 : std_logic_vector(15 downto 0 );  signal Y46 : std_logic_vector(15 downto 0 );  signal Y49 : std_logic_vector(15 downto 0 );  signal Y50 : std_logic_vector(15 downto 0 );  signal Y51 : std_logic_vector(15 downto 0 );  signal Y52 : std_logic_vector(15 downto 0 );  signal Y7 : std_logic_vector(15 downto 0 );  signal Y8 : std_logic_vector(15 downto 0 );  signal Y9 : std_logic_vector(15 downto 0 );  signal Z1 : std_logic_vector(15 downto 0 );  signal Z10 : std_logic_vector(15 downto 0 );  signal Z11 : std_logic_vector(15 downto 0 );  signal Z12 : std_logic_vector(15 downto 0 );  signal Z13 : std_logic_vector(15 downto 0 );  signal Z14 : std_logic_vector(15 downto 0 );  signal Z15 : std_logic_vector(15 downto 0 );  signal Z16 : std_logic_vector(15 downto 0 );  signal Z17 : std_logic_vector(15 downto 0 );  signal Z18 : std_logic_vector(15 downto 0 );  signal Z19 : std_logic_vector(15 downto 0 );  signal Z2 : std_logic_vector(15 downto 0 );  signal Z20 : std_logic_vector(15 downto 0 );  signal Z21 : std_logic_vector(15 downto 0 );  signal Z22 : std_logic_vector(15 downto 0 );  signal Z23 : std_logic_vector(15 downto 0 );  signal Z24 : std_logic_vector(15 downto 0 );  signal Z25 : std_logic_vector(15 downto 0 );  signal Z26 : std_logic_vector(15 downto 0 );  signal Z27 : std_logic_vector(15 downto 0 );  signal Z28 : std_logic_vector(15 downto 0 );  signal Z29 : std_logic_vector(15 downto 0 );  signal Z3 : std_logic_vector(15 downto 0 );  signal Z30 : std_logic_vector(15 downto 0 );  signal Z31 : std_logic_vector(15 downto 0 );  signal Z32 : std_logic_vector(15 downto 0 );  signal Z33 : std_logic_vector(15 downto 0 );  signal Z34 : std_logic_vector(15 downto 0 );  signal Z35 : std_logic_vector(15 downto 0 );  signal Z36 : std_logic_vector(15 downto 0 );  signal Z37 : std_logic_vector(15 downto 0 );  signal Z38 : std_logic_vector(15 downto 0 );  signal Z39 : std_logic_vector(15 downto 0 );  signal Z4 : std_logic_vector(15 downto 0 );  signal Z40 : std_logic_vector(15 downto 0 );  signal Z41 : std_logic_vector(15 downto 0 );  signal Z42 : std_logic_vector(15 downto 0 );  signal Z43 : std_logic_vector(15 downto 0 );  signal Z44 : std_logic_vector(15 downto 0 );  signal Z45 : std_logic_vector(15 downto 0 );  signal Z46 : std_logic_vector(15 downto 0 );  signal Z47 : std_logic_vector(15 downto 0 );  signal Z48 : std_logic_vector(15 downto 0 );  signal Z49 : std_logic_vector(15 downto 0 );  signal Z5 : std_logic_vector(15 downto 0 );  signal Z50 : std_logic_vector(15 downto 0 );  signal Z51 : std_logic_vector(15 downto 0 );  signal Z52 : std_logic_vector(15 downto 0 );  signal Z6 : std_logic_vector(15 downto 0 );  signal Z7 : std_logic_vector(15 downto 0 );  signal Z8 : std_logic_vector(15 downto 0 );  signal Z9 : std_logic_vector(15 downto 0 );  component DE_KEY_CTRL      port (            E_K : in std_logic;            CLK : in std_logic;            RST : in std_logic;            E_MMUL16A1_IN : out std_logic;            MMUL16A1_INOV : in std_logic;            DEK_SEL : out std_logic_vector(4 downto 0 );            KEY_BUSY : out std_logic            );  end component;  component E_K_CTRL      port (            EKLD : in std_logic;            CLK : in std_logic;            RST : in std_logic;            E_K : out std_logic            );  end component;  component MMUL_16A1_IN      port (            CLK : in std_logic;            D : in std_logic_vector(15 downto 0 );            E : in std_logic;            OV : out std_logic;            Q : out std_logic_vector(15 downto 0 );            RST : in std_logic            );  end component;  component MADD16_IN      port (            D : in std_logic_vector(15 downto 0 );            Q : out std_logic_vector(15 downto 0 )            );  end component;  signal visual_C18_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C19_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C21_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C22_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C23_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C0_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C1_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C3_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C4_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C5_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C6_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C7_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C9_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C10_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C11_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C12_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C13_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C14_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C15_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C16_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C17_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C124_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C125_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C24_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C33_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C34_O : std_logic_vector(16 - 1 downto 0 );  signal visual_C108_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C109_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C111_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C112_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C113_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C114_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C115_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C116_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C106_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C107_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C117_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C118_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C119_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C120_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C122_Q : std_logic_vector(16 - 1 downto 0 );  signal visual_C123_Q : std_logic_vector(16 - 1 downto 0 );   -- Start Configuration Specification  -- ++ for all : DE_KEY_CTRL use entity work.DE_KEY_CTRL(DE_KEY_CTRL);  -- ++ for all : E_K_CTRL use entity work.E_K_CTRL(E_K_CTRL);  -- ++ for all : MMUL_16A1_IN use entity work.MMUL_16A1_IN(MMUL_16A1_IN);  -- ++ for all : MADD16_IN use entity work.MADD16_IN(MADD16_IN);  -- End Configuration Specification begin   C20: DE_KEY_CTRL    port map (              E_K => E_K,              CLK => CLK,              RST => RST,              E_MMUL16A1_IN => E2,              MMUL16A1_INOV => E1,              DEK_SEL => DEK_SEL(4 downto 0),              KEY_BUSY => KEY_BUSY              );   C25: E_K_CTRL    port map (              EKLD => EKLD,              CLK => CLK,              RST => RST,              E_K => E_K              );   MA7: MMUL_16A1_IN    port map (              CLK => CLK,              D => MMUL18_1(15 downto 0),              E => E2,              OV => E1,              Q => MMUL_16A1INQQ(15 downto 0),              RST => RST              );   C155: MADD16_IN    port map (              D => MADD18_1(15 downto 0),              Q => MADD16OUT1(15 downto 0)              );   Z8(15 downto 0) <= KEY_IN(15 downto 0);  Z7(15 downto 0) <= KEY_IN(31 downto 16);  Z6(15 downto 0) <= KEY_IN(47 downto 32);  Z5(15 downto 0) <= KEY_IN(63 downto 48);  Z4(15 downto 0) <= KEY_IN(79 downto 64);  Z3(15 downto 0) <= KEY_IN(95 downto 80);  Z2(15 downto 0) <= KEY_IN(111 downto 96);  Z1(15 downto 0) <= KEY_IN(127 downto 112);   Z16(15 downto 0) <= KEY_IN(118 downto 103);  Z13(15 downto 0) <= KEY_IN(38 downto 23);  Z12(15 downto 0) <= KEY_IN(54 downto 39);  Z11(15 downto 0) <= KEY_IN(70 downto 55);  Z14(15 downto 0) <= KEY_IN(22 downto 7);  Z10(15 downto 0) <= KEY_IN(86 downto 71);  Z9(15 downto 0) <= KEY_IN(102 downto 87);  S7(8 downto 0) <= KEY_IN(127 downto 119);  S8(6 downto 0) <= KEY_IN(6 downto 0);   Z15(15 downto 9) <= S8(6 downto 0);  Z15(8 downto 0) <= S7(8 downto 0);   Z24(15 downto 0) <= KEY_IN(93 downto 78);  Z20(15 downto 0) <= KEY_IN(29 downto 14);  Z19(15 downto 0) <= KEY_IN(45 downto 30);  Z18(15 downto 0) <= KEY_IN(61 downto 46);  Z17(15 downto 0) <= KEY_IN(77 downto 62);  Z23(15 downto 0) <= KEY_IN(109 downto 94);  Z22(15 downto 0) <= KEY_IN(125 downto 110);  S9(13 downto 0) <= KEY_IN(13 downto 0);  S10(1 downto 0) <= KEY_IN(127 downto 126);   Z21(15 downto 2) <= S9(13 downto 0);  Z21(1 downto 0) <= S10(1 downto 0);   Z29(15 downto 0) <= KEY_IN(116 downto 101);  S12(10 downto 0) <= KEY_IN(127 downto 117);  S11(4 downto 0) <= KEY_IN(4 downto 0);  Z31(15 downto 0) <= KEY_IN(84 downto 69);  Z30(15 downto 0) <= KEY_IN(100 downto 85);  Z27(15 downto 0) <= KEY_IN(20 downto 5);  Z26(15 downto 0) <= KEY_IN(36 downto 21);  Z32(15 downto 0) <= KEY_IN(68 downto 53);  Z25(15 downto 0) <= KEY_IN(52 downto 37);   Z28(15 downto 11) <= S11(4 downto 0);  Z28(10 downto 0) <= S12(10 downto 0);   Z40(15 downto 0) <= KEY_IN(43 downto 28);  Z39(15 downto 0) <= KEY_IN(59 downto 44);  Z38(15 downto 0) <= KEY_IN(75 downto 60);  Z37(15 downto 0) <= KEY_IN(91 downto 76);  Z36(15 downto 0) <= KEY_IN(107 downto 92);  Z35(15 downto 0) <= KEY_IN(123 downto 108);  S14(3 downto 0) <= KEY_IN(127 downto 124);  S13(11 downto 0) <= KEY_IN(11 downto 0);  Z33(15 downto 0) <= KEY_IN(27 downto 12);   Z34(15 downto 4) <= S13(11 downto 0);  Z34(3 downto 0) <= S14(3 downto 0);   Z48(15 downto 0) <= KEY_IN(18 downto 3);  Z47(15 downto 0) <= KEY_IN(34 downto 19);  Z46(15 downto 0) <= KEY_IN(50 downto 35);  Z45(15 downto 0) <= KEY_IN(66 downto 51);  Z44(15 downto 0) <= KEY_IN(82 downto 67);  Z43(15 downto 0) <= KEY_IN(98 downto 83);  Z42(15 downto 0) <= KEY_IN(114 downto 99);  S16(12 downto 0) <= KEY_IN(127 downto 115);  S17(2 downto 0) <= KEY_IN(2 downto 0);   Z41(15 downto 13) <= S17(2 downto 0);  Z41(12 downto 0) <= S16(12 downto 0);   Z52(15 downto 0) <= KEY_IN(57 downto 42);  Z51(15 downto 0) <= KEY_IN(73 downto 58);  Z50(15 downto 0) <= KEY_IN(89 downto 74);  Z49(15 downto 0) <= KEY_IN(105 downto 90);   Y49(15 downto 0) <= (visual_C18_Q);    process (CLK)  begin  if (CLK'event and CLK = '1') then    if (RST = '0') then      visual_C18_Q <= (others => '0');    else      if (E1 = '1') then        visual_C18_Q <= (Y52(15 downto 0));      end if;   end if;  end if;  end process;    Y52(15 downto 0) <= (visual_C19_Q);    process (CLK)  begin  if (CLK'event and CLK = '1') then    if (RST = '0') then      visual_C19_Q <= (others => '0');    else      if (E1 = '1') then        visual_C19_Q <= (MMUL_16A1INQQ(15 downto 0));      end if;   end if;  end if;  end process;    MULL16_1(15 downto 0) <= (visual_C21_O);   process (Z49 , Z52 , Z43 , Z46 , Z37 , Z40 , Z31 , Z34 , Z25             , Z28 , Z19 , Z22 , Z13 , Z16 , Z7 , Z10 , DEK_SEL)   begin     case DEK_SEL(3 downto 0) is       when "0000" =>         visual_C21_O <=  Z49(15 downto 0);       when "0001" =>         visual_C21_O <=  Z52(15 downto 0);       when "0010" =>         visual_C21_O <=  Z43(15 downto 0);       when "0011" =>         visual_C21_O <=  Z46(15 downto 0);       when "0100" =>         visual_C21_O <=  Z37(15 downto 0);       when "0101" =>         visual_C21_O <=  Z40(15 downto 0);       when "0110" =>         visual_C21_O <=  Z31(15 downto 0);       when "0111" =>         visual_C21_O <=  Z34(15 downto 0);       when "1000" =>         visual_C21_O <=  Z25(15 downto 0);       when "1001" =>         visual_C21_O <=  Z28(15 downto 0);       when "1010" =>         visual_C21_O <=  Z19(15 downto 0);       when "1011" =>         visual_C21_O <=  Z22(15 downto 0);       when "1100" =>         visual_C21_O <=  Z13(15 downto 0);       when "1101" =>         visual_C21_O <=  Z16(15 downto 0);       when "1110" =>         visual_C21_O <=  Z7(15 downto 0);       when others =>         visual_C21_O <=  Z10(15 downto 0);     end case;   end process;    MULL2_1(15 downto 0) <= (visual_C22_O);   process (Z1 , Z4 , DEK_SEL)   begin     case DEK_SEL(0) is       when '0' =>         visual_C22_O <=  Z1(15 downto 0);       when others =>         visual_C22_O <=  Z4(15 downto 0);     end case;   end process;    MMUL18_1(15 downto 0) <= (visual_C23_O);   process (MULL16_1 , MULL2_1 , DEK_SEL)   begin     case DEK_SEL(4) is       when '0' =>         visual_C23_O <=  MULL16_1(15 downto 0);       when others =>         visual_C23_O <=  MULL2_1(15 downto 0);     end case;   end process;    Y46(15 downto 0) <= (visual_C0_Q);    process (CLK)  begin  if (CLK'event and CLK = '1') then    if (RST = '0') then      visual_C0_Q <= (others => '0');    else      if (E1 = '1') then        visual_C0_Q <= (Y49(15 downto 0));      end if;   end if;  end if;  end process;    Y34(15 downto 0) <= (visual_C1_Q);    process (CLK)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -