forked from cores/a2i
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.
1138 lines
40 KiB
VHDL
1138 lines
40 KiB
VHDL
3 years ago
|
-- © 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,ibm,support,tri, work;
|
||
|
use ieee.std_logic_1164.all;
|
||
|
use ibm.std_ulogic_unsigned.all;
|
||
|
use ibm.std_ulogic_support.all;
|
||
|
use ibm.std_ulogic_function_support.all;
|
||
|
use support.power_logic_pkg.all;
|
||
|
use tri.tri_latches_pkg.all;
|
||
|
use ibm.std_ulogic_ao_support.all;
|
||
|
use ibm.std_ulogic_mux_support.all;
|
||
|
library clib ;
|
||
|
|
||
|
entity fuq_sa3 is
|
||
|
generic(expand_type: integer := 2 );
|
||
|
port(
|
||
|
vdd :inout power_logic;
|
||
|
gnd :inout power_logic;
|
||
|
clkoff_b :in std_ulogic;
|
||
|
act_dis :in std_ulogic;
|
||
|
flush :in std_ulogic;
|
||
|
delay_lclkr :in std_ulogic_vector(2 to 3);
|
||
|
mpw1_b :in std_ulogic_vector(2 to 3);
|
||
|
mpw2_b :in std_ulogic_vector(0 to 0);
|
||
|
sg_1 :in std_ulogic;
|
||
|
thold_1 :in std_ulogic;
|
||
|
fpu_enable :in std_ulogic;
|
||
|
nclk :in clk_logic;
|
||
|
|
||
|
|
||
|
|
||
|
f_sa3_si :in std_ulogic;
|
||
|
f_sa3_so :out std_ulogic;
|
||
|
ex1_act_b :in std_ulogic;
|
||
|
|
||
|
f_mul_ex2_sum :in std_ulogic_vector(54 to 161);
|
||
|
f_mul_ex2_car :in std_ulogic_vector(54 to 161);
|
||
|
f_alg_ex2_res :in std_ulogic_vector(0 to 162);
|
||
|
|
||
|
f_sa3_ex3_s_lza :out std_ulogic_vector(0 to 162);
|
||
|
f_sa3_ex3_c_lza :out std_ulogic_vector(53 to 161);
|
||
|
|
||
|
f_sa3_ex3_s_add :out std_ulogic_vector(0 to 162);
|
||
|
f_sa3_ex3_c_add :out std_ulogic_vector(53 to 161)
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
end fuq_sa3;
|
||
|
|
||
|
architecture fuq_sa3 of fuq_sa3 is
|
||
|
|
||
|
constant tiup : std_ulogic := '1';
|
||
|
constant tidn : std_ulogic := '0';
|
||
|
|
||
|
signal thold_0_b, thold_0, forcee , sg_0 :std_ulogic;
|
||
|
signal act_spare_unused :std_ulogic_vector(0 to 3);
|
||
|
signal ex2_act :std_ulogic;
|
||
|
signal act_so , act_si :std_ulogic_vector(0 to 4);
|
||
|
signal ex3_sum :std_ulogic_vector(0 to 162);
|
||
|
signal ex3_car :std_ulogic_vector(53 to 161);
|
||
|
signal ex1_act :std_ulogic;
|
||
|
signal ex3_053_sum_si, ex3_053_sum_so :std_ulogic_vector(0 to 109);
|
||
|
signal ex3_053_car_si, ex3_053_car_so :std_ulogic_vector(0 to 108);
|
||
|
signal ex3_000_si, ex3_000_so :std_ulogic_vector(0 to 52);
|
||
|
signal ex3_sum_lza_b, ex3_sum_add_b :std_ulogic_vector(0 to 162);
|
||
|
signal ex3_car_lza_b, ex3_car_add_b :std_ulogic_vector(53 to 161);
|
||
|
signal sa3_ex3_d2clk , sa3_ex3_d1clk :std_ulogic;
|
||
|
signal sa3_ex3_lclk : clk_logic;
|
||
|
|
||
|
signal ex2_alg_b :std_ulogic_vector(0 to 52) ;
|
||
|
signal ex2_sum_b :std_ulogic_vector(53 to 162) ;
|
||
|
signal ex2_car_b :std_ulogic_vector(53 to 161) ;
|
||
|
|
||
|
signal f_alg_ex2_res_b, f_mul_ex2_sum_b, f_mul_ex2_car_b :std_ulogic_vector(55 to 161);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
begin
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ex2_sum_b(54) <= not( not(f_mul_ex2_sum(54) or f_mul_ex2_car(54)) xor f_alg_ex2_res(54) );
|
||
|
ex2_car_b(53) <= not( (f_mul_ex2_sum(54) or f_mul_ex2_car(54)) or f_alg_ex2_res(54) );
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
u_algi: ex2_alg_b(0 to 52) <= not f_alg_ex2_res(0 to 52) ;
|
||
|
|
||
|
|
||
|
|
||
|
u_pre_a: f_alg_ex2_res_b(55 to 161) <= not( f_alg_ex2_res(55 to 161) );
|
||
|
u_pre_s: f_mul_ex2_sum_b(55 to 161) <= not( f_mul_ex2_sum(55 to 161) );
|
||
|
u_pre_c: f_mul_ex2_car_b(55 to 161) <= not( f_mul_ex2_car(55 to 161) );
|
||
|
|
||
|
|
||
|
res_csa_55: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(55),
|
||
|
b => f_mul_ex2_sum_b(55),
|
||
|
c => f_mul_ex2_car_b(55),
|
||
|
sum => ex2_sum_b(55) ,
|
||
|
car => ex2_car_b(54) );
|
||
|
res_csa_56: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(56),
|
||
|
b => f_mul_ex2_sum_b(56),
|
||
|
c => f_mul_ex2_car_b(56),
|
||
|
sum => ex2_sum_b(56) ,
|
||
|
car => ex2_car_b(55) );
|
||
|
res_csa_57: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(57),
|
||
|
b => f_mul_ex2_sum_b(57),
|
||
|
c => f_mul_ex2_car_b(57),
|
||
|
sum => ex2_sum_b(57) ,
|
||
|
car => ex2_car_b(56) );
|
||
|
res_csa_58: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(58),
|
||
|
b => f_mul_ex2_sum_b(58),
|
||
|
c => f_mul_ex2_car_b(58),
|
||
|
sum => ex2_sum_b(58) ,
|
||
|
car => ex2_car_b(57) );
|
||
|
res_csa_59: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(59),
|
||
|
b => f_mul_ex2_sum_b(59),
|
||
|
c => f_mul_ex2_car_b(59),
|
||
|
sum => ex2_sum_b(59) ,
|
||
|
car => ex2_car_b(58) );
|
||
|
res_csa_60: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(60),
|
||
|
b => f_mul_ex2_sum_b(60),
|
||
|
c => f_mul_ex2_car_b(60),
|
||
|
sum => ex2_sum_b(60) ,
|
||
|
car => ex2_car_b(59) );
|
||
|
res_csa_61: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(61),
|
||
|
b => f_mul_ex2_sum_b(61),
|
||
|
c => f_mul_ex2_car_b(61),
|
||
|
sum => ex2_sum_b(61) ,
|
||
|
car => ex2_car_b(60) );
|
||
|
res_csa_62: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(62),
|
||
|
b => f_mul_ex2_sum_b(62),
|
||
|
c => f_mul_ex2_car_b(62),
|
||
|
sum => ex2_sum_b(62) ,
|
||
|
car => ex2_car_b(61) );
|
||
|
res_csa_63: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(63),
|
||
|
b => f_mul_ex2_sum_b(63),
|
||
|
c => f_mul_ex2_car_b(63),
|
||
|
sum => ex2_sum_b(63) ,
|
||
|
car => ex2_car_b(62) );
|
||
|
res_csa_64: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(64),
|
||
|
b => f_mul_ex2_sum_b(64),
|
||
|
c => f_mul_ex2_car_b(64),
|
||
|
sum => ex2_sum_b(64) ,
|
||
|
car => ex2_car_b(63) );
|
||
|
res_csa_65: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(65),
|
||
|
b => f_mul_ex2_sum_b(65),
|
||
|
c => f_mul_ex2_car_b(65),
|
||
|
sum => ex2_sum_b(65) ,
|
||
|
car => ex2_car_b(64) );
|
||
|
res_csa_66: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(66),
|
||
|
b => f_mul_ex2_sum_b(66),
|
||
|
c => f_mul_ex2_car_b(66),
|
||
|
sum => ex2_sum_b(66) ,
|
||
|
car => ex2_car_b(65) );
|
||
|
res_csa_67: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(67),
|
||
|
b => f_mul_ex2_sum_b(67),
|
||
|
c => f_mul_ex2_car_b(67),
|
||
|
sum => ex2_sum_b(67) ,
|
||
|
car => ex2_car_b(66) );
|
||
|
res_csa_68: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(68),
|
||
|
b => f_mul_ex2_sum_b(68),
|
||
|
c => f_mul_ex2_car_b(68),
|
||
|
sum => ex2_sum_b(68) ,
|
||
|
car => ex2_car_b(67) );
|
||
|
res_csa_69: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(69),
|
||
|
b => f_mul_ex2_sum_b(69),
|
||
|
c => f_mul_ex2_car_b(69),
|
||
|
sum => ex2_sum_b(69) ,
|
||
|
car => ex2_car_b(68) );
|
||
|
res_csa_70: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(70),
|
||
|
b => f_mul_ex2_sum_b(70),
|
||
|
c => f_mul_ex2_car_b(70),
|
||
|
sum => ex2_sum_b(70) ,
|
||
|
car => ex2_car_b(69) );
|
||
|
res_csa_71: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(71),
|
||
|
b => f_mul_ex2_sum_b(71),
|
||
|
c => f_mul_ex2_car_b(71),
|
||
|
sum => ex2_sum_b(71) ,
|
||
|
car => ex2_car_b(70) );
|
||
|
res_csa_72: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(72),
|
||
|
b => f_mul_ex2_sum_b(72),
|
||
|
c => f_mul_ex2_car_b(72),
|
||
|
sum => ex2_sum_b(72) ,
|
||
|
car => ex2_car_b(71) );
|
||
|
res_csa_73: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(73),
|
||
|
b => f_mul_ex2_sum_b(73),
|
||
|
c => f_mul_ex2_car_b(73),
|
||
|
sum => ex2_sum_b(73) ,
|
||
|
car => ex2_car_b(72) );
|
||
|
res_csa_74: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(74),
|
||
|
b => f_mul_ex2_sum_b(74),
|
||
|
c => f_mul_ex2_car_b(74),
|
||
|
sum => ex2_sum_b(74) ,
|
||
|
car => ex2_car_b(73) );
|
||
|
res_csa_75: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(75),
|
||
|
b => f_mul_ex2_sum_b(75),
|
||
|
c => f_mul_ex2_car_b(75),
|
||
|
sum => ex2_sum_b(75) ,
|
||
|
car => ex2_car_b(74) );
|
||
|
res_csa_76: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(76),
|
||
|
b => f_mul_ex2_sum_b(76),
|
||
|
c => f_mul_ex2_car_b(76),
|
||
|
sum => ex2_sum_b(76) ,
|
||
|
car => ex2_car_b(75) );
|
||
|
res_csa_77: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(77),
|
||
|
b => f_mul_ex2_sum_b(77),
|
||
|
c => f_mul_ex2_car_b(77),
|
||
|
sum => ex2_sum_b(77) ,
|
||
|
car => ex2_car_b(76) );
|
||
|
res_csa_78: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(78),
|
||
|
b => f_mul_ex2_sum_b(78),
|
||
|
c => f_mul_ex2_car_b(78),
|
||
|
sum => ex2_sum_b(78) ,
|
||
|
car => ex2_car_b(77) );
|
||
|
res_csa_79: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(79),
|
||
|
b => f_mul_ex2_sum_b(79),
|
||
|
c => f_mul_ex2_car_b(79),
|
||
|
sum => ex2_sum_b(79) ,
|
||
|
car => ex2_car_b(78) );
|
||
|
res_csa_80: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(80),
|
||
|
b => f_mul_ex2_sum_b(80),
|
||
|
c => f_mul_ex2_car_b(80),
|
||
|
sum => ex2_sum_b(80) ,
|
||
|
car => ex2_car_b(79) );
|
||
|
res_csa_81: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(81),
|
||
|
b => f_mul_ex2_sum_b(81),
|
||
|
c => f_mul_ex2_car_b(81),
|
||
|
sum => ex2_sum_b(81) ,
|
||
|
car => ex2_car_b(80) );
|
||
|
res_csa_82: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(82),
|
||
|
b => f_mul_ex2_sum_b(82),
|
||
|
c => f_mul_ex2_car_b(82),
|
||
|
sum => ex2_sum_b(82) ,
|
||
|
car => ex2_car_b(81) );
|
||
|
res_csa_83: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(83),
|
||
|
b => f_mul_ex2_sum_b(83),
|
||
|
c => f_mul_ex2_car_b(83),
|
||
|
sum => ex2_sum_b(83) ,
|
||
|
car => ex2_car_b(82) );
|
||
|
res_csa_84: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(84),
|
||
|
b => f_mul_ex2_sum_b(84),
|
||
|
c => f_mul_ex2_car_b(84),
|
||
|
sum => ex2_sum_b(84) ,
|
||
|
car => ex2_car_b(83) );
|
||
|
res_csa_85: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(85),
|
||
|
b => f_mul_ex2_sum_b(85),
|
||
|
c => f_mul_ex2_car_b(85),
|
||
|
sum => ex2_sum_b(85) ,
|
||
|
car => ex2_car_b(84) );
|
||
|
res_csa_86: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(86),
|
||
|
b => f_mul_ex2_sum_b(86),
|
||
|
c => f_mul_ex2_car_b(86),
|
||
|
sum => ex2_sum_b(86) ,
|
||
|
car => ex2_car_b(85) );
|
||
|
res_csa_87: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(87),
|
||
|
b => f_mul_ex2_sum_b(87),
|
||
|
c => f_mul_ex2_car_b(87),
|
||
|
sum => ex2_sum_b(87) ,
|
||
|
car => ex2_car_b(86) );
|
||
|
res_csa_88: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(88),
|
||
|
b => f_mul_ex2_sum_b(88),
|
||
|
c => f_mul_ex2_car_b(88),
|
||
|
sum => ex2_sum_b(88) ,
|
||
|
car => ex2_car_b(87) );
|
||
|
res_csa_89: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(89),
|
||
|
b => f_mul_ex2_sum_b(89),
|
||
|
c => f_mul_ex2_car_b(89),
|
||
|
sum => ex2_sum_b(89) ,
|
||
|
car => ex2_car_b(88) );
|
||
|
res_csa_90: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(90),
|
||
|
b => f_mul_ex2_sum_b(90),
|
||
|
c => f_mul_ex2_car_b(90),
|
||
|
sum => ex2_sum_b(90) ,
|
||
|
car => ex2_car_b(89) );
|
||
|
res_csa_91: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(91),
|
||
|
b => f_mul_ex2_sum_b(91),
|
||
|
c => f_mul_ex2_car_b(91),
|
||
|
sum => ex2_sum_b(91) ,
|
||
|
car => ex2_car_b(90) );
|
||
|
res_csa_92: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(92),
|
||
|
b => f_mul_ex2_sum_b(92),
|
||
|
c => f_mul_ex2_car_b(92),
|
||
|
sum => ex2_sum_b(92) ,
|
||
|
car => ex2_car_b(91) );
|
||
|
res_csa_93: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(93),
|
||
|
b => f_mul_ex2_sum_b(93),
|
||
|
c => f_mul_ex2_car_b(93),
|
||
|
sum => ex2_sum_b(93) ,
|
||
|
car => ex2_car_b(92) );
|
||
|
res_csa_94: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(94),
|
||
|
b => f_mul_ex2_sum_b(94),
|
||
|
c => f_mul_ex2_car_b(94),
|
||
|
sum => ex2_sum_b(94) ,
|
||
|
car => ex2_car_b(93) );
|
||
|
res_csa_95: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(95),
|
||
|
b => f_mul_ex2_sum_b(95),
|
||
|
c => f_mul_ex2_car_b(95),
|
||
|
sum => ex2_sum_b(95) ,
|
||
|
car => ex2_car_b(94) );
|
||
|
res_csa_96: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(96),
|
||
|
b => f_mul_ex2_sum_b(96),
|
||
|
c => f_mul_ex2_car_b(96),
|
||
|
sum => ex2_sum_b(96) ,
|
||
|
car => ex2_car_b(95) );
|
||
|
res_csa_97: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(97),
|
||
|
b => f_mul_ex2_sum_b(97),
|
||
|
c => f_mul_ex2_car_b(97),
|
||
|
sum => ex2_sum_b(97) ,
|
||
|
car => ex2_car_b(96) );
|
||
|
res_csa_98: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(98),
|
||
|
b => f_mul_ex2_sum_b(98),
|
||
|
c => f_mul_ex2_car_b(98),
|
||
|
sum => ex2_sum_b(98) ,
|
||
|
car => ex2_car_b(97) );
|
||
|
res_csa_99: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(99),
|
||
|
b => f_mul_ex2_sum_b(99),
|
||
|
c => f_mul_ex2_car_b(99),
|
||
|
sum => ex2_sum_b(99) ,
|
||
|
car => ex2_car_b(98) );
|
||
|
res_csa_100: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(100),
|
||
|
b => f_mul_ex2_sum_b(100),
|
||
|
c => f_mul_ex2_car_b(100),
|
||
|
sum => ex2_sum_b(100) ,
|
||
|
car => ex2_car_b(99) );
|
||
|
res_csa_101: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(101),
|
||
|
b => f_mul_ex2_sum_b(101),
|
||
|
c => f_mul_ex2_car_b(101),
|
||
|
sum => ex2_sum_b(101) ,
|
||
|
car => ex2_car_b(100) );
|
||
|
res_csa_102: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(102),
|
||
|
b => f_mul_ex2_sum_b(102),
|
||
|
c => f_mul_ex2_car_b(102),
|
||
|
sum => ex2_sum_b(102) ,
|
||
|
car => ex2_car_b(101) );
|
||
|
res_csa_103: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(103),
|
||
|
b => f_mul_ex2_sum_b(103),
|
||
|
c => f_mul_ex2_car_b(103),
|
||
|
sum => ex2_sum_b(103) ,
|
||
|
car => ex2_car_b(102) );
|
||
|
res_csa_104: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(104),
|
||
|
b => f_mul_ex2_sum_b(104),
|
||
|
c => f_mul_ex2_car_b(104),
|
||
|
sum => ex2_sum_b(104) ,
|
||
|
car => ex2_car_b(103) );
|
||
|
res_csa_105: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(105),
|
||
|
b => f_mul_ex2_sum_b(105),
|
||
|
c => f_mul_ex2_car_b(105),
|
||
|
sum => ex2_sum_b(105) ,
|
||
|
car => ex2_car_b(104) );
|
||
|
res_csa_106: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(106),
|
||
|
b => f_mul_ex2_sum_b(106),
|
||
|
c => f_mul_ex2_car_b(106),
|
||
|
sum => ex2_sum_b(106) ,
|
||
|
car => ex2_car_b(105) );
|
||
|
res_csa_107: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(107),
|
||
|
b => f_mul_ex2_sum_b(107),
|
||
|
c => f_mul_ex2_car_b(107),
|
||
|
sum => ex2_sum_b(107) ,
|
||
|
car => ex2_car_b(106) );
|
||
|
res_csa_108: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(108),
|
||
|
b => f_mul_ex2_sum_b(108),
|
||
|
c => f_mul_ex2_car_b(108),
|
||
|
sum => ex2_sum_b(108) ,
|
||
|
car => ex2_car_b(107) );
|
||
|
res_csa_109: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(109),
|
||
|
b => f_mul_ex2_sum_b(109),
|
||
|
c => f_mul_ex2_car_b(109),
|
||
|
sum => ex2_sum_b(109) ,
|
||
|
car => ex2_car_b(108) );
|
||
|
res_csa_110: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(110),
|
||
|
b => f_mul_ex2_sum_b(110),
|
||
|
c => f_mul_ex2_car_b(110),
|
||
|
sum => ex2_sum_b(110) ,
|
||
|
car => ex2_car_b(109) );
|
||
|
res_csa_111: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(111),
|
||
|
b => f_mul_ex2_sum_b(111),
|
||
|
c => f_mul_ex2_car_b(111),
|
||
|
sum => ex2_sum_b(111) ,
|
||
|
car => ex2_car_b(110) );
|
||
|
res_csa_112: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(112),
|
||
|
b => f_mul_ex2_sum_b(112),
|
||
|
c => f_mul_ex2_car_b(112),
|
||
|
sum => ex2_sum_b(112) ,
|
||
|
car => ex2_car_b(111) );
|
||
|
res_csa_113: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(113),
|
||
|
b => f_mul_ex2_sum_b(113),
|
||
|
c => f_mul_ex2_car_b(113),
|
||
|
sum => ex2_sum_b(113) ,
|
||
|
car => ex2_car_b(112) );
|
||
|
res_csa_114: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(114),
|
||
|
b => f_mul_ex2_sum_b(114),
|
||
|
c => f_mul_ex2_car_b(114),
|
||
|
sum => ex2_sum_b(114) ,
|
||
|
car => ex2_car_b(113) );
|
||
|
res_csa_115: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(115),
|
||
|
b => f_mul_ex2_sum_b(115),
|
||
|
c => f_mul_ex2_car_b(115),
|
||
|
sum => ex2_sum_b(115) ,
|
||
|
car => ex2_car_b(114) );
|
||
|
res_csa_116: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(116),
|
||
|
b => f_mul_ex2_sum_b(116),
|
||
|
c => f_mul_ex2_car_b(116),
|
||
|
sum => ex2_sum_b(116) ,
|
||
|
car => ex2_car_b(115) );
|
||
|
res_csa_117: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(117),
|
||
|
b => f_mul_ex2_sum_b(117),
|
||
|
c => f_mul_ex2_car_b(117),
|
||
|
sum => ex2_sum_b(117) ,
|
||
|
car => ex2_car_b(116) );
|
||
|
res_csa_118: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(118),
|
||
|
b => f_mul_ex2_sum_b(118),
|
||
|
c => f_mul_ex2_car_b(118),
|
||
|
sum => ex2_sum_b(118) ,
|
||
|
car => ex2_car_b(117) );
|
||
|
res_csa_119: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(119),
|
||
|
b => f_mul_ex2_sum_b(119),
|
||
|
c => f_mul_ex2_car_b(119),
|
||
|
sum => ex2_sum_b(119) ,
|
||
|
car => ex2_car_b(118) );
|
||
|
res_csa_120: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(120),
|
||
|
b => f_mul_ex2_sum_b(120),
|
||
|
c => f_mul_ex2_car_b(120),
|
||
|
sum => ex2_sum_b(120) ,
|
||
|
car => ex2_car_b(119) );
|
||
|
res_csa_121: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(121),
|
||
|
b => f_mul_ex2_sum_b(121),
|
||
|
c => f_mul_ex2_car_b(121),
|
||
|
sum => ex2_sum_b(121) ,
|
||
|
car => ex2_car_b(120) );
|
||
|
res_csa_122: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(122),
|
||
|
b => f_mul_ex2_sum_b(122),
|
||
|
c => f_mul_ex2_car_b(122),
|
||
|
sum => ex2_sum_b(122) ,
|
||
|
car => ex2_car_b(121) );
|
||
|
res_csa_123: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(123),
|
||
|
b => f_mul_ex2_sum_b(123),
|
||
|
c => f_mul_ex2_car_b(123),
|
||
|
sum => ex2_sum_b(123) ,
|
||
|
car => ex2_car_b(122) );
|
||
|
res_csa_124: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(124),
|
||
|
b => f_mul_ex2_sum_b(124),
|
||
|
c => f_mul_ex2_car_b(124),
|
||
|
sum => ex2_sum_b(124) ,
|
||
|
car => ex2_car_b(123) );
|
||
|
res_csa_125: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(125),
|
||
|
b => f_mul_ex2_sum_b(125),
|
||
|
c => f_mul_ex2_car_b(125),
|
||
|
sum => ex2_sum_b(125) ,
|
||
|
car => ex2_car_b(124) );
|
||
|
res_csa_126: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(126),
|
||
|
b => f_mul_ex2_sum_b(126),
|
||
|
c => f_mul_ex2_car_b(126),
|
||
|
sum => ex2_sum_b(126) ,
|
||
|
car => ex2_car_b(125) );
|
||
|
res_csa_127: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(127),
|
||
|
b => f_mul_ex2_sum_b(127),
|
||
|
c => f_mul_ex2_car_b(127),
|
||
|
sum => ex2_sum_b(127) ,
|
||
|
car => ex2_car_b(126) );
|
||
|
res_csa_128: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(128),
|
||
|
b => f_mul_ex2_sum_b(128),
|
||
|
c => f_mul_ex2_car_b(128),
|
||
|
sum => ex2_sum_b(128) ,
|
||
|
car => ex2_car_b(127) );
|
||
|
res_csa_129: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(129),
|
||
|
b => f_mul_ex2_sum_b(129),
|
||
|
c => f_mul_ex2_car_b(129),
|
||
|
sum => ex2_sum_b(129) ,
|
||
|
car => ex2_car_b(128) );
|
||
|
res_csa_130: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(130),
|
||
|
b => f_mul_ex2_sum_b(130),
|
||
|
c => f_mul_ex2_car_b(130),
|
||
|
sum => ex2_sum_b(130) ,
|
||
|
car => ex2_car_b(129) );
|
||
|
res_csa_131: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(131),
|
||
|
b => f_mul_ex2_sum_b(131),
|
||
|
c => f_mul_ex2_car_b(131),
|
||
|
sum => ex2_sum_b(131) ,
|
||
|
car => ex2_car_b(130) );
|
||
|
res_csa_132: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(132),
|
||
|
b => f_mul_ex2_sum_b(132),
|
||
|
c => f_mul_ex2_car_b(132),
|
||
|
sum => ex2_sum_b(132) ,
|
||
|
car => ex2_car_b(131) );
|
||
|
res_csa_133: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(133),
|
||
|
b => f_mul_ex2_sum_b(133),
|
||
|
c => f_mul_ex2_car_b(133),
|
||
|
sum => ex2_sum_b(133) ,
|
||
|
car => ex2_car_b(132) );
|
||
|
res_csa_134: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(134),
|
||
|
b => f_mul_ex2_sum_b(134),
|
||
|
c => f_mul_ex2_car_b(134),
|
||
|
sum => ex2_sum_b(134) ,
|
||
|
car => ex2_car_b(133) );
|
||
|
res_csa_135: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(135),
|
||
|
b => f_mul_ex2_sum_b(135),
|
||
|
c => f_mul_ex2_car_b(135),
|
||
|
sum => ex2_sum_b(135) ,
|
||
|
car => ex2_car_b(134) );
|
||
|
res_csa_136: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(136),
|
||
|
b => f_mul_ex2_sum_b(136),
|
||
|
c => f_mul_ex2_car_b(136),
|
||
|
sum => ex2_sum_b(136) ,
|
||
|
car => ex2_car_b(135) );
|
||
|
res_csa_137: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(137),
|
||
|
b => f_mul_ex2_sum_b(137),
|
||
|
c => f_mul_ex2_car_b(137),
|
||
|
sum => ex2_sum_b(137) ,
|
||
|
car => ex2_car_b(136) );
|
||
|
res_csa_138: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(138),
|
||
|
b => f_mul_ex2_sum_b(138),
|
||
|
c => f_mul_ex2_car_b(138),
|
||
|
sum => ex2_sum_b(138) ,
|
||
|
car => ex2_car_b(137) );
|
||
|
res_csa_139: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(139),
|
||
|
b => f_mul_ex2_sum_b(139),
|
||
|
c => f_mul_ex2_car_b(139),
|
||
|
sum => ex2_sum_b(139) ,
|
||
|
car => ex2_car_b(138) );
|
||
|
res_csa_140: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(140),
|
||
|
b => f_mul_ex2_sum_b(140),
|
||
|
c => f_mul_ex2_car_b(140),
|
||
|
sum => ex2_sum_b(140) ,
|
||
|
car => ex2_car_b(139) );
|
||
|
res_csa_141: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(141),
|
||
|
b => f_mul_ex2_sum_b(141),
|
||
|
c => f_mul_ex2_car_b(141),
|
||
|
sum => ex2_sum_b(141) ,
|
||
|
car => ex2_car_b(140) );
|
||
|
res_csa_142: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(142),
|
||
|
b => f_mul_ex2_sum_b(142),
|
||
|
c => f_mul_ex2_car_b(142),
|
||
|
sum => ex2_sum_b(142) ,
|
||
|
car => ex2_car_b(141) );
|
||
|
res_csa_143: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(143),
|
||
|
b => f_mul_ex2_sum_b(143),
|
||
|
c => f_mul_ex2_car_b(143),
|
||
|
sum => ex2_sum_b(143) ,
|
||
|
car => ex2_car_b(142) );
|
||
|
res_csa_144: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(144),
|
||
|
b => f_mul_ex2_sum_b(144),
|
||
|
c => f_mul_ex2_car_b(144),
|
||
|
sum => ex2_sum_b(144) ,
|
||
|
car => ex2_car_b(143) );
|
||
|
res_csa_145: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(145),
|
||
|
b => f_mul_ex2_sum_b(145),
|
||
|
c => f_mul_ex2_car_b(145),
|
||
|
sum => ex2_sum_b(145) ,
|
||
|
car => ex2_car_b(144) );
|
||
|
res_csa_146: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(146),
|
||
|
b => f_mul_ex2_sum_b(146),
|
||
|
c => f_mul_ex2_car_b(146),
|
||
|
sum => ex2_sum_b(146) ,
|
||
|
car => ex2_car_b(145) );
|
||
|
res_csa_147: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(147),
|
||
|
b => f_mul_ex2_sum_b(147),
|
||
|
c => f_mul_ex2_car_b(147),
|
||
|
sum => ex2_sum_b(147) ,
|
||
|
car => ex2_car_b(146) );
|
||
|
res_csa_148: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(148),
|
||
|
b => f_mul_ex2_sum_b(148),
|
||
|
c => f_mul_ex2_car_b(148),
|
||
|
sum => ex2_sum_b(148) ,
|
||
|
car => ex2_car_b(147) );
|
||
|
res_csa_149: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(149),
|
||
|
b => f_mul_ex2_sum_b(149),
|
||
|
c => f_mul_ex2_car_b(149),
|
||
|
sum => ex2_sum_b(149) ,
|
||
|
car => ex2_car_b(148) );
|
||
|
res_csa_150: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(150),
|
||
|
b => f_mul_ex2_sum_b(150),
|
||
|
c => f_mul_ex2_car_b(150),
|
||
|
sum => ex2_sum_b(150) ,
|
||
|
car => ex2_car_b(149) );
|
||
|
res_csa_151: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(151),
|
||
|
b => f_mul_ex2_sum_b(151),
|
||
|
c => f_mul_ex2_car_b(151),
|
||
|
sum => ex2_sum_b(151) ,
|
||
|
car => ex2_car_b(150) );
|
||
|
res_csa_152: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(152),
|
||
|
b => f_mul_ex2_sum_b(152),
|
||
|
c => f_mul_ex2_car_b(152),
|
||
|
sum => ex2_sum_b(152) ,
|
||
|
car => ex2_car_b(151) );
|
||
|
res_csa_153: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(153),
|
||
|
b => f_mul_ex2_sum_b(153),
|
||
|
c => f_mul_ex2_car_b(153),
|
||
|
sum => ex2_sum_b(153) ,
|
||
|
car => ex2_car_b(152) );
|
||
|
res_csa_154: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(154),
|
||
|
b => f_mul_ex2_sum_b(154),
|
||
|
c => f_mul_ex2_car_b(154),
|
||
|
sum => ex2_sum_b(154) ,
|
||
|
car => ex2_car_b(153) );
|
||
|
res_csa_155: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(155),
|
||
|
b => f_mul_ex2_sum_b(155),
|
||
|
c => f_mul_ex2_car_b(155),
|
||
|
sum => ex2_sum_b(155) ,
|
||
|
car => ex2_car_b(154) );
|
||
|
res_csa_156: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(156),
|
||
|
b => f_mul_ex2_sum_b(156),
|
||
|
c => f_mul_ex2_car_b(156),
|
||
|
sum => ex2_sum_b(156) ,
|
||
|
car => ex2_car_b(155) );
|
||
|
res_csa_157: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(157),
|
||
|
b => f_mul_ex2_sum_b(157),
|
||
|
c => f_mul_ex2_car_b(157),
|
||
|
sum => ex2_sum_b(157) ,
|
||
|
car => ex2_car_b(156) );
|
||
|
res_csa_158: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(158),
|
||
|
b => f_mul_ex2_sum_b(158),
|
||
|
c => f_mul_ex2_car_b(158),
|
||
|
sum => ex2_sum_b(158) ,
|
||
|
car => ex2_car_b(157) );
|
||
|
res_csa_159: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(159),
|
||
|
b => f_mul_ex2_sum_b(159),
|
||
|
c => f_mul_ex2_car_b(159),
|
||
|
sum => ex2_sum_b(159) ,
|
||
|
car => ex2_car_b(158) );
|
||
|
res_csa_160: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(160),
|
||
|
b => f_mul_ex2_sum_b(160),
|
||
|
c => f_mul_ex2_car_b(160),
|
||
|
sum => ex2_sum_b(160) ,
|
||
|
car => ex2_car_b(159) );
|
||
|
res_csa_161: entity clib.c_prism_csa32 port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
a => f_alg_ex2_res_b(161),
|
||
|
b => f_mul_ex2_sum_b(161),
|
||
|
c => f_mul_ex2_car_b(161),
|
||
|
sum => ex2_sum_b(161) ,
|
||
|
car => ex2_car_b(160) );
|
||
|
|
||
|
ex2_sum_b(53) <= not f_alg_ex2_res(53) ;
|
||
|
ex2_sum_b(162) <= not f_alg_ex2_res(162) ;
|
||
|
ex2_car_b(161) <= tiup;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ex3_000_lat: entity tri.tri_inv_nlats(tri_inv_nlats) generic map (width=> 53, btr => "NLI0001_X2_A12TH", expand_type => expand_type, needs_sreset => 0 ) port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
LCLK => sa3_ex3_lclk ,
|
||
|
D1CLK => sa3_ex3_d1clk ,
|
||
|
D2CLK => sa3_ex3_d2clk ,
|
||
|
SCANIN => ex3_000_si ,
|
||
|
SCANOUT => ex3_000_so ,
|
||
|
D => ex2_alg_b(0 to 52) ,
|
||
|
QB => ex3_sum(0 to 52) );
|
||
|
|
||
|
ex3_053_sum_lat: entity tri.tri_inv_nlats(tri_inv_nlats) generic map (width=> 110, btr => "NLI0001_X2_A12TH", expand_type => expand_type, needs_sreset => 0 ) port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
LCLK => sa3_ex3_lclk ,
|
||
|
D1CLK => sa3_ex3_d1clk ,
|
||
|
D2CLK => sa3_ex3_d2clk ,
|
||
|
SCANIN => ex3_053_sum_si ,
|
||
|
SCANOUT => ex3_053_sum_so ,
|
||
|
D => ex2_sum_b(53 to 162) ,
|
||
|
QB => ex3_sum(53 to 162) );
|
||
|
|
||
|
ex3_053_car_lat: entity tri.tri_inv_nlats(tri_inv_nlats) generic map (width=> 109, btr => "NLI0001_X2_A12TH", expand_type => expand_type, needs_sreset => 0 ) port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
LCLK => sa3_ex3_lclk ,
|
||
|
D1CLK => sa3_ex3_d1clk ,
|
||
|
D2CLK => sa3_ex3_d2clk ,
|
||
|
SCANIN => ex3_053_car_si ,
|
||
|
SCANOUT => ex3_053_car_so ,
|
||
|
D => ex2_car_b(53 to 161) ,
|
||
|
QB => ex3_car(53 to 161) );
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
inv_sum_lza: ex3_sum_lza_b(0 to 162) <= not ex3_sum(0 to 162) ;
|
||
|
inv_car_lza: ex3_car_lza_b(53 to 161) <= not ex3_car(53 to 161) ;
|
||
|
inv_sum_add: ex3_sum_add_b(0 to 162) <= not ex3_sum(0 to 162) ;
|
||
|
inv_car_add: ex3_car_add_b(53 to 161) <= not ex3_car(53 to 161) ;
|
||
|
|
||
|
buf_sum_lza: f_sa3_ex3_s_lza(0 to 162) <= not ex3_sum_lza_b(0 to 162) ;
|
||
|
buf_car_lza: f_sa3_ex3_c_lza(53 to 161) <= not ex3_car_lza_b(53 to 161) ;
|
||
|
buf_sum_add: f_sa3_ex3_s_add(0 to 162) <= not ex3_sum_add_b(0 to 162) ;
|
||
|
buf_car_add: f_sa3_ex3_c_add(53 to 161) <= not ex3_car_add_b(53 to 161) ;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
thold_reg_0: tri_plat generic map (expand_type => expand_type) port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
nclk => nclk,
|
||
|
flush => flush ,
|
||
|
din(0) => thold_1,
|
||
|
q(0) => thold_0 );
|
||
|
|
||
|
sg_reg_0: tri_plat generic map (expand_type => expand_type) port map (
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
nclk => nclk,
|
||
|
flush => flush ,
|
||
|
din(0) => sg_1 ,
|
||
|
q(0) => sg_0 );
|
||
|
|
||
|
|
||
|
lcbor_0: tri_lcbor generic map (expand_type => expand_type ) port map (
|
||
|
clkoff_b => clkoff_b,
|
||
|
thold => thold_0,
|
||
|
sg => sg_0,
|
||
|
act_dis => act_dis,
|
||
|
forcee => forcee,
|
||
|
thold_b => thold_0_b );
|
||
|
|
||
|
|
||
|
ex1_act <= not ex1_act_b ;
|
||
|
|
||
|
act_lat: tri_rlmreg_p generic map (width=> 5, expand_type => expand_type, needs_sreset => 0) port map (
|
||
|
forcee => forcee,
|
||
|
delay_lclkr => delay_lclkr(2) ,
|
||
|
mpw1_b => mpw1_b(2) ,
|
||
|
mpw2_b => mpw2_b(0) ,
|
||
|
vd => vdd,
|
||
|
gd => gnd,
|
||
|
nclk => nclk,
|
||
|
act => fpu_enable,
|
||
|
thold_b => thold_0_b,
|
||
|
sg => sg_0,
|
||
|
scout => act_so ,
|
||
|
scin => act_si ,
|
||
|
din(0) => act_spare_unused(0),
|
||
|
din(1) => act_spare_unused(1),
|
||
|
din(2) => ex1_act,
|
||
|
din(3) => act_spare_unused(2),
|
||
|
din(4) => act_spare_unused(3),
|
||
|
dout(0) => act_spare_unused(0),
|
||
|
dout(1) => act_spare_unused(1),
|
||
|
dout(2) => ex2_act,
|
||
|
dout(3) => act_spare_unused(2) ,
|
||
|
dout(4) => act_spare_unused(3) );
|
||
|
|
||
|
sa3_ex3_lcb : tri_lcbnd generic map (expand_type => expand_type) port map(
|
||
|
delay_lclkr => delay_lclkr(3) ,
|
||
|
mpw1_b => mpw1_b(3) ,
|
||
|
mpw2_b => mpw2_b(0) ,
|
||
|
forcee => forcee,
|
||
|
nclk => nclk ,
|
||
|
vd => vdd ,
|
||
|
gd => gnd ,
|
||
|
act => ex2_act ,
|
||
|
sg => sg_0 ,
|
||
|
thold_b => thold_0_b ,
|
||
|
d1clk => sa3_ex3_d1clk ,
|
||
|
d2clk => sa3_ex3_d2clk ,
|
||
|
lclk => sa3_ex3_lclk );
|
||
|
|
||
|
|
||
|
|
||
|
ex3_053_car_si(0 to 108) <= ex3_053_car_so(1 to 108) & f_sa3_si ;
|
||
|
ex3_053_sum_si(0 to 109) <= ex3_053_sum_so(1 to 109) & ex3_053_car_so(0);
|
||
|
ex3_000_si(0 to 52) <= ex3_000_so(1 to 52) & ex3_053_sum_so(0) ;
|
||
|
act_si(0 to 4) <= act_so (1 to 4) & ex3_000_so(0);
|
||
|
f_sa3_so <= act_so(0);
|
||
|
|
||
|
|
||
|
end;
|