一种FPGA芯片、透传方法、逻辑测试模块和方法与流程
未命名
07-13
阅读:63
评论:0

一种fpga芯片、透传方法、逻辑测试模块和方法
技术领域
1.本发明涉及芯片技术领域,特别是涉及一种fpga芯片、透传方法、逻辑测试模块和方法。
背景技术:
2.在现有技术中,gpu芯片的集成度高,电路规模越大,对应所需设计的测试向量也越大,而现有的老化技术最大只能提供每通道24m pattern的向量深度,最大只能支持128个通道,这种规格下,带给芯片的老化覆盖率不足50%,但在实际使用中,往往老化用例覆盖率至少需要达到80%才具有测试老化的可靠性,否则未能够覆盖部分的内部模块和电路未来会带来质量风险。
3.现有技术中通过单个ddr存储器实现测试向量的存储,但由于ddr存储器的容量限制,仅能够实现单ddr存储器的每通道24m的向量深度,这远远不够支持80%的老化覆盖率,导致老化测试的可靠性不够。
4.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
技术实现要素:
5.本发明要解决的技术问题是现有技术所能够支持的测试向量的向量深度不够,导致芯片的老化覆盖率不高,老化可靠性不够。
6.本发明采用如下技术方案:第一方面,本发明提供了一种支持透传的fpga芯片,包括第一串行接口、第一控制模块、第二控制模块和第二串行接口;所述第一串行接口与第一控制模块连接,所述第一控制模块与所述第二控制模块连接,所述第二控制模块与所述第二串行接口连接;所述第一控制模块还用于与上级fpga芯片的相应控制模块连接,形成上联控制数据传输通道;所述第二控制模块用于与下级fpga芯片的相应控制模块连接,形成下联控制数据传输通道;通过所述上联控制数据传输通道和下联控制数据传输通道,实现读命令和/或写命令的透传;所述第一串行接口用于与上级fpga芯片的相应串行接口连接,形成上联读写数据传输通道;所述第二串行接口用于与下级fpga芯片的相应串行接口连接,形成下联读写数据传输通道;通过所述上联读写数据传输通道和下联读写数据传输通道,实现读数据和/或写数据的透传。
7.优选的,所述第一控制模块通过axi总线和apb总线与所述第二控制模块连接,所述axi总线用于形成中间读写数据传输通道,所述apb总线用于形成中间控制数据传输通道。
8.第二方面,本发明提供了一种透传方法,使用第一方面所述的支持透传的fpga芯片,所述方法包括:
所述第一控制模块根据上级fpga芯片下发的读命令或写命令,获取所述读命令或写命令中所携带的bank地址;根据所述bank地址对与所述fpga芯片连接的存储器进行寻址,若寻址得到所述bank地址不属于所述存储器,则将所述读命令或写命令传输给第二控制模块,所述第二控制模块将所述读命令或写命令通过下联控制数据传输通道透传给下级fpga芯片;若寻址得到所述bank地址属于所述存储器,则根据读命令或写命令,找到对应所述存储器中的目标地址,对所述目标地址进行读操作或写操作。
9.优选的,所述方法还包括:所述第二串行接口通过下联读写数据传输通道,接收来自下级fpga模块的读数据,将所述读数据传输至第二控制模块,所述第二控制模块将所述读数据传输给第一控制模块,所述第一控制模块将所述读数据传输给第一串行接口,所述第一串行接口通过所述上联读写数据传输通道将所述读数据透传给上级fpga芯片。
10.优选的,在fpga芯片预先设置芯片标志号,在所述读命令或写命令的bank地址中携带所述芯片标志号;所述根据所述bank地址对所述存储器进行寻址,具体包括:判断所述读命令或写命令中所携带的芯片标志号是否与所述存储器的芯片标志号一致,若一致,则寻址得到所述bank地址属于所述存储器,否则,寻址得到所述bank地址不属于所述存储器。
11.优选的,所述读命令包括bank地址、行地址和列地址,所述写命令包括bank地址、行地址和列地址。
12.第三方面,本发明提供了一种逻辑测试模块,包括主fpga芯片、多个从fpga芯片和多个存储器,所述主fpga芯片和所述多个从fpga芯片依次级联,每个fpga芯片与相应存储器连接,基于级联关系,将位于级联关系中间位置的从fpga芯片作为中间fpga芯片,各中间fpga芯片为第一方面所述的支持透传的fpga芯片,且各中间fpga芯片执行第二方面所述的透传方法;其中,所述主fpga芯片的串行接口与第一个从fpga芯片的第一串行接口相连接,所述主fpga芯片的控制模块与第一个从fpga芯片的第一控制模块相连接;在各中间fpga芯片中,上级fpga芯片的第二串行接口与下级fpga芯片的第一串行接口连接,上级fpga芯片的第二控制模块与下级fpga芯片的第一控制模块连接;最后一个中间fpga芯片的第二串行接口与最后一个从fpga芯片的串行接口连接,最后一个中间fpga芯片的第二控制模块与最后一个从fpga芯片的控制模块连接。
13.优选的,所述主fpga芯片包括pcie接口、控制模块和串行接口;所述控制模块与所述串行接口相连接,所述pcie接口与所述控制模块相连接;所述pcie接口用于与上位机相连接,以便于从所述上位机接收读命令或写命令,或将测试结果返回给上位机;所述控制模块用于根据所述读命令或写命令对相应存储器进行读操作或写操作,或将所述读命令或写命令传输给第一个从fpga芯片。
14.第四方面,本实施例提供了一种逻辑测试方法,使用第三方面所述的逻辑测试模块,所述方法包括:
在进行测试前,所述主fpga芯片接收来自于上位机的写命令,根据所述写命令,对所述主fpga芯片的存储器进行写操作,或对相应从fpga芯片的存储器进行写操作,以将各测试向量写入到主fpga芯片或从fpga芯片中,并向上位机返回相应的存储地址,以便于所述上位机在测试时,根据各存储地址生成对应的读命令;在进行测试时,所述主fpga芯片接收来自于上位机的读命令,根据所述读命令,从主fpga芯片的存储器中或从fpga芯片的存储器中读取相应的测试向量;根据所述测试向量进行待测芯片的测试,得到测试结果,将所述测试结果传输给上位机。
15.优选的,所述根据所述测试向量进行待测芯片的测试,得到测试结果,具体包括:根据所述测试向量生成测试波形和判断波形,将所述测试波形发送给待测芯片的测试向量输入端;接收来自于待测芯片的输出波形,将所述输出波形与所述判断波形相比对,得到测试结果;其中,将数据0和数据1转换为测试波形;数据0转换为低电平,数据1转换为高电平;将数据l、数据h和数据x转换为判断波形;数据l转换为低电平,数据h转换为高电平,数据x代表不对所述输出波形进行比对。
16.本发明通过提供一种可透传的fpga芯片以及相应的透传方法,并使用该芯片和该方法实现逻辑测试模块和逻辑测试方法,从而能够支持测试向量的向量深度扩展,进而根据测试需求进行相应的深度扩展,以确保芯片的老化覆盖率和老化可靠性,且在进行向量深度扩展的同时,无需对寻址逻辑进行改动,而是通过各fpga芯片内部的寻址逻辑实现数据的透传,从而增加了扩展的灵活性。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明实施例提供的一种支持透传的fpga的架构示意图;图2是本发明实施例提供的位于级联关系中的一种支持透传的fpga的架构示意图;图3是本发明实施例提供的一种透传方法的流程示意图;图4是本发明实施例提供的另一种透传方法的流程示意图;图5是本发明实施例提供的又一种透传方法的流程示意图;图6是本发明实施例提供的一种逻辑测试模块的架构示意图;图7是本发明实施例提供的另一种逻辑测试模块的架构示意图;图8是本发明实施例提供的一种逻辑测试方法的流程示意图;图9是本发明实施例提供的一种逻辑测试方法中测试波形、判断波形和待测芯片的输出波形的示意图;图10是本发明实施例提供的一种逻辑测试模块应用在实际应用场景中的示意图。
具体实施方式
19.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.本发明中术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
21.在本技术中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是直接相连,也可以通过中间媒介间接相连。此外,术语“耦接”可以是实现信号传输的电性连接的方式。
22.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
23.现有技术所能够支持的测试向量的向量深度不够,导致芯片的老化覆盖率不高,为了解决该问题,本发明实施例提供了一种支持透传的fpga(field-programmable gate array,现场可编程门阵列)芯片,如图1所示,包括第一串行接口、第一控制模块、第二控制模块和第二串行接口;其中,一个fpga芯片还对应一个存储器(图中未示出),所述存储器位于fpga芯片外部,通过存储器接口连接到fpga的数据总线(即用于第一控制模块与第二控制模块连接的数据总线),以实现该fpga芯片对存储器的读写控制。在一些实施方式中,如图2所示,所述第一串行接口和所述第二串行接口可以是serdes(serializer-deserializer,串行器和解串器)接口,更详细的,所述第一串行接口和所述第二串行接口可以是serdes接口中的gth(gigabyte transceiver-h,h型号的g比特收发器)接口,所述存储器可以是ddr(double data rate sdram,双倍速率同步动态随机存储器)存储器,所述第一控制模块和第二控制模块可以是ctrl(controller)模块,也称作gth的控制器,用于对第一gth接口或第二gth接口进行数据传输控制,所述存储器与第一控制模块连接的数据总线可以是axi(advanced extensible interface,高级可扩展接口)总线。所述第一串行接口与第一控制模块连接,所述第一控制模块与所述第二控制模块连接,所述第二控制模块与所述第二串行接口连接;所述第一控制模块用于与上级fpga芯片的相应控制模块连接,形成上联控制数据传输通道;所述第二控制模块用于与下级fpga芯片的相应控制模块连接,形成下联控制数据传输通道;通过所述上联控制数据传输通道和下联控制数据传输通道,实现读命令和/或写命令的透传;所述上级fpga芯片和所述下级fpga芯片均是与描述主体的fpga芯片级联且相邻的fpga芯片,根据读写命令的流向,以读写命令的来源方向作为上级,以读写命令的流向方向作为下级。所述上联控制数据传输通道用于与上级fpga芯片之间进行读写命令的传输,所述下联控制数据传输通道用于与下级fpga芯片之间进行读写命令的传输。
24.所述读命令和/或写命令的透传指的是将来自于上级fpga芯片的读写命令传输给下级fpga芯片,而不被自身所执行。所述读命令和写命令在后续也被称作控制数据。
25.所述第一串行接口用于与上级fpga芯片的相应串行接口连接,形成上联读写数据传输通道;所述第二串行接口用于与下级fpga芯片的相应串行接口连接,形成下联读写数
据传输通道;通过所述上联读写数据传输通道和下联读写数据传输通道,实现读数据和/或写数据的透传。所述上联读写数据传输通道用于与上级fpga芯片之间进行读写数据的传输,所述下联读写数据传输通道用于与下级fpga芯片之间进行读写数据的传输。所述读数据和/或写数据的透传指的是将来自于上级fpga芯片的读写数据传输给下级fpga芯片,或将来自于下级fpga芯片的读写数据传输给上级fpga芯片。
26.在此需要说明的是,上述描述均是基于级联关系中的中间fpga芯片作为描述主体进行描述的,以图2举例而言,存在3个fpga芯片,包括fpga芯片1、fpga芯片2和fpga芯片3,这3个fpga芯片构成级联,则上述描述是以fpga芯片2为描述主体进行的,所述上级fpga芯片、下级fpga芯片均是相对于描述主体的fpga芯片相对而言的,即所述fpga芯片1为所述fpga芯片2的上级fpga芯片,所述fpga芯片3为所述fpga芯片2的下级fpga芯片。
27.以如图1所示的fpga芯片为例,所述第一控制模块通过axi总线和apb(advanced peripheral bus,高级外围总线)总线与所述第二控制模块连接,所述axi总线用于形成中间读写数据传输通道,所述apb总线用于形成中间控制数据传输通道。所述上联读写数据传输通道、中间读写数据传输通道和下联读写数据传输通道组成了完整的读写数据透传通道,所述上联控制数据传输通道、中间控制数据传输通道和下联控制数据传输通道组成了完整的控制数据(即读写命令)透传通道。
28.所述第一控制模块与第一串行接口之间通过dfi(digital facility interface,数字设备接口)总线和apb总线连接,并进行时钟同步,所述第二控制模块与第二串行接口之间通过dfi总线和apb总线连接,并进行时钟同步,所述第一控制模块与上级fpga芯片之间通过i2c总线连接,所述第二控制模块与下级fpga芯片之间通过i2c(inter-integrated circuit,集成电路总线)总线连接。
29.本实施例所述的支持透传的fpga芯片通过在fpga芯片中设置两个控制模块、两个串行接口,并在两个控制模块之间进行连接,从而能够实现与两个方向的连接与通信,使在对自身的存储器进行控制的同时,还能够实现命令与数据的透传。
30.在本实施例所提供的上述一种支持透传的fpga芯片的基础上,本实施例还提供了一种透传方法,使用上述的支持透传的fpga芯片,如图3所示,所述方法包括:在步骤201中,所述第一控制模块根据上级fpga芯片下发的读命令或写命令,获取所述读命令或写命令中所携带的bank地址;其中,所述读命令包括bank地址、行地址和列地址,所述写命令包括bank地址、行地址和列地址。存储器的地址规则通常为包含多个bank,每个bank对应一个bank地址,且每个bank中包含多行和多列,每行对应一个行地址,每列对应一个列地址,从而可根据bank地址、行地址和列地址获取到精准的存储器访问位置。
31.在步骤202中,根据所述bank地址对与所述fpga芯片连接的存储器进行寻址,若寻址得到所述bank地址不属于所述存储器,则将所述读命令或写命令传输给第二控制模块,所述第二控制模块将所述读命令或写命令通过下联控制数据传输通道透传给下级fpga芯片。当在自身所对应的存储器中无法找到对应的bank地址时,则可认为所述读命令或写命令并非是用于自身的存储器的,则将其进行透传。
32.在步骤203中,若寻址得到所述bank地址属于所述存储器,则根据读命令或写命令,找到对应所述存储器中的目标地址,对所述目标地址进行读操作或写操作。当在自身所对应的存储器中找到对应的bank地址时,则认为所述读命令或写命令是用于自身的存储器
的。
33.在执行读命令后,通常还需进行读数据的返回,结合本发明实施例,如图4所示,将进一步融合本实施例中的关联步骤进行展示。
34.在步骤204中,所述第二串行接口通过下联读写数据传输通道,接收来自下级fpga模块的读数据,将所述读数据传输至第二控制模块,所述第二控制模块将所述读数据传输给第一控制模块,所述第一控制模块将所述读数据传输给第一串行接口,所述第一串行接口通过所述上联读写数据传输通道将所述读数据透传给上级fpga芯片。直至到达级联关系中位于最上级的fpga芯片,由最上级的fpga芯片进行读数据的处理或将读数据转发给其他模块,如在后续实施例内容中,将通过最上级的fpga芯片(即后续实施例中的主fpga芯片)发送给上位机,该部分将在后续实施例内容中详述,在此不加以赘述。
35.在一些实施方式中,由于不同fpga芯片所对应的存储器中可能具有同样的bank地址,当多个fpga芯片级联时,可能出现不同fpga芯片所对应的存储器中的bank地址重复,导致bank地址的寻址错乱,为了解决此问题,本实施例提供了一种优选的实施方式,具体包括:在fpga芯片预先设置芯片标志号,在所述读命令或写命令的bank地址中携带所述芯片标志号;其中,位于级联关系中的多个fpga芯片具有不同的芯片标志号。
36.所述根据所述bank地址对所述存储器进行寻址,如图5所示,具体包括:在步骤301中,判断所述读命令或写命令中所携带的芯片标志号是否与所述存储器的芯片标志号一致;在步骤302中,若一致,则寻址得到所述bank地址属于所述存储器;在步骤303中,否则,寻址得到所述bank地址不属于所述存储器。在一些实施方式中,所述芯片标志号是通过fpga上空闲的gpio(general-purpose input/output,通用输入输出端口)以及外部连接的上拉或下拉电阻决定的,上拉电阻到高电平表示为1,下拉电阻到低电平表示为0,由多个0、1组成一串编码,此编码为芯片标志号。fpga上电工作时,这组gpio上的高低电平状态就会自动就位,等待寻址命令来进行比对。如每个fpga都预留相同的8个gpio,fpga1的gpio1接上拉4.7k电阻到高电平,gpio2~8都接下拉电阻到低电平,则gpio[8:1]可组成编码00000001,作为fpga1的芯片标志号。此标志号可以在应用中根据需求临时调整变换。
[0037]
本实施例所述的透传方法通过使用第一控制模块进行透传的逻辑判断以及自身的存储器的控制,并使用第二控制模块进行控制数据或读写数据向下级fpga芯片的传输,从而实现了数据的透传,使多个fpga相互级联,实现多个存储器在同一读写逻辑下进行运作成为可能。
[0038]
在上述实施例中提供了一种支持透传的fpga芯片和一种透传方法的基础上,本实施例还提供了一种逻辑测试模块,如图6所示,包括主fpga芯片、多个从fpga芯片和多个存储器,所述主fpga芯片和所述多个从fpga芯片依次级联,每个fpga芯片与相应存储器连接。基于级联关系,将位于级联关系中间位置的从fpga芯片作为中间fpga芯片,各中间fpga芯片为上述的支持透传的fpga芯片,且各中间fpga芯片执行上述的透传方法;所述主fpga芯片即位于所述级联关系中的最上级的fpga芯片,以图2举例而言,当存在fpga芯片1、fpga芯片2和fpga芯片3依次级联时,fpga芯片1即为主fpga芯片,fpga芯片2和fpga芯片3即为从fpga芯片,其中,fpga芯片2又位于级联关系的中间位置,故fpga芯片2又为中间fpga芯片。
[0039]
其中,所述主fpga芯片的串行接口与第一个从fpga芯片的第一串行接口相连接,所述主fpga芯片的控制模块与第一个从fpga芯片的第一控制模块相连接;在各中间fpga芯片中,上级fpga芯片的第二串行接口与下级fpga芯片的第一串行接口连接,上级fpga芯片的第二控制模块与下级fpga芯片的第一控制模块连接;在此需要说明的是,此处的上级fpga芯片和下级fpga芯片是针对两个fpga芯片而言的,以图2为例,对fpga芯片1和fpga芯片2来说,fpga芯片1为fpga芯片2的上级fpga芯片,fpga芯片2为fpga芯片1的下级fpga芯片。
[0040]
最后一个中间fpga芯片的第二串行接口与最后一个从fpga芯片的串行接口连接,最后一个中间fpga芯片的第二控制模块与最后一个从fpga芯片的第一控制模块连接,以通过多个fpga芯片的存储器,提供更大的测试向量存储空间,增大测试向量的向量深度。在可选的实施例中,相邻fpga芯片的控制模块之间通过i2c总线连接。
[0041]
其中,所述主fpga芯片包括pcie接口、控制模块和串行接口;所述控制模块与所述串行接口相连接,所述pcie接口与所述控制模块相连接;所述pcie接口用于与上位机相连接,以便于从所述上位机接收读命令或写命令,或将测试结果返回给上位机;所述控制模块用于根据所述读命令或写命令对相应存储器进行读操作或写操作,或将所述读命令或写命令传输给第一个从fpga芯片。
[0042]
在一些实施方式中,如图7所示,所述主fpga芯片还包括测试逻辑电路,用于实现数据发送逻辑、数据解析逻辑、时序发生逻辑、向量判断逻辑和结果输出逻辑等,该部分将在后续实施例内容中进行详述,在此不加以赘述。
[0043]
本实施例所述的逻辑测试模块通过多个fpga芯片级联,并在级联关系的中间位置使用上述的支持透传的fpga芯片,从而实现多个存储器之间的级联关系,从而能够在同一套读写逻辑下,通过级联的fpga芯片的数量灵活调整所需存储空间的大小,即使在存储空间发生改变时,依旧无需对上层的读写逻辑进行改动,实现存储空间的灵活可调。
[0044]
在提供了上述的一种逻辑测试模块的基础上,本实施例还提供了一种逻辑测试方法,使用上述的逻辑测试模块,如图8所示,所述方法包括:在步骤401中,在进行测试前,所述主fpga芯片接收来自于上位机的写命令;在步骤402中,根据所述写命令,对所述主fpga芯片的存储器进行写操作,或对相应从fpga芯片的存储器进行写操作,以将各测试向量写入到主fpga芯片或从fpga芯片中,并向上位机返回相应的存储地址,以便于所述上位机在测试时,根据各存储地址生成对应的读命令;在步骤403中,在进行测试时,所述主fpga芯片接收来自于上位机的读命令;在步骤404中,根据所述读命令,从主fpga芯片的存储器中或从fpga芯片的存储器中读取相应的测试向量;根据所述测试向量进行待测芯片的测试,得到测试结果,将所述测试结果传输给上位机。
[0045]
在可选的实施方式中,所述根据所述测试向量进行待测芯片的测试,得到测试结果,具体包括:根据所述测试向量生成测试波形和判断波形,将所述测试波形发送给待测芯片的测试向量输入端;接收来自于待测芯片的输出波形,将所述输出波形与所述判断波形相比对,得到
测试结果;其中,将数据0和数据1转换为测试波形;数据0转换为低电平,数据1转换为高电平;将数据l、数据h和数据x转换为判断波形;数据l转换为低电平,数据h转换为高电平,数据x代表不对所述输出波形进行比对。
[0046]
以图9举例而言,根据测试向量中的数据01100010转换得到测试波形,根据测试向量中的数据lhxxhhlh转换得到判断波形,其中,x所对应位置可填充高电平、低电平,或不输出电平,若待测芯片的输出波形如图9所示,将待测芯片的输出波形与所述判断波形相比对可得,除对应判断波形的x所在位置以外,输出波形的其他位置均与判断波形一致,则可得到测试结果为待测芯片正常,否则,如若待测芯片的输出波形在对应判断波形h位置为低电平时,则输出波形与判断波形不一致,待测芯片异常,其中,判断波形x位置所对应的待测芯片的输出波形既可以是高电平也可以是低电平,由于不对该位置进行比对判断,故不对待测芯片的测试结果产生影响。
[0047]
所述上位机在向各fgpa芯片的存储器中写入测试向量时,在上位机中存储对应的存储地址,同样的,在进行测试时,上位机根据测试需求和所述存储地址,在下发的读命令中携带对应的存储地址(即bank地址、行地址和列地址),从而从相应fpga芯片的存储器中获取测试向量。
[0048]
本实施例通过将上述的逻辑测试模块应用于芯片的测试场景,从而能够增大测试向量的向量深度,从而覆盖芯片中的更大规模的电路,提高老化覆盖率,确保芯片测试的有效性。
[0049]
在一些实施方式中,芯片的测试还可能存在顺序要求,如要求相应测试向量先执行,相应测试向量后执行,结合该具体的使用场景,本实施例还提供了以下优选的实施方式,具体包括:将需要顺序执行的多个测试向量作为一个测试向量组,将该测试向量组中的各测试向量按照执行顺序连续存储,如按照执行顺序存储在单个fpga芯片的存储器中,或按照各fpga芯片之间的级联关系,在相邻的fpga芯片的存储器中存储。在本实施例中,各fpga芯片以串联的形式相互级联,当上一个fpga芯片的存储器写满时,则在下一个fpga芯片的存储器中进行存储;举例而言,若存在一个测试向量组,该测试向量组group包含5个需要顺序执行的测试向量a、b、c、d和e,即group={a,b,c,d,e},若将a和b存储在ddr1(即从fpga芯片1的存储器)中后,由于ddr1的存储空间已耗尽,则将c、d和e存储在与fpga芯片1直接连接的fgpa芯片2所对应的存储器ddr2中。
[0050]
并在上位机存储对应的存储地址时,存储该测试向量组的存储首地址(即测试向量组中第一个测试向量的存储地址),以及各个测试向量的存储地址相对于上一个测试向量的存储地址的偏移量,所述偏移量用于标识测试向量在存储器内的存储地址之间的偏移,并存储最后一个测试向量的长度,所述长度用于标识相应测试向量所占用的空间大小;依旧以将同一测试向量组中的测试向量a和b存储在ddr1,c、d和e存储在ddr2中为例,则在存储该测试向量组的存储地址时,可存储如下信息:(p_a)、(len_a)、(len_b)、(len_c)和(len_d,len_e),其中,p_a代表p_a地址所在位置存储有a,b紧跟a存储,故b的存储地址相对p_a的偏移量为len_a(即a的长度),c存储在ddr2中,则相对b的偏移量为len_b(即b的长度),依次类推,直至e为该测试向量组的最后一个测试向量,存储其长度len_e。
[0051]
在此需要说明的是,所述基本偏移量为len_a、len_c等均是为了描述便利而使用
的,而并非实际使用中使用测试向量的长度作为偏移,而是基于存储器的存储结构特性分析得到的。
[0052]
在进行测试向量的读取时,上位机仅下发一次读命令,在该读命令中携带将该测试向量组的所有测试向量的地址信息,后续无需进行控制,而是由各fpga芯片进行持续读取,fpga芯片根据各测试向量的芯片偏移量和基本偏移量进行测试向量的读取,具体包括:当相应fpga芯片寻址得到测试向量组的第一个测试向量位于自身的存储器时,从自身的存储器中读取第一个测试向量,并依次向后进行偏移,在偏移过程中进行测试向量的读取,直至偏移量达到第二个测试向量的存储位置,进行第二个测试向量的读取,依次类推,直至读取测试向量组的最后一个测试向量完成,或读取到存储器的末尾,但仍未完成测试向量组的最后一个测试向量的读取时,将所述读命令下发给下一个fpga芯片,以便于下一个fpga芯片进行后续读取。
[0053]
由于多个fpga芯片以串联的形式进行级联,当对存储在末级的fpga芯片的测试向量进行读取时,需要经过中间的各个从fpga芯片,由于其传输路径长,且需要经过多个接口,每个接口与接口之间的传输又有一定的延时,所以末级fpga芯片的ddr中的数据读取耗费时间相对较长,即在级联关系中,越上级的fpga芯片的ddr数据读取时间越短,越下级的fpga芯片的ddr数据读取时间越短,主fpga芯片读取时间最短,末级fpga芯片读取时间最长。而在实际使用中,为了对大批量、不同类型的待测芯片进行测试,一个逻辑测试模块可能会被复用到多种待测芯片的测试中,而为了适用于多种待测芯片,往往会预先将各种类待测芯片所需的测试向量均存储到逻辑测试模块中,根据待测芯片的类型,选择性地读取相应测试向量,进行待测芯片的测试,为了提高测试的效率,结合上述实施例,本实施例还提供了一种优选的实施方式,具体包括:在进行大量的待测芯片的测试过程中,统计各测试向量的调用频率(即读取频率),每间隔预设时间段,根据各测试向量的调用频率统计结果,将调用频率高的测试向量向上级fpga芯片中迁移,将调用频率低的测试向量向下级fpga芯片中迁移,所述预设时间段由本领域技术人员根据经验分析得到,如选用待测芯片的一个或多个测试周期作为预设时间段。其中,对于测试向量组,以测试向量组中每个向量的调度频率的平均值作为测试向量组的调度频率,对测试向量组进行整体的调度迁移。
[0054]
在此还提供了一种可选的测试向量迁移的方法,具体包括:为每一个fpga芯片预设相应的调度频率范围(包括调度频率上限和调度频率下限),如当一个主fpga芯片与4个从fpga芯片串联时,如预设相应的调度频率上限和调度频率下限如下表所示:将相应fpga芯片对应的存储器中超出对应调度频率范围的测试向量作为目标测试向量,从主fpga芯片开始,依次计算各fpga芯片对应调用频率范围内的所有目标测试向量的总体积,根据所述总体积,判断相应fpga芯片的存储器能否存储对应调度频率范围内的所有目标测试向量。
[0055]
若能够存储,则直接将对应调度频率范围内的所有目标测试向量迁移到对应的fpga芯片的存储器中;若无法存储对应调度频率范围内的所有目标测试向量,则按照调度
频率对调度频率范围内的目标测试向量进行排序,优先将调度频率高的目标测试向量迁移至对应fpga芯片的存储器中,将该调度频率范围内的剩余目标测试向量(即为迁移到对应fpga芯片的存储器中的目标测试向量)与下一级调度频率范围内的目标测试向量一同参与下一级调度频率范围内的目标测试向量的迁移过程,其中,在进行排序时,将上一级未进行迁移的目标测试向量优先排序。
[0056]
举例而言,若位于[8,20]调度频率区间内的目标测试向量有40个,主fpga芯片的存储器的剩余空间无法支持存储全部40个测试向量,则按照调度频率由高到低的顺序,优先将调度频率高的30个测试向量存储到主fpga芯片的存储器中,而剩余的10个测试向量则与(6,18]调度频率区间内的目标测试向量一同参与迁移,若(6,18]调度频率区间内的目标测试向量一共有15个,而从fpga1芯片的存储器无法支持全部存储(6,18]调度频率区间内15个测试向量和[8,20]调度频率区间内的剩余的10个目标测试向量,则按照调度频率进行排序,其中,[8,20]调度频率区间内的剩余的10个目标测试向量的调度频率在排序时始终高于(6,18]调度频率区间内15个测试向量,使从fpga1芯片的存储器优先存储[8,20]调度频率区间内的剩余的10个目标测试向量,并使从fpga1芯片的存储器未能够存储的目标测试向量参与从fpga2芯片所对应调度频率范围内的目标测试向量的迁移,其迁移思路与主fpga芯片以及从fpga1芯片所对应调度频率范围内的目标测试向量的迁移基于同一构思实现,在此不加以赘述,直至对所有目标测试向量迁移结束。
[0057]
在优选的实施方式中,由于进行测试向量的迁徙同样需要花费一定的时间,可能影响到芯片测试的进度,故还可根据测试向量的迁移成本(在本实施例中主要表现为测试向量迁移所需的时间成本)、测试向量的调用频率、各存储器的存储空间大小和测试向量的调用成本,综合判断是否进行测试向量的迁移,以及测试向量的迁移位置,具体包括:计算迁移后的总调用成本,计算迁移后相应存储器的存储空间大小,计算迁移所耗费的总迁移成本;其中,m为测试向量的数量,i代表第i个测试向量,n为用于存储测试向量的存储器的数量,j代表第j个存储器,代表当将测试向量存储在第j个存储器中时所对应的调用成本,在实际使用中可使用第j个存储器的数据读取时间作为,代表第i个测试向量的调用频率,代表第i个测试向量在迁移后是否存储在第j个存储器中,其中,当第i个测试向量在迁移后存储在第j个存储器中时,,否则,。代表第i个测试向量的大小,代表迁移后第j个存储器中存储向量所占用的总存储空间大小;为第i个测试向量的迁移成本,若需要对第i个测试向量进行迁移,则,其中,由于迁移过程通常为先读取测试向量,再写入测试向量,故迁移成本为前后各存储器的迁移成本的和,为第i个测试向量在迁移前所在存储器的迁移成本,在实际使用中可使用迁移前所在存储器的数据读取时间替代,为第i个测试向量在迁移后所在存储器的迁移成本,在实际使用中可使用迁移后所在存储器的数据读取时间替代;否则,0。
[0058]
以作为约束函数,以最小为约束函数,建立迁移模型,对所述迁移模型进行求解,得到各测试向量的迁移后存储位置,若迁移后存储位置与当前存储位置不同,则进行测试向量的迁移;其中,为第j个存储器可用于存储测试向量的存储空间大小,g为迁移与调度的权衡值。所述迁移模型可以是粒子群算法pso模型,k为由本领域技术人员根据经验分析得到的预设系数。
[0059]
在该实施方式下,可实现迁移成本与调用成本的平衡控制,从而在降低测试向量迁移时间的情况下,提高测试向量的调用效率。
[0060]
在此需要说明的是,在上述实施例内容中所述的读命令并非代表常规意义上的读命令,而是指代用于读数据的命令的统称,所述写命令也并非代表常规意义上的写命令,而是用于写数据的命令的统称,在常规意义上,往往用于读数据或用于写数据的命令包含两类,一类为行激活,其中包含bank地址和行地址,另一类被称作读命令或写命令,包含列地址和具体的操作命令,在后续实施例中,将以常规意义上的读命令和写命令进行后续实施例内容的描述。
[0061]
下面将基于上述实施例所描述的逻辑测试模块和逻辑测试方法的基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
[0062]
以如图10所示的gpu芯片测试场景为例,该gpu芯片测试场景包括设备工作站以及与所述设备工作站连接的芯片测试模块,在所述设备工作站中应用上述实施例中所述的逻辑测试模块(即图10中的数字逻辑测试模块),图10中的控制总线为apb总线,数据总线为axi总线。该逻辑测试模块使用上述实施例所述的逻辑测试方法,所述逻辑测试模块如图7所示,包括1个主fpga芯片、若干从芯片以及多个ddr存储器。
[0063]
其中,多个从fpga芯片用于扩大pattern(即上述实施例中的测试向量)的容量,以及fpga芯片之间serdes接口的级联作为芯粒(chiplet),来确保主fpga芯片可以实时快速的访问任何一个从fpga芯片的ddr存储器,预先将pattern按设计连续性存放到不同的ddr存储器中,从而能快速将从fpga芯片的ddr存储器中的数据读取到主fpga芯片中用于实时测试,避免pattern不连续的问题。所述主fpga芯片中还包括数据解析逻辑、时序发生逻辑、数据发送逻辑、向量判断逻辑和结果输出逻辑,这些逻辑通过相应的电路实现。
[0064]
将pattern的数据存储到ddr存储器中,或处理器从ddr存储器中读取出pattern的数据均是基于ddr寻址的方式实现的。为了读取特定单元格的数据,在寻址时要首先确定是哪一个bank,然后在这个选定的bank中进行行列的寻址。在实际工作中,bank地址与相应的行地址是同时发出的,此时这个命令称之为“行有效“或者“行激活”。在此之后,发送列地址寻址命令和具体的操作命令(读或写),这两个命令也是同时发送的。行列地址是可以复用的,一般来说ddr芯片的地址线为a0~a15,低地址线会被行列复用。
[0065]
以k4b4g1646b 4gbit 256mb x 16bit的ddr内存芯片为例,a0~a14用做行地址,a0~a9用做列地址,这款芯片同时含有b0~b2用来选择bank。在实际工作中,bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(row active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为trcd,即ras to cas delay(ras至cas延迟,ras就是行地址选通脉冲,cas就是列地
址选通脉冲),我们可以理解为行选通周期。trcd是ddr的一个重要时序参数,广义的trcd以时钟周期(tck,clock time)数为单位,比如trcd=3,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,ddr3-800,trcd=3,代表30ns的延迟。接下来,相关的列地址被选中之后,将会触发数据传输。
[0066]
上位机启动后,将pattern数据按顺序通过主fpga芯片的pcie接口发送到主fpga芯片,并存储至主fpga芯片的ddr地址空间,或透传至相应从fpga芯片的ddr地址空间,上位机会记录每行pattern数据存放的ddr地址。ddr地址所占的内存非常小,我们在上位机中定义每行pattern对应的ddr地址,ddr地址存储到上位机中。
[0067]
当对芯片进行老化测试时,运行上位机中的配套老化软件,在该老化软件中,定义发送待测pattern时的硬件动作为:上位机发出启动指令
ꢀ‑
》启动主fpga的各个逻辑
ꢀ‑
》上位机开始进行ddr寻址
ꢀ‑
》读取相应的pattern数据,即从相应ddr的相应地址中获取pattern数据,将pattern数据透传给主fpga芯片。如当寻址地址0x1时,从ddr对应的0x1地址中获取数据,通过内部总线传输,其中,根据pattern数据选择性地将其中的相应数据传输给发送逻辑或向量判断逻辑,其中,将0和1的数据则传输给数据发送逻辑,数据发送逻辑接收到0、1数据则自动向io(即与待测芯片连接的端口)抛送0、1数据对应的波形(即测试波形,0代表低电平,1代表高电平)(发送和接收的波形在上位机向ddr存储数据时,同时将定义的波形存放到数据解析逻辑和时序发生逻辑中);将l、h和x的数据转换为判断波形;其中,数据l转换为低电平,数据h转换为高电平,数据x代表不对所述输出波形进行比对;将判断波形传输到向量判断逻辑,向量判断逻辑简单来说是个比较器,将待测芯片发送给主fpga的信号作为比较端的输入,另外一端比较端的输入是从ddr寻址获取到的当前周期的波形(即由l、h和x数据所转换的判断波形),比较器的输出给到结果判断逻辑来判断本周期内接收到的信号是否为我们所期待的信号,从而输出测试结果,上述所有的信号相关的逻辑共用一个时钟。
[0068]
上述pattern数据的处理规则可以通过上位机在存储pattern数据的时候存放到特定的地址范围,以便于后续进行测试时按照该处理规则进行待测芯片的测试。
[0069]
为了扩充pattern的存储大小,设计了主fpga+多个从fpga的芯粒系统。如图6所示,主fpga内部pattern数据走axi总线,其他控制数据走apb总线,设计自定义chiplet的协议搭建控制模块电路(即上述的逻辑测试模块),利用fpga自身的gth高速接口作为fpga之间的高速数据传输接口,用于传输pattern数据。两颗fpga之间通过i2c连接,用于交互及协商,用于控制数据的传输,使上位机可以通过pcie访问主fpga,再通过i2c间接访问到从fpga。从fpga芯片2和从fpga芯片1之间即是复用的从fpga芯片1和主fpga的连接方式,以该方式依次级联多颗fpga,可以实现将pattern数据依次存放在多颗fpga的存储逻辑,并能实时调用。在此需要说明的是,出于附图的清楚性考虑,在图6和图7中均未示出相应的从fpga芯片2和从fpga芯片3等中间fpga芯片,而是以省略号进行替代,但并不代表这些中间fpga芯片不存在。
[0070]
在进行芯片的老化测试前,eda软件输出的pattern文件及对应的时序文件从上位机电脑load到主fpga中;主fpga的控制逻辑控制数据解析逻辑解析pattern文件,以8个连续波形作为1个byte的方式存到存储逻辑ddr0中,记录每行pattern对应的ddr存放地址;以使用128个channel为例,ddr0选用32g容量,除去系统及其他逻辑模块所需要的8g,则ddr0
可存储的pattern大小为(32-8)*1024/128/8=24m;pattern大于24m的部分,由上位机的控制逻辑控制,通过主fpga内部数据总线,传到serdes接口,再通过从fpga芯片1的第一组serdes接口(即第一串行接口)输入到从fpga芯片1的数据总线,然后存到存储逻辑ddr1中,形成chiplet单元;各从fpga所需要的控制逻辑直接由主fpga产生,也无其他电路,从fpga芯片1的存储逻辑ddr1只需要提供2g给从fpga芯片1的寻址逻辑,剩余30g均可用于存放pattern。则主fpga与从fpga芯片1一同可提供总共54m的pattern容量。
[0071]
从fpga芯片1的第二组serdes接口(即第二串行接口)连接从fpga芯片2的第一组serdes接口(即第一串行接口),依次类推,一级一级往下接可实现多级扩容,每级可提供30m的pattern容量,6级扩容则可实现204m的pattern容量,具体级联的从fpga芯片的数量由本领域技术人员根据芯片的测试需求分析得到。
[0072]
在进行芯片测试时,上位机的控制逻辑通过pattern存储时存放每行pattern对应的ddr地址来读取pattern数据,按pattern行的顺序读取,存放到数据发送逻辑和向量判断逻辑的缓存buffer中,数据发送逻辑每发送完1行pattern则自动将缓存中的往后更新1行,直至发完所有pattern。
[0073]
当主fpga的存储逻辑ddr0的pattern全部读取完成,正在缓存buffer中等待发完时,控制逻辑根据ddr地址开始访问从fpga芯片1的存储逻辑ddr1,并通过数据总线和chiplet读取到主fpga的buffer中;后续各级联的从fpga的数据传输逻辑与从fpga芯片1基于同一构思实现,在此不加以赘述。
[0074]
其中,各ddr设计为ddr4 3200m,最大传输带宽为25.6gb/s;chiplet的serdes接口设计为16通道(lane),每lane16gt/s,编码方式为128b/130b,最大吞吐量为31.508gb/s;chiplet的吞吐量大于ddr的最大传输带宽,pattern的外部发送速率为10mbps,数据可最快速度由从fpga传输到主fpga的数据发送逻辑中,故而不会存在buffer中的pattern已经发完后面的pattern还未接上的问题。
[0075]
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0076]
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
[0077]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种支持透传的fpga芯片,其特征在于,包括第一串行接口、第一控制模块、第二控制模块和第二串行接口;所述第一串行接口与所述第一控制模块连接,所述第一控制模块与所述第二控制模块连接,所述第二控制模块与所述第二串行接口连接;所述第一控制模块用于与上级fpga芯片的相应控制模块连接,形成上联控制数据传输通道;所述第二控制模块用于与下级fpga芯片的相应控制模块连接,形成下联控制数据传输通道;通过所述上联控制数据传输通道和所述下联控制数据传输通道,实现读命令和/或写命令的透传;所述第一串行接口用于与上级fpga芯片的相应串行接口连接,形成上联读写数据传输通道;所述第二串行接口用于与下级fpga芯片的相应串行接口连接,形成下联读写数据传输通道;通过所述上联读写数据传输通道和所述下联读写数据传输通道,实现读数据和/或写数据的透传。2.根据权利要求1所述的支持透传的fpga芯片,其特征在于,所述第一控制模块通过axi总线和apb总线与所述第二控制模块连接,所述axi总线用于形成中间读写数据传输通道,所述apb总线用于形成中间控制数据传输通道。3.一种透传方法,其特征在于,使用权利要求1或权利要求2所述的支持透传的fpga芯片,所述方法包括:第一控制模块根据上级fpga芯片下发的读命令或写命令,获取所述读命令或写命令中所携带的bank地址;根据所述bank地址对与所述fpga芯片连接的存储器进行寻址,若寻址得到所述bank地址不属于所述存储器,则将所述读命令或写命令传输给第二控制模块,所述第二控制模块将所述读命令或写命令通过下联控制数据传输通道透传给下级fpga芯片;若寻址得到所述bank地址属于所述存储器,则根据所述读命令或写命令,找到所述存储器中对应的目标地址,对所述目标地址进行读操作或写操作。4.根据权利要求3所述的透传方法,其特征在于,所述方法还包括:第二串行接口通过下联读写数据传输通道,接收来自下级fpga芯片的读数据,将所述读数据传输至第二控制模块,所述第二控制模块将所述读数据传输给第一控制模块,所述第一控制模块将所述读数据传输给第一串行接口,所述第一串行接口通过上联读写数据传输通道将所述读数据透传给上级fpga芯片。5.根据权利要求3所述的透传方法,其特征在于,在fpga芯片预先设置芯片标志号,在所述读命令或写命令的bank地址中携带所述芯片标志号;所述根据所述bank地址对与所述fpga芯片连接的存储器进行寻址包括:判断所述读命令或写命令中所携带的芯片标志号是否与所述存储器的芯片标志号一致,若一致,则寻址得到所述bank地址属于所述存储器,否则,寻址得到所述bank地址不属于所述存储器。6.根据权利要求3至5中任一项所述的透传方法,其特征在于,所述读命令包括bank地址、行地址和列地址,所述写命令包括bank地址、行地址和列地址。7.一种逻辑测试模块,其特征在于,包括主fpga芯片、多个从fpga芯片和多个存储器,所述主fpga芯片和所述多个从fpga芯片依次级联,每个fpga芯片与相应存储器连接,基于
级联关系,将位于级联关系中间位置的从fpga芯片作为中间fpga芯片,各中间fpga芯片为如权利要求1或2所述的支持透传的fpga芯片,且各中间fpga芯片执行如权利要求3-6中任一项所述的透传方法;其中,所述主fpga芯片的串行接口与第一个从fpga芯片的第一串行接口相连接,所述主fpga芯片的控制模块与第一个从fpga芯片的第一控制模块相连接;在各中间fpga芯片中,上级fpga芯片的第二串行接口与下级fpga芯片的第一串行接口连接,上级fpga芯片的第二控制模块与下级fpga芯片的第一控制模块连接;最后一个中间fpga芯片的第二串行接口与最后一个从fpga芯片的串行接口连接,最后一个中间fpga芯片的第二控制模块与最后一个从fpga芯片的第一控制模块连接。8.根据权利要求7所述的逻辑测试模块,其特征在于,所述主fpga芯片包括pcie接口、控制模块和串行接口;所述控制模块与所述串行接口相连接,所述pcie接口与所述控制模块相连接;所述pcie接口用于与上位机相连接,以便于从所述上位机接收读命令或写命令,或将测试结果返回给上位机;所述控制模块用于根据所述读命令或写命令对相应存储器进行读操作或写操作,或将所述读命令或写命令传输给第一个从fpga芯片。9.一种逻辑测试方法,其特征在于,使用如权利要求7或8所述的逻辑测试模块,所述方法包括:在进行测试前,所述主fpga芯片接收来自于上位机的写命令,根据所述写命令,对所述主fpga芯片的存储器进行写操作,或对相应从fpga芯片的存储器进行写操作,以将各测试向量写入到主fpga芯片或从fpga芯片中,并向上位机返回相应的存储地址,以便于所述上位机在测试时,根据各存储地址生成对应的读命令;在进行测试时,所述主fpga芯片接收来自于上位机的读命令,根据所述读命令,从主fpga芯片的存储器中或从fpga芯片的存储器中读取相应的测试向量;根据所述测试向量进行待测芯片的测试,得到测试结果,将所述测试结果传输给上位机。10.根据权利要求9所述的逻辑测试方法,其特征在于,所述根据所述测试向量进行待测芯片的测试,得到测试结果包括:根据所述测试向量生成测试波形和判断波形,将所述测试波形发送给待测芯片的测试向量输入端;接收来自于待测芯片的输出波形,将所述输出波形与所述判断波形相比对,得到测试结果;其中,将数据0和数据1转换为测试波形;数据0转换为低电平,数据1转换为高电平;将数据l、数据h和数据x转换为判断波形;数据l转换为低电平,数据h转换为高电平,数据x代表不对所述输出波形进行比对。
技术总结
本发明涉及芯片技术领域,提供了一种FPGA芯片、透传方法、逻辑测试模块和方法。其中所述FPGA芯片包括第一串行接口、第一控制模块、第二控制模块和第二串行接口;所述第一控制模块还与上级FPGA芯片连接,所述第二控制模块与下级FPGA芯片连接,实现读写命令的透传;所述第一串行接口与上级FPGA芯片的相应串行接口连接,所述第二串行接口与下级FPGA芯片的相应串行接口连接,实现读写数据的透传。本发明能够支持测试向量的向量深度扩展,进而根据测试需求进行相应的深度扩展,且在进行向量深度扩展的同时,无需对寻址逻辑进行改动,而是通过各FPGA芯片内部的寻址逻辑实现数据的透传,从而增加了扩展的灵活性。增加了扩展的灵活性。增加了扩展的灵活性。
技术研发人员:粟鑫
受保护的技术使用者:芯动微电子科技(珠海)有限公司
技术研发日:2023.06.09
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/