基于ML605的10GEPON设计.docx
- 文档编号:2468811
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:18
- 大小:1.77MB
基于ML605的10GEPON设计.docx
《基于ML605的10GEPON设计.docx》由会员分享,可在线阅读,更多相关《基于ML605的10GEPON设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于ML605的10GEPON设计
基于ML605FPGA的10GEPON设计
1、系统框架
图1.1系统框架图
FPGA通过XAUI接口与AEL2005模块相连,需要逻辑及8051核软硬件结合控制实现三种自环的操作:
LineLoop、PHYXSLineLoop及FPGAXGMIILoop;上图中FMC_HPC模块对应ML605的J64模块,且需要的时钟频率为156.25MHz。
对应的系统实物图如下所示:
图1.2系统实物图
注意:
其中采用的是两根多模光纤与Smartbits数据通信测试仪的XFP模块相连。
FMC_HPC配置的是GTXBank112中GTXE1_X0Y0、GTXE1_X0Y1、GTXE1_X0Y2、GTXE1_X0Y3,并由管脚MGTREFCLK0P_112、MGTREFCLK0N_112提供156.25MHz的时钟频率:
图1.3本测试中Virtex-6GTX的配置
2XAUIIP设计
2.1XAUIIP介绍
XAUI利用4对3.125Gbps差分通道(4-lane)传输10G以太数据。
每对差分通道采用8b10b编码,以方便差分数据的恢复。
信号采用CML电平。
为了实现发送与接收的通道,在发送方插入特定的码字。
XAUIIP与用户端口采用XGMII的接口标准。
在FPGA内部,XAUI接口的框架如下图所示:
其特性为:
●对于每一个通道而言,产生IDLE字码
●每一对差分通道完成字同步
●四队通道Alignment设置。
控制字含义
IDLE字符规则:
(1)在||T||之后必须跟
2.2XilinxXAUIIP生成
打开CoreGenerator选择xaui10.2版本,并选择XGMII接口如下所示,跟物理层可以完美对接:
图2.1XAUIIP生成
生成好后在工程中加入自动生成的example的例子这里注意要把ODDR的部分隐去。
因为我们用的这块不作为最终工程的top顶层。
3MDIO接口设计
3.1系统框图
MDIO控制接口框图如下图所示。
MDIO控制逻辑采用Wishbone接口,MDIO接口提供四个信号。
MDIO的发起操作有两种:
可以通过寄存器发起本次操作(快速访问,在发起操作之后,处理器可以做其他工作,然后通过读取寄存器来判断本次操作是否已经完成),也可以通过直接访问Wishbone总线直接访问MDIO设备。
图3.1MDIO接口框图
3.2Wishbone接口信号定义
从WISHBONEMaster端来看,WISHBONE协议接口定义如下表所示:
信号
信号方向
含义
Rst
输入
系统复位信号,高电平有效
Clk
输入
系统时钟
cyc_i
输入
单次总线访问持续信号:
在整个总线访问周期内该信号置高。
一旦检测到ACK_I信号为高,则该信号置低,表示单次总线访问周期结束。
不支持突发传输
we_i
输入
读写控制信号:
仅仅高电平表示本次mdio访问为写操作,低电平读有效。
tgc_i
输入
Washbone访问类型标识信号,高表示访问内部寄存器,低电平表示直接访问MDIO
addr_i[9..0]
输入
寄存器地址信号:
当tgc_i为高。
Addr_i[1:
0]:
2’b00,ctl寄存器;2’b01,data_o寄存器;2’b10,data_i寄存器
当tgc_i为低时,addr_i[4:
0],reg地址;addr_i[9:
5],phy地址
ack_o
输出
反馈信号:
置高一个时钟,标示单次总线访问周期结束。
data_o[15..0]
输出
数据输出:
输出mdio读操作的得到的数据,在ack_i置高后有效。
data_i[15..0]
输入
数据输入:
输入需要在wishbone写操作时存入不同寄存器的数据。
图3.2WISHBONE操作时序示意图
3.2MDIO接口定义(外部接口)
图3.3MDIO外部接口
信号
信号方向
含义
MDC
输出
时钟信号:
输出mdio总线的时钟信号,在802.3协议规定的最高时钟频率为8.3MHz。
MDIO
双向
mdio数据信号:
用于传输STA和PHY之间的控制和状态信息。
此处定义的mdio接口提供了一种简单的、双线的、串行接口,其目的是连接控制端和被其控制的PHY设备,以达到控制PHY设备和获知PHY设备状态的功能。
3.3内部寄存器定义
寄存器含义
偏移地址
含义
MDIO_CON(R/W)
0
MDIO控制寄存器:
详见X.2.1
DATA_o(R/W)
1
MDIO数据寄存器:
用于写入mdio端口需要发送的数据。
可以进行读写操作。
DATA_i(R)
2
MDIO接收到得数据,只有在Start/busy状态信号为0时,该信号才有效
3.3.1MDIO_CON控制寄存器
寄存器位
定义
说明
默认值
[4:
0]
reg_addr
寄存器地址:
PHY设备中的寄存器地址
5’b00000
[9:
5]
Phy_addr
PHY设备地址:
PHY设备的设备地址
5’b00000
[10]
Write/rd#
mdio读写操作控制位:
置1为写操作,置0为读操作
[11]
Start/busy
总线状态标志位:
不起控制作用。
在mdio操作开始时自动置1,在mdio操作结束时自动置0。
[12]
前导码控制
mdio前导码控制位:
置1时,MDIO操作发送的数据包含前导码否则。
置0时,不发送前导码
0
[15:
13]
MDC时钟控制寄存器
[15:
13]
000
001
010
111
clk时钟分频系数
50
80
110
260
3’b000
3.3.2DATA_o寄存器(R/W)
该寄存器可以进行读写操作,用于写入mdio端口需要发送的数据。
写mdio周期时,Washbone总线将要发送的数据写入此寄存器。
3.3.3DATA_i寄存器(R)
当控制寄存器的Start/busy信号为低电平,并且本次操作为MDIO读操作时,该寄存器存储读取到得MDIO内容
3.4MDIO寄存器操作时序
3.4.1控制寄存器访问时序(MDIO_CON)
MDIO_CON控制寄存器支持读写操作,访问该寄存器需要三个时钟周期,如图50所示,其中mdio_con_reg就是内部的控制寄存器。
图3.4MDIO_CON访问时序
3.4.2输出寄存器访问时序(DATA_o)
该寄存器支持读写操作,访问该寄存器需要3个时钟周期。
图3.5DATA_o访问时序
3.4.3输出寄存器访问时序(DATA_i)
该寄存器支持读写操作,访问该寄存器需要3个时钟周期。
图3.6DATA_i访问时序
3.5MDIO访问方式
3.5.1直接访问方式
1设置MDIO_CON[15:
12],也即设置MDIO总线速率以及是否采用前导码,其它位设置为0。
2启动通过WISHBONE总线发起MDIO读写操作(TGC_i必须为低电平,地址总线的[4:
0]为reg地址,地址总线的[9:
5]为phy地址)。
图3.7MDIO写操作访问时序(没有前导码)
图3.8MDIO读操作访问时序(没有前导码)
3.5.2间接访问方式
1间接写操作访问
●把要写的数据写入mdio_o寄存器
●设置mdio_con相关寄存器(包括reg_addr,phy_addr,等),并把Write/rd#设置为1,start_busy设置为1
●然后循环读取mdio_con寄存器,如果start_busy信号为0,则表示本次操作已经完成。
MDIO访问发起操作有两种:
一种是通过MDIO_CON寄存器发起
2间接读操作访问
●设置mdio_con相关寄存器(包括reg_addr,phy_addr,等),并把Write/rd#设置为0,start_busy设置为1
●然后循环读取mdio_con寄存器,如果start_busy信号为0,则表示本次操作已经完成。
●从mdio_i寄存器读取mdio获取的数据
3.5.3访问特点
1直接访问与间接访问需要按照上述介绍的次序进行。
2在间接访问期间,不能启动直接访问,否则会造成逻辑的紊乱
3在启动间接访问时,如果再次启动间接访问,则后面配置的参数在本次访问期间不起作用,不用启动第二次MDIO访问。
不过相关配置参数(例如reg_addr,phy_addr)会在下次操作起作用
4每次mdio访问都会重新设置MDIO的波特率(不会造成MDC的短脉冲毛刺),在启动MDIO访问前,会多发一个高电平,提高系统的稳定性和兼容性
4XGMII与GMII之间转换模块设计
4.1xgmii2gmii模块设计
XGMII总线转GMII总线如图28所示,利用两个FIFO实现高速与低速总线的转换。
数据帧FIFO的宽度为65位,其中低64位存储XGMII总线的数据,第65位用来记录存储数据是否为该帧的最后一位。
帧状态FIFO用来存储存储数据帧FIFO的状态。
图4.1xgmii2gmii模块仿真
图4.2xgmii2gmii实现框图
图4.3gmii2gmii写控制模块状态转换图
Xgmii2gmii写控制模块状态转换图4.3所示。
其中
●转换状态A:
只有XGMII总线上出现起始字符并且数据帧FIFO非慢的时候才实现状态的转换。
当数据帧FIFO写满时,丢弃XGMII总线的数据帧。
●转换状态A:
当检测到XGMII总线上出现错误帧、结束帧或者传输传输数据包为大包时,则结束数据存储。
系统设计不支持hugepacket传输。
如果在数据写入数据帧时,数据帧出现些慢时,则放弃本次操作,这样就不会造成系统传输传输的紊乱。
●操作A:
当出现状态转换时,把XGMII总线的第一次写操作状态记录到帧状态FIFO。
根据IEEE802.3,XGMII总线传输的首字节可能出现XGMII总的[7:
0]上,或者XGMII总线的[39:
32]上。
利用转换状态FIFO的最高位来记录该状态,如果XGMII总线传输数据帧的首字节出现在XGMII总的[7:
0],则该位为0(如图4.4所示),否则为1(图4.5)。
同时在该状态启动XGMII总线的存储操作,有XGMII总线的传输速度为156.25MHz,传输速度相对来说比较高,为了减少逻辑的复杂度,存储数据内容与XGMII总线内容一致,不进行修改。
图4.4数据帧在XGMII总线的最低位存储仿真图
图4.5数据帧在XGMII总线的第4Byte位置存储仿真图
●操作B:
操作B包括两种情况:
(1)把最后的数据帧写入到数据FIFO中,并在数据帧FIFO的64位记录为高电平
(2)记录数据帧在64为XGMII总线上的有效数量(0-7Bytes),并写入到帧状态FIFO中,图4.7。
图4.7记录XGMII总线结束状态有效字节。
4.2gmii2xgmii模块
图4.8数据帧首字节修改成XGMII的开始字符
图4.9数据帧末字节增加XGMII的结束字符
5测试结果
5.1AEL2005LineLoop
图5.1LineLoop串口显示
图5.2SmartBits测试数据
SmartBits连续发包,从测试数据中可以看出没有误码。
5.2PHYXSLINELOOP
图5.3PHYXSLINELOOP的串口显示
图5.4Smar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ML605 10 GEPON 设计