CN101951313B - 一种基于fpga的sfi4.1装置 - Google Patents
一种基于fpga的sfi4.1装置 Download PDFInfo
- Publication number
- CN101951313B CN101951313B CN 201010274971 CN201010274971A CN101951313B CN 101951313 B CN101951313 B CN 101951313B CN 201010274971 CN201010274971 CN 201010274971 CN 201010274971 A CN201010274971 A CN 201010274971A CN 101951313 B CN101951313 B CN 101951313B
- Authority
- CN
- China
- Prior art keywords
- clock
- data
- parallel
- fpga
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明涉及一种基于FPGA的SFI4.1装置,该装置内用FPGA实现SFI4.1接口,通过SFI4.1接口分别连接FPGA器件与OTN系统中ASIC芯片,在ASIC芯片和FPGA器件上共用参考时钟REFCLK,且数据发送方向的发送时钟均直接采用参考时钟REFCLK,接收方向的接收时钟则直接采用随路时钟处理。本发明实现了高速源同步数据在FPGA器件内部的正确接收与发送,将OIF提出的串并行转换器与成帧器间并行接口(SFI4.1)采用FPGA器件的资源实现,便于在FPGA器件内部对采用SFI4.1传输的10G源同步并行总线信号进行处理,实际使用中增强了系统处理ODU2信号的灵活性,进一步满足了设备的实际要求,同时为今后的源同步接口设计提供技术积累。
Description
技术领域
本发明涉及OTN(光传送网)技术领域,具体说是一种基于FPGA(现场可编程门阵列)的SFI4.1(串并行转换器与成帧器间并行接口)装置。尤指一种采用OIF(光互联论坛)提出的SFI4.1标准,在FPGA内部实现10G信号接收与发送的装置。
背景技术
光互联论坛(OIF)提出的SFI4.1主要是应用在SONET(同步光纤通信网)、SDH(同步数字系列)、OTN(光传送网)等系统中,实现STS-192(同步传递信号)、STM-64(同步传递模式)、OTU2(光通路传送单元)、ODU2(光通路数据单元)等信号间的连接。在SONET/SDH中传送的是9953.28Mb/s的STS-192、STM-64信号,通过16对622.08Mb/s的差分数据线和1对差分随路时钟来传送。在OTN系统中传送的是10709.225316Mb/s的OTU2信号,通过16对669.33Mb/s的差分数据线和1对差分随路时钟来传送;或传送10037.273924Mb/s的ODU2信号,通过16对627.33Mb/s的差分数据线和1对差分随路时钟来传送。这种多路数据和时钟组合在一起称为源同步并行总线。SFI4.1就是通过这种源同步并行总线连接成帧器和串并行转换器。STS-192、STM-64,OTU2,ODU2等信号统称为10G信号。
在实际的系统设备中,一些ASIC(专用集成电路)芯片的10G信号接口,都采用OIF提出的串并行转换器与成帧器间并行接口(SFI4.1),SFI4.1使用时钟与多路数据信号组成的源同步并行总线传输数据信息。SFI4.1对于ASIC芯片之间对接比较容易,但对采用SFI4.1接口传输的10G信号进行自定义应用处理时,必须使用FPGA来设计这一接口,以便在FPGA内部进行逻辑设计,满足应用要求。采用SFI4.1传输的10G信号接口需要实现16路并行高速源同步数据的接收和发送,由于在FPGA内部各路数据及时钟的布线延时存在差异,影响数据的正确接收与发送,使得采用SFI4.1传输的10G信号接口在FPGA上实现存在困难。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于FPGA的SFI4.1装置,解决了采用OIF提出的SFI4.1传输10G信号的接口标准在FPGA器件中的设计,在FPGA器件中具体的实现了这一设计方案,并能正确的接收和发送高速并行数据。
为达到以上目的,本发明采取的技术方案是:
一种基于FPGA的SFI4.1装置,其特征在于:该装置内用FPGA实现SFI4.1接口,通过SFI4.1接口分别连接FPGA器件与OTN系统中ASIC芯片,在ASIC芯片和FPGA器件上共用参考时钟REFCLK,且数据发送方向的发送时钟均直接采用参考时钟REFCLK,接收方向的接收时钟则直接采用随路时钟处理。
在上述技术方案的基础上,所述用FPGA实现的SFI4.1接口包括源同步接口的发送方向模块和源同步接口的接收方向模块;
所述源同步接口的发送方向模块,用于实现FPGA内部上一级处理模块输入的64路156.83Mb/s的并行数据到16路627.33Mb/s的并行差分数据输出的转换,同时发送出与数据随路的627.33M差分时钟;
所述源同步接口的接收方向模块,通过动态的调整随路差分时钟CLOCK_RX_P、CLOCK_RX_N输入后的相位,采用ISERDES实现外部输入的16路627.33Mb/s并行差分数据到64路156.83Mb/s并行数据的转换,得到经过源同步接收处理后的64路并行数据。
在上述技术方案的基础上,FPGA内部上一级处理模块输入的64路并行数据DATA[63:0],通过16个输出串行器OSERDES输出16路并行数据:DATA_TX[15:0];然后通过16个增强型差分输出驱动器OBUFDS_LVDSEXT_25输出16路并行差分数据对:DATA_TX_P[15:0]、DATA_TX_N[15:0];
参考时钟REFCLK分别送入一个时钟驱动器BUFR和一个时钟驱动器BUFIO;
时钟驱动器BUFIO用于驱动位于输入输出端口附近的专用时钟布线资源,送出高质量的时钟资源,送出的时钟资源到达输入输出端口处的各种处理组件的时钟输入端;
时钟驱动器BUFR用于驱动区域的时钟布线资源,同时时钟驱动器BUFR根据参数对输入的时钟进行分频输出,分频因子为4;
时钟驱动器BUFIO输出一路高速串行时钟CLK到双数据速率输出ODDR的时钟输入端,双数据速率输出ODDR的输入端D1、D2为固定逻辑电平;
双数据速率输出ODDR的输出端Q经增强型差分输出驱动器OBUFDS_LVDSEXT_25输出一路差分随路时钟:CLOCK_TX_P、CLOCK_TX_N;
时钟驱动器BUFIO同时输出一路高速串行时钟TXCLK到每个输出串行器OSERDES的时钟输入端,作为OSERDES实现并串转换的串行时钟;
时钟驱动器BUFR输出一路分频后的并行时钟TXCLKDIV给每个输出串行器OSERDES的并行时钟输入端,作为OSERDES实现并串转换的并行时钟。
在上述技术方案的基础上,16路差分数据DATA_RX_P[15:0]、DATA_RX_N[15:0]分别成对的送入一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25,再经过与差分输入缓冲器IBUFDS_LVDS_25一一对应的FPGA内部的高速串并转换器ISERDES后,通过串并变化及对齐后合路为并行数据DATA_FROM_ISERDES;
输入的差分时钟CLOCK_RX_P、CLOCK_RX_N经过同一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25后,一路送入FPGA器件内的可编程延时调整单元IODELAY,另一路送入一个FPGA内部的高速串并转换器ISERDES得到CLOCK_RX_OUT时钟信号;
可编程延时调整单元IODELAY的输出分为两路,一路经过用于高速时钟驱动的时钟驱动器BUFIO为高速串并转换器ISERDES提供高速串行处理时钟RXCLK,另一路经过时钟驱动器BUFR进行4分频后为高速串并转换器ISERDES提供并行处理时钟RXCLKDIV;
CLOCK_RX_OUT时钟信号经过时钟对齐数据状态机处理后,输出一路TRAINING_DONE信号,且同时输出DEC、INC信号用于对可编程延时调整单元IODELAY进行延时控制。
本发明的有益效果是:将OIF提出的串并行转换器与成帧器间并行接口(SFI4.1)采用FPGA器件的资源实现,便于在FPGA器件内部对采用SFI4.1传输的10G源同步并行总线信号进行处理,实际使用中增强了系统处理ODU2信号的灵活性,进一步满足了设备的实际要求,同时为今后的源同步接口设计提供技术积累。
附图说明
本发明有如下附图:
图1是标准的SFI4.1接口的信号连接图。
图2是基于图4所示连接方式实现FRAMER功能时,发送端的信号图。
图3是基于图4所示连接方式实现FRAMER功能时,接收端的信号图。
图4是本发明给出的SFI4.1接口的信号连接框图。
图5是源同步接口接收方向的实现框图。
图6是具体的描述了接收方向实现框图中状态机的具体实现过程,从而更加明确的描述了接收方向数据正确取样的方法。通过检测处理时钟沿所处的位置,并不断对处理时钟进行调整,直到处理时钟调整到和数据中央对齐的时钟跳边沿附近。
图7描述了状态机中具体搜索数据正中央的时钟移动过程,从而更加清晰地理解状态机如何搜索数据的正中央的过程。图中描述了处理时钟处于不同的位置时,通过ISERDES采样到的时钟输入伪数据的值及处理时钟与数据的位置关系。
图8是发送方向的实现框图。
图9是设计中ASIC输出的源同步时钟与一路数据的示波器测试图。采用的示波器为泰克MSO4054,通过两个差分探头,分别观察时钟和一路数据,得到的波形相对关系,可以看到,时钟信号上升沿在数据眼图信号的中央部位。
图10是设计的SFI4.1接口往ASIC发送的源同步时钟和一路数据的示波器测试图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明应用在OTN系统设备中,该OTN系统设备中部分线卡内部处理的是采用SFI4.1接口传输的ODU2信号,本发明在FPGA内实现SF4.1接口,完成采用SFI4.1接口传输的ODU2信号在FPGA内的正确接收及处理后的正确发送。SFI4.1接口采用16对差分数据线和一对随路差分时钟同时传输数据信号,属于高速源同步接口。实际OTN系统设备中SFI4.1接口的单路数据速率为627.33Mb/s。在接收端,输入的高速并行源同步信号满足OIF提出的SFI4.1接口时钟数据关系,由于在FPGA内部时钟信号与数据信号到达高速接收单元的路径不一致,导致时钟和数据的时延不能同步,因此需要控制接收方向的接收时钟,以便正确的取样数据。在发送端,需要考虑发送的时钟和数据的路径,使发送管脚输出的高速数据和时钟的相位满足标准SFI4.1的发送接口的要求。
本发明中SFI4.1接口用于成帧器ASIC芯片与成帧器FPGA之间的连接,完成ODU2信号的相互传输。根据实际应用的要求,在OTN设备中采用FPGA与ASIC的SFI4.1接口进行对接。工作在627.33M(10.037Gb/s),用于传送ODU2信号的SFI4.1源同步接口,本发明可用XILINX公司VIRTEX5系列的XC5VLX85T FPGA实现。
图1给出了标准的SFI4.1接口的信号连接图。图1中左边实现的是成帧器(FRAMER)侧功能,右边实现的是串并转换器(SERDES)侧功能。在FRAMER侧、SERDES侧分别完成高速数据的接收与发送。高速数据以16对差分数据线和1对随路差分时钟线组成的源同步并行总线为传送媒介,同时SERDES侧的SFI4.1接口为FRAMER侧的SFI4.1接口提供发送源时钟。不管是在FRAMER侧、还是在SERDES侧,都需要完成正确的接收与发送以SFI4.1接口传输的高速数据。图1中TXDATA(15:0)表示FRAMER侧发送的16路数据信号。TXCLK是FRAMER侧的发送随路时钟,TXCLK_SRC是SERDES侧发给FRAMER侧的发送数据的时钟源。RXDATA(15:0)是FRAMER侧接收到的16路数据信号,RXCLK是FRAMER侧接收到的随路时钟(接收随路时钟)。收发分别为16路的并行源同步总线结构。REFCLK是本地时钟电路产生的时钟,用于FPGA内部逻辑用,也可以用来产生输出的TXCLK发送随路时钟。
本发明中根据实际的情况,将SFI4.1接口的信号连接图改进为图4的连接方式。如图4所示,本发明所述的基于FPGA的SFI4.1装置中,该装置内用FPGA实现SFI4.1接口,通过SFI4.1接口分别连接FPGA器件(XC5VLX85T)与OTN系统中ASIC芯片,在ASIC芯片和FPGA器件上共用参考时钟REFCLK,且数据发送方向的发送时钟均直接采用参考时钟REFCLK,即FPGA器件向ASIC芯片发送数据,或ASIC芯片向FPGA器件发送数据时,在两端的SFI4.1都以参考时钟REFCLK作为发送时钟进行数据发送,不需要从对端引入发送时钟,接收方向的接收时钟则直接采用随路时钟处理。
从图4中可以看到,用FPGA实现的SFI4.1接口包括源同步接口的发送方向模块和源同步接口的接收方向模块。
所述源同步接口的发送方向模块,用于实现FPGA内部上一级处理模块输入的64路156.83Mb/s的并行数据到16路627.33Mb/s的并行差分数据输出的转换,同时发送出与数据随路的627.33M差分时钟;图4中,DATA[63:0]为FPGA内部上一级处理模块输入的的64路并行数据,DATA_TX_P[15:0]、DATA_TX_N[15:0]为转换后发送出的16路并行差分数据,CLOCK_TX_P、CLOCK_TX_N为发送的随路差分时钟,具体实现框图如图8所示。所述源同步接口的发送方向模块采用图8所示结构框图实现源同步数据的发送输出,根据实际系统要求,该发送功能实现的是SFI4.1接口中FRAMER侧的发送功能。
所述源同步接口的接收方向模块,通过动态的调整随路差分时钟CLOCK_RX_P、CLOCK_RX_N输入后的相位,采用ISERDES实现外部输入的16路627.33Mb/s并行差分数据到64路156.83Mb/s并行数据的转换,得到经过源同步接收处理后的64路并行数据;图4中,DATA_RX_P[15:0]、DATA_RX_N[15:0]为外部输入的16路并行差分数据,CLOCK_RX_P、CLOCK_RX_N为外部输入的随路差分时钟,DATA_FROM_ISERDES[63:0]为经过源同步接收处理后得到的64路并行数据,具体实现框图如图5。
图2是基于图4所示连接方式,发送端的信号图。输出的多路差分数据的有效宽度越宽,则输出的信号质量越高。理想情况下,输出差分时钟正端的下降沿处于输出差分数据的正中间。其中CLOCK_TX_P是发送差分时钟的正端。CLOCK_TX_N是发送差分时钟的负端。DATA_TX_P、DATA_TX_N指示发送的差分数据。Tcq_min,Tcq_max定义了发送数据相对于发送差分时钟的无效宽度,Tcq_min,Tcq_max两个参数最大为200ps。
图3是基于图4所示连接方式,接收端的信号图。输入的多路数据的有效宽度越宽,则输入的信号质量越好。理想情况下,输入时钟的上升沿处于输入数据的正中间。其中CLOCK_RX_P是接收差分时钟的正端,CLOCK_RX_N是接收差分时钟的负端。DATA_RX_P、DATA_RX_N指示接收的差分数据。Ts,Th定义了接收数据相对于接收差分时钟的有效宽度,Ts、Th两个参数最小为300ps。
源同步接口的发送方向模块的具体实现框图如图8所示,描述了并行差分数据和随路差分时钟的输出过程。图8中,FPGA内部上一级处理模块输入的64路并行数据DATA[63:0],通过16个输出串行器OSERDES输出16路并行数据:DATA_TX[15:0];然后通过16个增强型差分输出驱动器OBUFDS_LVDSEXT_25输出16路并行差分数据对:DATA_TX_P[15:0]、DATA_TX_N[15:0];
16个增强型差分输出驱动器OBUFDS_LVDSEXT_25与16个输出串行器OSERDES一一对应;16路并行数据:DATA_TX[15:0]通过增强型差分输出驱动器OBUFDS_LVDSEXT_25驱动后差分输出,成为16对差分数据:DATA_TX_P[00]、DATA_TX_N[00]、DATA_TX_P[01]、DATA_TX_N[01]、……、DATA_TX_P[15]、DATA_TX_N[15]。
参考时钟REFCLK分别送入一个时钟驱动器BUFR和一个时钟驱动器BUFIO,时钟驱动器BUFIO用于驱动位于输入输出端口附近的专用时钟布线资源,送出高质量的时钟资源,送出的时钟资源到达输入输出端口处的各种处理组件的时钟输入端。时钟驱动器BUFR用于驱动区域的时钟布线资源,同时时钟驱动器BUFR根据参数对输入的时钟进行分频输出,可选择的分频因子为1、2、3、4、5、6、7、8。本系统设计中选择分频因子4来进行输入时钟的4分频,BUFR(/4)的括号中的“/4”即表示对输入时钟进行4分频输出。
时钟驱动器BUFIO输出一路高速串行时钟CLK到双数据速率输出ODDR的时钟输入端。双数据速率输出ODDR的输入端D1、D2为固定逻辑电平,本系统中采用D1输入高逻辑电平,D2输入低逻辑电平。如果将D1、D2输入相反的逻辑,则可以在双数据速率输出ODDR的输出端Q输出相移180度的时钟。双数据速率输出ODDR的输出端Q经增强型差分输出驱动器OBUFDS_LVDSEXT_25输出一路差分随路时钟:CLOCK_TX_P、CLOCK_TX_N。
时钟驱动器BUFIO同时输出一路高速串行时钟TXCLK到每个输出串行器OSERDES的时钟输入端,作为OSERDES实现并串转换的串行时钟。
时钟驱动器BUFR(/4)输出一路分频后的并行时钟TXCLKDIV给每个输出串行器OSERDES的并行时钟输入端,作为OSERDES实现并串转换的并行时钟。
综上所述,输入的64路并行数据DATA[63:0]由XILINX的Virtex-5系列FPGA的OSERDES进行4∶1的并串变换,随后通过增强型差分缓冲器OBUFDS_LVDSEXT_25直接输出。
随路时钟的输出,在设计中采用ODDR进行输出路径控制,可以达到和OSERDES一致的路径延时。
由于设计中利用Virtex-5器件内的专用时钟资源,BUFIO驱动专用的IO时钟线资源,BUFR驱动局部时钟布线资源,从而使得处理时钟的偏斜(SKEW)很小;同时控制输出的数据和时钟路径,这样可以按照框图8方便的设计SFI4.1发方向的源同步接口,输出图2所示的时钟和数据信号。
在实际硬件上采用示波器观察输出的数据和时钟波形,如图10所示,可以看到实际输出和图2所示是一致的。图10是设计的SFI4.1接口往ASIC发送的源同步时钟和一路数据的示波器测试图。通过两个差分探头,分别观察时钟和一路数据,得到的波形相对关系,可以看到,时钟信号下降沿在数据眼图信号的中央部位。图10给出了FPGA发送的源同步接口的时钟与数据信号。发送端处理时钟抖动220ps;处理时钟的SKEW105ps;发送端对于-1等级的FPGA,OSERDES的数据输出在时钟沿后0.61ns,ODDR的数据输出在时钟沿后0.58ns。OSERDES与ODDR的输出差异为30ps;这样输出的时钟数据之间的差异大概355ps,对于周期为1.607ns的ODU2信号,考虑对端接口的接收损失850ps,约有400ps的发送余量。如果考虑200ps的对端接收余量,则发送的接口可以工作在700Mb/s,同时对端也可以正确接收。在设计中用到了OSERDES、OBUFDS_LVDSEXT_25、ODDR、BUFR、BUFIO等功能组件。这些功能单元在FPGA中的具体描述为:
//OSERDES:输出串行器
//Virtex-4/5
OSERDES#(
.DATA_RATE_OQ(″DDR″),//指定数据速率″DDR″或″SDR″
.DATA_RATE_TQ(″DDR″),//指定苏剧速率″DDR″,″SDR″,或″BUF″
.DATA_WIDTH(4),//指定数据宽度
.INIT_OQ(1’b0),//寄存器初始输出值
.INIT_TQ(1’b0),//寄存器初始输出值
.SERDES_MODE(″MASTER″),//设置SERDES模式
.SRVAL_OQ(1’b0),//指定输出值
.SRVAL_TQ(1’b0),//指定输出值
.TRISTATE_WIDTH(4)//指定并串转换的宽度
)OSERDES_inst(
.OQ(OQ),//1-bit data path output
.SHIFTOUT1(SHIFTOUT1),//1-bit data expansion output
.SHIFTOUT2(SHIFTOUT2),//1-bit data expansion output
.TQ(TQ),//1-bit 3-state control output
.CLK(CLK),//1-bit clock input
.CLKDIV(CLKDIV),//1-bit divided clock input
.D1(D1),//1-bit parallel data input
.D2(D2),//1-bit parallel data input
.D3(D3),//1-bit parallel data input
.D4(D4),//1-bit parallel data input
.D5(D5),//1-bit parallel data input
.D6(D6),//1-bit parallel data input
.OCE(OCE),//1-bit clock enable input
.REV(1’b0),//Must be tied to logic zero
.SHIFTIN1(SHIFTIN1),//1-bit data expansion input
.SHIFTIN2(SHIFTIN2),//1-bit data expansion input
.SR(SR),//1-bit set/reset input
.T1(T1),//1-bit parallel 3-state input
.T2(T2),//1-bit parallel 3-state input
.T3(T3),//1-bit parallel 3-state input
.T4(T4),//1-bit parallel 3-state input
.TCE(TCE)//1-bit 3-state signal clock enable input
);
//End of OSERDES_inst instantiation
采用OSERDES可以将低速率的并行数据转变成高速的串行数据。由于每路数据在内部资源OSERDES的使用上是完全对等的,同时高速输入引脚的时钟SKEW又很小,这样就可以保证通过OSERDES后输出的数据之间的SKEW会很小。
//OBUFDS_LVDSEXT_25:增强型差分输出缓冲器
//Virtex-II/II-Pro/4/5,Spartan-3/3E/3A
OBUFDS_LVDSEXT_25#(
.IOSTANDARD(″DEFAULT″)//Specify the output I/O standard)OBUFDS_LVDSEXT_25_inst(
.O(O),//差分P端输出
.OB(OB),//差分N端输出
.I(I)//输入信号
);
//End of OBUFDS_LVDSEXT_25_inst instantiation
通过OBUFDS_LVDSEXT_25可以将要输出的信号按SFI4.1要求的电平输出,满足接口标准的要求。
//ODDR:双数据速率输出
//and Clock Enable.
//Virtex-4/5
ODDR#(
.DDR_CLK_EDGE(″OPPOSITE_EDGE″),//时钟沿选择
.INIT(1’b0),//输出初始值
.SRTYPE(″SYNC″)//复位方式
)ODDR_inst(
.Q(Q),//1-bit DDR output
.C(C),//1-bit clock input
.CE(CE),//1-bit clock enable input
.D1(D1),//1-bit data input(positive edge)
.D2(D2),//1-bit data input(negative edge)
.R(R),//1-bit reset
.S(S)//1-bit set
);
//End of ODDR_inst instantiation
通过采用ODDR可以将时钟输出通路和数据输出通路的延时差异减小到很小,OSERDES的数据输出在时钟沿后0.61ns,ODDR的数据输出在时钟沿后0.58ns,差异30ps。
//BUFIO:区域时钟缓冲器
//Virtex-4/5
BUFIO BUFIO_inst(
.O(0),//时钟输出
.I(I)//时钟输入
);
//End of BUFIO_inst instantiation
通过BUFIO元件可以利用FPGA的专用IO时钟线资源,使各条时钟扇出的路径SKEW很小,这样可以得到局部时钟域内很好的时序效果,增加接收和发送的时序余量。
//BUFR:区域时钟缓冲器
//Virtex-4/5
BUFR#(
.BUFR_DIVIDE(″BYPASS″),//分频系数″BYPASS″,″1″,″2″,″3″,
″4″,″5″,″6″,″7″,″8″
.SIM_DEVICE(″VIRTEX5″)//指定器件,″VIRTEX4″or″VIRTEX5″
)BUFR_inst(
.O(O),//Clock buffer output
.CE(CE),//Clock enable input
.CLR(CLR),//Clock buffer reset input
.I(I)//Clock buffer input
);
//End of BUFR_inst instantiation
该区域时钟缓冲器可以实现从BUFIO来的时钟的分频,同时利用区域内的时钟布线资源。提高SFI4.1输出接口的性能。
源同步接口的接收方向模块的具体实现框图如图5所示,在采用Virtex-5的FPGA实现SFI4.1的接收接口时,采用框图5所示的结构。图5是源同步接口接收方向的实现框图,描述了从信号的输入,到通过状态机调整时钟沿到数据正中央正确采样数据的实现框图。图中DATA_RX_P[00]、DATA_RX_N[00]是第1路并行差分数据,DATA_RX_P[01]、DATA_RX_N[01]是第2路并行差分数据,依次类推,DATA_RX_P[15]、DATA_RX_N[15]是第16路并行差分数据,此即为外部输入的16路并行差分数据DATA_RX_P[15:0]、DATA_RX_N[15:0];CLOCK_RX_P、CLOCK_RX_N是输入的差分时钟,此即为外部输入的随路差分时钟。IBUFDS_LVDS_25指示的是FPGA内部的差分输入缓冲器。ISERDES是FPGA内部的高速串并转换器。RXCLK是ISERDES需要的高速串行处理时钟,RXCLKDIV是ISERDES需要的并行处理时钟。BUFIO用于高速时钟驱动,BUFR用来将高速时钟4分频为并行处理时钟。IODELAY是FPGA器件内的可编程延时调整单元,通过DEC、INC端对延时进行控制。DATA_FROM_ISERDES是通过串并变化及对齐后的并行数据。
16路差分数据(并行差分数据)DATA_RX_P[15:0]、DATA_RX_N[15:0]分别成对的送入一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25,再经过与差分输入缓冲器IBUFDS_LVDS_25一一对应的FPGA内部的高速串并转换器ISERDES后,通过串并变化及对齐后合路为并行数据DATA_FROM_ISERDES;
输入的差分时钟CLOCK_RX_P、CLOCK_RX_N经过同一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25后,一路送入FPGA器件内的可编程延时调整单元IODELAY,另一路送入一个FPGA内部的高速串并转换器ISERDES得到CLOCK_RX_OUT时钟信号,
可编程延时调整单元IODELAY的输出分为两路,一路经过用于高速时钟驱动的时钟驱动器BUFIO为高速串并转换器ISERDES提供高速串行处理时钟RXCLK,另一路经过时钟驱动器BUFR进行4分频后为高速串并转换器ISERDES提供并行处理时钟RXCLKDIV,
CLOCK_RX_OUT时钟信号经过时钟对齐数据状态机处理后,输出一路TRAINING_DONE信号,且同时输出DEC、INC信号用于对可编程延时调整单元IODELAY进行延时控制。
输入到FPGA管脚的时钟和数据信号关系如图3,在实际设计中,输入的时钟和数据信号关系如图9所示,理想情况是时钟的上升沿对着数据的正中央。图9给出了用示波器的差分探头观察ASIC送过来的源同步数据和时钟,从图看时钟上升沿位于数据的中央,对于FPGA接收这一数据信号,由于FPGA内部ISERDES之间存在着时钟取样差异,最大450ps;处理时钟抖动100ps;处理时钟的SKEW105ps;IODELAY延迟时钟的量化误差75ps;这样就会损失掉730ps的取样余量。如果考虑实际数据从ASIC发送到达FPGA管脚的误差350ps,这样接收模块工作时的时序余量就是数据的周期减掉1080ps,对于ODU2信号来说,信号周期为1.607ns,除去各种影响后实际的采样余量大概为527ps。这一接收接口从分析看如果要求数据的取样余量为350ps,考虑到温度漂移,则SFI4.1的收模块可以正确接收700Mb/s的数据。在SFI4.1接收方向的源同步接收接口中应用了IBUFDS_LVDS_25、ISERDES、IODELAY等XILINX组件,关键组件的具体描述如下:
//ISERDES_NODELAY:输入解串器
//Virtex-5
ISERDES_NODELAY#(
.BITSLIP_ENABLE(″FALSE″),//BITSLIP方式选择
.DATA_RATE(″DDR″),//指定数据速率
.DATA_WIDTH(4),//指定数据宽度
.INTERFACE_TYPE(″MEMORY″),//接口类型选择
.NUM_CE(2),//时钟使能的个数
.SERDES_MODE(″MASTER″)//设置SERDES工作模式
)ISERDES_NODELAY_inst(
.Q1(Q1),//1-bit registered SERDES output
.Q2(Q2),//1-bit registered SERDES output
.Q3(Q3),//1-bit registered SERDES output
.Q4(Q4),//1-bit registered SERDES output
.Q5(Q5),//1-bit registered SERDES output
.Q6(Q6),//1-bit registered SERDES output
.SHIFTOUT1(SHIFTOUT1),//1-bit cascade Master/Slave output
.SHIFTOUT2(SHIFTOUT2),//1-bit cascade Master/Slave output
.BITSLIP(BITSLIP),//1-bit Bitslip enable input
.CE1(CE1),//1-bit clock enable input
.CE2(CE2),//1-bit clock enable input
.CLK(CLK),//1-bit master clock input
.CLKB(CLKB),//1-bit secondary clock input for DATA_RATE=DDR
.CLKDIV(CLKDIV),//1-bit divided clock input
.D(D),//1-bit data input,connects to IODELAY or input buffer
.OCLK(OCLK),//1-bit fast output clock input
.RST(RST),//1-bit asynchronous reset input
.SHIFTIN1(SHIFTIN1),//1-bit cascade Master/Slave input
.SHIFTIN2(SHIFTIN2)//1-bit cascade Master/Slave input
);
//End of ISERDES_NODELAY_inst instantiation
在SFI4.1的接收方向模块中,采用图5所示功能框图实现SFI4.1的接收接口,输入的16路差分数据信号和1路差分时钟信号先进入FPGA内的差分输入缓冲器变成单端信号,然后进入到相应的ISERDES中,进行1∶4串并降速处理,每个ISERDES都需要一个和数据速率匹配的时钟和一个经过四分频后的时钟,对于这两个时钟的生成,设计中采用了XILINX XC5VLX85T FPGA的内部资源BUFIO、BUFR。BUFIO驱动专用的IO时钟线资源,BUFR驱动局部时钟布线资源,这样可以使到各个ISERDES的时钟之间的SKEW尽量小。由于数据进入ISERDES的数据节点和时钟进入ISERDES的时钟节点的延时不确定,因此在设计中采用状态机控制IODELAY的延时,调整输入到ISERDES时钟输入端的时钟相位,使ISERDES资源中最终的接收时钟上升沿正对输入数据的中间,满足高速数据的接收锁存要求,最大的提高系统的可靠性。
从接收方向的实现框图(图5)可以看出对于SFI4.1接收接口的控制部分设计主要是需要设计调整IODELAY的延时部分的逻辑,通过动态的调整IODELAY的延时,使时钟工作在最优的位置。为了设计的可靠性,设计中应使到达FPGA输入管脚的数据和时钟之间的SKEW尽量的小,这样可以认为时钟信号的上升沿正好处于数据眼图的正中间。以这个时钟作为一个伪数据通道,将它进行串并变换,得到4位的并行数据。通过调整IODELAY的延时,这4位并行数据会发生改变,通过分析4位并行数据的改变来确定IODELAY的延时,确保通过IODELAY延时后的时钟正好处于ISERDES内锁存数据的正中间。
图6给出了确定延时大小的状态图。该状态图的机理是根据采集到的参考时钟数据的值来判断实际处理时钟上升沿的具体位置,对于采集到的数据与时钟沿的关系如图7。实际应用中ASIC芯片输出的源同步接口的时钟是上升沿对应于数据的正中央的,因此需要搜索时钟的位置,使FPGA内部调整后的时钟上升沿正好位于输入数据的正中央,也就是使在ISERDES单元中的实际处理时钟位于输入时钟由低到高的上升沿处。
图7中,ISERDES_RXCLK(1)表示到达ISERDES的时钟处于数据的后半部,相应的在将CLOCK_RX_P/N作为伪数据输入的ISERDES输出为4比特1111。
ISERDES_RXCLK(2)表示到达ISERDES的时钟处于数据的变化沿处而出现输出不稳,相应的在将CLOCK_RX_P/N作为伪数据输入的ISERDES输出会因为数据、时钟的抖动而出现不稳定的输出,伪时钟数据是由输出稳定的4比特1111后开始输出不稳定的4比特数据的。
ISERDES_RXCLK(3)表示到达ISERDES的时钟处于数据的前半部,相应的在将CLOCK_RX_P/N作为伪数据输入的ISERDES输出为4比特0000。
ISERDES_RXCLK(4)表示到达ISERDES的时钟处于数据的中间,相应的在将CLOCK_RX_P/N作为伪数据输入的ISERDES输出会因为时钟的抖动而出现不稳定的输出,它是由输出稳定的4比特0000后开始输出不稳定的4比特数据的,表示输入到数据ISERDES的时钟上升沿正好出于数据的中间。
状态转移图就是根据输入到ISERDES的数据为伪数据时,判断输出值来调整输入到ISERDES的时钟,从而使最终得到的输入到ISERDES的时钟正好处于各个ISERDES的输入数据的中间,达到正确的接收源同步数据。
状态机在复位后开始工作,如果接收到的伪数据是4比特0000,则增加IODELAY的延迟大约75ps,直到接收到的数据由4比特0000变成其它的4比特数据。这表明了目前的处理时钟正好处在输入时钟的上升沿附近,也就近似于数据的正中央。如果工作后接收到的数据是4比特1111,则增加IODELAY或者是减小IODELAY的延迟,实际设计中直接采用增加IODELAY的延迟,先将处理时钟移到输入时钟的下降沿附近,然后继续后移到输入时钟信号的上升沿附近,也就是近似于数据的正中央。如果刚开始工作时,接收到的伪数据不稳,则增加IODELAY,让接收的数据采样稳定后,按上述的两种情况进行处理,搜索到数据的近似正中央。由于处理时钟是按大约75ps的间隔变化,所以最终的处理时钟在数据的正中央正负75ps处。根据输入的源同步数据和时钟的关系,通过将输入时钟作为伪输入数据,动态的调整实际处理时钟的上升沿的位置,最终使取样时钟的上升沿位于输入数据的中央,保证了SFI4.1的接收数据的准确性。
本发明所述的基于FPGA的SFI4.1装置,对于接收方向采用FPGA器件内部资源ISERDES(输入解串器),同时采用状态机来查询数据正中央的位置,通过IODELAY(输入输出延时器)来调整采样时钟的位置,控制采样时钟的上升沿位于输入数据的中央。对于发送方向,采用OSERDES(输出串行器)、ODDR(双数据速率输出)资源,保证输出的高速源同步数据和时钟满足对端ASIC的SFI4.1接口的接收要求。通过在FPGA内部对SFI4.1接口的收发进行设计,从而完成了一个完整的SFI4.1接口,这样就可以对接收后的数据进行随心所欲的处理,同理可以对发送前的数据进行系统所需的处理。增强了整个系统的灵活性,同时可以对各种采用SFI4.1接口的10G信号进行处理。
Claims (2)
1.一种基于FPGA的SFI4.1装置,其特征在于:该装置内用FPGA实现SFI4.1接口,通过SFI4.1接口分别连接FPGA器件与OTN系统中ASIC芯片,在ASIC芯片和FPGA器件上共用参考时钟REFCLK,且数据发送方向的发送时钟均直接采用参考时钟REFCLK,接收方向的接收时钟则直接采用随路时钟处理;
所述用FPGA实现的SFI4.1接口包括源同步接口的发送方向模块和源同步接口的接收方向模块;
所述源同步接口的发送方向模块,用于实现FPGA内部上一级处理模块输入的64路156.83Mb/s的并行数据到16路627.33Mb/s的并行差分数据输出的转换,同时发送出与数据随路的627.33M差分时钟;
所述源同步接口的接收方向模块,通过动态的调整随路差分时钟CLOCK_RX_P、CLOCK_RX_N输入后的相位,采用高速串并转换器ISERDES实现外部输入的16路627.33Mb/s并行差分数据到64路156.83Mb/s并行数据的转换,得到经过源同步接收处理后的64路并行数据;
FPGA内部上一级处理模块输入的64路并行数据DATA[63:0],通过16个输出串行器OSERDES输出16路并行数据:DATA_TX[15:0];然后通过16个增强型差分输出驱动器OBUFDS_LVDSEXT_25输出16路并行差分数据对:DATA_TX_P[15:0]、DATA_TX_N[15:0];
参考时钟REFCLK分别送入一个时钟驱动器BUFR和一个时钟驱动器BUFIO;
时钟驱动器BUFIO用于驱动位于输入输出端口附近的专用时钟布线资源,送出高质量的时钟资源,送出的时钟资源到达输入输出端口处的各种处理组件的时钟输入端;
时钟驱动器BUFR用于驱动区域的时钟布线资源,同时时钟驱动器BUFR根据参数对输入的时钟进行分频输出,分频因子为4;
时钟驱动器BUFIO输出一路高速串行时钟CLK到双数据速率输出ODDR的时钟输入端,双数据速率输出ODDR的输入端D1、D2为固定逻辑电平;
双数据速率输出ODDR的输出端Q经增强型差分输出驱动器OBUFDS_LVDSEXT_25输出一路差分随路时钟:CLOCK_TX_P、CLOCK_TX_N;
时钟驱动器BUFIO同时输出一路高速串行时钟TXCLK到每个输出串行器OSERDES的时钟输入端,作为OSERDES实现并串转换的串行时钟;
时钟驱动器BUFR输出一路分频后的并行时钟TXCLKDIV给每个输出串行器OSERDES的并行时钟输入端,作为OSERDES实现并串转换的并行时钟。
2.如权利要求1所述基于FPGA的SFI4.1装置,其特征在于:16路差分数据DATA_RX_P[15:0]、DATA_RX_N[15:0]分别成对的送入一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25,再经过与差分输入缓冲器IBUFDS_LVDS_25一一对应的FPGA内部的高速串并转换器ISERDES后,通过串并变化及对齐后合路为并行数据DATA_FROM_ISERDES;
输入的差分时钟CLOCK_RX_P、CLOCK_RX_N经过同一个FPGA内部的差分输入缓冲器IBUFDS_LVDS_25后,一路送入FPGA器件内的可编程延时调整单元IODELAY,另一路送入一个FPGA内部的高速串并转换器ISERDES得到CLOCK_RX_OUT时钟信号;
可编程延时调整单元IODELAY的输出分为两路,一路经过用于高速时钟驱动的时钟驱动器BUFIO为高速串并转换器ISERDES提供高速串行处理时钟RXCLK,另一路经过时钟驱动器BUFR进行4分频后为高速串并转换器ISERDES提供并行处理时钟RXCLKDIV;
CLOCK_RX_OUT时钟信号经过时钟对齐数据状态机处理后,输出一路TRAINING_DONE信号,且同时输出DEC、INC信号用于对可编程延时调整单元IODELAY进行延时控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010274971 CN101951313B (zh) | 2010-09-08 | 2010-09-08 | 一种基于fpga的sfi4.1装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010274971 CN101951313B (zh) | 2010-09-08 | 2010-09-08 | 一种基于fpga的sfi4.1装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101951313A CN101951313A (zh) | 2011-01-19 |
CN101951313B true CN101951313B (zh) | 2013-04-10 |
Family
ID=43454678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010274971 Active CN101951313B (zh) | 2010-09-08 | 2010-09-08 | 一种基于fpga的sfi4.1装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101951313B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102315889B (zh) * | 2011-09-30 | 2014-03-26 | 华为技术有限公司 | 一种高速信号测试方法、装置和系统 |
CN103064809B (zh) * | 2012-12-20 | 2016-06-08 | 华为技术有限公司 | 源同步双倍数据速率接口的采样装置及其采样方法 |
CN103048978A (zh) * | 2013-01-08 | 2013-04-17 | 中国石油天然气集团公司 | 一种井下高速互联总线 |
CN103166818B (zh) * | 2013-02-26 | 2016-05-11 | 深圳市东微智能科技有限公司 | 一种高效无限的数字调音台集群及其信号传输方法 |
CN103825696B (zh) * | 2014-03-11 | 2017-08-01 | 华中科技大学 | 一种基于fpga实现光纤高速实时通信的装置 |
CN106791813B (zh) * | 2016-12-19 | 2018-10-19 | 中国科学院长春光学精密机械与物理研究所 | 一种高速数据接收的实时窗口监视方法及装置 |
CN107656891B (zh) * | 2017-09-22 | 2019-11-12 | 烽火通信科技股份有限公司 | 一种基于sfi4-2接口查找输入时延的方法及装置 |
CN108121678B (zh) * | 2017-12-25 | 2019-11-12 | 四川九洲空管科技有限责任公司 | 一种基于新型chsi接口优化的fpga数据处理方法及系统 |
CN110188477B (zh) * | 2019-05-31 | 2022-08-02 | 中国电子科技集团公司第五十八研究所 | 一种高速adc数据传输的位同步方法 |
CN112055128A (zh) * | 2019-06-06 | 2020-12-08 | 海信视像科技股份有限公司 | 图像数据采样方法及装置、电子设备、存储介质 |
CN110798211B (zh) * | 2019-09-30 | 2023-05-23 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 并行adc采样系统传输路径延时误差的通用校准方法 |
CN110868555B (zh) * | 2019-11-08 | 2022-04-19 | 中国航空工业集团公司洛阳电光设备研究所 | 一种稳定接收高速串行lvds红外图像数据的方法 |
CN111026233B (zh) * | 2019-11-18 | 2021-03-26 | 北京空间机电研究所 | 一种基于时钟驱动器及fpga的高速并行数据接收系统 |
CN112540952B (zh) * | 2020-12-18 | 2021-09-17 | 广东高云半导体科技股份有限公司 | 具有片内并行接口的片上系统 |
CN115882870B (zh) * | 2023-02-01 | 2023-05-26 | 井芯微电子技术(天津)有限公司 | 一种高速串行器解串器集成方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1522522A (zh) * | 2002-05-16 | 2004-08-18 | ض� | 使用10吉比特附件单元接口的与协议无关的传输 |
CN1946017A (zh) * | 2006-10-09 | 2007-04-11 | 华为技术有限公司 | 在包交换网络中发送端和接收端进行时钟同步的方法和系统 |
WO2008048372A3 (en) * | 2006-10-13 | 2008-06-26 | Menara Networks Inc | Systems and methods for the integration of framing oam&p, and forward error correction in pluggable optical transceiver devices |
CN101365250A (zh) * | 2008-08-14 | 2009-02-11 | 浙江工业大学 | 基于fpga设计的gpon onu系统的硬件平台系统 |
CN101621346A (zh) * | 2009-07-09 | 2010-01-06 | 中兴通讯股份有限公司 | 一种具有自适应反馈的源同步接收装置及源同步方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249964A1 (en) * | 2003-03-06 | 2004-12-09 | Thibault Mougel | Method of data transfer and apparatus therefor |
-
2010
- 2010-09-08 CN CN 201010274971 patent/CN101951313B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1522522A (zh) * | 2002-05-16 | 2004-08-18 | ض� | 使用10吉比特附件单元接口的与协议无关的传输 |
CN1946017A (zh) * | 2006-10-09 | 2007-04-11 | 华为技术有限公司 | 在包交换网络中发送端和接收端进行时钟同步的方法和系统 |
WO2008048372A3 (en) * | 2006-10-13 | 2008-06-26 | Menara Networks Inc | Systems and methods for the integration of framing oam&p, and forward error correction in pluggable optical transceiver devices |
CN101365250A (zh) * | 2008-08-14 | 2009-02-11 | 浙江工业大学 | 基于fpga设计的gpon onu系统的硬件平台系统 |
CN101621346A (zh) * | 2009-07-09 | 2010-01-06 | 中兴通讯股份有限公司 | 一种具有自适应反馈的源同步接收装置及源同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101951313A (zh) | 2011-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101951313B (zh) | 一种基于fpga的sfi4.1装置 | |
US10447463B2 (en) | Device and method for ultra-low latency communication | |
US8184651B2 (en) | PLD architecture optimized for 10G Ethernet physical layer solution | |
US11502694B1 (en) | Field programmable gate array with external phase-locked loop | |
CN101465723B (zh) | 具有降低的延迟时间不确定性的收发器系统、包含该收发器系统的可编程逻辑器件和数字系统以及收发数据的方法 | |
US7003423B1 (en) | Programmable logic resource with data transfer synchronization | |
US7978802B1 (en) | Method and apparatus for a mesochronous transmission system | |
CN109947681A (zh) | 串化/解串器及高速接口协议交换芯片 | |
CN103105889A (zh) | 一种fpga原型验证板堆叠的时钟同步装置及系统 | |
US20090063889A1 (en) | Aligning data on parallel transmission lines | |
CN106301378B (zh) | 一种高速dac同步方法及电路 | |
CN111193891A (zh) | 一种基于FPGA的Camera Link数据接收系统及传输方法 | |
CN111835497B (zh) | 一种基于fpga的光纤数据传输精确时间同步方法 | |
WO2019009968A1 (en) | PARALLEL-SERIES AND SERIAL-PARALLEL CONVERTER WITH DOUBLE FREQUENCY | |
US10542312B1 (en) | High speed data transfer | |
CN104615571B (zh) | 可编程高速差分接口 | |
EP3106995B1 (en) | Techniques for providing data rate changes | |
US20040042504A1 (en) | Aligning data bits in frequency synchronous data channels | |
CN105306421A (zh) | 一种基于pci-e接口的信号处理方法及信号处理装置 | |
Chang et al. | A 2 Gb/s asymmetric serial link for high-bandwidth packet switches | |
US5974103A (en) | Deterministic exchange of data between synchronised systems separated by a distance | |
US7764614B2 (en) | Multi-mode management of a serial communication link | |
US7908528B1 (en) | Phase-detector-less method and apparatus for minimizing skew between bonded channel groups | |
WO2022266959A1 (zh) | 一种芯片测试电路和方法 | |
US10644870B2 (en) | Clock recovery system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |