1ENTITY fulladder_x4 IS 2GENERIC ( 3 CONSTANT area : NATURAL := 5250; 4 CONSTANT cin_a1 : NATURAL := 8; 5 CONSTANT cin_a2 : NATURAL := 8; 6 CONSTANT cin_a3 : NATURAL := 6; 7 CONSTANT cin_a4 : NATURAL := 6; 8 CONSTANT cin_b1 : NATURAL := 8; 9 CONSTANT cin_b2 : NATURAL := 8; 10 CONSTANT cin_b3 : NATURAL := 6; 11 CONSTANT cin_b4 : NATURAL := 6; 12 CONSTANT cin_cin1 : NATURAL := 7; 13 CONSTANT cin_cin2 : NATURAL := 6; 14 CONSTANT cin_cin3 : NATURAL := 6; 15 CONSTANT rdown_a1_cout : NATURAL := 810; 16 CONSTANT rdown_a1_sout : NATURAL := 810; 17 CONSTANT rdown_a2_cout : NATURAL := 810; 18 CONSTANT rdown_a2_sout : NATURAL := 810; 19 CONSTANT rdown_a3_sout : NATURAL := 810; 20 CONSTANT rdown_a4_sout : NATURAL := 810; 21 CONSTANT rdown_b1_cout : NATURAL := 810; 22 CONSTANT rdown_b1_sout : NATURAL := 810; 23 CONSTANT rdown_b2_cout : NATURAL := 810; 24 CONSTANT rdown_b2_sout : NATURAL := 810; 25 CONSTANT rdown_b3_sout : NATURAL := 810; 26 CONSTANT rdown_b4_sout : NATURAL := 810; 27 CONSTANT rdown_cin1_cout : NATURAL := 810; 28 CONSTANT rdown_cin1_sout : NATURAL := 810; 29 CONSTANT rdown_cin2_sout : NATURAL := 810; 30 CONSTANT rdown_cin3_sout : NATURAL := 810; 31 CONSTANT rup_a1_cout : NATURAL := 890; 32 CONSTANT rup_a1_sout : NATURAL := 890; 33 CONSTANT rup_a2_cout : NATURAL := 890; 34 CONSTANT rup_a2_sout : NATURAL := 890; 35 CONSTANT rup_a3_sout : NATURAL := 890; 36 CONSTANT rup_a4_sout : NATURAL := 890; 37 CONSTANT rup_b1_cout : NATURAL := 890; 38 CONSTANT rup_b1_sout : NATURAL := 890; 39 CONSTANT rup_b2_cout : NATURAL := 890; 40 CONSTANT rup_b2_sout : NATURAL := 890; 41 CONSTANT rup_b3_sout : NATURAL := 890; 42 CONSTANT rup_b4_sout : NATURAL := 890; 43 CONSTANT rup_cin1_cout : NATURAL := 890; 44 CONSTANT rup_cin1_sout : NATURAL := 890; 45 CONSTANT rup_cin2_sout : NATURAL := 890; 46 CONSTANT rup_cin3_sout : NATURAL := 890; 47 CONSTANT tphh_cin3_sout : NATURAL := 630; 48 CONSTANT tphh_a4_sout : NATURAL := 673; 49 CONSTANT tphh_b4_sout : NATURAL := 715; 50 CONSTANT tphh_a1_cout : NATURAL := 800; 51 CONSTANT tphh_a2_cout : NATURAL := 801; 52 CONSTANT tpll_cin1_cout : NATURAL := 830; 53 CONSTANT tpll_b1_cout : NATURAL := 839; 54 CONSTANT tpll_a1_cout : NATURAL := 866; 55 CONSTANT tpll_b2_cout : NATURAL := 883; 56 CONSTANT tphh_b1_cout : NATURAL := 884; 57 CONSTANT tphh_b2_cout : NATURAL := 892; 58 CONSTANT tphh_cin1_cout : NATURAL := 899; 59 CONSTANT tpll_a2_cout : NATURAL := 924; 60 CONSTANT tphh_a3_sout : NATURAL := 1086; 61 CONSTANT tpll_cin2_sout : NATURAL := 1150; 62 CONSTANT tphh_b3_sout : NATURAL := 1202; 63 CONSTANT tpll_b3_sout : NATURAL := 1208; 64 CONSTANT tpll_a3_sout : NATURAL := 1265; 65 CONSTANT tphh_cin2_sout : NATURAL := 1308; 66 CONSTANT tpll_b4_sout : NATURAL := 1329; 67 CONSTANT tpll_a4_sout : NATURAL := 1377; 68 CONSTANT tpll_cin3_sout : NATURAL := 1417; 69 CONSTANT tphl_a1_sout : NATURAL := 1471; 70 CONSTANT tphl_a2_sout : NATURAL := 1472; 71 CONSTANT tplh_cin1_sout : NATURAL := 1492; 72 CONSTANT tplh_b1_sout : NATURAL := 1501; 73 CONSTANT tplh_a1_sout : NATURAL := 1528; 74 CONSTANT tplh_b2_sout : NATURAL := 1545; 75 CONSTANT tphl_b1_sout : NATURAL := 1555; 76 CONSTANT tphl_b2_sout : NATURAL := 1563; 77 CONSTANT tphl_cin1_sout : NATURAL := 1570; 78 CONSTANT tplh_a2_sout : NATURAL := 1586; 79 CONSTANT transistors : NATURAL := 32 80); 81PORT ( 82 a1 : in BIT; 83 a2 : in BIT; 84 a3 : in BIT; 85 a4 : in BIT; 86 b1 : in BIT; 87 b2 : in BIT; 88 b3 : in BIT; 89 b4 : in BIT; 90 cin1 : in BIT; 91 cin2 : in BIT; 92 cin3 : in BIT; 93 cout : out BIT; 94 sout : out BIT; 95 vdd : in BIT; 96 vss : in BIT 97); 98END fulladder_x4; 99 100ARCHITECTURE behaviour_data_flow OF fulladder_x4 IS 101 SIGNAL ncout : BIT; 102 103BEGIN 104 ASSERT ((vdd and not (vss)) = '1') 105 REPORT "power supply is missing on fulladder_x4" 106 SEVERITY WARNING; 107 ASSERT (((((a1 and a2) and a3) and a4) or not ((((a1 or a2) or a3) or 108 a4))) = '1') 109 REPORT "a1, a2, a3, a4 must be connected together on fulladder_x4" 110 SEVERITY WARNING; 111 ASSERT (((((b1 and b2) and b3) and b4) or not ((((b1 or b2) or b3) or 112 b4))) = '1') 113 REPORT "b1, b2, b3, b4 must be connected together on fulladder_x4" 114 SEVERITY WARNING; 115 ASSERT ((((cin1 and cin2) and cin3) or not (((cin1 or cin2) or cin3))) = '1') 116 REPORT "cin1, cin2, cin3 must be connected together on fulladder_x4" 117 SEVERITY WARNING; 118 ncout <= not (((a1 and b1) or ((a2 or b2) and cin1))); 119 sout <= (((a3 and b3) and cin2) or (((a4 or b4) or cin3) and ncout)) after 2200 ps; 120 cout <= not (ncout) after 1500 ps; 121END; 122