@@ -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
189188parameter 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
193192initial 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)
232232axis_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)
296297axis_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;
0 commit comments