You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1478 lines
74 KiB
VHDL

-- © IBM Corp. 2020
-- Licensed under the Apache License, Version 2.0 (the "License"), as modified by
-- the terms below; you may not use the files in this repository except in
-- compliance with the License as modified.
-- You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
--
-- Modified Terms:
--
-- 1) For the purpose of the patent license granted to you in Section 3 of the
-- License, the "Work" hereby includes implementations of the work of authorship
-- in physical form.
--
-- 2) Notwithstanding any terms to the contrary in the License, any licenses
-- necessary for implementation of the Work that are available from OpenPOWER
-- via the Power ISA End User License Agreement (EULA) are explicitly excluded
-- hereunder, and may be obtained from OpenPOWER under the terms and conditions
-- of the EULA.
--
-- Unless required by applicable law or agreed to in writing, the reference design
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
-- for the specific language governing permissions and limitations under the License.
--
-- Additional rights, including the ability to physically implement a softcore that
-- is compliant with the required sections of the Power ISA Specification, are
-- available at no cost under the terms of the OpenPOWER Power ISA EULA, which can be
-- obtained (along with the Power ISA) here: https://openpowerfoundation.org.
library ieee;
use ieee.std_logic_1164.all ;
library ibm;
use ibm.std_ulogic_support.all;
use ibm.std_ulogic_function_support.all;
use ibm.std_ulogic_ao_support.all;
use ibm.std_ulogic_mux_support.all;
library support;
use support.power_logic_pkg.all;
library tri; use tri.tri_latches_pkg.all;
library clib;
entity fuq_tblmul is
generic( expand_type : integer := 2 );
port(
vdd :inout power_logic;
gnd :inout power_logic;
x :in std_ulogic_vector(1 to 15);
y :in std_ulogic_vector(7 to 22);
z :in std_ulogic_vector(0 to 20);
tbl_sum :out std_ulogic_vector(0 to 36);
tbl_car :out std_ulogic_vector(0 to 35)
);
end fuq_tblmul;
architecture fuq_tblmul of fuq_tblmul is
constant tiup : std_ulogic := '1';
constant tidn : std_ulogic := '0';
signal sub_adj_lsb, sub_adj_lsb_b :std_ulogic_vector(1 to 7);
signal sub_adj_msb_b :std_ulogic_vector(1 to 7);
signal sub_adj_msb_7x_b, sub_adj_msb_7x, sub_adj_msb_7y :std_ulogic;
signal s_x, s_x2, s_neg :std_ulogic_vector(0 to 7);
signal pp0_0 :std_ulogic_vector( 6 to 24);
signal pp0_1 :std_ulogic_vector( 6 to 26);
signal pp0_2 :std_ulogic_vector( 8 to 28);
signal pp0_3 :std_ulogic_vector(10 to 30);
signal pp0_4 :std_ulogic_vector(12 to 32);
signal pp0_5 :std_ulogic_vector(14 to 34);
signal pp0_6 :std_ulogic_vector(16 to 36);
signal pp0_7 :std_ulogic_vector(17 to 36);
signal pp1_0_sum :std_ulogic_vector(0 to 26);
signal pp1_0_car :std_ulogic_vector(0 to 24);
signal pp1_1_sum :std_ulogic_vector(8 to 32);
signal pp1_1_car :std_ulogic_vector(9 to 30);
signal pp1_2_sum :std_ulogic_vector(14 to 36);
signal pp1_2_car :std_ulogic_vector(15 to 36);
signal pp1_0_car_unused :std_ulogic;
signal pp2_0_sum :std_ulogic_vector(0 to 32);
signal pp2_0_car :std_ulogic_vector(0 to 26);
signal pp2_1_sum :std_ulogic_vector(9 to 36);
signal pp2_1_car :std_ulogic_vector(13 to 36);
signal pp2_0_car_unused :std_ulogic;
signal pp3_0_sum :std_ulogic_vector(0 to 36);
signal pp3_0_ko :std_ulogic_vector(8 to 25);
signal pp3_0_car :std_ulogic_vector(0 to 35);
signal pp3_0_car_unused :std_ulogic;
signal z_b :std_ulogic_vector(0 to 20);
signal unused :std_ulogic;
begin
unused <= pp1_0_car_unused or
pp2_0_car_unused or
pp3_0_car_unused or
pp0_0(23) or
pp0_1(25) or
pp0_2(27) or
pp0_3(29) or
pp0_4(31) or
pp0_5(33) or
pp0_6(35) or
pp1_0_car(23) or
pp1_0_sum(25) or
pp1_1_car(28) or
pp1_1_sum(31) or
pp1_2_car(34) or
pp2_0_car(24) or
pp2_0_sum(31) or
pp2_1_car(30) or
pp2_1_car(34) or
s_neg(0) or
pp1_1_car(29) or
pp1_2_car(35) or
pp2_0_car(25) or
pp2_1_car(35) ;
bd0: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => tidn ,
i1 => x(1) ,
i2 => x(2) ,
s_neg => s_neg(0) ,
s_x => s_x(0) ,
s_x2 => s_x2(0) );
bd1: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(2) ,
i1 => x(3) ,
i2 => x(4) ,
s_neg => s_neg(1) ,
s_x => s_x(1) ,
s_x2 => s_x2(1) );
bd2: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(4) ,
i1 => x(5) ,
i2 => x(6) ,
s_neg => s_neg(2) ,
s_x => s_x(2) ,
s_x2 => s_x2(2) );
bd3: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(6) ,
i1 => x(7) ,
i2 => x(8) ,
s_neg => s_neg(3) ,
s_x => s_x(3) ,
s_x2 => s_x2(3) );
bd4: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(8) ,
i1 => x(9) ,
i2 => x(10) ,
s_neg => s_neg(4) ,
s_x => s_x(4) ,
s_x2 => s_x2(4) );
bd5: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(10) ,
i1 => x(11) ,
i2 => x(12) ,
s_neg => s_neg(5) ,
s_x => s_x(5) ,
s_x2 => s_x2(5) );
bd6: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(12) ,
i1 => x(13) ,
i2 => x(14) ,
s_neg => s_neg(6) ,
s_x => s_x(6) ,
s_x2 => s_x2(6) );
bd7: entity work.fuq_tblmul_bthdcd(fuq_tblmul_bthdcd) port map(
i0 => x(14) ,
i1 => x(15) ,
i2 => tidn ,
s_neg => s_neg(7) ,
s_x => s_x(7) ,
s_x2 => s_x2(7) );
sa1_1_lsb: sub_adj_lsb_b(1) <= not( s_neg(1) and ( s_x(1) or s_x2(1) ) );
sa2_1_lsb: sub_adj_lsb_b(2) <= not( s_neg(2) and ( s_x(2) or s_x2(2) ) );
sa3_1_lsb: sub_adj_lsb_b(3) <= not( s_neg(3) and ( s_x(3) or s_x2(3) ) );
sa4_1_lsb: sub_adj_lsb_b(4) <= not( s_neg(4) and ( s_x(4) or s_x2(4) ) );
sa5_1_lsb: sub_adj_lsb_b(5) <= not( s_neg(5) and ( s_x(5) or s_x2(5) ) );
sa6_1_lsb: sub_adj_lsb_b(6) <= not( s_neg(6) and ( s_x(6) or s_x2(6) ) );
sa7_1_lsb: sub_adj_lsb_b(7) <= not( s_neg(7) and ( s_x(7) or s_x2(7) ) );
sa1_2_lsb: sub_adj_lsb (1) <= not sub_adj_lsb_b(1);
sa2_2_lsb: sub_adj_lsb (2) <= not sub_adj_lsb_b(2);
sa3_2_lsb: sub_adj_lsb (3) <= not sub_adj_lsb_b(3);
sa4_2_lsb: sub_adj_lsb (4) <= not sub_adj_lsb_b(4);
sa5_2_lsb: sub_adj_lsb (5) <= not sub_adj_lsb_b(5);
sa6_2_lsb: sub_adj_lsb (6) <= not sub_adj_lsb_b(6);
sa7_2_lsb: sub_adj_lsb (7) <= not sub_adj_lsb_b(7);
sa1_1_msb: sub_adj_msb_b(1) <= not( s_neg(1) and ( s_x(1) or s_x2(1) ) );
sa2_1_msb: sub_adj_msb_b(2) <= not( s_neg(2) and ( s_x(2) or s_x2(2) ) );
sa3_1_msb: sub_adj_msb_b(3) <= not( s_neg(3) and ( s_x(3) or s_x2(3) ) );
sa4_1_msb: sub_adj_msb_b(4) <= not( s_neg(4) and ( s_x(4) or s_x2(4) ) );
sa5_1_msb: sub_adj_msb_b(5) <= not( s_neg(5) and ( s_x(5) or s_x2(5) ) );
sa6_1_msb: sub_adj_msb_b(6) <= not( s_neg(6) and ( s_x(6) or s_x2(6) ) );
sa7_1_msb: sub_adj_msb_b(7) <= not( s_neg(7) and ( s_x(7) or s_x2(7) ) );
sa7x_1_msb: sub_adj_msb_7x_b <= not( s_neg(7) and ( s_x(7) or s_x2(7) ) );
sa7x_2_msb: sub_adj_msb_7x <= not sub_adj_msb_7x_b ;
sa7y_2_msb: sub_adj_msb_7y <= not sub_adj_msb_7x_b ;
bm0: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => tidn ,
s_x => s_x(0) ,
s_x2 => s_x2(0) ,
x => y(7 to 22) ,
q => pp0_0(6 to 22) );
pp0_0(23) <= tidn;
pp0_0(24) <= sub_adj_lsb(1);
pp0_1(6) <= tiup;
pp0_1(7) <= sub_adj_msb_b(1);
bm1: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(1) ,
s_x => s_x(1) ,
s_x2 => s_x2(1) ,
x => y(7 to 22) ,
q => pp0_1(8 to 24) );
pp0_1(25) <= tidn;
pp0_1(26) <= sub_adj_lsb(2);
pp0_2(8) <= tiup;
pp0_2(9) <= sub_adj_msb_b(2);
bm2: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(2) ,
s_x => s_x(2) ,
s_x2 => s_x2(2) ,
x => y(7 to 22) ,
q => pp0_2(10 to 26) );
pp0_2(27) <= tidn;
pp0_2(28) <= sub_adj_lsb(3);
pp0_3(10) <= tiup;
pp0_3(11) <= sub_adj_msb_b(3);
bm3: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(3) ,
s_x => s_x(3) ,
s_x2 => s_x2(3) ,
x => y(7 to 22) ,
q => pp0_3(12 to 28) );
pp0_3(29) <= tidn;
pp0_3(30) <= sub_adj_lsb(4);
pp0_4(12) <= tiup;
pp0_4(13) <= sub_adj_msb_b(4);
bm4: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(4) ,
s_x => s_x(4) ,
s_x2 => s_x2(4) ,
x => y(7 to 22) ,
q => pp0_4(14 to 30) );
pp0_4(31) <= tidn;
pp0_4(32) <= sub_adj_lsb(5);
pp0_5(14) <= tiup;
pp0_5(15) <= sub_adj_msb_b(5);
bm5: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(5) ,
s_x => s_x(5) ,
s_x2 => s_x2(5) ,
x => y(7 to 22) ,
q => pp0_5(16 to 32) );
pp0_5(33) <= tidn;
pp0_5(34) <= sub_adj_lsb(6);
pp0_6(16) <= tiup;
pp0_6(17) <= sub_adj_msb_b(6);
bm6: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(6) ,
s_x => s_x(6) ,
s_x2 => s_x2(6) ,
x => y(7 to 22) ,
q => pp0_6(18 to 34) );
pp0_6(35) <= tidn;
pp0_6(36) <= sub_adj_lsb(7);
pp0_7(17) <= sub_adj_msb_b(7);
pp0_7(18) <= sub_adj_msb_7x;
pp0_7(19) <= sub_adj_msb_7y;
bm7: entity work.fuq_tblmul_bthrow(fuq_tblmul_bthrow) port map(
s_neg => s_neg(7) ,
s_x => s_x(7) ,
s_x2 => s_x2(7) ,
x => y(7 to 22) ,
q => pp0_7(20 to 36) );
z_b(0 to 20) <= not z(0 to 20);
pp1_0_sum(26) <= pp0_1(26) ;
pp1_0_sum(25) <= tidn ;
pp1_0_sum(24) <= pp0_0(24) ;
pp1_0_car(24) <= pp0_1(24) ;
pp1_0_sum(23) <= pp0_1(23) ;
pp1_0_car(23) <= tidn ;
pp1_0_sum(22) <= pp0_0(22) ;
pp1_0_car(22) <= pp0_1(22) ;
pp1_0_sum(21) <= pp0_0(21) ;
pp1_0_car(21) <= pp0_1(21) ;
pp1_0_car(20) <= tidn ;
pp1_0_csa_20: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(20) ,
b => pp0_0(20) ,
c => pp0_1(20) ,
sum => pp1_0_sum(20) ,
car => pp1_0_car(19) );
pp1_0_csa_19: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(19) ,
b => pp0_0(19) ,
c => pp0_1(19) ,
sum => pp1_0_sum(19) ,
car => pp1_0_car(18) );
pp1_0_csa_18: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(18) ,
b => pp0_0(18) ,
c => pp0_1(18) ,
sum => pp1_0_sum(18) ,
car => pp1_0_car(17) );
pp1_0_csa_17: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(17) ,
b => pp0_0(17) ,
c => pp0_1(17) ,
sum => pp1_0_sum(17) ,
car => pp1_0_car(16) );
pp1_0_csa_16: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(16) ,
b => pp0_0(16) ,
c => pp0_1(16) ,
sum => pp1_0_sum(16) ,
car => pp1_0_car(15) );
pp1_0_csa_15: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(15) ,
b => pp0_0(15) ,
c => pp0_1(15) ,
sum => pp1_0_sum(15) ,
car => pp1_0_car(14) );
pp1_0_csa_14: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(14) ,
b => pp0_0(14) ,
c => pp0_1(14) ,
sum => pp1_0_sum(14) ,
car => pp1_0_car(13) );
pp1_0_csa_13: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(13) ,
b => pp0_0(13) ,
c => pp0_1(13) ,
sum => pp1_0_sum(13) ,
car => pp1_0_car(12) );
pp1_0_csa_12: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(12) ,
b => pp0_0(12) ,
c => pp0_1(12) ,
sum => pp1_0_sum(12) ,
car => pp1_0_car(11) );
pp1_0_csa_11: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(11) ,
b => pp0_0(11) ,
c => pp0_1(11) ,
sum => pp1_0_sum(11) ,
car => pp1_0_car(10) );
pp1_0_csa_10: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(10) ,
b => pp0_0(10) ,
c => pp0_1(10) ,
sum => pp1_0_sum(10) ,
car => pp1_0_car(9) );
pp1_0_csa_9: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(9) ,
b => pp0_0(9) ,
c => pp0_1(9) ,
sum => pp1_0_sum(9) ,
car => pp1_0_car(8) );
pp1_0_csa_8: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(8) ,
b => pp0_0(8) ,
c => pp0_1(8) ,
sum => pp1_0_sum(8) ,
car => pp1_0_car(7) );
pp1_0_csa_7: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(7) ,
b => pp0_0(7) ,
c => pp0_1(7) ,
sum => pp1_0_sum(7) ,
car => pp1_0_car(6) );
pp1_0_csa_6: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => z_b(6) ,
b => pp0_0(6) ,
c => pp0_1(6) ,
sum => pp1_0_sum(6) ,
car => pp1_0_car(5) );
pp1_0_csa_5: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(5) ,
b => tiup ,
sum => pp1_0_sum(5) ,
car => pp1_0_car(4) );
pp1_0_csa_4: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(4) ,
b => tiup ,
sum => pp1_0_sum(4) ,
car => pp1_0_car(3) );
pp1_0_csa_3: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(3) ,
b => tiup ,
sum => pp1_0_sum(3) ,
car => pp1_0_car(2) );
pp1_0_csa_2: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(2) ,
b => tiup ,
sum => pp1_0_sum(2) ,
car => pp1_0_car(1) );
pp1_0_csa_1: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(1) ,
b => tiup ,
sum => pp1_0_sum(1) ,
car => pp1_0_car(0) );
pp1_0_csa_0: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => z_b(0) ,
b => tiup ,
sum => pp1_0_sum(0) ,
car => pp1_0_car_unused );
pp1_1_sum(32) <= pp0_4(32) ;
pp1_1_sum(31) <= tidn ;
pp1_1_sum(30) <= pp0_3(30) ;
pp1_1_car(30) <= pp0_4(30) ;
pp1_1_sum(29) <= pp0_4(29) ;
pp1_1_car(29) <= tidn ;
pp1_1_car(28) <= tidn ;
pp1_1_csa_28: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(28) ,
b => pp0_3(28) ,
c => pp0_4(28) ,
sum => pp1_1_sum(28) ,
car => pp1_1_car(27) );
pp1_1_csa_27: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp0_3(27) ,
b => pp0_4(27) ,
sum => pp1_1_sum(27) ,
car => pp1_1_car(26) );
pp1_1_csa_26: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(26) ,
b => pp0_3(26) ,
c => pp0_4(26) ,
sum => pp1_1_sum(26) ,
car => pp1_1_car(25) );
pp1_1_csa_25: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(25) ,
b => pp0_3(25) ,
c => pp0_4(25) ,
sum => pp1_1_sum(25) ,
car => pp1_1_car(24) );
pp1_1_csa_24: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(24) ,
b => pp0_3(24) ,
c => pp0_4(24) ,
sum => pp1_1_sum(24) ,
car => pp1_1_car(23) );
pp1_1_csa_23: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(23) ,
b => pp0_3(23) ,
c => pp0_4(23) ,
sum => pp1_1_sum(23) ,
car => pp1_1_car(22) );
pp1_1_csa_22: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(22) ,
b => pp0_3(22) ,
c => pp0_4(22) ,
sum => pp1_1_sum(22) ,
car => pp1_1_car(21) );
pp1_1_csa_21: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(21) ,
b => pp0_3(21) ,
c => pp0_4(21) ,
sum => pp1_1_sum(21) ,
car => pp1_1_car(20) );
pp1_1_csa_20: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(20) ,
b => pp0_3(20) ,
c => pp0_4(20) ,
sum => pp1_1_sum(20) ,
car => pp1_1_car(19) );
pp1_1_csa_19: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(19) ,
b => pp0_3(19) ,
c => pp0_4(19) ,
sum => pp1_1_sum(19) ,
car => pp1_1_car(18) );
pp1_1_csa_18: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(18) ,
b => pp0_3(18) ,
c => pp0_4(18) ,
sum => pp1_1_sum(18) ,
car => pp1_1_car(17) );
pp1_1_csa_17: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(17) ,
b => pp0_3(17) ,
c => pp0_4(17) ,
sum => pp1_1_sum(17) ,
car => pp1_1_car(16) );
pp1_1_csa_16: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(16) ,
b => pp0_3(16) ,
c => pp0_4(16) ,
sum => pp1_1_sum(16) ,
car => pp1_1_car(15) );
pp1_1_csa_15: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(15) ,
b => pp0_3(15) ,
c => pp0_4(15) ,
sum => pp1_1_sum(15) ,
car => pp1_1_car(14) );
pp1_1_csa_14: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(14) ,
b => pp0_3(14) ,
c => pp0_4(14) ,
sum => pp1_1_sum(14) ,
car => pp1_1_car(13) );
pp1_1_csa_13: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(13) ,
b => pp0_3(13) ,
c => pp0_4(13) ,
sum => pp1_1_sum(13) ,
car => pp1_1_car(12) );
pp1_1_csa_12: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_2(12) ,
b => pp0_3(12) ,
c => pp0_4(12) ,
sum => pp1_1_sum(12) ,
car => pp1_1_car(11) );
pp1_1_csa_11: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp0_2(11) ,
b => pp0_3(11) ,
sum => pp1_1_sum(11) ,
car => pp1_1_car(10) );
pp1_1_csa_10: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp0_2(10) ,
b => pp0_3(10) ,
sum => pp1_1_sum(10) ,
car => pp1_1_car(9) );
pp1_1_sum(9) <= pp0_2(9) ;
pp1_1_sum(8) <= pp0_2(8) ;
pp1_2_sum(36) <= pp0_6(36) ;
pp1_2_car(36) <= pp0_7(36) ;
pp1_2_sum(35) <= pp0_7(35) ;
pp1_2_car(35) <= tidn ;
pp1_2_car(34) <= tidn ;
pp1_2_csa_34: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(34) ,
b => pp0_6(34) ,
c => pp0_7(34) ,
sum => pp1_2_sum(34) ,
car => pp1_2_car(33) );
pp1_2_csa_33: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp0_6(33) ,
b => pp0_7(33) ,
sum => pp1_2_sum(33) ,
car => pp1_2_car(32) );
pp1_2_csa_32: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(32) ,
b => pp0_6(32) ,
c => pp0_7(32) ,
sum => pp1_2_sum(32) ,
car => pp1_2_car(31) );
pp1_2_csa_31: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(31) ,
b => pp0_6(31) ,
c => pp0_7(31) ,
sum => pp1_2_sum(31) ,
car => pp1_2_car(30) );
pp1_2_csa_30: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(30) ,
b => pp0_6(30) ,
c => pp0_7(30) ,
sum => pp1_2_sum(30) ,
car => pp1_2_car(29) );
pp1_2_csa_29: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(29) ,
b => pp0_6(29) ,
c => pp0_7(29) ,
sum => pp1_2_sum(29) ,
car => pp1_2_car(28) );
pp1_2_csa_28: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(28) ,
b => pp0_6(28) ,
c => pp0_7(28) ,
sum => pp1_2_sum(28) ,
car => pp1_2_car(27) );
pp1_2_csa_27: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(27) ,
b => pp0_6(27) ,
c => pp0_7(27) ,
sum => pp1_2_sum(27) ,
car => pp1_2_car(26) );
pp1_2_csa_26: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(26) ,
b => pp0_6(26) ,
c => pp0_7(26) ,
sum => pp1_2_sum(26) ,
car => pp1_2_car(25) );
pp1_2_csa_25: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(25) ,
b => pp0_6(25) ,
c => pp0_7(25) ,
sum => pp1_2_sum(25) ,
car => pp1_2_car(24) );
pp1_2_csa_24: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(24) ,
b => pp0_6(24) ,
c => pp0_7(24) ,
sum => pp1_2_sum(24) ,
car => pp1_2_car(23) );
pp1_2_csa_23: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(23) ,
b => pp0_6(23) ,
c => pp0_7(23) ,
sum => pp1_2_sum(23) ,
car => pp1_2_car(22) );
pp1_2_csa_22: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(22) ,
b => pp0_6(22) ,
c => pp0_7(22) ,
sum => pp1_2_sum(22) ,
car => pp1_2_car(21) );
pp1_2_csa_21: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(21) ,
b => pp0_6(21) ,
c => pp0_7(21) ,
sum => pp1_2_sum(21) ,
car => pp1_2_car(20) );
pp1_2_csa_20: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(20) ,
b => pp0_6(20) ,
c => pp0_7(20) ,
sum => pp1_2_sum(20) ,
car => pp1_2_car(19) );
pp1_2_csa_19: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(19) ,
b => pp0_6(19) ,
c => pp0_7(19) ,
sum => pp1_2_sum(19) ,
car => pp1_2_car(18) );
pp1_2_csa_18: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(18) ,
b => pp0_6(18) ,
c => pp0_7(18) ,
sum => pp1_2_sum(18) ,
car => pp1_2_car(17) );
pp1_2_csa_17: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp0_5(17) ,
b => pp0_6(17) ,
c => pp0_7(17) ,
sum => pp1_2_sum(17) ,
car => pp1_2_car(16) );
pp1_2_csa_16: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp0_5(16) ,
b => pp0_6(16) ,
sum => pp1_2_sum(16) ,
car => pp1_2_car(15) );
pp1_2_sum(15) <= pp0_5(15) ;
pp1_2_sum(14) <= pp0_5(14) ;
pp2_0_sum(32) <= pp1_1_sum(32) ;
pp2_0_sum(31) <= tidn ;
pp2_0_sum(30) <= pp1_1_sum(30) ;
pp2_0_sum(29) <= pp1_1_sum(29) ;
pp2_0_sum(28) <= pp1_1_sum(28) ;
pp2_0_sum(27) <= pp1_1_sum(27) ;
pp2_0_sum(26) <= pp1_0_sum(26) ;
pp2_0_car(26) <= pp1_1_sum(26) ;
pp2_0_sum(25) <= pp1_1_sum(25) ;
pp2_0_car(25) <= tidn ;
pp2_0_car(24) <= tidn ;
pp2_0_csa_24: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(24) ,
b => pp1_0_car(24) ,
c => pp1_1_sum(24) ,
sum => pp2_0_sum(24) ,
car => pp2_0_car(23) );
pp2_0_csa_23: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(23) ,
b => pp1_1_sum(23) ,
sum => pp2_0_sum(23) ,
car => pp2_0_car(22) );
pp2_0_csa_22: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(22) ,
b => pp1_0_car(22) ,
c => pp1_1_sum(22) ,
sum => pp2_0_sum(22) ,
car => pp2_0_car(21) );
pp2_0_csa_21: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(21) ,
b => pp1_0_car(21) ,
c => pp1_1_sum(21) ,
sum => pp2_0_sum(21) ,
car => pp2_0_car(20) );
pp2_0_csa_20: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(20) ,
b => pp1_0_car(20) ,
c => pp1_1_sum(20) ,
sum => pp2_0_sum(20) ,
car => pp2_0_car(19) );
pp2_0_csa_19: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(19) ,
b => pp1_0_car(19) ,
c => pp1_1_sum(19) ,
sum => pp2_0_sum(19) ,
car => pp2_0_car(18) );
pp2_0_csa_18: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(18) ,
b => pp1_0_car(18) ,
c => pp1_1_sum(18) ,
sum => pp2_0_sum(18) ,
car => pp2_0_car(17) );
pp2_0_csa_17: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(17) ,
b => pp1_0_car(17) ,
c => pp1_1_sum(17) ,
sum => pp2_0_sum(17) ,
car => pp2_0_car(16) );
pp2_0_csa_16: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(16) ,
b => pp1_0_car(16) ,
c => pp1_1_sum(16) ,
sum => pp2_0_sum(16) ,
car => pp2_0_car(15) );
pp2_0_csa_15: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(15) ,
b => pp1_0_car(15) ,
c => pp1_1_sum(15) ,
sum => pp2_0_sum(15) ,
car => pp2_0_car(14) );
pp2_0_csa_14: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(14) ,
b => pp1_0_car(14) ,
c => pp1_1_sum(14) ,
sum => pp2_0_sum(14) ,
car => pp2_0_car(13) );
pp2_0_csa_13: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(13) ,
b => pp1_0_car(13) ,
c => pp1_1_sum(13) ,
sum => pp2_0_sum(13) ,
car => pp2_0_car(12) );
pp2_0_csa_12: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(12) ,
b => pp1_0_car(12) ,
c => pp1_1_sum(12) ,
sum => pp2_0_sum(12) ,
car => pp2_0_car(11) );
pp2_0_csa_11: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(11) ,
b => pp1_0_car(11) ,
c => pp1_1_sum(11) ,
sum => pp2_0_sum(11) ,
car => pp2_0_car(10) );
pp2_0_csa_10: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(10) ,
b => pp1_0_car(10) ,
c => pp1_1_sum(10) ,
sum => pp2_0_sum(10) ,
car => pp2_0_car(9) );
pp2_0_csa_9: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(9) ,
b => pp1_0_car(9) ,
c => pp1_1_sum(9) ,
sum => pp2_0_sum(9) ,
car => pp2_0_car(8) );
pp2_0_csa_8: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_0_sum(8) ,
b => pp1_0_car(8) ,
c => pp1_1_sum(8) ,
sum => pp2_0_sum(8) ,
car => pp2_0_car(7) );
pp2_0_csa_7: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(7) ,
b => pp1_0_car(7) ,
sum => pp2_0_sum(7) ,
car => pp2_0_car(6) );
pp2_0_csa_6: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(6) ,
b => pp1_0_car(6) ,
sum => pp2_0_sum(6) ,
car => pp2_0_car(5) );
pp2_0_csa_5: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(5) ,
b => pp1_0_car(5) ,
sum => pp2_0_sum(5) ,
car => pp2_0_car(4) );
pp2_0_csa_4: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(4) ,
b => pp1_0_car(4) ,
sum => pp2_0_sum(4) ,
car => pp2_0_car(3) );
pp2_0_csa_3: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(3) ,
b => pp1_0_car(3) ,
sum => pp2_0_sum(3) ,
car => pp2_0_car(2) );
pp2_0_csa_2: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(2) ,
b => pp1_0_car(2) ,
sum => pp2_0_sum(2) ,
car => pp2_0_car(1) );
pp2_0_csa_1: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(1) ,
b => pp1_0_car(1) ,
sum => pp2_0_sum(1) ,
car => pp2_0_car(0) );
pp2_0_csa_0: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_0_sum(0) ,
b => pp1_0_car(0) ,
sum => pp2_0_sum(0) ,
car => pp2_0_car_unused );
pp2_1_sum(36) <= pp1_2_sum(36) ;
pp2_1_car(36) <= pp1_2_car(36) ;
pp2_1_sum(35) <= pp1_2_sum(35) ;
pp2_1_car(35) <= tidn ;
pp2_1_sum(34) <= pp1_2_sum(34) ;
pp2_1_car(34) <= tidn ;
pp2_1_sum(33) <= pp1_2_sum(33) ;
pp2_1_car(33) <= pp1_2_car(33) ;
pp2_1_sum(32) <= pp1_2_sum(32) ;
pp2_1_car(32) <= pp1_2_car(32) ;
pp2_1_sum(31) <= pp1_2_sum(31) ;
pp2_1_car(31) <= pp1_2_car(31) ;
pp2_1_car(30) <= tidn ;
pp2_1_csa_30: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(30) ,
b => pp1_2_sum(30) ,
c => pp1_2_car(30) ,
sum => pp2_1_sum(30) ,
car => pp2_1_car(29) );
pp2_1_csa_29: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_2_sum(29) ,
b => pp1_2_car(29) ,
sum => pp2_1_sum(29) ,
car => pp2_1_car(28) );
pp2_1_csa_28: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_2_sum(28) ,
b => pp1_2_car(28) ,
sum => pp2_1_sum(28) ,
car => pp2_1_car(27) );
pp2_1_csa_27: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(27) ,
b => pp1_2_sum(27) ,
c => pp1_2_car(27) ,
sum => pp2_1_sum(27) ,
car => pp2_1_car(26) );
pp2_1_csa_26: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(26) ,
b => pp1_2_sum(26) ,
c => pp1_2_car(26) ,
sum => pp2_1_sum(26) ,
car => pp2_1_car(25) );
pp2_1_csa_25: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(25) ,
b => pp1_2_sum(25) ,
c => pp1_2_car(25) ,
sum => pp2_1_sum(25) ,
car => pp2_1_car(24) );
pp2_1_csa_24: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(24) ,
b => pp1_2_sum(24) ,
c => pp1_2_car(24) ,
sum => pp2_1_sum(24) ,
car => pp2_1_car(23) );
pp2_1_csa_23: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(23) ,
b => pp1_2_sum(23) ,
c => pp1_2_car(23) ,
sum => pp2_1_sum(23) ,
car => pp2_1_car(22) );
pp2_1_csa_22: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(22) ,
b => pp1_2_sum(22) ,
c => pp1_2_car(22) ,
sum => pp2_1_sum(22) ,
car => pp2_1_car(21) );
pp2_1_csa_21: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(21) ,
b => pp1_2_sum(21) ,
c => pp1_2_car(21) ,
sum => pp2_1_sum(21) ,
car => pp2_1_car(20) );
pp2_1_csa_20: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(20) ,
b => pp1_2_sum(20) ,
c => pp1_2_car(20) ,
sum => pp2_1_sum(20) ,
car => pp2_1_car(19) );
pp2_1_csa_19: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(19) ,
b => pp1_2_sum(19) ,
c => pp1_2_car(19) ,
sum => pp2_1_sum(19) ,
car => pp2_1_car(18) );
pp2_1_csa_18: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(18) ,
b => pp1_2_sum(18) ,
c => pp1_2_car(18) ,
sum => pp2_1_sum(18) ,
car => pp2_1_car(17) );
pp2_1_csa_17: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(17) ,
b => pp1_2_sum(17) ,
c => pp1_2_car(17) ,
sum => pp2_1_sum(17) ,
car => pp2_1_car(16) );
pp2_1_csa_16: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(16) ,
b => pp1_2_sum(16) ,
c => pp1_2_car(16) ,
sum => pp2_1_sum(16) ,
car => pp2_1_car(15) );
pp2_1_csa_15: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp1_1_car(15) ,
b => pp1_2_sum(15) ,
c => pp1_2_car(15) ,
sum => pp2_1_sum(15) ,
car => pp2_1_car(14) );
pp2_1_csa_14: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp1_1_car(14) ,
b => pp1_2_sum(14) ,
sum => pp2_1_sum(14) ,
car => pp2_1_car(13) );
pp2_1_sum(13) <= pp1_1_car(13) ;
pp2_1_sum(12) <= pp1_1_car(12) ;
pp2_1_sum(11) <= pp1_1_car(11) ;
pp2_1_sum(10) <= pp1_1_car(10) ;
pp2_1_sum(9) <= pp1_1_car(9) ;
pp3_0_csa_36: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_1_sum(36) ,
b => pp2_1_car(36) ,
sum => pp3_0_sum(36) ,
car => pp3_0_car(35) );
pp3_0_sum(35) <= pp2_1_sum(35) ;
pp3_0_sum(34) <= pp2_1_sum(34) ;
pp3_0_car(34) <= tidn ;
pp3_0_sum(33) <= pp2_1_sum(33) ;
pp3_0_car(33) <= pp2_1_car(33) ;
pp3_0_car(32) <= tidn ;
pp3_0_csa_32: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(32) ,
b => pp2_1_sum(32) ,
c => pp2_1_car(32) ,
sum => pp3_0_sum(32) ,
car => pp3_0_car(31) );
pp3_0_csa_31: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_1_sum(31) ,
b => pp2_1_car(31) ,
sum => pp3_0_sum(31) ,
car => pp3_0_car(30) );
pp3_0_csa_30: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(30) ,
b => pp2_1_sum(30) ,
sum => pp3_0_sum(30) ,
car => pp3_0_car(29) );
pp3_0_csa_29: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(29) ,
b => pp2_1_sum(29) ,
c => pp2_1_car(29) ,
sum => pp3_0_sum(29) ,
car => pp3_0_car(28) );
pp3_0_csa_28: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(28) ,
b => pp2_1_sum(28) ,
c => pp2_1_car(28) ,
sum => pp3_0_sum(28) ,
car => pp3_0_car(27) );
pp3_0_csa_27: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(27) ,
b => pp2_1_sum(27) ,
c => pp2_1_car(27) ,
sum => pp3_0_sum(27) ,
car => pp3_0_car(26) );
pp3_0_csa_26: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(26) ,
b => pp2_0_car(26) ,
c => pp2_1_sum(26) ,
d => pp2_1_car(26) ,
ki => tidn ,
ko => pp3_0_ko(25) ,
sum => pp3_0_sum(26) ,
car => pp3_0_car(25) );
pp3_0_csa_25: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(25) ,
b => tidn ,
c => pp2_1_sum(25) ,
d => pp2_1_car(25) ,
ki => pp3_0_ko(25) ,
ko => pp3_0_ko(24) ,
sum => pp3_0_sum(25) ,
car => pp3_0_car(24) );
pp3_0_csa_24: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(24) ,
b => tidn ,
c => pp2_1_sum(24) ,
d => pp2_1_car(24) ,
ki => pp3_0_ko(24) ,
ko => pp3_0_ko(23) ,
sum => pp3_0_sum(24) ,
car => pp3_0_car(23) );
pp3_0_csa_23: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(23) ,
b => pp2_0_car(23) ,
c => pp2_1_sum(23) ,
d => pp2_1_car(23) ,
ki => pp3_0_ko(23) ,
ko => pp3_0_ko(22) ,
sum => pp3_0_sum(23) ,
car => pp3_0_car(22) );
pp3_0_csa_22: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(22) ,
b => pp2_0_car(22) ,
c => pp2_1_sum(22) ,
d => pp2_1_car(22) ,
ki => pp3_0_ko(22) ,
ko => pp3_0_ko(21) ,
sum => pp3_0_sum(22) ,
car => pp3_0_car(21) );
pp3_0_csa_21: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(21) ,
b => pp2_0_car(21) ,
c => pp2_1_sum(21) ,
d => pp2_1_car(21) ,
ki => pp3_0_ko(21) ,
ko => pp3_0_ko(20) ,
sum => pp3_0_sum(21) ,
car => pp3_0_car(20) );
pp3_0_csa_20: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(20) ,
b => pp2_0_car(20) ,
c => pp2_1_sum(20) ,
d => pp2_1_car(20) ,
ki => pp3_0_ko(20) ,
ko => pp3_0_ko(19) ,
sum => pp3_0_sum(20) ,
car => pp3_0_car(19) );
pp3_0_csa_19: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(19) ,
b => pp2_0_car(19) ,
c => pp2_1_sum(19) ,
d => pp2_1_car(19) ,
ki => pp3_0_ko(19) ,
ko => pp3_0_ko(18) ,
sum => pp3_0_sum(19) ,
car => pp3_0_car(18) );
pp3_0_csa_18: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(18) ,
b => pp2_0_car(18) ,
c => pp2_1_sum(18) ,
d => pp2_1_car(18) ,
ki => pp3_0_ko(18) ,
ko => pp3_0_ko(17) ,
sum => pp3_0_sum(18) ,
car => pp3_0_car(17) );
pp3_0_csa_17: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(17) ,
b => pp2_0_car(17) ,
c => pp2_1_sum(17) ,
d => pp2_1_car(17) ,
ki => pp3_0_ko(17) ,
ko => pp3_0_ko(16) ,
sum => pp3_0_sum(17) ,
car => pp3_0_car(16) );
pp3_0_csa_16: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(16) ,
b => pp2_0_car(16) ,
c => pp2_1_sum(16) ,
d => pp2_1_car(16) ,
ki => pp3_0_ko(16) ,
ko => pp3_0_ko(15) ,
sum => pp3_0_sum(16) ,
car => pp3_0_car(15) );
pp3_0_csa_15: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(15) ,
b => pp2_0_car(15) ,
c => pp2_1_sum(15) ,
d => pp2_1_car(15) ,
ki => pp3_0_ko(15) ,
ko => pp3_0_ko(14) ,
sum => pp3_0_sum(15) ,
car => pp3_0_car(14) );
pp3_0_csa_14: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(14) ,
b => pp2_0_car(14) ,
c => pp2_1_sum(14) ,
d => pp2_1_car(14) ,
ki => pp3_0_ko(14) ,
ko => pp3_0_ko(13) ,
sum => pp3_0_sum(14) ,
car => pp3_0_car(13) );
pp3_0_csa_13: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(13) ,
b => pp2_0_car(13) ,
c => pp2_1_sum(13) ,
d => pp2_1_car(13) ,
ki => pp3_0_ko(13) ,
ko => pp3_0_ko(12) ,
sum => pp3_0_sum(13) ,
car => pp3_0_car(12) );
pp3_0_csa_12: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(12) ,
b => pp2_0_car(12) ,
c => pp2_1_sum(12) ,
d => tidn ,
ki => pp3_0_ko(12) ,
ko => pp3_0_ko(11) ,
sum => pp3_0_sum(12) ,
car => pp3_0_car(11) );
pp3_0_csa_11: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(11) ,
b => pp2_0_car(11) ,
c => pp2_1_sum(11) ,
d => tidn ,
ki => pp3_0_ko(11) ,
ko => pp3_0_ko(10) ,
sum => pp3_0_sum(11) ,
car => pp3_0_car(10) );
pp3_0_csa_10: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(10) ,
b => pp2_0_car(10) ,
c => pp2_1_sum(10) ,
d => tidn ,
ki => pp3_0_ko(10) ,
ko => pp3_0_ko(9) ,
sum => pp3_0_sum(10) ,
car => pp3_0_car(9) );
pp3_0_csa_9: entity clib.c_prism_csa42 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(9) ,
b => pp2_0_car(9) ,
c => pp2_1_sum(9) ,
d => tidn ,
ki => pp3_0_ko(9) ,
ko => pp3_0_ko(8) ,
sum => pp3_0_sum(9) ,
car => pp3_0_car(8) );
pp3_0_csa_8: entity clib.c_prism_csa32 port map(
vd => vdd,
gd => gnd,
a => pp2_0_sum(8) ,
b => pp2_0_car(8) ,
c => pp3_0_ko(8) ,
sum => pp3_0_sum(8) ,
car => pp3_0_car(7) );
pp3_0_csa_7: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(7) ,
b => pp2_0_car(7) ,
sum => pp3_0_sum(7) ,
car => pp3_0_car(6) );
pp3_0_csa_6: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(6) ,
b => pp2_0_car(6) ,
sum => pp3_0_sum(6) ,
car => pp3_0_car(5) );
pp3_0_csa_5: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(5) ,
b => pp2_0_car(5) ,
sum => pp3_0_sum(5) ,
car => pp3_0_car(4) );
pp3_0_csa_4: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(4) ,
b => pp2_0_car(4) ,
sum => pp3_0_sum(4) ,
car => pp3_0_car(3) );
pp3_0_csa_3: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(3) ,
b => pp2_0_car(3) ,
sum => pp3_0_sum(3) ,
car => pp3_0_car(2) );
pp3_0_csa_2: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(2) ,
b => pp2_0_car(2) ,
sum => pp3_0_sum(2) ,
car => pp3_0_car(1) );
pp3_0_csa_1: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(1) ,
b => pp2_0_car(1) ,
sum => pp3_0_sum(1) ,
car => pp3_0_car(0) );
pp3_0_csa_0: entity work.fuq_csa22_h2(fuq_csa22_h2) port map(
a => pp2_0_sum(0) ,
b => pp2_0_car(0) ,
sum => pp3_0_sum(0) ,
car => pp3_0_car_unused );
tbl_sum(0 to 36) <= pp3_0_sum(0 to 36);
tbl_car(0 to 35) <= pp3_0_car(0 to 35);
end;