ksy.vhd

来自「里面有一个很实用的源码,数字引爆密码设计」· VHDL 代码 · 共 84 行

VHD
84
字号
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY ksy IS
           PORT (A,B  : IN  std_logic;
                 C    : OUT  std_logic);
END ksy;

ARCHITECTURE ksy_arc OF ksy IS
     COMPONENT kand2
          PORT (A,B  : IN  std_logic;
                C    : OUT std_logic);
     END COMPONENT;

     COMPONENT kdf
          PORT (A,B  : IN  std_logic;
                C,D  : OUT std_logic);
     END COMPONENT;

     COMPONENT knand2
          PORT (A,B  : IN  std_logic;
                C    : OUT std_logic);
     END COMPONENT;
     SIGNAL  TMP1,TMP2,TMP3,TMP4,TMP5,TMP6  : std_logic;
BEGIN
     U0: knand2   PORT MAP(A,TMP1,TMP2);
     U1: knand2   PORT MAP(TMP2,TMP3,TMP1);
     U2: kdf      PORT MAP(TMP2,B,TMP4,TMP3);
     U3: kdf      PORT MAP(TMP4,B,TMP6,TMP5);  
     U4: kand2    PORT MAP(TMP4,TMP5,C);
END ksy_arc;

-- two inputs and gate description
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY kand2 IS
           PORT (A,B  : IN  std_logic;
                 C    : OUT  std_logic);
END KAND2;

ARCHITECTURE kand2_arc OF kand2 IS
BEGIN
     C <= A AND B;
END kand2_arc;
-- end of two inputs and gate description

-- two inputs and_not gate description
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY knand2 IS
           PORT (A,B  : IN  std_logic;
                 C    : OUT  std_logic);
END knand2;

ARCHITECTURE knand2_arc OF knand2 IS
BEGIN
     C <= NOT (A AND B);
END knand2_arc;
-- end of two inputs and_not gate description

-- D trigger description
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY kdf IS
           PORT (A,B  : IN  std_logic;
                 C,D  : OUT  std_logic);
END kdf;

ARCHITECTURE kdf_arc OF kdf IS
BEGIN
     PROCESS(B)
     BEGIN
          IF ( B'event AND B ='1') THEN
               C <= A;
	       D <= NOT A;
          END IF;
     END PROCESS;
END kdf_arc;
-- end of D trigger description

⌨️ 快捷键说明

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