]> jspc29.x-matter.uni-frankfurt.de Git - trb3.git/commitdiff
TDC with 32 channels is added.
authorhadaq <hadaq>
Mon, 25 Jun 2012 07:45:21 +0000 (07:45 +0000)
committerhadaq <hadaq>
Mon, 25 Jun 2012 07:45:21 +0000 (07:45 +0000)
cbmrich/cbmrich.prj
cbmrich/cbmrich.vhd
cbmrich/cbmrich_2012_06_25.bit [new file with mode: 0644]
cbmrich/cbmrich_constraints.lpf

index 1d41dea630c9b125f9c71333bc5fa565e67fc312..a7f8d649e06a4c6441ed960c100a87d29a4e13f2 100644 (file)
@@ -140,23 +140,13 @@ add_file -vhdl -lib "work" "../base/cores/pll_in200_out100.vhd"
 
 add_file -vhdl -lib "work" "cbmrich.vhd"
 
-# add_file -vhdl -lib "work" "source/Adder_304.vhd"
-# add_file -vhdl -lib "work" "source/bit_sync.vhd"
-# add_file -vhdl -lib "work" "source/Channel.vhd"
-# add_file -vhdl -lib "work" "source/ddr_off.vhd"
-# add_file -vhdl -lib "work" "source/Encoder_304_Bit.vhd"
-# add_file -vhdl -lib "work" "source/FIFO_32x512_OutReg.vhd"
-# add_file -vhdl -lib "work" "source/MB_SPI.vhd"
-# add_file -vhdl -lib "work" "source/pll_100_in_5_out.vhd"
-# add_file -vhdl -lib "work" "source/pll_100_in_40_out.vhd"
-# add_file -vhdl -lib "work" "source/Reference_channel.vhd"
-# 
-# #add_file -vhdl -lib "work" "source/ROM_Encoder.vhd"
-# #add_file -vhdl -lib "work" "source/ROM_encoder_2.vhd"
-# add_file -vhdl -lib "work" "source/ROM_encoder_3.vhd"
-# 
-# add_file -vhdl -lib "work" "source/ROM_FIFO.vhd"
-# add_file -vhdl -lib "work" "source/TDC.vhd"
-# add_file -vhdl -lib "work" "source/trb3_periph.vhd"
-# add_file -vhdl -lib "work" "source/up_counter.vhd"
-
+add_file -vhdl -lib "work" "tdc_source/Adder_304.vhd"
+add_file -vhdl -lib "work" "tdc_source/bit_sync.vhd"
+add_file -vhdl -lib "work" "tdc_source/Channel.vhd"
+add_file -vhdl -lib "work" "tdc_source/Encoder_304_Bit.vhd"
+add_file -vhdl -lib "work" "tdc_source/FIFO_32x512_OutReg.vhd"
+add_file -vhdl -lib "work" "tdc_source/Reference_channel.vhd"
+add_file -vhdl -lib "work" "tdc_source/ROM_encoder_3.vhd"
+add_file -vhdl -lib "work" "tdc_source/ROM_FIFO.vhd"
+add_file -vhdl -lib "work" "tdc_source/TDC.vhd"
+add_file -vhdl -lib "work" "tdc_source/up_counter.vhd"
index 89c304768989968878a6a3c13e51dcde881c3e8b..2463950d380f61a0b683940900c2a2857c540943 100644 (file)
@@ -99,8 +99,8 @@ end entity;
 
 architecture cbmrich_arch of cbmrich is
   --Constants
-  constant REGIO_NUM_STAT_REGS : integer := 2;
-  constant REGIO_NUM_CTRL_REGS : integer := 2;
+  constant REGIO_NUM_STAT_REGS : integer := 5;
+  constant REGIO_NUM_CTRL_REGS : integer := 3;
 
   attribute syn_keep     : boolean;
   attribute syn_preserve : boolean;
@@ -215,24 +215,44 @@ architecture cbmrich_arch of cbmrich is
   --FPGA Test
   signal time_counter : unsigned(31 downto 0);
 
---   --TDC component
---   component TDC
---     generic (
---       CHANNEL_NUMBER : integer range 0 to 64);
---     port (
---       RESET             : in  std_logic;
---       CLK_TDC           : in  std_logic;
---       CLK_READOUT       : in  std_logic;
---       HIT_IN            : in  std_logic_vector(CHANNEL_NUMBER-1 downto 0);
---       TRIGGER_IN        : in  std_logic;
---       TRIGGER_WIN_IN    : in  std_logic_vector(31 downto 0);
---       DATA_OUT          : out std_logic_vector(31 downto 0);
---       TRB_WR_CLK_OUT    : out std_logic;
---       DATA_VALID_OUT    : out std_logic;
---       DATA_FINISHED_OUT : out std_logic;
---       READY_OUT         : out std_logic;
---       TDC_DEBUG_00      : out std_logic_vector(31 downto 0));
---   end component;
+  --TDC
+  signal hit_in_i : std_logic_vector(63 downto 1);
+
+  --TDC component
+  component TDC
+    generic (
+      CHANNEL_NUMBER : integer range 0 to 64;
+      STATUS_REG_NR  : integer range 0 to 6;
+      CONTROL_REG_NR : integer range 0 to 6);
+    port (
+      RESET                 : in  std_logic;
+      CLK_TDC               : in  std_logic;
+      CLK_READOUT           : in  std_logic;
+      REFERENCE_TIME        : in  std_logic;
+      HIT_IN                : in  std_logic_vector(CHANNEL_NUMBER-1 downto 1);
+      TRG_WIN_PRE           : in  std_logic_vector(10 downto 0);
+      TRG_WIN_POST          : in  std_logic_vector(10 downto 0);
+      TRG_DATA_VALID_IN     : in  std_logic;
+      VALID_TIMING_TRG_IN   : in  std_logic;
+      VALID_NOTIMING_TRG_IN : in  std_logic;
+      INVALID_TRG_IN        : in  std_logic;
+      TMGTRG_TIMEOUT_IN     : in  std_logic;
+      SPIKE_DETECTED_IN     : in  std_logic;
+      MULTI_TMG_TRG_IN      : in  std_logic;
+      SPURIOUS_TRG_IN       : in  std_logic;
+      TRG_NUMBER_IN         : in  std_logic_vector(15 downto 0);
+      TRG_CODE_IN           : in  std_logic_vector(7 downto 0);
+      TRG_INFORMATION_IN    : in  std_logic_vector(23 downto 0);
+      TRG_TYPE_IN           : in  std_logic_vector(3 downto 0);
+      TRG_RELEASE_OUT       : out std_logic;
+      TRG_STATUSBIT_OUT     : out std_logic_vector(31 downto 0);
+      DATA_OUT              : out std_logic_vector(31 downto 0);
+      DATA_WRITE_OUT        : out std_logic;
+      DATA_FINISHED_OUT     : out std_logic;
+      TDC_DEBUG             : out std_logic_vector(32*2**STATUS_REG_NR-1 downto 0);
+      LOGIC_ANALYSER_OUT    : out std_logic_vector(15 downto 0);
+      CONTROL_REG_IN        : in  std_logic_vector(32*2**CONTROL_REG_NR-1 downto 0));
+  end component;
   
 begin
 ---------------------------------------------------------------------------
@@ -605,4 +625,58 @@ timing_trg_received_i <= SPARE_LINE(0);
     time_counter <= time_counter + 1;
   end process;
 
+-------------------------------------------------------------------------------
+-- TDC
+-------------------------------------------------------------------------------
+    THE_TDC : TDC
+    generic map (
+      CHANNEL_NUMBER => 32,             -- Number of TDC channels
+      STATUS_REG_NR  => REGIO_NUM_STAT_REGS,
+      CONTROL_REG_NR => REGIO_NUM_CTRL_REGS)
+    port map (
+      RESET                 => reset_i,
+      CLK_TDC               => CLK_PCLK_LEFT,  -- Clock used for the time measurement
+      CLK_READOUT           => clk_100_i,   -- Clock for the readout
+      REFERENCE_TIME        => timing_trg_received_i,   -- Reference time input
+      HIT_IN                => hit_in_i(31 downto 1),  -- Channel start signals
+      TRG_WIN_PRE           => ctrl_reg(42 downto 32),  -- Pre-Trigger window width
+      TRG_WIN_POST          => ctrl_reg(58 downto 48),  -- Post-Trigger window width
+      --
+      -- Trigger signals from handler
+      TRG_DATA_VALID_IN     => trg_data_valid_i,  -- trig data valid signal from trbnet
+      VALID_TIMING_TRG_IN   => trg_timing_valid_i,  -- valid timing trigger signal from trbnet
+      VALID_NOTIMING_TRG_IN => trg_notiming_valid_i,  -- valid notiming signal from trbnet
+      INVALID_TRG_IN        => trg_invalid_i,  -- invalid trigger signal from trbnet
+      TMGTRG_TIMEOUT_IN     => trg_timeout_detected_i,  -- timing trigger timeout signal from trbnet
+      SPIKE_DETECTED_IN     => trg_spike_detected_i,
+      MULTI_TMG_TRG_IN      => trg_multiple_trg_i,
+      SPURIOUS_TRG_IN       => trg_spurious_trg_i,
+      --
+      TRG_NUMBER_IN         => trg_number_i,  -- LVL1 trigger information package
+      TRG_CODE_IN           => trg_code_i,  --
+      TRG_INFORMATION_IN    => trg_information_i,   --
+      TRG_TYPE_IN           => trg_type_i,  -- LVL1 trigger information package
+      --
+      --Response to handler
+      TRG_RELEASE_OUT       => fee_trg_release_i,   -- trigger release signal
+      TRG_STATUSBIT_OUT     => fee_trg_statusbits_i,  -- status information of the tdc
+      DATA_OUT              => fee_data_i,  -- tdc data
+      DATA_WRITE_OUT        => fee_data_write_i,  -- data valid signal
+      DATA_FINISHED_OUT     => fee_data_finished_i,  -- readout finished signal
+      --
+      TDC_DEBUG             => stat_reg,
+      LOGIC_ANALYSER_OUT    => TEST_LINE,
+      CONTROL_REG_IN        => ctrl_reg);
+
+
+  hit_in_i(31 downto 1)   <= INPUT(31 downto 1);
+  
+  -- to detect rising & falling edges
+  --hit_in_i(1) <= not timing_trg_received_i;
+  
+  --Gen_Hit_In_Signals : for i in 1 to 15 generate
+  --  hit_in_i(i*2)   <= INPUT(i-1);
+  --  hit_in_i(i*2+1) <= not INPUT(i-1);
+  --end generate Gen_Hit_In_Signals;
+
 end architecture;
diff --git a/cbmrich/cbmrich_2012_06_25.bit b/cbmrich/cbmrich_2012_06_25.bit
new file mode 100644 (file)
index 0000000..80fda34
Binary files /dev/null and b/cbmrich/cbmrich_2012_06_25.bit differ
index fe85f1dd5cd0e492433fd0c2a5fa83c4763b90ab..a1165bbf9a348e1e366374c34372fecc281e859b 100644 (file)
@@ -1,3 +1,4 @@
+
 BLOCK RESETPATHS ;
 BLOCK ASYNCPATHS ;
 BLOCK RD_DURING_WR_PATHS ;
@@ -18,8 +19,8 @@ BLOCK RD_DURING_WR_PATHS ;
 # Reset Nets
 #################################################################  
 GSR_NET NET "GSR_N";  
-
-
+GSR_NET NET "THE_TDC/reset_tdc";
+GSR_NET NET "reset_i;
 
 
 #################################################################
@@ -28,9 +29,9 @@ GSR_NET NET "GSR_N";
 LOCATE COMP   "THE_MEDIA_UPLINK/gen_serdes_0_200_ctc_THE_SERDES/PCSD_INST" SITE "PCSA" ;
 
 
-REGION "MEDIA_UPLINK" "R90C95D" 13 25;
-REGION "REGION_SPI"   "R13C150D" 12 16 DEVSIZE;
-REGION "REGION_IOBUF" "R10C43D"  88 86 DEVSIZE;
+REGION "MEDIA_UPLINK" "R102C95D" 13 25;
+REGION "REGION_SPI"   "R11C164D" 10 18 DEVSIZE;
+#REGION "REGION_IOBUF" "R10C43D"  88 86 DEVSIZE;
 
 LOCATE UGROUP "THE_SPI_MASTER/SPI_group" REGION "REGION_SPI" ; 
 LOCATE UGROUP "THE_SPI_MEMORY/SPI_group" REGION "REGION_SPI" ;
@@ -40,3 +41,435 @@ LOCATE UGROUP "THE_MEDIA_UPLINK/media_interface_group" REGION "MEDIA_UPLINK" ;
 MULTICYCLE TO CELL "THE_MEDIA_DOWNLINK/SCI_DATA_OUT*" 50 ns;
 MULTICYCLE TO CELL "THE_MEDIA_UPLINK/SCI_DATA_OUT*" 50 ns;
 
+#################################################################
+# TDC Constraints
+#################################################################
+##############################################################################
+##                          REGION DECLERATION                             ##
+##############################################################################
+REGION "Region_E&F_1" "R11C50D" 10 60 DEVSIZE;
+REGION "Region_E&F_2" "R24C50D" 5 60 DEVSIZE;
+REGION "Region_E&F_3" "R38C50D" 10 60 DEVSIZE;
+REGION "Region_E&F_4" "R56C50D" 10 60 DEVSIZE;
+REGION "Region_E&F_5" "R74C50D" 10 60 DEVSIZE;
+REGION "Region_E&F_6" "R92C50D" 10 60 DEVSIZE;
+
+REGION "Region_E&F_7" "R11C120D" 10 44 DEVSIZE;
+REGION "Region_E&F_8" "R24C120D" 5 60 DEVSIZE;
+REGION "Region_E&F_9" "R38C120D" 10 60 DEVSIZE;
+REGION "Region_E&F_10" "R56C120D" 10 60 DEVSIZE;
+REGION "Region_E&F_11" "R74C120D" 10 60 DEVSIZE;
+REGION "Region_E&F_12" "R92C120D" 10 60 DEVSIZE;
+
+##############################################################################
+##                     REFERENCE CHANNEL PLACEMENT                         ##
+##############################################################################
+UGROUP "Ref_Ch" BBOX 1 51 
+       BLKNAME THE_TDC/The_Reference_Time/FC;
+LOCATE UGROUP "Ref_Ch" SITE "R8C66D" ;
+UGROUP "hit_ref_ch" 
+       BLKNAME THE_TDC/The_Reference_Time/hit_buf_RNO;
+LOCATE UGROUP "hit_ref_ch" SITE "R9C68D" ;
+
+##############################################################################
+##                 DELAY LINE and HIT BUFFER PLACEMENTS                    ##
+##############################################################################
+#
+UGROUP "FC_1" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/FC;
+LOCATE UGROUP "FC_1" SITE "R10C66D" ;
+UGROUP "hit_1" 
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_1" SITE "R11C68D" ;
+#
+UGROUP "FC_2" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/FC;
+LOCATE UGROUP "FC_2" SITE "R21C66D" ;
+UGROUP "hit_2" 
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_2" SITE "R22C68D" ;
+#
+UGROUP "FC_3" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/FC;
+LOCATE UGROUP "FC_3" SITE "R23C66D" ;
+UGROUP "hit_3" 
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_3" SITE "R24C68D" ;
+#
+UGROUP "FC_4" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/FC;
+LOCATE UGROUP "FC_4" SITE "R30C66D" ;
+UGROUP "hit_4" 
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_4" SITE "R31C68D" ;
+#
+UGROUP "FC_5" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/FC;
+LOCATE UGROUP "FC_5" SITE "R32C66D" ;
+UGROUP "hit_5" 
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_5" SITE "R33C68D" ;
+#
+UGROUP "FC_6" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/FC;
+LOCATE UGROUP "FC_6" SITE "R35C66D" ;
+UGROUP "hit_6" 
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_6" SITE "R36C68D" ;
+#
+UGROUP "FC_7" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/FC;
+LOCATE UGROUP "FC_7" SITE "R37C66D" ;
+UGROUP "hit_7" 
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_7" SITE "R38C68D" ;
+#
+UGROUP "FC_8" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/FC;
+LOCATE UGROUP "FC_8" SITE "R48C66D" ;
+UGROUP "hit_8" 
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_8" SITE "R49C68D" ;
+#
+UGROUP "FC_9" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/FC;
+LOCATE UGROUP "FC_9" SITE "R50C66D" ;
+UGROUP "hit_9" 
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_9" SITE "R51C68D" ;
+#
+UGROUP "FC_10" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/FC;
+LOCATE UGROUP "FC_10" SITE "R53C66D" ;
+UGROUP "hit_10" 
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_10" SITE "R54C68D" ;
+#
+UGROUP "FC_11" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/FC;
+LOCATE UGROUP "FC_11" SITE "R55C66D" ;
+UGROUP "hit_11" 
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_11" SITE "R56C68D" ;
+#
+UGROUP "FC_12" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/FC;
+LOCATE UGROUP "FC_12" SITE "R66C66D" ;
+UGROUP "hit_12" 
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_12" SITE "R67C68D" ;
+#
+UGROUP "FC_13" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/FC;
+LOCATE UGROUP "FC_13" SITE "R68C66D" ;
+UGROUP "hit_13" 
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_13" SITE "R69C68D" ;
+#
+UGROUP "FC_14" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/FC;
+LOCATE UGROUP "FC_14" SITE "R71C66D" ;
+UGROUP "hit_14" 
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_14" SITE "R72C68D" ;
+#
+UGROUP "FC_15" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/FC;
+LOCATE UGROUP "FC_15" SITE "R73C66D" ;
+UGROUP "hit_15" 
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_15" SITE "R74C68D" ;
+
+
+
+
+
+UGROUP "FC_16" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/FC;
+LOCATE UGROUP "FC_16" SITE "R8C125D" ;
+UGROUP "hit_16" 
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_16" SITE "R9C127D" ;
+#
+UGROUP "FC_17" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/FC;
+LOCATE UGROUP "FC_17" SITE "R10C125D" ;
+UGROUP "hit_17" 
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_17" SITE "R11C127D" ;
+#
+UGROUP "FC_18" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/FC;
+LOCATE UGROUP "FC_18" SITE "R21C125D" ;
+UGROUP "hit_18" 
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_18" SITE "R22C127D" ;
+#
+UGROUP "FC_19" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/FC;
+LOCATE UGROUP "FC_19" SITE "R23C125D" ;
+UGROUP "hit_19" 
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_19" SITE "R24C127D" ;
+#
+UGROUP "FC_20" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/FC;
+LOCATE UGROUP "FC_20" SITE "R30C125D" ;
+UGROUP "hit_20" 
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_20" SITE "R31C127D" ;
+#
+UGROUP "FC_21" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/FC;
+LOCATE UGROUP "FC_21" SITE "R32C125D" ;
+UGROUP "hit_21" 
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_21" SITE "R33C127D" ;
+#
+UGROUP "FC_22" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/FC;
+LOCATE UGROUP "FC_22" SITE "R35C125D" ;
+UGROUP "hit_22" 
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_22" SITE "R36C127D" ;
+#
+UGROUP "FC_23" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/FC;
+LOCATE UGROUP "FC_23" SITE "R37C125D" ;
+UGROUP "hit_23" 
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_23" SITE "R38C127D" ;
+#
+UGROUP "FC_24" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/FC;
+LOCATE UGROUP "FC_24" SITE "R48C125D" ;
+UGROUP "hit_24" 
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_24" SITE "R49C127D" ;
+#
+UGROUP "FC_25" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/FC;
+LOCATE UGROUP "FC_25" SITE "R50C125D" ;
+UGROUP "hit_25" 
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_25" SITE "R51C127D" ;
+#
+UGROUP "FC_26" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/FC;
+LOCATE UGROUP "FC_26" SITE "R53C125D" ;
+UGROUP "hit_26" 
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_26" SITE "R54C127D" ;
+#
+UGROUP "FC_27" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/FC;
+LOCATE UGROUP "FC_27" SITE "R55C125D" ;
+UGROUP "hit_27" 
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_27" SITE "R56C127D" ;
+#
+UGROUP "FC_28" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/FC;
+LOCATE UGROUP "FC_28" SITE "R66C125D" ;
+UGROUP "hit_28" 
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_28" SITE "R67C127D" ;
+#
+UGROUP "FC_29" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/FC;
+LOCATE UGROUP "FC_29" SITE "R68C125D" ;
+UGROUP "hit_29" 
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_29" SITE "R69C127D" ;
+#
+UGROUP "FC_30" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/FC;
+LOCATE UGROUP "FC_30" SITE "R71C125D" ;
+UGROUP "hit_30" 
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_30" SITE "R72C127D" ;
+#
+UGROUP "FC_31" BBOX 1 51 
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/FC;
+LOCATE UGROUP "FC_31" SITE "R73C125D" ;
+UGROUP "hit_31" 
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/hit_buf_RNO;
+LOCATE UGROUP "hit_31" SITE "R74C127D" ;
+
+##############################################################################
+##                          CHANNEL PLACEMENTS                             ##
+##############################################################################
+UGROUP "E&F_ref" # BBOX 4 5
+        BLKNAME THE_TDC/The_Reference_Time/hit_detect_i
+        BLKNAME THE_TDC/The_Reference_Time/hit_detect_reg
+       BLKNAME THE_TDC/The_Reference_Time/result_2_reg;
+LOCATE UGROUP "E&F_ref" REGION "Region_E&F_1" ;
+UGROUP "E&F_1" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_1_Channels/result_2_reg;
+LOCATE UGROUP "E&F_1" REGION "Region_E&F_1" ;
+UGROUP "E&F_2" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_2_Channels/result_2_reg;
+LOCATE UGROUP "E&F_2" REGION "Region_E&F_1" ;
+UGROUP "E&F_3" # BBOX 4 5
+        BLKNAME THE_TDC/GEN_Channels_3_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_3_Channels/result_2_reg;
+LOCATE UGROUP "E&F_3" REGION "Region_E&F_1" ;
+UGROUP "E&F_4" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_4_Channels/result_2_reg;
+LOCATE UGROUP "E&F_4" REGION "Region_E&F_2" ;
+UGROUP "E&F_5" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_5_Channels/result_2_reg;
+LOCATE UGROUP "E&F_5" REGION "Region_E&F_2" ;
+UGROUP "E&F_6" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_6_Channels/result_2_reg;
+LOCATE UGROUP "E&F_6" REGION "Region_E&F_3" ;
+UGROUP "E&F_7" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_7_Channels/result_2_reg;
+LOCATE UGROUP "E&F_7" REGION "Region_E&F_3" ;
+UGROUP "E&F_8" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_8_Channels/result_2_reg;
+LOCATE UGROUP "E&F_8" REGION "Region_E&F_3" ;
+UGROUP "E&F_9" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_9_Channels/result_2_reg;
+LOCATE UGROUP "E&F_9" REGION "Region_E&F_3" ;
+UGROUP "E&F_10" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_10_Channels/result_2_reg;
+LOCATE UGROUP "E&F_10" REGION "Region_E&F_4" ;
+UGROUP "E&F_11" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_11_Channels/result_2_reg;
+LOCATE UGROUP "E&F_11" REGION "Region_E&F_4" ;
+UGROUP "E&F_12" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_12_Channels/result_2_reg;
+LOCATE UGROUP "E&F_12" REGION "Region_E&F_4" ;
+UGROUP "E&F_13" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_13_Channels/result_2_reg;
+LOCATE UGROUP "E&F_13" REGION "Region_E&F_4" ;
+UGROUP "E&F_14" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_14_Channels/result_2_reg;
+LOCATE UGROUP "E&F_14" REGION "Region_E&F_5" ;
+UGROUP "E&F_15" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_15_Channels/result_2_reg;
+LOCATE UGROUP "E&F_15" REGION "Region_E&F_5" ;
+
+
+UGROUP "E&F_16" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_16_Channels/result_2_reg;
+LOCATE UGROUP "E&F_16" REGION "Region_E&F_7" ;
+UGROUP "E&F_17" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_17_Channels/result_2_reg;
+LOCATE UGROUP "E&F_17" REGION "Region_E&F_7" ;
+UGROUP "E&F_18" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_18_Channels/result_2_reg;
+LOCATE UGROUP "E&F_18" REGION "Region_E&F_7" ;
+UGROUP "E&F_19" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_19_Channels/result_2_reg;
+LOCATE UGROUP "E&F_19" REGION "Region_E&F_7" ;
+UGROUP "E&F_20" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_20_Channels/result_2_reg;
+LOCATE UGROUP "E&F_20" REGION "Region_E&F_8" ;
+UGROUP "E&F_21" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_21_Channels/result_2_reg;
+LOCATE UGROUP "E&F_21" REGION "Region_E&F_8" ;
+UGROUP "E&F_22" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_22_Channels/result_2_reg;
+LOCATE UGROUP "E&F_22" REGION "Region_E&F_9" ;
+UGROUP "E&F_23" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_23_Channels/result_2_reg;
+LOCATE UGROUP "E&F_23" REGION "Region_E&F_9" ;
+UGROUP "E&F_24" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_24_Channels/result_2_reg;
+LOCATE UGROUP "E&F_24" REGION "Region_E&F_9" ;
+UGROUP "E&F_25" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_25_Channels/result_2_reg;
+LOCATE UGROUP "E&F_25" REGION "Region_E&F_9" ;
+UGROUP "E&F_26" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_26_Channels/result_2_reg;
+LOCATE UGROUP "E&F_26" REGION "Region_E&F_10" ;
+UGROUP "E&F_27" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_27_Channels/result_2_reg;
+LOCATE UGROUP "E&F_27" REGION "Region_E&F_10" ;
+UGROUP "E&F_28" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_28_Channels/result_2_reg;
+LOCATE UGROUP "E&F_28" REGION "Region_E&F_10" ;
+UGROUP "E&F_29" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_29_Channels/result_2_reg;
+LOCATE UGROUP "E&F_29" REGION "Region_E&F_10" ;
+UGROUP "E&F_30" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_30_Channels/result_2_reg;
+LOCATE UGROUP "E&F_30" REGION "Region_E&F_11" ;
+UGROUP "E&F_31" # BBOX 4 5
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/hit_detect_i
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/hit_detect_reg
+       BLKNAME THE_TDC/GEN_Channels_31_Channels/result_2_reg;
+LOCATE UGROUP "E&F_31" REGION "Region_E&F_11" ;
+
+##############################################################################
+
+#MULTICYCLE TO PORT "TEST_LINE_*" 2.000000 X ;
+
+MULTICYCLE TO CELL "THE_TDC/GEN_Channels_*_Channels/lost_hit_cntr_*" 3.000000 X ;
+MULTICYCLE FROM CELL "THE_TDC/reset_tdc*" 3.000000 X ;
+
+
+MAXDELAY NET "THE_TDC/The_Reference_Time/hit_buf" 0.700000 nS DATAPATH_ONLY ;
+MAXDELAY NET "THE_TDC/GEN_Channels_*_Channels/hit_buf" 0.700000 nS DATAPATH_ONLY ;
+