]> jspc29.x-matter.uni-frankfurt.de Git - trb3.git/commitdiff
Changes in the code and constraint to meet the timing
authorCahit <c.ugur@gsi.de>
Fri, 28 Feb 2014 19:29:26 +0000 (20:29 +0100)
committerCahit <c.ugur@gsi.de>
Fri, 28 Feb 2014 19:29:26 +0000 (20:29 +0100)
32PinAddOn/compile_periph_gsi.pl
32PinAddOn/nodes_lxhadeb07.txt
32PinAddOn/trb3_periph_32PinAddOn.vhd
tdc_releases/tdc_v1.6/Readout.vhd
tdc_releases/tdc_v1.6/TDC.vhd
tdc_releases/tdc_v1.6/tdc_constraints.lpf
tdc_releases/tdc_v1.6/tdc_constraints_2.lpf [new file with mode: 0644]
tdc_releases/tdc_v1.6/trbnet_constraints.lpf

index 5394897ed2268b8360213d3a94b992bd7e83b94f..ea839b7dd80ccca452a215b127f2f425f236e7f1 100755 (executable)
@@ -125,7 +125,7 @@ system("env| grep LM_");
 my $r     = "";
 my $c     = "";
 my @a     = ();
-my $tpmap = "";
+my $tpmap = $TOPNAME . "_map" ;
 
 if($syn==1 || $all==1){
     $c="$synplify_path/bin/synplify_premier_dp -batch $TOPNAME.prj";
@@ -164,8 +164,6 @@ if($map==1 || $all==1){
     $c=qq|ngdbuild -a $FAMILYNAME -d $DEVICENAME -p "$lattice_path/ispfpga/ep5c00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|;
     execute($c);
     
-    $tpmap = $TOPNAME . "_map" ;
-    
     $c=qq|map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -pr "$TOPNAME.prf" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|;
     execute($c);
 
index ece0f5929bc9a366d1ca2b8b6a224dab3fa79699..9e579e9f09bc0a07128843cd6932f7804500301e 100644 (file)
@@ -2,7 +2,7 @@
 
 [lxhadeb07]
 SYSTEM = linux
-CORENUM = 32
+CORENUM = 28
 //ENV = /u/cugur/depc363/bin/diamond_setup_x64.sh
 ENV = /u/cugur/depc363/bin/diamond_setup.sh
 //WORKDIR = /u/cugur/depc363/Projects/TDC_on_TRB3/trb3/32PinAddOn/diamond/trb3_periph_32PinAddOn
index ad6f64306a852d60dac4c057bad19455cc4098ce..fdb93636f18f029f734914405b60de70886bb41c 100644 (file)
@@ -782,7 +782,7 @@ begin
   THE_TDC : TDC
     generic map (
       CHANNEL_NUMBER => NUM_TDC_CHANNELS,   -- Number of TDC channels
-      STATUS_REG_NR  => 20,             -- Number of status regs
+      STATUS_REG_NR  => 19,             -- Number of status regs
       CONTROL_REG_NR => 6,  -- Number of control regs - higher than 8 check tdc_ctrl_addr
       TDC_VERSION    => x"160",         -- TDC version number
       DEBUG          => c_YES,
index 4d3da45a98e1827204f8bf91c53ff9f779c3f1d9..c11699f9888042eef9d1de0b3fc78e93e48fd33d 100644 (file)
@@ -5,7 +5,7 @@
 -- File       : Readout.vhd
 -- Author     : cugur@gsi.de
 -- Created    : 2012-10-25
--- Last update: 2014-01-29
+-- Last update: 2014-02-28
 -------------------------------------------------------------------------------
 -- Description: 
 -------------------------------------------------------------------------------
@@ -180,7 +180,7 @@ architecture behavioral of Readout is
   signal fifo_nr_wr_fsm          : integer range 0 to CHANNEL_NUMBER := 0;
   signal buf_delay_fsm           : integer range 0 to 31             := 0;
   signal buf_delay_i             : integer range 0 to 31             := 0;
-  signal start_ch_fsm            : integer range 0 to CHANNEL_NUMBER := 0;
+--  signal start_ch_fsm            : integer range 0 to CHANNEL_NUMBER := 0;
 --  signal wr_trailer_fsm          : std_logic;
   signal idle_fsm                : std_logic;
   signal readout_fsm             : std_logic;
@@ -206,11 +206,11 @@ architecture behavioral of Readout is
   signal wr_status               : std_logic;
 --  signal wr_trailer              : std_logic;
   signal stop_status_i           : std_logic;
-  signal start_ch_i              : integer range 0 to CHANNEL_NUMBER := 0;
-  signal start_ch_reg            : integer range 0 to CHANNEL_NUMBER := 0;
-  signal start_ch_2reg           : integer range 0 to CHANNEL_NUMBER := 0;
-  signal start_ch_3reg           : integer range 0 to CHANNEL_NUMBER := 0;
-  signal start_ch_4reg           : integer range 0 to CHANNEL_NUMBER := 0;
+  --signal start_ch_i              : integer range 0 to CHANNEL_NUMBER := 0;
+  --signal start_ch_reg            : integer range 0 to CHANNEL_NUMBER := 0;
+  --signal start_ch_2reg           : integer range 0 to CHANNEL_NUMBER := 0;
+  --signal start_ch_3reg           : integer range 0 to CHANNEL_NUMBER := 0;
+  --signal start_ch_4reg           : integer range 0 to CHANNEL_NUMBER := 0;
   -- to endpoint
   signal data_out_reg            : std_logic_vector(31 downto 0);
   signal data_wr_reg             : std_logic;
@@ -359,7 +359,7 @@ begin  -- behavioral
     if rising_edge(CLK_100) then
       if RESET_100 = '1' then
         RD_CURRENT <= IDLE;
-        start_ch_i <= 0;
+--        start_ch_i <= 0;
         fifo_nr_rd <= 0;
       else
         RD_CURRENT       <= RD_NEXT;
@@ -368,7 +368,7 @@ begin  -- behavioral
         wr_status        <= wr_status_fsm;
         data_finished    <= data_finished_fsm;
         trig_release_reg <= trig_release_fsm;
-        start_ch_i       <= start_ch_fsm;
+--        start_ch_i       <= start_ch_fsm;
         buf_delay_i      <= buf_delay_fsm;
         wrong_readout_up <= wrong_readout_fsm;
         idle_time_up     <= idle_fsm;
@@ -384,14 +384,14 @@ begin  -- behavioral
   RD_FSM_PROC : process (RD_CURRENT, VALID_TIMING_TRG_IN, VALID_NOTIMING_TRG_IN, TRG_DATA_VALID_IN,
                          INVALID_TRG_IN, TMGTRG_TIMEOUT_IN, TRG_TYPE_IN, finished_i,
                          SPURIOUS_TRG_IN, stop_status_i, DEBUG_MODE_EN_IN, fifo_nr_rd,
-                         TRIG_WIN_END_RDO_IN, buf_delay_i, CH_EMPTY_IN, start_ch_i)
+                         TRIG_WIN_END_RDO_IN, buf_delay_i, CH_EMPTY_IN)--, start_ch_i)
   begin
 
     rd_en_fsm         <= (others => '0');
     wr_header_fsm     <= '0';
     data_finished_fsm <= '0';
     trig_release_fsm  <= '0';
-    start_ch_fsm      <= start_ch_i;
+--    start_ch_fsm      <= start_ch_i;
     wrong_readout_fsm <= '0';
     idle_fsm          <= '0';
     readout_fsm       <= '0';
@@ -423,7 +423,7 @@ begin  -- behavioral
           RD_NEXT           <= SEND_TRIG_RELEASE_A;
           data_finished_fsm <= '1';
         end if;
-        start_ch_fsm     <= 0;
+--        start_ch_fsm     <= 0;
         idle_fsm         <= '1';
         rd_fsm_debug_fsm <= x"1";
         
@@ -456,7 +456,7 @@ begin  -- behavioral
           end if;
         else                            -- go to the next channel
           fifo_nr_rd_fsm <= fifo_nr_rd + 1;
-          start_ch_fsm   <= start_ch_i + 1;
+--          start_ch_fsm   <= start_ch_i + 1;
         end if;
         readout_fsm      <= '1';
         rd_fsm_debug_fsm <= x"4";
@@ -523,10 +523,10 @@ begin  -- behavioral
     end case;
   end process RD_FSM_PROC;
 
-  start_ch_reg  <= start_ch_i    when rising_edge(CLK_100);
-  start_ch_2reg <= start_ch_reg  when rising_edge(CLK_100);
-  start_ch_3reg <= start_ch_2reg when rising_edge(CLK_100);
-  start_ch_4reg <= start_ch_3reg when rising_edge(CLK_100);
+  --start_ch_reg  <= start_ch_i    when rising_edge(CLK_100);
+  --start_ch_2reg <= start_ch_reg  when rising_edge(CLK_100);
+  --start_ch_3reg <= start_ch_2reg when rising_edge(CLK_100);
+  --start_ch_4reg <= start_ch_3reg when rising_edge(CLK_100);
 
   --purpose: FSM for writing data to endpoint buffer
   WR_FSM_CLK : process (CLK_100)
@@ -547,7 +547,7 @@ begin  -- behavioral
   end process WR_FSM_CLK;
 
   WR_FSM : process (WR_CURRENT, wr_number, fifo_nr_wr, DATA_LIMIT_IN, start_write, CH_DATA_VALID_IN,
-                    start_ch_4reg, ch_data_2reg)
+                    ch_data_2reg)--, start_ch_4reg)
 
   begin
 
@@ -560,7 +560,7 @@ begin  -- behavioral
     case (WR_CURRENT) is
       when IDLE =>
         if start_write = '1' then
-          fifo_nr_wr_fsm <= start_ch_4reg;
+          fifo_nr_wr_fsm <= 0;--start_ch_4reg;
           WR_NEXT        <= WR_CH;
         end if;
         wr_fsm_debug_fsm <= x"1";
@@ -929,28 +929,6 @@ begin  -- behavioral
     end if;
   end process Statistics_Readout_Wait_Time;
 
--- Empty channel number
-  Statistics_Empty_Channel_Number : process (CLK_100)
-    variable i : integer := CHANNEL_NUMBER;
-  begin
-    if rising_edge(CLK_100) then
-      if RESET_COUNTERS = '1' then
-        total_empty_channel <= (others => '0');
-        i                   := CHANNEL_NUMBER;
-      elsif trig_win_end_100_p = '1' then
-        empty_channels(CHANNEL_NUMBER-1 downto 0) <= CH_EMPTY_IN(CHANNEL_NUMBER-1 downto 0);
-        i                                         := 0;
-      elsif i = CHANNEL_NUMBER then
-        i := i;
-      elsif empty_channels(i) = '1' then
-        total_empty_channel <= total_empty_channel + to_unsigned(1, 1);
-        i                   := i + 1;
-      else
-        i := i + 1;
-      end if;
-    end if;
-  end process Statistics_Empty_Channel_Number;
-
   -- Number of sent data finished
   Statistics_Finished_Number : process (CLK_100)
   begin
@@ -974,8 +952,8 @@ begin  -- behavioral
   STATUS_REGISTERS_BUS_OUT(0)(27 downto 17) <= TDC_VERSION(10 downto 0);
   STATUS_REGISTERS_BUS_OUT(0)(31 downto 28) <= TRG_TYPE_IN    when rising_edge(CLK_100);
 
-  STATUS_REGISTERS_BUS_OUT(1)               <= slow_control_ch_empty_i(31 downto 0);
-  STATUS_REGISTERS_BUS_OUT(2)               <= slow_control_ch_empty_i(63 downto 32);
+  STATUS_REGISTERS_BUS_OUT(1)               <= (others => '0');
+  STATUS_REGISTERS_BUS_OUT(2)               <= (others => '0');
   STATUS_REGISTERS_BUS_OUT(3)(10 downto 0)  <= TRG_WIN_PRE;
   STATUS_REGISTERS_BUS_OUT(3)(15 downto 11) <= (others => '0');
   STATUS_REGISTERS_BUS_OUT(3)(26 downto 16) <= TRG_WIN_POST;
@@ -996,41 +974,11 @@ begin  -- behavioral
   STATUS_REGISTERS_BUS_OUT(16)(23 downto 0) <= std_logic_vector(readout_time);
   STATUS_REGISTERS_BUS_OUT(17)(23 downto 0) <= std_logic_vector(timeout_number);
   STATUS_REGISTERS_BUS_OUT(18)(23 downto 0) <= std_logic_vector(finished_number);
-
-  debug0 : process (CLK_100)
-  begin
-    if rising_edge(CLK_100) then
-      if (wr_fsm_debug /= wr_fsm_debug_fsm) then
-        status_registers_bus_i(3 downto 0) <= wr_fsm_debug;
-      end if;
-    end if;
-  end process debug0;
-
-  GEN_Debug: for i in 0 to 6 generate
-    debug : process (CLK_100)
-    begin
-      if rising_edge(CLK_100) then
-        if wr_fsm_debug /= wr_fsm_debug_fsm then
-          status_registers_bus_i((i+1)*4+3 downto (i+1)*4) <= status_registers_bus_i(i*4+3 downto i*4);
-        end if;
-      end if;
-    end process debug;
-  end generate GEN_Debug;
-  STATUS_REGISTERS_BUS_OUT(19) <= status_registers_bus_i;
-
-  --STATUS_REGISTERS_BUS_OUT(19)(4 downto 0)   <= CH_EMPTY_IN;
-  --STATUS_REGISTERS_BUS_OUT(19)(11 downto 8)  <= std_logic_vector(to_unsigned(fifo_nr_rd, 4));
-  --STATUS_REGISTERS_BUS_OUT(20)(0)            <= wr_ch_data_reg;
-  --STATUS_REGISTERS_BUS_OUT(20)(11 downto 8)  <= std_logic_vector(to_unsigned(fifo_nr_wr, 4));
-  --STATUS_REGISTERS_BUS_OUT(20)(31 downto 16) <= ch_data_2reg(fifo_nr_wr)(35 downto 20);
-
+  
   FILL_BUS1 : for i in 4 to 18 generate
     STATUS_REGISTERS_BUS_OUT(i)(31 downto 24) <= (others => '0');
   end generate FILL_BUS1;
 
-  slow_control_ch_empty_i(63 downto CHANNEL_NUMBER-1) <= (others => '1');
-  slow_control_ch_empty_i(CHANNEL_NUMBER-2 downto 0)  <= ch_empty_2reg(CHANNEL_NUMBER-1 downto 1);
-
 -------------------------------------------------------------------------------
 -- Registering
 -------------------------------------------------------------------------------
index 027536339ccb0ce4347ae86911d535db48d611fd..42e66ef3b8fbb26e661e1a25b1c737d9d5fc247b 100644 (file)
@@ -160,6 +160,7 @@ architecture TDC of TDC is
   signal trig_win_en_i                : std_logic;
   signal trig_win_end_rdo             : std_logic;
   signal trig_win_end_tdc             : std_logic;
+  signal trig_win_end_tdc_i           : std_logic_vector(CHANNEL_NUMBER-1 downto 0);
 
 -- Debug signals
   signal ref_debug_i            : std_logic_vector(31 downto 0);
@@ -272,7 +273,7 @@ begin
         CLK_200                 => CLK_TDC,
         CLK_100                 => CLK_READOUT,
         HIT_IN                  => hit_in_i(0),
-        TRIGGER_WIN_END_TDC     => trig_win_end_tdc,
+        TRIGGER_WIN_END_TDC     => trig_win_end_tdc_i(0),
         TRIGGER_WIN_END_RDO     => trig_win_end_rdo,
         EPOCH_COUNTER_IN        => epoch_cntr,
         COARSE_COUNTER_IN       => coarse_cntr(1),
@@ -310,7 +311,7 @@ begin
         CLK_200                 => CLK_TDC,
         CLK_100                 => CLK_READOUT,
         HIT_IN                  => hit_in_i(i),
-        TRIGGER_WIN_END_TDC     => trig_win_end_tdc,
+        TRIGGER_WIN_END_TDC     => trig_win_end_tdc_i(i),
         TRIGGER_WIN_END_RDO     => trig_win_end_rdo,
         EPOCH_COUNTER_IN        => epoch_cntr,
         COARSE_COUNTER_IN       => coarse_cntr(integer(ceil(real(i)/real(16)))),
@@ -356,6 +357,9 @@ begin
       TRIGGER_WIN_END_TDC_OUT => trig_win_end_tdc);
 --  trig_in_i <= REFERENCE_TIME or VALID_NOTIMING_TRG_IN;
   trig_in_i <= VALID_TIMING_TRG_IN or VALID_NOTIMING_TRG_IN;
+  GenTriggerWindowEnd: for i in 0 to CHANNEL_NUMBER-1 generate
+    trig_win_end_tdc_i(i) <= trig_win_end_tdc when rising_edge(CLK_TDC);
+  end generate GenTriggerWindowEnd;
   
   -- Readout
   TheReadout : Readout
@@ -399,7 +403,7 @@ begin
       TRG_WIN_PRE              => TRG_WIN_PRE,
       TRG_WIN_POST             => TRG_WIN_POST,
       TRIGGER_WIN_EN_IN        => trig_win_en_i,
-      TRIG_WIN_END_TDC_IN      => trig_win_end_tdc,
+      TRIG_WIN_END_TDC_IN      => trig_win_end_tdc_i(0),
       TRIG_WIN_END_RDO_IN      => trig_win_end_rdo,
       COARSE_COUNTER_IN        => coarse_cntr(1),
       EPOCH_COUNTER_IN         => epoch_cntr,
@@ -432,7 +436,7 @@ begin
       if reset_tdc = '1' then
         coarse_cntr_reset <= '1';
       elsif run_mode_200 = '0' then
-        coarse_cntr_reset <= trig_win_end_tdc;
+        coarse_cntr_reset <= trig_win_end_tdc_i(32);
       elsif run_mode_edge_200 = '1' then
         coarse_cntr_reset <= '1';
       elsif reset_coarse_cntr_flag = '1' and (VALID_TIMING_TRG_IN = '1' or VALID_NOTIMING_TRG_IN = '1') then
index 4c59ca01789fa0fa0a18139f7fbb6afe7aec72db..fc4eef1aa0c246d00ee216729b699efc15d4d1fd 100644 (file)
@@ -907,9 +907,13 @@ BLOCK NET "THE_TDC/reset_tdc*" ;
 BLOCK NET "THE_TDC/reset_rdo*" ;
 BLOCK NET "THE_TDC/hit_in_i_*" ;
 BLOCK NET "THE_TDC/reset_counters_i*" ;
+BLOCK PATH TO CELL "THE_TDC/GEN_Channels_*_Channels/sync_q_2*";
+
+
+
 #BLOCK PATH TO CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/SimAdderNo_FC/FF_*" ;
 
-BLOCK PATH TO CELL "THE_TDC/GEN_Channels_*_Channels/sync_q_2*";
+
 
 PROHIBIT SECONDARY NET "THE_TDC/ReferenceChannel/Channel200/ff_array_en_i";
 PROHIBIT SECONDARY NET "THE_TDC/GEN_Channels_*_Channels/Channel200/ff_array_en_i";
@@ -917,6 +921,8 @@ PROHIBIT SECONDARY NET "THE_TDC/GEN_Channels_*_Channels/Channel200/ff_array_en_i
 MAXDELAY NET "THE_TDC/ReferenceChannel/hit_buf" 0.600000 nS DATAPATH_ONLY ;
 MAXDELAY NET "THE_TDC/GEN_Channels_*_Channels/hit_buf" 0.600000 nS DATAPATH_ONLY ;
 
+
+MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/gen_DEBUG_risingEdgeDetect_1/PULSE_OUT" 5 x;
 MULTICYCLE FROM CELL "THE_RESET_HANDLER/final_reset_1" 50 ns;
 MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/GEN_Channels_*_Channels/epoch_cntr_reg*" 5.000000 X;
 MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/ReferenceChannel/epoch_cntr_reg*" 5.000000 X;
diff --git a/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf b/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf
new file mode 100644 (file)
index 0000000..cf3911f
--- /dev/null
@@ -0,0 +1,930 @@
+#################################################################
+# TDC Constraints
+#################################################################
+##############################################################################
+##                          REGION DECLERATION                             ##
+##############################################################################
+#REGION "REGION_UR_CC" "R51C106D" 4 3 DEVSIZE;
+#REGION "REGION_LR_CC" "R85C106D" 3 3 DEVSIZE;
+#REGION "REGION_UL_CC" "R48C53D" 3 3 DEVSIZE;
+#REGION "REGION_LL_CC" "R89C53D" 3 3 DEVSIZE;
+
+
+##############################################################################
+##                     REFERENCE CHANNEL PLACEMENT                         ##
+##############################################################################
+UGROUP "Ref_Ch" BBOX 1 51 
+       BLKNAME THE_TDC/ReferenceChannel/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "Ref_Ch" SITE "R8C131D" ;
+UGROUP "ref_hit" BBOX 1 1
+       BLKNAME THE_TDC/ReferenceChannel/hit_buf_RNO;
+LOCATE UGROUP "ref_hit" SITE "R9C133D" ;
+UGROUP "Ref_ff_en"  BBOX 1 1
+       BLKNAME THE_TDC/ReferenceChannel/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "Ref_ff_en" SITE "R8C156D" ;
+
+##############################################################################
+##                 DELAY LINE and HIT BUFFER PLACEMENTS                    ##
+##############################################################################
+UGROUP "FC_1" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_1" SITE "R10C131D" ;
+UGROUP "hit_1" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_1" SITE "R11C133D" ;
+UGROUP "ff_en_1"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_1" SITE "R10C156D" ;
+#
+UGROUP "FC_2" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_2" SITE "R21C131D" ;
+UGROUP "hit_2"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_2" SITE "R22C133D" ;
+UGROUP "ff_en_2" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_2" SITE "R21C156D" ;
+#
+UGROUP "FC_3" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_3" SITE "R23C131D" ;
+UGROUP "hit_3"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_3" SITE "R24C133D" ;
+UGROUP "ff_en_3" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_3" SITE "R23C156D" ;
+#
+UGROUP "FC_4" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_4" SITE "R30C131D" ;
+UGROUP "hit_4"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_4" SITE "R31C133D" ;
+UGROUP "ff_en_4" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_4" SITE "R30C156D" ;
+#
+UGROUP "FC_5" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_5" SITE "R32C131D" ;
+UGROUP "hit_5"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_5" SITE "R33C133D" ;
+UGROUP "ff_en_5" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_5" SITE "R32C156D" ;
+#
+UGROUP "FC_6" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_6" SITE "R35C131D" ;
+UGROUP "hit_6"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_6" SITE "R36C133D" ;
+UGROUP "ff_en_6" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_6" SITE "R35C156D" ;
+#
+UGROUP "FC_7" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_7" SITE "R37C131D" ;
+UGROUP "hit_7"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_7" SITE "R38C133D" ;
+UGROUP "ff_en_7" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_7" SITE "R37C156D" ;
+#
+UGROUP "FC_8" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_8" SITE "R48C131D" ;
+UGROUP "hit_8"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_8" SITE "R49C133D" ;
+UGROUP "ff_en_8" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_8" SITE "R48C156D" ;
+#
+UGROUP "FC_9" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_9" SITE "R50C131D" ;
+UGROUP "hit_9"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_9" SITE "R51C133D" ;
+UGROUP "ff_en_9" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_9" SITE "R50C156D" ;
+#
+UGROUP "FC_10" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_10" SITE "R53C131D" ;
+UGROUP "hit_10"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_10" SITE "R54C133D" ;
+UGROUP "ff_en_10" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_10" SITE "R53C156D" ;
+#
+UGROUP "FC_11" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_11" SITE "R55C131D" ;
+UGROUP "hit_11" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_11" SITE "R56C133D" ;
+UGROUP "ff_en_11" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_11" SITE "R55C156D" ;
+#
+UGROUP "FC_12" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_12" SITE "R10C58D" ;
+UGROUP "hit_12" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_12" SITE "R11C60D" ;
+UGROUP "ff_en_12" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_12" SITE "R10C83D" ;
+#
+UGROUP "FC_13" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_13" SITE "R23C58D" ;
+UGROUP "hit_13" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_13" SITE "R24C60D" ;
+UGROUP "ff_en_13" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_13" SITE "R23C83D" ;
+#
+UGROUP "FC_14" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_14" SITE "R32C58D" ;
+UGROUP "hit_14" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_14" SITE "R33C60D" ;
+UGROUP "ff_en_14" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_14" SITE "R32C83D" ;
+#
+UGROUP "FC_15" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_15" SITE "R37C58D" ;
+UGROUP "hit_15" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_15" SITE "R38C60D" ;
+UGROUP "ff_en_15" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_15" SITE "R37C83D" ;
+#
+UGROUP "FC_16" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_16" SITE "R50C58D" ;
+UGROUP "hit_16" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_16" SITE "R51C60D" ;
+UGROUP "ff_en_16" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_16" SITE "R50C83D" ;
+#
+UGROUP "FC_17" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_17" SITE "R66C131D" ;
+UGROUP "hit_17"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_17" SITE "R67C133D" ;
+UGROUP "ff_en_17" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_17" SITE "R66C156D" ;
+#
+UGROUP "FC_18" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_18" SITE "R68C131D" ;
+UGROUP "hit_18"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_18" SITE "R69C133D" ;
+UGROUP "ff_en_18" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_18" SITE "R68C156D" ;
+#
+UGROUP "FC_19" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_19" SITE "R71C131D" ;
+UGROUP "hit_19"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_19" SITE "R72C133D" ;
+UGROUP "ff_en_19" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_19" SITE "R71C156D" ;
+#
+UGROUP "FC_20" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_20" SITE "R73C131D" ;
+UGROUP "hit_20"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_20" SITE "R74C133D" ;
+UGROUP "ff_en_20" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_20" SITE "R73C156D" ;
+#
+UGROUP "FC_21" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_21" SITE "R84C131D" ;
+UGROUP "hit_21"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_21" SITE "R85C133D" ;
+UGROUP "ff_en_21" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_21" SITE "R84C156D" ;
+#
+UGROUP "FC_22" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_22" SITE "R86C131D" ;
+UGROUP "hit_22"  BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_22" SITE "R87C133D" ;
+UGROUP "ff_en_22" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_22" SITE "R86C156D" ;
+#
+UGROUP "FC_23" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_23" SITE "R89C131D" ;
+UGROUP "hit_23" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_23" SITE "R90C133D" ;
+UGROUP "ff_en_23" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_23" SITE "R89C156D" ;
+#
+UGROUP "FC_24" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_24" SITE "R91C131D" ;
+UGROUP "hit_24" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_24" SITE "R92C133D" ;
+UGROUP "ff_en_24" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_24" SITE "R91C156D" ;
+#
+UGROUP "FC_25" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_25" SITE "R102C131D" ;
+UGROUP "hit_25" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_25" SITE "R103C133D" ;
+UGROUP "ff_en_25" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_25" SITE "R102C156D" ;
+#
+UGROUP "FC_26" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_26" SITE "R104C131D" ;
+UGROUP "hit_26" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_26" SITE "R105C133D" ;
+UGROUP "ff_en_26" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_26" SITE "R104C156D" ;
+#
+UGROUP "FC_27" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_27" SITE "R111C131D" ;
+UGROUP "hit_27" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_27" SITE "R112C133D" ;
+UGROUP "ff_en_27" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_27" SITE "R111C156D" ;
+#
+UGROUP "FC_28" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_28" SITE "R113C131D" ;
+UGROUP "hit_28" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_28" SITE "R114C133D" ;
+UGROUP "ff_en_28" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_28" SITE "R113C156D" ;
+#
+UGROUP "FC_29" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_29" SITE "R91C58D" ;
+UGROUP "hit_29" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_29" SITE "R92C60D" ;
+UGROUP "ff_en_29" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_29" SITE "R91C83D" ;
+#
+UGROUP "FC_30" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_30" SITE "R104C58D" ;
+UGROUP "hit_30" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_30" SITE "R105C60D" ;
+UGROUP "ff_en_30" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_30" SITE "R104C83D" ;
+#
+UGROUP "FC_31" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_31" SITE "R113C58D" ;
+UGROUP "hit_31" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_31" SITE "R114C60D" ;
+UGROUP "ff_en_31" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_31" SITE "R113C83D" ;
+#
+UGROUP "FC_32" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_32_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_32" SITE "R84C58D" ;
+UGROUP "hit_32" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_32_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_32" SITE "R85C60D" ;
+UGROUP "ff_en_32" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_32_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_32" SITE "R84C83D" ;
+#
+UGROUP "FC_33" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_33_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_33" SITE "R8C58D" ;
+UGROUP "hit_33" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_33_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_33" SITE "R9C60D" ;
+UGROUP "ff_en_33" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_33_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_33" SITE "R8C83D" ;
+#
+UGROUP "FC_34" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_34_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_34" SITE "R21C58D" ;
+UGROUP "hit_34" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_34_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_34" SITE "R22C60D" ;
+UGROUP "ff_en_34" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_34_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_34" SITE "R21C83D" ;
+#
+UGROUP "FC_35" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_35_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_35" SITE "R30C58D" ;
+UGROUP "hit_35" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_35_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_35" SITE "R31C60D" ;
+UGROUP "ff_en_35" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_35_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_35" SITE "R30C83D" ;
+#
+UGROUP "FC_36" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_36_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_36" SITE "R35C58D" ;
+UGROUP "hit_36" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_36_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_36" SITE "R36C60D" ;
+UGROUP "ff_en_36" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_36_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_36" SITE "R35C83D" ;
+#
+UGROUP "FC_37" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_37_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_37" SITE "R48C58D" ;
+UGROUP "hit_37" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_37_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_37" SITE "R49C60D" ;
+UGROUP "ff_en_37" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_37_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_37" SITE "R48C83D" ;
+#
+UGROUP "FC_38" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_38_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_38" SITE "R8C2D" ;
+UGROUP "hit_38" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_38_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_38" SITE "R9C4D" ;
+UGROUP "ff_en_38" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_38_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_38" SITE "R8C27D" ;
+#
+UGROUP "FC_39" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_39_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_39" SITE "R10C2D" ;
+UGROUP "hit_39" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_39_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_39" SITE "R11C4D" ;
+UGROUP "ff_en_39" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_39_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_39" SITE "R10C27D" ;
+#
+UGROUP "FC_40" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_40_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_40" SITE "R21C2D" ;
+UGROUP "hit_40" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_40_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_40" SITE "R22C4D" ;
+UGROUP "ff_en_40" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_40_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_40" SITE "R21C27D" ;
+#
+UGROUP "FC_41" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_41_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_41" SITE "R23C2D" ;
+UGROUP "hit_41" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_41_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_41" SITE "R24C4D" ;
+UGROUP "ff_en_41" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_41_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_41" SITE "R23C27D" ;
+#
+UGROUP "FC_42" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_42_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_42" SITE "R30C2D" ;
+UGROUP "hit_42" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_42_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_42" SITE "R31C4D" ;
+UGROUP "ff_en_42" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_42_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_42" SITE "R30C27D" ;
+#
+UGROUP "FC_43" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_43_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_43" SITE "R32C2D" ;
+UGROUP "hit_43" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_43_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_43" SITE "R33C4D" ;
+UGROUP "ff_en_43" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_43_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_43" SITE "R32C27D" ;
+#
+UGROUP "FC_44" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_44_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_44" SITE "R35C2D" ;
+UGROUP "hit_44" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_44_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_44" SITE "R36C4D" ;
+UGROUP "ff_en_44" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_44_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_44" SITE "R35C27D" ;
+#
+UGROUP "FC_45" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_45_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_45" SITE "R37C2D" ;
+UGROUP "hit_45" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_45_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_45" SITE "R38C4D" ;
+UGROUP "ff_en_45" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_45_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_45" SITE "R37C27D" ;
+#
+UGROUP "FC_46" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_46_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_46" SITE "R48C2D" ;
+UGROUP "hit_46" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_46_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_46" SITE "R49C4D" ;
+UGROUP "ff_en_46" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_46_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_46" SITE "R48C27D" ;
+#
+UGROUP "FC_47" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_47_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_47" SITE "R50C2D" ;
+UGROUP "hit_47" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_47_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_47" SITE "R51C4D" ;
+UGROUP "ff_en_47" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_47_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_47" SITE "R50C27D" ;
+#
+UGROUP "FC_48" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_48_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_48" SITE "R53C2D" ;
+UGROUP "hit_48" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_48_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_48" SITE "R54C4D" ;
+UGROUP "ff_en_48" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_48_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_48" SITE "R53C27D" ;
+#
+UGROUP "FC_49" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_49_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_49" SITE "R55C2D" ;
+UGROUP "hit_49" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_49_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_49" SITE "R56C4D" ;
+UGROUP "ff_en_49" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_49_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_49" SITE "R55C27D" ;
+#
+UGROUP "FC_50" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_50_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_50" SITE "R89C58D" ;
+UGROUP "hit_50" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_50_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_50" SITE "R90C60D" ;
+UGROUP "ff_en_50" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_50_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_50" SITE "R89C83D" ;
+#
+UGROUP "FC_51" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_51_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_51" SITE "R102C58D" ;
+UGROUP "hit_51" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_51_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_51" SITE "R103C60D" ;
+UGROUP "ff_en_51" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_51_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_51" SITE "R102C83D" ;
+#
+UGROUP "FC_52" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_52_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_52" SITE "R111C58D" ;
+UGROUP "hit_52" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_52_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_52" SITE "R112C60D" ;
+UGROUP "ff_en_52" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_52_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_52" SITE "R111C83D" ;
+#
+UGROUP "FC_53" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_53_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_53" SITE "R66C2D" ;
+UGROUP "hit_53" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_53_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_53" SITE "R67C4D" ;
+UGROUP "ff_en_53" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_53_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_53" SITE "R66C27D" ;
+#
+UGROUP "FC_54" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_54_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_54" SITE "R68C2D" ;
+UGROUP "hit_54" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_54_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_54" SITE "R69C4D" ;
+UGROUP "ff_en_54" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_54_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_54" SITE "R68C27D" ;
+#
+UGROUP "FC_55" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_55_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_55" SITE "R71C2D" ;
+UGROUP "hit_55" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_55_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_55" SITE "R72C4D" ;
+UGROUP "ff_en_55" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_55_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_55" SITE "R71C27D" ;
+#
+UGROUP "FC_56" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_56_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_56" SITE "R73C2D" ;
+UGROUP "hit_56" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_56_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_56" SITE "R74C4D" ;
+UGROUP "ff_en_56" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_56_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_56" SITE "R73C27D" ;
+#
+UGROUP "FC_57" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_57_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_57" SITE "R84C2D" ;
+UGROUP "hit_57" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_57_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_57" SITE "R85C4D" ;
+UGROUP "ff_en_57" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_57_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_57" SITE "R84C27D" ;
+#
+UGROUP "FC_58" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_58_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_58" SITE "R86C2D" ;
+UGROUP "hit_58" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_58_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_58" SITE "R87C4D" ;
+UGROUP "ff_en_58" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_58_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_58" SITE "R86C27D" ;
+#
+UGROUP "FC_59" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_59_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_59" SITE "R89C2D" ;
+UGROUP "hit_59" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_59_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_59" SITE "R90C4D" ;
+UGROUP "ff_en_59" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_59_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_59" SITE "R89C27D" ;
+#
+UGROUP "FC_60" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_60_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_60" SITE "R91C2D" ;
+UGROUP "hit_60" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_60_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_60" SITE "R92C4D" ;
+UGROUP "ff_en_60" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_60_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_60" SITE "R91C27D" ;
+#
+UGROUP "FC_61" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_61_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_61" SITE "R102C2D" ;
+UGROUP "hit_61" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_61_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_61" SITE "R103C4D" ;
+UGROUP "ff_en_61" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_61_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_61" SITE "R102C27D" ;
+#
+UGROUP "FC_62" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_62_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_62" SITE "R104C2D" ;
+UGROUP "hit_62" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_62_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_62" SITE "R105C4D" ;
+UGROUP "ff_en_62" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_62_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_62" SITE "R104C27D" ;
+#
+UGROUP "FC_63" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_63_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_63" SITE "R111C2D" ;
+UGROUP "hit_63" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_63_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_63" SITE "R112C4D" ;
+UGROUP "ff_en_63" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_63_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_63" SITE "R111C27D" ;
+#
+UGROUP "FC_64" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_64_Channels/Channel200/SimAdderNo_FC;
+LOCATE UGROUP "FC_64" SITE "R113C2D" ;
+UGROUP "hit_64" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_64_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_64" SITE "R114C4D" ;
+UGROUP "ff_en_64" BBOX 1 1
+       BLKNAME THE_TDC/GEN_Channels_64_Channels/Channel200/ff_array_en_i_1_i;
+LOCATE UGROUP "ff_en_64" SITE "R113C27D" ;
+
+
+##############################################################################
+##                          CHANNEL PLACEMENTS                             ##
+##############################################################################
+UGROUP "EF_ref" BBOX 16 54
+               BLKNAME THE_TDC/ReferenceChannel/Channel200
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/Channel200
+       BLKNAME THE_TDC/ReferenceChannel/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/The_Buffer;
+LOCATE UGROUP "EF_ref" SITE "R8C128D" ;
+
+UGROUP "EF_4" BBOX 10 54
+               BLKNAME THE_TDC/GEN_Channels_4_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/The_Buffer;
+LOCATE UGROUP "EF_4" SITE "R24C128D" ;
+
+UGROUP "EF_6" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/The_Buffer;
+LOCATE UGROUP "EF_6" SITE "R35C128D" ;
+
+UGROUP "EF_10" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/The_Buffer;
+LOCATE UGROUP "EF_10" SITE "R53C128D" ;
+
+UGROUP "EF_12" BBOX 16 54
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_33_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_34_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_33_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_34_Channels/The_Buffer;
+LOCATE UGROUP "EF_12" SITE "R8C56D" ;
+
+UGROUP "EF_14" BBOX 10 54
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_35_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_35_Channels/The_Buffer;
+LOCATE UGROUP "EF_14" SITE "R24C56D" ;
+
+UGROUP "EF_15" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_36_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_37_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_36_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_37_Channels/The_Buffer;
+LOCATE UGROUP "EF_15" SITE "R35C56D" ;
+
+UGROUP "EF_19" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/The_Buffer;
+LOCATE UGROUP "EF_19" SITE "R71C128D" ;
+
+UGROUP "EF_23" BBOX 16 54
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/The_Buffer;
+LOCATE UGROUP "EF_23" SITE "R89C128D" ;
+
+UGROUP "EF_27" BBOX 10 54
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/The_Buffer;
+LOCATE UGROUP "EF_27" SITE "R105C128D" ;
+
+UGROUP "EF_29" BBOX 16 54
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_50_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_51_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_50_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_51_Channels/The_Buffer;
+LOCATE UGROUP "EF_29" SITE "R89C56D" ;
+
+UGROUP "EF_31" BBOX 10 54
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_52_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_52_Channels/The_Buffer;
+LOCATE UGROUP "EF_31" SITE "R105C56D" ;
+
+UGROUP "EF_32" BBOX 6 54
+       BLKNAME THE_TDC/GEN_Channels_32_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_32_Channels/The_Buffer;
+LOCATE UGROUP "EF_32" SITE "R78C58D" ;
+
+UGROUP "EF_38" BBOX 16 54
+       BLKNAME THE_TDC/GEN_Channels_38_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_39_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_40_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_41_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_38_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_39_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_40_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_41_Channels/The_Buffer;
+LOCATE UGROUP "EF_38" SITE "R8C2D" ;
+
+UGROUP "EF_42" BBOX 10 54
+       BLKNAME THE_TDC/GEN_Channels_42_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_43_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_42_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_43_Channels/The_Buffer;
+LOCATE UGROUP "EF_42" SITE "R24C2D" ;
+
+UGROUP "EF_44" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_44_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_45_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_46_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_47_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_44_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_45_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_46_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_47_Channels/The_Buffer;
+LOCATE UGROUP "EF_44" SITE "R35C2D" ;
+
+UGROUP "EF_48" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_48_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_49_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_53_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_54_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_48_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_49_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_53_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_54_Channels/The_Buffer;
+LOCATE UGROUP "EF_48" SITE "R53C2D" ;
+
+UGROUP "EF_55" BBOX 17 54
+       BLKNAME THE_TDC/GEN_Channels_55_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_56_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_57_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_58_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_55_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_56_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_57_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_58_Channels/The_Buffer;
+LOCATE UGROUP "EF_55" SITE "R71C2D" ;
+
+UGROUP "EF_59" BBOX 16 54
+       BLKNAME THE_TDC/GEN_Channels_59_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_60_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_61_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_62_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_59_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_60_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_61_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_62_Channels/The_Buffer;
+LOCATE UGROUP "EF_59" SITE "R89C2D" ;
+
+UGROUP "EF_63" BBOX 10 54
+       BLKNAME THE_TDC/GEN_Channels_63_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_64_Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels_63_Channels/The_Buffer
+       BLKNAME THE_TDC/GEN_Channels_64_Channels/The_Buffer;
+LOCATE UGROUP "EF_63" SITE "R105C2D" ;
+
+#############################################################################
+## Coarse counter register placement
+
+UGROUP "UR_Coarse_Counter"
+       BLKNAME THE_TDC/GenCoarseCounter_1_TheCoarseCounter;
+LOCATE UGROUP "UR_Coarse_Counter" SITE R36C134D; #REGION "REGION_UR_CC" ;
+UGROUP "LR_Coarse_Counter"
+       BLKNAME THE_TDC/GenCoarseCounter_2_TheCoarseCounter;
+LOCATE UGROUP "LR_Coarse_Counter" SITE R85C134D; #REGION "REGION_LR_CC" ;
+UGROUP "UL_Coarse_Counter"
+        BLKNAME THE_TDC/GenCoarseCounter_3_TheCoarseCounter;
+LOCATE UGROUP "UL_Coarse_Counter" SITE R36C50D; #REGION "REGION_UL_CC" ;
+UGROUP "LL_Coarse_Counter"
+        BLKNAME THE_TDC/GenCoarseCounter_4_TheCoarseCounter;
+LOCATE UGROUP "LL_Coarse_Counter" SITE R85C50D; #REGION "REGION_LL_CC" ;
+UGROUP "Epoch_Counter"
+       BLKNAME THE_TDC/TheEpochCounter;
+LOCATE UGROUP "Epoch_Counter" SITE R36C138D;
+
+#############################################################################
+## Bus Handler Placements
+
+UGROUP "BusHandlers"
+       BLKNAME THE_TDC/TheHitCounterBus
+       BLKNAME THE_TDC/TheStatusRegistersBus;
+#       BLKNAME THE_TDC/TheLostHitBus
+#       BLKNAME THE_TDC/TheEncoderStartBus
+#       BLKNAME THE_TDC/TheEncoderFinishedBus;
+#LOCATE UGROUP "BusHandlers" REGION BUS;
+
+UGROUP "ResetHandler"
+       BLKNAME THE_RESET_HANDLER;
+#LOCATE UGROUP "ResetHandler" REGION BUS;
+
+
+
+#############################################################################
+##                         Unimportant Data Lines                          ##
+#############################################################################
+
+BLOCK NET "THE_TDC/reset_tdc*" ;
+BLOCK NET "THE_TDC/reset_rdo*" ;
+BLOCK NET "THE_TDC/hit_in_i_*" ;
+BLOCK NET "THE_TDC/reset_counters_i*" ;
+BLOCK PATH TO CELL "THE_TDC/GEN_Channels_*_Channels/sync_q_2*";
+
+
+
+#BLOCK PATH TO CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/SimAdderNo_FC/FF_*" ;
+
+
+
+PROHIBIT SECONDARY NET "THE_TDC/ReferenceChannel/Channel200/ff_array_en_i";
+PROHIBIT SECONDARY NET "THE_TDC/GEN_Channels_*_Channels/Channel200/ff_array_en_i";
+
+MAXDELAY NET "THE_TDC/ReferenceChannel/hit_buf" 0.600000 nS DATAPATH_ONLY ;
+MAXDELAY NET "THE_TDC/GEN_Channels_*_Channels/hit_buf" 0.600000 nS DATAPATH_ONLY ;
+
+
+MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/gen_DEBUG_risingEdgeDetect_1/PULSE_OUT" 5 x;
+MULTICYCLE FROM CELL "THE_RESET_HANDLER/final_reset_1" 50 ns;
+MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/GEN_Channels_*_Channels/epoch_cntr_reg*" 5.000000 X;
+MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/ReferenceChannel/epoch_cntr_reg*" 5.000000 X;
+
+#MULTICYCLE FROM CELL "THE_TDC/ReferenceChannel/Channel200/FIFO_ALMOST_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg_*" 2.000000 X;
+MULTICYCLE FROM CELL "THE_TDC/ReferenceChannel/Channel200/FIFO_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg_*" 2.000000 X;
+MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/FIFO_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg*" 2.000000 X;
+#MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/FIFO_ALMOST_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg*" 2.000000 X;
index 38622c47f6c49d0bf5f989c393dded476716a04e..54a3bce79e282b28d31c55748253154a12427b98 100644 (file)
@@ -8,8 +8,8 @@ GSR_NET NET "reset_i";
 #################################################################
 LOCATE COMP   "THE_MEDIA_UPLINK/gen_serdes_1_200_THE_SERDES/PCSD_INST" SITE "PCSA" ;
 
-REGION "MEDIA_UPLINK" "R105C109D" 10 22;
-REGION "REGION_SPI"   "R2C109D" 15 22 DEVSIZE;
+REGION "MEDIA_UPLINK" "R105C110D" 10 18;
+REGION "REGION_SPI"   "R2C110D" 15 18 DEVSIZE;
 
 LOCATE UGROUP "THE_SPI_MASTER/SPI_group" REGION "REGION_SPI" ; 
 LOCATE UGROUP "THE_SPI_MEMORY/SPI_group" REGION "REGION_SPI" ;
@@ -22,7 +22,7 @@ MULTICYCLE TO CELL "THE_RESET_HANDLER/final_reset*" 30 ns;
 
 
 #Jan: Placement of TrbNet components (at least, most of them)
-REGION "REGION_TRBNET" "R35C109D"  70 22 DEVSIZE;
+REGION "REGION_TRBNET" "R35C110D"  70 18 DEVSIZE;
 #UGROUP "TrbNet" BBOX 77 27 
 #  BLKNAME THE_ENDPOINT
 #  BLKNAME THE_ENDPOINT/THE_ENDPOINT