mirror of
https://github.com/fpganinja/taxi.git
synced 2026-02-08 02:00:25 -08:00
eth: Move reset synchronizer to top-level of GT wrapper
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -268,6 +268,17 @@ module taxi_eth_mac_25g_us #
|
|||||||
input wire logic cfg_rx_pfc_en[CNT] = '{CNT{1'b0}}
|
input wire logic cfg_rx_pfc_en[CNT] = '{CNT{1'b0}}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
wire xcvr_ctrl_rst_sync;
|
||||||
|
|
||||||
|
taxi_sync_reset #(
|
||||||
|
.N(4)
|
||||||
|
)
|
||||||
|
reset_sync_inst (
|
||||||
|
.clk(xcvr_ctrl_clk),
|
||||||
|
.rst(xcvr_ctrl_rst),
|
||||||
|
.out(xcvr_ctrl_rst_sync)
|
||||||
|
);
|
||||||
|
|
||||||
// statistics
|
// statistics
|
||||||
localparam STAT_TX_CNT = STAT_TX_LEVEL == 0 ? 8 : (STAT_TX_LEVEL == 1 ? 16: 32);
|
localparam STAT_TX_CNT = STAT_TX_LEVEL == 0 ? 8 : (STAT_TX_LEVEL == 1 ? 16: 32);
|
||||||
localparam STAT_RX_CNT = STAT_RX_LEVEL == 0 ? 8 : (STAT_RX_LEVEL == 1 ? 16: 32);
|
localparam STAT_RX_CNT = STAT_RX_LEVEL == 0 ? 8 : (STAT_RX_LEVEL == 1 ? 16: 32);
|
||||||
@@ -395,7 +406,7 @@ for (genvar n = 0; n < CNT; n = n + 1) begin : ch
|
|||||||
)
|
)
|
||||||
ch_inst (
|
ch_inst (
|
||||||
.xcvr_ctrl_clk(xcvr_ctrl_clk),
|
.xcvr_ctrl_clk(xcvr_ctrl_clk),
|
||||||
.xcvr_ctrl_rst(xcvr_ctrl_rst),
|
.xcvr_ctrl_rst(xcvr_ctrl_rst_sync),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common
|
* Common
|
||||||
|
|||||||
@@ -111,17 +111,6 @@ if (DATA_W != 32)
|
|||||||
if (HDR_W != 2)
|
if (HDR_W != 2)
|
||||||
$fatal(0, "Error: HDR_W must be 2");
|
$fatal(0, "Error: HDR_W must be 2");
|
||||||
|
|
||||||
wire xcvr_ctrl_rst_sync;
|
|
||||||
|
|
||||||
taxi_sync_reset #(
|
|
||||||
.N(4)
|
|
||||||
)
|
|
||||||
reset_sync_inst (
|
|
||||||
.clk(xcvr_ctrl_clk),
|
|
||||||
.rst(xcvr_ctrl_rst),
|
|
||||||
.out(xcvr_ctrl_rst_sync)
|
|
||||||
);
|
|
||||||
|
|
||||||
wire gt_qpll_pd;
|
wire gt_qpll_pd;
|
||||||
wire gt_qpll_reset;
|
wire gt_qpll_reset;
|
||||||
|
|
||||||
@@ -136,7 +125,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll_reset_inst (
|
qpll_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -230,7 +219,7 @@ taxi_gt_tx_reset #(
|
|||||||
)
|
)
|
||||||
gt_tx_reset_inst (
|
gt_tx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -294,7 +283,7 @@ taxi_gt_rx_reset #(
|
|||||||
)
|
)
|
||||||
gt_rx_reset_inst (
|
gt_rx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
|
|||||||
@@ -133,17 +133,6 @@ if (DATA_W != 32)
|
|||||||
if (HDR_W != 2)
|
if (HDR_W != 2)
|
||||||
$fatal(0, "Error: HDR_W must be 2");
|
$fatal(0, "Error: HDR_W must be 2");
|
||||||
|
|
||||||
wire xcvr_ctrl_rst_sync;
|
|
||||||
|
|
||||||
taxi_sync_reset #(
|
|
||||||
.N(4)
|
|
||||||
)
|
|
||||||
reset_sync_inst (
|
|
||||||
.clk(xcvr_ctrl_clk),
|
|
||||||
.rst(xcvr_ctrl_rst),
|
|
||||||
.out(xcvr_ctrl_rst_sync)
|
|
||||||
);
|
|
||||||
|
|
||||||
wire gt_qpll0_pd;
|
wire gt_qpll0_pd;
|
||||||
wire gt_qpll0_reset;
|
wire gt_qpll0_reset;
|
||||||
wire gt_qpll1_pd;
|
wire gt_qpll1_pd;
|
||||||
@@ -160,7 +149,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll0_reset_inst (
|
qpll0_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -183,7 +172,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll1_reset_inst (
|
qpll1_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -249,7 +238,7 @@ taxi_gt_tx_reset #(
|
|||||||
)
|
)
|
||||||
gt_tx_reset_inst (
|
gt_tx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -317,7 +306,7 @@ taxi_gt_rx_reset #(
|
|||||||
)
|
)
|
||||||
gt_rx_reset_inst (
|
gt_rx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
|
|||||||
@@ -133,17 +133,6 @@ if (DATA_W != 32)
|
|||||||
if (HDR_W != 2)
|
if (HDR_W != 2)
|
||||||
$fatal(0, "Error: HDR_W must be 2");
|
$fatal(0, "Error: HDR_W must be 2");
|
||||||
|
|
||||||
wire xcvr_ctrl_rst_sync;
|
|
||||||
|
|
||||||
taxi_sync_reset #(
|
|
||||||
.N(4)
|
|
||||||
)
|
|
||||||
reset_sync_inst (
|
|
||||||
.clk(xcvr_ctrl_clk),
|
|
||||||
.rst(xcvr_ctrl_rst),
|
|
||||||
.out(xcvr_ctrl_rst_sync)
|
|
||||||
);
|
|
||||||
|
|
||||||
wire gt_qpll0_pd;
|
wire gt_qpll0_pd;
|
||||||
wire gt_qpll0_reset;
|
wire gt_qpll0_reset;
|
||||||
wire gt_qpll1_pd;
|
wire gt_qpll1_pd;
|
||||||
@@ -160,7 +149,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll0_reset_inst (
|
qpll0_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -183,7 +172,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll1_reset_inst (
|
qpll1_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -249,7 +238,7 @@ taxi_gt_tx_reset #(
|
|||||||
)
|
)
|
||||||
gt_tx_reset_inst (
|
gt_tx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -317,7 +306,7 @@ taxi_gt_rx_reset #(
|
|||||||
)
|
)
|
||||||
gt_rx_reset_inst (
|
gt_rx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
|
|||||||
@@ -133,17 +133,6 @@ if (DATA_W != 64)
|
|||||||
if (HDR_W != 2)
|
if (HDR_W != 2)
|
||||||
$fatal(0, "Error: HDR_W must be 2");
|
$fatal(0, "Error: HDR_W must be 2");
|
||||||
|
|
||||||
wire xcvr_ctrl_rst_sync;
|
|
||||||
|
|
||||||
taxi_sync_reset #(
|
|
||||||
.N(4)
|
|
||||||
)
|
|
||||||
reset_sync_inst (
|
|
||||||
.clk(xcvr_ctrl_clk),
|
|
||||||
.rst(xcvr_ctrl_rst),
|
|
||||||
.out(xcvr_ctrl_rst_sync)
|
|
||||||
);
|
|
||||||
|
|
||||||
wire gt_qpll0_pd;
|
wire gt_qpll0_pd;
|
||||||
wire gt_qpll0_reset;
|
wire gt_qpll0_reset;
|
||||||
wire gt_qpll1_pd;
|
wire gt_qpll1_pd;
|
||||||
@@ -160,7 +149,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll0_reset_inst (
|
qpll0_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -183,7 +172,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll1_reset_inst (
|
qpll1_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -249,7 +238,7 @@ taxi_gt_tx_reset #(
|
|||||||
)
|
)
|
||||||
gt_tx_reset_inst (
|
gt_tx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -317,7 +306,7 @@ taxi_gt_rx_reset #(
|
|||||||
)
|
)
|
||||||
gt_rx_reset_inst (
|
gt_rx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
|
|||||||
@@ -133,17 +133,6 @@ if (DATA_W != 64)
|
|||||||
if (HDR_W != 2)
|
if (HDR_W != 2)
|
||||||
$fatal(0, "Error: HDR_W must be 2");
|
$fatal(0, "Error: HDR_W must be 2");
|
||||||
|
|
||||||
wire xcvr_ctrl_rst_sync;
|
|
||||||
|
|
||||||
taxi_sync_reset #(
|
|
||||||
.N(4)
|
|
||||||
)
|
|
||||||
reset_sync_inst (
|
|
||||||
.clk(xcvr_ctrl_clk),
|
|
||||||
.rst(xcvr_ctrl_rst),
|
|
||||||
.out(xcvr_ctrl_rst_sync)
|
|
||||||
);
|
|
||||||
|
|
||||||
wire gt_qpll0_pd;
|
wire gt_qpll0_pd;
|
||||||
wire gt_qpll0_reset;
|
wire gt_qpll0_reset;
|
||||||
wire gt_qpll1_pd;
|
wire gt_qpll1_pd;
|
||||||
@@ -160,7 +149,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll0_reset_inst (
|
qpll0_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -183,7 +172,7 @@ if (HAS_COMMON) begin : common_ctrl
|
|||||||
)
|
)
|
||||||
qpll1_reset_inst (
|
qpll1_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -249,7 +238,7 @@ taxi_gt_tx_reset #(
|
|||||||
)
|
)
|
||||||
gt_tx_reset_inst (
|
gt_tx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
@@ -317,7 +306,7 @@ taxi_gt_rx_reset #(
|
|||||||
)
|
)
|
||||||
gt_rx_reset_inst (
|
gt_rx_reset_inst (
|
||||||
.clk(xcvr_ctrl_clk),
|
.clk(xcvr_ctrl_clk),
|
||||||
.rst(xcvr_ctrl_rst_sync),
|
.rst(xcvr_ctrl_rst),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GT
|
* GT
|
||||||
|
|||||||
Reference in New Issue
Block a user