From e78a75e193c51960789afbae559219fbc21b2fe4 Mon Sep 17 00:00:00 2001 From: Michael Boehmer Date: Fri, 26 Nov 2021 21:23:33 +0100 Subject: [PATCH] first compiling version of CTS --- cts/trb3sc_cts.prj | 12 +-- cts/trb3sc_cts.vhd | 196 +++++++++++++++++++++++++-------------------- 2 files changed, 111 insertions(+), 97 deletions(-) diff --git a/cts/trb3sc_cts.prj b/cts/trb3sc_cts.prj index 33eaea2..08d4f6c 100644 --- a/cts/trb3sc_cts.prj +++ b/cts/trb3sc_cts.prj @@ -133,17 +133,11 @@ add_file -vhdl -lib work "../../trbnet/trb_net16_addresses.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/med_sync_define_RS.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/rx_control_RS.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/tx_control_RS.vhd" -add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/rx_reset_fsm_RS.vhd" -add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/tx_reset_fsm_RS.vhd" +add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/main_rx_reset_RS.vhd" +add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/main_tx_reset_RS.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/sci_reader_RS.vhd" +add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/rx_lsm_RS.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/sync/med_sync_control_RS.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp3_sfp/serdes_sync_0.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp3_sfp/serdes_sync_3.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp3_sfp/serdes_sync_4.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp3_sfp/serdes_sync_4_slave3.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/med_ecp3_sfp_sync_RS.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/med_ecp3_sfp_sync_4.vhd" -#add_file -vhdl -lib work "../../trbnet/media_interfaces/med_ecp3_sfp_sync_4_slave3.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/ecp3_sfp/serdes_sync_all_RS.vhd" add_file -vhdl -lib work "../../trbnet/media_interfaces/med_ecp3_sfp_sync_all_RS.vhd" diff --git a/cts/trb3sc_cts.vhd b/cts/trb3sc_cts.vhd index b32bbaf..7469369 100644 --- a/cts/trb3sc_cts.vhd +++ b/cts/trb3sc_cts.vhd @@ -11,7 +11,7 @@ use work.trb3_components.all; 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 @@ -231,6 +231,15 @@ architecture trb3sc_arch of 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 --------------------------------------------------------------------------- @@ -293,84 +302,76 @@ THE_CLOCK_RESET : entity work.clock_reset_handler --------------------------------------------------------------------------- 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 ) @@ -381,21 +382,40 @@ THE_MEDIA_PCSB : entity med_ecp3_sfp_sync_all_RS 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 --------------------------------------------------------------------------- -- 2.43.0