www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > FPGA開源工作室


在基于FPGA的千兆以太網(wǎng)開發(fā)(1)和基于FPGA的千兆以太網(wǎng)開發(fā)(2)中介紹了以太網(wǎng)的基本信息和接口介紹,本節(jié)將下板一步步調(diào)試。

1 RGMII接口

在 千兆以太網(wǎng)模式下,TXC和RXC的時鐘為125MHZ,TXC由MAC產(chǎn)生,RXC由PHY產(chǎn)生。TXD[3:0]和RXD[3:0]數(shù)據(jù)傳輸在TXC和RXC的上升沿和下降沿傳輸。

2 RX和TX短接測試硬件

此目的為了驗證硬件環(huán)路沒有問題。

module ETH_TOP(
input clk,
input rstn,
output [7:0] led,

// output eth_reset_n2,
output[3:0] rgmii_txd1,
output rgmii_txctl1,
output rgmii_txc1,
input[3:0] rgmii_rxd1,
input rgmii_rxctl1,
input rgmii_rxc1
);

//test-------------------------
assign rgmii_txd1 =rgmii_rxd1;
assign rgmii_txctl1=rgmii_rxctl1;
assign rgmii_txc1 =rgmii_rxc1;

ila_1 ila_1 (
.clk(rgmii_rxc1), // input wire clk


.probe0(rgmii_rxd1), // input wire [3:0] probe0
.probe1(rgmii_rxctl1), // input wire [0:0] probe1
.probe2(rgmii_txd1), // input wire [3:0] probe2
.probe3(rgmii_txctl1) // input wire [0:0] probe3
);
endmodlue

3 RGMII 轉(zhuǎn)GMII

`timescale 1ns / 1ps  

module ethernet_test(
input sys_clk_50m,
input rst_n,

output[3:0] rgmii_txd,
output rgmii_txctl,
output rgmii_txc,

input[3:0] rgmii_rxd,
input rgmii_rxctl,
input rgmii_rxc
);
wire reset_n;
(*mark_debug="true"*)wire [ 7:0] gmii_txd;
(*mark_debug="true"*)wire gmii_tx_en;
(*mark_debug="true"*)wire gmii_tx_er;
(*mark_debug="true"*)wire gmii_tx_clk;
wire gmii_crs;
wire gmii_col;
(*mark_debug="true"*)wire [ 7:0] gmii_rxd;
(*mark_debug="true"*)wire gmii_rx_dv;
(*mark_debug="true"*)wire gmii_rx_er;
(*mark_debug="true"*)wire gmii_rx_clk;
wire duplex_mode; // 1 full, 0 half
wire rgmii_rxcpll;

wire [31:0] pack_total_len ;

wire [1:0] speed ;
wire link ;
wire e_rx_dv ;
wire [7:0] e_rxd ;
wire e_tx_en ;
wire [7:0] e_txd ;
wire e_rst_n ;

assign duplex_mode = 1'b1;
assign speed= 2'b10;
assign link='b1;


ila_0 ila_0 (
.clk(rgmii_rxc), // input wire clk


.probe0(rgmii_rxd), // input wire [7:0] probe0
.probe1(rgmii_rxctl), // input wire [0:0] probe1
.probe2(gmii_rxd), // input wire [7:0] probe2
.probe3(gmii_rx_dv) // input wire [0:0] probe3
);

util_gmii_to_rgmii util_gmii_to_rgmii_m0(
.reset(~rst_n),
//RGMII tx
.rgmii_td (rgmii_txd ),
.rgmii_tx_ctl (rgmii_txctl ),
.rgmii_txc (rgmii_txc ),
//RGMII rx
.rgmii_rd_i (rgmii_rxd ),
.rgmii_rx_ctl_i (rgmii_rxctl ),
.rgmii_rxc (rgmii_rxc ),//add

//GMII RX
.gmii_rx_clk (gmii_rx_clk ),
.gmii_rx_dv (gmii_rx_dv ),
.gmii_rx_er (gmii_rx_er ),
.gmii_rxd (gmii_rxd ),

//GMII TX
.gmii_txd (e_txd ),
.gmii_tx_en (e_tx_en ),
.gmii_tx_er (1'b0 ),
.gmii_tx_clk (gmii_tx_clk ),

.gmii_crs (gmii_crs ),
.gmii_col (gmii_col ),

.speed_selection (speed ),
.duplex_mode (duplex_mode )

);


通過debug發(fā)現(xiàn)發(fā)進FPGA通過RGMII轉(zhuǎn)GMII順序不正確。

調(diào)整如下:

     
BUFG bufmr_rgmii_rxc(
.I(~rgmii_rxc),
.O(gmii_rx_clk)
);
修改為:
BUFG bufmr_rgmii_rxc(
.I(rgmii_rxc),
.O(gmii_rx_clk)
);


接收順序正確。

FPGA驗證


發(fā)出正確。

發(fā)送接收測試OK。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉