]> jspc29.x-matter.uni-frankfurt.de Git - trb3sc.git/commitdiff
Latest files to test triggerbox placement and timing triggerbox_testing
authorJan Michel <j.michel@gsi.de>
Tue, 28 Jun 2022 14:58:15 +0000 (16:58 +0200)
committerJan Michel <j.michel@gsi.de>
Tue, 28 Jun 2022 14:58:15 +0000 (16:58 +0200)
triggerbox/code/coincidence.vhd
triggerbox/code/groups.vhd
triggerbox/code/input_processor.vhd
triggerbox/code/multiplicity.vhd
triggerbox/code/multiplicity2.vhd [new file with mode: 0644]
triggerbox/code/scalers.vhd
triggerbox/code/triggerbox.vhd
triggerbox/nodelist_frankfurt.txt [new file with mode: 0644]
triggerbox/par.p2t
triggerbox/trb3sc_triggerbox.lpf

index b2f223d07fbd1db87a295a65226b4b34b292f7ac..dbd277bc835efb295daafc0507656f92a4a7e88d 100644 (file)
@@ -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);
index 848013f36347a8ed187cd6bdf69e7cf038e3d8ad..09fda55552f63536ec389ca3bdfa0f7dd311b457 100644 (file)
@@ -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
 
 
index 3beeefff6e322c69f45ae288b9fea97a8b0252bd..2a0d0ee6ac9b08d0bb63f10a2bf3e51326210bcb 100644 (file)
@@ -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;
index ea43b16819f229c7d9176b25e7621793202b45a4..e52cfaf4638804d2acaf37942a656faf4916ae9d 100644 (file)
@@ -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 (file)
index 0000000..e1995f7
--- /dev/null
@@ -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);
index 3d03a2f05c67bd371b64653baaf1c2022fbc842d..4b4238ed6a9c9966fc60557289a8bf9dfc3717ca 100644 (file)
@@ -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 =>
       
index 93931d548de74705fd5030954d94e76c9c3aeb84..bb1d1f8fb0cbd218af2239ff19662b97bc35124b 100644 (file)
@@ -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 (file)
index 0000000..2881e0a
--- /dev/null
@@ -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
index 10e6ccdb851174d2943d0c91b30d1f17bae39b40..4eb13914fbc9d7791bd1c861f73a7d77053a9436 100644 (file)
@@ -4,7 +4,7 @@
 #-n 1
 -y
 -s 12
--t 26
+-t 32
 -c 1
 -e 5
 #-g guidefile.ncd
index 9dcbb50fbf2b6b18c487071a36c800e73ef90238..821135a2eaba43ffb1cf804be45f6ff41d9098bf 100644 (file)
@@ -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;