CN107786471B - 多fpga芯片间数据处理方法及转换装置 - Google Patents

多fpga芯片间数据处理方法及转换装置 Download PDF

Info

Publication number
CN107786471B
CN107786471B CN201710994136.2A CN201710994136A CN107786471B CN 107786471 B CN107786471 B CN 107786471B CN 201710994136 A CN201710994136 A CN 201710994136A CN 107786471 B CN107786471 B CN 107786471B
Authority
CN
China
Prior art keywords
data
signal data
specific type
signal
type
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
Application number
CN201710994136.2A
Other languages
English (en)
Other versions
CN107786471A (zh
Inventor
王克非
陈梨
王志奇
朱峰
詹晋川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Netforward Microelectronic Co ltd
Original Assignee
Shenzhen Forward Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN201710994136.2A priority Critical patent/CN107786471B/zh
Publication of CN107786471A publication Critical patent/CN107786471A/zh
Application granted granted Critical
Publication of CN107786471B publication Critical patent/CN107786471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种多FPGA芯片间数据处理方法及转换装置,属于FPGA芯片技术领域,解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题。所述方法应用于一个FPGA芯片的转换装置中,所述转换装置用于在所述FPGA芯片的数据接口与高速收发器之间转发数据,所述方法包括:准备待发送报文的步骤如下:将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文。本发明实施例适用于多FPGA芯片间的数据传输过程。

Description

多FPGA芯片间数据处理方法及转换装置
技术领域
本发明涉及FPGA(Field Programmable Gate Array,现场可编程门阵列)芯片技术领域,具体地涉及一种多FPGA芯片间数据处理方法及装置。
背景技术
在大规模ASIC(Application Specific Integrated Circuit,特定用途集成电路)芯片的设计和验证过程中,采用软件模拟的方法进行芯片功能验证,往往由于验证速度慢、规模难以扩展而受到限制。为了对芯片功能和性能进行测试和评价,往往需要设计对应的FPGA验证***,以便能够加速验证进度,增加验证规模和场景,尽早发现深层次的设计问题,同时也能够为软件和应用提前提供可用的开发和测试平台。
当前大型ASIC芯片功能复杂,逻辑量大,往往会包含数千万甚至数亿门单元,同时内部还包括多种IP单元,对外具有多种信号接口。这就要求在构建FPGA验证***时,所选用的FPGA芯片容量尽量大,而且接口丰富。然而,由于实现方式和使用目的的不同,在实际中,最大容量的FPGA芯片中能够实现的硬件逻辑还是远远小于很多大型ASIC芯片的逻辑。这样,在对这些大规模的ASIC芯片进行FPGA验证时,或者需要对ASIC设计的逻辑进行裁剪,在FPGA芯片中只对部分逻辑功能进行验证,或者将多片FPGA芯片连接起来,共同对ASIC芯片进行验证。
当使用多片FPGA芯片联合对同一个ASIC芯片进行验证时,需要将一个大的ASIC芯片按照逻辑功能进行合理的划分,分成多个子***,每个子***单独形成一个模块,并在一个单独的FPGA芯片中实现。要求各子***之间具有简单、清晰的接口,这样,就可以在各FPGA芯片之间通过这些信号进行通信。然而,一般来说,由于ASIC芯片功能的复杂性和多样性,很难在对一个大规模的ASIC芯片进行子***划分时,进行很清晰的划分,使得各子***之间保持简单的接口信号。而且,在很多情况下,各子***之间的接口信号宽度较大,而FPGA芯片没有足够的管脚来实现多个芯片之间的连接。
发明内容
本发明实施例的目的是提供一种多FPGA芯片间数据处理方法及转换装置,解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题,实现了对多种类型接口信号的封装和传输。
为了实现上述目的,本发明实施例提供一种多FPGA芯片间数据处理方法,所述方法应用于一个FPGA芯片的转换装置中,所述转换装置用于在所述FPGA芯片的数据接口与高速收发器转发数据,所述方法包括:
准备待发送报文的步骤如下:
将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;
响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文。
进一步地,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
进一步地,所述将存储的信号数据读出包括:当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。
进一步地,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。
进一步地,所述方法还包括:当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息。
进一步地,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。
进一步地,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。
进一步地,所述指定格式的报文包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述数据载荷字段包括至少一个特定类型的信号数据。
进一步地,所述方法还包括:
将所述报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置。
进一步地,所述方法还包括:
处理接收到的报文的步骤如下:
根据预设校验规则,对所接收的报文进行校验;
取出校验正确的报文中携带的信号数据;
根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
进一步地,在所述根据预设校验规则,对所接收的报文进行校验之前,所述方法还包括:
接收指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置;
根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
进一步地,所述报文中包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述根据预设校验规则,对所接收的报文进行校验包括:根据序列号字段和CRC字段,对所接收的报文进行校验。
进一步地,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
进一步地,所述方法还包括:当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值。
进一步地,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
进一步地,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中,
其中,当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。
进一步地,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中;
将所述寄存器中的信号数据发送给电平信号接口。
本发明实施例还提供一种转换装置,所述转换装置应用在一个FPGA芯片的数据接口与高速收发器之间转发数据,所述装置包括:
存储单元,用于将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;
封装单元,用于响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文。
进一步地,所述存储单元,还用于将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
进一步地,所述封装单元包括:处理模块,用于当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。
进一步地,所述存储单元,还用于将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。
进一步地,所述装置还包括:提示单元,用于当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息。
进一步地,所述存储单元,还用于当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。
进一步地,所述存储单元,还用于当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。
进一步地,所述封装单元封装的指定格式的报文包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述封装单元封装的指定格式的报文中的所述数据载荷字段包括至少一个特定类型的信号数据。
进一步地,所述装置还包括:
拆分单元,用于将所述报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置。
进一步地,所述装置还包括:
校验单元,用于根据预设校验规则,对所接收的报文进行校验;
处理单元,用于取出校验正确的报文中携带的信号数据;
发送单元,用于根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
进一步地,所述装置还包括:
接收单元,用于接收指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置;
组装单元,用于根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
进一步地,所接收的报文中包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述校验单元,还用于根据序列号字段和CRC字段,对所接收的报文进行校验。
进一步地,所述发送单元,还用于当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
进一步地,所述装置还包括:信用值接收单元,用于当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值。
进一步地,所述发送单元,还用于当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
进一步地,所述发送单元包括:
第一存储模块,用于当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中;
处理模块,用于当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。
进一步地,所述发送单元包括:
第二存储模块,用于当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中;
发送模块,用于将所述寄存器中的信号数据发送给电平信号接口。
通过在FPGA芯片与高速收发器之间设置的转换装置,将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储,响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,通过所述高速收发器发送所述报文。本发明实施例解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题,实现了对多种类型接口信号的封装和传输。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例提供的一种多FPGA芯片间数据处理的方法的流程图;
图2是本发明实施例提供的第一FPGA芯片与第二FPGA芯片之间的链路连接结构示意图;
图3是本发明实施例提供的指定格式的报文示意图;
图4是本发明实施例提供的微包格式的示意图;
图5是本发明实施例提供的一个FPGA芯片中的egr模块与另一个FPGA芯片中的dic模块之间的信号数据传输示例图;
图6是本发明实施例提供的egr_dic_vld和egr_dic_data的信号数据的报文格式示意图;
图7是本发明实施例提供的dic_egr_vld和dic_egr_data的信号数据的报文格式示意图;
图8是本发明实施例提供的csr信号数据的报文格式示意图;
图9是本发明实施例提供的中断信号int的报文格式示意图;
图10是本发明实施例提供的另一种多FPGA芯片间数据处理的方法的流程图;
图11是本发明实施例提供的一种转换装置的结构示意图;
图12是本发明实施例提供的另一种转换装置的结构示意图;
图13是本发明实施例提供的又一种转换装置的结构示意图;
图14是本发明实施例提供的再一种转换装置的结构示意图;
图15是本发明实施例提供的再又一种转换装置的结构示意图;
图16是本发明实施例提供的再另一种转换装置的结构示意图;
图17是本发明实施例提供的还又一种转换装置的结构示意图;
图18是本发明实施例提供的另一种转换装置的结构示意图;
图19是本发明实施例提供的又一种转换装置的结构示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
在对一个大型的ASIC芯片进行逻辑划分时,需要根据数据的流动方向,在主要的功能部件之间进行切割。这样,切割后的模块之间的信号接口比较简单,易于进行跨FPGA芯片的数据传输。而一般情况下,数据接口分为以下几种类型:
(1)有流控的数据接口
在ASIC芯片设计中,两个模块之间的数据接口,如果具有流量控制功能,一般是采用基于信用值的流控机制。在这种流控机制下,在发送方维护一个发送的信用值计数器,在接收方维护一个接收数据缓冲区,发送方信用值计数器的初始值与接收方数据缓冲区的最大深度相等。当发送方向接收方给出一个数据后,消耗掉发送方的一个信用值;这个数据进入接收方数据缓冲区,并占用其中一个存储单元;接收方如果要处理缓冲区中的数据,则从缓冲区中取出一个数据进行处理,并向发送方返回一个信用值;发送方收到从接收方返回的信用值后,将其补充到信用值计数器中。
(2)无流控的数据接口
这种无流控的数据接口,不需要在发送方和接收方之间进行数据的流控,这意味着下面3种不同的含义:发送方产生数据较慢,在接收方有能力对其进行处理;在接收方具有足够大的缓冲区,足以接收来自发送方的数据而不会丢失;所发送的数据即使接收方来不及处理而丢失也没有问题,不会影响正常的逻辑处理。
(3)变化速率较快的脉冲信号接口
这种类型的信号数据如果在某个时钟周期内为1,则说明有效;如果在某个时钟周期内为0,则说明无效。这样的信号数据从一个FPGA芯片传输到另外一个FPGA芯片时,发送方有多少个时钟周期为1,要求在接收方也有相同的周期数为1。在最坏情况下,发送方可能在长时间内连续发送这种类型的信号数据,但是接收方由于同时要做其他处理,可能来不及对这些信号数据进行处理。因此需要在接收方维护一个具有一定容量的接收缓冲,将从发送方传来的信号数据暂存下来。
另外,这种类型的信号数据一般不会连续不断地发送。在连续发送多个信号数据后,会停止一段时间。例如前面提到的信用值返回信号数据就属于该类型。
(4)变化速率较慢的电平信号接口
这种电平信号类型的信号数据,其值从0变为1或从1变为0后,一般在发生下一次状态变化之前会维持很长的时间。它只是一个状态信号,表示当前***处于某种状态,常见于一些中断或错误状态信号。对于该类型的信号数据,只需要将状态变化的信息传输到另一端即可,且没有时间上的要求。
上述4种类型的信号数据,每种都可能有多组信号数据。本发明实施例就是针对上述4种类型的信号数据,在多FPGA芯片间进行传输。
另外,目前常用的中高端FPGA芯片中,一般会具有多个高速收发器,其为信号数据提供一组并行接口,在高速收发器内部进行并串转换,并在FPGA芯片外提供一组高速串行差分信号。两个FPGA芯片通过高速串行信号连接,在两个芯片之间进行并行数据的传输。根据芯片的不同,以及PCB加工工艺和板材的差异,高速收发器对差分信号上的数据传输率可以从1Gbps~10Gbps不等,有些高档芯片甚至可以达到20Gbps~30Gbps。而且为了提高传输总带宽,经常会将多个高速收发器绑定在一起(每个收发器及其差分信号传输链路称为1个lane),组成一个多lane绑定的串并转换接口。
为了将上述多种信号数据通过高速串行接口,快速地从一个FPGA芯片传输到另一个FPGA芯片,本发明实施例在两端的FPGA芯片上各设计了一个转换装置,用来在FPGA芯片中的数据接口与高速收发器之间进行数据转发。
图1是本发明实施例提供的一种多FPGA芯片间数据处理的方法的流程图。所述方法应用在如图2所示的第一FPGA芯片21的数据接口211与高速收发器213之间的转换装置212中,如图1所示,所述方法包括准备待发送报文的步骤如下:
101、将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储。
其中,所述特定类型包括上述提到的4中类型:有流控的数据类型、无流控的数据类型、脉冲信号类型和电平信号类型。
当本端的转换装置从各个数据接口接收到各特定类型的信号数据后,按照与所述特定类型对应的存储规则进行存储。
102、响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文。
各特定类型的信号数据存储起来之后,都会实时地发出一个发送请求,此时在各特定类型的信号数据之间采用公平轮转仲裁机制。在所述公平轮转仲裁机制中所有特定类型的信号数据具有相同的优先级,轮流允许各特定类型的信号数据发出。通过公平轮转仲裁机制选出一种特定类型的信号数据读出,并封装在指定格式的报文中。
其中,所述指定格式的报文包括报文类型字段、序列号字段、CRC(CyclicRedundancy Check,循环冗余码校验)字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。例如,如图3所示,所述指定格式的报文可以包括一个2位的类型字段,10位的序列号字段,32位的CRC字段以及n位的数据载荷字段,该报文总长度为n+44位。
其中,报文类型字段标识了该报文的类型,该字段的位数不做限定,可以2位,3位或者更多位,与用户具体设置的报文相关。对于序列号字段,第一个报文的序列号字段为0,之后每产生一个报文,这个字段加1,如果该序列号字段变为全1后,下一个报文的序列号字段又变为0,以此来区分报文的发送顺序。CRC字段用来对数据传输时的正确性进行校验,一般采用32位的CRC字段,在某些特殊情况下,例如报文长度很短的情况下,可以采用16位或8位CRC字段,当报文长度较长时,为了提高校验效率,可以采用2个32的CRC字段进行校验,因此CRC字段的位数不做限定,具体与报文的长度相关。
通过在FPGA芯片与高速收发器之间设置的转换装置,将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储,响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,通过所述高速收发器发送所述报文。本发明实施例解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题,实现了对多种类型接口信号的封装和传输。
根据本发明的一个实施方式,由于所述高速收发器的并行数据接口的位宽固定,当报文过长时,可以将1个报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置,所述数据字段用于携带拆分后报文中的数据。其中,所述位置字段包括头标志位(H)和尾标志位(T),当H=1,T=0时,表示该微包为整个报文中的第一个微包,当H=0,T=1时,表示该微包为整个报文中的最后一个微包,当H=0,T=0时,则表示该微包为整个报文中间的微包,当H=1,T=1时,表示所述报文只包含一个微包。如图4所示,以64位长度的微包为例,给出了一个微包的格式,其中前两位为位置字段,后面62位为数据字段。
另外,在发送所述微包的时候,是按照拆分顺序发送的,所述微包再重新组装成报文时的顺序不会被打乱。
针对上述实施例中的步骤101,对于不同特定类型的信号数据,采用不同的存储规则进行存储,下面针对4中特定类型的信号数据,分别予以阐述:
(1)对于有流控的数据类型
将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
与现有技术中的有流控的数据接口采用的基于信用值的流控机制相类似,当有流控的数据接口向转换装置发送一个信号数据后,将该信号数据存储在第一深度的缓冲区内,并消耗有流控的数据接口的一个信用值,当所有的信用值消耗完时,就不能再向转换装置发送信用数据了。
当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。即当存储在第一深度的缓冲区内的信号数据被读出时,则说明第一深度的缓冲区内又存在存储空间了,则读出了几个信号数据,即向有流控的数据接口返回几个信用值,当有流控的数据接口有信用值后,又可以向转换装置发送信号数据了。
(2)对于无流控的数据类型
将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。其中,对于无流控的数据类型,设置的第二深度的缓冲区的深度尽可能大一些,例如所述第二深度为1024,以避免无流控的数据接口发送过来的信号数据缓存下来而不至于丢失。
另外,为了避免在某些情况下,由于第二深度的缓冲区的深度不够而导致无流控的数据接口发送过来的信号数据丢失而无法察觉,则当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息,以便通知用户在无流控的数据接口上发生了数据溢出导致数据丢失的情况。
(3)对于脉冲信号类型
当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。例如,当某个时钟周期内该信号为1,则将指定计数器中的数值加1。当通过公平轮转仲裁机制后,轮到发送脉冲信号类型的信号数据时,将所述指定计数器中的值封装在报文中发送。
(4)对于电平信号类型
当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。对于该类型的信号数据,只需要在寄存器中记录下该信号数据的值即可,在通过公平轮转仲裁机制后,则将电平信号类型的信号数据封装在报文中发送。
在本发明的另一个实施方式中,为了提高报文的利用率,所述报文的数据载荷字段包括至少一个特定类型的信号数据,即两种特定类型的信号数据可以共享一个报文进行发送。如图5所示,以一个FPGA芯片中的egr模块与另一个FPGA芯片中的dic模块之间的信号数据传输为例进行说明,其中,有流控的数据类型为egr_dic_vld、egr_dic_data和dic_egr_release以及dic_egr_vld、dic_egr_data和egr_dic_release;无流控的数据类型为csr_chain0_*、csr_chain1_*和csr_chain2_*这3组信号数据;int为单向的中断信号数据,属于一种变化速率较慢的电平信号类型的信号数据;copy_done和release属于变化速率较快的脉冲信号类型的信号数据。其中,在该实施方式中,高速串行收发器使用4lane绑定的形式,每个lane提供5Gbps带宽,4lane总共有20Gbps的数据传输带宽。高速收发器对外提供64位的并行数据接口。
针对上述特定类型的信号数据,分别定义各自的报文格式。对于egr_dic_vld和egr_dic_data的信号数据,定义报文格式如图6所示。其中,由于数据位宽很宽,使用单个CRC校验效率较低,因此采用了2个32位的CRC字段,对整个报文进行分段校验,另外采用了20位的序列号字段,136位的release_info字段是用于传输copy_done字段的,每位copy_done都是用1个4位的计数器存放,每次可以传输15个计数值,因此以这种搭载方式传输的copy_done信号,每次最多可以传输34个计数器。4位的release_cnt字段用于传输反向的信用值释放信号。报文中另有3位Type字段,用于表明当前属于哪种报文类型,对于当前这种报文,其类型值为001。这样,整个报文宽度为2054位,需要分成34个微包,每个微包的宽度为64位,其中包含2位的位置字段以及62位的数据字段。
对于dic_egr_vld和dic_egr_data的信号数据,定义报文格式如图7所示。整个报文宽度为1751位,需要分成29个微包。对于当前这种报文,其类型值为010。其各字段含义与前面所述egr_dic_vld和egr_dic_data的信号数据类似。其中,采用了2个32位的CRC字段,对整个报文进行分段校验,另外采用了20位的序列号字段,136位的release_info字段是用于传输copy_done字段的,每位copy_done都是用1个4位的计数器存放,每次可以传输15个计数值,因此以这种搭载方式传输的copy_done信号,每次最多可以传输34个计数器的计数值。4位的release_cnt字段用于传输反向的信用值释放信号。
对于3组无流控的数据类型的csr信号数据,每组数据宽度87位,因此其报文格式如图8所示。由于数据宽度很小,就采用8位CRC校验算法,仍然使用20位序列号进行报文顺序检查。3位Type字段用于区分具体报文类型,3组无流控的数据类型的csr信号数据的类型值分别为011,100和101。
对于2位的中断信号int,即电平信号类型的信号数据,可以组织成一个报文格式,如图9所示,其中既包括了2位的中断状态信号,也包括需要反向释放的信用值(release_cnt),以及34位的copy_done和release信号,其目的是在没有数据报文经过,无法进行搭载传输时,可以通过特定的报文将信用值释放信号以及用户需要的copy_done和release信号传输过去,提高了报文的利用率。
通过在FPGA芯片与高速收发器之间设置的转换装置,将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储,并响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,然后封装在指定格式的报文中,通过所述高速收发器发送所述报文。本发明实施例解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题,实现了对多种类型接口信号的封装和传输,同时可以利用报文的可用空间搭载其它类型的信号数据,充分提高了报文的传输效率。
在本发明的另一个实施方式中,所述第一FPGA芯片亦可作为接收方来处理接收到的报文,如图10所示,所述方法还包括处理接收到的报文的步骤如下:
1001、根据预设校验规则,对所接收的报文进行校验。
所接收的报文包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
其中,报文类型字段标识了该报文的类型,该字段的位数不做限定,可以2位,3位或者更多位,与用户具体设置的报文相关。对于序列号字段,第一个报文的序列号字段为0,之后每产生一个报文,这个字段加1,如果该序列号字段变为全1后,下一个报文的序列号字段又变为0,以此来区分报文的发送顺序。CRC字段用来对数据传输时的正确性进行校验,一般采用32位的CRC字段,在某些特殊情况下,例如报文长度很短的情况下,可以采用16位或8位CRC字段,当报文长度较长时,为了提高校验效率,可以采用2个32的CRC字段进行校验,因此CRC字段的位数不做限定,具体与报文的长度相关。
其中,根据序列号字段和CRC字段,对所接收的报文进行校验。可以参考现有技术中利用CRC进行报文的校验。另外,本发明实施例中还可以利用报文中的序列号字段对报文进行校验。由于在序列号字段中,第一个报文的序列号字段为0,之后每产生一个报文,这个字段加1,如果该序列号字段变为全1后,下一个报文的序列号字段又变为0。如果序列号字段检查出错,则说明有1个或多个报文在传输过程中丢失。而CRC字段可以校验报文在经过高速链路传输时是否发生了错误,如果校验错误,则说明此报文的某些微包在经过链路传输时发生了错误或丢失,可以通知用户。通过这两种检错机制,可以检查出多个报文通过高速链路传输时可能发生的绝大部分错误。
在本发明的一个实施方式中,由于所述高速收发器的并行数据接口的位宽固定,当报文过长时,对端可以将1个报文拆分为指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,那么本端在所述根据预设校验规则,对所接收的报文进行校验之前,接收指定长度的微包,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置,然后根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
其中,所述位置字段包括头标志位(H)和尾标志位(T),当H=1,T=0时,表示该微包为整个报文中的第一个微包,当H=0,T=1时,表示该微包为整个报文中的最后一个微包,当H=0,T=0时,则表示该微包为整个报文中间的微包,当H=1,T=1时,表示所述报文只包含一个微包。那么在接收到多个微包后,根据位置字段中的H和T,可以知道报文的第一个微包和最后一个微包,从而与中间的微包一起组装成对应的报文。当再接收到位置字段为H=1,T=0时,表示该微包为另一个报文的第一个微包,从而可以区分出各个报文的微包。
1002、取出校验正确的报文中携带的信号数据;
1003、根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
将校验正确的报文中携带的信号数据取出,并根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
针对上述实施例中的步骤1003,对于不同特定类型的信号数据,采用不同的处理方法,下面针对4中特定类型的信号数据,分别予以阐述:
(1)对于有流控的数据类型
当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
其中,当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值,则本地的信用值加1。
(2)对于无流控的数据类型
当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
(3)对于脉冲信号类型
当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中,其中,当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。另外,每次收到该类型的信号数据时,都将信号数据的数值累加到所述指定计数器中。
(4)对于电平信号类型
当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中,并将所述寄存器中的信号数据发送给电平信号接口。
需要说明的是,上述4种类型的信号数据,每种都可能有多组。对于类型1和类型2的信号数据来说,如果有多组,则每组信号数据都有各自的缓冲区;对于类型3和类型4的信号数据来说,如果有多组信号,则可以将多组信号合并组织到一个报文中,并共享同一套校验字段、报文封装和解析的处理逻辑。
另外,在实际ASIC芯片中,相邻两个模块之间的数据传输往往是双向的。所以在每一端,都有发送装置和接收装置。由于高速收发器本来就是双向的,所以双向的数据传输将会共用一组高速收发器,实现数据的双向传输,如图2所示。同时,由于双向都有数据传输,所以对于反向的信用值传输,就可采用一种信用搭载的方式,在反向数据传输的同时,利用报文中某段空闲的字段,将释放的信用值传回发送端。这将在一定程度上提高网络报文的传输效率。
其中,对于有流控的数据类型的信号数据,原来的ASIC设计中,是从接收端的缓冲区中读出数据时,将信用值直接返回给发送端的信用管理模块。现在由于发送端和接收端被分割在2个不同的芯片中,且中间经过了较长的转换逻辑,因此需要将原来的信用流控分割成多段来分别处理。具体来说,在发送方的数据接口与转换装置之间,发送方的转换装置与接收方的转换装置之间,以及接收方的转换装置与数据接口之间都会有信用流控的处理。这样,在发送方的转换装置与接收方的转换装置之间,还需要一个反向的信用值返回通路,用于将反向的信用值传输给发送方。为此,也需要对信用值进行计数、CRC校验并封装成报文,此过程与脉冲信号类型的报文处理过程相似。例如,图6、7和9中的报文格式中,就包括了反向的信用值释放信号release_cnt。
相应的,图11是本发明实施例提供的一种转换装置的结构示意图。所述转换装置应用在如图2所示的第一FPGA芯片21的数据接口211与高速收发器213之间转发数据,如图11所示,所述转换装置212包括:
存储单元1101,用于将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;
封装单元1102,用于响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文。
通过在FPGA芯片与高速收发器之间设置的转换装置,将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储,响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,通过所述高速收发器发送所述报文。本发明实施例解决了现有技术中多FPGA芯片在对ASIC芯片验证过程中的数据传输问题,实现了对多种类型接口信号的封装和传输。
进一步地,所述存储单元,还用于将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
进一步地,如图12所示,所述封装单元包括:
处理模块1201,用于当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。
进一步地,所述存储单元,还用于将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。
进一步地,如图13所示,所述装置还包括:
提示单元1301,用于当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息。
进一步地,所述存储单元,还用于当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。
进一步地,所述存储单元,还用于当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。
进一步地,所述封装单元封装的指定格式的报文包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述封装单元封装的指定格式的报文中的所述数据载荷字段包括至少一个特定类型的信号数据。
进一步地,如图14所示,所述装置还包括:
拆分单元1401,用于将所述报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置。
进一步地,如图15所示,所述转换装置还包括:
校验单元1501,用于根据预设校验规则,对所接收的报文进行校验;
处理单元1502,用于取出校验正确的报文中携带的信号数据;
发送单元1503,用于根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
进一步地,如图16所示,所述装置还包括:
接收单元1601,用于接收指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置;
组装单元1602,用于根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
进一步地,所接收的报文中包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
进一步地,所述校验单元,还用于根据序列号字段和CRC字段,对所接收的报文进行校验。
进一步地,所述发送单元,还用于当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
进一步地,如图17所示,所述装置还包括:
信用值接收单元1701,用于当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值。
进一步地,所述发送单元,还用于当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
进一步地,如图18所示,所述发送单元包括:
第一存储模块1801,用于当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中;
处理模块1802,用于当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。
进一步地,如图19所示,所述发送单元包括:
第二存储模块1901,用于当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中;
发送模块1902,用于将所述寄存器中的信号数据发送给电平信号接口。
所述转换装置212中的各单元的具体实现过程,可参加上述多FPGA芯片间数据处理的方法的处理过程。
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

Claims (32)

1.一种多FPGA现场可编程门阵列芯片间数据处理方法,其特征在于,所述方法应用于一个FPGA芯片的转换装置中,所述转换装置用于在所述FPGA芯片的数据接口与高速收发器之间转发数据,所述方法包括:
准备待发送报文的步骤如下:
将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;
响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文,所述指定格式的报文包括报文类型字段、序列号字段、CRC循环冗余码校验字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据,所述数据载荷字段包括至少一个特定类型的信号数据,所述特定类型包括有流控的数据类型、无流控的数据类型、脉冲信号类型和电平信号类型,
其中,所述方法还包括:
将所述报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置。
2.根据权利要求1所述的多FPGA芯片间数据处理方法,其特征在于,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:
将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
3.根据权利要求2所述的多FPGA芯片间数据处理方法,其特征在于,所述将存储的信号数据读出包括:
当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。
4.根据权利要求1所述的多FPGA芯片间数据处理方法,其特征在于,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:
将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。
5.根据权利要求4所述的多FPGA芯片间数据处理方法,其特征在于,所述方法还包括:
当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息。
6.根据权利要求1所述的多FPGA芯片间数据处理方法,其特征在于,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:
当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。
7.根据权利要求1所述的多FPGA芯片间数据处理方法,其特征在于,所述将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储包括:
当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。
8.根据权利要求1所述的多FPGA芯片间数据处理方法,其特征在于,所述方法还包括:
处理接收到的报文的步骤如下:
根据预设校验规则,对所接收的报文进行校验;
取出校验正确的报文中携带的信号数据;
根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
9.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,在所述根据预设校验规则,对所接收的报文进行校验之前,所述方法还包括:
接收指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置;
根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
10.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,所述报文中包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
11.根据权利要求10所述的多FPGA芯片间数据处理方法,其特征在于,所述根据预设校验规则,对所接收的报文进行校验包括:
根据序列号字段和CRC字段,对所接收的报文进行校验。
12.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
13.根据权利要求12所述的多FPGA芯片间数据处理方法,其特征在于,所述方法还包括:
当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值。
14.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
15.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中,
其中,当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。
16.根据权利要求8所述的多FPGA芯片间数据处理方法,其特征在于,所述根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口包括:
当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中;
将所述寄存器中的信号数据发送给电平信号接口。
17.一种转换装置,其特征在于,所述转换装置应用在一个FPGA芯片的数据接口与高速收发器之间转发数据,所述装置包括:
存储单元,用于将接收的特定类型的信号数据,按照与所述特定类型对应的存储规则存储;
封装单元,用于响应于针对所存储的信号数据的发送请求,根据公平轮转仲裁机制,将存储的信号数据读出,并封装在指定格式的报文中,以便通过所述高速收发器发送所述报文,所述指定格式的报文包括报文类型字段、序列号字段、CRC循环冗余码校验字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据,所述数据载荷字段包括至少一个特定类型的信号数据,所述特定类型包括有流控的数据类型、无流控的数据类型、脉冲信号类型和电平信号类型,
其中,所述装置还包括:
拆分单元,用于将所述报文拆分为指定长度的微包,以便通过所述高速收发器按照所述微包的拆分顺序发送微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置。
18.根据权利要求17所述的转换装置,其特征在于,所述存储单元,还用于将从有流控的数据接口接收到的特定类型的信号数据,存储在第一深度的缓冲区内,所述特定类型为有流控的数据类型,所述第一深度与信用值的初始值相等,所述信用值由所述有流控的数据接口维护。
19.根据权利要求18所述的转换装置,其特征在于,所述封装单元包括:
处理模块,用于当从所述第一深度的缓冲区内读出一个信号数据时,向所述有流控的数据接口返回1个信用值。
20.根据权利要求17所述的转换装置,其特征在于,所述存储单元,还用于将从无流控的数据接口接收到的特定类型的信号数据,存储在第二深度的缓冲区内,所述特定类型为无流控的数据类型。
21.根据权利要求20所述的转换装置,其特征在于,所述装置还包括:
提示单元,用于当检测到所述第二深度的缓冲区内存储空间已满,且接收到无流控的信号数据时,发出信号数据溢出的提示信息。
22.根据权利要求17所述的转换装置,其特征在于,所述存储单元,还用于当接收到所述特定类型为脉冲信号类型的信号数据时,将指定计数器中的数值加1。
23.根据权利要求17所述的转换装置,其特征在于,所述存储单元,还用于当接收到所述特定类型为电平信号类型的信号数据时,将所述信号数据存储在寄存器中。
24.根据权利要求17所述的转换装置,其特征在于,所述装置还包括:
校验单元,用于根据预设校验规则,对所接收的报文进行校验;
处理单元,用于取出校验正确的报文中携带的信号数据;
发送单元,用于根据所述信号数据的特定类型,将所述信号数据发送到与所述特定类型对应的数据接口。
25.根据权利要求24所述的转换装置,其特征在于,所述装置还包括:
接收单元,用于接收指定长度的微包,所述指定长度与所述高速收发器的并行数据接口位宽相等,所述微包中包括位置字段和数据字段,所述位置字段用于表示所述微包在所述报文中的位置;
组装单元,用于根据所述位置字段,将所述微包按照接收顺序组装成对应的报文。
26.根据权利要求24所述的转换装置,其特征在于,所接收的报文中包括报文类型字段、序列号字段、CRC字段和数据载荷字段,其中所述数据载荷字段用于携带信号数据。
27.根据权利要求26所述的转换装置,其特征在于,所述校验单元,还用于根据序列号字段和CRC字段,对所接收的报文进行校验。
28.根据权利要求24所述的转换装置,其特征在于,所述发送单元,还用于当所述信号数据的特定类型为有流控的数据类型时,将所述信号数据存储在对应有流控的数据接口中的第一深度的缓冲区内,并将本地的信用值减1,所述第一深度与所述信用值的初始值相等。
29.根据权利要求28所述的转换装置,其特征在于,所述装置还包括:
信用值接收单元,用于当所述有流控的数据接口从所述第一深度的缓冲区内读出一个信号数据时,接收所述有流控的数据接口返回的1个信用值。
30.根据权利要求24所述的转换装置,其特征在于,所述发送单元,还用于当所述信号数据的特定类型为无流控的数据类型时,将所述信号数据发送到对应的无流控的数据接口。
31.根据权利要求24所述的转换装置,其特征在于,所述发送单元包括:
第一存储模块,用于当所述信号数据的特定类型为脉冲信号类型时,将所述信号数据保存在指定计数器中;
处理模块,用于当向脉冲信号接口发送一个信号数据时,将所述指定计数器减1。
32.根据权利要求24所述的转换装置,其特征在于,所述发送单元包括:
第二存储模块,用于当所述信号数据的特定类型为电平信号类型时,将所述信号数据保存在寄存器中;
发送模块,用于将所述寄存器中的信号数据发送给电平信号接口。
CN201710994136.2A 2017-10-23 2017-10-23 多fpga芯片间数据处理方法及转换装置 Active CN107786471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710994136.2A CN107786471B (zh) 2017-10-23 2017-10-23 多fpga芯片间数据处理方法及转换装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710994136.2A CN107786471B (zh) 2017-10-23 2017-10-23 多fpga芯片间数据处理方法及转换装置

Publications (2)

Publication Number Publication Date
CN107786471A CN107786471A (zh) 2018-03-09
CN107786471B true CN107786471B (zh) 2021-03-16

Family

ID=61434990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710994136.2A Active CN107786471B (zh) 2017-10-23 2017-10-23 多fpga芯片间数据处理方法及转换装置

Country Status (1)

Country Link
CN (1) CN107786471B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446143B (zh) * 2018-10-16 2021-05-25 武汉精立电子技术有限公司 一种基于fpga的数据串行传输控制***及方法
CN111949590B (zh) * 2020-08-11 2022-05-06 国微集团(深圳)有限公司 一种可跨fpga平台的高速通讯方法
CN111740847B (zh) * 2020-08-24 2020-12-11 常州楠菲微电子有限公司 一种基于fpga的高速网络数据传输***及方法
CN113595932B (zh) * 2021-08-06 2024-05-14 上海金仕达软件科技股份有限公司 数据乱序报文的处理方法及专用集成电路
CN113923173B (zh) * 2021-10-22 2023-12-15 深圳市风云实业有限公司 网络交换设备数据面快速启动恢复方法
CN116418752A (zh) * 2021-12-30 2023-07-11 苏州盛科通信股份有限公司 报文的处理方法、装置、存储介质和电子装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11284503A (ja) * 1998-03-30 1999-10-15 Rohm Co Ltd プログラマブルゲートアレイ
CN101610253A (zh) * 2009-07-22 2009-12-23 天津市电力公司 一种可以实现保护设备数据分类传输的处理方法
CN101977162A (zh) * 2010-12-03 2011-02-16 电子科技大学 一种高速网络的负载均衡方法
CN104660462A (zh) * 2015-01-15 2015-05-27 北京奥普维尔科技有限公司 一种万兆以太网测试设备的组包***及方法
CN105955920A (zh) * 2016-04-25 2016-09-21 浪潮电子信息产业股份有限公司 一种片上网络中基于Credit的流控机制的设计方法
CN106502932A (zh) * 2016-09-20 2017-03-15 中国科学院自动化研究所 基于分层结构的片间互联接口及其写操作和读操作的方法
CN106844256A (zh) * 2017-02-22 2017-06-13 天津大学 一种基于多fpga的有源配电网实时仿真器内部接口设计方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1224216C (zh) * 2003-06-30 2005-10-19 港湾网络有限公司 宽带通信逻辑仿真平台设计的验证方法
CN101286867B (zh) * 2007-05-29 2011-10-05 深圳市同洲电子股份有限公司 一种网络设备的软件升级方法与***
CN101969359B (zh) * 2010-09-29 2012-11-14 航天东方红卫星有限公司 小卫星电子载荷任务上注及处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11284503A (ja) * 1998-03-30 1999-10-15 Rohm Co Ltd プログラマブルゲートアレイ
CN101610253A (zh) * 2009-07-22 2009-12-23 天津市电力公司 一种可以实现保护设备数据分类传输的处理方法
CN101977162A (zh) * 2010-12-03 2011-02-16 电子科技大学 一种高速网络的负载均衡方法
CN104660462A (zh) * 2015-01-15 2015-05-27 北京奥普维尔科技有限公司 一种万兆以太网测试设备的组包***及方法
CN105955920A (zh) * 2016-04-25 2016-09-21 浪潮电子信息产业股份有限公司 一种片上网络中基于Credit的流控机制的设计方法
CN106502932A (zh) * 2016-09-20 2017-03-15 中国科学院自动化研究所 基于分层结构的片间互联接口及其写操作和读操作的方法
CN106844256A (zh) * 2017-02-22 2017-06-13 天津大学 一种基于多fpga的有源配电网实时仿真器内部接口设计方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《多FPGA验证平台引脚限制的解决方案》;胡文彬,吴剑旗,洪一;《合肥工业大学学报(自然科学版)》;20101031;第33卷(第10期);全部 *
Qingshan Tang;Habib Mehrez;Matthieu Tuna.《Multi-FPGA prototyping board issue: the FPGA I/O bottleneck》.《2014 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV)》.2014,全部. *

Also Published As

Publication number Publication date
CN107786471A (zh) 2018-03-09

Similar Documents

Publication Publication Date Title
CN107786471B (zh) 多fpga芯片间数据处理方法及转换装置
JP5348263B2 (ja) データ伝送装置、データ伝送システムおよびデータ伝送方法
US5832310A (en) Serial I/O channel having dependent and synchronous sources of control data and user defined data
US5463762A (en) I/O subsystem with header and error detection code generation and checking
US8953463B2 (en) Channel interleaved multiplexed databus
US5553302A (en) Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data
CN109426636B (zh) 一种fpga片间高位宽数据传输的方法及装置
US11101923B2 (en) Receiver circuitry for physical coding sublayer
US10467177B2 (en) High speed memory interface
CN111597141B (zh) 一种面向超高阶互连芯片的分级交换结构及死锁避免方法
CN104660462A (zh) 一种万兆以太网测试设备的组包***及方法
US9122411B2 (en) Signal order-preserving method and apparatus
JP3757204B2 (ja) エラー検出/訂正方式及び該方式を用いた制御装置
EP0353249A4 (en) Parallel networking architecture
US6880111B2 (en) Bounding data transmission latency based upon a data transmission event and arrangement
CN101834695B (zh) 自适应多路串行冗余高速总线
US11782636B2 (en) Method for data processing of an interconnection protocol to support multiple lanes, controller, and storage device
CN106209307A (zh) 多颗fpga片间互联方法与***
JP2016042218A (ja) エラー検出装置及びエラー検出方法
CN113454935B (zh) 一种线路编码方法及装置
CN111651311B (zh) 一种可配置的物理层误码产生装置、芯片及设备
CN117349214B (zh) 一种具备拆包组包能力的axi协议转串行通讯协议的转换桥
TWI805731B (zh) 多線道資料處理電路及系統
CN118041488A (zh) 数据传输方法、装置、***及计算机可读存储介质
CN116846793A (zh) 一种互联芯片通信链路检测装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Wang Kefei

Inventor after: Chen Li

Inventor after: Wang Zhiqi

Inventor after: Zhu Feng

Inventor after: Zhan Jinchuan

Inventor before: Wang Kefei

Inventor before: Qi Xingyun

Inventor before: Chen Li

Inventor before: Wang Zhiqi

Inventor before: Zhu Feng

Inventor before: Zhan Jinchuan

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210526

Address after: 518057 Room 201, 2 / F, Yinhe building, 25 Gaoxin North 6 road, North Science Park, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SHENZHEN NETFORWARD MICROELECTRONIC Co.,Ltd.

Address before: 5b2, 3B2, 4b1, Tianji building, chegongmiao Tian'an Industrial Park, Futian District, Shenzhen, Guangdong 518040

Patentee before: SHENZHEN FORWARD INDUSTRIAL Co.,Ltd.

TR01 Transfer of patent right