]> jspc29.x-matter.uni-frankfurt.de Git - tdc.git/commitdiff
few recent TDC updates
authorJan Michel <michel@physik.uni-frankfurt.de>
Wed, 14 Feb 2024 11:50:49 +0000 (12:50 +0100)
committerJan Michel <michel@physik.uni-frankfurt.de>
Wed, 14 Feb 2024 11:52:09 +0000 (12:52 +0100)
- add enable signal to channels to reset edge fifo

55 files changed:
releases/old/TDC.vhd [moved from releases/tdc_v2.3.1/TDC.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Adder_304.ngo [moved from releases/tdc_v2.3.1/Adder_304.ngo with 100% similarity]
releases/old/tdc_v2.3.1/BusHandler.vhd [moved from releases/tdc_v2.3.1/BusHandler.vhd with 100% similarity]
releases/old/tdc_v2.3.1/BusHandler_record.vhd [moved from releases/tdc_v2.3.1/BusHandler_record.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Channel.vhd [moved from releases/tdc_v2.3.1/Channel.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Channel_200.vhd [moved from releases/tdc_v2.3.1/Channel_200.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Channel_200.vhd.304 [moved from releases/tdc_v2.3.1/Channel_200.vhd.304 with 100% similarity]
releases/old/tdc_v2.3.1/Encoder_288_Bit.vhd [moved from releases/tdc_v2.3.1/Encoder_288_Bit.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Encoder_304_Bit.vhd [moved from releases/tdc_v2.3.1/Encoder_304_Bit.vhd with 100% similarity]
releases/old/tdc_v2.3.1/LogicAnalyser.vhd [moved from releases/tdc_v2.3.1/LogicAnalyser.vhd with 100% similarity]
releases/old/tdc_v2.3.1/ROM_encoder_ecp3.vhd [moved from releases/tdc_v2.3.1/ROM_encoder_ecp3.vhd with 100% similarity]
releases/old/tdc_v2.3.1/ROM_encoder_ecp5.vhd [moved from releases/tdc_v2.3.1/ROM_encoder_ecp5.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Readout.vhd [moved from releases/tdc_v2.3.1/Readout.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Readout_record.vhd [moved from releases/tdc_v2.3.1/Readout_record.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Readout_record_noDecode.vhd [moved from releases/tdc_v2.3.1/Readout_record_noDecode.vhd with 100% similarity]
releases/old/tdc_v2.3.1/ShiftRegisterSISO.vhd [moved from releases/tdc_v2.3.1/ShiftRegisterSISO.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Stretcher.vhd [moved from releases/tdc_v2.3.1/Stretcher.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Stretcher_A.vhd [moved from releases/tdc_v2.3.1/Stretcher_A.vhd with 100% similarity]
releases/old/tdc_v2.3.1/Stretcher_B.vhd [moved from releases/tdc_v2.3.1/Stretcher_B.vhd with 100% similarity]
releases/old/tdc_v2.3.1/TDC.vhd [moved from releases/tdc_v2.3/TDC.vhd with 100% similarity]
releases/old/tdc_v2.3.1/TDC_record.vhd [moved from releases/tdc_v2.3.1/TDC_record.vhd with 100% similarity]
releases/old/tdc_v2.3.1/TriggerHandler.vhd [moved from releases/tdc_v2.3.1/TriggerHandler.vhd with 100% similarity]
releases/old/tdc_v2.3.1/TriggerHandler_noDecode.vhd [moved from releases/tdc_v2.3.1/TriggerHandler_noDecode.vhd with 100% similarity]
releases/old/tdc_v2.3.1/bit_sync.vhd [moved from releases/tdc_v2.3.1/bit_sync.vhd with 100% similarity]
releases/old/tdc_v2.3.1/cbmtof.vhd [moved from releases/tdc_v2.3.1/cbmtof.vhd with 100% similarity]
releases/old/tdc_v2.3.1/dirich.vhd [moved from releases/tdc_v2.3.1/dirich.vhd with 100% similarity]
releases/old/tdc_v2.3.1/dirich_tdc_constraints.lpf [moved from releases/tdc_v2.3.1/dirich_tdc_constraints.lpf with 100% similarity]
releases/old/tdc_v2.3.1/dirich_trbnet_constraints.lpf [moved from releases/tdc_v2.3.1/dirich_trbnet_constraints.lpf with 100% similarity]
releases/old/tdc_v2.3.1/fallingEdgeDetect.vhd [moved from releases/tdc_v2.3.1/fallingEdgeDetect.vhd with 100% similarity]
releases/old/tdc_v2.3.1/hit_mux.vhd [moved from releases/tdc_v2.3.1/hit_mux.vhd with 100% similarity]
releases/old/tdc_v2.3.1/risingEdgeDetect.vhd [moved from releases/tdc_v2.3.1/risingEdgeDetect.vhd with 100% similarity]
releases/old/tdc_v2.3.1/rom_encoder/ecp3/ROM_encoder_3.ipx [moved from releases/tdc_v2.3.1/rom_encoder/ecp3/ROM_encoder_3.ipx with 100% similarity]
releases/old/tdc_v2.3.1/rom_encoder/ecp3/ROM_encoder_3.vhd [moved from releases/tdc_v2.3.1/rom_encoder/ecp3/ROM_encoder_3.vhd with 100% similarity]
releases/old/tdc_v2.3.1/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.sbx [moved from releases/tdc_v2.3.1/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.sbx with 100% similarity]
releases/old/tdc_v2.3.1/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.vhd [moved from releases/tdc_v2.3.1/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.vhd with 100% similarity]
releases/old/tdc_v2.3.1/rom_encoder/rom_encoder.mem [moved from releases/tdc_v2.3.1/rom_encoder/rom_encoder.mem with 100% similarity]
releases/old/tdc_v2.3.1/tdc_components.vhd [moved from releases/tdc_v2.3.1/tdc_components.vhd with 100% similarity]
releases/old/tdc_v2.3.1/tdc_constraints_64.lpf [moved from releases/tdc_v2.3.1/tdc_constraints_64.lpf with 100% similarity]
releases/old/tdc_v2.3.1/tdc_version.vhd [moved from releases/tdc_v2.3.1/tdc_version.vhd with 100% similarity]
releases/old/tdc_v2.3.1/trb3_periph_32PinAddOn.vhd [moved from releases/tdc_v2.3.1/trb3_periph_32PinAddOn.vhd with 100% similarity]
releases/old/tdc_v2.3.1/trb3_periph_ADA.vhd [moved from releases/tdc_v2.3.1/trb3_periph_ADA.vhd with 100% similarity]
releases/old/tdc_v2.3.1/trb3_periph_gpin.vhd [moved from releases/tdc_v2.3.1/trb3_periph_gpin.vhd with 100% similarity]
releases/old/tdc_v2.3.1/trb3_periph_padiwa.vhd [moved from releases/tdc_v2.3.1/trb3_periph_padiwa.vhd with 100% similarity]
releases/old/tdc_v2.3.1/trbnet_constraints.lpf [moved from releases/tdc_v2.3.1/trbnet_constraints.lpf with 100% similarity]
releases/old/tdc_v2.3.1/trbnet_constraints_dirich.lpf [moved from releases/tdc_v2.3.1/trbnet_constraints_dirich.lpf with 100% similarity]
releases/old/tdc_v2.3.1/unimportant_lines_constraints.lpf [moved from releases/tdc_v2.3.1/unimportant_lines_constraints.lpf with 100% similarity]
releases/old/tdc_v2.3.1/up_counter.vhd [moved from releases/tdc_v2.3.1/up_counter.vhd with 100% similarity]
releases/tdc_v2.3/Channel.vhd
releases/tdc_v2.3/Channel_200.vhd
releases/tdc_v2.3/TDC_record.vhd
releases/tdc_v2.3/tdc_components.vhd
releases/tdc_v2.3/tdc_constraints_64.lpf
releases/tdc_v2.3/tdc_constraints_64_rearranged.lpf
releases/tdc_v2.3/trb3_periph_ADA.vhd
releases/tdc_v2.3/unimportant_lines_constraints.lpf

index f29d995cbdaed74e017770381c78c6f3ae2130e9..0ad37d759c986b8b8fd6179b0b9db949a1ab4204 100644 (file)
@@ -41,7 +41,8 @@ entity Channel is
     ENCODER_START_NUMBER      : out std_logic_vector(23 downto 0) := (others => '0');
     ENCODER_FINISHED_NUMBER   : out std_logic_vector(23 downto 0) := (others => '0');
     FIFO_WRITE_NUMBER         : out std_logic_vector(23 downto 0) := (others => '0');
---
+    CHANNEL_ENABLE_IN         : in  std_logic;
+         
     Channel_200_DEBUG_OUT     : out std_logic_vector(31 downto 0);
     Channel_DEBUG_OUT         : out std_logic_vector(31 downto 0)
     );
@@ -124,6 +125,7 @@ begin
       ENCODER_START_OUT         => encoder_start,
       ENCODER_FINISHED_OUT      => encoder_finished,
       FIFO_WRITE_OUT            => fifo_write,
+      CHANNEL_ENABLE_IN         => CHANNEL_ENABLE_IN,
       CHANNEL_200_DEBUG_OUT     => channel_200_debug);
 
   Buffer_128 : if RING_BUFFER_SIZE = 3 or RING_BUFFER_SIZE = 7 generate
index 9bca4694c0d6ce47f4d2ad4b49ed437cc1525baa..2fb52af73d7d2a2000d8c72ad400c0744b96a304 100644 (file)
@@ -49,6 +49,7 @@ entity Channel_200 is
     ENCODER_START_OUT         : out std_logic;
     ENCODER_FINISHED_OUT      : out std_logic;
     FIFO_WRITE_OUT            : out std_logic;
+    CHANNEL_ENABLE_IN         : in  std_logic;
     CHANNEL_200_DEBUG_OUT     : out std_logic_vector(31 downto 0)
     );
 
@@ -284,6 +285,10 @@ begin  -- Channel_200
             rd_ptr <= rd_ptr + 1;
           end if;
         end if;
+        if CHANNEL_ENABLE_IN = '0' then
+          rd_ptr <= 0;
+          wr_ptr <= 0;
+        end if;
       end if;
     end process EdgeTypeCapture;
   end generate isChannelEdge;
index d0c59be60ff700fbf1179fbecff4c235b8b1ec01..d9f3652e9fc8b70b91c44319634a6c700d69f747 100644 (file)
@@ -307,7 +307,7 @@ begin
     The_Stretcher : entity work.Stretcher
       generic map (
         CHANNEL => CHANNEL_NUMBER-1,
-        DEPTH   => 4+(FPGA_TYPE/4)) --4 for ECP3, 5 for ECP5
+        DEPTH   => 4+1*(FPGA_TYPE/4)) --3 for ECP3, 5 for ECP5
       port map (
         PULSE_IN  => edge_falling(CHANNEL_NUMBER-1 downto 1),
         PULSE_OUT => edge_falling_d(CHANNEL_NUMBER-1 downto 1));
@@ -361,9 +361,12 @@ begin
   end generate GEN_HitBlock;
 
   GEN_hit_mux : for i in 1 to CHANNEL_NUMBER-1 generate
+    signal real_enable : std_logic_vector(CHANNEL_NUMBER downto 0);
+  begin
+    real_enable(i) <= ch_en(i);-- or calibration_on;
     hit_mux_ch : hit_mux
       port map (
-        CH_EN_IN           => ch_en(i),
+        CH_EN_IN           => real_enable(i),
         CALIBRATION_EN_IN  => '0',
         HIT_CALIBRATION_IN => '0',
         HIT_PHYSICAL_IN    => hit_latch(i),
@@ -423,8 +426,10 @@ begin
       ENCODER_START_NUMBER      => ch_encoder_start_number(0),
       ENCODER_FINISHED_NUMBER   => ch_encoder_finished_number(0),
       FIFO_WRITE_NUMBER         => ch_fifo_write_number(0),
+      CHANNEL_ENABLE_IN         => '1',
       Channel_200_DEBUG_OUT     => ch_200_debug(0),
-      Channel_DEBUG_OUT         => ch_debug(0));
+      Channel_DEBUG_OUT         => ch_debug(0)
+      );
 
   -- TDC Channels
   GEN_Channels : for i in 1 to CHANNEL_NUMBER-1 generate
@@ -458,8 +463,10 @@ begin
         ENCODER_START_NUMBER      => ch_encoder_start_number(i),
         ENCODER_FINISHED_NUMBER   => ch_encoder_finished_number(i),
         FIFO_WRITE_NUMBER         => ch_fifo_write_number(i),
+        CHANNEL_ENABLE_IN         => ch_en(i),
         Channel_200_DEBUG_OUT     => ch_200_debug(i),
-        Channel_DEBUG_OUT         => ch_debug(i));
+        Channel_DEBUG_OUT         => ch_debug(i)
+        );
   end generate GEN_Channels;
 --   ch_data(CHANNEL_NUMBER) <= (others => '1');
 
index d637ed951990367197ffbc0b134bda162929a7e3..0387de6763dc85d0bc27091f2193cf803e4c6ad1 100644 (file)
@@ -142,6 +142,7 @@ package tdc_components is
       ENCODER_START_NUMBER      : out std_logic_vector(23 downto 0);
       ENCODER_FINISHED_NUMBER   : out std_logic_vector(23 downto 0);
       FIFO_WRITE_NUMBER         : out std_logic_vector(23 downto 0);
+      CHANNEL_ENABLE_IN         : in  std_logic;
       Channel_200_DEBUG_OUT     : out std_logic_vector(31 downto 0);
       Channel_DEBUG_OUT         : out std_logic_vector(31 downto 0));
   end component;
@@ -171,6 +172,7 @@ package tdc_components is
       ENCODER_START_OUT         : out std_logic;
       ENCODER_FINISHED_OUT      : out std_logic;
       FIFO_WRITE_OUT            : out std_logic;
+      CHANNEL_ENABLE_IN         : in  std_logic;
       CHANNEL_200_DEBUG_OUT     : out std_logic_vector(31 downto 0));
   end component Channel_200;
 
index ff6c89a96af8409f9d44d99e6862cc0efdc13528..5bda2e8c462db8626b620b9df29d775a7a330eeb 120000 (symlink)
@@ -1 +1 @@
-tdc_constraints_64_orig.lpf
\ No newline at end of file
+tdc_constraints_64_rearranged.lpf
\ No newline at end of file
index 62ee907f52277cda44b9493082f3993d283ff6c4..9445caa57c059b27db17003ea4fc611eb0fa5e26 100644 (file)
@@ -1129,11 +1129,11 @@ LOCATE UGROUP "EF_X3Y7" SITE "R105C131D" ; # X3Y7
 UGROUP "Stretcher_A" BBOX 6 8\r
         BLKNAME THE_TDC/gen_double_withStretcher.The_Stretcher/Stretcher_A_1\r
 ;\r
-LOCATE UGROUP "Stretcher_A" SITE "R2C174D";\r
+LOCATE UGROUP "Stretcher_A" SITE "R2C154D";\r
 \r
 UGROUP "Stretcher_B" BBOX 6 8\r
         BLKNAME THE_TDC/gen_double_withStretcher.The_Stretcher/Stretcher_B_1\r
 ;\r
-LOCATE UGROUP "Stretcher_B" SITE "R2C2D";\r
+LOCATE UGROUP "Stretcher_B" SITE "R2C22D";\r
 \r
 \r
index 8f373eb766ae87d0090957f043db246fe2f9bb9f..a2062a5fb8ee8f9fd3fd790c1f803858e3446b36 100644 (file)
@@ -35,7 +35,9 @@ entity trb3_periph_ADA is
                                         --Bit 2/3 output, serial link TX active
     --Connection to ADA AddOn
 --     SPARE_LINE           : inout std_logic_vector(3 downto 0);  --inputs only
-    INP                  : in    std_logic_vector(63 downto 0);
+    ADDON_TEST             : out   std_logic_vector(4 downto 1);
+    ADDON_TEMP             : inout std_logic_vector(2 downto 1);
+    INP                    : in    std_logic_vector(63 downto 0);
     --DAC
     DAC_IN_L_SDI           : in    std_logic;
     DAC_OUT_L_SDO          : out   std_logic;
@@ -127,8 +129,8 @@ architecture trb3_periph_ADA_arch of trb3_periph_ADA is
   --Slow Control channel
   signal common_ctrl_reg        : std_logic_vector(std_COMCTRLREG*32-1 downto 0);
   
-  signal ctrlbus_rx, bustdc_rx, bustools_rx, bus_master_out, bustrigger_rx  : CTRLBUS_RX;
-  signal ctrlbus_tx, bustdc_tx, bustools_tx, bus_master_in, bustrigger_tx   : CTRLBUS_TX;
+  signal ctrlbus_rx, bustdc_rx, bustools_rx, bus_master_out, busfee_rx  : CTRLBUS_RX;
+  signal ctrlbus_tx, bustdc_tx, bustools_tx, bus_master_in, busfee_tx   : CTRLBUS_TX;
   signal bus_master_active : std_logic;
   signal timer             : TIMERS;
   signal lcd_data          : std_logic_vector(511 downto 0);
@@ -288,7 +290,7 @@ pll_calibration: entity work.pll_in125_out33
     generic map(
       PORT_NUMBER      => 3,
       PORT_ADDRESSES   => (0 => x"d000", 1 => x"c000", 2 => x"e000", others => x"0000"),
-      PORT_ADDR_MASK   => (0 => 12,      1 => 12,      2 => 12,      others => 0),
+      PORT_ADDR_MASK   => (0 => 12,      1 => 12,      2 => 5,      others => 0),
       PORT_MASK_ENABLE => 1
       )
     port map(
@@ -300,10 +302,10 @@ pll_calibration: entity work.pll_in125_out33
 
       BUS_RX(0) => bustools_rx,         --Flash, SPI, UART, ADC, SED
       BUS_RX(1) => bustdc_rx,           --TDC config
-      BUS_RX(2) => bustrigger_rx,
+      BUS_RX(2) => busfee_rx,
       BUS_TX(0) => bustools_tx,
       BUS_TX(1) => bustdc_tx,
-      BUS_TX(2) => bustrigger_tx,
+      BUS_TX(2) => busfee_tx,
 
       STAT_DEBUG => open
       );
@@ -354,29 +356,50 @@ pll_calibration: entity work.pll_in125_out33
       );      
 
       
-THE_TRIGGER_LOGIC : entity work.trigger_logic
-  generic map(
-    INPUTS  => 24,
-    OUTPUTS => 8
-    )
-  port map(
-    CLK      => clk_100_i,
-    RESET    => reset_i,
+--THE_TRIGGER_LOGIC : entity work.trigger_logic
+  --generic map(
+    --INPUTS  => 24,
+    --OUTPUTS => 8
+    --)
+  --port map(
+    --CLK      => clk_100_i,
+    --RESET    => reset_i,
     
-    --Slowcontrol
-    BUS_RX     => bustrigger_rx,
-    BUS_TX     => bustrigger_tx,
+    ----Slowcontrol
+    --BUS_RX     => bustrigger_rx,
+    --BUS_TX     => bustrigger_tx,
     
-    --Inputs and Outputs
-    INPUT  => hit_in_i(24 downto 1),
-    OUTPUT => triggerlogic_out(7 downto 0)
-    );
-  FPGA5_COMM(10 downto 7) <= trig_gen_out_i or triggerlogic_out(3 downto 0);
+    ----Inputs and Outputs
+    --INPUT  => hit_in_i(24 downto 1),
+    --OUTPUT => triggerlogic_out(7 downto 0)
+    --);
+  --FPGA5_COMM(10 downto 7) <= trig_gen_out_i or triggerlogic_out(3 downto 0);
 
   
-  --FPGA5_COMM(10 downto 7) <= trig_gen_out_i;
+  FPGA5_COMM(10 downto 7) <= trig_gen_out_i;
 
+---------------------------------------------------------------------------
+-- FEE test signals and temperature sensors 
+---------------------------------------------------------------------------  
+gen_fee_test : if USE_TEST_SIGNALS = 1 generate
+ THE_FEE_TEST : entity work.fee_signals
+   port map(
+     CLK => clk_100_i,
+     RESET => reset_i,
+     BUS_RX => busfee_rx,
+     BUS_TX => busfee_tx,
      
+     TEST_SIG_OUT(3 downto 0) => ADDON_TEST,
+     FEETEMP(1 downto 0)      => ADDON_TEMP
+     );
+end generate;
+
+gen_no_fee_test : if USE_TEST_SIGNALS = 0 generate
+  busfee_tx.unknown <= busfee_rx.write or busfee_rx.read;
+  busfee_tx.ack     <= '0';
+  busfee_tx.nack    <= '0';
+end generate;
+
 ---------------------------------------------------------------------------
 -- Feature I/O
 ---------------------------------------------------------------------------      
index 052a6245827206214b0eb853400e7db7cc59cac2..e1950c85123ee330e077598b2e3ed1695b016586 100644 (file)
@@ -3,6 +3,7 @@
 #############################################################################
 BLOCK PATH FROM CLKNET "THE_TDC/edge_rising[*]";
 BLOCK NET "THE_TDC/hit_in_s*";
+BLOCK NET "THE_TDC/GEN*hit_in_s*";
 BLOCK PATH FROM CLKNET "THE_TDC/hit_in_s*";
 BLOCK PATH FROM CLKNET "THE_TDC/*hit_in_s*" ;
 
@@ -36,10 +37,12 @@ MULTICYCLE FROM CELL "THE_TDC/hit_edge[*]" TO CELL "THE_TDC/GEN_Channels.*.Chann
 MULTICYCLE TO CELL "THE_TDC/edge_rising_100_r[*]" 4 x;
 MULTICYCLE FROM CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/ringBuffer_almost_full_flag*" TO CELL "THE_TDC/TheReadout/data_out_r[*]" 2 x;
 
+
 #MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo.FC/FF*" 4x;
 #MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo.FC/FF*" 4x;
 #MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo5.FC/FF*" 4x;
 #MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo5.FC/FF*" 4x;
+MULTICYCLE FROM CELL "THE_TDC/calibration_on" 4x;
 
 MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/CHANNEL_200_DEBUG_OUT_1[*]" 4x;
 MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/CHANNEL_200_DEBUG_OUT_1[*]" 4x;