@@ -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
8896wire rgmii_rx_ctl_1;
@@ -204,7 +212,7 @@ oddr #(
204212 .WIDTH(1 )
205213)
206214clk_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
227235assign mac_gmii_tx_clk_en = gmii_clk_en;
228236
229237// reset sync
230238reg [3 :0 ] tx_rst_reg = 4'hf ;
231239assign 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