一种FPGA片间低速并行异步通信方法及通信系统技术方案

技术编号:31088643 阅读:17 留言:0更新日期:2021-12-01 12:47
本发明专利技术提出一种FPGA片间低速并行异步通信方法及通信系统,对发送端工作时钟clk1进行n分频处理,得到发送端分频时钟clk_div1;发送端与接收端进行数据传输前进行链路同步,在完成链路同步后,发送端将clk1时钟域的大位宽数据,转换成低频的clk_div1时钟域的小位宽数据,再逐个发送出去,接收端再用接收端工作时钟clk2采样接收到的clk_div1时钟域的数据,将数据恢复到clk2时钟域。本发明专利技术采用FPGA片间低速并行异步通信,在待传输数据位宽很大且信号跳变频率较小的情况下,完成不同片间/板间FPGA之间的异步通信和数据传输。FPGA之间的异步通信和数据传输。FPGA之间的异步通信和数据传输。

【技术实现步骤摘要】
一种FPGA片间低速并行异步通信方法及通信系统


[0001]本专利技术涉及芯片验证
,尤其是一种用于芯片验证的FPGA片间低速并行异步通信方法及通信系统。

技术介绍

[0002]在芯片设计规模日益增大,芯片应用越来越广泛的今天,保证芯片设计的正确性是每一位芯片设计者必须考虑的大事。在芯片流片前进行充分验证,是提高芯片设计质量,保证芯片设计正确性的重要措施之一。
[0003]目前的芯片验证方法有很多,其中基于FPGA的原型验证,由于相较于服务器软件仿真有巨大的速度优势,在芯片设计领域有着非常广泛的应用。然而,随着芯片设计规模的不断增大,即使是当前容量最大的FPGA,也不足以完整地放下整个芯片设计,这就必然需要将整个芯片的设计分布式地放置在一个板卡内的多片FPGA,甚至多个板卡间的多片FPGA内来实现。因此,FPGA片间各种不同的互联通信和数据传输便成了整个验证平台系统非常重要的一部分。
[0004]现有的片间互联多采用信号直连或者提高通信时钟频率的时分复用方式。由于FPGA的GPIO端口资源有限,其所能支持的时钟频率也有上限,因此,在很多情况下,这两种方式难以实现,即便得以实现,通信速率也会非常低。

技术实现思路

[0005]针对现有芯片验证中存在的技术问题,本专利技术提出一种FPGA片间低速并行异步通信方法及通信系统,在待传输数据位宽很大且信号跳变频率较小的情况下,采用低时钟频率的时分复用通信方法,仅需使用少量GPIO端口,无需提高片间通信时钟频率,便可以完成不同片间/板间FPGA之间的异步通信和数据传输。
[0006]本专利技术保护一种FPGA片间低速并行异步通信方法,对发送端工作时钟clk1进行n分频处理,得到发送端分频时钟clk_div1;发送端与接收端进行数据传输前进行链路同步,在完成链路同步后,发送端将clk1时钟域的大位宽数据,转换成低频的clk_div1时钟域的小位宽数据,再逐个发送出去,接收端再用接收端工作时钟clk2采样接收到的clk_div1时钟域的数据,将数据恢复到clk2时钟域。
[0007]进一步的,分频数根据结合相邻有效数据之间的传输等待时间确定的实际传输需要的有效带宽设置。
[0008]进一步的,链路同步包括以下步骤:
[0009]步骤A1,上电复位后,发送端和接收端均进入链路同步状态,接收端采样位置计数器在0~2n

1范围内循环计数;
[0010]步骤A2,接收端将同步信号sync拉低,发送至发送端;
[0011]步骤A3,发送端在clk_div1时钟域下,向接收端发送同步字f0f0f0f0;
[0012]步骤A4,接收端接收到同步字数字序列后,按照当前采样位置计数器的数值对同
步字进行间隔采样,找到同步字;
[0013]步骤A5,连续t次在同一采样点位置找到同步字,则认为链路同步完成;
[0014]步骤A6,接收端将同步信号sync拉高,发送端和接收端均跳出链路同步状态,发送端进入等待数据状态,接收端进入包头检测状态。
[0015]进一步的,数据传输包括以下步骤:
[0016]步骤B1,发送端检测到有效数据跳变,将该数据写入fifo数据缓存中,等待发送;
[0017]步骤B2,发送端处于等待数据状态,若fifo数据缓存不为空,则将数据读出,加上包头发送至接收端;
[0018]步骤B3,接收端按照链路同步阶段确定的采样位置,对发送端发送过来的数据进行采样,若检测到包头,则拉高包头有效标志,进入有效数据接收状态,依次采样得到有效数据;
[0019]步骤B4,有效数据接收完毕后,拉高数据接收完毕信号,并输出有效数据。
[0020]本专利技术还保护一种FPGA片间低速并行异步通信系统,采用上述FPGA片间低速并行异步通信方法,包括发送端和接收端,发送端配置有数据缓存单元、数据编码单元和发送链路同步单元,接收端配置有数据解码单元和接收链路同步单元;
[0021]所述发送链路同步单元,在上电复位后,直接进入链路同步状态,接收到接收端发送的拉低的同步信号sync后,发出同步字;并在链路同步完成后,跳出链路同步状态;
[0022]所述数据缓存单元,将大位宽且低跳变频率的待发送数据送到fifo中缓存;
[0023]所述数据编码单元,将fifo缓存中大位宽的待发送数据读出,转换成小位宽的低频数据,加上包头发送至接收端;
[0024]所述接收链路同步单元,在上电复位后,直接进入链路同步状态,向发送端发出拉低的同步信号sync;接收发送端的同步字,当检测到稳定的同步字后,将同步信号sync拉高,与发送端一起跳出链路同步状态,使得所述数据解析单元进入到有效数据接收状态;
[0025]所述数据解析单元,根据包头解析出有效数据,将小位宽的低频数据转换成大位宽且低跳变频率的数据。
[0026]本专利技术采用FPGA片间低速并行异步通信,在待传输数据位宽很大且信号跳变频率较小的情况下,完成不同片间/板间FPGA之间的异步通信和数据传输;通过有效带宽计算和匹配,避免大量无效带宽消耗,显著降低GPIO端口资源的使用量和片间的通信时钟频率,提高通信的稳定性。
附图说明
[0027]图1为系统应用场景示意图。
[0028]图2为FPGA片间低速并行异步通信解决方案的整体结构框图;
[0029]图3发送端状态转移图;
[0030]图4接收端状态转移图;
[0031]图5接收端同步训练过程;
[0032]图6发送端数据打包格式;
[0033]图7接收端数据解析格式。
具体实施方式
[0034]下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。
[0035]实施例1
[0036]在图1设定的应用场景中,需要在FPGA1

6之间实现数据传输,而这些FPGA分布于多个板卡上。在跨板的情况下,两片FPGA芯片的参考时钟是异步的,并且可能存在一定的频差。如何解决此应用场景下的FPGA片间通信,正是本专利技术探讨的问题。
[0037]本专利技术提供的FPGA片间低速并行异步通信解决方案的整体结构框图如图2所示,包括发送端和接收端,发送端配置有数据缓存单元、数据编码单元和发送链路同步单元,接收端配置有数据解码单元和接收链路同步单元。
[0038]对于AXI4标准总线,本实施例直接采用Xilinx提供的CHIP2CHIP的IP,将AXI总线接口转成高速serdes接口,FPGA片间直接使用serdes互联,serdes链路速率可达到8Gpbs。对于其他的一些本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA片间低速并行异步通信方法,其特征在于,对发送端工作时钟clk1进行n分频处理,得到发送端分频时钟clk_div1;发送端与接收端进行数据传输前进行链路同步,在完成链路同步后,发送端将clk1时钟域的大位宽数据,转换成低频的clk_div1时钟域的小位宽数据,再逐个发送出去,接收端再用接收端工作时钟clk2采样接收到的clk_div1时钟域的数据,将数据恢复到clk2时钟域。2.根据权利要求1所述的FPGA片间低速并行异步通信方法,其特征在于,分频数根据结合相邻有效数据之间的传输等待时间确定的实际传输需要的有效带宽设置。3.根据权利要求1或2所述的FPGA片间低速并行异步通信方法,其特征在于,链路同步包括以下步骤:步骤A1,上电复位后,发送端和接收端均进入链路同步状态,接收端采样位置计数器在0~2n

1范围内循环计数;步骤A2,接收端将同步信号sync拉低,发送至发送端;步骤A3,发送端在clk_div1时钟域下,向接收端发送同步字;步骤A4,接收端接收到同步字数字序列后,按照当前采样位置计数器的数值对同步字进行间隔采样,找到同步字;步骤A5,连续t次在同一采样点位置找到同步字,则认为链路同步完成;步骤A6,接收端将同步信号sync拉高,发送端和接收端均跳出链路同步状态,发送端进入等待数据状态,接收端进入包头检测状态。4.根据权利要求3所述的FPGA片间低速并行异步通信方法,其特征在于,数据传输包括以下步骤:步骤B1,发送端检测...

【专利技术属性】
技术研发人员:刘国成顾大晔王秋实周乐
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1