MiS603开发板 第十三章 千兆网RGMII PHY测试

作者:MiS603开发团队

日期:20150911

公司:南京米联电子科技有限公司

论坛:www.osrc.cn

网址:www.milinker.com

网店:http://osrc.taobao.com

EAT博客:http://blog.chinaaet.com/whilebreak

博客园:http://www.cnblogs.com/milinker/

MiS603开发板 第十三章 千兆网RGMII PHY测试

13.1 RGMII 简介

RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介质独立接口)。RGMII均采用4位数据接口,工作时钟125MHz,并且在上升沿和下降沿同时传输数据,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式,支持传输速率:10M/100M/1000Mb/s ,其对应clk 信号分别为:2.5MHz/25MHz/125MHz。RGMII数据结构符合IEEE以太网标准,接口定义见IEEE 802.3-2000。采用RGMII的目的是降低电路成本,使实现这种接口的器件的引脚数从25个减少到14个。

发送器:

◎ GTX_CLK——吉比特TX..信号的时钟信号(125MHz)

◎ TXD[3..0]——被发送数据

◎ TX_CTL——发送控制

注:在千兆速率下,向PHY提供GTX_CLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。

接收器:

◎ RX_CLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)

◎ RXD[3..0]——接收数据

◎ RX_CTL——接收控制

◎ COL——冲突检测(仅用于半双工状态)

◎ CRS——载波监听

管理配置(控制和状态信息):

◎ MDC——配置接口时钟

◎ MDIO——配置接口I/O

RGMII接口相对于GMII接口,在TXD和RXD上总共减少8根数据线。

13.2 RGMII通信时序

发送器:

◎ TX_CLK

吉比特TX..信号的时钟信号(125MHz)

◎ TXD[3..0]

发送数据

TX_CLK高电平输出数据低4位,低电平输出数据高四位。

◎ TX_CTL

—发送控制

TX_CLK高电平期间为1表示发送使能,TX_CLK低电平期间为1表示发送正确

接收器:

◎ RX_CLK

吉比特RX..信号的时钟信号(125MHz)

◎ RXD[3..0]

接收数据

RX_CLK高电平接收数据低4位,低电平接收数据高四位。

◎ RX_CTL

—接收控制

RX_CLK高电平期间为1表示接收使能,RX_CLK低电平期间为1表示接收正确

TX_CTL和RX_CTL是数据同步机制,可以理解为同步信号

13.3 基于VSC8601的 RGMII方案

VITESSE公司的VSC8601是一颗支持10/100/1000M PHY的RGMII MAC接口芯片,此芯片价格便宜,淘宝价格大概十几元一颗,另外封装是TQFP64 封装,只有64个PIN外围简单,焊接调试方便,功耗低,支持3.3V的IO接口,算是RGMII方案中首选无二的IC了。

VSC8601硬件接口图

13.4 PHY原理图及布线

由于时钟速度125MHZ 双边沿采样,对硬件要求很高,PCB必须等长布线

13.5 测试PHY硬件连接方案

为了测试PHY的稳定性,采用了2块开发板进行互联通信,如果发送的数据和接收的数据不匹配,则通过LED指示出来。

13.6 程序分析

1)、原语应用-双边沿采样

1. //use IDDR2 sample data with poseadge and negadge

2. IDDR2 #(

3. .DDR_ALIGNMENT("C0"),

4. .INIT_Q0(1‘b0),

5. .INIT_Q1(1‘b0),

6. .SRTYPE("SYNC")

7. )

8. Iddr2_0(

9.       .Q0(gmii_rxd[4]), // 1-bit output captured with C0 clock

10.       .Q1(gmii_rxd[0]), // 1-bit output captured with C1 clock

11.       .C0(rgmii_rxclk_n), // 1-bit clock input

12.       .C1(rgmii_rxclk_i), // 1-bit clock input

13.       .CE(1‘b1), // 1-bit clock enable input

14.       .D(rgmii_rxd_i[0]),   // 1-bit ddr data input

15.       .R(1‘b0),   // 1-bit reset input

16.       .S(1‘b0)    // 1-bit set input

17.    );

2)、原语应用双边沿输出

1. //usb ODDR2 output data with posadge and neadge

2. assign rgmii_txdv_o = gmii_txdv;

3. ODDR2 #(

4. .DDR_ALIGNMENT("C0"), // Sets output alignment to "NONE", "C0" or "C1"

5. .INIT(1‘b0),    // Sets initial state of the Q output to 1‘b0 or 1‘b1

6. .SRTYPE("ASYNC") // Specifies "SYNC" or "ASYNC" set/reset

7. )

8. ODDR2_0 (

9. .Q(rgmii_txd_o[0]),   // 1-bit DDR output data

10. .C0(rgmii_txclk),   // 1-bit clock input

11. .C1(rgmii_txclk_n),   // 1-bit clock input

12. .CE(1‘b1), // 1-bit clock enable input

13. .D0(gmii_txd[0]), // 1-bit data input (associated with C0)

14. .D1(gmii_txd[4]), // 1-bit data input (associated with C1)

15. .R(1‘b0),   // 1-bit reset input

16. .S(1‘b0)    // 1-bit set input

17. );

3)、为了实现数据的发送和接收的对比需要准备2块MIS603开发板

测试数据发送:

原理:发送数据从0~255 不停循环

18. reg [8:0]gmii_txdv_cnt;//计数器循环累加,当gmii_txdv_cnt[8]为0时将数据输出

19. assign gmii_txd_ts  = gmii_txdv_cnt[8] ?  7‘d0  : gmii_txdv_cnt[7:0];

20. //数据有效标志

21. assign gmii_txdv_ts = ((~gmii_txdv_cnt[8])||(gmii_txdv_cnt==256)||(gmii_txdv_cnt==257)) ?  1‘b1  : 1‘b0;

22. //循环计数器

23. always @(posedge rgmii_txclk_ts)

24. if(~rst_n)begin

25. gmii_txdv_cnt <= 9‘d0;

26. end

27. else begin

28. gmii_txdv_cnt <= gmii_txdv_cnt +1‘b1;

29. end

4)、产生至少1MS 复位信号,如果没有产生这个信号,那么PHY芯片不会工作

1. //generate PHY reset signal

2. reg[22:0]rgmii_rst_cnt=0;

3. assign rgmii_rst_n_o=rgmii_rst_cnt[22];

4. always @(posedge CLK_50MHZ_i)begin

5. if(!rgmii_rst_cnt[22])rgmii_rst_cnt<=rgmii_rst_cnt+1‘b1;

6. end

13.7 小结

本程序详细描述了RGMII PHY的传输原理,看起来这就像是我们熟悉的没有协议的双工千兆串口。通过本节程序的学习,可以掌握千兆网RGMII接口的驱动程序编写,特别是使用到了原语IDDR2 和ODDR2 分布实现双边沿数据的采样和双边沿数据的发送,为后面进行UDP协议的编写做好准备工作。

时间: 2024-08-09 18:37:25

MiS603开发板 第十三章 千兆网RGMII PHY测试的相关文章

MiS603开发板 第三章 多路分频器设计

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第三章 多路分频器设计 设计思想:利用FPGA内部的逻辑单元对FPGA输入的50MHZ高频时钟信号进行计数分频,得到

MiS603开发板 第四章 流水灯实验

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第四章 流水灯实验 关于流水灯,网上有太多的例子了.其实只要掌握上面分频计数的技巧,设计流水灯是件极其简单的事情.从

MiS603开发板 第五章 按钮去抖实验

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第五章 按钮去抖实验 按键的消抖,是指按键在闭合或松开的瞬间伴随着一连串的抖动,这样的抖动将直接影响设计系统的稳定性

MiS603开发板 第十七章 图像之HDMI接口测试输入日志标题

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十七章 图像之HDMI接口测试 17.1 HDMI概述 HDMI是High Definition Multimed

MiS603开发板 第十一章 CY7C68013A Slave FIFO回传输

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十一章 CY7C68013A Slave FIFO回传输 CY7C68013A提供了强大和灵活的外部接口通信方式,

迅为4418/6818开发板cortex-A9四核千兆以太网 4G模块

6818核心板与4418核心板兼容同一底板 核心板:经过大批量检验的核心板连接方式,更优的排列,更放心的连接性能. 六层PCB沉金设计,紧凑精致,解决电磁兼容,达到成本与性能的完美统一,更加技高一筹.核心板通过设计阶段的电磁兼容测试,高低温环境适应实验等. 6818开发板(基本型): 6818开发板(豪华型): 支持选配模块: RFID模块,VGA模块,CAN/RS485模块,继电器模块,500万摄像头,USB摄像头,USB转串转接头等. 应用行业: 规格参数:   核心板 尺寸:50mm*60

MiS603开发板 第七章 IP-CORE DCM

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ DCM时钟管理器是XILINX FPGA中一项非常重要也是非常珍贵的资源.通过DCM时钟管理器,可以实现时钟的倍频.分频.相移等. 7.

MiS603开发板 第十四章 UDP协议网络传输

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十四章 UDP协议网络传输 本实验将实现FPGA 芯片和PC 之间进行千兆以太网数据通信, 通信协议采用Ether

MiS603开发板 第九章 IP-CORE BRAM

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第九章 IP-CORE BRAM 上一章节笔者讲解了FIFO的简单使用,那么FPGA的Block RAM(BRAM)