mirror of
https://github.com/fpganinja/taxi.git
synced 2025-12-09 17:08:38 -08:00
eth: Add TX/RX polarity control to MAC+PHY+GT wrapper
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -26,6 +26,10 @@ module taxi_eth_mac_25g_us #
|
|||||||
// GT type
|
// GT type
|
||||||
parameter string GT_TYPE = "GTY",
|
parameter string GT_TYPE = "GTY",
|
||||||
|
|
||||||
|
// GT parameters
|
||||||
|
parameter logic [CNT-1:0] GT_TX_POLARITY = '0,
|
||||||
|
parameter logic [CNT-1:0] GT_RX_POLARITY = '0,
|
||||||
|
|
||||||
// MAC/PHY parameters
|
// MAC/PHY parameters
|
||||||
parameter logic PADDING_EN = 1'b1,
|
parameter logic PADDING_EN = 1'b1,
|
||||||
parameter logic DIC_EN = 1'b1,
|
parameter logic DIC_EN = 1'b1,
|
||||||
@@ -219,7 +223,11 @@ for (genvar n = 0; n < CNT; n = n + 1) begin : ch
|
|||||||
// GT type
|
// GT type
|
||||||
.GT_TYPE(GT_TYPE),
|
.GT_TYPE(GT_TYPE),
|
||||||
|
|
||||||
// PHY parameters
|
// GT parameters
|
||||||
|
.GT_TX_POLARITY(GT_TX_POLARITY[n]),
|
||||||
|
.GT_RX_POLARITY(GT_RX_POLARITY[n]),
|
||||||
|
|
||||||
|
// MAC/PHY parameters
|
||||||
.PADDING_EN(PADDING_EN),
|
.PADDING_EN(PADDING_EN),
|
||||||
.DIC_EN(DIC_EN),
|
.DIC_EN(DIC_EN),
|
||||||
.MIN_FRAME_LEN(MIN_FRAME_LEN),
|
.MIN_FRAME_LEN(MIN_FRAME_LEN),
|
||||||
|
|||||||
@@ -26,6 +26,10 @@ module taxi_eth_mac_25g_us_ch #
|
|||||||
// GT type
|
// GT type
|
||||||
parameter string GT_TYPE = "GTY",
|
parameter string GT_TYPE = "GTY",
|
||||||
|
|
||||||
|
// GT parameters
|
||||||
|
parameter logic GT_TX_POLARITY = 1'b0,
|
||||||
|
parameter logic GT_RX_POLARITY = 1'b0,
|
||||||
|
|
||||||
// MAC/PHY parameters
|
// MAC/PHY parameters
|
||||||
parameter logic PADDING_EN = 1'b1,
|
parameter logic PADDING_EN = 1'b1,
|
||||||
parameter logic DIC_EN = 1'b1,
|
parameter logic DIC_EN = 1'b1,
|
||||||
@@ -270,6 +274,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTY" && GT_USP) begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -287,6 +293,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTY" && GT_USP) begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
@@ -331,6 +339,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTH" && GT_USP) begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -348,6 +358,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTH" && GT_USP) begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
@@ -392,6 +404,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTY" && !GT_USP) begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -409,6 +423,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTY" && !GT_USP) begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
@@ -453,6 +469,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTH" && !GT_USP) begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -470,6 +488,8 @@ end else if (HAS_COMMON && GT_TYPE == "GTH" && !GT_USP) begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
@@ -516,6 +536,8 @@ end else if (!HAS_COMMON && GT_TYPE == "GTY") begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -533,6 +555,8 @@ end else if (!HAS_COMMON && GT_TYPE == "GTY") begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
@@ -581,6 +605,8 @@ end else if (!HAS_COMMON && GT_TYPE == "GTH") begin : xcvr
|
|||||||
.txpmaresetdone_out(),
|
.txpmaresetdone_out(),
|
||||||
.txprgdivresetdone_out(),
|
.txprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.txpolarity_in(GT_TX_POLARITY),
|
||||||
|
|
||||||
.gtwiz_userdata_tx_in(gt_txdata),
|
.gtwiz_userdata_tx_in(gt_txdata),
|
||||||
.txheader_in(gt_txheader),
|
.txheader_in(gt_txheader),
|
||||||
.txsequence_in(7'b0),
|
.txsequence_in(7'b0),
|
||||||
@@ -598,6 +624,8 @@ end else if (!HAS_COMMON && GT_TYPE == "GTH") begin : xcvr
|
|||||||
.rxpmaresetdone_out(),
|
.rxpmaresetdone_out(),
|
||||||
.rxprgdivresetdone_out(),
|
.rxprgdivresetdone_out(),
|
||||||
|
|
||||||
|
.rxpolarity_in(GT_RX_POLARITY),
|
||||||
|
|
||||||
.rxgearboxslip_in(gt_rxgearboxslip),
|
.rxgearboxslip_in(gt_rxgearboxslip),
|
||||||
.gtwiz_userdata_rx_out(gt_rxdata),
|
.gtwiz_userdata_rx_out(gt_rxdata),
|
||||||
.rxdatavalid_out(gt_rxdatavalid),
|
.rxdatavalid_out(gt_rxdatavalid),
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width {32}
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width {32}
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width {32}
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set int_data_width $user_data_width
|
|||||||
set rx_eq_mode {DFE}
|
set rx_eq_mode {DFE}
|
||||||
set extra_ports [list]
|
set extra_ports [list]
|
||||||
set extra_pll_ports [list {qpll0lock_out}]
|
set extra_pll_ports [list {qpll0lock_out}]
|
||||||
|
# channel polarity
|
||||||
|
lappend extra_ports txpolarity_in rxpolarity_in
|
||||||
|
|
||||||
set config [dict create]
|
set config [dict create]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user