1
0
mirror of https://github.com/corundum/corundum.git synced 2025-01-16 08:12:53 +08:00

fpga/mqnic: UltraScale devices use qpllrsvd pins for PCIe rate control

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich 2023-11-27 17:25:42 -08:00
parent 51b9eb251b
commit 1f3b739bb6
22 changed files with 368 additions and 18 deletions

View File

@ -18,6 +18,7 @@ module eth_xcvr_phy_10g_gty_quad_wrapper #
// GT type // GT type
parameter GT_GTH = 0, parameter GT_GTH = 0,
parameter GT_USP = 1,
// PLL parameters // PLL parameters
parameter QPLL0_PD = 1'b0, parameter QPLL0_PD = 1'b0,
@ -288,6 +289,7 @@ if (COUNT > 0) begin : phy1
eth_xcvr_phy_10g_gty_wrapper #( eth_xcvr_phy_10g_gty_wrapper #(
.HAS_COMMON(1), .HAS_COMMON(1),
.GT_GTH(GT_GTH), .GT_GTH(GT_GTH),
.GT_USP(GT_USP),
// PLL // PLL
.QPLL0_PD(QPLL0_PD), .QPLL0_PD(QPLL0_PD),
.QPLL1_PD(QPLL1_PD), .QPLL1_PD(QPLL1_PD),
@ -397,6 +399,7 @@ if (COUNT > 1) begin : phy2
eth_xcvr_phy_10g_gty_wrapper #( eth_xcvr_phy_10g_gty_wrapper #(
.HAS_COMMON(0), .HAS_COMMON(0),
.GT_GTH(GT_GTH), .GT_GTH(GT_GTH),
.GT_USP(GT_USP),
// GT // GT
.GT_TX_PD(GT_2_TX_PD), .GT_TX_PD(GT_2_TX_PD),
.GT_TX_QPLL_SEL(GT_2_TX_QPLL_SEL), .GT_TX_QPLL_SEL(GT_2_TX_QPLL_SEL),
@ -501,6 +504,7 @@ if (COUNT > 2) begin : phy3
eth_xcvr_phy_10g_gty_wrapper #( eth_xcvr_phy_10g_gty_wrapper #(
.HAS_COMMON(0), .HAS_COMMON(0),
.GT_GTH(GT_GTH), .GT_GTH(GT_GTH),
.GT_USP(GT_USP),
// GT // GT
.GT_TX_PD(GT_3_TX_PD), .GT_TX_PD(GT_3_TX_PD),
.GT_TX_QPLL_SEL(GT_3_TX_QPLL_SEL), .GT_TX_QPLL_SEL(GT_3_TX_QPLL_SEL),
@ -605,6 +609,7 @@ if (COUNT > 3) begin : phy4
eth_xcvr_phy_10g_gty_wrapper #( eth_xcvr_phy_10g_gty_wrapper #(
.HAS_COMMON(0), .HAS_COMMON(0),
.GT_GTH(GT_GTH), .GT_GTH(GT_GTH),
.GT_USP(GT_USP),
// GT // GT
.GT_TX_PD(GT_4_TX_PD), .GT_TX_PD(GT_4_TX_PD),
.GT_TX_QPLL_SEL(GT_4_TX_QPLL_SEL), .GT_TX_QPLL_SEL(GT_4_TX_QPLL_SEL),

View File

@ -19,6 +19,7 @@ module eth_xcvr_phy_10g_gty_wrapper #
// GT type // GT type
parameter GT_GTH = 0, parameter GT_GTH = 0,
parameter GT_USP = 1,
// PLL parameters // PLL parameters
parameter QPLL0_PD = 1'b0, parameter QPLL0_PD = 1'b0,
@ -987,7 +988,7 @@ end
generate generate
if (HAS_COMMON && !GT_GTH) begin : xcvr_gty_com if (HAS_COMMON && !GT_GTH && GT_USP) begin : xcvr_gty_com_usp
eth_xcvr_gty_full eth_xcvr_gty_full
eth_xcvr_gty_full_inst ( eth_xcvr_gty_full_inst (
@ -1123,7 +1124,7 @@ if (HAS_COMMON && !GT_GTH) begin : xcvr_gty_com
assign xcvr_qpll1clk_out = qpll1_clk; assign xcvr_qpll1clk_out = qpll1_clk;
assign xcvr_qpll1refclk_out = qpll1_refclk; assign xcvr_qpll1refclk_out = qpll1_refclk;
end else if (HAS_COMMON && GT_GTH) begin : xcvr_gth_com end else if (HAS_COMMON && GT_GTH && GT_USP) begin : xcvr_gth_com_usp
eth_xcvr_gth_full eth_xcvr_gth_full
eth_xcvr_gth_full_inst ( eth_xcvr_gth_full_inst (
@ -1259,6 +1260,278 @@ end else if (HAS_COMMON && GT_GTH) begin : xcvr_gth_com
assign xcvr_qpll1clk_out = qpll1_clk; assign xcvr_qpll1clk_out = qpll1_clk;
assign xcvr_qpll1refclk_out = qpll1_refclk; assign xcvr_qpll1refclk_out = qpll1_refclk;
end else if (HAS_COMMON && !GT_GTH && !GT_USP) begin : xcvr_gty_com_us
eth_xcvr_gty_full
eth_xcvr_gty_full_inst (
// Common
.gtpowergood_out(xcvr_gtpowergood_out),
.loopback_in(gt_loopback_reg),
// DRP
.drpclk_common_in(drp_clk),
.drpaddr_common_in(drp_addr_reg),
.drpdi_common_in(drp_di_reg),
.drpen_common_in(drp_en_reg_2),
.drpwe_common_in(drp_we_reg),
.drpdo_common_out(drp_do_2),
.drprdy_common_out(drp_rdy_2),
.drpclk_in(drp_clk),
.drpaddr_in(drp_addr_reg),
.drpdi_in(drp_di_reg),
.drpen_in(drp_en_reg_1),
.drpwe_in(drp_we_reg),
.drpdo_out(drp_do_1),
.drprdy_out(drp_rdy_1),
// PLL
.gtrefclk00_in(xcvr_gtrefclk00_in),
.qpll0lock_out(qpll0_lock),
.qpll0outclk_out(qpll0_clk),
.qpll0outrefclk_out(qpll0_refclk),
.gtrefclk01_in(xcvr_gtrefclk01_in),
.qpll1lock_out(qpll1_lock),
.qpll1outclk_out(qpll1_clk),
.qpll1outrefclk_out(qpll1_refclk),
.qpll0pd_in(QPLL0_EXT_CTRL ? xcvr_qpll0pd_in : qpll0_pd_reg),
.qpll0reset_in(QPLL0_EXT_CTRL ? xcvr_qpll0reset_in : qpll0_reset_reg),
.qpll1pd_in(QPLL1_EXT_CTRL ? xcvr_qpll1pd_in : qpll1_pd_reg),
.qpll1reset_in(QPLL1_EXT_CTRL ? xcvr_qpll1reset_in : qpll1_reset_reg),
.qpllrsvd2_in(QPLL0_EXT_CTRL ? {2'd0, xcvr_qpll0pcierate_in} : 5'd0), // [2:0] : QPLL0 rate
.qpllrsvd3_in(QPLL1_EXT_CTRL ? {2'd0, xcvr_qpll1pcierate_in} : 5'd0), // [2:0] : QPLL1 rate
// Serial data
.gtytxp_out(xcvr_txp),
.gtytxn_out(xcvr_txn),
.gtyrxp_in(xcvr_rxp),
.gtyrxn_in(xcvr_rxn),
// Transmit
.gtwiz_userclk_tx_reset_in(gt_tx_reset_reg),
.gtwiz_userclk_tx_srcclk_out(),
.gtwiz_userclk_tx_usrclk_out(),
.gtwiz_userclk_tx_usrclk2_out(gt_txusrclk2),
.gtwiz_userclk_tx_active_out(gt_userclk_tx_active),
.gtwiz_reset_tx_done_in(tx_reset_done_reg),
.txpdelecidlemode_in(1'b1),
.txpd_in(gt_tx_pd_reg ? 2'b11 : 2'b00),
.gttxreset_in(gt_tx_reset_reg),
.txpmareset_in(gt_tx_pma_reset_reg),
.txpcsreset_in(gt_tx_pcs_reset_reg),
.txresetdone_out(gt_tx_reset_done),
.txpmaresetdone_out(gt_tx_pma_reset_done),
.txprogdivreset_in(gt_tx_prgdiv_reset_reg),
.txprgdivresetdone_out(gt_tx_prgdiv_reset_done),
.txpllclksel_in(gt_tx_qpll_sel_reg ? 2'b10 : 2'b11),
.txsysclksel_in(gt_tx_qpll_sel_reg ? 2'b11 : 2'b10),
.txuserrdy_in(gt_tx_userrdy_reg),
.txpolarity_in(gt_txpolarity_sync_reg),
.txelecidle_in(gt_txelecidle_reg),
.txinhibit_in(gt_txinhibit_sync_reg),
.txdiffctrl_in(gt_txdiffctrl_reg),
.txmaincursor_in(gt_txmaincursor_reg),
.txprecursor_in(gt_txprecursor_reg),
.txpostcursor_in(gt_txpostcursor_reg),
.txprbsforceerr_in(gt_txprbsforceerr_sync_2_reg ^ gt_txprbsforceerr_sync_3_reg),
.txprbssel_in(gt_txprbssel_sync_reg),
.gtwiz_userdata_tx_in(gt_txdata),
.txheader_in(gt_txheader),
.txsequence_in(7'b0),
// Receive
.gtwiz_userclk_rx_reset_in(gt_rx_reset_reg),
.gtwiz_userclk_rx_srcclk_out(),
.gtwiz_userclk_rx_usrclk_out(),
.gtwiz_userclk_rx_usrclk2_out(gt_rxusrclk2),
.gtwiz_userclk_rx_active_out(gt_userclk_rx_active),
.gtwiz_reset_rx_done_in(rx_reset_done_reg),
.rxpd_in(gt_rx_pd_reg ? 2'b11 : 2'b00),
.gtrxreset_in(gt_rx_reset_reg),
.rxpmareset_in(gt_rx_pma_reset_reg),
.rxdfelpmreset_in(gt_rx_dfe_lpm_reset_reg),
.eyescanreset_in(gt_eyescan_reset_reg),
.rxpcsreset_in(gt_rx_pcs_reset_reg),
.rxresetdone_out(gt_rx_reset_done),
.rxpmaresetdone_out(gt_rx_pma_reset_done),
.rxprogdivreset_in(gt_rx_prgdiv_reset_reg),
.rxprgdivresetdone_out(gt_rx_prgdiv_reset_done),
.rxpllclksel_in(gt_rx_qpll_sel_reg ? 2'b10 : 2'b11),
.rxsysclksel_in(gt_rx_qpll_sel_reg ? 2'b11 : 2'b10),
.rxuserrdy_in(gt_rx_userrdy_reg),
.rxcdrlock_out(gt_rxcdrlock),
.rxcdrhold_in(gt_rxcdrhold_reg),
.rxlpmen_in(gt_rxlpmen_reg),
.dmonitorout_out(gt_dmonitorout),
.rxpolarity_in(gt_rxpolarity_sync_reg),
.rxprbscntreset_in(gt_rxprbscntreset_sync_2_reg ^ gt_rxprbscntreset_sync_3_reg),
.rxprbssel_in(gt_rxprbssel_sync_reg),
.rxprbserr_out(gt_rxprbserr),
.rxprbslocked_out(gt_rxprbslocked),
.eyescandataerror_out(),
.rxgearboxslip_in(gt_rxgearboxslip),
.gtwiz_userdata_rx_out(gt_rxdata),
.rxdatavalid_out(gt_rxdatavalid),
.rxheader_out(gt_rxheader),
.rxheadervalid_out(gt_rxheadervalid),
.rxstartofseq_out()
);
assign xcvr_qpll0lock_out = qpll0_lock;
assign xcvr_qpll0clk_out = qpll0_clk;
assign xcvr_qpll0refclk_out = qpll0_refclk;
assign xcvr_qpll1lock_out = qpll1_lock;
assign xcvr_qpll1clk_out = qpll1_clk;
assign xcvr_qpll1refclk_out = qpll1_refclk;
end else if (HAS_COMMON && GT_GTH && !GT_USP) begin : xcvr_gth_com_us
eth_xcvr_gth_full
eth_xcvr_gth_full_inst (
// Common
.gtpowergood_out(xcvr_gtpowergood_out),
.loopback_in(gt_loopback_reg),
// DRP
.drpclk_common_in(drp_clk),
.drpaddr_common_in(drp_addr_reg),
.drpdi_common_in(drp_di_reg),
.drpen_common_in(drp_en_reg_2),
.drpwe_common_in(drp_we_reg),
.drpdo_common_out(drp_do_2),
.drprdy_common_out(drp_rdy_2),
.drpclk_in(drp_clk),
.drpaddr_in(drp_addr_reg),
.drpdi_in(drp_di_reg),
.drpen_in(drp_en_reg_1),
.drpwe_in(drp_we_reg),
.drpdo_out(drp_do_1),
.drprdy_out(drp_rdy_1),
// PLL
.gtrefclk00_in(xcvr_gtrefclk00_in),
.qpll0lock_out(qpll0_lock),
.qpll0outclk_out(qpll0_clk),
.qpll0outrefclk_out(qpll0_refclk),
.gtrefclk01_in(xcvr_gtrefclk01_in),
.qpll1lock_out(qpll1_lock),
.qpll1outclk_out(qpll1_clk),
.qpll1outrefclk_out(qpll1_refclk),
.qpll0pd_in(QPLL0_EXT_CTRL ? xcvr_qpll0pd_in : qpll0_pd_reg),
.qpll0reset_in(QPLL0_EXT_CTRL ? xcvr_qpll0reset_in : qpll0_reset_reg),
.qpll1pd_in(QPLL1_EXT_CTRL ? xcvr_qpll1pd_in : qpll1_pd_reg),
.qpll1reset_in(QPLL1_EXT_CTRL ? xcvr_qpll1reset_in : qpll1_reset_reg),
.qpllrsvd2_in(QPLL0_EXT_CTRL ? {2'd0, xcvr_qpll0pcierate_in} : 5'd0), // [2:0] : QPLL0 rate
.qpllrsvd3_in(QPLL1_EXT_CTRL ? {2'd0, xcvr_qpll1pcierate_in} : 5'd0), // [2:0] : QPLL1 rate
// Serial data
.gthtxp_out(xcvr_txp),
.gthtxn_out(xcvr_txn),
.gthrxp_in(xcvr_rxp),
.gthrxn_in(xcvr_rxn),
// Transmit
.gtwiz_userclk_tx_reset_in(gt_tx_reset_reg),
.gtwiz_userclk_tx_srcclk_out(),
.gtwiz_userclk_tx_usrclk_out(),
.gtwiz_userclk_tx_usrclk2_out(gt_txusrclk2),
.gtwiz_userclk_tx_active_out(gt_userclk_tx_active),
.gtwiz_reset_tx_done_in(tx_reset_done_reg),
.txpdelecidlemode_in(1'b1),
.txpd_in(gt_tx_pd_reg ? 2'b11 : 2'b00),
.gttxreset_in(gt_tx_reset_reg),
.txpmareset_in(gt_tx_pma_reset_reg),
.txpcsreset_in(gt_tx_pcs_reset_reg),
.txresetdone_out(gt_tx_reset_done),
.txpmaresetdone_out(gt_tx_pma_reset_done),
.txprogdivreset_in(gt_tx_prgdiv_reset_reg),
.txprgdivresetdone_out(gt_tx_prgdiv_reset_done),
.txpllclksel_in(gt_tx_qpll_sel_reg ? 2'b10 : 2'b11),
.txsysclksel_in(gt_tx_qpll_sel_reg ? 2'b11 : 2'b10),
.txuserrdy_in(gt_tx_userrdy_reg),
.txpolarity_in(gt_txpolarity_sync_reg),
.txelecidle_in(gt_txelecidle_reg),
.txinhibit_in(gt_txinhibit_sync_reg),
.txdiffctrl_in(gt_txdiffctrl_reg),
.txmaincursor_in(gt_txmaincursor_reg),
.txprecursor_in(gt_txprecursor_reg),
.txpostcursor_in(gt_txpostcursor_reg),
.txprbsforceerr_in(gt_txprbsforceerr_sync_2_reg ^ gt_txprbsforceerr_sync_3_reg),
.txprbssel_in(gt_txprbssel_sync_reg),
.gtwiz_userdata_tx_in(gt_txdata),
.txheader_in(gt_txheader),
.txsequence_in(7'b0),
// Receive
.gtwiz_userclk_rx_reset_in(gt_rx_reset_reg),
.gtwiz_userclk_rx_srcclk_out(),
.gtwiz_userclk_rx_usrclk_out(),
.gtwiz_userclk_rx_usrclk2_out(gt_rxusrclk2),
.gtwiz_userclk_rx_active_out(gt_userclk_rx_active),
.gtwiz_reset_rx_done_in(rx_reset_done_reg),
.rxpd_in(gt_rx_pd_reg ? 2'b11 : 2'b00),
.gtrxreset_in(gt_rx_reset_reg),
.rxpmareset_in(gt_rx_pma_reset_reg),
.rxdfelpmreset_in(gt_rx_dfe_lpm_reset_reg),
.eyescanreset_in(gt_eyescan_reset_reg),
.rxpcsreset_in(gt_rx_pcs_reset_reg),
.rxresetdone_out(gt_rx_reset_done),
.rxpmaresetdone_out(gt_rx_pma_reset_done),
.rxprogdivreset_in(gt_rx_prgdiv_reset_reg),
.rxprgdivresetdone_out(gt_rx_prgdiv_reset_done),
.rxpllclksel_in(gt_rx_qpll_sel_reg ? 2'b10 : 2'b11),
.rxsysclksel_in(gt_rx_qpll_sel_reg ? 2'b11 : 2'b10),
.rxuserrdy_in(gt_rx_userrdy_reg),
.rxcdrlock_out(gt_rxcdrlock),
.rxcdrhold_in(gt_rxcdrhold_reg),
.rxlpmen_in(gt_rxlpmen_reg),
.dmonitorout_out(gt_dmonitorout),
.rxpolarity_in(gt_rxpolarity_sync_reg),
.rxprbscntreset_in(gt_rxprbscntreset_sync_2_reg ^ gt_rxprbscntreset_sync_3_reg),
.rxprbssel_in(gt_rxprbssel_sync_reg),
.rxprbserr_out(gt_rxprbserr),
.rxprbslocked_out(gt_rxprbslocked),
.eyescandataerror_out(),
.rxgearboxslip_in(gt_rxgearboxslip),
.gtwiz_userdata_rx_out(gt_rxdata),
.rxdatavalid_out(gt_rxdatavalid),
.rxheader_out(gt_rxheader),
.rxheadervalid_out(gt_rxheadervalid),
.rxstartofseq_out()
);
assign xcvr_qpll0lock_out = qpll0_lock;
assign xcvr_qpll0clk_out = qpll0_clk;
assign xcvr_qpll0refclk_out = qpll0_refclk;
assign xcvr_qpll1lock_out = qpll1_lock;
assign xcvr_qpll1clk_out = qpll1_clk;
assign xcvr_qpll1refclk_out = qpll1_refclk;
end else if (!GT_GTH) begin : xcvr_gty end else if (!GT_GTH) begin : xcvr_gty
eth_xcvr_gty_channel eth_xcvr_gty_channel

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -986,6 +986,7 @@ qsfp0_sync_reset_inst (
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_GTH(1), .GT_GTH(1),
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),
@ -1213,6 +1214,7 @@ qsfp1_sync_reset_inst (
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_GTH(1), .GT_GTH(1),
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -908,6 +908,7 @@ sfp_sync_reset_inst (
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.COUNT(2), .COUNT(2),
.GT_GTH(1), .GT_GTH(1),
.GT_USP(0),
.GT_1_TX_POLARITY(1'b1), .GT_1_TX_POLARITY(1'b1),
.GT_2_TX_POLARITY(1'b1) .GT_2_TX_POLARITY(1'b1)
) )

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -1000,6 +1000,7 @@ qsfp_sync_reset_inst (
); );
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -1123,6 +1123,7 @@ qsfp0_sync_reset_inst (
); );
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),
@ -1347,6 +1348,7 @@ qsfp1_sync_reset_inst (
); );
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),
@ -1571,6 +1573,7 @@ qsfp2_sync_reset_inst (
); );
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),
@ -1795,6 +1798,7 @@ qsfp3_sync_reset_inst (
); );
eth_xcvr_phy_10g_gty_quad_wrapper #( eth_xcvr_phy_10g_gty_quad_wrapper #(
.GT_USP(0),
.PRBS31_ENABLE(1), .PRBS31_ENABLE(1),
.TX_SERDES_PIPELINE(1), .TX_SERDES_PIPELINE(1),
.RX_SERDES_PIPELINE(1), .RX_SERDES_PIPELINE(1),

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out

View File

@ -27,7 +27,11 @@ lappend extra_pll_ports qpll0pd_in qpll1pd_in
lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out lappend extra_pll_ports gtrefclk00_in qpll0lock_out qpll0outclk_out qpll0outrefclk_out
lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out lappend extra_pll_ports gtrefclk01_in qpll1lock_out qpll1outclk_out qpll1outrefclk_out
# PCIe # PCIe
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in if {[string first uplus [get_property FAMILY [get_property PART [current_project]]]] != -1} {
lappend extra_pll_ports pcierateqpll0_in pcierateqpll1_in
} else {
lappend extra_pll_ports qpllrsvd2_in qpllrsvd3_in
}
# channel reset # channel reset
lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out lappend extra_ports gttxreset_in txuserrdy_in txpmareset_in txpcsreset_in txresetdone_out txpmaresetdone_out
lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out lappend extra_ports gtrxreset_in rxuserrdy_in rxpmareset_in rxdfelpmreset_in eyescanreset_in rxpcsreset_in rxresetdone_out rxpmaresetdone_out