找回密码
 注册
关于网站域名变更的通知
查看: 248|回复: 1
打印 上一主题 下一主题

FPGA 控制 RGMII 接口 PHY芯片基础

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-6-6 15:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

今天和大侠简单聊一聊FPGA 控制 RGMII 接口 PHY芯片基础,话不多说,上货。


& y3 F1 e; T* z" f3 i' o

一、前言 

 

网络通信中的PHY芯片接口种类有很多,之前接触过GMII接口的PHY芯片RTL8211EG。但GMII接口数量较多,本文使用RGMII接口的88E1512搭建网络通信系统。这类接口总线位宽小,可以降低电路成本,在实际项目中应用更广泛。


% ~* V7 ?! D) J3 l. S- ~

二、从GMII过度到RGMII

6 u  ?0 z/ A+ |. ?; e# X/ I

先看看GMII和RGMII主要的接口。

GMII:

发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er

接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er

9 n  I' g. V1 o, ~

RGMII:

发送 tx_clk tx_d[3:0] tx_ctrl


. V( s( k/ k6 e* @

接收 rx_clk rx_d[3:0] rx_ctrl

& Z4 O1 c7 W% c# ?

7 L! V, c( ^6 A4 Q8 ^


9 G  \$ t5 e' D- q  _, f

为什么接口变少了?首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1512 Datasheet中时序图可以直观看出这一点。


9 ^# Q) \3 n7 z( ~9 x


: @' [& U- e6 T

* c$ Z4 g2 C1 U6 y2 W  K

RGMII中上升沿发送一字节数据的低四位,下降沿发送剩余的高四位数据。接收端时钟双边沿采样,因此125MHZ*8bit = 125MHZ*4bit*2 = 1000Mbit/s。至于GMII中的数据有效和数据错误指示信号被ctrl信号复用:tx_ctrl在时钟tx_clk上升沿发送是tx_en,在下降沿发送是tx_en ^ tx_er。rx_ctrl在时钟rx_clk上升沿接收是rx_dv,在下降沿接收是rx_en ^ rx_er。综上,RGMII接口引脚数从25个降低到14个。

- i% m+ L( U3 h+ B& K; E

三、add clock skew 

/ D1 r% P) U, e& _* Z

# o. N& ?+ M, _5 A. S* s- @  s. C1 D3 ~8 B: Y

从上边的时序图分析,数据在时钟的边沿变化。因此如果不做额外处理,接收端无法稳定采样。为了解决这一问题,常见的做法是为时钟信号添加延时,使其边沿对准数据总线的稳定区间。可以在控制器端、PCB走线以及PHY芯片内部添加时钟偏移,本文使用最后一种方式实现。

5 c6 l# `: [# X- m$ J# W

; g. L% C2 \& w* B9 h$ \
* `$ Q* e: i4 E: h  H  [

在第三阶段中添加延迟。数据发送方向,FPGA侧的TX_CLK信号不需要额外处理,也就是说FPGA发送与数据边沿对齐的时钟信号。TXD和TX_CLK信号波形如图。


# p  J0 d9 h1 N# p6 L! a

* f1 S. v, P8 N% U( U  D' V
0 A% x* c7 g, t8 y0 q4 }

PHY内部会调整TX_CLK,使之能够稳定采样TXD。数据接收方向,由于RX_CLK由PHY提供,PHY芯片直接产生与数据中心对齐的时钟信号。RXD和RX_CLK信号波形如图。


) @9 {* u# Q+ k, A


. C0 x( n: o9 b# j. `
. J$ o/ r4 C1 H! K, R3 b! u
" {; B2 g# F2 l: K! _

可见,使PHY芯片工作在延迟模式下时,FPGA不需要添加额外的逻辑来保证稳定采样。发送方向直接将数据驱动时钟作为TX_CLK信号发送,接收方向直接利用RX_CLK对RXD信号采样。


) L. {4 q- E4 S- T
6 r8 O6 {/ U# ]; W! e9 W

  w+ {1 u# t) [* E
8 a0 S1 ], y" U3 r; C
' K2 U  P, _. i

3 T2 c! O4 J, j
( o9 q% z$ @3 k# M6 E

四、系统设计方案

6 F( W2 U- r6 }2 |
# o4 M, p) }6 {# i1 k, X. R4 `3 e

本文使用ZYNQ内部的MAC控制器实现数据链路层功能。但由于其接口为GMII,需要用到GMII_to_RGMII IP Core转换接口逻辑。上层网络协议则通过LWIP开源协议栈完成。首先配置ZYNQ IP,使能ENET1并以EMIO方式引出。


( _7 A( y3 I4 f4 _2 I
# X% W9 i; c. V. x: ]) D

/ ~; c9 O2 R! C" Z" E

& b0 I6 N1 R/ y; x. L" \# U8 p7 R6 Z, J2 t1 a

系统硬件结构如图:


7 u8 f4 C( {5 O# H6 j2 J6 c- o% h/ m4 s2 \

8 r1 a( d4 n2 l6 y
0 d& a1 r$ s3 H& b
  @: B" i% y6 S

五、I/O 时序约束 


- l' b/ O0 W" U$ l) E' ?

在较高速设计场合下,输入输出接口部分很容易出现数据采样不稳定的现象。这时候就要通过Input delay,output delay约束以及STA来分析设计是否满足稳定采样需求。input/output delay是指数据相对于时钟的延迟,只有设置好上述两个数值,综合工具才会往正确的方向优化并给出合理的时序报告。 

8 c  v9 L& k! N! t

+ [1 _& |: g9 _% I

FPGA与RGMII接口的PHY芯片之间的时序关系按照数据接口同步和数据采样方式属于源同步DDR采样。input delay约束对应接收方向,时序关系是中心对齐。output delay约束对应发送方向,时序关系是边沿对齐。前者由于很多时候不知道上游器件Tcko信息,会使用示波器测量有效数据窗口来计算。而后者因为是边沿对齐,通过示波器测量抖动窗口并使用skew based method计算。这部分笔者还没有亲身实践过,若有误欢迎指出。


$ [8 {/ z$ j% f$ f0 y* h; R

0 G6 m( m0 w) Y. \8 O
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-6-6 16:24 | 只看该作者
    有例子程序吗
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-18 23:49 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表