From 8023a38b01efec813204210befef50efdd05df3a Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Tue, 28 Jun 2022 16:58:15 +0200 Subject: [PATCH] Latest files to test triggerbox placement and timing --- triggerbox/code/coincidence.vhd | 3 + triggerbox/code/groups.vhd | 4 +- triggerbox/code/input_processor.vhd | 15 +-- triggerbox/code/multiplicity.vhd | 3 +- triggerbox/code/multiplicity2.vhd | 112 +++++++++++++++++++ triggerbox/code/scalers.vhd | 2 +- triggerbox/code/triggerbox.vhd | 8 +- triggerbox/nodelist_frankfurt.txt | 14 +++ triggerbox/par.p2t | 2 +- triggerbox/trb3sc_triggerbox.lpf | 160 ++++++++++++++-------------- 10 files changed, 228 insertions(+), 95 deletions(-) create mode 100644 triggerbox/code/multiplicity2.vhd create mode 100644 triggerbox/nodelist_frankfurt.txt diff --git a/triggerbox/code/coincidence.vhd b/triggerbox/code/coincidence.vhd index b2f223d..dbd277b 100644 --- a/triggerbox/code/coincidence.vhd +++ b/triggerbox/code/coincidence.vhd @@ -43,6 +43,9 @@ signal reg_out : std_logic; attribute syn_keep of reg_inp : signal is true; attribute syn_keep of reg_out : signal is true; + attribute syn_maxfan : integer; + attribute syn_maxfan of reg_inp : signal is 10000; + -- (1 or 2) and 3 begin reg_inp <= INP when rising_edge(CLK); diff --git a/triggerbox/code/groups.vhd b/triggerbox/code/groups.vhd index 848013f..09fda55 100644 --- a/triggerbox/code/groups.vhd +++ b/triggerbox/code/groups.vhd @@ -30,7 +30,9 @@ attribute BBOX: string; attribute HGROUP of arch : architecture is "groups"; attribute BBOX of arch: architecture is "5,5"; - + attribute syn_maxfan : integer; + attribute syn_maxfan of OUTP : signal is 10000; + begin diff --git a/triggerbox/code/input_processor.vhd b/triggerbox/code/input_processor.vhd index 3beeeff..2a0d0ee 100644 --- a/triggerbox/code/input_processor.vhd +++ b/triggerbox/code/input_processor.vhd @@ -27,8 +27,8 @@ attribute syn_hier : string; attribute HGROUP: string; attribute BBOX: string; -attribute HGROUP of arch : architecture is "input_proc"; -attribute BBOX of arch: architecture is "4,16"; +--attribute HGROUP of arch : architecture is "input_proc"; +--attribute BBOX of arch: architecture is "4,16"; signal reg_inp, gated_inp, edged_inp, stretched_inp, reg_stretched_inp, delayed_inp, downscaled_inp : std_logic; signal temp_edged_inp, temp_downscaled_inp, temp_stretched_inp, temp_delayed_inp : std_logic; @@ -50,8 +50,9 @@ signal reg_outp : std_logic; attribute syn_keep of reg_inp : signal is true; attribute syn_maxfan : integer; --- attribute syn_maxfan of reg_outp : signal is 10; - + attribute syn_maxfan of reg_outp : signal is 1; + attribute syn_maxfan of delayed_inp : signal is 10000; + begin reg_tick_us <= TICK_US when rising_edge(CLK); @@ -68,8 +69,8 @@ begin -- Gate / Invert -------------------------------- - gated_inp <= reg_INP when CONF.enable = '1' and CONF.invert = '0' else - not reg_INP when CONF.enable = '1' and CONF.invert = '1' else + gated_inp <= reg_inp when CONF.enable = '1' and CONF.invert = '0' else + not reg_inp when CONF.enable = '1' and CONF.invert = '1' else '0'; reg_gated_inp <= gated_inp when rising_edge(CLK); @@ -169,6 +170,6 @@ begin -------------------------------- reg_outp <= delayed_inp when rising_edge(CLK); - OUTP <= reg_outp; + OUTP <= reg_outp; --reg_outp; end architecture; diff --git a/triggerbox/code/multiplicity.vhd b/triggerbox/code/multiplicity.vhd index ea43b16..e52cfaf 100644 --- a/triggerbox/code/multiplicity.vhd +++ b/triggerbox/code/multiplicity.vhd @@ -48,7 +48,8 @@ signal result : unsigned(4 downto 0); attribute syn_maxfan : integer; -- attribute syn_maxfan of out_reg : signal is 1; - attribute syn_maxfan of mult_gated : signal is 1; + attribute syn_maxfan of mult_gated : signal is 10000; + attribute syn_maxfan of out_reg : signal is 10000; attribute syn_maxfan of current_multiplicity : signal is 1; begin reg_inp <= INP; diff --git a/triggerbox/code/multiplicity2.vhd b/triggerbox/code/multiplicity2.vhd new file mode 100644 index 0000000..e1995f7 --- /dev/null +++ b/triggerbox/code/multiplicity2.vhd @@ -0,0 +1,112 @@ +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +library work; + use work.trb_net_std.all; + use work.config.all; + use work.triggerbox_pkg.all; + + +entity multiplicity is + generic ( + NUM_INPUTS : integer range 1 to 96 := 80 + ); + port ( + CLK : in std_logic; + INP : in std_logic_vector(NUM_INPUTS-1 downto 0); + OUTP : out std_logic; + CONF : in CONF_multiplicity_t + ); +end entity; + + +architecture arch of multiplicity is + +attribute syn_hier : string; +attribute syn_hier of arch : architecture is "fixed"; + +attribute HGROUP: string; +attribute HGROUP of arch : architecture is "mult_proc"; +attribute BBOX: string; +attribute BBOX of arch: architecture is "8,7"; + +signal reg_inp : std_logic_vector(INP'range); +signal mult_gated : std_logic_vector(95 downto 0) := (others => '0'); +signal out_reg : std_logic; + + attribute syn_preserve : boolean; + attribute syn_preserve of reg_inp : signal is true; + attribute syn_preserve of out_reg : signal is true; + + attribute syn_keep : boolean; + attribute syn_keep of reg_inp : signal is true; + attribute syn_keep of out_reg : signal is true; + + attribute syn_maxfan : integer; + attribute syn_maxfan of out_reg : signal is 1; + +signal r_0_1, r_0_2 : std_logic_vector(41 downto 0) := (others => '0'); +signal r_1_1, r_1_2_A, r_1_2_B, r_1_4 : std_logic_vector(13 downto 0) := (others => '0'); +type mult_arr is array(0 to 5) of unsigned(6 downto 0); +signal current_multiplicity : mult_arr; + +begin + reg_inp <= INP when rising_edge(CLK); + mult_gated(INP'range) <= reg_INP and CONF.enable(INP'range); + + gen_first : for i in 0 to 39 generate + r_0_1(i) <= mult_gated(i*2) xor mult_gated(i*2+1); + r_0_2(i) <= mult_gated(i*2) and mult_gated(i*2+1); + end generate; + + gen_second : for i in 0 to 13 generate + r_1_1(i) <= xor r_0_1(i*3+2 downto i*3+0); + r_1_2_A(i) <= (or r_0_1(i*3+2 downto i*3+0) and not (xor r_0_1(i*3+2 downto i*3+0))) + or and r_0_1(i*3+2 downto i*3+0); + + r_1_2_B(i) <= xor r_0_2(i*3+2 downto i*3+0); + r_1_4(i) <= (or r_0_2(i*3+2 downto i*3+0) and not (xor r_0_2(i*3+2 downto i*3+0))) + or and r_0_2(i*3+2 downto i*3+0); + end generate; + + + + PROC_MULT : process + variable a,b,c,d : integer range 0 to 13 := 0; + begin + wait until rising_edge(CLK); + + + for i in 0 to 13 loop + if r_1_1(i) = '1' then a := a + 1; end if; + if r_1_2_A(i) = '1' then b := b + 1; end if; + if r_1_2_B(i) = '1' then c := c + 1; end if; + if r_1_4(i) = '1' then d := d + 1; end if; + end loop; + current_multiplicity(0) <= to_unsigned(a,7); + current_multiplicity(1) <= to_unsigned(b,7); + current_multiplicity(2) <= to_unsigned(c,7); + current_multiplicity(3) <= to_unsigned(d,7); + + if (current_multiplicity(1)*2+current_multiplicity(2)*2)+(current_multiplicity(0)*1+current_multiplicity(3)*4) >= CONF.multiplicity then + out_reg <= '1'; + else + out_reg <= '0'; + end if; + + end process; + + + + OUTP <= out_reg; + +end architecture; +-- +-- type r2_arr is array(0 to 23) of integer range 0 to 7; +-- signal r_2 : arr_1; +-- +-- +-- type r1_arr is array(0 to 23) of integer range 0 to 3; +-- signal r_1_ones,r_1_twos : arr_1; +-- signal r_0_ones, r_0_twos : std_logic_vector(47 downto 0); diff --git a/triggerbox/code/scalers.vhd b/triggerbox/code/scalers.vhd index 3d03a2f..4b4238e 100644 --- a/triggerbox/code/scalers.vhd +++ b/triggerbox/code/scalers.vhd @@ -187,7 +187,7 @@ THE_RDO : process begin state <= WRITE; ram_write <= '1'; result(27 downto 0) <= std_logic_vector(unsigned(rdo_muxreg(27 downto 0)) - unsigned(ram_dout(27 downto 0))); - result(31) <= reg4_inp(to_integer(unsigned(BUS_RX.addr(8 downto 0)))); + result(31) <= reg4_inp(to_integer(unsigned(BUS_RX.addr(8 downto 0)))); --BUG addr! when WRITE => diff --git a/triggerbox/code/triggerbox.vhd b/triggerbox/code/triggerbox.vhd index 93931d5..bb1d1f8 100644 --- a/triggerbox/code/triggerbox.vhd +++ b/triggerbox/code/triggerbox.vhd @@ -12,10 +12,10 @@ entity triggerbox is NUM_PHYS_INPUTS : integer range 32 to 128 := 96; NUM_INPUTS : integer range 16 to 128 := 48; NUM_VIRTUALIN : integer range 16 to 32 := 32; - NUM_OUTPUTS : integer range 1 to 16 := 8; NUM_GROUPS : integer range 16 to 32 := 16; NUM_COINC : integer range 16 to 32 := 16; - NUM_MULT : integer range 0 to 32 := 8 + NUM_MULT : integer range 0 to 32 := 8; + NUM_OUTPUTS : integer range 1 to 16 := 8 ); port ( CLK_SYS : in std_logic; @@ -118,7 +118,7 @@ signal tick_us, tick_ms : std_logic; -- attribute syn_maxfan of list_of_inp : signal is 16; attribute syn_maxfan of reg_processed_inp : signal is 1; - attribute syn_maxfan of temp_processed_inp : signal is 1; + --attribute syn_maxfan of temp_processed_inp : signal is 1; attribute syn_maxfan of processed_inp : signal is 1; attribute syn_maxfan of reg_groups : signal is 1; attribute syn_maxfan of reg_multis : signal is 1; @@ -188,7 +188,7 @@ gen_input_processor : for i in 0 to NUM_INPUTS+NUM_VIRTUALIN-1 generate ); end generate; -temp_processed_inp <= processed_inp when rising_edge(CLK_FULL); +temp_processed_inp <= processed_inp;-- when rising_edge(CLK_FULL); reg_processed_inp <= temp_processed_inp when rising_edge(CLK_FULL); diff --git a/triggerbox/nodelist_frankfurt.txt b/triggerbox/nodelist_frankfurt.txt new file mode 100644 index 0000000..2881e0a --- /dev/null +++ b/triggerbox/nodelist_frankfurt.txt @@ -0,0 +1,14 @@ +// nodes file for parallel place&route + + +[localhost] +SYSTEM = linux +CORENUM = 8 +ENV = /d/jspc29/lattice/311_settings.sh +WORKDIR = /d/jspc22/trb/git/trb3sc/triggerbox/workdir + +[jspc37] +SYSTEM = linux +CORENUM = 6 +ENV = /d/jspc29/lattice/311_settings.sh +WORKDIR = /d/jspc22/trb/git/trb3sc/triggerbox/workdir diff --git a/triggerbox/par.p2t b/triggerbox/par.p2t index 10e6ccd..4eb1391 100644 --- a/triggerbox/par.p2t +++ b/triggerbox/par.p2t @@ -4,7 +4,7 @@ #-n 1 -y -s 12 --t 26 +-t 32 -c 1 -e 5 #-g guidefile.ncd diff --git a/triggerbox/trb3sc_triggerbox.lpf b/triggerbox/trb3sc_triggerbox.lpf index 9dcbb50..821135a 100644 --- a/triggerbox/trb3sc_triggerbox.lpf +++ b/triggerbox/trb3sc_triggerbox.lpf @@ -93,85 +93,85 @@ LOCATE UGROUP "THE_BOX/gen_monitors.14.THE_MONITOR/monitor_output" REGION "MONIT LOCATE UGROUP "THE_BOX/gen_monitors.15.THE_MONITOR/monitor_output" REGION "MONITOR_region"; -LOCATE UGROUP "THE_BOX/gen_input_processor.0.THE_INP_PROC/input_proc" SITE R71C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.1.THE_INP_PROC/input_proc" SITE R71C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.2.THE_INP_PROC/input_proc" SITE R71C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.3.THE_INP_PROC/input_proc" SITE R71C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.4.THE_INP_PROC/input_proc" SITE R71C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.5.THE_INP_PROC/input_proc" SITE R71C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.6.THE_INP_PROC/input_proc" SITE R75C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.7.THE_INP_PROC/input_proc" SITE R75C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.8.THE_INP_PROC/input_proc" SITE R75C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.9.THE_INP_PROC/input_proc" SITE R75C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.10.THE_INP_PROC/input_proc" SITE R75C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.11.THE_INP_PROC/input_proc" SITE R75C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.12.THE_INP_PROC/input_proc" SITE R17C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.13.THE_INP_PROC/input_proc" SITE R62C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.14.THE_INP_PROC/input_proc" SITE R35C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.15.THE_INP_PROC/input_proc" SITE R44C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.16.THE_INP_PROC/input_proc" SITE R17C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.17.THE_INP_PROC/input_proc" SITE R17C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.18.THE_INP_PROC/input_proc" SITE R17C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.19.THE_INP_PROC/input_proc" SITE R17C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.20.THE_INP_PROC/input_proc" SITE R17C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.21.THE_INP_PROC/input_proc" SITE R21C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.22.THE_INP_PROC/input_proc" SITE R66C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.23.THE_INP_PROC/input_proc" SITE R39C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.24.THE_INP_PROC/input_proc" SITE R48C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.25.THE_INP_PROC/input_proc" SITE R21C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.26.THE_INP_PROC/input_proc" SITE R21C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.27.THE_INP_PROC/input_proc" SITE R21C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.28.THE_INP_PROC/input_proc" SITE R21C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.29.THE_INP_PROC/input_proc" SITE R21C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.30.THE_INP_PROC/input_proc" SITE R26C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.31.THE_INP_PROC/input_proc" SITE R26C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.32.THE_INP_PROC/input_proc" SITE R44C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.33.THE_INP_PROC/input_proc" SITE R26C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.34.THE_INP_PROC/input_proc" SITE R44C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.35.THE_INP_PROC/input_proc" SITE R26C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.36.THE_INP_PROC/input_proc" SITE R26C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.37.THE_INP_PROC/input_proc" SITE R26C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.38.THE_INP_PROC/input_proc" SITE R26C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.39.THE_INP_PROC/input_proc" SITE R26C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.40.THE_INP_PROC/input_proc" SITE R30C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.41.THE_INP_PROC/input_proc" SITE R30C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.42.THE_INP_PROC/input_proc" SITE R48C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.43.THE_INP_PROC/input_proc" SITE R30C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.44.THE_INP_PROC/input_proc" SITE R48C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.45.THE_INP_PROC/input_proc" SITE R30C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.46.THE_INP_PROC/input_proc" SITE R30C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.47.THE_INP_PROC/input_proc" SITE R30C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.48.THE_INP_PROC/input_proc" SITE R30C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.49.THE_INP_PROC/input_proc" SITE R30C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.50.THE_INP_PROC/input_proc" SITE R35C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.51.THE_INP_PROC/input_proc" SITE R35C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.52.THE_INP_PROC/input_proc" SITE R53C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.53.THE_INP_PROC/input_proc" SITE R35C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.54.THE_INP_PROC/input_proc" SITE R39C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.55.THE_INP_PROC/input_proc" SITE R39C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.56.THE_INP_PROC/input_proc" SITE R57C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.57.THE_INP_PROC/input_proc" SITE R39C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.58.THE_INP_PROC/input_proc" SITE R44C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.59.THE_INP_PROC/input_proc" SITE R48C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.60.THE_INP_PROC/input_proc" SITE R53C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.61.THE_INP_PROC/input_proc" SITE R57C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.62.THE_INP_PROC/input_proc" SITE R80C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.63.THE_INP_PROC/input_proc" SITE R62C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.64.THE_INP_PROC/input_proc" SITE R62C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.65.THE_INP_PROC/input_proc" SITE R53C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.66.THE_INP_PROC/input_proc" SITE R80C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.67.THE_INP_PROC/input_proc" SITE R80C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.68.THE_INP_PROC/input_proc" SITE R80C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.69.THE_INP_PROC/input_proc" SITE R80C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.70.THE_INP_PROC/input_proc" SITE R80C118D; -LOCATE UGROUP "THE_BOX/gen_input_processor.71.THE_INP_PROC/input_proc" SITE R84C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.72.THE_INP_PROC/input_proc" SITE R66C134D; -LOCATE UGROUP "THE_BOX/gen_input_processor.73.THE_INP_PROC/input_proc" SITE R66C150D; -LOCATE UGROUP "THE_BOX/gen_input_processor.74.THE_INP_PROC/input_proc" SITE R57C38D; -LOCATE UGROUP "THE_BOX/gen_input_processor.75.THE_INP_PROC/input_proc" SITE R84C54D; -LOCATE UGROUP "THE_BOX/gen_input_processor.76.THE_INP_PROC/input_proc" SITE R84C70D; -LOCATE UGROUP "THE_BOX/gen_input_processor.77.THE_INP_PROC/input_proc" SITE R84C86D; -LOCATE UGROUP "THE_BOX/gen_input_processor.78.THE_INP_PROC/input_proc" SITE R84C102D; -LOCATE UGROUP "THE_BOX/gen_input_processor.79.THE_INP_PROC/input_proc" SITE R84C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.0.THE_INP_PROC/input_proc" SITE R17C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.1.THE_INP_PROC/input_proc" SITE R17C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.2.THE_INP_PROC/input_proc" SITE R17C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.3.THE_INP_PROC/input_proc" SITE R17C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.4.THE_INP_PROC/input_proc" SITE R17C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.5.THE_INP_PROC/input_proc" SITE R17C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.6.THE_INP_PROC/input_proc" SITE R21C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.7.THE_INP_PROC/input_proc" SITE R21C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.8.THE_INP_PROC/input_proc" SITE R21C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.9.THE_INP_PROC/input_proc" SITE R21C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.10.THE_INP_PROC/input_proc" SITE R21C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.11.THE_INP_PROC/input_proc" SITE R21C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.12.THE_INP_PROC/input_proc" SITE R26C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.13.THE_INP_PROC/input_proc" SITE R26C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.14.THE_INP_PROC/input_proc" SITE R26C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.15.THE_INP_PROC/input_proc" SITE R26C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.16.THE_INP_PROC/input_proc" SITE R26C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.17.THE_INP_PROC/input_proc" SITE R26C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.18.THE_INP_PROC/input_proc" SITE R26C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.19.THE_INP_PROC/input_proc" SITE R26C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.20.THE_INP_PROC/input_proc" SITE R30C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.21.THE_INP_PROC/input_proc" SITE R30C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.22.THE_INP_PROC/input_proc" SITE R30C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.23.THE_INP_PROC/input_proc" SITE R30C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.24.THE_INP_PROC/input_proc" SITE R30C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.25.THE_INP_PROC/input_proc" SITE R30C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.26.THE_INP_PROC/input_proc" SITE R30C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.27.THE_INP_PROC/input_proc" SITE R30C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.28.THE_INP_PROC/input_proc" SITE R35C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.29.THE_INP_PROC/input_proc" SITE R35C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.30.THE_INP_PROC/input_proc" SITE R35C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.31.THE_INP_PROC/input_proc" SITE R35C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.32.THE_INP_PROC/input_proc" SITE R39C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.33.THE_INP_PROC/input_proc" SITE R39C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.34.THE_INP_PROC/input_proc" SITE R39C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.35.THE_INP_PROC/input_proc" SITE R39C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.36.THE_INP_PROC/input_proc" SITE R44C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.37.THE_INP_PROC/input_proc" SITE R44C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.38.THE_INP_PROC/input_proc" SITE R44C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.39.THE_INP_PROC/input_proc" SITE R44C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.40.THE_INP_PROC/input_proc" SITE R48C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.41.THE_INP_PROC/input_proc" SITE R48C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.42.THE_INP_PROC/input_proc" SITE R48C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.43.THE_INP_PROC/input_proc" SITE R48C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.44.THE_INP_PROC/input_proc" SITE R53C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.45.THE_INP_PROC/input_proc" SITE R57C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.46.THE_INP_PROC/input_proc" SITE R53C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.47.THE_INP_PROC/input_proc" SITE R53C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.48.THE_INP_PROC/input_proc" SITE R57C38D; +LOCATE UGROUP "THE_BOX/gen_input_processor.49.THE_INP_PROC/input_proc" SITE R57C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.50.THE_INP_PROC/input_proc" SITE R62C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.51.THE_INP_PROC/input_proc" SITE R62C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.52.THE_INP_PROC/input_proc" SITE R66C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.53.THE_INP_PROC/input_proc" SITE R66C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.54.THE_INP_PROC/input_proc" SITE R62C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.55.THE_INP_PROC/input_proc" SITE R66C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.56.THE_INP_PROC/input_proc" SITE R71C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.57.THE_INP_PROC/input_proc" SITE R71C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.58.THE_INP_PROC/input_proc" SITE R71C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.59.THE_INP_PROC/input_proc" SITE R71C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.60.THE_INP_PROC/input_proc" SITE R71C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.61.THE_INP_PROC/input_proc" SITE R71C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.62.THE_INP_PROC/input_proc" SITE R75C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.63.THE_INP_PROC/input_proc" SITE R75C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.64.THE_INP_PROC/input_proc" SITE R75C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.65.THE_INP_PROC/input_proc" SITE R75C150D; +LOCATE UGROUP "THE_BOX/gen_input_processor.66.THE_INP_PROC/input_proc" SITE R75C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.67.THE_INP_PROC/input_proc" SITE R75C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.68.THE_INP_PROC/input_proc" SITE R80C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.69.THE_INP_PROC/input_proc" SITE R80C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.70.THE_INP_PROC/input_proc" SITE R80C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.71.THE_INP_PROC/input_proc" SITE R80C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.72.THE_INP_PROC/input_proc" SITE R80C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.73.THE_INP_PROC/input_proc" SITE R80C134D; +LOCATE UGROUP "THE_BOX/gen_input_processor.74.THE_INP_PROC/input_proc" SITE R84C54D; +LOCATE UGROUP "THE_BOX/gen_input_processor.75.THE_INP_PROC/input_proc" SITE R84C70D; +LOCATE UGROUP "THE_BOX/gen_input_processor.76.THE_INP_PROC/input_proc" SITE R84C86D; +LOCATE UGROUP "THE_BOX/gen_input_processor.77.THE_INP_PROC/input_proc" SITE R84C102D; +LOCATE UGROUP "THE_BOX/gen_input_processor.78.THE_INP_PROC/input_proc" SITE R84C118D; +LOCATE UGROUP "THE_BOX/gen_input_processor.79.THE_INP_PROC/input_proc" SITE R84C134D; -- 2.43.0