Skip to content

Commit 870cebb

Browse files
committed
Clean up PTP parameters on MACs
Signed-off-by: Alex Forencich <[email protected]>
1 parent ae17f7d commit 870cebb

29 files changed

+195
-186
lines changed

rtl/axis_baser_rx_64.v

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ module axis_baser_rx_64 #
3939
parameter PTP_PERIOD_NS = 4'h6,
4040
parameter PTP_PERIOD_FNS = 16'h6666,
4141
parameter PTP_TS_ENABLE = 0,
42-
parameter PTP_TS_WIDTH = 96,
42+
parameter PTP_TS_FMT_TOD = 1,
43+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
4344
parameter USER_WIDTH = (PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1
4445
)
4546
(
@@ -287,7 +288,7 @@ always @* begin
287288
reset_crc = 1'b1;
288289

289290
if (PTP_TS_ENABLE) begin
290-
m_axis_tuser_next[1 +: PTP_TS_WIDTH] = (PTP_TS_WIDTH != 96 || ptp_ts_borrow_reg) ? ptp_ts_reg : ptp_ts_adj_reg;
291+
m_axis_tuser_next[1 +: PTP_TS_WIDTH] = (!PTP_TS_FMT_TOD || ptp_ts_borrow_reg) ? ptp_ts_reg : ptp_ts_adj_reg;
291292
end
292293

293294
if (input_type_d1 == INPUT_TYPE_START_0 && cfg_rx_enable) begin
@@ -399,7 +400,7 @@ always @(posedge clk) begin
399400

400401
swap_data <= encoded_rx_data_masked[63:32];
401402

402-
if (PTP_TS_ENABLE && PTP_TS_WIDTH == 96) begin
403+
if (PTP_TS_ENABLE && PTP_TS_FMT_TOD) begin
403404
// ns field rollover
404405
ptp_ts_adj_reg[15:0] <= ptp_ts_reg[15:0];
405406
{ptp_ts_borrow_reg, ptp_ts_adj_reg[45:16]} <= $signed({1'b0, ptp_ts_reg[45:16]}) - $signed(31'd1000000000);
@@ -413,7 +414,7 @@ always @(posedge clk) begin
413414
input_type_d0 <= INPUT_TYPE_START_0;
414415
input_data_d0 <= encoded_rx_data_masked;
415416

416-
if (PTP_TS_WIDTH == 96) begin
417+
if (PTP_TS_FMT_TOD) begin
417418
ptp_ts_reg[45:0] <= ptp_ts[45:0] + (PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS);
418419
ptp_ts_reg[95:48] <= ptp_ts[95:48];
419420
end else begin
@@ -431,7 +432,7 @@ always @(posedge clk) begin
431432
end
432433
input_data_d0 <= {encoded_rx_data_masked[31:0], swap_data};
433434

434-
if (PTP_TS_WIDTH == 96) begin
435+
if (PTP_TS_FMT_TOD) begin
435436
ptp_ts_reg[45:0] <= ptp_ts[45:0] + (((PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS) * 3) >> 1);
436437
ptp_ts_reg[95:48] <= ptp_ts[95:48];
437438
end else begin

rtl/axis_baser_tx_64.v

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ module axis_baser_tx_64 #
4242
parameter PTP_PERIOD_NS = 4'h6,
4343
parameter PTP_PERIOD_FNS = 16'h6666,
4444
parameter PTP_TS_ENABLE = 0,
45-
parameter PTP_TS_WIDTH = 96,
45+
parameter PTP_TS_FMT_TOD = 1,
46+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
4647
parameter PTP_TS_CTRL_IN_TUSER = 0,
4748
parameter PTP_TAG_ENABLE = PTP_TS_ENABLE,
4849
parameter PTP_TAG_WIDTH = 16,
@@ -231,7 +232,7 @@ assign s_axis_tready = s_axis_tready_reg;
231232
assign encoded_tx_data = encoded_tx_data_reg;
232233
assign encoded_tx_hdr = encoded_tx_hdr_reg;
233234

234-
assign m_axis_ptp_ts = PTP_TS_ENABLE ? ((PTP_TS_WIDTH != 96 || m_axis_ptp_ts_borrow_reg) ? m_axis_ptp_ts_reg : m_axis_ptp_ts_adj_reg) : 0;
235+
assign m_axis_ptp_ts = PTP_TS_ENABLE ? ((!PTP_TS_FMT_TOD || m_axis_ptp_ts_borrow_reg) ? m_axis_ptp_ts_reg : m_axis_ptp_ts_adj_reg) : 0;
235236
assign m_axis_ptp_ts_tag = PTP_TAG_ENABLE ? m_axis_ptp_ts_tag_reg : 0;
236237
assign m_axis_ptp_ts_valid = PTP_TS_ENABLE || PTP_TAG_ENABLE ? m_axis_ptp_ts_valid_reg : 1'b0;
237238

@@ -384,7 +385,7 @@ always @* begin
384385
frame_next = !s_axis_tlast;
385386
end
386387

387-
if (PTP_TS_ENABLE && PTP_TS_WIDTH == 96) begin
388+
if (PTP_TS_ENABLE && PTP_TS_FMT_TOD) begin
388389
m_axis_ptp_ts_valid_next = m_axis_ptp_ts_valid_int_reg;
389390
m_axis_ptp_ts_adj_next[15:0] = m_axis_ptp_ts_reg[15:0];
390391
{m_axis_ptp_ts_borrow_next, m_axis_ptp_ts_adj_next[45:16]} = $signed({1'b0, m_axis_ptp_ts_reg[45:16]}) - $signed(31'd1000000000);
@@ -411,7 +412,7 @@ always @* begin
411412
if (swap_lanes_reg) begin
412413
// lanes swapped
413414
if (PTP_TS_ENABLE) begin
414-
if (PTP_TS_WIDTH == 96) begin
415+
if (PTP_TS_FMT_TOD) begin
415416
m_axis_ptp_ts_next[45:0] = ptp_ts[45:0] + (((PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS) * 3) >> 1);
416417
m_axis_ptp_ts_next[95:48] = ptp_ts[95:48];
417418
end else begin
@@ -422,7 +423,7 @@ always @* begin
422423
end else begin
423424
// lanes not swapped
424425
if (PTP_TS_ENABLE) begin
425-
if (PTP_TS_WIDTH == 96) begin
426+
if (PTP_TS_FMT_TOD) begin
426427
m_axis_ptp_ts_next[45:0] = ptp_ts[45:0] + (PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS);
427428
m_axis_ptp_ts_next[95:48] = ptp_ts[95:48];
428429
end else begin
@@ -434,14 +435,14 @@ always @* begin
434435
if (PTP_TS_ENABLE) begin
435436
if (PTP_TS_CTRL_IN_TUSER) begin
436437
m_axis_ptp_ts_tag_next = s_axis_tuser >> 2;
437-
if (PTP_TS_WIDTH == 96) begin
438+
if (PTP_TS_FMT_TOD) begin
438439
m_axis_ptp_ts_valid_int_next = s_axis_tuser[1];
439440
end else begin
440441
m_axis_ptp_ts_valid_next = s_axis_tuser[1];
441442
end
442443
end else begin
443444
m_axis_ptp_ts_tag_next = s_axis_tuser >> 1;
444-
if (PTP_TS_WIDTH == 96) begin
445+
if (PTP_TS_FMT_TOD) begin
445446
m_axis_ptp_ts_valid_int_next = 1'b1;
446447
end else begin
447448
m_axis_ptp_ts_valid_next = 1'b1;

rtl/axis_xgmii_rx_64.v

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ module axis_xgmii_rx_64 #
3939
parameter PTP_PERIOD_NS = 4'h6,
4040
parameter PTP_PERIOD_FNS = 16'h6666,
4141
parameter PTP_TS_ENABLE = 0,
42-
parameter PTP_TS_WIDTH = 96,
42+
parameter PTP_TS_FMT_TOD = 1,
43+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
4344
parameter USER_WIDTH = (PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1
4445
)
4546
(
@@ -236,7 +237,7 @@ always @* begin
236237
m_axis_tuser_next[0] = 1'b0;
237238

238239
if (PTP_TS_ENABLE) begin
239-
m_axis_tuser_next[1 +: PTP_TS_WIDTH] = (PTP_TS_WIDTH != 96 || ptp_ts_borrow_reg) ? ptp_ts_reg : ptp_ts_adj_reg;
240+
m_axis_tuser_next[1 +: PTP_TS_WIDTH] = (!PTP_TS_FMT_TOD || ptp_ts_borrow_reg) ? ptp_ts_reg : ptp_ts_adj_reg;
240241
end
241242

242243
if (framing_error_reg || framing_error_d0_reg) begin
@@ -326,7 +327,7 @@ always @(posedge clk) begin
326327
xgmii_start_swap <= 1'b0;
327328
xgmii_start_d0 <= xgmii_start_swap;
328329

329-
if (PTP_TS_ENABLE && PTP_TS_WIDTH == 96) begin
330+
if (PTP_TS_ENABLE && PTP_TS_FMT_TOD) begin
330331
// ns field rollover
331332
ptp_ts_adj_reg[15:0] <= ptp_ts_reg[15:0];
332333
{ptp_ts_borrow_reg, ptp_ts_adj_reg[45:16]} <= $signed({1'b0, ptp_ts_reg[45:16]}) - $signed(31'd1000000000);
@@ -378,7 +379,7 @@ always @(posedge clk) begin
378379
term_present_reg <= 1'b0;
379380
framing_error_reg <= xgmii_rxc[7:1] != 0;
380381

381-
if (PTP_TS_WIDTH == 96) begin
382+
if (PTP_TS_FMT_TOD) begin
382383
ptp_ts_reg[45:0] <= ptp_ts[45:0] + (PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS);
383384
ptp_ts_reg[95:48] <= ptp_ts[95:48];
384385
end else begin
@@ -394,7 +395,7 @@ always @(posedge clk) begin
394395
term_present_reg <= 1'b0;
395396
framing_error_reg <= xgmii_rxc[7:5] != 0;
396397

397-
if (PTP_TS_WIDTH == 96) begin
398+
if (PTP_TS_FMT_TOD) begin
398399
ptp_ts_reg[45:0] <= ptp_ts[45:0] + (((PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS) * 3) >> 1);
399400
ptp_ts_reg[95:48] <= ptp_ts[95:48];
400401
end else begin

rtl/axis_xgmii_tx_64.v

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ module axis_xgmii_tx_64 #
4242
parameter PTP_PERIOD_NS = 4'h6,
4343
parameter PTP_PERIOD_FNS = 16'h6666,
4444
parameter PTP_TS_ENABLE = 0,
45-
parameter PTP_TS_WIDTH = 96,
45+
parameter PTP_TS_FMT_TOD = 1,
46+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
4647
parameter PTP_TS_CTRL_IN_TUSER = 0,
4748
parameter PTP_TAG_ENABLE = PTP_TS_ENABLE,
4849
parameter PTP_TAG_WIDTH = 16,
@@ -176,7 +177,7 @@ assign s_axis_tready = s_axis_tready_reg;
176177
assign xgmii_txd = xgmii_txd_reg;
177178
assign xgmii_txc = xgmii_txc_reg;
178179

179-
assign m_axis_ptp_ts = PTP_TS_ENABLE ? ((PTP_TS_WIDTH != 96 || m_axis_ptp_ts_borrow_reg) ? m_axis_ptp_ts_reg : m_axis_ptp_ts_adj_reg) : 0;
180+
assign m_axis_ptp_ts = PTP_TS_ENABLE ? ((!PTP_TS_FMT_TOD || m_axis_ptp_ts_borrow_reg) ? m_axis_ptp_ts_reg : m_axis_ptp_ts_adj_reg) : 0;
180181
assign m_axis_ptp_ts_tag = PTP_TAG_ENABLE ? m_axis_ptp_ts_tag_reg : 0;
181182
assign m_axis_ptp_ts_valid = PTP_TS_ENABLE || PTP_TAG_ENABLE ? m_axis_ptp_ts_valid_reg : 1'b0;
182183

@@ -330,7 +331,7 @@ always @* begin
330331
frame_next = !s_axis_tlast;
331332
end
332333

333-
if (PTP_TS_ENABLE && PTP_TS_WIDTH == 96) begin
334+
if (PTP_TS_ENABLE && PTP_TS_FMT_TOD) begin
334335
m_axis_ptp_ts_valid_next = m_axis_ptp_ts_valid_int_reg;
335336
m_axis_ptp_ts_adj_next[15:0] = m_axis_ptp_ts_reg[15:0];
336337
{m_axis_ptp_ts_borrow_next, m_axis_ptp_ts_adj_next[45:16]} = $signed({1'b0, m_axis_ptp_ts_reg[45:16]}) - $signed(31'd1000000000);
@@ -358,7 +359,7 @@ always @* begin
358359
if (swap_lanes_reg) begin
359360
// lanes swapped
360361
if (PTP_TS_ENABLE) begin
361-
if (PTP_TS_WIDTH == 96) begin
362+
if (PTP_TS_FMT_TOD) begin
362363
m_axis_ptp_ts_next[45:0] = ptp_ts[45:0] + (((PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS) * 3) >> 1);
363364
m_axis_ptp_ts_next[95:48] = ptp_ts[95:48];
364365
end else begin
@@ -369,7 +370,7 @@ always @* begin
369370
end else begin
370371
// lanes not swapped
371372
if (PTP_TS_ENABLE) begin
372-
if (PTP_TS_WIDTH == 96) begin
373+
if (PTP_TS_FMT_TOD) begin
373374
m_axis_ptp_ts_next[45:0] = ptp_ts[45:0] + (PTP_PERIOD_NS * 2**16 + PTP_PERIOD_FNS);
374375
m_axis_ptp_ts_next[95:48] = ptp_ts[95:48];
375376
end else begin
@@ -381,14 +382,14 @@ always @* begin
381382
if (PTP_TS_ENABLE) begin
382383
if (PTP_TS_CTRL_IN_TUSER) begin
383384
m_axis_ptp_ts_tag_next = s_axis_tuser >> 2;
384-
if (PTP_TS_WIDTH == 96) begin
385+
if (PTP_TS_FMT_TOD) begin
385386
m_axis_ptp_ts_valid_int_next = s_axis_tuser[1];
386387
end else begin
387388
m_axis_ptp_ts_valid_next = s_axis_tuser[1];
388389
end
389390
end else begin
390391
m_axis_ptp_ts_tag_next = s_axis_tuser >> 1;
391-
if (PTP_TS_WIDTH == 96) begin
392+
if (PTP_TS_FMT_TOD) begin
392393
m_axis_ptp_ts_valid_int_next = 1'b1;
393394
end else begin
394395
m_axis_ptp_ts_valid_next = 1'b1;

rtl/eth_mac_10g.v

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,14 @@ module eth_mac_10g #
4141
parameter MIN_FRAME_LENGTH = 64,
4242
parameter PTP_PERIOD_NS = 4'h6,
4343
parameter PTP_PERIOD_FNS = 16'h6666,
44-
parameter TX_PTP_TS_ENABLE = 0,
45-
parameter TX_PTP_TS_WIDTH = 96,
44+
parameter PTP_TS_ENABLE = 0,
45+
parameter PTP_TS_FMT_TOD = 1,
46+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
4647
parameter TX_PTP_TS_CTRL_IN_TUSER = 0,
47-
parameter TX_PTP_TAG_ENABLE = TX_PTP_TS_ENABLE,
48+
parameter TX_PTP_TAG_ENABLE = PTP_TS_ENABLE,
4849
parameter TX_PTP_TAG_WIDTH = 16,
49-
parameter RX_PTP_TS_ENABLE = TX_PTP_TS_ENABLE,
50-
parameter RX_PTP_TS_WIDTH = 96,
51-
parameter TX_USER_WIDTH = (TX_PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? TX_PTP_TAG_WIDTH : 0) + (TX_PTP_TS_CTRL_IN_TUSER ? 1 : 0) : 0) + 1,
52-
parameter RX_USER_WIDTH = (RX_PTP_TS_ENABLE ? RX_PTP_TS_WIDTH : 0) + 1,
50+
parameter TX_USER_WIDTH = (PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? TX_PTP_TAG_WIDTH : 0) + (TX_PTP_TS_CTRL_IN_TUSER ? 1 : 0) : 0) + 1,
51+
parameter RX_USER_WIDTH = (PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1,
5352
parameter PFC_ENABLE = 0,
5453
parameter PAUSE_ENABLE = PFC_ENABLE
5554
)
@@ -89,9 +88,9 @@ module eth_mac_10g #
8988
/*
9089
* PTP
9190
*/
92-
input wire [TX_PTP_TS_WIDTH-1:0] tx_ptp_ts,
93-
input wire [RX_PTP_TS_WIDTH-1:0] rx_ptp_ts,
94-
output wire [TX_PTP_TS_WIDTH-1:0] tx_axis_ptp_ts,
91+
input wire [PTP_TS_WIDTH-1:0] tx_ptp_ts,
92+
input wire [PTP_TS_WIDTH-1:0] rx_ptp_ts,
93+
output wire [PTP_TS_WIDTH-1:0] tx_axis_ptp_ts,
9594
output wire [TX_PTP_TAG_WIDTH-1:0] tx_axis_ptp_ts_tag,
9695
output wire tx_axis_ptp_ts_valid,
9796

@@ -187,7 +186,7 @@ module eth_mac_10g #
187186
);
188187

189188
parameter MAC_CTRL_ENABLE = PAUSE_ENABLE || PFC_ENABLE;
190-
parameter TX_USER_WIDTH_INT = MAC_CTRL_ENABLE ? (TX_PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? TX_PTP_TAG_WIDTH : 0) + 1 : 0) + 1 : TX_USER_WIDTH;
189+
parameter TX_USER_WIDTH_INT = MAC_CTRL_ENABLE ? (PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? TX_PTP_TAG_WIDTH : 0) + 1 : 0) + 1 : TX_USER_WIDTH;
191190

192191
// bus width assertions
193192
initial begin
@@ -225,8 +224,9 @@ axis_xgmii_rx_64 #(
225224
.CTRL_WIDTH(CTRL_WIDTH),
226225
.PTP_PERIOD_NS(PTP_PERIOD_NS),
227226
.PTP_PERIOD_FNS(PTP_PERIOD_FNS),
228-
.PTP_TS_ENABLE(RX_PTP_TS_ENABLE),
229-
.PTP_TS_WIDTH(RX_PTP_TS_WIDTH),
227+
.PTP_TS_ENABLE(PTP_TS_ENABLE),
228+
.PTP_TS_FMT_TOD(PTP_TS_FMT_TOD),
229+
.PTP_TS_WIDTH(PTP_TS_WIDTH),
230230
.USER_WIDTH(RX_USER_WIDTH)
231231
)
232232
axis_xgmii_rx_inst (
@@ -255,9 +255,10 @@ axis_xgmii_tx_64 #(
255255
.MIN_FRAME_LENGTH(MIN_FRAME_LENGTH),
256256
.PTP_PERIOD_NS(PTP_PERIOD_NS),
257257
.PTP_PERIOD_FNS(PTP_PERIOD_FNS),
258-
.PTP_TS_ENABLE(TX_PTP_TS_ENABLE),
259-
.PTP_TS_WIDTH(TX_PTP_TS_WIDTH),
260-
.PTP_TS_CTRL_IN_TUSER(MAC_CTRL_ENABLE ? TX_PTP_TS_ENABLE : TX_PTP_TS_CTRL_IN_TUSER),
258+
.PTP_TS_ENABLE(PTP_TS_ENABLE),
259+
.PTP_TS_FMT_TOD(PTP_TS_FMT_TOD),
260+
.PTP_TS_WIDTH(PTP_TS_WIDTH),
261+
.PTP_TS_CTRL_IN_TUSER(MAC_CTRL_ENABLE ? PTP_TS_ENABLE : TX_PTP_TS_CTRL_IN_TUSER),
261262
.PTP_TAG_ENABLE(TX_PTP_TAG_ENABLE),
262263
.PTP_TAG_WIDTH(TX_PTP_TAG_WIDTH),
263264
.USER_WIDTH(TX_USER_WIDTH_INT)
@@ -289,8 +290,8 @@ axis_xgmii_rx_32 #(
289290
.DATA_WIDTH(DATA_WIDTH),
290291
.KEEP_WIDTH(KEEP_WIDTH),
291292
.CTRL_WIDTH(CTRL_WIDTH),
292-
.PTP_TS_ENABLE(RX_PTP_TS_ENABLE),
293-
.PTP_TS_WIDTH(RX_PTP_TS_WIDTH),
293+
.PTP_TS_ENABLE(PTP_TS_ENABLE),
294+
.PTP_TS_WIDTH(PTP_TS_WIDTH),
294295
.USER_WIDTH(RX_USER_WIDTH)
295296
)
296297
axis_xgmii_rx_inst (
@@ -319,9 +320,9 @@ axis_xgmii_tx_32 #(
319320
.ENABLE_PADDING(ENABLE_PADDING),
320321
.ENABLE_DIC(ENABLE_DIC),
321322
.MIN_FRAME_LENGTH(MIN_FRAME_LENGTH),
322-
.PTP_TS_ENABLE(TX_PTP_TS_ENABLE),
323-
.PTP_TS_WIDTH(TX_PTP_TS_WIDTH),
324-
.PTP_TS_CTRL_IN_TUSER(MAC_CTRL_ENABLE ? TX_PTP_TS_ENABLE : TX_PTP_TS_CTRL_IN_TUSER),
323+
.PTP_TS_ENABLE(PTP_TS_ENABLE),
324+
.PTP_TS_WIDTH(PTP_TS_WIDTH),
325+
.PTP_TS_CTRL_IN_TUSER(MAC_CTRL_ENABLE ? PTP_TS_ENABLE : TX_PTP_TS_CTRL_IN_TUSER),
325326
.PTP_TAG_ENABLE(TX_PTP_TAG_ENABLE),
326327
.PTP_TAG_WIDTH(TX_PTP_TAG_WIDTH),
327328
.USER_WIDTH(TX_USER_WIDTH_INT)
@@ -425,7 +426,7 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
425426
// handle PTP TS enable bit in tuser
426427
wire [TX_USER_WIDTH_INT-1:0] tx_axis_tuser_in;
427428

428-
if (TX_PTP_TS_ENABLE && !TX_PTP_TS_CTRL_IN_TUSER) begin
429+
if (PTP_TS_ENABLE && !TX_PTP_TS_CTRL_IN_TUSER) begin
429430
assign tx_axis_tuser_in = {tx_axis_tuser[TX_USER_WIDTH-1:1], 1'b1, tx_axis_tuser[0]};
430431
end else begin
431432
assign tx_axis_tuser_in = tx_axis_tuser;

rtl/eth_mac_10g_fifo.v

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ module eth_mac_10g_fifo #
5555
parameter RX_DROP_WHEN_FULL = RX_DROP_OVERSIZE_FRAME,
5656
parameter PTP_PERIOD_NS = 4'h6,
5757
parameter PTP_PERIOD_FNS = 16'h6666,
58-
parameter TX_PTP_TS_ENABLE = 0,
59-
parameter RX_PTP_TS_ENABLE = TX_PTP_TS_ENABLE,
58+
parameter PTP_TS_ENABLE = 0,
59+
parameter PTP_TS_FMT_TOD = 1,
60+
parameter PTP_TS_WIDTH = PTP_TS_FMT_TOD ? 96 : 64,
6061
parameter TX_PTP_TS_CTRL_IN_TUSER = 0,
6162
parameter TX_PTP_TS_FIFO_DEPTH = 64,
62-
parameter PTP_TS_WIDTH = 96,
63-
parameter TX_PTP_TAG_ENABLE = TX_PTP_TS_ENABLE,
63+
parameter TX_PTP_TAG_ENABLE = PTP_TS_ENABLE,
6464
parameter PTP_TAG_WIDTH = 16,
65-
parameter TX_USER_WIDTH = (TX_PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? PTP_TAG_WIDTH : 0) + (TX_PTP_TS_CTRL_IN_TUSER ? 1 : 0) : 0) + 1,
66-
parameter RX_USER_WIDTH = (RX_PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1
65+
parameter TX_USER_WIDTH = (PTP_TS_ENABLE ? (TX_PTP_TAG_ENABLE ? PTP_TAG_WIDTH : 0) + (TX_PTP_TS_CTRL_IN_TUSER ? 1 : 0) : 0) + 1,
66+
parameter RX_USER_WIDTH = (PTP_TS_ENABLE ? PTP_TS_WIDTH : 0) + 1
6767
)
6868
(
6969
input wire rx_clk,
@@ -223,7 +223,7 @@ end
223223
// PTP timestamping
224224
generate
225225

226-
if (TX_PTP_TS_ENABLE) begin : tx_ptp
226+
if (PTP_TS_ENABLE) begin : tx_ptp
227227

228228
ptp_clock_cdc #(
229229
.TS_WIDTH(PTP_TS_WIDTH),
@@ -298,7 +298,7 @@ end else begin
298298

299299
end
300300

301-
if (RX_PTP_TS_ENABLE) begin : rx_ptp
301+
if (PTP_TS_ENABLE) begin : rx_ptp
302302

303303
ptp_clock_cdc #(
304304
.TS_WIDTH(PTP_TS_WIDTH),
@@ -335,13 +335,12 @@ eth_mac_10g #(
335335
.MIN_FRAME_LENGTH(MIN_FRAME_LENGTH),
336336
.PTP_PERIOD_NS(PTP_PERIOD_NS),
337337
.PTP_PERIOD_FNS(PTP_PERIOD_FNS),
338-
.TX_PTP_TS_ENABLE(TX_PTP_TS_ENABLE),
339-
.TX_PTP_TS_WIDTH(PTP_TS_WIDTH),
338+
.PTP_TS_ENABLE(PTP_TS_ENABLE),
339+
.PTP_TS_FMT_TOD(PTP_TS_FMT_TOD),
340+
.PTP_TS_WIDTH(PTP_TS_WIDTH),
340341
.TX_PTP_TS_CTRL_IN_TUSER(TX_PTP_TS_CTRL_IN_TUSER),
341342
.TX_PTP_TAG_ENABLE(TX_PTP_TAG_ENABLE),
342343
.TX_PTP_TAG_WIDTH(PTP_TAG_WIDTH),
343-
.RX_PTP_TS_ENABLE(RX_PTP_TS_ENABLE),
344-
.RX_PTP_TS_WIDTH(PTP_TS_WIDTH),
345344
.TX_USER_WIDTH(TX_USER_WIDTH),
346345
.RX_USER_WIDTH(RX_USER_WIDTH)
347346
)

0 commit comments

Comments
 (0)