From f9b3dd18d99e06f68d36d927cb2056bfad4666ae Mon Sep 17 00:00:00 2001 From: Cahit Date: Fri, 28 Feb 2014 20:29:26 +0100 Subject: [PATCH] Changes in the code and constraint to meet the timing --- 32PinAddOn/compile_periph_gsi.pl | 4 +- 32PinAddOn/nodes_lxhadeb07.txt | 2 +- 32PinAddOn/trb3_periph_32PinAddOn.vhd | 2 +- tdc_releases/tdc_v1.6/Readout.vhd | 96 +- tdc_releases/tdc_v1.6/TDC.vhd | 12 +- tdc_releases/tdc_v1.6/tdc_constraints.lpf | 8 +- tdc_releases/tdc_v1.6/tdc_constraints_2.lpf | 930 +++++++++++++++++++ tdc_releases/tdc_v1.6/trbnet_constraints.lpf | 6 +- 8 files changed, 973 insertions(+), 87 deletions(-) create mode 100644 tdc_releases/tdc_v1.6/tdc_constraints_2.lpf diff --git a/32PinAddOn/compile_periph_gsi.pl b/32PinAddOn/compile_periph_gsi.pl index 5394897..ea839b7 100755 --- a/32PinAddOn/compile_periph_gsi.pl +++ b/32PinAddOn/compile_periph_gsi.pl @@ -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); diff --git a/32PinAddOn/nodes_lxhadeb07.txt b/32PinAddOn/nodes_lxhadeb07.txt index ece0f59..9e579e9 100644 --- a/32PinAddOn/nodes_lxhadeb07.txt +++ b/32PinAddOn/nodes_lxhadeb07.txt @@ -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 diff --git a/32PinAddOn/trb3_periph_32PinAddOn.vhd b/32PinAddOn/trb3_periph_32PinAddOn.vhd index ad6f643..fdb9363 100644 --- a/32PinAddOn/trb3_periph_32PinAddOn.vhd +++ b/32PinAddOn/trb3_periph_32PinAddOn.vhd @@ -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, diff --git a/tdc_releases/tdc_v1.6/Readout.vhd b/tdc_releases/tdc_v1.6/Readout.vhd index 4d3da45..c11699f 100644 --- a/tdc_releases/tdc_v1.6/Readout.vhd +++ b/tdc_releases/tdc_v1.6/Readout.vhd @@ -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 ------------------------------------------------------------------------------- diff --git a/tdc_releases/tdc_v1.6/TDC.vhd b/tdc_releases/tdc_v1.6/TDC.vhd index 0275363..42e66ef 100644 --- a/tdc_releases/tdc_v1.6/TDC.vhd +++ b/tdc_releases/tdc_v1.6/TDC.vhd @@ -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 diff --git a/tdc_releases/tdc_v1.6/tdc_constraints.lpf b/tdc_releases/tdc_v1.6/tdc_constraints.lpf index 4c59ca0..fc4eef1 100644 --- a/tdc_releases/tdc_v1.6/tdc_constraints.lpf +++ b/tdc_releases/tdc_v1.6/tdc_constraints.lpf @@ -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 index 0000000..cf3911f --- /dev/null +++ b/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf @@ -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; diff --git a/tdc_releases/tdc_v1.6/trbnet_constraints.lpf b/tdc_releases/tdc_v1.6/trbnet_constraints.lpf index 38622c4..54a3bce 100644 --- a/tdc_releases/tdc_v1.6/trbnet_constraints.lpf +++ b/tdc_releases/tdc_v1.6/trbnet_constraints.lpf @@ -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 -- 2.43.0