signal adc_data_out : std_logic_vector(DEVICES*CHANNELS*RESOLUTION-1 downto 0);
signal adc_fco_out : std_logic_vector(DEVICES*RESOLUTION-1 downto 0);
signal adc_valid_out : std_logic_vector(DEVICES-1 downto 0);
-signal adc_debug : std_logic_vector(DEVICES*CHANNELS*32-1 downto 0);
+signal adc_debug : std_logic_vector(DEVICES*32-1 downto 0);
signal adc_restart : std_logic;
begin
DATA_VALID_OUT(5 downto 0) => adc_valid_out(5 downto 0),
DATA_VALID_OUT(6) => adc_valid_out(7),
- DEBUG(32*6*CHANNELS-1 downto 0)
- => adc_debug(32*6*CHANNELS-1 downto 0),
- DEBUG(32*7*CHANNELS -1 downto 32*6*CHANNELS)
- => adc_debug(32*8*CHANNELS-1 downto 32*7*CHANNELS)
+ DEBUG(32*6-1 downto 0)
+ => adc_debug(32*6-1 downto 0),
+ DEBUG(32*7 -1 downto 32*6)
+ => adc_debug(32*8-1 downto 32*7)
);
DATA_VALID_OUT(0) => adc_valid_out(6),
DATA_VALID_OUT(4 downto 1) => adc_valid_out(11 downto 8),
- DEBUG(32*1*CHANNELS-1 downto 0)
- => adc_debug(32*7*CHANNELS-1 downto 32*6*CHANNELS),
- DEBUG(32*5*CHANNELS -1 downto 32*1*CHANNELS)
- => adc_debug(32*12*CHANNELS-1 downto 32*8*CHANNELS)
+ DEBUG(32*1-1 downto 0)
+ => adc_debug(32*7-1 downto 32*6),
+ DEBUG(32*5 -1 downto 32*1)
+ => adc_debug(32*12-1 downto 32*8)
);
if BUS_RX.addr(7 downto 0) = x"80" then
BUS_TX.data <= ctrl_reg;
BUS_TX.ack <= '1';
- elsif BUS_RX.addr(7 downto 0) >= x"40" and BUS_RX.addr(7 downto 0) < x"80"
+ elsif BUS_RX.addr(7 downto 0) >= x"40" and BUS_RX.addr(7 downto 0) < x"50"
and BUS_RX.addr(5 downto 0) < std_logic_vector(to_unsigned(DEVICES*CHANNELS,6)) then
- BUS_TX.data <= adc_debug(to_integer(unsigned(BUS_RX.addr(5 downto 0)))*32+31 downto to_integer(unsigned(BUS_RX.addr(5 downto 0)))*32);
+ BUS_TX.data <= adc_debug(to_integer(unsigned(BUS_RX.addr(3 downto 0)))*32+31 downto to_integer(unsigned(BUS_RX.addr(3 downto 0)))*32);
BUS_TX.ack <= '1';
elsif BUS_RX.addr(7 downto 0) = x"83" then
BUS_TX.data <= (others => '0');
signal spi_sdi, spi_sdo, spi_sck : std_logic;
signal adcspi_ctrl : std_logic_vector(7 downto 0);
- signal regio_rx, busadc_rx, busspi_rx, busmem_rx : CTRLBUS_RX;
- signal regio_tx, busadc_tx, busspi_tx, busmem_tx : CTRLBUS_TX;
+ signal regio_rx, busadc_rx, busspi_rx, busmem_rx, bussed_rx : CTRLBUS_RX;
+ signal regio_tx, busadc_tx, busspi_tx, busmem_tx, bussed_tx : CTRLBUS_TX;
signal readout_rx : READOUT_RX;
signal readout_tx : readout_tx_array_t(0 to 11);
signal fee_data_in : std_logic_vector(32*DEVICES-1 downto 0);
signal fee_trg_statusbits_in : std_logic_vector(32*DEVICES-1 downto 0);
+ signal sed_debug : std_logic_vector(31 downto 0);
begin
---------------------------------------------------------------------------
---------------------------------------------------------------------------
THE_BUS_HANDLER : entity work.trb_net16_regio_bus_handler_record
generic map(
- PORT_NUMBER => 3,
- PORT_ADDRESSES => (0 => x"d000", 1 => x"d400", 2 => x"a000", others => x"0000"),
- PORT_ADDR_MASK => (0 => 9, 1 => 5, 2 => 12, others => 0),
+ PORT_NUMBER => 4,
+ PORT_ADDRESSES => (0 => x"d000", 1 => x"d400", 2 => x"a000", 3 => x"d500", others => x"0000"),
+ PORT_ADDR_MASK => (0 => 9, 1 => 5, 2 => 12, 3 => 2, others => 0),
PORT_MASK_ENABLE => 1
)
port map(
BUS_RX(0) => busmem_rx, --Flash
BUS_RX(1) => busspi_rx, --SPI
BUS_RX(2) => busadc_rx, --ADC
+ BUS_RX(3) => bussed_rx,
BUS_TX(0) => busmem_tx,
BUS_TX(1) => busspi_tx,
BUS_TX(2) => busadc_tx,
+ BUS_TX(3) => bussed_tx,
STAT_DEBUG => open
);
SPI_SDI_IN => FLASH_DOUT
);
+---------------------------------------------------------------------------
+-- SED Detection
+---------------------------------------------------------------------------
+ THE_SED : entity work.sedcheck
+ port map(
+ CLK => clk_100_i,
+ ERROR_OUT => open,
+ BUS_RX => bussed_rx,
+ BUS_TX => bussed_tx,
+ DEBUG => sed_debug
+ );
+
-------------------------------------------------------------------------------
-- SPI
-------------------------------------------------------------------------------
-- Test Connector - Logic Analyser
---------------------------------------------------------------------------
- TEST_LINE <= (others => '0');
+ TEST_LINE <= sed_debug(28 downto 24) & sed_debug(10 downto 0);
end architecture;