今天講解是RGMII的FPGA設計。因為這邊文章主要是用XILINX的約束工具,所以標記為XILINX,其實你用altera平臺也可以的。設計分為2部分,一部分講解MDIO操作和IEE802.3寄存器要求。另外一部分主要講解PHY層的軟件設計。
RGMII是千兆網(wǎng)總線,但是比GMII差別在于數(shù)據(jù)發(fā)送和接受是4BIT,RGMII是雙邊得到數(shù)據(jù),所以千萬要注意約束雙邊沿的數(shù)據(jù)。觀察RGMII是不是跟MII很像,所以兼容總線100,M/10M接口。
有人問我,是不是很蛋疼,為啥不用ALTERA和xilinx的 TRI-mode MAC ip核心設計。關鍵三模式MAC的IP只能掛在nios或者microblaze一類處理器,你還要學習這些處理器平臺。而且很多工業(yè)以太網(wǎng)也不是基于TCP/IP協(xié)議的。所以這次有必要講述PHY層的操作。
對于PHY模式和MAC模式,主要差別MAC沒有前導碼和4個字節(jié)的CRC32校驗碼。而PHY層是帶這些。經(jīng)常使用PC軟件發(fā)送是MAC層發(fā)送。
可以看出前導碼是固定,CRC我們下載已經(jīng)搞好。已經(jīng)上傳了基本CRC的算法文件。CRC32_8_CONTROL.rar?,有人問我為啥要用CRC32校驗,如果你不用CRC32,你發(fā)給PC,pc不會認你的以太網(wǎng)包的。 ? 注意,CRC校驗是不包括前導碼還有CRC32的4個字節(jié)數(shù)據(jù)。
crc32_8 crc32_8_inst
(
.crc(crc) , // output [7:0] crc
.d(p_data) , // input [7:0] d_sig
.calc(calc) , // input calc_sig
.init(init) , // input init_sig
.d_valid(d_valid) ,// input d_valid_sig
.clk(clk_125mhz) ,// input clk_125mhz
.rst_n(rst_n) // input rst_n
);
if((p_data == 8‘hd5) &&(cnt_pre 》= 4’d7))
begin //開始CRC校驗
calc 《= 1‘b1;
d_valid 《= 1’b1;
init 《= 1‘b0;
end
else if(cnt_crc 《 3’d4) //4個字節(jié)的校驗碼
begin
d_valid 《= 1‘b1;
calc 《= 1’b0;
init 《= 1‘b0;
cnt_crc 《= cnt_crc + 1’b1;
cnt_pre 《= 4‘d0;
end
else
begin //數(shù)據(jù)無效,對校驗程序設置初始化值
d_valid 《= 1’b0;
calc 《= 1‘b0;
init 《= 1’b1;
end
上述基本問題已經(jīng)初步解決,關鍵怎么看待這個設計給用戶怎么一個好的接口。初步設想使用兩個讀和寫fifo來兼容三種不同的速度模式。在發(fā)送的fifo中提供發(fā)送fifo的空閑標示,標示可以發(fā)送數(shù)據(jù)。而接收的fifo上面提供完整幀指示,讀緩沖滿指示。
-
Xilinx
+關注
關注
71文章
2171瀏覽量
122130 -
RGMII
+關注
關注
0文章
28瀏覽量
12216
發(fā)布評論請先 登錄
相關推薦
RGMII接口案例:二個設備共享一個PHY
![<b class='flag-5'>RGMII</b>接口案例:二個設備共享一個<b class='flag-5'>PHY</b>](https://file1.elecfans.com/web2/M00/B1/6F/wKgaomVkV1eAPt2-AACFANRMGMI201.jpg)
邏輯設計是什么意思
FPGA 控制 RGMII 接口 PHY芯片基礎
ASIC與大型邏輯設計實習教程
RGMII接口信號和幀格式_RGMII接口應用框圖
RGMII應用框圖/接口信號/幀格式
![<b class='flag-5'>RGMII</b>應用框圖/接口信號/幀格式](https://file.elecfans.com/web1/M00/D4/14/pIYBAF_WzN6ALVyCAAA2FZBxFvk595.png)
基于RGMII+phy的典型應用快速入門
![基于<b class='flag-5'>RGMII+phy</b>的典型應用快速入門](https://file.elecfans.com/web2/M00/16/74/pYYBAGFT1mKAYGsWAAAZdfB2YZU971.png)
Xilinx KU系列三速以太網(wǎng)IP核RGMII時序約束方法
![<b class='flag-5'>Xilinx</b> KU系列三速以太網(wǎng)IP核<b class='flag-5'>RGMII</b>時序約束方法](https://file1.elecfans.com/web2/M00/8C/3B/wKgZomSn1a6AcwDdAABQU96oaVI842.png)
評論