Skip to content

Commit a541c73

Browse files
committed
Add bus interface pragmas to rgmii_phy_if
1 parent 3f6ed35 commit a541c73

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

rtl/eth_mac_1g_rgmii.v

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,32 +189,33 @@ rgmii_phy_if #(
189189
.USE_CLK90(USE_CLK90)
190190
)
191191
rgmii_phy_if_inst (
192-
.clk(gtx_clk),
193-
.clk90(gtx_clk90),
192+
.mac_gmii_gtx_clk(gtx_clk),
193+
.mac_gmii_gtx_clk_90(gtx_clk90),
194194
.rst(gtx_rst),
195195

196196
.mac_gmii_rx_clk(rx_clk),
197197
.mac_gmii_rx_rst(rx_rst),
198198
.mac_gmii_rxd(mac_gmii_rxd),
199199
.mac_gmii_rx_dv(mac_gmii_rx_dv),
200200
.mac_gmii_rx_er(mac_gmii_rx_er),
201-
.mac_gmii_tx_clk(tx_clk),
202201
.mac_gmii_tx_rst(tx_rst),
203202
.mac_gmii_tx_clk_en(mac_gmii_tx_clk_en),
204203
.mac_gmii_txd(mac_gmii_txd),
205204
.mac_gmii_tx_en(mac_gmii_tx_en),
206205
.mac_gmii_tx_er(mac_gmii_tx_er),
207206

208-
.phy_rgmii_rx_clk(rgmii_rx_clk),
209-
.phy_rgmii_rxd(rgmii_rxd),
207+
.phy_rgmii_rxc(rgmii_rx_clk),
208+
.phy_rgmii_rd(rgmii_rxd),
210209
.phy_rgmii_rx_ctl(rgmii_rx_ctl),
211-
.phy_rgmii_tx_clk(rgmii_tx_clk),
212-
.phy_rgmii_txd(rgmii_txd),
210+
.phy_rgmii_txc(rgmii_tx_clk),
211+
.phy_rgmii_td(rgmii_txd),
213212
.phy_rgmii_tx_ctl(rgmii_tx_ctl),
214213

215214
.speed(speed)
216215
);
217216

217+
assign tx_clk = gtx_clk;
218+
218219
eth_mac_1g #(
219220
.ENABLE_PADDING(ENABLE_PADDING),
220221
.MIN_FRAME_LENGTH(MIN_FRAME_LENGTH)

rtl/rgmii_phy_if.v

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,27 @@ module rgmii_phy_if #
4747
parameter USE_CLK90 = "TRUE"
4848
)
4949
(
50-
input wire clk,
51-
input wire clk90,
50+
// Reset, synchronous to mac_gmii_gtx_clk
5251
input wire rst,
5352

5453
/*
5554
* GMII interface to MAC
5655
*/
57-
output wire mac_gmii_rx_clk,
56+
(* X_INTERFACE_PARAMETER = "XIL_INTERFACENAME mac_gmii, CAN_DEBUG false" *)
57+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii RX_CLK" *) output wire mac_gmii_rx_clk,
58+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii RXD" *) output wire [7:0] mac_gmii_rxd,
59+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii RX_DV" *) output wire mac_gmii_rx_dv,
60+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii RX_ER" *) output wire mac_gmii_rx_er,
61+
62+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii GTX_CLK" *) input wire mac_gmii_gtx_clk,
63+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii TXD" *) input wire [7:0] mac_gmii_txd,
64+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii TX_EN" *) input wire mac_gmii_tx_en,
65+
(* X_INTERFACE_INFO = "xilinx.com:interface:gmii_rtl:1.0 mac_gmii TX_ER" *) input wire mac_gmii_tx_er,
66+
// These are non-standard gmii signals to control the MAC
67+
input wire mac_gmii_gtx_clk_90,
5868
output wire mac_gmii_rx_rst,
59-
output wire [7:0] mac_gmii_rxd,
60-
output wire mac_gmii_rx_dv,
61-
output wire mac_gmii_rx_er,
62-
output wire mac_gmii_tx_clk,
6369
output wire mac_gmii_tx_rst,
6470
output wire mac_gmii_tx_clk_en,
65-
input wire [7:0] mac_gmii_txd,
66-
input wire mac_gmii_tx_en,
67-
input wire mac_gmii_tx_er,
6871

6972
/*
7073
* RGMII interface to PHY
@@ -80,9 +83,14 @@ module rgmii_phy_if #
8083
/*
8184
* Control
8285
*/
86+
// 2'b10: 1G
87+
// 2'b01: 100M
88+
// 2'b00: 10M
8389
input wire [1:0] speed
8490
);
8591

92+
wire clk;
93+
8694
// receive
8795

8896
wire rgmii_rx_ctl_1;
@@ -204,7 +212,7 @@ oddr #(
204212
.WIDTH(1)
205213
)
206214
clk_oddr_inst (
207-
.clk(USE_CLK90 == "TRUE" ? clk90 : clk),
215+
.clk(USE_CLK90 == "TRUE" ? mac_gmii_gtx_clk_90 : clk),
208216
.d1(rgmii_tx_clk_1),
209217
.d2(rgmii_tx_clk_2),
210218
.q(phy_rgmii_txc)
@@ -222,15 +230,15 @@ data_oddr_inst (
222230
.q({phy_rgmii_td, phy_rgmii_tx_ctl})
223231
);
224232

225-
assign mac_gmii_tx_clk = clk;
233+
assign clk = mac_gmii_gtx_clk;
226234

227235
assign mac_gmii_tx_clk_en = gmii_clk_en;
228236

229237
// reset sync
230238
reg [3:0] tx_rst_reg = 4'hf;
231239
assign mac_gmii_tx_rst = tx_rst_reg[0];
232240

233-
always @(posedge mac_gmii_tx_clk or posedge rst) begin
241+
always @(posedge clk or posedge rst) begin
234242
if (rst) begin
235243
tx_rst_reg <= 4'hf;
236244
end else begin

0 commit comments

Comments
 (0)