use work.trb_net16_hub_func.all;
use work.version.all;
use work.trb_net_gbe_components.all;
-use work.med_sync_define.all;
+use work.med_sync_define_RS.all;
use work.cts_pkg.all;
entity trb3sc_cts is
signal destroy_link_i : std_logic;
+ signal tx_pll_lol_qd_b_i : std_logic;
+ signal rst_qd_c_i : std_logic;
+ signal tx_pcs_rst_ch_c_i : std_logic;
+ signal sync_tx_quad_i : std_logic;
+ signal link_tx_ready_i : std_logic;
+ signal tx_reset_i : std_logic;
+
+ signal debug_i : std_logic_vector(31 downto 0);
+
begin
---------------------------------------------------------------------------
---------------------------------------------------------------------------
gen_PCSB : if USE_BACKPLANE = c_NO and USE_ADDON = c_NO generate
-THE_MEDIA_PCSB : entity med_ecp3_sfp_sync_all_RS
- generic map(
- IS_MODE => (c_IS_UNUSED, c_IS_UNUSED, c_IS_UNUSED, c_IS_MASTER)
- )
- port map(
- CLK_REF_FULL => clk_full_osc,
- SYSCLK => clk_sys,
- RESET => reset_i,
- CLEAR => clear_i,
- --Internal Connection TX/RX
- MEDIA_MED2INT(3) => med2int(0),
- MEDIA_INT2MED(3) => int2med(0),
- --Sync operation
- RX_DLM_OUT(2 downto 0) => open,
- RX_DLM_OUT(3) => rx_dlm_i,
- RX_DLM_WORD_OUT(2 downto 0) => open,
- RX_DLM_WORD_OUT(3) => open,
- TX_DLM_IN(2 downto 0) => (others => '0'),
- TX_DLM_IN(3) => tx_dlm_i,
- TX_DLM_WORD_IN => x"aa_aa_aa_aa",
- WORD_SYNC_IN => '1',
- WORD_SYNC_OUT => open,
- SYNC_TX_PLL_IN => clk_full_osc,
- SYNC_TX_PLL_OUT => open,
- DESTROY_LINK_IN(2 downto 0) => (others => '0'),
- DESTROY_LINK_IN(3) => destroy_link_i,
- --SFP Connection
- SD_PRSNT_N_IN(0) => '1',
- SD_LOS_IN(0) => '1',
- SD_TXDIS_OUT(0) => open,
- SD_PRSNT_N_IN(1) => '1',
- SD_LOS_IN(1) => '1',
- SD_TXDIS_OUT(1) => open,
- SD_PRSNT_N_IN(2) => '1',
- SD_LOS_IN(2) => '1',
- SD_TXDIS_OUT(2) => open,
- SD_PRSNT_N_IN(3) => SFP_MOD0(1),
- SD_LOS_IN(3) => SFP_LOS(1),
- SD_TXDIS_OUT(3) => SFP_TX_DIS(1),
- --Control Interface
- BUS_RX => bussci2_rx,
- BUS_TX => bussci2_tx,
- -- Status and control port
- STAT_DEBUG => open,
- CTRL_DEBUG => open
- );
+ THE_MEDIA_PCSB : entity med_ecp3_sfp_sync_all_RS
+ generic map(
+ SIM_MODE => 0,
+ IS_MODE => (c_IS_UNUSED, c_IS_UNUSED, c_IS_UNUSED, c_IS_MASTER),
+ IS_WAP_ZERO => 1
+ )
+ port map(
+ -- Clocks and reset
+ CLK_REF_FULL => clk_full_osc,
+ SYSCLK => clk_sys,
+ RESET => reset_i,
+ CLEAR => clear_i,
+ -- Media Interface TX/RX
+ MEDIA_MED2INT(0) => open,
+ MEDIA_MED2INT(1) => open,
+ MEDIA_MED2INT(2) => open,
+ MEDIA_MED2INT(3) => med2int(0),
+ MEDIA_INT2MED(0) => open,
+ MEDIA_INT2MED(1) => open,
+ MEDIA_INT2MED(2) => open,
+ MEDIA_INT2MED(3) => int2med(0),
+ -- Sync operation
+ RX_DLM_OUT(0) => open,
+ RX_DLM_OUT(1) => open,
+ RX_DLM_OUT(2) => open,
+ RX_DLM_OUT(3) => rx_dlm_i,
+ RX_DLM_WORD_OUT => open,
+ TX_DLM_IN => tx_dlm_i,
+ TX_DLM_WORD_IN => x"aa",
+ RX_RST_OUT => open,
+ RX_RST_WORD_OUT => open,
+ TX_RST_IN => '0',
+ TX_RST_WORD_IN => x"00",
+ WORD_SYNC_IN => '1', -- CTS MASTER
+ WORD_SYNC_OUT => open,
+ MASTER_CLK_IN => clk_full_osc, -- CTS MASTER
+ MASTER_CLK_OUT => open,
+ MASTER_RESET_OUT => open,
+ DESTROY_LINK_IN(0) => '0',
+ DESTROY_LINK_IN(1) => '0',
+ DESTROY_LINK_IN(2) => '0',
+ DESTROY_LINK_IN(3) => destroy_link_i,
+ LINK_TX_READY_IN => link_tx_ready_i,
+ TX_PLL_LOL_OUT => tx_pll_lol_qd_b_i,
+ TX_RESET_OUT => tx_reset_i, -- BUG???
+ SYNC_TX_PLL_IN => sync_tx_quad_i,
+ RST_QUAD_IN => rst_qd_c_i,
+ RST_TX_PCS_IN => tx_pcs_rst_ch_c_i,
+ --SFP Connection
+ SD_PRSNT_N_IN(0) => '1',
+ SD_LOS_IN(0) => '1',
+ SD_TXDIS_OUT(0) => open,
+ SD_PRSNT_N_IN(1) => '1',
+ SD_LOS_IN(1) => '1',
+ SD_TXDIS_OUT(1) => open,
+ SD_PRSNT_N_IN(2) => '1',
+ SD_LOS_IN(2) => '1',
+ SD_TXDIS_OUT(2) => open,
+ SD_PRSNT_N_IN(3) => SFP_MOD0(1),
+ SD_LOS_IN(3) => SFP_LOS(1),
+ SD_TXDIS_OUT(3) => SFP_TX_DIS(1),
+ --Control Interface
+ BUS_RX => bussci2_rx,
+ BUS_TX => bussci2_tx,
+ -- Status and control port
+ STAT_DEBUG => open,
+ CTRL_DEBUG => open,
+ DEBUG_OUT => debug_i
+ );
--- THE_MEDIA_PCSB : entity work.med_ecp3_sfp_sync_RS
--- generic map(
--- SERDES_NUM => 3,
--- IS_SYNC_SLAVE => c_NO
--- )
--- 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 => med2int(0),
--- MEDIA_INT2MED => int2med(0),
--- --Sync operation
--- RX_DLM_OUT => rx_dlm_i,
--- RX_DLM_WORD_OUT => open,
--- TX_DLM_IN => tx_dlm_i,
--- TX_DLM_WORD_IN => x"aa",
--- DESTROY_LINK_IN => destroy_link_i,
--- --SFP Connection
--- SD_PRSNT_N_IN => SFP_MOD0(1),
--- SD_LOS_IN => SFP_LOS(1),
--- SD_TXDIS_OUT => SFP_TX_DIS(1),
--- --Control Interface
--- BUS_RX => bussci2_rx,
--- BUS_TX => bussci2_tx,
--- -- Status and control port
--- STAT_DEBUG => open,
--- CTRL_DEBUG => open
--- );
PCSSW <= "01001110"; --SFP2 on B3, AddOn on D1
THE_SYNC_PROC: process( clk_sys )
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;
+ HDR_IO(10) <= clear_i; --debug_i(4);
+ HDR_IO(9) <= reset_i; --debug_i(3);
+ HDR_IO(8) <= debug_i(2);
+ HDR_IO(7) <= debug_i(1);
+ HDR_IO(6) <= debug_i(0);
+ HDR_IO(5) <= tx_pll_lol_qd_b_i;
+ HDR_IO(4) <= link_tx_ready_i;
+ HDR_IO(3) <= sync_tx_quad_i;
+ HDR_IO(2) <= tx_pcs_rst_ch_c_i;
+ HDR_IO(1) <= rst_qd_c_i;
destroy_link_i <= common_ctrl_reg(88);
end generate;
+ THE_MAIN_TX_RESET: main_tx_reset_RS
+ generic map(
+ SIM_MODE => 0
+ )
+ port map(
+ CLEAR => clear_i,
+ LOCALCLK => clk_full_osc,
+ TX_PLL_LOL_QD_A_IN => '0',
+ TX_PLL_LOL_QD_B_IN => tx_pll_lol_qd_b_i,
+ TX_PLL_LOL_QD_C_IN => '0',
+ TX_PLL_LOL_QD_D_IN => '0',
+ TX_CLOCK_AVAIL_IN => '1', -- CTS MASTER
+ RST_QD_C_OUT => rst_qd_c_i,
+ TX_PCS_RST_CH_C_OUT => tx_pcs_rst_ch_c_i,
+ SYNC_TX_QUAD_OUT => sync_tx_quad_i,
+ LINK_TX_READY_OUT => link_tx_ready_i,
+ STATE_OUT => open
+ );
+
---------------------------------------------------------------------------
-- PCSC 4 downlinks
---------------------------------------------------------------------------