CN103164314A - 基于异步物理层接口的PCIe接口芯片硬件验证方法 - Google Patents
基于异步物理层接口的PCIe接口芯片硬件验证方法 Download PDFInfo
- Publication number
- CN103164314A CN103164314A CN2013100571249A CN201310057124A CN103164314A CN 103164314 A CN103164314 A CN 103164314A CN 2013100571249 A CN2013100571249 A CN 2013100571249A CN 201310057124 A CN201310057124 A CN 201310057124A CN 103164314 A CN103164314 A CN 103164314A
- Authority
- CN
- China
- Prior art keywords
- interface
- physical layer
- frequency
- pci express
- message
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于异步物理层接口的PCIe接口芯片硬件验证方法,其实施步骤如下:1)构建具有标准PCI Express接口的FPGA硬件平台;2)在待验证的PCI Express接口芯片ASIC代码中的PCI Express软核与物理层之间***用于匹配频率差的异步物理层接口;3)将待验证的PCI Express接口芯片ASIC代码迁移到FPGA硬件平台综合实现,并根据PCIExpress接口芯片被综合的最高频率设置降频PIPE接口的工作频率;4)使用测试程序通过FPGA硬件平台对PCI Express接口芯片的PCI Express软核和用户逻辑进行功能测试。本发明能够实现PCI Express接口芯片的降频硬件验证,具有兼容现有测试代码、实现简单方便、通用性好、资源占用率低的优点。
Description
技术领域
本发明涉及ASIC芯片的硬件验证领域,具体涉及一种基于异步物理层接口的PCIe接口芯片硬件验证方法。
背景技术
PCI Express(PCIe)是目前应用最为广泛的I/O总线标准,基于PCI Express接口的ASIC芯片结构如图1所示,主要由物理层、PCI Express软核以及用户逻辑三部分构成。物理层负责数据编码和串并转换,PCI Express软核实现PCI Express总线协议,物理层与PCI Express软核之间是一个工业标准接口,称为PCI Express物理层接口(PHY Interface of PCI Express,简称PIPE接口),用户逻辑在PCI Express用户接口之上实现ASIC芯片的数据处理功能。
ASIC芯片的验证主要有两种方法:软件模拟和硬件验证。软件模拟基于模拟器对代码进行仿真执行,简单方便但是速度较慢,难以发现逻辑设计中的深层次错误。硬件验证将代码综合到硬件验证平台上在真实的环境中执行,验证速度很快,但是较为复杂。ASIC验证过程中通常两种方法会互为补充,最终实现对芯片功能的全覆盖。
ASIC代码综合到FPGA中时通常达不到ASIC实际的工作频率,因此一般都采用降频验证的方式,将FPGA工作频率降为ASIC工作频率的几分之一。内部逻辑代码降频对功能验证通常没有影响,外部接口一般需要与FPGA验证平台以外的设备进行通信(例如PCI Express端节点设备需要连接主板上的PCI Express根节点设备),如果FPGA验证平台的接口速率与其它设备的接口速率不一致,就无法进行正常的数据传输。PCI Express软核的工作频率与物理层接口速率间有严格的关系,直接降低软核的工作频率将会引起物理层接口速率降低,导致无法连接标准速率的PCI Express设备,因此这就需要一种硬件验证PCI Express接口的方法以实现降频后的PCI Express软核和标准PCI Express设备之间的通信。
针对上述技术问题,现有技术的解决方法主要有如下两种:
(1)Xilinx/Altera公司的硬核替换法。将为ASIC设计的PCI Express软核替换为可以在FPGA中实现的PCI Express软核或硬核,然后在替换后的PCI Express用户接口上***异步FIFO实现降频验证。这种方法的缺点第一是PCI Express软核自身以及相关逻辑无法得到验证,第二由于每种PCI Express IP的用户接口都不同,采用替换的方式改变了用户接口,因此用户逻辑必须做出相应的修改,导致ASIC代码和FPGA代码不一致,不仅增加了验证复杂性,而且降低了验证的可信度。
(2)SpeedBridge技术。Cadence的SpeedBridge技术是在标准的PCI Express接口与硬件验证平台上降频的PCI Express接口之间***一个特殊的PCI Express桥设备,该桥设备有两个不同速率的端口,它将标准PCI Express接口收到的报文缓存后转发给降频的PCI Express接口,从而实现降频PCI Express设备与标准PCI Express设备的透明通信。SpeedBridge技术需要设计专用的转接板和桥芯片,实现非常复杂,并且SpeedBridge目前只能用于Cadence的Palladium验证平台,无法应用到通用的FPGA验证平台上。
综上所述,如何在通用FPGA硬件验证平台上实现PCI Express接口的降频验证是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是提供一种能够实现PCI Express接口芯片降频硬件验证、兼容现有测试代码、实现简单方便、通用性好、资源占用率低的基于异步物理层接口的PCIe接口芯片硬件验证方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于异步物理层接口的PCIe接口芯片硬件验证方法,其实施步骤如下:
1)构建具有标准PCI Express接口的FPGA硬件平台,将所述FPGA硬件平台通过标准PCI Express接口与带有PCI Express根节点设备的主机相连;
2)在待验证的PCI Express接口芯片ASIC代码中的PCI Express软核与物理层之间***用于匹配频率差的异步物理层接口,所述异步物理层接口包含发送缓冲区、接收缓冲区、降频PIPE接口和标准PIPE接口,所述异步物理层接口通过降频PIPE接口与FPGA硬件平台相连、通过标准PIPE接口与物理层相连;
3)将所述待验证的PCI Express接口芯片ASIC代码迁移到所述FPGA硬件平台综合实现,并根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率;
4)使用测试程序通过所述FPGA硬件平台对PCI Express接口芯片的PCI Express软核和用户逻辑进行功能测试;当PCI Express软核通过异步物理层接口向物理层发送PCI Express报文时,PCI Express软核通过降频PIPE接口将PCI Express报文写入异步物理层接口的发送缓冲区,异步物理层接口将发送缓冲区缓存PCI Express报文通过标准PIPE接口发送给物理层,同时当异步物理层接口的发送缓冲区为空时,异步物理层接口检测链路的握手状态,如果握手未成功则在标准PIPE接口上***SKP有序集报文来补偿PCI Express软核与物理层之间的频率差,如果握手已经成功则在标准PIPE接口上***LIDLE逻辑空报文来补偿PCIExpress软核与物理层之间的频率差;当物理层通过异步物理层接口向PCI Express软核发送PCI Express报文时,异步物理层接口检测链路的握手状态,如果握手未成功则将接收到的PCIExpress报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃,并将未丢弃的PCI Express报文写入异步物理层接口的接收缓冲区,如果握手已经成功则判断接收到的PCI Express报文的类型,当PCI Express报文是链路层报文或者事务层报文时写入异步物理层接口的接收缓冲区,当PCI Express报文是逻辑空报文时全部丢弃,异步物理层接口将接收缓冲区缓存PCI Express报文通过降频PIPE接口发送给物理层。
作为本发明上述技术方案的进一步改进:
所述步骤3)中根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率时,降频PIPE接口的工作频率取值规则如式(1)所示;
fl/fs=1,4/5,3/4,7/10,2/3,3/5,1/2,2/5 (1)
式(1)中,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。
所述异步物理层接口的接收缓冲区容量满足式(2)的函数关系;
Cfifo>Ctlp *(1-(fl-fdllp)/fs) (2)
式(2)中,Cfifo为接收缓冲区的容量,Ctlp为PCI Express软核的事务层报文接收缓冲区容量(具体数值与软核配置有关,一般不超过32KB),fdllp为数据链路层报文的最大更新频率(具体数值与软核配置有关,一般不超过1MHz),fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。
所述步骤4)中将接收到的PCI Express报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃时,丢弃比例满足式(3)的函数关系;
M/(M+N)=fl/fs (3)
式(3)中,M为连续接收的报文个数,N为连续丢弃的报文个数,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率;
同时所述丢弃比例还满足式(4)和(5)的函数关系:
fl/fs=M/(M+N)>8/(delaytx+delaylink+delayrx+16) (4)
fl/fs>1/3 (5)
式(4)中,delaytx是发送方的延迟、delaylink是物理链路的延迟、delayrx是接收方的延迟,delaytx、delaylink、delayrx都是以在标准PIPE接口上发送一个有序集报文的时间作为单位时间。
本发明基于异步物理层接口的PCI Express接口芯片验证方法具有下述优点:
(1)本发明能够实现与标准PCI Express设备的通信,通过异步物理层接口实现的PCIExpress软核与物理层之间的频率差匹配,采用本发明后串行链路的发送接收速率均未改变,异步物理层接口对数据的删除***过程保证了与PCI Express协议的兼容性,因此能够与PCIExpress设备正常通信,能够实现PCI Express接口芯片降频硬件验证。
(2)本发明基于标准PIPE接口,未增加或减少任何信号,待验证的FPGA代码能够与之直接相连,不需要做任何改动,因此待验证的PCI Express软核和用户逻辑代码不需要做任何修改,具有实现简单方便、兼容现有测试代码的优点。
(3)本发明不需要特别硬件的支持,能够作为一个模块直接与待验证的代码综合实现于通用FPGA验证平台,具有通用性好、实现简单、资源占用率低的优点。
附图说明
图1为现有技术中PCI Express接口芯片的结构示意图。
图2为本发明实施例的方法流程示意图。
图3为本发明实施例中PCI Express接口芯片***异步物理层接口后的结构示意图。
图4为本发明实施例中FPGA验证卡(降频PCI Express设备)与服务器(标准PCI Express设备)通过PCI Express金手指和PCI Express插槽相连的连接结构示意图。
图5为本发明实施例中异步物理层接口的框架结构示意图。
具体实施方式
如图2和图3所示,本实施例基于异步物理层接口的PCIe接口芯片硬件验证方法的实施步骤如下:
1)构建具有标准PCI Express接口的FPGA硬件平台,将PGA硬件平台通过标准PCIExpress接口与带有PCI Express根节点设备的主机相连;
2)在待验证的PCI Express接口芯片ASIC代码中的PCI Express软核与物理层之间***用于匹配频率差的异步物理层接口(如图3所示),异步物理层接口包含发送缓冲区、接收缓冲区、降频PIPE接口和标准PIPE接口,异步物理层接口通过降频PIPE接口与FPGA硬件平台相连、通过标准PIPE接口与物理层相连;
3)将待验证的PCI Express接口芯片ASIC代码迁移到FPGA硬件平台综合实现,并根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率;
4)使用测试程序通过FPGA硬件平台对PCI Express接口芯片的PCI Express软核和用户逻辑进行功能测试;当PCI Express软核通过异步物理层接口向物理层发送PCI Express报文时,PCI Express软核通过降频PIPE接口将PCI Express报文写入异步物理层接口的发送缓冲区,异步物理层接口将发送缓冲区缓存PCI Express报文通过标准PIPE接口发送给物理层,同时当异步物理层接口的发送缓冲区为空时,异步物理层接口检测链路的握手状态,如果握手未成功则在标准PIPE接口上***SKP有序集报文来补偿PCI Express软核与物理层之间的频率差,如果握手已经成功则在标准PIPE接口上***LIDLE逻辑空报文来补偿PCI Express软核与物理层之间的频率差;当物理层通过异步物理层接口向PCI Express软核发送PCIExpress报文时,异步物理层接口检测链路的握手状态,如果握手未成功则将接收到的PCIExpress报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃,并将未丢弃的PCI Express报文写入异步物理层接口的接收缓冲区,如果握手已经成功则判断接收到的PCI Express报文的类型,当PCI Express报文是链路层报文或者事务层报文时写入异步物理层接口的接收缓冲区,当PCI Express报文是逻辑空报文时全部丢弃,异步物理层接口将接收缓冲区缓存PCI Express报文通过降频PIPE接口发送给物理层。
本实施例在PCI Express物理层接口上(PHY Interface of PCI Express,简称PIPE接口)实现降频功能,不需要修改PCI Express软核和用户逻辑代码,降频后的PCI Express端设备能够与PCI Express根设备之间正常通信,采用软核的方式实现,资源占用率低,能够直接与待验证的代码综合到FPGA验证平台上实现。
如图4所示,本实施例中的具有标准PCI Express接口的FPGA硬件平台为FPGA验证卡,将FPGA验证卡插到服务器的PCI Express插槽上,从而与服务器(带有PCI Express根节点设备的主机)主板上的标准PCI Express设备相连,构成一个PCI Express接口芯片FPGA验证***的FPGA硬件平台,以便验证PCIExpress接口芯片的功能。
本实施例中,步骤3)中根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率时,降频PIPE接口的工作频率取值规则如式(1)所示;
fl/fs=1,4/5,3/4,7/10,2/3,3/5,1/2,2/5 (1)
式(1)中,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。本实施例中,标准PIPE接口的工作频率fs为125MHz,fl/fs的取值为3/5、1/2、2/5时则分别对应降频PIPE接口的频率为75MHz、62.5MHz、50MHz,能够满足PCI Express软核使用FPGA进行硬件验证的频率要求。将待验证的PCI Express接口芯片ASIC代码迁移到FPGA硬件平台综合实现时,可以采用综合工具进行综合实现,根据PCI Express能够被综合到的最高频率设置降频PIPE接口的工作频率。
本实施例中,异步物理层接口的接收缓冲区容量满足式(2)的函数关系;
Cfifo>Ctlp*(1-(fl-fdllp)/fs) (2)
式(2)中,Cfifo为接收缓冲区的容量,Ctlp为PCI Express软核的事务层报文接收缓冲区容量(具体数值与软核配置有关,一般不超过32KB),fdllp为数据链路层报文的最大更新频率(具体数值与软核配置有关,一般不超过1MHz),fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。PCIe链路握手成功以后,PIPE接口上只发送两种类型的报文:事务层报文(Transaction Layer Packet,简称TLP)和数据链路层报文(Data Link Layer Packet,简称DLLP),这两种报文都作为有效数据写入接收缓冲区,写入的频率为fs,同时又被降频的PCIe软核读出,读出的频率为fl,由于读出的速度比写入的速度慢,因此会有部分报文缓冲在异步PIPE接口中。数据链路层报文是周期性发送的,最大更新频率为fdllp,因此用于实际处理TLP报文的速率为(fl-fdllp),而PCI Express软核所能接收的事务层报文总容量受接收缓冲容量Ctlp限制,因此只要接收缓冲区的容量Cfifo>Ctlp*(1-(fl-fdllp)/fs),就能够防止接收缓冲区溢出。
本实施例中,步骤4)中将接收到的PCI Express报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃时,丢弃比例满足式(3)的函数关系;
M/(M+N)=fl/fs (3)
式(3)中,M为连续接收的报文个数,N为连续丢弃的报文个数,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率;
同时丢弃比例还满足式(4)和(5)的函数关系:
fl/fs=M/(M+N)>8/(delaytx+delaylink+delayrx+16) (4)
fl/fs>1/3 (5)
式(4)中,delaytx是发送方的延迟、delaylink是物理链路的延迟、delayrx是接收方的延迟,delaytx、delaylink、delayrx都是以在标准PIPE接口上发送一个有序集报文的时间作为单位时间。
本实施例中,当发送缓冲区为空时,异步物理层接口会在标准PIPE接口上***一些PCIExpress规范定义的空闲报文:异步物理层接口在链路握手还未成功前***SKP有序集报文,链路握手成功后则***LIDLE逻辑空报文,以此来补偿异步物理层接口两边的频率差,保证标准异步物理层接口上的数据不中断;按照PCI Express协议规范,标准PCI Express设备收到空闲报文后会将其丢弃,因此***这些报文不会影响标准PCI Express设备正常工作。异步物理层接口将接收到的PCI Express报文通过标准PIPE接口写入异步物理层接口接收缓冲区。根据PCI Express规范,链路握手成功之前收到的PCI Express报文全部为有序集报文,为了匹配异步PIPE接口两边的频率差,需要对接收到的有序集报文按照降频PIPE接口的频率与标准PIPE接口的频率之间的比值进行丢弃,丢弃比例满足式(3)的函数关系。丢弃部分报文会影响到PCI Express协议的握手过程,根据PCI Express协议规范,在链路握手过程中状态转移需要满足两个条件:(1)收到8个连续的握手报文,(2)收到对方第一个握手报文后已经连续发送了16个同样的报文。为了使得丢弃部分报文不影响链路的握手过程,则最高能够丢弃报文的比例满足式(4)的函数关系,式(4)中,delaytx、delaylink、delayrx分别是发送方、物理链路、接收方的延迟,都是以在标准PIPE接口上发送一个有序集报文作为单位时间(对于16bit/125MHz的标准PIPE接口单位时间为64ns)。delaylink和delayrx是链路延迟和标准PCI Express设备的接收延迟,通常不可调节,delaytx是发送方的延迟(包括异步PIPE模块的延迟),因此通过调节延迟拍数可以改变最低工作频率。考虑到PCI Express协议的信用超时和重传超时等因素,fl/fs最小值应该大于1/3(16bit/125MHz的标准PIPE接口对应最低降频频率为41.67MHz),已经足够满足PCI Express软核验证的频率要求。
链路握手成功以后,异步物理层接口接收到的PCIExpress报文有三种:链路层报文、事务层报文和逻辑空报文,其中链路层报文和事务层报文是有效的PCI Express数据,逻辑空报文只是为了填充链路上的空闲时间,保证数据的连续性而发送的报文,丢弃逻辑空报文不会影响PCIExpress数据传输的正确性。异步物理层接口将接收到的链路层报文和事务层报文写入内部的接收缓冲区,逻辑空报文则全部丢弃,由于发送方能够发送的链路层报文和事务层报文数量受接收信用的控制,为了防止接收FIFO溢出,接收缓冲区容量满足式(2)的函数关系。异步物理层接口从接收缓冲区中读出链路层报文和事务层报文,并通过降频PIPE接口发送给PCI Experss软核,当接收缓冲区为空时,则发送逻辑空报文给PCI Experss软核。通过这种方式调节PCI Express链路层和事务层报文之间所填充的逻辑空报文的比例,从而补偿接收时异步物理层接口两边的频率差。
如图5所示,本实施例中异步物理层接口向上通过降频PIPE接口连接PCIExpress软核,向下通过标准PIPE接口连接物理层模块,异步物理层接口模块由四个部分构成。
(1)时钟模块
时钟模块将标准PIPE接口上输入的时钟通过频率综合器PLL进行分频,得到的降频时钟给待验证的PCIExpress软核使用,异步PIPE两边时钟比例可以取如下值:
降频PIPE时钟fl/标准PIPE时钟fs=1,4/5,3/4,7/10,2/3,3/5,1/2,2/5
这些取值的选择是为了保证在PCI Express握手过程中能够按照整数比均匀的***和删除报文,防止连续***和删除的报文数量过多影响PCI Express链路握手过程。
(2)状态与控制模块
状态与控制模块实现对物理层模块的控制和状态信号的采集,PIPE接口标准中所定义的信号除了PHYSTATUS和RXSTATUS信号以外,对以下信号(TXDETECTRX,POWERDOWN,TXELECIDLE,RXELECIDLE,RXPOLARITY,TXCOMPLIANCE,RXVLAID)不做任何处理,降频PIPE接口与标准PIPE接口上对应的信号直接相连;PHYSTATUS和RXSTATUS信号需要将物理层输出的phystatus和rxstatus信号进行扩展,以保证在慢速时钟域能够采到该信号,扩展后信号宽度比值取整后应该满足如下关系(将phystatus和rxstatus延迟四拍或在一起即可满足该条件):[Tl/Ts]>[fs/fl],Tl表示降频接口上PHYSTATUS和RXSTATUS的周期,Ts表示物理层接口输出的phystatus和rxstatus的周期。
(3)发送模块
发送模块将PCI Express软核生成的数据从慢速时钟域发送到快速时钟域,发送模块又分为以下三个子模块:
a)FIFO写入模块:用于在TXELECIDLE信号无效时将输入数据写入发送FIFO模块,同时将输入数据与PCI Express报文类型的识别标志进行比较(有序集标识为COM符号,数据链路层报文的标识为SDP/ENDB/ENDG符号,事务层报文的标识为STP/ENDB/ENDG符号,逻辑空报文为全零),得到当前数据的报文类型PKT_TYPE,根据PKT_TYPE可以判断报文的开始与结束,每次遇到报文尾标志时报文总数计数器PKT_NUM加1,将PKT_NUM转换为gray码(格雷码)后发送到快速时钟域供发送控制器模块使用。
b)发送FIFO模块:发送FIFO模块即为前述方法的发送缓冲区,用于保存待发送的数据,发送FIFO模块有一个空标志prog_empty,这个空标志prog_empty在发送FIFO模块中剩余的数据数量小于16(2个有序集的最大长度)时被置1。发送控制器模块从发送FIFO模块中读出的数据也首先与PCI Express报文类型的识别标志进行比较,得到当前数据的报文类型pkt_type,根据pkt_type判断报文的开始与结束,每次遇到报文尾标志时报文总数计数器pkt_num加1。
c)发送控制器模块:用于从FIFO中读出数据并发送给物理层。
发送控制器模块的工作过程分为以下几个步骤:
第一步:将读有效信号置0(即rd_en=0),报文跳过总数计数器置0(skp_num=0);
第二步:当TXELECIDLE信号无效且发送FIFO模块空标志prog_empty等于0时,发送控制器模块使能发送FIFO模块的读有效信号(rd_en等于1)开始读出数据并发送出去,直到prog_empty等于1并且当前输出的数据为一个有序集的头(报文类型pkt_type等于有序集标识COM),将读有效信号置0(rd_en等于0)转第三步;或者遇到LIDL报文则转到第四步。
第三步:连续发送SKP有序集报文,直到prog_empty等于0,转到第二步;
第四步:如果pkt_num小于PKT_NUM(发送FIFO模块是异步FIFO,报文计数要在异步FIFO的写入和读出端同时进行,写入端报文计数用PKT_NUM表示,读出端报文计数用pkt_num表示,通过比较这两个计数器的大小,可以知道异步FIFO中是否还有报文,因此这两个计数器用相同的名字,通过大小写区别)则rd_en等于1,从发送FIFO中连续读出数据并发送给物理层,当pkt_hum等于PKT_NUM时rd_en等于0转到第五步;
第五步:连续发送LIDL报文,每发送一个LIDL报文skp_num加1,当skp_num大于1000时***一个SKP有序集报文并将skp_num清0,直到pkt_num小于PKT_NUM时转第四步;
上述步骤中一旦TXELECIDLE信号有效则回到第一步。
(4)接收模块
接收模块分为以下三个子模块:
a)接收控制器模块:接收控制器模块(RECV_CONTROLLER)将接收到的数据进行过滤后写入接收FIFO模块。
接收控制器模块的工作过程分为以下几个步骤:
第一步:将接收数据与报文类型的识别标志进行比较(有序集标识为COM符号,DLLP标识为SDP/ENDB/ENDG符号,TLP标识为STP/ENDB/ENDG符号,逻辑空报文为全零),从而得到当前数据的报文类型rxpkt_type,根据rxpkt_type可以判断当前接收到的数据是报文开始、结束、还是处于报文中间;
第二步:如果当前收到的数据是有序集报文头(即rxpkt_type=COM),开始连续向接收FIFO模块中写入M个有序集报文(写使能信号wt_en等于1),然后丢弃N个有序集报文(写使能信号wt_en等于0),如果收到的数据是逻辑空报文则转到第三步;
第三步:向接收FIFO中连续写入M个逻辑空报文(写使能信号wt_en等于1),然后丢弃N个逻辑空报文(写使能信号wt_en等于0),直到当前数据是数据链路层报文头转到第四步;
第四步:如果收到的是有序集报文转到第二步,如果是数据链路层报文或事务层报文则写入接收FIFO模块,如果是逻辑空报文并且当前数据不是DLLP或事务层报文则丢弃;
上述步骤执行过程中一旦物理层输出的rxelecidle有效则直接回到第一步。
b)接收FIFO模块:接收FIFO模块即为前述方法的接收缓冲区,接收FIFO模块是标准的异步FIFO,接收FIFO模块对应设有一个用于记录存储空状态的空标志empty,当接收FIFO模块中的全部数据被读出后将空标志empty置1。
c)FIFO读出模块:当空标志empty等于0时接收FIFO的读使能信号有效,从接收FIFO模块中读出的数据直接输出,当空标志empty等于1时则输出逻辑空报文LIDL。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于异步物理层接口的PCIe接口芯片硬件验证方法,其特征在于实施步骤如下:
1)构建具有标准PCI Express接口的FPGA硬件平台,将所述FPGA硬件平台通过标准PCI Express接口与带有PCI Express根节点设备的主机相连;
2)在待验证的PCI Express接口芯片ASIC代码中的PCI Express软核与物理层之间***用于匹配频率差的异步物理层接口,所述异步物理层接口包含发送缓冲区、接收缓冲区、降频PIPE接口和标准PIPE接口,所述异步物理层接口通过降频PIPE接口与FPGA硬件平台相连、通过标准PIPE接口与物理层相连;
3)将所述待验证的PCI Express接口芯片ASIC代码迁移到所述FPGA硬件平台综合实现,并根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率;
4)使用测试程序通过所述FPGA硬件平台对PCI Express接口芯片的PCI Express软核和用户逻辑进行功能测试;当PCI Express软核通过异步物理层接口向物理层发送PCI Express报文时,PCI Express软核通过降频PIPE接口将PCI Express报文写入异步物理层接口的发送缓冲区,异步物理层接口将发送缓冲区缓存PCI Express报文通过标准PIPE接口发送给物理层,同时当异步物理层接口的发送缓冲区为空时,异步物理层接口检测链路的握手状态,如果握手未成功则在标准PIPE接口上***SKP有序集报文来补偿PCI Express软核与物理层之间的频率差,如果握手已经成功则在标准PIPE接口上***LIDLE逻辑空报文来补偿PCIExpress软核与物理层之间的频率差;当物理层通过异步物理层接口向PCI Express软核发送PCI Express报文时,异步物理层接口检测链路的握手状态,如果握手未成功则将接收到的PCIExpress报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃,并将未丢弃的PCI Express报文写入异步物理层接口的接收缓冲区,如果握手已经成功则判断接收到的PCI Express报文的类型,当PCI Express报文是链路层报文或者事务层报文时写入异步物理层接口的接收缓冲区,当PCI Express报文是逻辑空报文时全部丢弃,异步物理层接口将接收缓冲区缓存PCI Express报文通过降频PIPE接口发送给物理层。
2.根据权利要求1所述的基于异步物理层接口的PCIe接口芯片硬件验证方法,其特征在于,所述步骤3)中根据PCI Express接口芯片被综合的最高频率设置降频PIPE接口的工作频率时,降频PIPE接口的工作频率取值规则如式(1)所示;
fl/fs=1,4/5,3/4,7/10,2/3,3/5,1/2,2/5 (1)
式(1)中,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。
3.根据权利要求1所述的基于异步物理层接口的PCIe接口芯片硬件验证方法,其特征在于,所述异步物理层接口的接收缓冲区容量满足式(2)的函数关系;
Cfifo>Ctlp*(1-(fl-fdllp)/fs) (2)
式(2)中,Cfifo为接收缓冲区的容量,Ctlp为PCI Express软核的事务层报文接收缓冲区容量,fdllp为数据链路层报文的最大更新频率,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率。
4.根据权利要求1或2或3所述的基于异步物理层接口的PCIe接口芯片硬件验证方法,其特征在于:所述步骤4)中将接收到的PCI Express报文按照降频PIPE接口的工作频率和标准PIPE接口的工作频率之间的比值进行丢弃时,丢弃比例满足式(3)的函数关系;
M/(M+N)=fl/fs (3)
式(3)中,M为连续接收的报文个数,N为连续丢弃的报文个数,fl为降频PIPE接口的工作频率,fs为标准PIPE接口的工作频率;
同时所述丢弃比例还满足式(4)和(5)的函数关系:
fl/fs=M/(M+N)>8/(delaytx+delaylink+delayrx+16) (4)
fl/fs>1/3 (5)
式(4)中,delaytx是发送方的延迟、delaylink是物理链路的延迟、delayrx是接收方的延迟,delaytx、delaylink、delayrx都是以在标准PIPE接口上发送一个有序集报文的时间作为单位时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310057124.9A CN103164314B (zh) | 2013-02-22 | 2013-02-22 | 基于异步物理层接口的PCIe接口芯片硬件验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310057124.9A CN103164314B (zh) | 2013-02-22 | 2013-02-22 | 基于异步物理层接口的PCIe接口芯片硬件验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164314A true CN103164314A (zh) | 2013-06-19 |
CN103164314B CN103164314B (zh) | 2014-02-19 |
Family
ID=48587421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310057124.9A Active CN103164314B (zh) | 2013-02-22 | 2013-02-22 | 基于异步物理层接口的PCIe接口芯片硬件验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164314B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591844A (zh) * | 2016-03-08 | 2016-05-18 | 烽火通信科技股份有限公司 | 基于ptn芯片降频实现oam自动化验证的方法 |
WO2017204922A1 (en) * | 2016-05-24 | 2017-11-30 | Intel Corporation | Reduced pin count interface |
CN108027755A (zh) * | 2015-10-23 | 2018-05-11 | 英特尔Ip公司 | 支持采用外部输入/输出接口对测试、调试或追踪信息的传递的装置、***和方法 |
CN112711503A (zh) * | 2020-12-28 | 2021-04-27 | 北京同有飞骥科技股份有限公司 | 一种基于飞腾2000+cpu的存储测试方法 |
CN116303189A (zh) * | 2023-02-21 | 2023-06-23 | 芯启源(上海)半导体科技有限公司 | 用于FPGA原型和仿真的PCIe速度桥*** |
CN116737606A (zh) * | 2023-08-15 | 2023-09-12 | 英诺达(成都)电子科技有限公司 | 基于硬件仿真加速器的数据缓存方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535331A (en) * | 1987-09-04 | 1996-07-09 | Texas Instruments Incorporated | Processor condition sensing circuits, systems and methods |
CN1205788A (zh) * | 1995-12-21 | 1999-01-20 | 艾利森电话股份有限公司 | 用于设置集成电路的操作模式的方法和集成电路 |
-
2013
- 2013-02-22 CN CN201310057124.9A patent/CN103164314B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535331A (en) * | 1987-09-04 | 1996-07-09 | Texas Instruments Incorporated | Processor condition sensing circuits, systems and methods |
CN1205788A (zh) * | 1995-12-21 | 1999-01-20 | 艾利森电话股份有限公司 | 用于设置集成电路的操作模式的方法和集成电路 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11193973B2 (en) | 2015-10-23 | 2021-12-07 | Intel Corporation | Device, system and method to support communication of test, debug or trace information with an external input/output interface |
CN112214362A (zh) * | 2015-10-23 | 2021-01-12 | 英特尔Ip公司 | 支持采用外部输入/输出接口对测试、调试或追踪信息的传递的装置、***和方法 |
CN108027755A (zh) * | 2015-10-23 | 2018-05-11 | 英特尔Ip公司 | 支持采用外部输入/输出接口对测试、调试或追踪信息的传递的装置、***和方法 |
US11698412B2 (en) | 2015-10-23 | 2023-07-11 | Intel Corporation | Device, system and method to support communication of test, debug or trace information with an external input/output interface |
CN105591844B (zh) * | 2016-03-08 | 2019-03-08 | 烽火通信科技股份有限公司 | 基于ptn芯片降频实现oam自动化验证的方法 |
CN105591844A (zh) * | 2016-03-08 | 2016-05-18 | 烽火通信科技股份有限公司 | 基于ptn芯片降频实现oam自动化验证的方法 |
US11163717B2 (en) | 2016-05-24 | 2021-11-02 | Intel Corporation | Reduced pin count interface |
WO2017204922A1 (en) * | 2016-05-24 | 2017-11-30 | Intel Corporation | Reduced pin count interface |
US10706003B2 (en) | 2016-05-24 | 2020-07-07 | Intel Corporation | Reduced pin count interface |
US10198394B2 (en) | 2016-05-24 | 2019-02-05 | Intel Corporation | Reduced pin count interface |
CN112711503A (zh) * | 2020-12-28 | 2021-04-27 | 北京同有飞骥科技股份有限公司 | 一种基于飞腾2000+cpu的存储测试方法 |
CN112711503B (zh) * | 2020-12-28 | 2024-03-26 | 北京同有飞骥科技股份有限公司 | 一种基于飞腾2000+cpu的存储测试方法 |
CN116303189A (zh) * | 2023-02-21 | 2023-06-23 | 芯启源(上海)半导体科技有限公司 | 用于FPGA原型和仿真的PCIe速度桥*** |
CN116737606A (zh) * | 2023-08-15 | 2023-09-12 | 英诺达(成都)电子科技有限公司 | 基于硬件仿真加速器的数据缓存方法、装置、设备及介质 |
CN116737606B (zh) * | 2023-08-15 | 2023-12-05 | 英诺达(成都)电子科技有限公司 | 基于硬件仿真加速器的数据缓存方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103164314B (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164314B (zh) | 基于异步物理层接口的PCIe接口芯片硬件验证方法 | |
CN104809094B (zh) | Spi控制器及其通信方法 | |
CN102023956B (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN100471156C (zh) | 数据总线桥接器及其工作方法 | |
CN106612141A (zh) | 一种光纤通道协议通用仿真测试卡及其数据交互方法 | |
CN102708086B (zh) | 一种应用于usb3.0的弹性缓冲结构及方法 | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
CN103092175B (zh) | I2c主设备与从设备之间串行时钟线scl控制的方法及装置 | |
US7353300B2 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN108628784A (zh) | 串行通信器及串行通信*** | |
CN110445585A (zh) | 基于ppp数据帧组帧和解帧硬件加速器 | |
CN112328523A (zh) | 传输双倍速率信号的方法、装置及*** | |
CN201893806U (zh) | Fc时钟同步发生*** | |
CN202904568U (zh) | 一种应用于usb3.0的弹性缓冲结构 | |
CN103279442A (zh) | 一种高速互联总线的报文过滤***及方法 | |
CN106649184A (zh) | 适用于星载电子设备的异步通信串口指令快速应答方法 | |
CN103226531A (zh) | 一种双端口外设配置接口电路 | |
CN100462952C (zh) | 接口可配置的通用串行总线控制器 | |
Jusoh et al. | An FPGA implementation of shift converter block technique on FIFO for RS232 to universal serial bus converter | |
Pham-Thai et al. | A novel multichannel UART design with FPGA-based implementation | |
CN204143430U (zh) | 弹性先进先出存储器 | |
CN104156336A (zh) | 一种usb2.0接口芯片的控制方法 | |
CN111522770B (zh) | 基于fpga的参数化配置的spi控制器及使用方法 | |
CN115699668A (zh) | 宽弹性缓冲器 | |
CN100531189C (zh) | 实现替代通信协议的方法和主机接口装置 |
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 |