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.

977 lines
77 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,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;
entity fuq_alg_sh16 is
generic( expand_type : integer := 2 );
port(
ex2_lvl3_shdcd000 :in std_ulogic;
ex2_lvl3_shdcd016 :in std_ulogic;
ex2_lvl3_shdcd032 :in std_ulogic;
ex2_lvl3_shdcd048 :in std_ulogic;
ex2_lvl3_shdcd064 :in std_ulogic;
ex2_lvl3_shdcd080 :in std_ulogic;
ex2_lvl3_shdcd096 :in std_ulogic;
ex2_lvl3_shdcd112 :in std_ulogic;
ex2_lvl3_shdcd128 :in std_ulogic;
ex2_lvl3_shdcd144 :in std_ulogic;
ex2_lvl3_shdcd160 :in std_ulogic;
ex2_lvl3_shdcd192 :in std_ulogic;
ex2_lvl3_shdcd208 :in std_ulogic;
ex2_lvl3_shdcd224 :in std_ulogic;
ex2_lvl3_shdcd240 :in std_ulogic;
ex2_sel_special :in std_ulogic;
ex2_sh_lvl2 :in std_ulogic_vector(0 to 67) ;
ex2_sh16_162 :out std_ulogic ;
ex2_sh16_163 :out std_ulogic ;
ex2_sh_lvl3 :out std_ulogic_vector(0 to 162)
);
end fuq_alg_sh16;
architecture fuq_alg_sh16 of fuq_alg_sh16 is
constant tiup : std_ulogic := '1';
constant tidn : std_ulogic := '0';
signal ex2_sh16_r1_b, ex2_sh16_r2_b, ex2_sh16_r3_b : std_ulogic_vector(0 to 162);
signal ex2_special :std_ulogic_vector(99 to 162);
signal cpx_spc_b :std_ulogic;
signal cpx_000_b :std_ulogic;
signal cpx_016_b :std_ulogic;
signal cpx_032_b :std_ulogic;
signal cpx_048_b :std_ulogic;
signal cpx_064_b :std_ulogic;
signal cpx_080_b :std_ulogic;
signal cpx_096_b :std_ulogic;
signal cpx_112_b :std_ulogic;
signal cpx_128_b :std_ulogic;
signal cpx_144_b :std_ulogic;
signal cpx_160_b :std_ulogic;
signal cpx_192_b :std_ulogic;
signal cpx_208_b :std_ulogic;
signal cpx_224_b :std_ulogic;
signal cpx_240_b :std_ulogic;
signal cp1_spc :std_ulogic;
signal cp1_000 :std_ulogic;
signal cp1_016 :std_ulogic;
signal cp1_032 :std_ulogic;
signal cp1_048 :std_ulogic;
signal cp1_064 :std_ulogic;
signal cp1_080 :std_ulogic;
signal cp1_096 :std_ulogic;
signal cp1_112 :std_ulogic;
signal cp1_128 :std_ulogic;
signal cp1_144 :std_ulogic;
signal cp1_160 :std_ulogic;
signal cp1_192 :std_ulogic;
signal cp1_208 :std_ulogic;
signal cp1_224 :std_ulogic;
signal cp1_240 :std_ulogic;
signal cp2_spc :std_ulogic;
signal cp2_000 :std_ulogic;
signal cp2_016 :std_ulogic;
signal cp2_032 :std_ulogic;
signal cp2_048 :std_ulogic;
signal cp2_064 :std_ulogic;
signal cp2_080 :std_ulogic;
signal cp2_096 :std_ulogic;
signal cp2_112 :std_ulogic;
signal cp2_128 :std_ulogic;
signal cp2_144 :std_ulogic;
signal cp2_208 :std_ulogic;
signal cp2_224 :std_ulogic;
signal cp2_240 :std_ulogic;
signal cp3_spc :std_ulogic;
signal cp3_000 :std_ulogic;
signal cp3_016 :std_ulogic;
signal cp3_032 :std_ulogic;
signal cp3_048 :std_ulogic;
signal cp3_064 :std_ulogic;
signal cp3_080 :std_ulogic;
signal cp3_096 :std_ulogic;
signal cp3_112 :std_ulogic;
signal cp3_128 :std_ulogic;
signal cp3_224 :std_ulogic;
signal cp3_240 :std_ulogic;
signal cp4_spc :std_ulogic;
signal cp4_000 :std_ulogic;
signal cp4_016 :std_ulogic;
signal cp4_032 :std_ulogic;
signal cp4_048 :std_ulogic;
signal cp4_064 :std_ulogic;
signal cp4_080 :std_ulogic;
signal cp4_096 :std_ulogic;
signal cp4_112 :std_ulogic;
signal cp4_240 :std_ulogic;
signal cp5_spc :std_ulogic;
signal cp5_000 :std_ulogic;
signal cp5_016 :std_ulogic;
signal cp5_032 :std_ulogic;
signal cp5_048 :std_ulogic;
signal cp5_064 :std_ulogic;
signal cp5_080 :std_ulogic;
signal cp5_096 :std_ulogic;
signal ex2_sh16_r1_162_b, ex2_sh16_r2_162_b, ex2_sh16_r3_162_b :std_ulogic;
signal ex2_sh16_r1_163_b, ex2_sh16_r2_163_b, ex2_sh16_r3_163_b :std_ulogic;
begin
ex2_special(99 to 162) <= ex2_sh_lvl2(0 to 63);
cxspcb: cpx_spc_b <= not ex2_sel_special ;
cx000b: cpx_000_b <= not ex2_lvl3_shdcd000 ;
cx016b: cpx_016_b <= not ex2_lvl3_shdcd016 ;
cx032b: cpx_032_b <= not ex2_lvl3_shdcd032 ;
cx048b: cpx_048_b <= not ex2_lvl3_shdcd048 ;
cx064b: cpx_064_b <= not ex2_lvl3_shdcd064 ;
cx080b: cpx_080_b <= not ex2_lvl3_shdcd080 ;
cx096b: cpx_096_b <= not ex2_lvl3_shdcd096 ;
cx112b: cpx_112_b <= not ex2_lvl3_shdcd112 ;
cx128b: cpx_128_b <= not ex2_lvl3_shdcd128 ;
cx144b: cpx_144_b <= not ex2_lvl3_shdcd144 ;
cx160b: cpx_160_b <= not ex2_lvl3_shdcd160 ;
cx192b: cpx_192_b <= not ex2_lvl3_shdcd192 ;
cx208b: cpx_208_b <= not ex2_lvl3_shdcd208 ;
cx224b: cpx_224_b <= not ex2_lvl3_shdcd224 ;
cx240b: cpx_240_b <= not ex2_lvl3_shdcd240 ;
c1_spc: cp1_spc <= not cpx_spc_b ;
c1_000: cp1_000 <= not cpx_000_b ;
c1_016: cp1_016 <= not cpx_016_b ;
c1_032: cp1_032 <= not cpx_032_b ;
c1_048: cp1_048 <= not cpx_048_b ;
c1_064: cp1_064 <= not cpx_064_b ;
c1_080: cp1_080 <= not cpx_080_b ;
c1_096: cp1_096 <= not cpx_096_b ;
c1_112: cp1_112 <= not cpx_112_b ;
c1_128: cp1_128 <= not cpx_128_b ;
c1_144: cp1_144 <= not cpx_144_b ;
c1_160: cp1_160 <= not cpx_160_b ;
c1_192: cp1_192 <= not cpx_192_b ;
c1_208: cp1_208 <= not cpx_208_b ;
c1_224: cp1_224 <= not cpx_224_b ;
c1_240: cp1_240 <= not cpx_240_b ;
c2_spc: cp2_spc <= not cpx_spc_b ;
c2_000: cp2_000 <= not cpx_000_b ;
c2_016: cp2_016 <= not cpx_016_b ;
c2_032: cp2_032 <= not cpx_032_b ;
c2_048: cp2_048 <= not cpx_048_b ;
c2_064: cp2_064 <= not cpx_064_b ;
c2_080: cp2_080 <= not cpx_080_b ;
c2_096: cp2_096 <= not cpx_096_b ;
c2_112: cp2_112 <= not cpx_112_b ;
c2_128: cp2_128 <= not cpx_128_b ;
c2_144: cp2_144 <= not cpx_144_b ;
c2_208: cp2_208 <= not cpx_208_b ;
c2_224: cp2_224 <= not cpx_224_b ;
c2_240: cp2_240 <= not cpx_240_b ;
c3_spc: cp3_spc <= not cpx_spc_b ;
c3_000: cp3_000 <= not cpx_000_b ;
c3_016: cp3_016 <= not cpx_016_b ;
c3_032: cp3_032 <= not cpx_032_b ;
c3_048: cp3_048 <= not cpx_048_b ;
c3_064: cp3_064 <= not cpx_064_b ;
c3_080: cp3_080 <= not cpx_080_b ;
c3_096: cp3_096 <= not cpx_096_b ;
c3_112: cp3_112 <= not cpx_112_b ;
c3_128: cp3_128 <= not cpx_128_b ;
c3_224: cp3_224 <= not cpx_224_b ;
c3_240: cp3_240 <= not cpx_240_b ;
c4_spc: cp4_spc <= not cpx_spc_b ;
c4_000: cp4_000 <= not cpx_000_b ;
c4_016: cp4_016 <= not cpx_016_b ;
c4_032: cp4_032 <= not cpx_032_b ;
c4_048: cp4_048 <= not cpx_048_b ;
c4_064: cp4_064 <= not cpx_064_b ;
c4_080: cp4_080 <= not cpx_080_b ;
c4_096: cp4_096 <= not cpx_096_b ;
c4_112: cp4_112 <= not cpx_112_b ;
c4_240: cp4_240 <= not cpx_240_b ;
c5_spc: cp5_spc <= not cpx_spc_b ;
c5_000: cp5_000 <= not cpx_000_b ;
c5_016: cp5_016 <= not cpx_016_b ;
c5_032: cp5_032 <= not cpx_032_b ;
c5_048: cp5_048 <= not cpx_048_b ;
c5_064: cp5_064 <= not cpx_064_b ;
c5_080: cp5_080 <= not cpx_080_b ;
c5_096: cp5_096 <= not cpx_096_b ;
r1_000: ex2_sh16_r1_b(0) <= not( (cp1_192 and ex2_sh_lvl2(64) ) or (cp1_208 and ex2_sh_lvl2(48) ) );
r1_001: ex2_sh16_r1_b(1) <= not( (cp1_192 and ex2_sh_lvl2(65) ) or (cp1_208 and ex2_sh_lvl2(49) ) );
r1_002: ex2_sh16_r1_b(2) <= not( (cp1_192 and ex2_sh_lvl2(66) ) or (cp1_208 and ex2_sh_lvl2(50) ) );
r1_003: ex2_sh16_r1_b(3) <= not( (cp1_192 and ex2_sh_lvl2(67) ) or (cp1_208 and ex2_sh_lvl2(51) ) );
r1_004: ex2_sh16_r1_b(4) <= not( cp1_208 and ex2_sh_lvl2(52) );
r1_005: ex2_sh16_r1_b(5) <= not( cp1_208 and ex2_sh_lvl2(53) );
r1_006: ex2_sh16_r1_b(6) <= not( cp1_208 and ex2_sh_lvl2(54) );
r1_007: ex2_sh16_r1_b(7) <= not( cp1_208 and ex2_sh_lvl2(55) );
r1_008: ex2_sh16_r1_b(8) <= not( cp1_208 and ex2_sh_lvl2(56) );
r1_009: ex2_sh16_r1_b(9) <= not( cp1_208 and ex2_sh_lvl2(57) );
r1_010: ex2_sh16_r1_b(10) <= not( cp1_208 and ex2_sh_lvl2(58) );
r1_011: ex2_sh16_r1_b(11) <= not( cp1_208 and ex2_sh_lvl2(59) );
r1_012: ex2_sh16_r1_b(12) <= not( cp1_208 and ex2_sh_lvl2(60) );
r1_013: ex2_sh16_r1_b(13) <= not( cp1_208 and ex2_sh_lvl2(61) );
r1_014: ex2_sh16_r1_b(14) <= not( cp1_208 and ex2_sh_lvl2(62) );
r1_015: ex2_sh16_r1_b(15) <= not( cp1_208 and ex2_sh_lvl2(63) );
r1_016: ex2_sh16_r1_b(16) <= not( (cp2_208 and ex2_sh_lvl2(64) ) or (cp2_224 and ex2_sh_lvl2(48) ) );
r1_017: ex2_sh16_r1_b(17) <= not( (cp2_208 and ex2_sh_lvl2(65) ) or (cp2_224 and ex2_sh_lvl2(49) ) );
r1_018: ex2_sh16_r1_b(18) <= not( (cp2_208 and ex2_sh_lvl2(66) ) or (cp2_224 and ex2_sh_lvl2(50) ) );
r1_019: ex2_sh16_r1_b(19) <= not( (cp2_208 and ex2_sh_lvl2(67) ) or (cp2_224 and ex2_sh_lvl2(51) ) );
r1_020: ex2_sh16_r1_b(20) <= not( cp2_224 and ex2_sh_lvl2(52) );
r1_021: ex2_sh16_r1_b(21) <= not( cp2_224 and ex2_sh_lvl2(53) );
r1_022: ex2_sh16_r1_b(22) <= not( cp2_224 and ex2_sh_lvl2(54) );
r1_023: ex2_sh16_r1_b(23) <= not( cp2_224 and ex2_sh_lvl2(55) );
r1_024: ex2_sh16_r1_b(24) <= not( cp2_224 and ex2_sh_lvl2(56) );
r1_025: ex2_sh16_r1_b(25) <= not( cp2_224 and ex2_sh_lvl2(57) );
r1_026: ex2_sh16_r1_b(26) <= not( cp2_224 and ex2_sh_lvl2(58) );
r1_027: ex2_sh16_r1_b(27) <= not( cp2_224 and ex2_sh_lvl2(59) );
r1_028: ex2_sh16_r1_b(28) <= not( cp2_224 and ex2_sh_lvl2(60) );
r1_029: ex2_sh16_r1_b(29) <= not( cp2_224 and ex2_sh_lvl2(61) );
r1_030: ex2_sh16_r1_b(30) <= not( cp2_224 and ex2_sh_lvl2(62) );
r1_031: ex2_sh16_r1_b(31) <= not( cp2_224 and ex2_sh_lvl2(63) );
r1_032: ex2_sh16_r1_b(32) <= not( (cp3_224 and ex2_sh_lvl2(64) ) or (cp3_240 and ex2_sh_lvl2(48) ) );
r1_033: ex2_sh16_r1_b(33) <= not( (cp3_224 and ex2_sh_lvl2(65) ) or (cp3_240 and ex2_sh_lvl2(49) ) );
r1_034: ex2_sh16_r1_b(34) <= not( (cp3_224 and ex2_sh_lvl2(66) ) or (cp3_240 and ex2_sh_lvl2(50) ) );
r1_035: ex2_sh16_r1_b(35) <= not( (cp3_224 and ex2_sh_lvl2(67) ) or (cp3_240 and ex2_sh_lvl2(51) ) );
r1_036: ex2_sh16_r1_b(36) <= not( cp3_240 and ex2_sh_lvl2(52) );
r1_037: ex2_sh16_r1_b(37) <= not( cp3_240 and ex2_sh_lvl2(53) );
r1_038: ex2_sh16_r1_b(38) <= not( cp3_240 and ex2_sh_lvl2(54) );
r1_039: ex2_sh16_r1_b(39) <= not( cp3_240 and ex2_sh_lvl2(55) );
r1_040: ex2_sh16_r1_b(40) <= not( cp3_240 and ex2_sh_lvl2(56) );
r1_041: ex2_sh16_r1_b(41) <= not( cp3_240 and ex2_sh_lvl2(57) );
r1_042: ex2_sh16_r1_b(42) <= not( cp3_240 and ex2_sh_lvl2(58) );
r1_043: ex2_sh16_r1_b(43) <= not( cp3_240 and ex2_sh_lvl2(59) );
r1_044: ex2_sh16_r1_b(44) <= not( cp3_240 and ex2_sh_lvl2(60) );
r1_045: ex2_sh16_r1_b(45) <= not( cp3_240 and ex2_sh_lvl2(61) );
r1_046: ex2_sh16_r1_b(46) <= not( cp3_240 and ex2_sh_lvl2(62) );
r1_047: ex2_sh16_r1_b(47) <= not( cp3_240 and ex2_sh_lvl2(63) );
r1_048: ex2_sh16_r1_b(48) <= not( (cp4_240 and ex2_sh_lvl2(64) ) or (cp4_000 and ex2_sh_lvl2(48) ) );
r1_049: ex2_sh16_r1_b(49) <= not( (cp4_240 and ex2_sh_lvl2(65) ) or (cp4_000 and ex2_sh_lvl2(49) ) );
r1_050: ex2_sh16_r1_b(50) <= not( (cp4_240 and ex2_sh_lvl2(66) ) or (cp4_000 and ex2_sh_lvl2(50) ) );
r1_051: ex2_sh16_r1_b(51) <= not( (cp4_240 and ex2_sh_lvl2(67) ) or (cp4_000 and ex2_sh_lvl2(51) ) );
r1_052: ex2_sh16_r1_b(52) <= not( cp4_000 and ex2_sh_lvl2(52) );
r1_053: ex2_sh16_r1_b(53) <= not( cp4_000 and ex2_sh_lvl2(53) );
r1_054: ex2_sh16_r1_b(54) <= not( cp4_000 and ex2_sh_lvl2(54) );
r1_055: ex2_sh16_r1_b(55) <= not( cp4_000 and ex2_sh_lvl2(55) );
r1_056: ex2_sh16_r1_b(56) <= not( cp4_000 and ex2_sh_lvl2(56) );
r1_057: ex2_sh16_r1_b(57) <= not( cp4_000 and ex2_sh_lvl2(57) );
r1_058: ex2_sh16_r1_b(58) <= not( cp4_000 and ex2_sh_lvl2(58) );
r1_059: ex2_sh16_r1_b(59) <= not( cp4_000 and ex2_sh_lvl2(59) );
r1_060: ex2_sh16_r1_b(60) <= not( cp4_000 and ex2_sh_lvl2(60) );
r1_061: ex2_sh16_r1_b(61) <= not( cp4_000 and ex2_sh_lvl2(61) );
r1_062: ex2_sh16_r1_b(62) <= not( cp4_000 and ex2_sh_lvl2(62) );
r1_063: ex2_sh16_r1_b(63) <= not( cp4_000 and ex2_sh_lvl2(63) );
r1_064: ex2_sh16_r1_b(64) <= not( (cp5_000 and ex2_sh_lvl2(64) ) or (cp4_016 and ex2_sh_lvl2(48) ) );
r1_065: ex2_sh16_r1_b(65) <= not( (cp5_000 and ex2_sh_lvl2(65) ) or (cp4_016 and ex2_sh_lvl2(49) ) );
r1_066: ex2_sh16_r1_b(66) <= not( (cp5_000 and ex2_sh_lvl2(66) ) or (cp4_016 and ex2_sh_lvl2(50) ) );
r1_067: ex2_sh16_r1_b(67) <= not( (cp5_000 and ex2_sh_lvl2(67) ) or (cp4_016 and ex2_sh_lvl2(51) ) );
r1_068: ex2_sh16_r1_b(68) <= not( cp4_016 and ex2_sh_lvl2(52) );
r1_069: ex2_sh16_r1_b(69) <= not( cp4_016 and ex2_sh_lvl2(53) );
r1_070: ex2_sh16_r1_b(70) <= not( cp4_016 and ex2_sh_lvl2(54) );
r1_071: ex2_sh16_r1_b(71) <= not( cp4_016 and ex2_sh_lvl2(55) );
r1_072: ex2_sh16_r1_b(72) <= not( cp4_016 and ex2_sh_lvl2(56) );
r1_073: ex2_sh16_r1_b(73) <= not( cp4_016 and ex2_sh_lvl2(57) );
r1_074: ex2_sh16_r1_b(74) <= not( cp4_016 and ex2_sh_lvl2(58) );
r1_075: ex2_sh16_r1_b(75) <= not( cp4_016 and ex2_sh_lvl2(59) );
r1_076: ex2_sh16_r1_b(76) <= not( cp4_016 and ex2_sh_lvl2(60) );
r1_077: ex2_sh16_r1_b(77) <= not( cp4_016 and ex2_sh_lvl2(61) );
r1_078: ex2_sh16_r1_b(78) <= not( cp4_016 and ex2_sh_lvl2(62) );
r1_079: ex2_sh16_r1_b(79) <= not( cp4_016 and ex2_sh_lvl2(63) );
r1_080: ex2_sh16_r1_b(80) <= not( (cp5_016 and ex2_sh_lvl2(64) ) or (cp4_032 and ex2_sh_lvl2(48) ) );
r1_081: ex2_sh16_r1_b(81) <= not( (cp5_016 and ex2_sh_lvl2(65) ) or (cp4_032 and ex2_sh_lvl2(49) ) );
r1_082: ex2_sh16_r1_b(82) <= not( (cp5_016 and ex2_sh_lvl2(66) ) or (cp4_032 and ex2_sh_lvl2(50) ) );
r1_083: ex2_sh16_r1_b(83) <= not( (cp5_016 and ex2_sh_lvl2(67) ) or (cp4_032 and ex2_sh_lvl2(51) ) );
r1_084: ex2_sh16_r1_b(84) <= not( cp4_032 and ex2_sh_lvl2(52) );
r1_085: ex2_sh16_r1_b(85) <= not( cp4_032 and ex2_sh_lvl2(53) );
r1_086: ex2_sh16_r1_b(86) <= not( cp4_032 and ex2_sh_lvl2(54) );
r1_087: ex2_sh16_r1_b(87) <= not( cp4_032 and ex2_sh_lvl2(55) );
r1_088: ex2_sh16_r1_b(88) <= not( cp4_032 and ex2_sh_lvl2(56) );
r1_089: ex2_sh16_r1_b(89) <= not( cp4_032 and ex2_sh_lvl2(57) );
r1_090: ex2_sh16_r1_b(90) <= not( cp4_032 and ex2_sh_lvl2(58) );
r1_091: ex2_sh16_r1_b(91) <= not( cp4_032 and ex2_sh_lvl2(59) );
r1_092: ex2_sh16_r1_b(92) <= not( cp4_032 and ex2_sh_lvl2(60) );
r1_093: ex2_sh16_r1_b(93) <= not( cp4_032 and ex2_sh_lvl2(61) );
r1_094: ex2_sh16_r1_b(94) <= not( cp4_032 and ex2_sh_lvl2(62) );
r1_095: ex2_sh16_r1_b(95) <= not( cp4_032 and ex2_sh_lvl2(63) );
r1_096: ex2_sh16_r1_b(96) <= not( (cp5_032 and ex2_sh_lvl2(64) ) or (cp4_048 and ex2_sh_lvl2(48) ) );
r1_097: ex2_sh16_r1_b(97) <= not( (cp5_032 and ex2_sh_lvl2(65) ) or (cp4_048 and ex2_sh_lvl2(49) ) );
r1_098: ex2_sh16_r1_b(98) <= not( (cp5_032 and ex2_sh_lvl2(66) ) or (cp4_048 and ex2_sh_lvl2(50) ) );
r1_099: ex2_sh16_r1_b(99) <= not( (cp5_032 and ex2_sh_lvl2(67) ) or (cp4_048 and ex2_sh_lvl2(51) ) );
r1_100: ex2_sh16_r1_b(100) <= not( cp4_048 and ex2_sh_lvl2(52) );
r1_101: ex2_sh16_r1_b(101) <= not( cp4_048 and ex2_sh_lvl2(53) );
r1_102: ex2_sh16_r1_b(102) <= not( cp4_048 and ex2_sh_lvl2(54) );
r1_103: ex2_sh16_r1_b(103) <= not( cp4_048 and ex2_sh_lvl2(55) );
r1_104: ex2_sh16_r1_b(104) <= not( cp4_048 and ex2_sh_lvl2(56) );
r1_105: ex2_sh16_r1_b(105) <= not( cp4_048 and ex2_sh_lvl2(57) );
r1_106: ex2_sh16_r1_b(106) <= not( cp4_048 and ex2_sh_lvl2(58) );
r1_107: ex2_sh16_r1_b(107) <= not( cp4_048 and ex2_sh_lvl2(59) );
r1_108: ex2_sh16_r1_b(108) <= not( cp4_048 and ex2_sh_lvl2(60) );
r1_109: ex2_sh16_r1_b(109) <= not( cp4_048 and ex2_sh_lvl2(61) );
r1_110: ex2_sh16_r1_b(110) <= not( cp4_048 and ex2_sh_lvl2(62) );
r1_111: ex2_sh16_r1_b(111) <= not( cp4_048 and ex2_sh_lvl2(63) );
r1_112: ex2_sh16_r1_b(112) <= not( (cp5_048 and ex2_sh_lvl2(64) ) or (cp4_064 and ex2_sh_lvl2(48) ) );
r1_113: ex2_sh16_r1_b(113) <= not( (cp5_048 and ex2_sh_lvl2(65) ) or (cp4_064 and ex2_sh_lvl2(49) ) );
r1_114: ex2_sh16_r1_b(114) <= not( (cp5_048 and ex2_sh_lvl2(66) ) or (cp4_064 and ex2_sh_lvl2(50) ) );
r1_115: ex2_sh16_r1_b(115) <= not( (cp5_048 and ex2_sh_lvl2(67) ) or (cp4_064 and ex2_sh_lvl2(51) ) );
r1_116: ex2_sh16_r1_b(116) <= not( cp4_064 and ex2_sh_lvl2(52) );
r1_117: ex2_sh16_r1_b(117) <= not( cp4_064 and ex2_sh_lvl2(53) );
r1_118: ex2_sh16_r1_b(118) <= not( cp4_064 and ex2_sh_lvl2(54) );
r1_119: ex2_sh16_r1_b(119) <= not( cp4_064 and ex2_sh_lvl2(55) );
r1_120: ex2_sh16_r1_b(120) <= not( cp4_064 and ex2_sh_lvl2(56) );
r1_121: ex2_sh16_r1_b(121) <= not( cp4_064 and ex2_sh_lvl2(57) );
r1_122: ex2_sh16_r1_b(122) <= not( cp4_064 and ex2_sh_lvl2(58) );
r1_123: ex2_sh16_r1_b(123) <= not( cp4_064 and ex2_sh_lvl2(59) );
r1_124: ex2_sh16_r1_b(124) <= not( cp4_064 and ex2_sh_lvl2(60) );
r1_125: ex2_sh16_r1_b(125) <= not( cp4_064 and ex2_sh_lvl2(61) );
r1_126: ex2_sh16_r1_b(126) <= not( cp4_064 and ex2_sh_lvl2(62) );
r1_127: ex2_sh16_r1_b(127) <= not( cp4_064 and ex2_sh_lvl2(63) );
r1_128: ex2_sh16_r1_b(128) <= not( (cp5_064 and ex2_sh_lvl2(64) ) or (cp4_080 and ex2_sh_lvl2(48) ) );
r1_129: ex2_sh16_r1_b(129) <= not( (cp5_064 and ex2_sh_lvl2(65) ) or (cp4_080 and ex2_sh_lvl2(49) ) );
r1_130: ex2_sh16_r1_b(130) <= not( (cp5_064 and ex2_sh_lvl2(66) ) or (cp4_080 and ex2_sh_lvl2(50) ) );
r1_131: ex2_sh16_r1_b(131) <= not( (cp5_064 and ex2_sh_lvl2(67) ) or (cp4_080 and ex2_sh_lvl2(51) ) );
r1_132: ex2_sh16_r1_b(132) <= not( cp4_080 and ex2_sh_lvl2(52) );
r1_133: ex2_sh16_r1_b(133) <= not( cp4_080 and ex2_sh_lvl2(53) );
r1_134: ex2_sh16_r1_b(134) <= not( cp4_080 and ex2_sh_lvl2(54) );
r1_135: ex2_sh16_r1_b(135) <= not( cp4_080 and ex2_sh_lvl2(55) );
r1_136: ex2_sh16_r1_b(136) <= not( cp4_080 and ex2_sh_lvl2(56) );
r1_137: ex2_sh16_r1_b(137) <= not( cp4_080 and ex2_sh_lvl2(57) );
r1_138: ex2_sh16_r1_b(138) <= not( cp4_080 and ex2_sh_lvl2(58) );
r1_139: ex2_sh16_r1_b(139) <= not( cp4_080 and ex2_sh_lvl2(59) );
r1_140: ex2_sh16_r1_b(140) <= not( cp4_080 and ex2_sh_lvl2(60) );
r1_141: ex2_sh16_r1_b(141) <= not( cp4_080 and ex2_sh_lvl2(61) );
r1_142: ex2_sh16_r1_b(142) <= not( cp4_080 and ex2_sh_lvl2(62) );
r1_143: ex2_sh16_r1_b(143) <= not( cp4_080 and ex2_sh_lvl2(63) );
r1_144: ex2_sh16_r1_b(144) <= not( (cp5_080 and ex2_sh_lvl2(64) ) or (cp4_096 and ex2_sh_lvl2(48) ) );
r1_145: ex2_sh16_r1_b(145) <= not( (cp5_080 and ex2_sh_lvl2(65) ) or (cp4_096 and ex2_sh_lvl2(49) ) );
r1_146: ex2_sh16_r1_b(146) <= not( (cp5_080 and ex2_sh_lvl2(66) ) or (cp4_096 and ex2_sh_lvl2(50) ) );
r1_147: ex2_sh16_r1_b(147) <= not( (cp5_080 and ex2_sh_lvl2(67) ) or (cp4_096 and ex2_sh_lvl2(51) ) );
r1_148: ex2_sh16_r1_b(148) <= not( cp4_096 and ex2_sh_lvl2(52) );
r1_149: ex2_sh16_r1_b(149) <= not( cp4_096 and ex2_sh_lvl2(53) );
r1_150: ex2_sh16_r1_b(150) <= not( cp4_096 and ex2_sh_lvl2(54) );
r1_151: ex2_sh16_r1_b(151) <= not( cp4_096 and ex2_sh_lvl2(55) );
r1_152: ex2_sh16_r1_b(152) <= not( cp4_096 and ex2_sh_lvl2(56) );
r1_153: ex2_sh16_r1_b(153) <= not( cp4_096 and ex2_sh_lvl2(57) );
r1_154: ex2_sh16_r1_b(154) <= not( cp4_096 and ex2_sh_lvl2(58) );
r1_155: ex2_sh16_r1_b(155) <= not( cp4_096 and ex2_sh_lvl2(59) );
r1_156: ex2_sh16_r1_b(156) <= not( cp4_096 and ex2_sh_lvl2(60) );
r1_157: ex2_sh16_r1_b(157) <= not( cp4_096 and ex2_sh_lvl2(61) );
r1_158: ex2_sh16_r1_b(158) <= not( cp4_096 and ex2_sh_lvl2(62) );
r1_159: ex2_sh16_r1_b(159) <= not( cp4_096 and ex2_sh_lvl2(63) );
r1_160: ex2_sh16_r1_b(160) <= not( (cp5_096 and ex2_sh_lvl2(64) ) or (cp4_112 and ex2_sh_lvl2(48) ) );
r1_161: ex2_sh16_r1_b(161) <= not( (cp5_096 and ex2_sh_lvl2(65) ) or (cp4_112 and ex2_sh_lvl2(49) ) );
r1_162: ex2_sh16_r1_b(162) <= not( (cp5_096 and ex2_sh_lvl2(66) ) or (cp4_112 and ex2_sh_lvl2(50) ) );
r2_000: ex2_sh16_r2_b(0) <= not( (cp1_224 and ex2_sh_lvl2(32) ) or (cp1_240 and ex2_sh_lvl2(16) ) );
r2_001: ex2_sh16_r2_b(1) <= not( (cp1_224 and ex2_sh_lvl2(33) ) or (cp1_240 and ex2_sh_lvl2(17) ) );
r2_002: ex2_sh16_r2_b(2) <= not( (cp1_224 and ex2_sh_lvl2(34) ) or (cp1_240 and ex2_sh_lvl2(18) ) );
r2_003: ex2_sh16_r2_b(3) <= not( (cp1_224 and ex2_sh_lvl2(35) ) or (cp1_240 and ex2_sh_lvl2(19) ) );
r2_004: ex2_sh16_r2_b(4) <= not( (cp1_224 and ex2_sh_lvl2(36) ) or (cp1_240 and ex2_sh_lvl2(20) ) );
r2_005: ex2_sh16_r2_b(5) <= not( (cp1_224 and ex2_sh_lvl2(37) ) or (cp1_240 and ex2_sh_lvl2(21) ) );
r2_006: ex2_sh16_r2_b(6) <= not( (cp1_224 and ex2_sh_lvl2(38) ) or (cp1_240 and ex2_sh_lvl2(22) ) );
r2_007: ex2_sh16_r2_b(7) <= not( (cp1_224 and ex2_sh_lvl2(39) ) or (cp1_240 and ex2_sh_lvl2(23) ) );
r2_008: ex2_sh16_r2_b(8) <= not( (cp1_224 and ex2_sh_lvl2(40) ) or (cp1_240 and ex2_sh_lvl2(24) ) );
r2_009: ex2_sh16_r2_b(9) <= not( (cp1_224 and ex2_sh_lvl2(41) ) or (cp1_240 and ex2_sh_lvl2(25) ) );
r2_010: ex2_sh16_r2_b(10) <= not( (cp1_224 and ex2_sh_lvl2(42) ) or (cp1_240 and ex2_sh_lvl2(26) ) );
r2_011: ex2_sh16_r2_b(11) <= not( (cp1_224 and ex2_sh_lvl2(43) ) or (cp1_240 and ex2_sh_lvl2(27) ) );
r2_012: ex2_sh16_r2_b(12) <= not( (cp1_224 and ex2_sh_lvl2(44) ) or (cp1_240 and ex2_sh_lvl2(28) ) );
r2_013: ex2_sh16_r2_b(13) <= not( (cp1_224 and ex2_sh_lvl2(45) ) or (cp1_240 and ex2_sh_lvl2(29) ) );
r2_014: ex2_sh16_r2_b(14) <= not( (cp1_224 and ex2_sh_lvl2(46) ) or (cp1_240 and ex2_sh_lvl2(30) ) );
r2_015: ex2_sh16_r2_b(15) <= not( (cp1_224 and ex2_sh_lvl2(47) ) or (cp1_240 and ex2_sh_lvl2(31) ) );
r2_016: ex2_sh16_r2_b(16) <= not( (cp2_240 and ex2_sh_lvl2(32) ) or (cp2_000 and ex2_sh_lvl2(16) ) );
r2_017: ex2_sh16_r2_b(17) <= not( (cp2_240 and ex2_sh_lvl2(33) ) or (cp2_000 and ex2_sh_lvl2(17) ) );
r2_018: ex2_sh16_r2_b(18) <= not( (cp2_240 and ex2_sh_lvl2(34) ) or (cp2_000 and ex2_sh_lvl2(18) ) );
r2_019: ex2_sh16_r2_b(19) <= not( (cp2_240 and ex2_sh_lvl2(35) ) or (cp2_000 and ex2_sh_lvl2(19) ) );
r2_020: ex2_sh16_r2_b(20) <= not( (cp2_240 and ex2_sh_lvl2(36) ) or (cp2_000 and ex2_sh_lvl2(20) ) );
r2_021: ex2_sh16_r2_b(21) <= not( (cp2_240 and ex2_sh_lvl2(37) ) or (cp2_000 and ex2_sh_lvl2(21) ) );
r2_022: ex2_sh16_r2_b(22) <= not( (cp2_240 and ex2_sh_lvl2(38) ) or (cp2_000 and ex2_sh_lvl2(22) ) );
r2_023: ex2_sh16_r2_b(23) <= not( (cp2_240 and ex2_sh_lvl2(39) ) or (cp2_000 and ex2_sh_lvl2(23) ) );
r2_024: ex2_sh16_r2_b(24) <= not( (cp2_240 and ex2_sh_lvl2(40) ) or (cp2_000 and ex2_sh_lvl2(24) ) );
r2_025: ex2_sh16_r2_b(25) <= not( (cp2_240 and ex2_sh_lvl2(41) ) or (cp2_000 and ex2_sh_lvl2(25) ) );
r2_026: ex2_sh16_r2_b(26) <= not( (cp2_240 and ex2_sh_lvl2(42) ) or (cp2_000 and ex2_sh_lvl2(26) ) );
r2_027: ex2_sh16_r2_b(27) <= not( (cp2_240 and ex2_sh_lvl2(43) ) or (cp2_000 and ex2_sh_lvl2(27) ) );
r2_028: ex2_sh16_r2_b(28) <= not( (cp2_240 and ex2_sh_lvl2(44) ) or (cp2_000 and ex2_sh_lvl2(28) ) );
r2_029: ex2_sh16_r2_b(29) <= not( (cp2_240 and ex2_sh_lvl2(45) ) or (cp2_000 and ex2_sh_lvl2(29) ) );
r2_030: ex2_sh16_r2_b(30) <= not( (cp2_240 and ex2_sh_lvl2(46) ) or (cp2_000 and ex2_sh_lvl2(30) ) );
r2_031: ex2_sh16_r2_b(31) <= not( (cp2_240 and ex2_sh_lvl2(47) ) or (cp2_000 and ex2_sh_lvl2(31) ) );
r2_032: ex2_sh16_r2_b(32) <= not( (cp3_000 and ex2_sh_lvl2(32) ) or (cp2_016 and ex2_sh_lvl2(16) ) );
r2_033: ex2_sh16_r2_b(33) <= not( (cp3_000 and ex2_sh_lvl2(33) ) or (cp2_016 and ex2_sh_lvl2(17) ) );
r2_034: ex2_sh16_r2_b(34) <= not( (cp3_000 and ex2_sh_lvl2(34) ) or (cp2_016 and ex2_sh_lvl2(18) ) );
r2_035: ex2_sh16_r2_b(35) <= not( (cp3_000 and ex2_sh_lvl2(35) ) or (cp2_016 and ex2_sh_lvl2(19) ) );
r2_036: ex2_sh16_r2_b(36) <= not( (cp3_000 and ex2_sh_lvl2(36) ) or (cp2_016 and ex2_sh_lvl2(20) ) );
r2_037: ex2_sh16_r2_b(37) <= not( (cp3_000 and ex2_sh_lvl2(37) ) or (cp2_016 and ex2_sh_lvl2(21) ) );
r2_038: ex2_sh16_r2_b(38) <= not( (cp3_000 and ex2_sh_lvl2(38) ) or (cp2_016 and ex2_sh_lvl2(22) ) );
r2_039: ex2_sh16_r2_b(39) <= not( (cp3_000 and ex2_sh_lvl2(39) ) or (cp2_016 and ex2_sh_lvl2(23) ) );
r2_040: ex2_sh16_r2_b(40) <= not( (cp3_000 and ex2_sh_lvl2(40) ) or (cp2_016 and ex2_sh_lvl2(24) ) );
r2_041: ex2_sh16_r2_b(41) <= not( (cp3_000 and ex2_sh_lvl2(41) ) or (cp2_016 and ex2_sh_lvl2(25) ) );
r2_042: ex2_sh16_r2_b(42) <= not( (cp3_000 and ex2_sh_lvl2(42) ) or (cp2_016 and ex2_sh_lvl2(26) ) );
r2_043: ex2_sh16_r2_b(43) <= not( (cp3_000 and ex2_sh_lvl2(43) ) or (cp2_016 and ex2_sh_lvl2(27) ) );
r2_044: ex2_sh16_r2_b(44) <= not( (cp3_000 and ex2_sh_lvl2(44) ) or (cp2_016 and ex2_sh_lvl2(28) ) );
r2_045: ex2_sh16_r2_b(45) <= not( (cp3_000 and ex2_sh_lvl2(45) ) or (cp2_016 and ex2_sh_lvl2(29) ) );
r2_046: ex2_sh16_r2_b(46) <= not( (cp3_000 and ex2_sh_lvl2(46) ) or (cp2_016 and ex2_sh_lvl2(30) ) );
r2_047: ex2_sh16_r2_b(47) <= not( (cp3_000 and ex2_sh_lvl2(47) ) or (cp2_016 and ex2_sh_lvl2(31) ) );
r2_048: ex2_sh16_r2_b(48) <= not( (cp3_016 and ex2_sh_lvl2(32) ) or (cp2_032 and ex2_sh_lvl2(16) ) );
r2_049: ex2_sh16_r2_b(49) <= not( (cp3_016 and ex2_sh_lvl2(33) ) or (cp2_032 and ex2_sh_lvl2(17) ) );
r2_050: ex2_sh16_r2_b(50) <= not( (cp3_016 and ex2_sh_lvl2(34) ) or (cp2_032 and ex2_sh_lvl2(18) ) );
r2_051: ex2_sh16_r2_b(51) <= not( (cp3_016 and ex2_sh_lvl2(35) ) or (cp2_032 and ex2_sh_lvl2(19) ) );
r2_052: ex2_sh16_r2_b(52) <= not( (cp3_016 and ex2_sh_lvl2(36) ) or (cp2_032 and ex2_sh_lvl2(20) ) );
r2_053: ex2_sh16_r2_b(53) <= not( (cp3_016 and ex2_sh_lvl2(37) ) or (cp2_032 and ex2_sh_lvl2(21) ) );
r2_054: ex2_sh16_r2_b(54) <= not( (cp3_016 and ex2_sh_lvl2(38) ) or (cp2_032 and ex2_sh_lvl2(22) ) );
r2_055: ex2_sh16_r2_b(55) <= not( (cp3_016 and ex2_sh_lvl2(39) ) or (cp2_032 and ex2_sh_lvl2(23) ) );
r2_056: ex2_sh16_r2_b(56) <= not( (cp3_016 and ex2_sh_lvl2(40) ) or (cp2_032 and ex2_sh_lvl2(24) ) );
r2_057: ex2_sh16_r2_b(57) <= not( (cp3_016 and ex2_sh_lvl2(41) ) or (cp2_032 and ex2_sh_lvl2(25) ) );
r2_058: ex2_sh16_r2_b(58) <= not( (cp3_016 and ex2_sh_lvl2(42) ) or (cp2_032 and ex2_sh_lvl2(26) ) );
r2_059: ex2_sh16_r2_b(59) <= not( (cp3_016 and ex2_sh_lvl2(43) ) or (cp2_032 and ex2_sh_lvl2(27) ) );
r2_060: ex2_sh16_r2_b(60) <= not( (cp3_016 and ex2_sh_lvl2(44) ) or (cp2_032 and ex2_sh_lvl2(28) ) );
r2_061: ex2_sh16_r2_b(61) <= not( (cp3_016 and ex2_sh_lvl2(45) ) or (cp2_032 and ex2_sh_lvl2(29) ) );
r2_062: ex2_sh16_r2_b(62) <= not( (cp3_016 and ex2_sh_lvl2(46) ) or (cp2_032 and ex2_sh_lvl2(30) ) );
r2_063: ex2_sh16_r2_b(63) <= not( (cp3_016 and ex2_sh_lvl2(47) ) or (cp2_032 and ex2_sh_lvl2(31) ) );
r2_064: ex2_sh16_r2_b(64) <= not( (cp3_032 and ex2_sh_lvl2(32) ) or (cp2_048 and ex2_sh_lvl2(16) ) );
r2_065: ex2_sh16_r2_b(65) <= not( (cp3_032 and ex2_sh_lvl2(33) ) or (cp2_048 and ex2_sh_lvl2(17) ) );
r2_066: ex2_sh16_r2_b(66) <= not( (cp3_032 and ex2_sh_lvl2(34) ) or (cp2_048 and ex2_sh_lvl2(18) ) );
r2_067: ex2_sh16_r2_b(67) <= not( (cp3_032 and ex2_sh_lvl2(35) ) or (cp2_048 and ex2_sh_lvl2(19) ) );
r2_068: ex2_sh16_r2_b(68) <= not( (cp3_032 and ex2_sh_lvl2(36) ) or (cp2_048 and ex2_sh_lvl2(20) ) );
r2_069: ex2_sh16_r2_b(69) <= not( (cp3_032 and ex2_sh_lvl2(37) ) or (cp2_048 and ex2_sh_lvl2(21) ) );
r2_070: ex2_sh16_r2_b(70) <= not( (cp3_032 and ex2_sh_lvl2(38) ) or (cp2_048 and ex2_sh_lvl2(22) ) );
r2_071: ex2_sh16_r2_b(71) <= not( (cp3_032 and ex2_sh_lvl2(39) ) or (cp2_048 and ex2_sh_lvl2(23) ) );
r2_072: ex2_sh16_r2_b(72) <= not( (cp3_032 and ex2_sh_lvl2(40) ) or (cp2_048 and ex2_sh_lvl2(24) ) );
r2_073: ex2_sh16_r2_b(73) <= not( (cp3_032 and ex2_sh_lvl2(41) ) or (cp2_048 and ex2_sh_lvl2(25) ) );
r2_074: ex2_sh16_r2_b(74) <= not( (cp3_032 and ex2_sh_lvl2(42) ) or (cp2_048 and ex2_sh_lvl2(26) ) );
r2_075: ex2_sh16_r2_b(75) <= not( (cp3_032 and ex2_sh_lvl2(43) ) or (cp2_048 and ex2_sh_lvl2(27) ) );
r2_076: ex2_sh16_r2_b(76) <= not( (cp3_032 and ex2_sh_lvl2(44) ) or (cp2_048 and ex2_sh_lvl2(28) ) );
r2_077: ex2_sh16_r2_b(77) <= not( (cp3_032 and ex2_sh_lvl2(45) ) or (cp2_048 and ex2_sh_lvl2(29) ) );
r2_078: ex2_sh16_r2_b(78) <= not( (cp3_032 and ex2_sh_lvl2(46) ) or (cp2_048 and ex2_sh_lvl2(30) ) );
r2_079: ex2_sh16_r2_b(79) <= not( (cp3_032 and ex2_sh_lvl2(47) ) or (cp2_048 and ex2_sh_lvl2(31) ) );
r2_080: ex2_sh16_r2_b(80) <= not( (cp3_048 and ex2_sh_lvl2(32) ) or (cp2_064 and ex2_sh_lvl2(16) ) );
r2_081: ex2_sh16_r2_b(81) <= not( (cp3_048 and ex2_sh_lvl2(33) ) or (cp2_064 and ex2_sh_lvl2(17) ) );
r2_082: ex2_sh16_r2_b(82) <= not( (cp3_048 and ex2_sh_lvl2(34) ) or (cp2_064 and ex2_sh_lvl2(18) ) );
r2_083: ex2_sh16_r2_b(83) <= not( (cp3_048 and ex2_sh_lvl2(35) ) or (cp2_064 and ex2_sh_lvl2(19) ) );
r2_084: ex2_sh16_r2_b(84) <= not( (cp3_048 and ex2_sh_lvl2(36) ) or (cp2_064 and ex2_sh_lvl2(20) ) );
r2_085: ex2_sh16_r2_b(85) <= not( (cp3_048 and ex2_sh_lvl2(37) ) or (cp2_064 and ex2_sh_lvl2(21) ) );
r2_086: ex2_sh16_r2_b(86) <= not( (cp3_048 and ex2_sh_lvl2(38) ) or (cp2_064 and ex2_sh_lvl2(22) ) );
r2_087: ex2_sh16_r2_b(87) <= not( (cp3_048 and ex2_sh_lvl2(39) ) or (cp2_064 and ex2_sh_lvl2(23) ) );
r2_088: ex2_sh16_r2_b(88) <= not( (cp3_048 and ex2_sh_lvl2(40) ) or (cp2_064 and ex2_sh_lvl2(24) ) );
r2_089: ex2_sh16_r2_b(89) <= not( (cp3_048 and ex2_sh_lvl2(41) ) or (cp2_064 and ex2_sh_lvl2(25) ) );
r2_090: ex2_sh16_r2_b(90) <= not( (cp3_048 and ex2_sh_lvl2(42) ) or (cp2_064 and ex2_sh_lvl2(26) ) );
r2_091: ex2_sh16_r2_b(91) <= not( (cp3_048 and ex2_sh_lvl2(43) ) or (cp2_064 and ex2_sh_lvl2(27) ) );
r2_092: ex2_sh16_r2_b(92) <= not( (cp3_048 and ex2_sh_lvl2(44) ) or (cp2_064 and ex2_sh_lvl2(28) ) );
r2_093: ex2_sh16_r2_b(93) <= not( (cp3_048 and ex2_sh_lvl2(45) ) or (cp2_064 and ex2_sh_lvl2(29) ) );
r2_094: ex2_sh16_r2_b(94) <= not( (cp3_048 and ex2_sh_lvl2(46) ) or (cp2_064 and ex2_sh_lvl2(30) ) );
r2_095: ex2_sh16_r2_b(95) <= not( (cp3_048 and ex2_sh_lvl2(47) ) or (cp2_064 and ex2_sh_lvl2(31) ) );
r2_096: ex2_sh16_r2_b(96) <= not( (cp3_064 and ex2_sh_lvl2(32) ) or (cp2_080 and ex2_sh_lvl2(16) ) );
r2_097: ex2_sh16_r2_b(97) <= not( (cp3_064 and ex2_sh_lvl2(33) ) or (cp2_080 and ex2_sh_lvl2(17) ) );
r2_098: ex2_sh16_r2_b(98) <= not( (cp3_064 and ex2_sh_lvl2(34) ) or (cp2_080 and ex2_sh_lvl2(18) ) );
r2_099: ex2_sh16_r2_b(99) <= not( (cp3_064 and ex2_sh_lvl2(35) ) or (cp2_080 and ex2_sh_lvl2(19) ) );
r2_100: ex2_sh16_r2_b(100) <= not( (cp3_064 and ex2_sh_lvl2(36) ) or (cp2_080 and ex2_sh_lvl2(20) ) );
r2_101: ex2_sh16_r2_b(101) <= not( (cp3_064 and ex2_sh_lvl2(37) ) or (cp2_080 and ex2_sh_lvl2(21) ) );
r2_102: ex2_sh16_r2_b(102) <= not( (cp3_064 and ex2_sh_lvl2(38) ) or (cp2_080 and ex2_sh_lvl2(22) ) );
r2_103: ex2_sh16_r2_b(103) <= not( (cp3_064 and ex2_sh_lvl2(39) ) or (cp2_080 and ex2_sh_lvl2(23) ) );
r2_104: ex2_sh16_r2_b(104) <= not( (cp3_064 and ex2_sh_lvl2(40) ) or (cp2_080 and ex2_sh_lvl2(24) ) );
r2_105: ex2_sh16_r2_b(105) <= not( (cp3_064 and ex2_sh_lvl2(41) ) or (cp2_080 and ex2_sh_lvl2(25) ) );
r2_106: ex2_sh16_r2_b(106) <= not( (cp3_064 and ex2_sh_lvl2(42) ) or (cp2_080 and ex2_sh_lvl2(26) ) );
r2_107: ex2_sh16_r2_b(107) <= not( (cp3_064 and ex2_sh_lvl2(43) ) or (cp2_080 and ex2_sh_lvl2(27) ) );
r2_108: ex2_sh16_r2_b(108) <= not( (cp3_064 and ex2_sh_lvl2(44) ) or (cp2_080 and ex2_sh_lvl2(28) ) );
r2_109: ex2_sh16_r2_b(109) <= not( (cp3_064 and ex2_sh_lvl2(45) ) or (cp2_080 and ex2_sh_lvl2(29) ) );
r2_110: ex2_sh16_r2_b(110) <= not( (cp3_064 and ex2_sh_lvl2(46) ) or (cp2_080 and ex2_sh_lvl2(30) ) );
r2_111: ex2_sh16_r2_b(111) <= not( (cp3_064 and ex2_sh_lvl2(47) ) or (cp2_080 and ex2_sh_lvl2(31) ) );
r2_112: ex2_sh16_r2_b(112) <= not( (cp3_080 and ex2_sh_lvl2(32) ) or (cp2_096 and ex2_sh_lvl2(16) ) );
r2_113: ex2_sh16_r2_b(113) <= not( (cp3_080 and ex2_sh_lvl2(33) ) or (cp2_096 and ex2_sh_lvl2(17) ) );
r2_114: ex2_sh16_r2_b(114) <= not( (cp3_080 and ex2_sh_lvl2(34) ) or (cp2_096 and ex2_sh_lvl2(18) ) );
r2_115: ex2_sh16_r2_b(115) <= not( (cp3_080 and ex2_sh_lvl2(35) ) or (cp2_096 and ex2_sh_lvl2(19) ) );
r2_116: ex2_sh16_r2_b(116) <= not( (cp3_080 and ex2_sh_lvl2(36) ) or (cp2_096 and ex2_sh_lvl2(20) ) );
r2_117: ex2_sh16_r2_b(117) <= not( (cp3_080 and ex2_sh_lvl2(37) ) or (cp2_096 and ex2_sh_lvl2(21) ) );
r2_118: ex2_sh16_r2_b(118) <= not( (cp3_080 and ex2_sh_lvl2(38) ) or (cp2_096 and ex2_sh_lvl2(22) ) );
r2_119: ex2_sh16_r2_b(119) <= not( (cp3_080 and ex2_sh_lvl2(39) ) or (cp2_096 and ex2_sh_lvl2(23) ) );
r2_120: ex2_sh16_r2_b(120) <= not( (cp3_080 and ex2_sh_lvl2(40) ) or (cp2_096 and ex2_sh_lvl2(24) ) );
r2_121: ex2_sh16_r2_b(121) <= not( (cp3_080 and ex2_sh_lvl2(41) ) or (cp2_096 and ex2_sh_lvl2(25) ) );
r2_122: ex2_sh16_r2_b(122) <= not( (cp3_080 and ex2_sh_lvl2(42) ) or (cp2_096 and ex2_sh_lvl2(26) ) );
r2_123: ex2_sh16_r2_b(123) <= not( (cp3_080 and ex2_sh_lvl2(43) ) or (cp2_096 and ex2_sh_lvl2(27) ) );
r2_124: ex2_sh16_r2_b(124) <= not( (cp3_080 and ex2_sh_lvl2(44) ) or (cp2_096 and ex2_sh_lvl2(28) ) );
r2_125: ex2_sh16_r2_b(125) <= not( (cp3_080 and ex2_sh_lvl2(45) ) or (cp2_096 and ex2_sh_lvl2(29) ) );
r2_126: ex2_sh16_r2_b(126) <= not( (cp3_080 and ex2_sh_lvl2(46) ) or (cp2_096 and ex2_sh_lvl2(30) ) );
r2_127: ex2_sh16_r2_b(127) <= not( (cp3_080 and ex2_sh_lvl2(47) ) or (cp2_096 and ex2_sh_lvl2(31) ) );
r2_128: ex2_sh16_r2_b(128) <= not( (cp3_096 and ex2_sh_lvl2(32) ) or (cp2_112 and ex2_sh_lvl2(16) ) );
r2_129: ex2_sh16_r2_b(129) <= not( (cp3_096 and ex2_sh_lvl2(33) ) or (cp2_112 and ex2_sh_lvl2(17) ) );
r2_130: ex2_sh16_r2_b(130) <= not( (cp3_096 and ex2_sh_lvl2(34) ) or (cp2_112 and ex2_sh_lvl2(18) ) );
r2_131: ex2_sh16_r2_b(131) <= not( (cp3_096 and ex2_sh_lvl2(35) ) or (cp2_112 and ex2_sh_lvl2(19) ) );
r2_132: ex2_sh16_r2_b(132) <= not( (cp3_096 and ex2_sh_lvl2(36) ) or (cp2_112 and ex2_sh_lvl2(20) ) );
r2_133: ex2_sh16_r2_b(133) <= not( (cp3_096 and ex2_sh_lvl2(37) ) or (cp2_112 and ex2_sh_lvl2(21) ) );
r2_134: ex2_sh16_r2_b(134) <= not( (cp3_096 and ex2_sh_lvl2(38) ) or (cp2_112 and ex2_sh_lvl2(22) ) );
r2_135: ex2_sh16_r2_b(135) <= not( (cp3_096 and ex2_sh_lvl2(39) ) or (cp2_112 and ex2_sh_lvl2(23) ) );
r2_136: ex2_sh16_r2_b(136) <= not( (cp3_096 and ex2_sh_lvl2(40) ) or (cp2_112 and ex2_sh_lvl2(24) ) );
r2_137: ex2_sh16_r2_b(137) <= not( (cp3_096 and ex2_sh_lvl2(41) ) or (cp2_112 and ex2_sh_lvl2(25) ) );
r2_138: ex2_sh16_r2_b(138) <= not( (cp3_096 and ex2_sh_lvl2(42) ) or (cp2_112 and ex2_sh_lvl2(26) ) );
r2_139: ex2_sh16_r2_b(139) <= not( (cp3_096 and ex2_sh_lvl2(43) ) or (cp2_112 and ex2_sh_lvl2(27) ) );
r2_140: ex2_sh16_r2_b(140) <= not( (cp3_096 and ex2_sh_lvl2(44) ) or (cp2_112 and ex2_sh_lvl2(28) ) );
r2_141: ex2_sh16_r2_b(141) <= not( (cp3_096 and ex2_sh_lvl2(45) ) or (cp2_112 and ex2_sh_lvl2(29) ) );
r2_142: ex2_sh16_r2_b(142) <= not( (cp3_096 and ex2_sh_lvl2(46) ) or (cp2_112 and ex2_sh_lvl2(30) ) );
r2_143: ex2_sh16_r2_b(143) <= not( (cp3_096 and ex2_sh_lvl2(47) ) or (cp2_112 and ex2_sh_lvl2(31) ) );
r2_144: ex2_sh16_r2_b(144) <= not( (cp3_112 and ex2_sh_lvl2(32) ) or (cp2_128 and ex2_sh_lvl2(16) ) );
r2_145: ex2_sh16_r2_b(145) <= not( (cp3_112 and ex2_sh_lvl2(33) ) or (cp2_128 and ex2_sh_lvl2(17) ) );
r2_146: ex2_sh16_r2_b(146) <= not( (cp3_112 and ex2_sh_lvl2(34) ) or (cp2_128 and ex2_sh_lvl2(18) ) );
r2_147: ex2_sh16_r2_b(147) <= not( (cp3_112 and ex2_sh_lvl2(35) ) or (cp2_128 and ex2_sh_lvl2(19) ) );
r2_148: ex2_sh16_r2_b(148) <= not( (cp3_112 and ex2_sh_lvl2(36) ) or (cp2_128 and ex2_sh_lvl2(20) ) );
r2_149: ex2_sh16_r2_b(149) <= not( (cp3_112 and ex2_sh_lvl2(37) ) or (cp2_128 and ex2_sh_lvl2(21) ) );
r2_150: ex2_sh16_r2_b(150) <= not( (cp3_112 and ex2_sh_lvl2(38) ) or (cp2_128 and ex2_sh_lvl2(22) ) );
r2_151: ex2_sh16_r2_b(151) <= not( (cp3_112 and ex2_sh_lvl2(39) ) or (cp2_128 and ex2_sh_lvl2(23) ) );
r2_152: ex2_sh16_r2_b(152) <= not( (cp3_112 and ex2_sh_lvl2(40) ) or (cp2_128 and ex2_sh_lvl2(24) ) );
r2_153: ex2_sh16_r2_b(153) <= not( (cp3_112 and ex2_sh_lvl2(41) ) or (cp2_128 and ex2_sh_lvl2(25) ) );
r2_154: ex2_sh16_r2_b(154) <= not( (cp3_112 and ex2_sh_lvl2(42) ) or (cp2_128 and ex2_sh_lvl2(26) ) );
r2_155: ex2_sh16_r2_b(155) <= not( (cp3_112 and ex2_sh_lvl2(43) ) or (cp2_128 and ex2_sh_lvl2(27) ) );
r2_156: ex2_sh16_r2_b(156) <= not( (cp3_112 and ex2_sh_lvl2(44) ) or (cp2_128 and ex2_sh_lvl2(28) ) );
r2_157: ex2_sh16_r2_b(157) <= not( (cp3_112 and ex2_sh_lvl2(45) ) or (cp2_128 and ex2_sh_lvl2(29) ) );
r2_158: ex2_sh16_r2_b(158) <= not( (cp3_112 and ex2_sh_lvl2(46) ) or (cp2_128 and ex2_sh_lvl2(30) ) );
r2_159: ex2_sh16_r2_b(159) <= not( (cp3_112 and ex2_sh_lvl2(47) ) or (cp2_128 and ex2_sh_lvl2(31) ) );
r2_160: ex2_sh16_r2_b(160) <= not( (cp3_128 and ex2_sh_lvl2(32) ) or (cp2_144 and ex2_sh_lvl2(16) ) );
r2_161: ex2_sh16_r2_b(161) <= not( (cp3_128 and ex2_sh_lvl2(33) ) or (cp2_144 and ex2_sh_lvl2(17) ) );
r2_162: ex2_sh16_r2_b(162) <= not( (cp3_128 and ex2_sh_lvl2(34) ) or (cp2_144 and ex2_sh_lvl2(18) ) );
r3_000: ex2_sh16_r3_b(0) <= not( cp1_000 and ex2_sh_lvl2(0) );
r3_001: ex2_sh16_r3_b(1) <= not( cp1_000 and ex2_sh_lvl2(1) );
r3_002: ex2_sh16_r3_b(2) <= not( cp1_000 and ex2_sh_lvl2(2) );
r3_003: ex2_sh16_r3_b(3) <= not( cp1_000 and ex2_sh_lvl2(3) );
r3_004: ex2_sh16_r3_b(4) <= not( cp1_000 and ex2_sh_lvl2(4) );
r3_005: ex2_sh16_r3_b(5) <= not( cp1_000 and ex2_sh_lvl2(5) );
r3_006: ex2_sh16_r3_b(6) <= not( cp1_000 and ex2_sh_lvl2(6) );
r3_007: ex2_sh16_r3_b(7) <= not( cp1_000 and ex2_sh_lvl2(7) );
r3_008: ex2_sh16_r3_b(8) <= not( cp1_000 and ex2_sh_lvl2(8) );
r3_009: ex2_sh16_r3_b(9) <= not( cp1_000 and ex2_sh_lvl2(9) );
r3_010: ex2_sh16_r3_b(10) <= not( cp1_000 and ex2_sh_lvl2(10) );
r3_011: ex2_sh16_r3_b(11) <= not( cp1_000 and ex2_sh_lvl2(11) );
r3_012: ex2_sh16_r3_b(12) <= not( cp1_000 and ex2_sh_lvl2(12) );
r3_013: ex2_sh16_r3_b(13) <= not( cp1_000 and ex2_sh_lvl2(13) );
r3_014: ex2_sh16_r3_b(14) <= not( cp1_000 and ex2_sh_lvl2(14) );
r3_015: ex2_sh16_r3_b(15) <= not( cp1_000 and ex2_sh_lvl2(15) );
r3_016: ex2_sh16_r3_b(16) <= not( cp1_016 and ex2_sh_lvl2(0) );
r3_017: ex2_sh16_r3_b(17) <= not( cp1_016 and ex2_sh_lvl2(1) );
r3_018: ex2_sh16_r3_b(18) <= not( cp1_016 and ex2_sh_lvl2(2) );
r3_019: ex2_sh16_r3_b(19) <= not( cp1_016 and ex2_sh_lvl2(3) );
r3_020: ex2_sh16_r3_b(20) <= not( cp1_016 and ex2_sh_lvl2(4) );
r3_021: ex2_sh16_r3_b(21) <= not( cp1_016 and ex2_sh_lvl2(5) );
r3_022: ex2_sh16_r3_b(22) <= not( cp1_016 and ex2_sh_lvl2(6) );
r3_023: ex2_sh16_r3_b(23) <= not( cp1_016 and ex2_sh_lvl2(7) );
r3_024: ex2_sh16_r3_b(24) <= not( cp1_016 and ex2_sh_lvl2(8) );
r3_025: ex2_sh16_r3_b(25) <= not( cp1_016 and ex2_sh_lvl2(9) );
r3_026: ex2_sh16_r3_b(26) <= not( cp1_016 and ex2_sh_lvl2(10) );
r3_027: ex2_sh16_r3_b(27) <= not( cp1_016 and ex2_sh_lvl2(11) );
r3_028: ex2_sh16_r3_b(28) <= not( cp1_016 and ex2_sh_lvl2(12) );
r3_029: ex2_sh16_r3_b(29) <= not( cp1_016 and ex2_sh_lvl2(13) );
r3_030: ex2_sh16_r3_b(30) <= not( cp1_016 and ex2_sh_lvl2(14) );
r3_031: ex2_sh16_r3_b(31) <= not( cp1_016 and ex2_sh_lvl2(15) );
r3_032: ex2_sh16_r3_b(32) <= not( cp1_032 and ex2_sh_lvl2(0) );
r3_033: ex2_sh16_r3_b(33) <= not( cp1_032 and ex2_sh_lvl2(1) );
r3_034: ex2_sh16_r3_b(34) <= not( cp1_032 and ex2_sh_lvl2(2) );
r3_035: ex2_sh16_r3_b(35) <= not( cp1_032 and ex2_sh_lvl2(3) );
r3_036: ex2_sh16_r3_b(36) <= not( cp1_032 and ex2_sh_lvl2(4) );
r3_037: ex2_sh16_r3_b(37) <= not( cp1_032 and ex2_sh_lvl2(5) );
r3_038: ex2_sh16_r3_b(38) <= not( cp1_032 and ex2_sh_lvl2(6) );
r3_039: ex2_sh16_r3_b(39) <= not( cp1_032 and ex2_sh_lvl2(7) );
r3_040: ex2_sh16_r3_b(40) <= not( cp1_032 and ex2_sh_lvl2(8) );
r3_041: ex2_sh16_r3_b(41) <= not( cp1_032 and ex2_sh_lvl2(9) );
r3_042: ex2_sh16_r3_b(42) <= not( cp1_032 and ex2_sh_lvl2(10) );
r3_043: ex2_sh16_r3_b(43) <= not( cp1_032 and ex2_sh_lvl2(11) );
r3_044: ex2_sh16_r3_b(44) <= not( cp1_032 and ex2_sh_lvl2(12) );
r3_045: ex2_sh16_r3_b(45) <= not( cp1_032 and ex2_sh_lvl2(13) );
r3_046: ex2_sh16_r3_b(46) <= not( cp1_032 and ex2_sh_lvl2(14) );
r3_047: ex2_sh16_r3_b(47) <= not( cp1_032 and ex2_sh_lvl2(15) );
r3_048: ex2_sh16_r3_b(48) <= not( cp1_048 and ex2_sh_lvl2(0) );
r3_049: ex2_sh16_r3_b(49) <= not( cp1_048 and ex2_sh_lvl2(1) );
r3_050: ex2_sh16_r3_b(50) <= not( cp1_048 and ex2_sh_lvl2(2) );
r3_051: ex2_sh16_r3_b(51) <= not( cp1_048 and ex2_sh_lvl2(3) );
r3_052: ex2_sh16_r3_b(52) <= not( cp1_048 and ex2_sh_lvl2(4) );
r3_053: ex2_sh16_r3_b(53) <= not( cp1_048 and ex2_sh_lvl2(5) );
r3_054: ex2_sh16_r3_b(54) <= not( cp1_048 and ex2_sh_lvl2(6) );
r3_055: ex2_sh16_r3_b(55) <= not( cp1_048 and ex2_sh_lvl2(7) );
r3_056: ex2_sh16_r3_b(56) <= not( cp1_048 and ex2_sh_lvl2(8) );
r3_057: ex2_sh16_r3_b(57) <= not( cp1_048 and ex2_sh_lvl2(9) );
r3_058: ex2_sh16_r3_b(58) <= not( cp1_048 and ex2_sh_lvl2(10) );
r3_059: ex2_sh16_r3_b(59) <= not( cp1_048 and ex2_sh_lvl2(11) );
r3_060: ex2_sh16_r3_b(60) <= not( cp1_048 and ex2_sh_lvl2(12) );
r3_061: ex2_sh16_r3_b(61) <= not( cp1_048 and ex2_sh_lvl2(13) );
r3_062: ex2_sh16_r3_b(62) <= not( cp1_048 and ex2_sh_lvl2(14) );
r3_063: ex2_sh16_r3_b(63) <= not( cp1_048 and ex2_sh_lvl2(15) );
r3_064: ex2_sh16_r3_b(64) <= not( cp1_064 and ex2_sh_lvl2(0) );
r3_065: ex2_sh16_r3_b(65) <= not( cp1_064 and ex2_sh_lvl2(1) );
r3_066: ex2_sh16_r3_b(66) <= not( cp1_064 and ex2_sh_lvl2(2) );
r3_067: ex2_sh16_r3_b(67) <= not( cp1_064 and ex2_sh_lvl2(3) );
r3_068: ex2_sh16_r3_b(68) <= not( cp1_064 and ex2_sh_lvl2(4) );
r3_069: ex2_sh16_r3_b(69) <= not( cp1_064 and ex2_sh_lvl2(5) );
r3_070: ex2_sh16_r3_b(70) <= not( cp1_064 and ex2_sh_lvl2(6) );
r3_071: ex2_sh16_r3_b(71) <= not( cp1_064 and ex2_sh_lvl2(7) );
r3_072: ex2_sh16_r3_b(72) <= not( cp1_064 and ex2_sh_lvl2(8) );
r3_073: ex2_sh16_r3_b(73) <= not( cp1_064 and ex2_sh_lvl2(9) );
r3_074: ex2_sh16_r3_b(74) <= not( cp1_064 and ex2_sh_lvl2(10) );
r3_075: ex2_sh16_r3_b(75) <= not( cp1_064 and ex2_sh_lvl2(11) );
r3_076: ex2_sh16_r3_b(76) <= not( cp1_064 and ex2_sh_lvl2(12) );
r3_077: ex2_sh16_r3_b(77) <= not( cp1_064 and ex2_sh_lvl2(13) );
r3_078: ex2_sh16_r3_b(78) <= not( cp1_064 and ex2_sh_lvl2(14) );
r3_079: ex2_sh16_r3_b(79) <= not( cp1_064 and ex2_sh_lvl2(15) );
r3_080: ex2_sh16_r3_b(80) <= not( cp1_080 and ex2_sh_lvl2(0) );
r3_081: ex2_sh16_r3_b(81) <= not( cp1_080 and ex2_sh_lvl2(1) );
r3_082: ex2_sh16_r3_b(82) <= not( cp1_080 and ex2_sh_lvl2(2) );
r3_083: ex2_sh16_r3_b(83) <= not( cp1_080 and ex2_sh_lvl2(3) );
r3_084: ex2_sh16_r3_b(84) <= not( cp1_080 and ex2_sh_lvl2(4) );
r3_085: ex2_sh16_r3_b(85) <= not( cp1_080 and ex2_sh_lvl2(5) );
r3_086: ex2_sh16_r3_b(86) <= not( cp1_080 and ex2_sh_lvl2(6) );
r3_087: ex2_sh16_r3_b(87) <= not( cp1_080 and ex2_sh_lvl2(7) );
r3_088: ex2_sh16_r3_b(88) <= not( cp1_080 and ex2_sh_lvl2(8) );
r3_089: ex2_sh16_r3_b(89) <= not( cp1_080 and ex2_sh_lvl2(9) );
r3_090: ex2_sh16_r3_b(90) <= not( cp1_080 and ex2_sh_lvl2(10) );
r3_091: ex2_sh16_r3_b(91) <= not( cp1_080 and ex2_sh_lvl2(11) );
r3_092: ex2_sh16_r3_b(92) <= not( cp1_080 and ex2_sh_lvl2(12) );
r3_093: ex2_sh16_r3_b(93) <= not( cp1_080 and ex2_sh_lvl2(13) );
r3_094: ex2_sh16_r3_b(94) <= not( cp1_080 and ex2_sh_lvl2(14) );
r3_095: ex2_sh16_r3_b(95) <= not( cp1_080 and ex2_sh_lvl2(15) );
r3_096: ex2_sh16_r3_b(96) <= not( cp1_096 and ex2_sh_lvl2(0) ) ;
r3_097: ex2_sh16_r3_b(97) <= not( cp1_096 and ex2_sh_lvl2(1) ) ;
r3_098: ex2_sh16_r3_b(98) <= not( cp1_096 and ex2_sh_lvl2(2) ) ;
r3_099: ex2_sh16_r3_b(99) <= not( (cp1_096 and ex2_sh_lvl2(3) ) or (cp1_spc and ex2_special(99) ) );
r3_100: ex2_sh16_r3_b(100) <= not( (cp1_096 and ex2_sh_lvl2(4) ) or (cp1_spc and ex2_special(100) ) );
r3_101: ex2_sh16_r3_b(101) <= not( (cp1_096 and ex2_sh_lvl2(5) ) or (cp1_spc and ex2_special(101) ) );
r3_102: ex2_sh16_r3_b(102) <= not( (cp1_096 and ex2_sh_lvl2(6) ) or (cp1_spc and ex2_special(102) ) );
r3_103: ex2_sh16_r3_b(103) <= not( (cp1_096 and ex2_sh_lvl2(7) ) or (cp1_spc and ex2_special(103) ) );
r3_104: ex2_sh16_r3_b(104) <= not( (cp1_096 and ex2_sh_lvl2(8) ) or (cp1_spc and ex2_special(104) ) );
r3_105: ex2_sh16_r3_b(105) <= not( (cp1_096 and ex2_sh_lvl2(9) ) or (cp1_spc and ex2_special(105) ) );
r3_106: ex2_sh16_r3_b(106) <= not( (cp1_096 and ex2_sh_lvl2(10) ) or (cp1_spc and ex2_special(106) ) );
r3_107: ex2_sh16_r3_b(107) <= not( (cp1_096 and ex2_sh_lvl2(11) ) or (cp1_spc and ex2_special(107) ) );
r3_108: ex2_sh16_r3_b(108) <= not( (cp1_096 and ex2_sh_lvl2(12) ) or (cp1_spc and ex2_special(108) ) );
r3_109: ex2_sh16_r3_b(109) <= not( (cp1_096 and ex2_sh_lvl2(13) ) or (cp1_spc and ex2_special(109) ) );
r3_110: ex2_sh16_r3_b(110) <= not( (cp1_096 and ex2_sh_lvl2(14) ) or (cp1_spc and ex2_special(110) ) );
r3_111: ex2_sh16_r3_b(111) <= not( (cp1_096 and ex2_sh_lvl2(15) ) or (cp1_spc and ex2_special(111) ) );
r3_112: ex2_sh16_r3_b(112) <= not( (cp1_112 and ex2_sh_lvl2(0) ) or (cp2_spc and ex2_special(112) ) );
r3_113: ex2_sh16_r3_b(113) <= not( (cp1_112 and ex2_sh_lvl2(1) ) or (cp2_spc and ex2_special(113) ) );
r3_114: ex2_sh16_r3_b(114) <= not( (cp1_112 and ex2_sh_lvl2(2) ) or (cp2_spc and ex2_special(114) ) );
r3_115: ex2_sh16_r3_b(115) <= not( (cp1_112 and ex2_sh_lvl2(3) ) or (cp2_spc and ex2_special(115) ) );
r3_116: ex2_sh16_r3_b(116) <= not( (cp1_112 and ex2_sh_lvl2(4) ) or (cp2_spc and ex2_special(116) ) );
r3_117: ex2_sh16_r3_b(117) <= not( (cp1_112 and ex2_sh_lvl2(5) ) or (cp2_spc and ex2_special(117) ) );
r3_118: ex2_sh16_r3_b(118) <= not( (cp1_112 and ex2_sh_lvl2(6) ) or (cp2_spc and ex2_special(118) ) );
r3_119: ex2_sh16_r3_b(119) <= not( (cp1_112 and ex2_sh_lvl2(7) ) or (cp2_spc and ex2_special(119) ) );
r3_120: ex2_sh16_r3_b(120) <= not( (cp1_112 and ex2_sh_lvl2(8) ) or (cp2_spc and ex2_special(120) ) );
r3_121: ex2_sh16_r3_b(121) <= not( (cp1_112 and ex2_sh_lvl2(9) ) or (cp2_spc and ex2_special(121) ) );
r3_122: ex2_sh16_r3_b(122) <= not( (cp1_112 and ex2_sh_lvl2(10) ) or (cp2_spc and ex2_special(122) ) );
r3_123: ex2_sh16_r3_b(123) <= not( (cp1_112 and ex2_sh_lvl2(11) ) or (cp2_spc and ex2_special(123) ) );
r3_124: ex2_sh16_r3_b(124) <= not( (cp1_112 and ex2_sh_lvl2(12) ) or (cp2_spc and ex2_special(124) ) );
r3_125: ex2_sh16_r3_b(125) <= not( (cp1_112 and ex2_sh_lvl2(13) ) or (cp2_spc and ex2_special(125) ) );
r3_126: ex2_sh16_r3_b(126) <= not( (cp1_112 and ex2_sh_lvl2(14) ) or (cp2_spc and ex2_special(126) ) );
r3_127: ex2_sh16_r3_b(127) <= not( (cp1_112 and ex2_sh_lvl2(15) ) or (cp2_spc and ex2_special(127) ) );
r3_128: ex2_sh16_r3_b(128) <= not( (cp1_128 and ex2_sh_lvl2(0) ) or (cp3_spc and ex2_special(128) ) );
r3_129: ex2_sh16_r3_b(129) <= not( (cp1_128 and ex2_sh_lvl2(1) ) or (cp3_spc and ex2_special(129) ) );
r3_130: ex2_sh16_r3_b(130) <= not( (cp1_128 and ex2_sh_lvl2(2) ) or (cp3_spc and ex2_special(130) ) );
r3_131: ex2_sh16_r3_b(131) <= not( (cp1_128 and ex2_sh_lvl2(3) ) or (cp3_spc and ex2_special(131) ) );
r3_132: ex2_sh16_r3_b(132) <= not( (cp1_128 and ex2_sh_lvl2(4) ) or (cp3_spc and ex2_special(132) ) );
r3_133: ex2_sh16_r3_b(133) <= not( (cp1_128 and ex2_sh_lvl2(5) ) or (cp3_spc and ex2_special(133) ) );
r3_134: ex2_sh16_r3_b(134) <= not( (cp1_128 and ex2_sh_lvl2(6) ) or (cp3_spc and ex2_special(134) ) );
r3_135: ex2_sh16_r3_b(135) <= not( (cp1_128 and ex2_sh_lvl2(7) ) or (cp3_spc and ex2_special(135) ) );
r3_136: ex2_sh16_r3_b(136) <= not( (cp1_128 and ex2_sh_lvl2(8) ) or (cp3_spc and ex2_special(136) ) );
r3_137: ex2_sh16_r3_b(137) <= not( (cp1_128 and ex2_sh_lvl2(9) ) or (cp3_spc and ex2_special(137) ) );
r3_138: ex2_sh16_r3_b(138) <= not( (cp1_128 and ex2_sh_lvl2(10) ) or (cp3_spc and ex2_special(138) ) );
r3_139: ex2_sh16_r3_b(139) <= not( (cp1_128 and ex2_sh_lvl2(11) ) or (cp3_spc and ex2_special(139) ) );
r3_140: ex2_sh16_r3_b(140) <= not( (cp1_128 and ex2_sh_lvl2(12) ) or (cp3_spc and ex2_special(140) ) );
r3_141: ex2_sh16_r3_b(141) <= not( (cp1_128 and ex2_sh_lvl2(13) ) or (cp3_spc and ex2_special(141) ) );
r3_142: ex2_sh16_r3_b(142) <= not( (cp1_128 and ex2_sh_lvl2(14) ) or (cp3_spc and ex2_special(142) ) );
r3_143: ex2_sh16_r3_b(143) <= not( (cp1_128 and ex2_sh_lvl2(15) ) or (cp3_spc and ex2_special(143) ) );
r3_144: ex2_sh16_r3_b(144) <= not( (cp1_144 and ex2_sh_lvl2(0) ) or (cp4_spc and ex2_special(144) ) );
r3_145: ex2_sh16_r3_b(145) <= not( (cp1_144 and ex2_sh_lvl2(1) ) or (cp4_spc and ex2_special(145) ) );
r3_146: ex2_sh16_r3_b(146) <= not( (cp1_144 and ex2_sh_lvl2(2) ) or (cp4_spc and ex2_special(146) ) );
r3_147: ex2_sh16_r3_b(147) <= not( (cp1_144 and ex2_sh_lvl2(3) ) or (cp4_spc and ex2_special(147) ) );
r3_148: ex2_sh16_r3_b(148) <= not( (cp1_144 and ex2_sh_lvl2(4) ) or (cp4_spc and ex2_special(148) ) );
r3_149: ex2_sh16_r3_b(149) <= not( (cp1_144 and ex2_sh_lvl2(5) ) or (cp4_spc and ex2_special(149) ) );
r3_150: ex2_sh16_r3_b(150) <= not( (cp1_144 and ex2_sh_lvl2(6) ) or (cp4_spc and ex2_special(150) ) );
r3_151: ex2_sh16_r3_b(151) <= not( (cp1_144 and ex2_sh_lvl2(7) ) or (cp4_spc and ex2_special(151) ) );
r3_152: ex2_sh16_r3_b(152) <= not( (cp1_144 and ex2_sh_lvl2(8) ) or (cp4_spc and ex2_special(152) ) );
r3_153: ex2_sh16_r3_b(153) <= not( (cp1_144 and ex2_sh_lvl2(9) ) or (cp4_spc and ex2_special(153) ) );
r3_154: ex2_sh16_r3_b(154) <= not( (cp1_144 and ex2_sh_lvl2(10) ) or (cp4_spc and ex2_special(154) ) );
r3_155: ex2_sh16_r3_b(155) <= not( (cp1_144 and ex2_sh_lvl2(11) ) or (cp4_spc and ex2_special(155) ) );
r3_156: ex2_sh16_r3_b(156) <= not( (cp1_144 and ex2_sh_lvl2(12) ) or (cp4_spc and ex2_special(156) ) );
r3_157: ex2_sh16_r3_b(157) <= not( (cp1_144 and ex2_sh_lvl2(13) ) or (cp4_spc and ex2_special(157) ) );
r3_158: ex2_sh16_r3_b(158) <= not( (cp1_144 and ex2_sh_lvl2(14) ) or (cp4_spc and ex2_special(158) ) );
r3_159: ex2_sh16_r3_b(159) <= not( (cp1_144 and ex2_sh_lvl2(15) ) or (cp4_spc and ex2_special(159) ) );
r3_160: ex2_sh16_r3_b(160) <= not( (cp1_160 and ex2_sh_lvl2(0) ) or (cp5_spc and ex2_special(160) ) );
r3_161: ex2_sh16_r3_b(161) <= not( (cp1_160 and ex2_sh_lvl2(1) ) or (cp5_spc and ex2_special(161) ) );
r3_162: ex2_sh16_r3_b(162) <= not( (cp1_160 and ex2_sh_lvl2(2) ) or (cp5_spc and ex2_special(162) ) );
o_000: ex2_sh_lvl3(0) <= not( ex2_sh16_r1_b(0) and ex2_sh16_r2_b(0) and ex2_sh16_r3_b(0) );
o_001: ex2_sh_lvl3(1) <= not( ex2_sh16_r1_b(1) and ex2_sh16_r2_b(1) and ex2_sh16_r3_b(1) );
o_002: ex2_sh_lvl3(2) <= not( ex2_sh16_r1_b(2) and ex2_sh16_r2_b(2) and ex2_sh16_r3_b(2) );
o_003: ex2_sh_lvl3(3) <= not( ex2_sh16_r1_b(3) and ex2_sh16_r2_b(3) and ex2_sh16_r3_b(3) );
o_004: ex2_sh_lvl3(4) <= not( ex2_sh16_r1_b(4) and ex2_sh16_r2_b(4) and ex2_sh16_r3_b(4) );
o_005: ex2_sh_lvl3(5) <= not( ex2_sh16_r1_b(5) and ex2_sh16_r2_b(5) and ex2_sh16_r3_b(5) );
o_006: ex2_sh_lvl3(6) <= not( ex2_sh16_r1_b(6) and ex2_sh16_r2_b(6) and ex2_sh16_r3_b(6) );
o_007: ex2_sh_lvl3(7) <= not( ex2_sh16_r1_b(7) and ex2_sh16_r2_b(7) and ex2_sh16_r3_b(7) );
o_008: ex2_sh_lvl3(8) <= not( ex2_sh16_r1_b(8) and ex2_sh16_r2_b(8) and ex2_sh16_r3_b(8) );
o_009: ex2_sh_lvl3(9) <= not( ex2_sh16_r1_b(9) and ex2_sh16_r2_b(9) and ex2_sh16_r3_b(9) );
o_010: ex2_sh_lvl3(10) <= not( ex2_sh16_r1_b(10) and ex2_sh16_r2_b(10) and ex2_sh16_r3_b(10) );
o_011: ex2_sh_lvl3(11) <= not( ex2_sh16_r1_b(11) and ex2_sh16_r2_b(11) and ex2_sh16_r3_b(11) );
o_012: ex2_sh_lvl3(12) <= not( ex2_sh16_r1_b(12) and ex2_sh16_r2_b(12) and ex2_sh16_r3_b(12) );
o_013: ex2_sh_lvl3(13) <= not( ex2_sh16_r1_b(13) and ex2_sh16_r2_b(13) and ex2_sh16_r3_b(13) );
o_014: ex2_sh_lvl3(14) <= not( ex2_sh16_r1_b(14) and ex2_sh16_r2_b(14) and ex2_sh16_r3_b(14) );
o_015: ex2_sh_lvl3(15) <= not( ex2_sh16_r1_b(15) and ex2_sh16_r2_b(15) and ex2_sh16_r3_b(15) );
o_016: ex2_sh_lvl3(16) <= not( ex2_sh16_r1_b(16) and ex2_sh16_r2_b(16) and ex2_sh16_r3_b(16) );
o_017: ex2_sh_lvl3(17) <= not( ex2_sh16_r1_b(17) and ex2_sh16_r2_b(17) and ex2_sh16_r3_b(17) );
o_018: ex2_sh_lvl3(18) <= not( ex2_sh16_r1_b(18) and ex2_sh16_r2_b(18) and ex2_sh16_r3_b(18) );
o_019: ex2_sh_lvl3(19) <= not( ex2_sh16_r1_b(19) and ex2_sh16_r2_b(19) and ex2_sh16_r3_b(19) );
o_020: ex2_sh_lvl3(20) <= not( ex2_sh16_r1_b(20) and ex2_sh16_r2_b(20) and ex2_sh16_r3_b(20) );
o_021: ex2_sh_lvl3(21) <= not( ex2_sh16_r1_b(21) and ex2_sh16_r2_b(21) and ex2_sh16_r3_b(21) );
o_022: ex2_sh_lvl3(22) <= not( ex2_sh16_r1_b(22) and ex2_sh16_r2_b(22) and ex2_sh16_r3_b(22) );
o_023: ex2_sh_lvl3(23) <= not( ex2_sh16_r1_b(23) and ex2_sh16_r2_b(23) and ex2_sh16_r3_b(23) );
o_024: ex2_sh_lvl3(24) <= not( ex2_sh16_r1_b(24) and ex2_sh16_r2_b(24) and ex2_sh16_r3_b(24) );
o_025: ex2_sh_lvl3(25) <= not( ex2_sh16_r1_b(25) and ex2_sh16_r2_b(25) and ex2_sh16_r3_b(25) );
o_026: ex2_sh_lvl3(26) <= not( ex2_sh16_r1_b(26) and ex2_sh16_r2_b(26) and ex2_sh16_r3_b(26) );
o_027: ex2_sh_lvl3(27) <= not( ex2_sh16_r1_b(27) and ex2_sh16_r2_b(27) and ex2_sh16_r3_b(27) );
o_028: ex2_sh_lvl3(28) <= not( ex2_sh16_r1_b(28) and ex2_sh16_r2_b(28) and ex2_sh16_r3_b(28) );
o_029: ex2_sh_lvl3(29) <= not( ex2_sh16_r1_b(29) and ex2_sh16_r2_b(29) and ex2_sh16_r3_b(29) );
o_030: ex2_sh_lvl3(30) <= not( ex2_sh16_r1_b(30) and ex2_sh16_r2_b(30) and ex2_sh16_r3_b(30) );
o_031: ex2_sh_lvl3(31) <= not( ex2_sh16_r1_b(31) and ex2_sh16_r2_b(31) and ex2_sh16_r3_b(31) );
o_032: ex2_sh_lvl3(32) <= not( ex2_sh16_r1_b(32) and ex2_sh16_r2_b(32) and ex2_sh16_r3_b(32) );
o_033: ex2_sh_lvl3(33) <= not( ex2_sh16_r1_b(33) and ex2_sh16_r2_b(33) and ex2_sh16_r3_b(33) );
o_034: ex2_sh_lvl3(34) <= not( ex2_sh16_r1_b(34) and ex2_sh16_r2_b(34) and ex2_sh16_r3_b(34) );
o_035: ex2_sh_lvl3(35) <= not( ex2_sh16_r1_b(35) and ex2_sh16_r2_b(35) and ex2_sh16_r3_b(35) );
o_036: ex2_sh_lvl3(36) <= not( ex2_sh16_r1_b(36) and ex2_sh16_r2_b(36) and ex2_sh16_r3_b(36) );
o_037: ex2_sh_lvl3(37) <= not( ex2_sh16_r1_b(37) and ex2_sh16_r2_b(37) and ex2_sh16_r3_b(37) );
o_038: ex2_sh_lvl3(38) <= not( ex2_sh16_r1_b(38) and ex2_sh16_r2_b(38) and ex2_sh16_r3_b(38) );
o_039: ex2_sh_lvl3(39) <= not( ex2_sh16_r1_b(39) and ex2_sh16_r2_b(39) and ex2_sh16_r3_b(39) );
o_040: ex2_sh_lvl3(40) <= not( ex2_sh16_r1_b(40) and ex2_sh16_r2_b(40) and ex2_sh16_r3_b(40) );
o_041: ex2_sh_lvl3(41) <= not( ex2_sh16_r1_b(41) and ex2_sh16_r2_b(41) and ex2_sh16_r3_b(41) );
o_042: ex2_sh_lvl3(42) <= not( ex2_sh16_r1_b(42) and ex2_sh16_r2_b(42) and ex2_sh16_r3_b(42) );
o_043: ex2_sh_lvl3(43) <= not( ex2_sh16_r1_b(43) and ex2_sh16_r2_b(43) and ex2_sh16_r3_b(43) );
o_044: ex2_sh_lvl3(44) <= not( ex2_sh16_r1_b(44) and ex2_sh16_r2_b(44) and ex2_sh16_r3_b(44) );
o_045: ex2_sh_lvl3(45) <= not( ex2_sh16_r1_b(45) and ex2_sh16_r2_b(45) and ex2_sh16_r3_b(45) );
o_046: ex2_sh_lvl3(46) <= not( ex2_sh16_r1_b(46) and ex2_sh16_r2_b(46) and ex2_sh16_r3_b(46) );
o_047: ex2_sh_lvl3(47) <= not( ex2_sh16_r1_b(47) and ex2_sh16_r2_b(47) and ex2_sh16_r3_b(47) );
o_048: ex2_sh_lvl3(48) <= not( ex2_sh16_r1_b(48) and ex2_sh16_r2_b(48) and ex2_sh16_r3_b(48) );
o_049: ex2_sh_lvl3(49) <= not( ex2_sh16_r1_b(49) and ex2_sh16_r2_b(49) and ex2_sh16_r3_b(49) );
o_050: ex2_sh_lvl3(50) <= not( ex2_sh16_r1_b(50) and ex2_sh16_r2_b(50) and ex2_sh16_r3_b(50) );
o_051: ex2_sh_lvl3(51) <= not( ex2_sh16_r1_b(51) and ex2_sh16_r2_b(51) and ex2_sh16_r3_b(51) );
o_052: ex2_sh_lvl3(52) <= not( ex2_sh16_r1_b(52) and ex2_sh16_r2_b(52) and ex2_sh16_r3_b(52) );
o_053: ex2_sh_lvl3(53) <= not( ex2_sh16_r1_b(53) and ex2_sh16_r2_b(53) and ex2_sh16_r3_b(53) );
o_054: ex2_sh_lvl3(54) <= not( ex2_sh16_r1_b(54) and ex2_sh16_r2_b(54) and ex2_sh16_r3_b(54) );
o_055: ex2_sh_lvl3(55) <= not( ex2_sh16_r1_b(55) and ex2_sh16_r2_b(55) and ex2_sh16_r3_b(55) );
o_056: ex2_sh_lvl3(56) <= not( ex2_sh16_r1_b(56) and ex2_sh16_r2_b(56) and ex2_sh16_r3_b(56) );
o_057: ex2_sh_lvl3(57) <= not( ex2_sh16_r1_b(57) and ex2_sh16_r2_b(57) and ex2_sh16_r3_b(57) );
o_058: ex2_sh_lvl3(58) <= not( ex2_sh16_r1_b(58) and ex2_sh16_r2_b(58) and ex2_sh16_r3_b(58) );
o_059: ex2_sh_lvl3(59) <= not( ex2_sh16_r1_b(59) and ex2_sh16_r2_b(59) and ex2_sh16_r3_b(59) );
o_060: ex2_sh_lvl3(60) <= not( ex2_sh16_r1_b(60) and ex2_sh16_r2_b(60) and ex2_sh16_r3_b(60) );
o_061: ex2_sh_lvl3(61) <= not( ex2_sh16_r1_b(61) and ex2_sh16_r2_b(61) and ex2_sh16_r3_b(61) );
o_062: ex2_sh_lvl3(62) <= not( ex2_sh16_r1_b(62) and ex2_sh16_r2_b(62) and ex2_sh16_r3_b(62) );
o_063: ex2_sh_lvl3(63) <= not( ex2_sh16_r1_b(63) and ex2_sh16_r2_b(63) and ex2_sh16_r3_b(63) );
o_064: ex2_sh_lvl3(64) <= not( ex2_sh16_r1_b(64) and ex2_sh16_r2_b(64) and ex2_sh16_r3_b(64) );
o_065: ex2_sh_lvl3(65) <= not( ex2_sh16_r1_b(65) and ex2_sh16_r2_b(65) and ex2_sh16_r3_b(65) );
o_066: ex2_sh_lvl3(66) <= not( ex2_sh16_r1_b(66) and ex2_sh16_r2_b(66) and ex2_sh16_r3_b(66) );
o_067: ex2_sh_lvl3(67) <= not( ex2_sh16_r1_b(67) and ex2_sh16_r2_b(67) and ex2_sh16_r3_b(67) );
o_068: ex2_sh_lvl3(68) <= not( ex2_sh16_r1_b(68) and ex2_sh16_r2_b(68) and ex2_sh16_r3_b(68) );
o_069: ex2_sh_lvl3(69) <= not( ex2_sh16_r1_b(69) and ex2_sh16_r2_b(69) and ex2_sh16_r3_b(69) );
o_070: ex2_sh_lvl3(70) <= not( ex2_sh16_r1_b(70) and ex2_sh16_r2_b(70) and ex2_sh16_r3_b(70) );
o_071: ex2_sh_lvl3(71) <= not( ex2_sh16_r1_b(71) and ex2_sh16_r2_b(71) and ex2_sh16_r3_b(71) );
o_072: ex2_sh_lvl3(72) <= not( ex2_sh16_r1_b(72) and ex2_sh16_r2_b(72) and ex2_sh16_r3_b(72) );
o_073: ex2_sh_lvl3(73) <= not( ex2_sh16_r1_b(73) and ex2_sh16_r2_b(73) and ex2_sh16_r3_b(73) );
o_074: ex2_sh_lvl3(74) <= not( ex2_sh16_r1_b(74) and ex2_sh16_r2_b(74) and ex2_sh16_r3_b(74) );
o_075: ex2_sh_lvl3(75) <= not( ex2_sh16_r1_b(75) and ex2_sh16_r2_b(75) and ex2_sh16_r3_b(75) );
o_076: ex2_sh_lvl3(76) <= not( ex2_sh16_r1_b(76) and ex2_sh16_r2_b(76) and ex2_sh16_r3_b(76) );
o_077: ex2_sh_lvl3(77) <= not( ex2_sh16_r1_b(77) and ex2_sh16_r2_b(77) and ex2_sh16_r3_b(77) );
o_078: ex2_sh_lvl3(78) <= not( ex2_sh16_r1_b(78) and ex2_sh16_r2_b(78) and ex2_sh16_r3_b(78) );
o_079: ex2_sh_lvl3(79) <= not( ex2_sh16_r1_b(79) and ex2_sh16_r2_b(79) and ex2_sh16_r3_b(79) );
o_080: ex2_sh_lvl3(80) <= not( ex2_sh16_r1_b(80) and ex2_sh16_r2_b(80) and ex2_sh16_r3_b(80) );
o_081: ex2_sh_lvl3(81) <= not( ex2_sh16_r1_b(81) and ex2_sh16_r2_b(81) and ex2_sh16_r3_b(81) );
o_082: ex2_sh_lvl3(82) <= not( ex2_sh16_r1_b(82) and ex2_sh16_r2_b(82) and ex2_sh16_r3_b(82) );
o_083: ex2_sh_lvl3(83) <= not( ex2_sh16_r1_b(83) and ex2_sh16_r2_b(83) and ex2_sh16_r3_b(83) );
o_084: ex2_sh_lvl3(84) <= not( ex2_sh16_r1_b(84) and ex2_sh16_r2_b(84) and ex2_sh16_r3_b(84) );
o_085: ex2_sh_lvl3(85) <= not( ex2_sh16_r1_b(85) and ex2_sh16_r2_b(85) and ex2_sh16_r3_b(85) );
o_086: ex2_sh_lvl3(86) <= not( ex2_sh16_r1_b(86) and ex2_sh16_r2_b(86) and ex2_sh16_r3_b(86) );
o_087: ex2_sh_lvl3(87) <= not( ex2_sh16_r1_b(87) and ex2_sh16_r2_b(87) and ex2_sh16_r3_b(87) );
o_088: ex2_sh_lvl3(88) <= not( ex2_sh16_r1_b(88) and ex2_sh16_r2_b(88) and ex2_sh16_r3_b(88) );
o_089: ex2_sh_lvl3(89) <= not( ex2_sh16_r1_b(89) and ex2_sh16_r2_b(89) and ex2_sh16_r3_b(89) );
o_090: ex2_sh_lvl3(90) <= not( ex2_sh16_r1_b(90) and ex2_sh16_r2_b(90) and ex2_sh16_r3_b(90) );
o_091: ex2_sh_lvl3(91) <= not( ex2_sh16_r1_b(91) and ex2_sh16_r2_b(91) and ex2_sh16_r3_b(91) );
o_092: ex2_sh_lvl3(92) <= not( ex2_sh16_r1_b(92) and ex2_sh16_r2_b(92) and ex2_sh16_r3_b(92) );
o_093: ex2_sh_lvl3(93) <= not( ex2_sh16_r1_b(93) and ex2_sh16_r2_b(93) and ex2_sh16_r3_b(93) );
o_094: ex2_sh_lvl3(94) <= not( ex2_sh16_r1_b(94) and ex2_sh16_r2_b(94) and ex2_sh16_r3_b(94) );
o_095: ex2_sh_lvl3(95) <= not( ex2_sh16_r1_b(95) and ex2_sh16_r2_b(95) and ex2_sh16_r3_b(95) );
o_096: ex2_sh_lvl3(96) <= not( ex2_sh16_r1_b(96) and ex2_sh16_r2_b(96) and ex2_sh16_r3_b(96) );
o_097: ex2_sh_lvl3(97) <= not( ex2_sh16_r1_b(97) and ex2_sh16_r2_b(97) and ex2_sh16_r3_b(97) );
o_098: ex2_sh_lvl3(98) <= not( ex2_sh16_r1_b(98) and ex2_sh16_r2_b(98) and ex2_sh16_r3_b(98) );
o_099: ex2_sh_lvl3(99) <= not( ex2_sh16_r1_b(99) and ex2_sh16_r2_b(99) and ex2_sh16_r3_b(99) );
o_100: ex2_sh_lvl3(100) <= not( ex2_sh16_r1_b(100) and ex2_sh16_r2_b(100) and ex2_sh16_r3_b(100) );
o_101: ex2_sh_lvl3(101) <= not( ex2_sh16_r1_b(101) and ex2_sh16_r2_b(101) and ex2_sh16_r3_b(101) );
o_102: ex2_sh_lvl3(102) <= not( ex2_sh16_r1_b(102) and ex2_sh16_r2_b(102) and ex2_sh16_r3_b(102) );
o_103: ex2_sh_lvl3(103) <= not( ex2_sh16_r1_b(103) and ex2_sh16_r2_b(103) and ex2_sh16_r3_b(103) );
o_104: ex2_sh_lvl3(104) <= not( ex2_sh16_r1_b(104) and ex2_sh16_r2_b(104) and ex2_sh16_r3_b(104) );
o_105: ex2_sh_lvl3(105) <= not( ex2_sh16_r1_b(105) and ex2_sh16_r2_b(105) and ex2_sh16_r3_b(105) );
o_106: ex2_sh_lvl3(106) <= not( ex2_sh16_r1_b(106) and ex2_sh16_r2_b(106) and ex2_sh16_r3_b(106) );
o_107: ex2_sh_lvl3(107) <= not( ex2_sh16_r1_b(107) and ex2_sh16_r2_b(107) and ex2_sh16_r3_b(107) );
o_108: ex2_sh_lvl3(108) <= not( ex2_sh16_r1_b(108) and ex2_sh16_r2_b(108) and ex2_sh16_r3_b(108) );
o_109: ex2_sh_lvl3(109) <= not( ex2_sh16_r1_b(109) and ex2_sh16_r2_b(109) and ex2_sh16_r3_b(109) );
o_110: ex2_sh_lvl3(110) <= not( ex2_sh16_r1_b(110) and ex2_sh16_r2_b(110) and ex2_sh16_r3_b(110) );
o_111: ex2_sh_lvl3(111) <= not( ex2_sh16_r1_b(111) and ex2_sh16_r2_b(111) and ex2_sh16_r3_b(111) );
o_112: ex2_sh_lvl3(112) <= not( ex2_sh16_r1_b(112) and ex2_sh16_r2_b(112) and ex2_sh16_r3_b(112) );
o_113: ex2_sh_lvl3(113) <= not( ex2_sh16_r1_b(113) and ex2_sh16_r2_b(113) and ex2_sh16_r3_b(113) );
o_114: ex2_sh_lvl3(114) <= not( ex2_sh16_r1_b(114) and ex2_sh16_r2_b(114) and ex2_sh16_r3_b(114) );
o_115: ex2_sh_lvl3(115) <= not( ex2_sh16_r1_b(115) and ex2_sh16_r2_b(115) and ex2_sh16_r3_b(115) );
o_116: ex2_sh_lvl3(116) <= not( ex2_sh16_r1_b(116) and ex2_sh16_r2_b(116) and ex2_sh16_r3_b(116) );
o_117: ex2_sh_lvl3(117) <= not( ex2_sh16_r1_b(117) and ex2_sh16_r2_b(117) and ex2_sh16_r3_b(117) );
o_118: ex2_sh_lvl3(118) <= not( ex2_sh16_r1_b(118) and ex2_sh16_r2_b(118) and ex2_sh16_r3_b(118) );
o_119: ex2_sh_lvl3(119) <= not( ex2_sh16_r1_b(119) and ex2_sh16_r2_b(119) and ex2_sh16_r3_b(119) );
o_120: ex2_sh_lvl3(120) <= not( ex2_sh16_r1_b(120) and ex2_sh16_r2_b(120) and ex2_sh16_r3_b(120) );
o_121: ex2_sh_lvl3(121) <= not( ex2_sh16_r1_b(121) and ex2_sh16_r2_b(121) and ex2_sh16_r3_b(121) );
o_122: ex2_sh_lvl3(122) <= not( ex2_sh16_r1_b(122) and ex2_sh16_r2_b(122) and ex2_sh16_r3_b(122) );
o_123: ex2_sh_lvl3(123) <= not( ex2_sh16_r1_b(123) and ex2_sh16_r2_b(123) and ex2_sh16_r3_b(123) );
o_124: ex2_sh_lvl3(124) <= not( ex2_sh16_r1_b(124) and ex2_sh16_r2_b(124) and ex2_sh16_r3_b(124) );
o_125: ex2_sh_lvl3(125) <= not( ex2_sh16_r1_b(125) and ex2_sh16_r2_b(125) and ex2_sh16_r3_b(125) );
o_126: ex2_sh_lvl3(126) <= not( ex2_sh16_r1_b(126) and ex2_sh16_r2_b(126) and ex2_sh16_r3_b(126) );
o_127: ex2_sh_lvl3(127) <= not( ex2_sh16_r1_b(127) and ex2_sh16_r2_b(127) and ex2_sh16_r3_b(127) );
o_128: ex2_sh_lvl3(128) <= not( ex2_sh16_r1_b(128) and ex2_sh16_r2_b(128) and ex2_sh16_r3_b(128) );
o_129: ex2_sh_lvl3(129) <= not( ex2_sh16_r1_b(129) and ex2_sh16_r2_b(129) and ex2_sh16_r3_b(129) );
o_130: ex2_sh_lvl3(130) <= not( ex2_sh16_r1_b(130) and ex2_sh16_r2_b(130) and ex2_sh16_r3_b(130) );
o_131: ex2_sh_lvl3(131) <= not( ex2_sh16_r1_b(131) and ex2_sh16_r2_b(131) and ex2_sh16_r3_b(131) );
o_132: ex2_sh_lvl3(132) <= not( ex2_sh16_r1_b(132) and ex2_sh16_r2_b(132) and ex2_sh16_r3_b(132) );
o_133: ex2_sh_lvl3(133) <= not( ex2_sh16_r1_b(133) and ex2_sh16_r2_b(133) and ex2_sh16_r3_b(133) );
o_134: ex2_sh_lvl3(134) <= not( ex2_sh16_r1_b(134) and ex2_sh16_r2_b(134) and ex2_sh16_r3_b(134) );
o_135: ex2_sh_lvl3(135) <= not( ex2_sh16_r1_b(135) and ex2_sh16_r2_b(135) and ex2_sh16_r3_b(135) );
o_136: ex2_sh_lvl3(136) <= not( ex2_sh16_r1_b(136) and ex2_sh16_r2_b(136) and ex2_sh16_r3_b(136) );
o_137: ex2_sh_lvl3(137) <= not( ex2_sh16_r1_b(137) and ex2_sh16_r2_b(137) and ex2_sh16_r3_b(137) );
o_138: ex2_sh_lvl3(138) <= not( ex2_sh16_r1_b(138) and ex2_sh16_r2_b(138) and ex2_sh16_r3_b(138) );
o_139: ex2_sh_lvl3(139) <= not( ex2_sh16_r1_b(139) and ex2_sh16_r2_b(139) and ex2_sh16_r3_b(139) );
o_140: ex2_sh_lvl3(140) <= not( ex2_sh16_r1_b(140) and ex2_sh16_r2_b(140) and ex2_sh16_r3_b(140) );
o_141: ex2_sh_lvl3(141) <= not( ex2_sh16_r1_b(141) and ex2_sh16_r2_b(141) and ex2_sh16_r3_b(141) );
o_142: ex2_sh_lvl3(142) <= not( ex2_sh16_r1_b(142) and ex2_sh16_r2_b(142) and ex2_sh16_r3_b(142) );
o_143: ex2_sh_lvl3(143) <= not( ex2_sh16_r1_b(143) and ex2_sh16_r2_b(143) and ex2_sh16_r3_b(143) );
o_144: ex2_sh_lvl3(144) <= not( ex2_sh16_r1_b(144) and ex2_sh16_r2_b(144) and ex2_sh16_r3_b(144) );
o_145: ex2_sh_lvl3(145) <= not( ex2_sh16_r1_b(145) and ex2_sh16_r2_b(145) and ex2_sh16_r3_b(145) );
o_146: ex2_sh_lvl3(146) <= not( ex2_sh16_r1_b(146) and ex2_sh16_r2_b(146) and ex2_sh16_r3_b(146) );
o_147: ex2_sh_lvl3(147) <= not( ex2_sh16_r1_b(147) and ex2_sh16_r2_b(147) and ex2_sh16_r3_b(147) );
o_148: ex2_sh_lvl3(148) <= not( ex2_sh16_r1_b(148) and ex2_sh16_r2_b(148) and ex2_sh16_r3_b(148) );
o_149: ex2_sh_lvl3(149) <= not( ex2_sh16_r1_b(149) and ex2_sh16_r2_b(149) and ex2_sh16_r3_b(149) );
o_150: ex2_sh_lvl3(150) <= not( ex2_sh16_r1_b(150) and ex2_sh16_r2_b(150) and ex2_sh16_r3_b(150) );
o_151: ex2_sh_lvl3(151) <= not( ex2_sh16_r1_b(151) and ex2_sh16_r2_b(151) and ex2_sh16_r3_b(151) );
o_152: ex2_sh_lvl3(152) <= not( ex2_sh16_r1_b(152) and ex2_sh16_r2_b(152) and ex2_sh16_r3_b(152) );
o_153: ex2_sh_lvl3(153) <= not( ex2_sh16_r1_b(153) and ex2_sh16_r2_b(153) and ex2_sh16_r3_b(153) );
o_154: ex2_sh_lvl3(154) <= not( ex2_sh16_r1_b(154) and ex2_sh16_r2_b(154) and ex2_sh16_r3_b(154) );
o_155: ex2_sh_lvl3(155) <= not( ex2_sh16_r1_b(155) and ex2_sh16_r2_b(155) and ex2_sh16_r3_b(155) );
o_156: ex2_sh_lvl3(156) <= not( ex2_sh16_r1_b(156) and ex2_sh16_r2_b(156) and ex2_sh16_r3_b(156) );
o_157: ex2_sh_lvl3(157) <= not( ex2_sh16_r1_b(157) and ex2_sh16_r2_b(157) and ex2_sh16_r3_b(157) );
o_158: ex2_sh_lvl3(158) <= not( ex2_sh16_r1_b(158) and ex2_sh16_r2_b(158) and ex2_sh16_r3_b(158) );
o_159: ex2_sh_lvl3(159) <= not( ex2_sh16_r1_b(159) and ex2_sh16_r2_b(159) and ex2_sh16_r3_b(159) );
o_160: ex2_sh_lvl3(160) <= not( ex2_sh16_r1_b(160) and ex2_sh16_r2_b(160) and ex2_sh16_r3_b(160) );
o_161: ex2_sh_lvl3(161) <= not( ex2_sh16_r1_b(161) and ex2_sh16_r2_b(161) and ex2_sh16_r3_b(161) );
o_162: ex2_sh_lvl3(162) <= not( ex2_sh16_r1_b(162) and ex2_sh16_r2_b(162) and ex2_sh16_r3_b(162) );
rr3_162: ex2_sh16_r3_162_b <= not( (ex2_lvl3_shdcd160 and ex2_sh_lvl2(2) ) or (ex2_sel_special and ex2_special(162) ) );
rr3_163: ex2_sh16_r3_163_b <= not( ex2_lvl3_shdcd160 and ex2_sh_lvl2(3) );
rr2_162: ex2_sh16_r2_162_b <= not( (ex2_lvl3_shdcd128 and ex2_sh_lvl2(34) ) or (ex2_lvl3_shdcd144 and ex2_sh_lvl2(18) ) );
rr2_163: ex2_sh16_r2_163_b <= not( (ex2_lvl3_shdcd128 and ex2_sh_lvl2(35) ) or (ex2_lvl3_shdcd144 and ex2_sh_lvl2(19) ) );
rr1_162: ex2_sh16_r1_162_b <= not( (ex2_lvl3_shdcd096 and ex2_sh_lvl2(66) ) or (ex2_lvl3_shdcd112 and ex2_sh_lvl2(50) ) );
rr1_163: ex2_sh16_r1_163_b <= not( (ex2_lvl3_shdcd096 and ex2_sh_lvl2(67) ) or (ex2_lvl3_shdcd112 and ex2_sh_lvl2(51) ) );
ro_162: ex2_sh16_162 <= not( ex2_sh16_r1_162_b and ex2_sh16_r2_162_b and ex2_sh16_r3_162_b );
ro_163: ex2_sh16_163 <= not( ex2_sh16_r1_163_b and ex2_sh16_r2_163_b and ex2_sh16_r3_163_b );
end;