基于FPGA原语的PHY接口及FPGA芯片的制作方法

文档序号:16247417发布日期:2018-12-11 23:42阅读:707来源:国知局
基于FPGA原语的PHY接口及FPGA芯片的制作方法

本发明涉及fpga领域,特别涉及一种基于fpga原语的phy接口及fpga芯片。

背景技术

phy即物理层,phy接口指的芯片至芯片或电路板至电路板之间的数据传输的物理层接口。比如在以太网应用中,以太网的数据要经过phy接口芯片后传输到cpu中;在基于fpga的应用平台上,fpga的控制及数据信号必须经过高速phy接口后传输到外设pcie设备或者ddr4内存条上。高速数据应用中phy接口模块(用芯片、专用集成电路或者fpga逻辑实现)是必不可少的一部分,phy接口的传输速度及延时时间是衡量接口的重要指标。

目前针对特定功能有专用的phy接口芯片,如网卡phy芯片;在使用fpga作为主控制器或者接口转换的场合中,会采用其内部专用ip核实现phy通用接口或专用接口。对于使用专用芯片或集成电路板的情况,需要额外采购芯片,增加硬件设计工作量及元器件种类。此外,采用fpga专用芯片实现的phy接口,延时周期长,且大部分专用芯片都不能够动态配置延时参数,灵活性较差。



技术实现要素:

本发明的目的是提供一种基于fpga原语的phy接口及fpga芯片,用以解决传统phy接口延时周期长,不能够动态配置延时参数的问题。

为解决上述技术问题,本发明提供了一种基于fpga原语的phy接口,包括:

用于缓冲从fpga芯片的管脚发送来的或者准备从所述管脚发出的数据的输入输出缓冲器;

一端连接所述输入输出缓冲器,另一端分别连接输入串并转换器和输出串并转换器的延迟单元;

以及所述输入串并转换器和所述输出串并转换器;

其中,所述输入串并转换器与所述输出串并转换器均与所述fpga芯片上的用户逻辑模块相连接,所述输入串并转换器与所述输出串并转换器均设置有输入接口时钟和分频时钟,所述用户逻辑模块用于通过调整所述输入接口时钟和所述分频时钟的相位差来改变所述phy接口的数据传输延时。

优选的,所述输入接口时钟的相位值固定,所述用户逻辑模块具体用于通过改变所述分频时钟的相位值来改变所述phy接口的数据传输延时。

优选的,当所述用户逻辑模块改变所述分频时钟的相位使得所述输入接口时钟与所述分频时钟的相位差为0度时,所述数据传输延时为3个输入接口时钟周期;

当所述用户逻辑模块改变所述分频时钟的相位使得所述输入接口时钟与所述分频时钟的相位差为180度时,所述数据传输延时为2个输入接口时钟周期。

优选的,所述用户逻辑模块还用于通过调整所述延迟单元的tap值来改变所述数据传输延时。

优选的,所述用户逻辑模块还用于将所述输入接口时钟与所述分频时钟的时钟速率比设置为预设时钟速率比。

优选的,所述预设时钟速率比为2:1、3:1、4:1、5:1中任意一项。

此外,本发明还提供了一种fpga芯片,所述fpga芯片上的物理接口包括如上所述的一种基于fpga原语的phy接口。

本发明所提供的一种基于fpga原语的phy接口,包括输入输出缓冲器、延迟单元、输入串并转换器以及输出串并转换器,其中输入串并转换器与输出串并转换器均与用户逻辑模块相连接,且输入串并转换器与输出串并转换器均设置有输入接口时钟和分频时钟,用户逻辑模块能够通过调整输入接口时钟和分频时钟的相位差来改变所述phy接口的数据传输延时。由于利用fpga原语实现的phy接口固有延时较低,且能够通过用户逻辑模块调整时钟实现调整数据传输延时,因而提高了phy接口的灵活性,并降低了phy接口的数据传输延时。

本发明还提供了一种fpga芯片,其作用与上述phy接口相对应,这里不再赘述。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于fpga原语的phy接口实施例的结构框图;

图2为本案发明提供的一种基于fpga原语的phy接口实施例中输入数据的过程示意图;

图3为本案发明提供的一种基于fpga原语的phy接口实施例中输出数据的过程示意图。

具体实施方式

本发明的核心是提供一种基于fpga原语的phy接口及fpga芯片,提高了phy接口的灵活性,并降低了phy接口的数据传输延时。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面对本发明提供的一种基于fpga原语的phy接口实施例进行介绍,参见图1,该实施例包括:

用于缓冲从fpga芯片的管脚发送来的或者准备从所述管脚发出的数据的输入输出缓冲器100;一端连接所述输入输出缓冲器100,另一端分别连接输入串并转换器和输出串并转换器的延迟单元200;以及所述输入串并转换器300和所述输出串并转换器400;其中,所述输入串并转换器300与所述输出串并转换器400均与所述fpga芯片上的用户逻辑模块500相连接,所述输入串并转换器300与所述输出串并转换器400均设置有输入接口时钟和分频时钟,所述用户逻辑模块500用于通过调整所述输入接口时钟和所述分频时钟的相位差来改变所述phy接口的数据传输延时。

上述实施例基于fpga原语实现,fpga原语为fpga厂商——xilinx针对其器件特征开发的一系列常用模块的名称,是fpga芯片中基本元件,代表fpga中实际拥有的硬件逻辑单元,如lut,d触发器,ram等,相当于软件中的机器语言。fpga原语在设计中可以直接例化使用,是最直接的代码输入方式,用户使用这些基本的fpga原语,像搭积木一样,搭建成用户需要的功能逻辑。

xilinx为用户提供了可搭建phy接口的io端口组件,包括iobuf、iodelay、i/oserdese、iddr及oddr等,本实施例中的输入数缓冲器100具体为iobuf,延迟单元200具体为iodelay,输入串并转换器300具体为iserdese,输出串并转换器400具体为oserdese。

一般的高速信号,例如ddr3内存条上的数据,通过板卡接口或者其他芯片之后连接到fpga芯片的管脚上,经过phy接口的转化后才能被用户逻辑模块500处理,同样,fpga芯片向外发送的信号也需要经过phy接口处理后,在通过fpga芯片管脚传输出去。

下面对上述实施例中涉及到的器件的功能进行介绍:

(1)输入输出缓冲器100,有单向或双向信号两种,根据实际需要选择,利用用户逻辑模块500通过改变输入输出缓冲器100的方向控制信号,来改变输入输出缓冲器100的输入输出方向。输入输出缓冲器100为搭建phy接口必备的组件,几乎无输入输出延时,仅有硬件实现时的走线延时。

(2)可编程绝对的延迟单元200,每个phy接口包含一个延迟单元200,与其延时时间相关的有64个tap的环绕单元,每个tap值与接口的工作频率有关,比如v6的芯片,工作频率是200mhz,tap=78ps,所以总的可延时时间为78*64=4992ps。延迟单元200主要用来调整因硬件走线延时带来的时序问题。

(3)输入串并转换器300,可以实现高速数据传输,完全不需要fpga芯片的内部逻辑与输入数据频率匹配,支持sdr、ddr两种模式,即可以实现两种不同速度的数据接口转换,接口与内部逻辑时钟速率比可以为2:13:14:1或者5:1,用户可根据系统工作频率及外部接口频率灵活选择。

(4)输出串并转换器400,与输入串并转换器300的功能相同,只是数据传输的方向相反。

参见图2,输入数据时,输入串并转换器300的转换流程具体包括:

外部信号通过fpga芯片的管脚后,经过输入输出缓冲器100的输入通路进行无延时缓存,接着进入可动态调整输入延时的延迟单元200的输入通道,延迟单元200的延时的时间有限,具体参考上文。之后进入输入串并转换器300,该模块有个特点:当输入接口时钟与分频时钟相位相同时,输入延时为3个接口时钟时间;而当两个时钟相位相差180°时,输入延时为2个接口时钟时间。

所以,可以通过调整所述输入接口时钟和所述分频时钟的相位差来改变所述phy接口的数据传输延时。具体的,输入接口时钟300的相位值可以固定,用户逻辑模块500具体通过改变所述分频时钟的相位值来改变所述phy接口的数据传输延时,此延时只能变化一个周期。最后数据进入用户逻辑模块500,进行数据解析等其他操作。

参见图3,输出数据时,输出串并转换器400的转换流程具体包括:

用户逻辑模块500的数据首先进入输出串并转换器400,当输入接口时钟与分频时钟相位相同时,输入延时为3个接口时钟时间;而当两个时钟相位相差180°时,输入延时为2个接口时钟时间。因此,通过动态修改分频时钟,能够改变输入总的延时,但此延时只能变化一个周期。接着数据进入延迟单元200的输入通道,延时时间由配置的延时参数确定,最后经过输入输出缓冲器100的输出通道无延时的将数据传输到fpga芯片的管脚上,完成一次数据传输。

对于输入串并转换器300和输出串并转换器400这一特性在一些特殊场合,需要输入/输出通路延时可变化一个周期时,非常有效,例如在使用fpga做ddr3内存条控制器或者其他一些内部逻辑和接口逻辑不匹配,导致的数据输入输出数据延时不一致时(对于接口频率和用户逻辑频率为2:1时,经常会出现一个周期的偏差),使用该方法可以大大简化接口逻辑,提高工作效率。

因此,本实施例提供的phy接口的输入/输出固有延时仅为2或者3个接口时钟周期,相比专用芯片实现的phy接口,延时时间更少,且可动态配置延时值,对于只需要在小范围内调整延时的应用场合非常实用,且可满足接口频率高的应用场合。

本实施例介绍了使用基于xilinx厂商的fpga原语实现的phy接口,实现了一种可动态配置延时参数的phy接口,该接口由fpga原语实现,即使用fpga底层基本模块,可弥补目前专用芯片实现phy接口带来的弊端:延时参数不可动态修改,延时参数大等。另外还可动态修改输入/输出延时值,使延时多一个接口周期或者少一个,可应用在一些接口频率和内部逻辑频率不一致的场合,且接口实现方式简单易行。

此外,本发明还提供了一种fpga芯片,所述fpga芯片上的物理接口包括如上所述的一种基于fpga原语的phy接口。

由于本发明提供的fpga芯片采用了如上所述的phy接口,因此其作用与上述一种基于fpga原语的phy接口的作用相对应,这里不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于fpga原语的phy接口及fpga芯片进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1