二进制全加器,元件声明与元件例化(COMPONENT,PORT MAP)

来源:百度文库 编辑:神马文学网 时间:2024/04/27 13:40:13
元件声明与元件例化(COMPONENT,PORT MAP)
//或门
LIBRARY IEEE; ;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY or2a IS
PORT(a,b : IN STD_LOGIC;
       c : OUT STD_LOGIC);
END or2a;

ARCHITECTURE art1 OF or2a IS
BEGIN
  c<=a OR b;
END art1;

//半加器;
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder IS
   PORT(a,b : IN STD_LOGIC;
        co,so: OUT STD_LOGIC);
END h_adder;

ARCHITECTURE art2 OF h_adder IS
BEGIN
    so <= a XOR b;
    co <= a AND b;
END art2;

1位二进制全加器顶层设计:
LIBRARY IEEE;         
USE IEEE.STD_LOGIC_1164。ALL;

ENTITY f_adder IS
PORT(ain,bin,cin : IN STD_LOGIC;
     cout,sum : OUT STD_LOGIC);
END f_adder;

ARCHITECTURE art3 OF f_adder IS
COMPONENT h_adder            //元件声明;
    PORT(a,b : IN STD_LOGIC;
         co,so: OUT STD_LOGIC);
END COMPONENT;
COMPONENT or2a 
    PORT(a,b : IN STD_LOGIC;
           c : OUT STD_LOGIC);
END COMPONENT;
SIGNAL d,e,f : STD_LOGIC;
BEGIN
u1:h_adder PORT MAP(ain,bin,d,e);    //元件例化;     
u2:h_adder PORT MAP(a=>e,b=>cin,co=>f,so=>sum);
u3:or2a PORT MAP(d,f,cout);
END art3;