--Connections
-- SPARE_LINE : inout std_logic_vector(3 downto 0);
- INP : in std_logic_vector(63 downto 0);
+ INP : in std_logic_vector(PHYSICAL_INPUTS-1 downto 0);
+ ADDON_TRIGGER_OUT : out std_logic_vector(USE_ADDON_TRIGGER_OUT*TRIG_GEN_OUTPUT_NUM-1 downto 0);
--Flash ROM & Reboot
FLASH_CLK : out std_logic;
PROGRAMN : out std_logic; --reboot FPGA
--DAC
- OUT_SDO : out std_logic_vector(4 downto 1);
- IN_SDI : in std_logic_vector(4 downto 1);
- OUT_SCK : out std_logic_vector(4 downto 1);
- OUT_CS : out std_logic_vector(4 downto 1);
+ OUT_SDO : out std_logic_vector(4-USE_ADDON_TRIGGER_OUT downto 1);
+ IN_SDI : in std_logic_vector(4-USE_ADDON_TRIGGER_OUT downto 1);
+ OUT_SCK : out std_logic_vector(4-USE_ADDON_TRIGGER_OUT downto 1);
+ OUT_CS : out std_logic_vector(4-USE_ADDON_TRIGGER_OUT downto 1);
--Misc
TEMPSENS : inout std_logic; --Temperature Sensor
CODE_LINE : in std_logic_vector(1 downto 0);
signal feature_outputs_i : std_logic_vector(15 downto 0);
signal spi_cs, spi_mosi, spi_miso, spi_clk, spi_clr : std_logic_vector(15 downto 0);
signal uart_rx, uart_tx, debug_rx, debug_tx : std_logic;
- signal trig_gen_out_i : std_logic_vector(3 downto 0);
+ signal trig_gen_out_i : std_logic_vector(TRIG_GEN_OUTPUT_NUM-1 downto 0);
signal sed_error_i : std_logic;
signal serdes_i : std_logic_vector(3 downto 0);
attribute nopad : string;
attribute nopad of serdes_i : signal is "true";
- signal triggerlogic_out : std_logic_vector(7 downto 0);
- signal triggerlogic_in : std_logic_vector(28 downto 1);
+ -- signal triggerlogic_out : std_logic_vector(7 downto 0);
+ -- signal triggerlogic_in : std_logic_vector(28 downto 1);
--TDC
- signal hit_in_i : std_logic_vector(64 downto 1);
+ signal hit_in_i : std_logic_vector(PHYSICAL_INPUTS downto 1);
signal logic_analyser_i : std_logic_vector(15 downto 0);
DEBUG_TX_OUT => debug_tx,
--Trigger & Monitor
- MONITOR_INPUTS(51 downto 0) => hit_in_i(52 downto 1),
- MONITOR_INPUTS(55 downto 52) => trig_gen_out_i,
- TRIG_GEN_INPUTS => hit_in_i(52 downto 1),
+ MONITOR_INPUTS(47 downto 0) => hit_in_i(PHYSICAL_INPUTS downto 1),
+ MONITOR_INPUTS(MONITOR_INPUT_NUM-1 downto PHYSICAL_INPUTS) => trig_gen_out_i,
+ TRIG_GEN_INPUTS => hit_in_i(PHYSICAL_INPUTS downto 1),
TRIG_GEN_OUTPUTS => trig_gen_out_i,
LCD_OUT => lcd_out,
--SED
-- INPUT => triggerlogic_in,
-- 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(3 downto 0);-- or triggerlogic_out(3 downto 0);
+ ADDON_TRIGGER_OUT(USE_ADDON_TRIGGER_OUT*TRIG_GEN_OUTPUT_NUM-1 downto 0) <= trig_gen_out_i(USE_ADDON_TRIGGER_OUT*TRIG_GEN_OUTPUT_NUM-1 downto 0);
+
-- triggerlogic_in <= hit_in_i(28 downto 1) when rising_edge(clk_100_i);
--FPGA5_COMM(10 downto 7) <= trig_gen_out_i;
bustrigger_tx.ack <= '0';
feature_outputs_i(14) <= debug_rx;
feature_outputs_i(15) <= debug_tx;
- OUT_CS <= spi_cs(3 downto 0);
- OUT_SCK <= spi_clk(3 downto 0);
- OUT_SDO <= spi_mosi(3 downto 0);
- spi_miso(3 downto 0) <= IN_SDI;
+ OUT_CS <= spi_cs (3-USE_ADDON_TRIGGER_OUT downto 0);
+ OUT_SCK <= spi_clk (3-USE_ADDON_TRIGGER_OUT downto 0);
+ OUT_SDO <= spi_mosi(3-USE_ADDON_TRIGGER_OUT downto 0);
+ spi_miso(3-USE_ADDON_TRIGGER_OUT downto 0) <= IN_SDI;
---------------------------------------------------------------------------
-- LED
-- Test Connector
---------------------------------------------------------------------------
-- TEST_LINE(15 downto 0) <= (others => '0');
- TEST_LINE(7 downto 0) <= triggerlogic_out;
+ -- TEST_LINE(7 downto 0) <= triggerlogic_out;
---------------------------------------------------------------------------
-- Test Circuits
-- For ToT Measurements
gen_double : if DOUBLE_EDGE_TYPE = 2 and USE_PADIWA_FAST_ONLY = 0 generate
- Gen_Hit_In_Signals : for i in 1 to 32 generate
+ Gen_Hit_In_Signals : for i in 1 to PHYSICAL_INPUTS generate
hit_in_i(i*2-1) <= INP(i-1);
hit_in_i(i*2) <= not INP(i-1);
-- input_i(i) <= INP(i-1);
end generate;
gen_double_padiwa_fast : if DOUBLE_EDGE_TYPE = 2 and USE_PADIWA_FAST_ONLY = 1 generate
- Gen_Hit_Fast_Signals : for i in 1 to 32 generate
+ Gen_Hit_Fast_Signals : for i in 1 to PHYSICAL_INPUTS generate
hit_in_i(i*2-1) <= INP(i*2-2);
hit_in_i(i*2) <= not INP(i*2-2);
-- input_i(i) <= INP(i*2-2);