-- -- add16.vhd -- Described by Tohru Ishihara -- library IEEE; library EXD; use IEEE.std_logic_1164.all; use EXD.all; entity add16 is end add16; architecture gate_level of add16 is component OAI21 port( A, B, C : in std_logic; Y : out std_logic); end component; component AOI21B port( A, B, C : in std_logic; Y : out std_logic); end component; component NOR21 port( A, B : in std_logic; Y : out std_logic); end component; component NAND21 port( A, B : in std_logic; Y : out std_logic); end component; component NOR2 port( A, B : in std_logic; Y : out std_logic); end component; component AOI21 port( A, B, C : in std_logic; Y : out std_logic); end component; component XOR2 port( A, B : in std_logic; Y : out std_logic); end component; component EOR port( A, B, C, D : in std_logic; Y : out std_logic); end component; component XNOR2 port( A, B : in std_logic; Y : out std_logic); end component; component NAND2 port( A, B : in std_logic; Y : out std_logic); end component; component OAI211 port( A, B, C, D : in std_logic; Y : out std_logic); end component; component NAND22 port( A, B : in std_logic; Y : out std_logic); end component; component NOR22 port( A, B : in std_logic; Y : out std_logic); end component; component NAND43 port( A, B, C, D : in std_logic; Y : out std_logic); end component; component GEN3 port( A, B, C, D, E, F, G : in std_logic; Y : out std_logic); end component; component NAND32 port( A, B, C : in std_logic; Y : out std_logic); end component; component INV1 port( A : in std_logic; Y : out std_logic); end component; signal n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, n57, n58, n59, n60, n61, n62, n63, n64, n65, n66, n67, n68, n69, n70, n71, n72, n73, n74, n75, n76, n77, n78, n79 : std_logic; SIGNAL A, B : std_logic_vector (15 downto 0); SIGNAL CI : std_logic; SIGNAL SUM : std_logic_vector (15 downto 0); SIGNAL CO : std_logic; begin U1 : OAI21 port map( A => n3, B => n1, C => n2, Y => CO); U2 : AOI21B port map( A => n7, B => n6, C => n5, Y => n4); U3 : NOR21 port map( A => n10, B => n9, Y => n8); U4 : NAND21 port map( A => n13, B => n12, Y => n11); U5 : AOI21B port map( A => n17, B => n16, C => n15, Y => n14); U6 : NOR21 port map( A => n17, B => n16, Y => n18); U7 : NAND21 port map( A => n21, B => n20, Y => n19); U8 : NOR21 port map( A => n24, B => n23, Y => n22); U9 : NOR2 port map( A => n7, B => n5, Y => n25); U10 : NOR2 port map( A => n27, B => n28, Y => n26); U11 : NOR21 port map( A => n1, B => n3, Y => n29); U12 : NOR2 port map( A => n31, B => n32, Y => n30); U13 : NOR21 port map( A => n35, B => n34, Y => n33); U14 : NOR2 port map( A => n37, B => n38, Y => n36); U15 : NOR21 port map( A => n41, B => n40, Y => n39); U16 : NOR2 port map( A => n43, B => n44, Y => n42); U17 : AOI21 port map( A => n31, B => n45, C => n46, Y => n2); U18 : XOR2 port map( A => n47, B => n8, Y => SUM(9)); U19 : EOR port map( A => n48, B => n11, C => n48, D => n11, Y => SUM(8)); U20 : XOR2 port map( A => n49, B => n14, Y => SUM(7)); U21 : XNOR2 port map( A => n15, B => n18, Y => SUM(6)); U22 : XNOR2 port map( A => n50, B => n51, Y => SUM(5)); U23 : EOR port map( A => n52, B => n19, C => n52, D => n19, Y => SUM(4)); U24 : XOR2 port map( A => n53, B => n22, Y => SUM(3)); U25 : XNOR2 port map( A => n54, B => n25, Y => SUM(2)); U26 : XOR2 port map( A => n55, B => n26, Y => SUM(1)); U27 : XNOR2 port map( A => n56, B => n29, Y => SUM(15)); U28 : XOR2 port map( A => n57, B => n30, Y => SUM(14)); U29 : XNOR2 port map( A => n58, B => n33, Y => SUM(13)); U30 : XOR2 port map( A => n59, B => n36, Y => SUM(12)); U31 : XOR2 port map( A => n60, B => n39, Y => SUM(11)); U32 : XNOR2 port map( A => n61, B => n42, Y => SUM(10)); U33 : NAND2 port map( A => A(0), B => B(0), Y => n62); U34 : NAND2 port map( A => A(12), B => B(12), Y => n63); U35 : EOR port map( A => CI, B => n64, C => CI, D => n64, Y => SUM(0)); U36 : NOR2 port map( A => n66, B => n67, Y => n65); U37 : NAND2 port map( A => A(8), B => B(8), Y => n13); U38 : NAND2 port map( A => A(4), B => B(4), Y => n21); U39 : AOI21B port map( A => n38, B => n59, C => n37, Y => n58); U40 : OAI211 port map( A => n23, B => n69, C => n24, D => n4, Y => n68); U41 : OAI21 port map( A => n21, B => n52, C => n20, Y => n51); U42 : OAI21 port map( A => n62, B => n66, C => n67, Y => n55); U43 : NOR2 port map( A => A(8), B => B(8), Y => n12); U44 : NAND22 port map( A => A(7), B => B(7), Y => n70); U45 : NOR22 port map( A => A(7), B => B(7), Y => n71); U46 : NAND22 port map( A => A(6), B => B(6), Y => n16); U47 : NOR22 port map( A => A(6), B => B(6), Y => n17); U48 : NAND22 port map( A => A(5), B => B(5), Y => n72); U49 : NOR22 port map( A => A(5), B => B(5), Y => n73); U50 : NOR2 port map( A => A(4), B => B(4), Y => n20); U51 : NOR2 port map( A => A(3), B => B(3), Y => n24); U52 : NAND2 port map( A => A(3), B => B(3), Y => n23); U53 : NOR2 port map( A => A(2), B => B(2), Y => n5); U54 : NAND2 port map( A => A(2), B => B(2), Y => n74); U55 : NOR2 port map( A => A(1), B => B(1), Y => n28); U56 : NAND2 port map( A => A(1), B => B(1), Y => n75); U57 : OAI21 port map( A => n75, B => n28, C => n62, Y => n6); U58 : NOR2 port map( A => A(0), B => B(0), Y => n66); U59 : NAND43 port map( A => n65, B => n24, C => n28, D => n5, Y => n69); U60 : GEN3 port map( A => n71, B => n70, C => n17, D => n16, E => n73, F => n51, G => n72, Y => n76); U61 : NAND22 port map( A => A(9), B => B(9), Y => n9); U62 : NOR22 port map( A => A(9), B => B(9), Y => n10); U63 : AOI21 port map( A => n73, B => n51, C => n72, Y => n15); U64 : NAND21 port map( A => n70, B => n71, Y => n49); U65 : NAND21 port map( A => n72, B => n73, Y => n50); U66 : AOI21B port map( A => n27, B => n55, C => n28, Y => n54); U67 : OAI21 port map( A => n74, B => n5, C => n54, Y => n53); U68 : NOR2 port map( A => A(14), B => B(14), Y => n32); U69 : NOR2 port map( A => A(13), B => B(13), Y => n35); U70 : NOR2 port map( A => A(12), B => B(12), Y => n37); U71 : NAND22 port map( A => A(11), B => B(11), Y => n40); U72 : NOR22 port map( A => A(11), B => B(11), Y => n41); U73 : NOR2 port map( A => A(10), B => B(10), Y => n44); U74 : NAND2 port map( A => A(10), B => B(10), Y => n77); U75 : OAI21 port map( A => n13, B => n12, C => n48, Y => n47); U76 : GEN3 port map( A => n41, B => n40, C => n43, D => n78, E => n10, F => n47, G => n9, Y => n59); U77 : NAND2 port map( A => A(13), B => B(13), Y => n34); U78 : OAI21 port map( A => n34, B => n58, C => n35, Y => n57); U79 : NOR22 port map( A => A(14), B => B(14), Y => n31); U80 : AOI21 port map( A => n31, B => n46, C => n57, Y => n56); U81 : NOR2 port map( A => A(15), B => B(15), Y => n1); U82 : NAND2 port map( A => A(15), B => B(15), Y => n3); U83 : AOI21 port map( A => n10, B => n47, C => n9, Y => n61); U84 : OAI21 port map( A => n77, B => n44, C => n61, Y => n60); U85 : NOR21 port map( A => n66, B => n62, Y => n64); U86 : NAND32 port map( A => n59, B => n35, C => n37, Y => n79); U87 : OAI211 port map( A => n34, B => n79, C => n35, D => n63, Y => n45); U88 : INV1 port map( A => CI, Y => n67); U89 : INV1 port map( A => n63, Y => n38); U90 : INV1 port map( A => n68, Y => n52); U91 : INV1 port map( A => n74, Y => n7); U92 : INV1 port map( A => n75, Y => n27); U93 : INV1 port map( A => n76, Y => n48); U94 : INV1 port map( A => n32, Y => n46); U95 : INV1 port map( A => n44, Y => n78); U96 : INV1 port map( A => n77, Y => n43); PROCESS BEGIN A <= "0000000000000000"; B <= "1111111111111111"; CI <= '0'; wait for 50 ns; CI <= '1'; wait; END PROCESS; end gate_level; CONFIGURATION SIM_MODEL OF add16 IS -- entity のあとのなまえ FOR gate_level -- Architecrute のあとのなまえ END FOR; END SIM_MODEL;