Skip to content

Commit ac662b8

Browse files
authored
Interface tidyup (#5)
1 parent 3703cb4 commit ac662b8

File tree

10 files changed

+210
-325
lines changed

10 files changed

+210
-325
lines changed

rtl/eth_mac_1g.v

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ module eth_mac_1g #
4848
parameter PAUSE_ENABLE = PFC_ENABLE
4949
)
5050
(
51-
input wire rx_clk,
52-
input wire rx_rst,
5351
input wire tx_clk,
54-
input wire tx_rst,
5552

53+
// Copy of rx clock to appease xilinx interfaces
54+
output wire rx_axis_clk,
55+
5656
/*
5757
* AXI input
5858
*/
@@ -73,14 +73,21 @@ module eth_mac_1g #
7373
/*
7474
* GMII interface
7575
*/
76-
input wire [DATA_WIDTH-1:0] gmii_rxd,
77-
input wire gmii_rx_dv,
78-
input wire gmii_rx_er,
79-
output wire [DATA_WIDTH-1:0] gmii_txd,
80-
output wire gmii_tx_en,
81-
output wire gmii_tx_er,
76+
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME mac_gmii, CAN_DEBUG false" *)
77+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii RX_CLK" *) input wire gmii_rx_clk,
78+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii RXD" *) input wire [DATA_WIDTH-1:0] gmii_rxd,
79+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii RX_DV" *) input wire gmii_rx_dv,
80+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii RX_ER" *) input wire gmii_rx_er,
81+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii GTX_CLK" *) output wire gmii_gtx_clk,
82+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii TXD" *) output wire [DATA_WIDTH-1:0] gmii_txd,
83+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii TX_EN" *) output wire gmii_tx_en,
84+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 gmii TX_ER" *) output wire gmii_tx_er,
85+
// Non standard gmii
86+
input wire gmii_rx_rst,
87+
input wire gmii_tx_rst,
8288

8389
/*
90+
8491
* PTP
8592
*/
8693
input wire [PTP_TS_WIDTH-1:0] tx_ptp_ts,
@@ -202,15 +209,18 @@ wire rx_axis_tvalid_int;
202209
wire rx_axis_tlast_int;
203210
wire [RX_USER_WIDTH-1:0] rx_axis_tuser_int;
204211

212+
assign gmii_gtx_clk = tx_clk;
213+
assign rx_axis_clk = gmii_rx_clk;
214+
205215
axis_gmii_rx #(
206216
.DATA_WIDTH(DATA_WIDTH),
207217
.PTP_TS_ENABLE(PTP_TS_ENABLE),
208218
.PTP_TS_WIDTH(PTP_TS_WIDTH),
209219
.USER_WIDTH(RX_USER_WIDTH)
210220
)
211221
axis_gmii_rx_inst (
212-
.clk(rx_clk),
213-
.rst(rx_rst),
222+
.clk(gmii_rx_clk),
223+
.rst(gmii_rx_rst),
214224
.gmii_rxd(gmii_rxd),
215225
.gmii_rx_dv(gmii_rx_dv),
216226
.gmii_rx_er(gmii_rx_er),
@@ -239,8 +249,8 @@ axis_gmii_tx #(
239249
.USER_WIDTH(TX_USER_WIDTH_INT)
240250
)
241251
axis_gmii_tx_inst (
242-
.clk(tx_clk),
243-
.rst(tx_rst),
252+
.clk(gmii_gtx_clk),
253+
.rst(gmii_tx_rst),
244254
.s_axis_tdata(tx_axis_tdata_int),
245255
.s_axis_tvalid(tx_axis_tvalid_int),
246256
.s_axis_tready(tx_axis_tready_int),
@@ -290,16 +300,16 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
290300
reg tx_lfc_req_sync_reg_2 = 1'b0;
291301
reg tx_lfc_req_sync_reg_3 = 1'b0;
292302

293-
always @(posedge rx_clk or posedge rx_rst) begin
294-
if (rx_rst) begin
303+
always @(posedge gmii_rx_clk or posedge gmii_rx_rst) begin
304+
if (gmii_rx_rst) begin
295305
tx_lfc_req_sync_reg_1 <= 1'b0;
296306
end else begin
297307
tx_lfc_req_sync_reg_1 <= rx_lfc_req;
298308
end
299309
end
300310

301-
always @(posedge tx_clk or posedge tx_rst) begin
302-
if (tx_rst) begin
311+
always @(posedge gmii_gtx_clk or posedge gmii_tx_rst) begin
312+
if (gmii_tx_rst) begin
303313
tx_lfc_req_sync_reg_2 <= 1'b0;
304314
tx_lfc_req_sync_reg_3 <= 1'b0;
305315
end else begin
@@ -312,16 +322,16 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
312322
reg rx_lfc_ack_sync_reg_2 = 1'b0;
313323
reg rx_lfc_ack_sync_reg_3 = 1'b0;
314324

315-
always @(posedge tx_clk or posedge tx_rst) begin
316-
if (tx_rst) begin
325+
always @(posedge gmii_gtx_clk or posedge gmii_tx_rst) begin
326+
if (gmii_tx_rst) begin
317327
rx_lfc_ack_sync_reg_1 <= 1'b0;
318328
end else begin
319329
rx_lfc_ack_sync_reg_1 <= tx_lfc_pause_en ? tx_pause_ack : 0;
320330
end
321331
end
322332

323-
always @(posedge rx_clk or posedge rx_rst) begin
324-
if (rx_rst) begin
333+
always @(posedge gmii_rx_clk or posedge gmii_rx_rst) begin
334+
if (gmii_rx_rst) begin
325335
rx_lfc_ack_sync_reg_2 <= 1'b0;
326336
rx_lfc_ack_sync_reg_3 <= 1'b0;
327337
end else begin
@@ -353,8 +363,8 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
353363
.MCF_PARAMS_SIZE(MCF_PARAMS_SIZE)
354364
)
355365
mac_ctrl_tx_inst (
356-
.clk(tx_clk),
357-
.rst(tx_rst),
366+
.clk(gmii_gtx_clk),
367+
.rst(gmii_tx_rst),
358368

359369
/*
360370
* AXI stream input
@@ -417,8 +427,8 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
417427
.MCF_PARAMS_SIZE(MCF_PARAMS_SIZE)
418428
)
419429
mac_ctrl_rx_inst (
420-
.clk(rx_clk),
421-
.rst(rx_rst),
430+
.clk(gmii_rx_clk),
431+
.rst(gmii_rx_rst),
422432

423433
/*
424434
* AXI stream input
@@ -485,8 +495,8 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
485495
.PFC_ENABLE(PFC_ENABLE)
486496
)
487497
mac_pause_ctrl_tx_inst (
488-
.clk(tx_clk),
489-
.rst(tx_rst),
498+
.clk(gmii_gtx_clk),
499+
.rst(gmii_tx_rst),
490500

491501
/*
492502
* MAC control frame interface
@@ -549,8 +559,8 @@ if (MAC_CTRL_ENABLE) begin : mac_ctrl
549559
.PFC_ENABLE(PFC_ENABLE)
550560
)
551561
mac_pause_ctrl_rx_inst (
552-
.clk(rx_clk),
553-
.rst(rx_rst),
562+
.clk(gmii_rx_clk),
563+
.rst(gmii_rx_rst),
554564

555565
/*
556566
* MAC control frame interface

rtl/eth_mac_1g_fifo.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ eth_mac_1g #(
196196
)
197197
eth_mac_1g_inst (
198198
.tx_clk(tx_clk),
199-
.tx_rst(tx_rst),
200-
.rx_clk(rx_clk),
201-
.rx_rst(rx_rst),
199+
.gmii_tx_rst(tx_rst),
200+
.gmii_rx_clk(rx_clk),
201+
.gmii_rx_rst(rx_rst),
202202
.tx_axis_tdata(tx_fifo_axis_tdata),
203203
.tx_axis_tvalid(tx_fifo_axis_tvalid),
204204
.tx_axis_tready(tx_fifo_axis_tready),

rtl/eth_mac_1g_gmii.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,9 @@ eth_mac_1g #(
221221
)
222222
eth_mac_1g_inst (
223223
.tx_clk(tx_clk),
224-
.tx_rst(tx_rst),
225-
.rx_clk(rx_clk),
226-
.rx_rst(rx_rst),
224+
.gmii_tx_rst(tx_rst),
225+
.gmii_rx_clk(rx_clk),
226+
.gmii_rx_rst(rx_rst),
227227
.tx_axis_tdata(tx_axis_tdata),
228228
.tx_axis_tvalid(tx_axis_tvalid),
229229
.tx_axis_tready(tx_axis_tready),

rtl/eth_mac_1g_rgmii.v

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ module eth_mac_1g_rgmii #
100100
input wire cfg_rx_enable
101101
);
102102

103-
wire [7:0] mac_gmii_rxd;
104-
wire mac_gmii_rx_dv;
105-
wire mac_gmii_rx_er;
106-
wire mac_gmii_tx_clk_en;
107-
wire [7:0] mac_gmii_txd;
108-
wire mac_gmii_tx_en;
109-
wire mac_gmii_tx_er;
103+
wire [7:0] gmii_rxd;
104+
wire gmii_rx_dv;
105+
wire gmii_rx_er;
106+
wire gmii_tx_clk_en;
107+
wire [7:0] gmii_txd;
108+
wire gmii_tx_en;
109+
wire gmii_tx_er;
110110

111111
reg [1:0] speed_reg = 2'b10;
112112
reg mii_select_reg = 1'b0;
@@ -189,28 +189,27 @@ rgmii_phy_if #(
189189
.USE_CLK90(USE_CLK90)
190190
)
191191
rgmii_phy_if_inst (
192-
.clk(gtx_clk),
193-
.clk90(gtx_clk90),
192+
.gmii_gtx_clk(gtx_clk),
193+
.gmii_gtx_clk_90(gtx_clk90),
194194
.rst(gtx_rst),
195195

196-
.mac_gmii_rx_clk(rx_clk),
197-
.mac_gmii_rx_rst(rx_rst),
198-
.mac_gmii_rxd(mac_gmii_rxd),
199-
.mac_gmii_rx_dv(mac_gmii_rx_dv),
200-
.mac_gmii_rx_er(mac_gmii_rx_er),
201-
.mac_gmii_tx_clk(tx_clk),
202-
.mac_gmii_tx_rst(tx_rst),
203-
.mac_gmii_tx_clk_en(mac_gmii_tx_clk_en),
204-
.mac_gmii_txd(mac_gmii_txd),
205-
.mac_gmii_tx_en(mac_gmii_tx_en),
206-
.mac_gmii_tx_er(mac_gmii_tx_er),
207-
208-
.phy_rgmii_rx_clk(rgmii_rx_clk),
209-
.phy_rgmii_rxd(rgmii_rxd),
210-
.phy_rgmii_rx_ctl(rgmii_rx_ctl),
211-
.phy_rgmii_tx_clk(rgmii_tx_clk),
212-
.phy_rgmii_txd(rgmii_txd),
213-
.phy_rgmii_tx_ctl(rgmii_tx_ctl),
196+
.gmii_rx_clk(rx_clk),
197+
.gmii_rx_rst(rx_rst),
198+
.gmii_rxd(gmii_rxd),
199+
.gmii_rx_dv(gmii_rx_dv),
200+
.gmii_rx_er(gmii_rx_er),
201+
.gmii_tx_rst(tx_rst),
202+
.gmii_tx_clk_en(gmii_tx_clk_en),
203+
.gmii_txd(gmii_txd),
204+
.gmii_tx_en(gmii_tx_en),
205+
.gmii_tx_er(gmii_tx_er),
206+
207+
.rgmii_rxc(rgmii_rx_clk),
208+
.rgmii_rd(rgmii_rxd),
209+
.rgmii_rx_ctl(rgmii_rx_ctl),
210+
.rgmii_txc(rgmii_tx_clk),
211+
.rgmii_td(rgmii_txd),
212+
.rgmii_tx_ctl(rgmii_tx_ctl),
214213

215214
.speed(speed)
216215
);
@@ -220,10 +219,10 @@ eth_mac_1g #(
220219
.MIN_FRAME_LENGTH(MIN_FRAME_LENGTH)
221220
)
222221
eth_mac_1g_inst (
223-
.tx_clk(tx_clk),
224-
.tx_rst(tx_rst),
225-
.rx_clk(rx_clk),
226-
.rx_rst(rx_rst),
222+
.tx_clk(gtx_clk),
223+
.gmii_tx_rst(tx_rst),
224+
.gmii_rx_clk(rx_clk),
225+
.gmii_rx_rst(rx_rst),
227226
.tx_axis_tdata(tx_axis_tdata),
228227
.tx_axis_tvalid(tx_axis_tvalid),
229228
.tx_axis_tready(tx_axis_tready),
@@ -233,14 +232,15 @@ eth_mac_1g_inst (
233232
.rx_axis_tvalid(rx_axis_tvalid),
234233
.rx_axis_tlast(rx_axis_tlast),
235234
.rx_axis_tuser(rx_axis_tuser),
236-
.gmii_rxd(mac_gmii_rxd),
237-
.gmii_rx_dv(mac_gmii_rx_dv),
238-
.gmii_rx_er(mac_gmii_rx_er),
239-
.gmii_txd(mac_gmii_txd),
240-
.gmii_tx_en(mac_gmii_tx_en),
241-
.gmii_tx_er(mac_gmii_tx_er),
235+
.gmii_rxd(gmii_rxd),
236+
.gmii_rx_dv(gmii_rx_dv),
237+
.gmii_rx_er(gmii_rx_er),
238+
.gmii_gtx_clk(tx_clk),
239+
.gmii_txd(gmii_txd),
240+
.gmii_tx_en(gmii_tx_en),
241+
.gmii_tx_er(gmii_tx_er),
242242
.rx_clk_enable(1'b1),
243-
.tx_clk_enable(mac_gmii_tx_clk_en),
243+
.tx_clk_enable(gmii_tx_clk_en),
244244
.rx_mii_select(rx_mii_select_sync[1]),
245245
.tx_mii_select(tx_mii_select_sync[1]),
246246
.tx_error_underflow(tx_error_underflow),

rtl/eth_mac_mii.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ eth_mac_1g #(
137137
)
138138
eth_mac_1g_inst (
139139
.tx_clk(tx_clk),
140-
.tx_rst(tx_rst),
141-
.rx_clk(rx_clk),
142-
.rx_rst(rx_rst),
140+
.gmii_tx_rst(tx_rst),
141+
.gmii_rx_clk(rx_clk),
142+
.gmii_rx_rst(rx_rst),
143143
.tx_axis_tdata(tx_axis_tdata),
144144
.tx_axis_tvalid(tx_axis_tvalid),
145145
.tx_axis_tready(tx_axis_tready),

0 commit comments

Comments
 (0)