基于FPGA的PCIE控制器验证方法、装置及计算机设备与流程

文档序号:28102875发布日期:2021-12-22 12:08阅读:432来源:国知局
基于FPGA的PCIE控制器验证方法、装置及计算机设备与流程
基于fpga的pcie控制器验证方法、装置及计算机设备
技术领域
1.本发明涉及固态硬盘技术领域,特别是涉及一种基于fpga的pcie控制器验证方法、装置、计算机设备及存储介质。


背景技术:

2.计算机设备已经成为当今人们最具备生成力的实用工具,随着固态硬盘价格的下跌,固态硬盘越来越普及,nvme ssd简称ssd(solid state disk或solid state drive)以其优越的性能更是发展迅猛,各大电脑厂商纷纷将计算机设备中的硬盘做成ssd。
3.目前,在对固态硬盘进行soc芯片验证的过程中,由于eda验证的局限性,一般会配合使用fpga propotyping verification,由于是asic设计一般未对fpga进行优化,并且fpga速度一般都不高,但是pcie的速度非常高,其速度过高导致无法进行验证。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种基于fpga的pcie控制器验证方法、装置、计算机设备及存储介质。
5.一种基于fpga的pcie控制器验证装置,所述装置包括:
6.物理层传输模块,所述物理层传输模块用于将主机采集到的数据经过译码之后传送给第一速率转换模块;
7.第一速率转换模块,所述第一速率转换模块用于将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;
8.pcie控制模块,所述pcie控制模块用于根据第一速率转换模块输出的信号返回对应的控制信号;
9.第二速率转换模块,所述第二速率转换模块用于将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。
10.在其中一个实施例中,所述第一速率转换模块还用于:
11.获取从物理层传输模块输出的125m低位宽信号;
12.将所述125m低位宽信号经过非对称同步fifio转成62.5m高位宽信号;
13.将62.5m高位宽信号发送至所述pcie控制模块。
14.在其中一个实施例中,所述第二速率转换模块还用于:
15.获取从pcie控制模块输出的62.5m高位宽信号;
16.将所述62.5m高位宽信号经过非对称同步fifio转成125m低位宽信号;
17.将125m低位宽信号发送至所述物理层传输模块。
18.在其中一个实施例中,所述物理层传输模块还用于:
19.将所述第二速率转换模块发送的数据经过译码转换成标准的电气信号发送给主机。
20.一种基于fpga的pcie控制器验证方法,所述方法应用于如上述任一所述的基于
fpga的pcie控制器验证装置中,包括:
21.通过物理层传输模块将主机采集到的数据经过译码之后传送给第一速率转换模块;
22.第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;
23.pcie控制模块根据第一速率转换模块输出的信号返回对应的控制信号;
24.第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。
25.在其中一个实施例中,所述第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块的步骤还包括:
26.获取从物理层传输模块输出的125m低位宽信号;
27.将所述125m低位宽信号经过非对称同步fifio转成62.5m高位宽信号;
28.将62.5m高位宽信号发送至所述pcie控制模块。
29.在其中一个实施例中,所述第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块的步骤还包括:
30.获取从pcie控制模块输出的62.5m高位宽信号;
31.将所述62.5m高位宽信号经过非对称同步fifio转成125m低位宽信号;
32.将125m低位宽信号发送至所述物理层传输模块。
33.在其中一个实施例中,所述方法还包括:
34.将所述第二速率转换模块发送的数据经过译码转换成标准的电气信号发送给主机。
35.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
36.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
37.上述基于fpga的pcie控制器验证方法、装置、计算机设备及存储介质中,通过物理层传输模块将主机采集到的数据经过译码之后传送给第一速率转换模块;第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;pcie控制模块根据第一速率转换模块输出的信号返回对应的控制信号;第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。本发明在原有的架构的基础上,通过非对称同步的fifo进行速率的转换,使得pcie控制器工作在62.5m,即能够实现在fpga上验证asic pcie控制器。
附图说明
38.图1为一个实施例中基于fpga的pcie控制器验证装置的结构框图;
39.图2为传统技术中基于fpga的pcie控制器验证信号的传输示意图;
40.图3为本发明中基于fpga的pcie控制器验证信号的传输示意图;
41.图4为一个实施例中基于fpga的pcie控制器验证方法的流程示意图;
42.图5为另一个实施例中基于fpga的pcie控制器验证方法的流程示意图;
43.图6为再一个实施例中基于fpga的pcie控制器验证方法的流程示意图;
44.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
45.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
46.目前,在进行对ssd soc芯片的fpga原型验证过程中,按照asic的常规设计,pipe(physical interface for pcie express—pcie物理层接口)的速率位宽分别为:
47.pcie

gen1

2.5gbps(单lane):125m x 16bit;
48.pcie

gen2

5g bps(单lane):125m x 32bit;
49.pcie

gen3

8gbps(单lane):250m x 32bit;
50.pcie

gen4

16gbps(单lane):500m x 32bit(or 250m x 64bit);
51.asic pcie controller的设计无法在fpga上跑高速(一般100m以下)这些速度对fpga propotyping来说太高了,无法实现,gen1x4使用asic pcie controller都无法实现。在传统方法中,pcie controller也需要使用fpga适配的,耗费工作量大;或者fpga propotyping不验证asic pcie controller,而是使用专门的fpgapcie controller,带来的坏处是无法再fpga上验证asic pcie controller。
52.基于此,本发明提供了一种基于fpga的pcie控制器验证方法,旨在能够实现ssd fpga原型验证实现高速pcie的方法,并且能够在fpga上验证asic pcie contrller。
53.在一个实施例中,如图1所示,提供了一种基于fpga的pcie控制器验证装置,所述装置包括:
54.物理层传输模块101,用于将主机采集到的数据经过译码之后传送给第一速率转换模块;
55.第一速率转换模块102,用于将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;
56.pcie控制模块103,用于根据第一速率转换模块输出的信号返回对应的控制信号;
57.第二速率转换模块104,用于将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。
58.目前,参考图2所示的传统技术中基于fpga的pcie控制器验证信号的传输示意图中,其整体的功能模块以及描述如下:
59.pcie controller:pcie系统控制器,控制器是计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
60.pcie phy:物理层传输,负责将host(主机)采集到的数据,经过phy译码,传送给controller;将controller发送的数据,经过phy编码,转换成相关标准的电气信号送给
host。
61.由此可见,在传统的方案中,比如进行gen1x4,此时phy与controller之间信号的频率为125m,如果想要在fpga上验证pcie controller,速度过高,无法验证。
62.基于此,参考图3所示的本发明的基于fpga的pcie控制器验证信号的传输示意图中,主要是针对pcie标准接口pipe(physical interface for pci express:物理层接口)进行处理,通过非对称同步的fifo进行速率的转换,使pcie controller工作在62.5m。值得说明的是,两个时钟是完全同步的。
63.具体地的信号说明如下:
[0064][0065][0066]
在一个实施例中,第一速率转换模块102还用于:获取从物理层传输模块输出的125m低位宽信号;将所述125m低位宽信号经过非对称同步fifio转成62.5m高位宽信号;将62.5m高位宽信号发送至所述pcie控制模块。
[0067]
在一个实施例中,第二速率转换模块104还用于:获取从pcie控制模块输出的62.5m高位宽信号;将所述62.5m高位宽信号经过非对称同步fifio转成125m低位宽信号;将125m低位宽信号发送至所述物理层传输模块。
[0068]
在一个实施例中,物理层传输模块101还用于:将所述第二速率转换模块发送的数据经过译码转换成标准的电气信号发送给主机。
[0069]
具体地,在本方案中主要是针对pcie标准接口pipe(physical interface for pci express:物理层接口)进行处理,其中:
[0070]
tx:从pcie controller出来的62.5m高位宽的pipe接口经过非对称同步fifo,转成125m的pipe接口给phy。
[0071]
rx:从pcie phy出来的125m低位宽的pipe接口经过非对称同步fifo,转成62.5m pipe接口给pcie controller。
[0072]
在上述实施例中,通过物理层传输模块将主机采集到的数据经过译码之后传送给
第一速率转换模块;第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;pcie控制模块根据第一速率转换模块输出的信号返回对应的控制信号;第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。上述方案在原有的架构的基础上,通过非对称同步的fifo进行速率的转换,使得pcie控制器工作在62.5m,即能够实现在fpga上验证asic pcie控制器。
[0073]
在一个实施例中,如图4所示,提供了一种基于fpga的pcie控制器验证方法,该方法可应用于上述基于fpga的pcie控制器验证装置中,包括:
[0074]
步骤402,通过物理层传输模块将主机采集到的数据经过译码之后传送给第一速率转换模块;
[0075]
步骤404,第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块;
[0076]
步骤406,pcie控制模块根据第一速率转换模块输出的信号返回对应的控制信号;
[0077]
步骤408,第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块。
[0078]
在一个实施例中,如图5所示,提供了一种基于fpga的pcie控制器验证方法,该方法中第一速率转换模块将物理层传输模块输出的低位宽的pipe接口经过非对称同步fifo,转换成高位宽的pipe接口给pcie控制模块的步骤还包括:
[0079]
步骤502,获取从物理层传输模块输出的125m低位宽信号;
[0080]
步骤504,将125m低位宽信号经过非对称同步fifio转成62.5m高位宽信号;
[0081]
步骤506,将62.5m高位宽信号发送至pcie控制模块。
[0082]
在一个实施例中,如图6所示,提供了一种基于fpga的pcie控制器验证方法,该方法中第二速率转换模块将pcie控制模块输出的高位宽的pipe接口经过非对称同步fifo,转换成低位宽的pipe接口给物理层传输模块的步骤还包括:
[0083]
步骤602,获取从pcie控制模块输出的62.5m高位宽信号;
[0084]
步骤604,将62.5m高位宽信号经过非对称同步fifio转成125m低位宽信号;
[0085]
步骤606,将125m低位宽信号发送至物理层传输模块。
[0086]
在一个实施例中,该方法还包括:将第二速率转换模块发送的数据经过译码转换成标准的电气信号发送给主机。
[0087]
关于基于fpga的pcie控制器验证方法的具体限定可以参见上文中对于基于fpga的pcie控制器验证装置的限定,在此不再赘述。
[0088]
应该理解的是,虽然图4

6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4

6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0089]
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算
机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于fpga的pcie控制器验证方法。
[0090]
本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0091]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
[0092]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
[0093]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0094]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0095]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1