attribute syn_keep : boolean;
attribute syn_preserve : boolean;
- signal clk_sys, clk_full, clk_full_osc, clk_cal : std_logic;
- signal GSR_N : std_logic;
- signal reset_i : std_logic;
- signal clear_i : std_logic;
- signal do_reboot_i, reboot_from_gbe : std_logic;
+ signal clk_sys : std_logic;
+ signal clk_full : std_logic;
+ signal clk_full_osc : std_logic;
+ signal clk_cal : std_logic;
+ signal GSR_N : std_logic;
+ signal reset_i : std_logic;
+ signal clear_i : std_logic;
+ signal do_reboot_i : std_logic;
+ signal reboot_from_gbe : std_logic;
signal time_counter : unsigned(31 downto 0) := (others => '0');
signal led : std_logic_vector(1 downto 0);
signal cts_addon_triggers_in : std_logic_vector(ADDON_LINE_COUNT-1 downto 0);
+ signal cts_output_multiplexers_i : std_logic_vector(CTS_OUTPUT_MULTIPLEXERS - 1 downto 0);
+
signal cts_trg_send : std_logic;
signal cts_trg_type : std_logic_vector(3 downto 0);
signal cts_trg_number : std_logic_vector(15 downto 0);
attribute syn_keep of bustc_rx : signal is true;
attribute syn_preserve of bustc_rx : signal is true;
+ signal tx_dlm_i : std_logic;
+ signal rx_dlm_i : std_logic;
+
begin
---------------------------------------------------------------------------
DEBUG_OUT => debug_clock_reset
);
-
proc_make_reset : process begin
wait until rising_edge(clk_sys);
if(reset_via_gbe = '1') then
---------------------------------------------------------------------------
-- PCSA
---------------------------------------------------------------------------
-bussci1_tx.data <= (others => '0');
-bussci1_tx.ack <= '0';
-bussci1_tx.nack <= '0';
-bussci1_tx.unknown <= '1';
+ bussci1_tx.data <= (others => '0');
+ bussci1_tx.ack <= '0';
+ bussci1_tx.nack <= '0';
+ bussci1_tx.unknown <= '1';
---------------------------------------------------------------------------
-- PCSB Downlink without backplane is SFP
---------------------------------------------------------------------------
gen_PCSB : if USE_BACKPLANE = c_NO and USE_ADDON = c_NO generate
- THE_MEDIA_PCSB : entity work.med_ecp3_sfp_sync
+ THE_MEDIA_PCSB : entity work.med_ecp3_sfp_sync_RS
generic map(
SERDES_NUM => 3,
IS_SYNC_SLAVE => c_NO
MEDIA_MED2INT => med2int(0),
MEDIA_INT2MED => int2med(0),
--Sync operation
- RX_DLM => open,
- RX_DLM_WORD => open,
- TX_DLM => open,
- TX_DLM_WORD => open,
+ RX_DLM_OUT => rx_dlm_i,
+ RX_DLM_WORD_OUT => open,
+ TX_DLM_IN => tx_dlm_i,
+ TX_DLM_WORD_IN => x"aa",
--SFP Connection
SD_PRSNT_N_IN => SFP_MOD0(1),
SD_LOS_IN => SFP_LOS(1),
CTRL_DEBUG => open
);
PCSSW <= "01001110"; --SFP2 on B3, AddOn on D1
+
+ THE_SYNC_PROC: process( clk_sys )
+ begin
+ if( rising_edge(clk_sys) ) then
+ tx_dlm_i <= cts_output_multiplexers_i(0);
+ end if;
+ end process THE_SYNC_PROC;
+
+ --HDR_IO(10 downto 1) <= (others => '0');
+ HDR_IO(10) <= '0';
+ HDR_IO(9) <= '0';
+ HDR_IO(8) <= '0';
+ HDR_IO(7) <= '0';
+ HDR_IO(6) <= '0';
+ HDR_IO(5) <= '0';
+ HDR_IO(4) <= '0';
+ HDR_IO(3) <= '0';
+ HDR_IO(2) <= rx_dlm_i;
+ HDR_IO(1) <= tx_dlm_i;
+
end generate;
---------------------------------------------------------------------------
-- PCSC 4 downlinks
---------------------------------------------------------------------------
--- bussci3_tx.data <= (others => '0');
--- bussci3_tx.ack <= '0';
--- bussci3_tx.nack <= '0';
--- bussci3_tx.unknown <= '1';
-gen_PCSC : if USE_BACKPLANE = c_NO and USE_ADDON = c_YES generate
- THE_MEDIA_PCSC : entity work.med_ecp3_sfp_sync_4
- generic map(
- IS_SYNC_SLAVE => (c_NO, c_NO, c_NO, c_NO),
- IS_USED => (c_YES,c_YES ,c_YES ,c_YES)
- )
- port map(
- CLK_REF_FULL => clk_full_osc,
- CLK_INTERNAL_FULL => clk_full_osc,
- SYSCLK => clk_sys,
- RESET => reset_i,
- CLEAR => clear_i,
- --Internal Connection
- MEDIA_MED2INT(0) => med2int(2),
- MEDIA_MED2INT(1) => med2int(3),
- MEDIA_MED2INT(2) => med2int(0),
- MEDIA_MED2INT(3) => med2int(1),
- MEDIA_INT2MED(0) => int2med(2),
- MEDIA_INT2MED(1) => int2med(3),
- MEDIA_INT2MED(2) => int2med(0),
- MEDIA_INT2MED(3) => int2med(1),
- --Sync operation
- RX_DLM => open,
- RX_DLM_WORD => open,
- TX_DLM => open,
- TX_DLM_WORD => open,
- --SFP Connection
- SD_PRSNT_N_IN(0) => HUB_MOD0(3),
- SD_PRSNT_N_IN(1) => HUB_MOD0(4),
- SD_PRSNT_N_IN(2) => HUB_MOD0(1),
- SD_PRSNT_N_IN(3) => HUB_MOD0(2),
- SD_LOS_IN(0) => HUB_LOS(3),
- SD_LOS_IN(1) => HUB_LOS(4),
- SD_LOS_IN(2) => HUB_LOS(1),
- SD_LOS_IN(3) => HUB_LOS(2),
- SD_TXDIS_OUT(0) => HUB_TXDIS(3),
- SD_TXDIS_OUT(1) => HUB_TXDIS(4),
- SD_TXDIS_OUT(2) => HUB_TXDIS(1),
- SD_TXDIS_OUT(3) => HUB_TXDIS(2),
- --Control Interface
- BUS_RX => bussci3_rx,
- BUS_TX => bussci3_tx,
- -- Status and control port
- STAT_DEBUG => open,
- CTRL_DEBUG => open
- );
-end generate;
-
-gen_PCSB_ADDON : if USE_BACKPLANE = c_NO and USE_ADDON = c_YES generate
- THE_MEDIA_PCSB : entity work.med_ecp3_sfp_sync_4
- generic map(
- IS_SYNC_SLAVE => (c_NO, c_NO, c_NO, c_NO),
- IS_USED => (c_YES,c_YES ,c_YES ,c_YES)
- )
- port map(
- CLK_REF_FULL => clk_full_osc,
- CLK_INTERNAL_FULL => clk_full_osc,
- SYSCLK => clk_sys,
- RESET => reset_i,
- CLEAR => clear_i,
- --Internal Connection
- MEDIA_MED2INT(0) => med2int(4),
- MEDIA_MED2INT(1) => med2int(5),
- MEDIA_MED2INT(2) => med2int(6),
- MEDIA_MED2INT(3) => med2int(7),
- MEDIA_INT2MED(0) => int2med(4),
- MEDIA_INT2MED(1) => int2med(5),
- MEDIA_INT2MED(2) => int2med(6),
- MEDIA_INT2MED(3) => int2med(7),
- --Sync operation
- RX_DLM => open,
- RX_DLM_WORD => open,
- TX_DLM => open,
- TX_DLM_WORD => open,
-
- --SFP Connection
- SD_PRSNT_N_IN(0) => HUB_MOD0(5),
- SD_PRSNT_N_IN(1) => HUB_MOD0(6),
- SD_PRSNT_N_IN(2) => HUB_MOD0(7),
- SD_PRSNT_N_IN(3) => HUB_MOD0(8),
- SD_LOS_IN(0) => HUB_LOS(5),
- SD_LOS_IN(1) => HUB_LOS(6),
- SD_LOS_IN(2) => HUB_LOS(7),
- SD_LOS_IN(3) => HUB_LOS(8),
- SD_TXDIS_OUT(0) => HUB_TXDIS(5),
- SD_TXDIS_OUT(1) => HUB_TXDIS(6),
- SD_TXDIS_OUT(2) => HUB_TXDIS(7),
- SD_TXDIS_OUT(3) => HUB_TXDIS(8),
- --Control Interface
- BUS_RX => bussci2_rx,
- BUS_TX => bussci2_tx,
- -- Status and control port
- STAT_DEBUG => open,
- CTRL_DEBUG => open
- );
- PCSSW <= "11100100"; --default 1:1
-end generate;
+ bussci3_tx.data <= (others => '0');
+ bussci3_tx.ack <= '0';
+ bussci3_tx.nack <= '0';
+ bussci3_tx.unknown <= '1';
+--gen_PCSC : if USE_BACKPLANE = c_NO and USE_ADDON = c_YES generate
+-- THE_MEDIA_PCSC : entity work.med_ecp3_sfp_sync_4
+-- generic map(
+-- IS_SYNC_SLAVE => (c_NO, c_NO, c_NO, c_NO),
+-- IS_USED => (c_YES,c_YES ,c_YES ,c_YES)
+-- )
+-- port map(
+-- CLK_REF_FULL => clk_full_osc,
+-- CLK_INTERNAL_FULL => clk_full_osc,
+-- SYSCLK => clk_sys,
+-- RESET => reset_i,
+-- CLEAR => clear_i,
+-- --Internal Connection
+-- MEDIA_MED2INT(0) => med2int(2),
+-- MEDIA_MED2INT(1) => med2int(3),
+-- MEDIA_MED2INT(2) => med2int(0),
+-- MEDIA_MED2INT(3) => med2int(1),
+-- MEDIA_INT2MED(0) => int2med(2),
+-- MEDIA_INT2MED(1) => int2med(3),
+-- MEDIA_INT2MED(2) => int2med(0),
+-- MEDIA_INT2MED(3) => int2med(1),
+-- --Sync operation
+-- RX_DLM => open,
+-- RX_DLM_WORD => open,
+-- TX_DLM => open,
+-- TX_DLM_WORD => open,
+-- --SFP Connection
+-- SD_PRSNT_N_IN(0) => HUB_MOD0(3),
+-- SD_PRSNT_N_IN(1) => HUB_MOD0(4),
+-- SD_PRSNT_N_IN(2) => HUB_MOD0(1),
+-- SD_PRSNT_N_IN(3) => HUB_MOD0(2),
+-- SD_LOS_IN(0) => HUB_LOS(3),
+-- SD_LOS_IN(1) => HUB_LOS(4),
+-- SD_LOS_IN(2) => HUB_LOS(1),
+-- SD_LOS_IN(3) => HUB_LOS(2),
+-- SD_TXDIS_OUT(0) => HUB_TXDIS(3),
+-- SD_TXDIS_OUT(1) => HUB_TXDIS(4),
+-- SD_TXDIS_OUT(2) => HUB_TXDIS(1),
+-- SD_TXDIS_OUT(3) => HUB_TXDIS(2),
+-- --Control Interface
+-- BUS_RX => bussci3_rx,
+-- BUS_TX => bussci3_tx,
+-- -- Status and control port
+-- STAT_DEBUG => open,
+-- CTRL_DEBUG => open
+-- );
+--end generate;
+
+--gen_PCSB_ADDON : if USE_BACKPLANE = c_NO and USE_ADDON = c_YES generate
+-- THE_MEDIA_PCSB : entity work.med_ecp3_sfp_sync_4
+-- generic map(
+-- IS_SYNC_SLAVE => (c_NO, c_NO, c_NO, c_NO),
+-- IS_USED => (c_YES,c_YES ,c_YES ,c_YES)
+-- )
+-- port map(
+-- CLK_REF_FULL => clk_full_osc,
+-- CLK_INTERNAL_FULL => clk_full_osc,
+-- SYSCLK => clk_sys,
+-- RESET => reset_i,
+-- CLEAR => clear_i,
+-- --Internal Connection
+-- MEDIA_MED2INT(0) => med2int(4),
+-- MEDIA_MED2INT(1) => med2int(5),
+-- MEDIA_MED2INT(2) => med2int(6),
+-- MEDIA_MED2INT(3) => med2int(7),
+-- MEDIA_INT2MED(0) => int2med(4),
+-- MEDIA_INT2MED(1) => int2med(5),
+-- MEDIA_INT2MED(2) => int2med(6),
+-- MEDIA_INT2MED(3) => int2med(7),
+-- --Sync operation
+-- RX_DLM => open,
+-- RX_DLM_WORD => open,
+-- TX_DLM => open,
+-- TX_DLM_WORD => open,
+--
+-- --SFP Connection
+-- SD_PRSNT_N_IN(0) => HUB_MOD0(5),
+-- SD_PRSNT_N_IN(1) => HUB_MOD0(6),
+-- SD_PRSNT_N_IN(2) => HUB_MOD0(7),
+-- SD_PRSNT_N_IN(3) => HUB_MOD0(8),
+-- SD_LOS_IN(0) => HUB_LOS(5),
+-- SD_LOS_IN(1) => HUB_LOS(6),
+-- SD_LOS_IN(2) => HUB_LOS(7),
+-- SD_LOS_IN(3) => HUB_LOS(8),
+-- SD_TXDIS_OUT(0) => HUB_TXDIS(5),
+-- SD_TXDIS_OUT(1) => HUB_TXDIS(6),
+-- SD_TXDIS_OUT(2) => HUB_TXDIS(7),
+-- SD_TXDIS_OUT(3) => HUB_TXDIS(8),
+-- --Control Interface
+-- BUS_RX => bussci2_rx,
+-- BUS_TX => bussci2_tx,
+-- -- Status and control port
+-- STAT_DEBUG => open,
+-- CTRL_DEBUG => open
+-- );
+-- PCSSW <= "11100100"; --default 1:1
+--end generate;
---------------------------------------------------------------------------
-- GbE (PCSD)
--
PERIPH_TRIGGER_IN => (others => '0'),
--
- OUTPUT_MULTIPLEXERS_OUT => open,
+ OUTPUT_MULTIPLEXERS_OUT => cts_output_multiplexers_i,
--
CTS_TRG_SEND_OUT => cts_trg_send,
CTS_TRG_TYPE_OUT => cts_trg_type,
SPI_MISO_IN => spi_miso,
SPI_CLK_OUT => spi_clk,
--Header
- HEADER_IO => HDR_IO,
+ HEADER_IO => open, --HDR_IO, -- needed for debug
--LCD
LCD_DATA_IN => open,
--ADC