mirror of
https://github.com/fpganinja/taxi.git
synced 2025-12-10 17:28:40 -08:00
eth: Rename gearbox start signals to sync
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -46,9 +46,9 @@ module taxi_axis_baser_tx_64 #
|
||||
output wire logic encoded_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] encoded_tx_hdr,
|
||||
output wire logic encoded_tx_hdr_valid,
|
||||
input wire logic [GBX_CNT-1:0] tx_gbx_req_start = '0,
|
||||
input wire logic [GBX_CNT-1:0] tx_gbx_req_sync = '0,
|
||||
input wire logic tx_gbx_req_stall = '0,
|
||||
output wire logic [GBX_CNT-1:0] tx_gbx_start,
|
||||
output wire logic [GBX_CNT-1:0] tx_gbx_sync,
|
||||
|
||||
/*
|
||||
* PTP
|
||||
@@ -223,7 +223,7 @@ logic [DATA_W-1:0] encoded_tx_data_reg = {{8{CTRL_IDLE}}, BLOCK_TYPE_CTRL};
|
||||
logic encoded_tx_data_valid_reg = 1'b0;
|
||||
logic [HDR_W-1:0] encoded_tx_hdr_reg = SYNC_CTRL;
|
||||
logic encoded_tx_hdr_valid_reg = 1'b0;
|
||||
logic [GBX_CNT-1:0] tx_gbx_start_reg = '0;
|
||||
logic [GBX_CNT-1:0] tx_gbx_sync_reg = '0;
|
||||
|
||||
logic [DATA_W-1:0] output_data_reg = '0, output_data_next;
|
||||
logic [3:0] output_type_reg = OUTPUT_TYPE_IDLE, output_type_next;
|
||||
@@ -251,7 +251,7 @@ assign encoded_tx_data = encoded_tx_data_reg;
|
||||
assign encoded_tx_data_valid = GBX_IF_EN ? encoded_tx_data_valid_reg : 1'b1;
|
||||
assign encoded_tx_hdr = encoded_tx_hdr_reg;
|
||||
assign encoded_tx_hdr_valid = GBX_IF_EN ? encoded_tx_hdr_valid_reg : 1'b1;
|
||||
assign tx_gbx_start = GBX_IF_EN ? tx_gbx_start_reg : '0;
|
||||
assign tx_gbx_sync = GBX_IF_EN ? tx_gbx_sync_reg : '0;
|
||||
|
||||
assign m_axis_tx_cpl.tdata = PTP_TS_EN ? ((!PTP_TS_FMT_TOD || m_axis_tx_cpl_ts_borrow_reg) ? m_axis_tx_cpl_ts_reg : m_axis_tx_cpl_ts_adj_reg) : '0;
|
||||
assign m_axis_tx_cpl.tkeep = 1'b1;
|
||||
@@ -920,7 +920,7 @@ always_ff @(posedge clk) begin
|
||||
end
|
||||
end
|
||||
|
||||
tx_gbx_start_reg <= tx_gbx_req_start;
|
||||
tx_gbx_sync_reg <= tx_gbx_req_sync;
|
||||
|
||||
last_ts_reg <= (4+16)'(ptp_ts);
|
||||
ts_inc_reg <= (4+16)'(ptp_ts) - last_ts_reg;
|
||||
@@ -945,7 +945,7 @@ always_ff @(posedge clk) begin
|
||||
encoded_tx_data_valid_reg <= 1'b0;
|
||||
encoded_tx_hdr_reg <= SYNC_CTRL;
|
||||
encoded_tx_hdr_valid_reg <= 1'b0;
|
||||
tx_gbx_start_reg <= '0;
|
||||
tx_gbx_sync_reg <= '0;
|
||||
|
||||
output_data_reg <= '0;
|
||||
output_type_reg <= OUTPUT_TYPE_IDLE;
|
||||
|
||||
@@ -69,9 +69,9 @@ module taxi_eth_mac_phy_10g #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
input wire logic [DATA_W-1:0] serdes_rx_data,
|
||||
input wire logic serdes_rx_data_valid = 1'b1,
|
||||
input wire logic [HDR_W-1:0] serdes_rx_hdr,
|
||||
@@ -330,9 +330,9 @@ eth_mac_phy_10g_tx_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* PTP
|
||||
|
||||
@@ -83,9 +83,9 @@ module taxi_eth_mac_phy_10g_fifo #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
input wire logic [DATA_W-1:0] serdes_rx_data,
|
||||
input wire logic serdes_rx_data_valid = 1'b1,
|
||||
input wire logic [HDR_W-1:0] serdes_rx_hdr,
|
||||
@@ -332,9 +332,9 @@ eth_mac_phy_10g_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
.serdes_rx_data(serdes_rx_data),
|
||||
.serdes_rx_data_valid(serdes_rx_data_valid),
|
||||
.serdes_rx_hdr(serdes_rx_hdr),
|
||||
|
||||
@@ -49,9 +49,9 @@ module taxi_eth_mac_phy_10g_tx #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
|
||||
/*
|
||||
* PTP
|
||||
@@ -88,9 +88,9 @@ wire encoded_tx_data_valid;
|
||||
wire [HDR_W-1:0] encoded_tx_hdr;
|
||||
wire encoded_tx_hdr_valid;
|
||||
|
||||
wire tx_gbx_req_start;
|
||||
wire tx_gbx_req_sync;
|
||||
wire tx_gbx_req_stall;
|
||||
wire tx_gbx_start;
|
||||
wire tx_gbx_sync;
|
||||
|
||||
taxi_axis_baser_tx_64 #(
|
||||
.DATA_W(DATA_W),
|
||||
@@ -122,9 +122,9 @@ axis_baser_tx_inst (
|
||||
.encoded_tx_data_valid(encoded_tx_data_valid),
|
||||
.encoded_tx_hdr(encoded_tx_hdr),
|
||||
.encoded_tx_hdr_valid(encoded_tx_hdr_valid),
|
||||
.tx_gbx_req_start(tx_gbx_req_start),
|
||||
.tx_gbx_req_sync(tx_gbx_req_sync),
|
||||
.tx_gbx_req_stall(tx_gbx_req_stall),
|
||||
.tx_gbx_start(tx_gbx_start),
|
||||
.tx_gbx_sync(tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* PTP
|
||||
@@ -175,9 +175,9 @@ eth_phy_10g_tx_if_inst (
|
||||
.encoded_tx_data_valid(encoded_tx_data_valid),
|
||||
.encoded_tx_hdr(encoded_tx_hdr),
|
||||
.encoded_tx_hdr_valid(encoded_tx_hdr_valid),
|
||||
.tx_gbx_req_start(tx_gbx_req_start),
|
||||
.tx_gbx_req_sync(tx_gbx_req_sync),
|
||||
.tx_gbx_req_stall(tx_gbx_req_stall),
|
||||
.tx_gbx_start(tx_gbx_start),
|
||||
.tx_gbx_sync(tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* SERDES interface
|
||||
@@ -186,9 +186,9 @@ eth_phy_10g_tx_if_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* Configuration
|
||||
|
||||
@@ -46,9 +46,9 @@ module taxi_eth_phy_10g #
|
||||
output wire logic [DATA_W-1:0] xgmii_rxd,
|
||||
output wire logic [CTRL_W-1:0] xgmii_rxc,
|
||||
output wire logic xgmii_rx_valid = 1'b1,
|
||||
output wire logic tx_gbx_req_start,
|
||||
output wire logic tx_gbx_req_sync,
|
||||
output wire logic tx_gbx_req_stall,
|
||||
input wire logic tx_gbx_start = 1'b0,
|
||||
input wire logic tx_gbx_sync = 1'b0,
|
||||
|
||||
/*
|
||||
* SERDES interface
|
||||
@@ -57,9 +57,9 @@ module taxi_eth_phy_10g #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
input wire logic [DATA_W-1:0] serdes_rx_data,
|
||||
input wire logic serdes_rx_data_valid = 1'b1,
|
||||
input wire logic [HDR_W-1:0] serdes_rx_hdr,
|
||||
@@ -155,9 +155,9 @@ eth_phy_10g_tx_inst (
|
||||
.xgmii_txd(xgmii_txd),
|
||||
.xgmii_txc(xgmii_txc),
|
||||
.xgmii_tx_valid(xgmii_tx_valid),
|
||||
.tx_gbx_req_start(tx_gbx_req_start),
|
||||
.tx_gbx_req_sync(tx_gbx_req_sync),
|
||||
.tx_gbx_req_stall(tx_gbx_req_stall),
|
||||
.tx_gbx_start(tx_gbx_start),
|
||||
.tx_gbx_sync(tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* SERDES interface
|
||||
@@ -166,9 +166,9 @@ eth_phy_10g_tx_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* Status
|
||||
|
||||
@@ -36,9 +36,9 @@ module taxi_eth_phy_10g_tx #
|
||||
input wire logic [DATA_W-1:0] xgmii_txd,
|
||||
input wire logic [CTRL_W-1:0] xgmii_txc,
|
||||
input wire logic xgmii_tx_valid = 1'b1,
|
||||
output wire logic tx_gbx_req_start,
|
||||
output wire logic tx_gbx_req_sync,
|
||||
output wire logic tx_gbx_req_stall,
|
||||
input wire logic tx_gbx_start = 1'b0,
|
||||
input wire logic tx_gbx_sync = 1'b0,
|
||||
|
||||
/*
|
||||
* SERDES interface
|
||||
@@ -47,9 +47,9 @@ module taxi_eth_phy_10g_tx #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
|
||||
/*
|
||||
* Status
|
||||
@@ -77,7 +77,7 @@ wire encoded_tx_data_valid;
|
||||
wire [HDR_W-1:0] encoded_tx_hdr;
|
||||
wire encoded_tx_hdr_valid;
|
||||
|
||||
wire tx_gbx_start_int;
|
||||
wire tx_gbx_sync_int;
|
||||
|
||||
taxi_xgmii_baser_enc_64 #(
|
||||
.DATA_W(DATA_W),
|
||||
@@ -96,7 +96,7 @@ xgmii_baser_enc_inst (
|
||||
.xgmii_txd(xgmii_txd),
|
||||
.xgmii_txc(xgmii_txc),
|
||||
.xgmii_tx_valid(xgmii_tx_valid),
|
||||
.tx_gbx_start_in(tx_gbx_start),
|
||||
.tx_gbx_sync_in(tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* 10GBASE-R encoded interface
|
||||
@@ -105,7 +105,7 @@ xgmii_baser_enc_inst (
|
||||
.encoded_tx_data_valid(encoded_tx_data_valid),
|
||||
.encoded_tx_hdr(encoded_tx_hdr),
|
||||
.encoded_tx_hdr_valid(encoded_tx_hdr_valid),
|
||||
.tx_gbx_start_out(tx_gbx_start_int),
|
||||
.tx_gbx_sync_out(tx_gbx_sync_int),
|
||||
|
||||
/*
|
||||
* Status
|
||||
@@ -133,9 +133,9 @@ eth_phy_10g_tx_if_inst (
|
||||
.encoded_tx_data_valid(encoded_tx_data_valid),
|
||||
.encoded_tx_hdr(encoded_tx_hdr),
|
||||
.encoded_tx_hdr_valid(encoded_tx_hdr_valid),
|
||||
.tx_gbx_req_start(tx_gbx_req_start),
|
||||
.tx_gbx_req_sync(tx_gbx_req_sync),
|
||||
.tx_gbx_req_stall(tx_gbx_req_stall),
|
||||
.tx_gbx_start(tx_gbx_start_int),
|
||||
.tx_gbx_sync(tx_gbx_sync_int),
|
||||
|
||||
/*
|
||||
* SERDES interface
|
||||
@@ -144,9 +144,9 @@ eth_phy_10g_tx_if_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
|
||||
/*
|
||||
* Configuration
|
||||
|
||||
@@ -36,9 +36,9 @@ module taxi_eth_phy_10g_tx_if #
|
||||
input wire logic encoded_tx_data_valid = 1'b1,
|
||||
input wire logic [HDR_W-1:0] encoded_tx_hdr,
|
||||
input wire logic encoded_tx_hdr_valid = 1'b1,
|
||||
output wire logic tx_gbx_req_start,
|
||||
output wire logic tx_gbx_req_sync,
|
||||
output wire logic tx_gbx_req_stall,
|
||||
input wire logic tx_gbx_start = 1'b0,
|
||||
input wire logic tx_gbx_sync = 1'b0,
|
||||
/*
|
||||
* SERDES interface
|
||||
*/
|
||||
@@ -46,9 +46,9 @@ module taxi_eth_phy_10g_tx_if #
|
||||
output wire logic serdes_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
output wire logic serdes_tx_hdr_valid,
|
||||
input wire logic serdes_tx_gbx_req_start = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_sync = 1'b0,
|
||||
input wire logic serdes_tx_gbx_req_stall = 1'b0,
|
||||
output wire logic serdes_tx_gbx_start,
|
||||
output wire logic serdes_tx_gbx_sync,
|
||||
|
||||
/*
|
||||
* Configuration
|
||||
@@ -63,7 +63,7 @@ if (DATA_W != 64)
|
||||
if (HDR_W != 2)
|
||||
$fatal(0, "Error: HDR_W must be 2");
|
||||
|
||||
assign tx_gbx_req_start = GBX_IF_EN ? serdes_tx_gbx_req_start : '0;
|
||||
assign tx_gbx_req_sync = GBX_IF_EN ? serdes_tx_gbx_req_sync : '0;
|
||||
assign tx_gbx_req_stall = GBX_IF_EN ? serdes_tx_gbx_req_stall : '0;
|
||||
|
||||
logic [57:0] scrambler_state_reg = '1;
|
||||
@@ -78,7 +78,7 @@ logic [DATA_W-1:0] serdes_tx_data_reg = '0;
|
||||
logic serdes_tx_data_valid_reg = 1'b0;
|
||||
logic [HDR_W-1:0] serdes_tx_hdr_reg = '0;
|
||||
logic serdes_tx_hdr_valid_reg = 1'b0;
|
||||
logic serdes_tx_gbx_start_reg = 1'b0;
|
||||
logic serdes_tx_gbx_sync_reg = 1'b0;
|
||||
|
||||
wire [DATA_W-1:0] serdes_tx_data_int;
|
||||
wire [HDR_W-1:0] serdes_tx_hdr_int;
|
||||
@@ -106,7 +106,7 @@ if (SERDES_PIPELINE > 0) begin
|
||||
(* srl_style = "register" *)
|
||||
reg serdes_tx_hdr_valid_pipe_reg[SERDES_PIPELINE-1:0];
|
||||
(* srl_style = "register" *)
|
||||
reg serdes_tx_gbx_start_pipe_reg[SERDES_PIPELINE-1:0];
|
||||
reg serdes_tx_gbx_sync_pipe_reg[SERDES_PIPELINE-1:0];
|
||||
|
||||
for (genvar n = 0; n < SERDES_PIPELINE; n = n + 1) begin
|
||||
initial begin
|
||||
@@ -114,7 +114,7 @@ if (SERDES_PIPELINE > 0) begin
|
||||
serdes_tx_data_valid_pipe_reg[n] = '0;
|
||||
serdes_tx_hdr_pipe_reg[n] = '0;
|
||||
serdes_tx_hdr_valid_pipe_reg[n] = '0;
|
||||
serdes_tx_gbx_start_pipe_reg[n] = '0;
|
||||
serdes_tx_gbx_sync_pipe_reg[n] = '0;
|
||||
end
|
||||
|
||||
always @(posedge clk) begin
|
||||
@@ -122,7 +122,7 @@ if (SERDES_PIPELINE > 0) begin
|
||||
serdes_tx_data_valid_pipe_reg[n] <= n == 0 ? serdes_tx_data_valid_reg : serdes_tx_data_valid_pipe_reg[n-1];
|
||||
serdes_tx_hdr_pipe_reg[n] <= n == 0 ? serdes_tx_hdr_int : serdes_tx_hdr_pipe_reg[n-1];
|
||||
serdes_tx_hdr_valid_pipe_reg[n] <= n == 0 ? serdes_tx_hdr_valid_reg : serdes_tx_hdr_valid_pipe_reg[n-1];
|
||||
serdes_tx_gbx_start_pipe_reg[n] <= n == 0 ? serdes_tx_gbx_start_reg : serdes_tx_gbx_start_pipe_reg[n-1];
|
||||
serdes_tx_gbx_sync_pipe_reg[n] <= n == 0 ? serdes_tx_gbx_sync_reg : serdes_tx_gbx_sync_pipe_reg[n-1];
|
||||
end
|
||||
end
|
||||
|
||||
@@ -130,13 +130,13 @@ if (SERDES_PIPELINE > 0) begin
|
||||
assign serdes_tx_data_valid = GBX_IF_EN ? serdes_tx_data_valid_pipe_reg[SERDES_PIPELINE-1] : 1'b1;
|
||||
assign serdes_tx_hdr = serdes_tx_hdr_pipe_reg[SERDES_PIPELINE-1];
|
||||
assign serdes_tx_hdr_valid = GBX_IF_EN ? serdes_tx_hdr_valid_pipe_reg[SERDES_PIPELINE-1] : 1'b1;
|
||||
assign serdes_tx_gbx_start = GBX_IF_EN ? serdes_tx_gbx_start_pipe_reg[SERDES_PIPELINE-1] : 1'b0;
|
||||
assign serdes_tx_gbx_sync = GBX_IF_EN ? serdes_tx_gbx_sync_pipe_reg[SERDES_PIPELINE-1] : 1'b0;
|
||||
end else begin
|
||||
assign serdes_tx_data = serdes_tx_data_int;
|
||||
assign serdes_tx_data_valid = GBX_IF_EN ? serdes_tx_data_valid_reg : 1'b1;
|
||||
assign serdes_tx_hdr = serdes_tx_hdr_int;
|
||||
assign serdes_tx_hdr_valid = GBX_IF_EN ? serdes_tx_hdr_valid_reg : 1'b1;
|
||||
assign serdes_tx_gbx_start = GBX_IF_EN ? serdes_tx_gbx_start_reg : 1'b0;
|
||||
assign serdes_tx_gbx_sync = GBX_IF_EN ? serdes_tx_gbx_sync_reg : 1'b0;
|
||||
end
|
||||
|
||||
taxi_lfsr #(
|
||||
@@ -194,7 +194,7 @@ always_ff @(posedge clk) begin
|
||||
|
||||
serdes_tx_data_valid_reg <= encoded_tx_data_valid;
|
||||
serdes_tx_hdr_valid_reg <= encoded_tx_hdr_valid;
|
||||
serdes_tx_gbx_start_reg <= tx_gbx_start;
|
||||
serdes_tx_gbx_sync_reg <= tx_gbx_sync;
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
@@ -33,7 +33,7 @@ module taxi_xgmii_baser_enc_64 #
|
||||
input wire logic [DATA_W-1:0] xgmii_txd,
|
||||
input wire logic [CTRL_W-1:0] xgmii_txc,
|
||||
input wire logic xgmii_tx_valid = 1'b1,
|
||||
input wire logic [GBX_CNT-1:0] tx_gbx_start_in = '0,
|
||||
input wire logic [GBX_CNT-1:0] tx_gbx_sync_in = '0,
|
||||
|
||||
/*
|
||||
* 10GBASE-R encoded interface
|
||||
@@ -42,7 +42,7 @@ module taxi_xgmii_baser_enc_64 #
|
||||
output wire logic encoded_tx_data_valid,
|
||||
output wire logic [HDR_W-1:0] encoded_tx_hdr,
|
||||
output wire logic encoded_tx_hdr_valid,
|
||||
output wire logic [GBX_CNT-1:0] tx_gbx_start_out,
|
||||
output wire logic [GBX_CNT-1:0] tx_gbx_sync_out,
|
||||
|
||||
/*
|
||||
* Status
|
||||
@@ -118,7 +118,7 @@ logic [DATA_W-1:0] encoded_tx_data_reg = '0, encoded_tx_data_next;
|
||||
logic encoded_tx_data_valid_reg = 1'b0, encoded_tx_data_valid_next;
|
||||
logic [HDR_W-1:0] encoded_tx_hdr_reg = '0, encoded_tx_hdr_next;
|
||||
logic encoded_tx_hdr_valid_reg = 1'b0, encoded_tx_hdr_valid_next;
|
||||
logic [GBX_CNT-1:0] tx_gbx_start_reg = '0, tx_gbx_start_next;
|
||||
logic [GBX_CNT-1:0] tx_gbx_sync_reg = '0, tx_gbx_sync_next;
|
||||
|
||||
logic tx_bad_block_reg = 1'b0, tx_bad_block_next;
|
||||
|
||||
@@ -126,7 +126,7 @@ assign encoded_tx_data = encoded_tx_data_reg;
|
||||
assign encoded_tx_data_valid = GBX_IF_EN ? encoded_tx_data_valid_reg : 1'b1;
|
||||
assign encoded_tx_hdr = encoded_tx_hdr_reg;
|
||||
assign encoded_tx_hdr_valid = GBX_IF_EN ? encoded_tx_hdr_valid_reg : 1'b1;
|
||||
assign tx_gbx_start_out = GBX_IF_EN ? tx_gbx_start_reg : '0;
|
||||
assign tx_gbx_sync_out = GBX_IF_EN ? tx_gbx_sync_reg : '0;
|
||||
|
||||
assign tx_bad_block = tx_bad_block_reg;
|
||||
|
||||
@@ -264,7 +264,7 @@ always_comb begin
|
||||
|
||||
encoded_tx_data_valid_next = xgmii_tx_valid;
|
||||
encoded_tx_hdr_valid_next = xgmii_tx_valid;
|
||||
tx_gbx_start_next = tx_gbx_start_in;
|
||||
tx_gbx_sync_next = tx_gbx_sync_in;
|
||||
end
|
||||
|
||||
always_ff @(posedge clk) begin
|
||||
@@ -272,7 +272,7 @@ always_ff @(posedge clk) begin
|
||||
encoded_tx_data_valid_reg <= encoded_tx_data_valid_next;
|
||||
encoded_tx_hdr_reg <= encoded_tx_hdr_next;
|
||||
encoded_tx_hdr_valid_reg <= encoded_tx_hdr_valid_next;
|
||||
tx_gbx_start_reg <= tx_gbx_start_next;
|
||||
tx_gbx_sync_reg <= tx_gbx_sync_next;
|
||||
|
||||
tx_bad_block_reg <= tx_bad_block_next;
|
||||
end
|
||||
|
||||
@@ -287,9 +287,9 @@ wire [DATA_W-1:0] serdes_tx_data;
|
||||
wire serdes_tx_data_valid;
|
||||
wire [HDR_W-1:0] serdes_tx_hdr;
|
||||
wire serdes_tx_hdr_valid;
|
||||
wire serdes_tx_gbx_req_start;
|
||||
wire serdes_tx_gbx_req_sync;
|
||||
wire serdes_tx_gbx_req_stall;
|
||||
wire serdes_tx_gbx_start;
|
||||
wire serdes_tx_gbx_sync;
|
||||
wire [DATA_W-1:0] serdes_rx_data;
|
||||
wire serdes_rx_data_valid;
|
||||
wire [HDR_W-1:0] serdes_rx_hdr;
|
||||
@@ -395,9 +395,9 @@ if (CFG_LOW_LATENCY) begin : gt
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
.serdes_rx_data(serdes_rx_data),
|
||||
.serdes_rx_data_valid(serdes_rx_data_valid),
|
||||
.serdes_rx_hdr(serdes_rx_hdr),
|
||||
@@ -504,9 +504,9 @@ end else begin : gt
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
.serdes_rx_data(serdes_rx_data),
|
||||
.serdes_rx_data_valid(serdes_rx_data_valid),
|
||||
.serdes_rx_hdr(serdes_rx_hdr),
|
||||
@@ -569,9 +569,9 @@ eth_mac_phy_10g_inst (
|
||||
.serdes_tx_data_valid(serdes_tx_data_valid),
|
||||
.serdes_tx_hdr(serdes_tx_hdr),
|
||||
.serdes_tx_hdr_valid(serdes_tx_hdr_valid),
|
||||
.serdes_tx_gbx_req_start(serdes_tx_gbx_req_start),
|
||||
.serdes_tx_gbx_req_sync(serdes_tx_gbx_req_sync),
|
||||
.serdes_tx_gbx_req_stall(serdes_tx_gbx_req_stall),
|
||||
.serdes_tx_gbx_start(serdes_tx_gbx_start),
|
||||
.serdes_tx_gbx_sync(serdes_tx_gbx_sync),
|
||||
.serdes_rx_data(serdes_rx_data),
|
||||
.serdes_rx_data_valid(serdes_rx_data_valid),
|
||||
.serdes_rx_hdr(serdes_rx_hdr),
|
||||
|
||||
@@ -113,9 +113,9 @@ module taxi_eth_phy_25g_us_gt #
|
||||
input wire logic serdes_tx_data_valid,
|
||||
input wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
input wire logic serdes_tx_hdr_valid,
|
||||
output wire logic serdes_tx_gbx_req_start,
|
||||
output wire logic serdes_tx_gbx_req_sync,
|
||||
output wire logic serdes_tx_gbx_req_stall,
|
||||
input wire logic serdes_tx_gbx_start,
|
||||
input wire logic serdes_tx_gbx_sync,
|
||||
output wire logic [DATA_W-1:0] serdes_rx_data,
|
||||
output wire logic serdes_rx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_rx_hdr,
|
||||
@@ -370,7 +370,7 @@ if (!SIM) begin
|
||||
assign serdes_rx_hdr_valid = gt_rxheadervalid[0];
|
||||
end
|
||||
|
||||
assign serdes_tx_gbx_req_start = 1'b0;
|
||||
assign serdes_tx_gbx_req_sync = 1'b0;
|
||||
assign serdes_tx_gbx_req_stall = 1'b0;
|
||||
|
||||
if (SIM) begin : xcvr
|
||||
|
||||
@@ -113,9 +113,9 @@ module taxi_eth_phy_25g_us_gt_ll #
|
||||
input wire logic serdes_tx_data_valid,
|
||||
input wire logic [HDR_W-1:0] serdes_tx_hdr,
|
||||
input wire logic serdes_tx_hdr_valid,
|
||||
output wire logic serdes_tx_gbx_req_start,
|
||||
output wire logic serdes_tx_gbx_req_sync,
|
||||
output wire logic serdes_tx_gbx_req_stall,
|
||||
input wire logic serdes_tx_gbx_start,
|
||||
input wire logic serdes_tx_gbx_sync,
|
||||
output wire logic [DATA_W-1:0] serdes_rx_data,
|
||||
output wire logic serdes_rx_data_valid,
|
||||
output wire logic [HDR_W-1:0] serdes_rx_hdr,
|
||||
@@ -376,20 +376,20 @@ if (GT_TYPE == "GTY") begin : tx_seq
|
||||
|
||||
// Generate gearbox request signals
|
||||
logic [6:0] tx_seq_gen_reg = '0;
|
||||
logic tx_req_start_reg = 1'b0;
|
||||
logic tx_req_sync_reg = 1'b0;
|
||||
logic tx_req_stall_reg = 1'b0;
|
||||
|
||||
assign serdes_tx_gbx_req_start = tx_req_start_reg;
|
||||
assign serdes_tx_gbx_req_sync = tx_req_sync_reg;
|
||||
assign serdes_tx_gbx_req_stall = tx_req_stall_reg;
|
||||
|
||||
always @(posedge tx_clk) begin
|
||||
tx_req_start_reg <= 1'b0;
|
||||
tx_req_sync_reg <= 1'b0;
|
||||
tx_req_stall_reg <= 1'b0;
|
||||
|
||||
tx_seq_gen_reg <= tx_seq_gen_reg - 1;
|
||||
if (tx_seq_gen_reg == 0) begin
|
||||
tx_seq_gen_reg <= 65;
|
||||
tx_req_start_reg <= 1'b1;
|
||||
tx_req_sync_reg <= 1'b1;
|
||||
end
|
||||
if (tx_seq_gen_reg == 2 || tx_seq_gen_reg == 1) begin
|
||||
tx_req_stall_reg <= 1'b1;
|
||||
@@ -406,7 +406,7 @@ if (GT_TYPE == "GTY") begin : tx_seq
|
||||
if (tx_seq_reg == 65) begin
|
||||
tx_seq_reg <= '0;
|
||||
end
|
||||
if (serdes_tx_gbx_start) begin
|
||||
if (serdes_tx_gbx_sync) begin
|
||||
tx_seq_reg <= 1;
|
||||
end
|
||||
end
|
||||
@@ -417,20 +417,20 @@ end else begin : tx_seq
|
||||
|
||||
// Generate gearbox request signals
|
||||
logic [5:0] tx_seq_gen_reg = '0;
|
||||
logic tx_req_start_reg = 1'b0;
|
||||
logic tx_req_sync_reg = 1'b0;
|
||||
logic tx_req_stall_reg = 1'b0;
|
||||
|
||||
assign serdes_tx_gbx_req_start = tx_req_start_reg;
|
||||
assign serdes_tx_gbx_req_sync = tx_req_sync_reg;
|
||||
assign serdes_tx_gbx_req_stall = tx_req_stall_reg;
|
||||
|
||||
always @(posedge tx_clk) begin
|
||||
tx_req_start_reg <= 1'b0;
|
||||
tx_req_sync_reg <= 1'b0;
|
||||
tx_req_stall_reg <= 1'b0;
|
||||
|
||||
tx_seq_gen_reg <= tx_seq_gen_reg - 1;
|
||||
if (tx_seq_gen_reg == 0) begin
|
||||
tx_seq_gen_reg <= 32;
|
||||
tx_req_start_reg <= 1'b1;
|
||||
tx_req_sync_reg <= 1'b1;
|
||||
end
|
||||
if (tx_seq_gen_reg == 1) begin
|
||||
tx_req_stall_reg <= 1'b1;
|
||||
@@ -447,7 +447,7 @@ end else begin : tx_seq
|
||||
if (tx_seq_reg == 32) begin
|
||||
tx_seq_reg <= '0;
|
||||
end
|
||||
if (serdes_tx_gbx_start) begin
|
||||
if (serdes_tx_gbx_sync) begin
|
||||
tx_seq_reg <= 1;
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user