一种fpga虚拟io片间互连电路的制作方法

文档序号:9274453阅读:300来源:国知局
一种fpga虚拟io片间互连电路的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种FPGA虚拟1片间互连电路。
【背景技术】
[0002]自1985 年推出全球第一款 FPGA((Field-Programmable Gate Array,现场可编程门阵列)产品以来,FPGA便开始占据IC(Integrated Circuit,集成电路)设计验证的主流,并依赖其特有的优势开始逐渐替代单独的定制芯片。与此同时,随着微电子行业的急速发展,IC设计验证所需的逻辑资源也在急速增加,单独的FPGA所具有的逻辑资源往往不能满足IC设计验证的需求,这时就需要将2片甚至多片FPGA进行互联来拓展资源,但是由于FPGA片间互联占据过多的接口 1 (Input/Output,输入/输出),又严重局限了 IC设计验证的发展。
[0003]随着serdes (SERializer (串行器)/DESerializer (解串器)的简称)接口技术的出现,开始出现了一些采用时分多路复用(TDM)技术的虚拟1方案。但是由于低频率的标准时钟和固定的数据位宽所造成的低带宽、低速率、高误码率传输,严重局限了该技术方案的应用环境,这给IC设计验证提供的帮助并不是很大。

【发明内容】

[0004]鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种FPGA虚拟1片间互连电路。
[0005]为了解决上述问题,本发明实施例公开了一种FPGA虚拟1片间互连电路,包括:时钟模块,所述时钟模块用于提供时钟;发送FPGA端电路,所述发送FPGA端电路与所述时钟模块相连,所述发送FPGA端电路包括:数据编码模块,所述数据编码模块用于对输入的初始数据、数据控制信号以及数据有效信号进行统一编码,并生成编码数据;第一异步FIFO (First In First Out,先进先出),所述第一异步FIFO用于缓存所述数据编码模块根据所述时钟模块提供的编码时钟和异步FIFO写协议写入的所述编码数据;发送模块,所述发送模块用于根据异步FIFO读协议和所述时钟模块提供的并行时钟从所述第一异步FIFO读取至少两位数据,以及同时根据所述并行时钟产生差分串行时钟,并发送所述至少两位数据和所述差分串行时钟,直至发送全部所述编码数据;传输模块,所述传输模块与所述发送FPGA端电路相连,所述传输模块用于传输所述编码数据和所述差分串行时钟;接收FPGA端电路,所述接收FPGA端电路与所述传输模块和所述时钟模块分别相连,所述接收FPGA端电路包括:接收模块,所述接收模块用于接收所述至少两位数据和所述差分串行时钟,直至接收全部所述编码数据;第二异步FIF0,所述第二异步FIFO用于缓存所述接收模块根据所述异步FIFO写协议和所述差分串行时钟写入的所述至少两位数据,直至写入全部所述编码数据;数据解码模块,所述数据解码模块用于根据所述异步FIFO读协议和所述时钟模块提供的解码时钟从所述第二异步FIFO读取所述编码数据,并将所述编码数据同步解码成所述初始数据、所述数据控制信号以及所述数据有效信号。
[0006]优选地,所述数据控制信号的时钟与所述初始数据的时钟同步,所述数据控制信号、所述初始数据与所述数据有效信号同步有效。
[0007]优选地,所述编码数据包括η位数据,其中,所述数据有效信号位于所述η位数据的第η位,所述数据控制信号位于所述η位数据的第(η-1)位,所述初始数据位于所述η位数据的低(η-2)位,其中,η为大于2且可调整的整数。
[0008]优选地,所述传输模块为LVDS(Low-Voltage Differential Signaling,低压差分信号)差分通道。
[0009]优选地,所述编码时钟和所述解码时钟为频率可调整的时钟。
[0010]优选地,所述时钟模块包括晶振和与所述晶振相连的MMCM(Mixed-Mode ClockManager,混合模式时钟管理器)。
[0011 ] 优选地,所述编码时钟、所述并行时钟和所述解码时钟为由所述MMCM产生的同源时钟。
[0012]优选地,所述发送模块包括:并串转换模块,所述并串转换模块用于根据所述异步FIFO读协议和所述并行时钟从所述第一异步FIFO读取所述至少两位数据,并将所述至少两位数据分割成多段串行数据,以及同时产生串行数据参考时钟和根据所述并行时钟产生串行发送时钟,直至将全部所述编码数据分割成多段串行数据;串行器,所述串行器用于对所述多段串行数据进行比特串行化处理,并根据所述串行发送时钟发送所述比特串行化处理后的多段串行数据;0BUFDS(差分输出时钟缓冲器),所述OBUFDS用于将所述串行数据参考时钟处理为所述差分串行时钟,并发送所述差分串行时钟。
[0013]优选地,所述接收模块包括:解串器,所述解串器用于将所述比特串行化处理后的多段串行数据进行并行化恢复为所述多段串行数据;IBUFGDS(差分输入的全局时锺缓冲区),所述IBUFGDS用于将所述差分串行时钟处理为单端串行时钟;串并转换模块,所述串并转换模块用于根据所述单端串行时钟将所述多段串行数据并行化恢复为所述至少两位数据,直至恢复所述编码数据。
[0014]优选地,所述串行器和所述解串器分别包括serdes接口。
[0015]本发明实施例包括以下优点:
[0016]第一,采用深度可变的第一异步FIFO和第二异步FIF0,从而发送FPGA端电路和接收FPGA端电路可以根据IC设计和异步FIFO读写协议在很大的范围内随意改变第一异步FIFO和第二异步FIFO接口时钟的频率和数据的位宽,不仅大大增大了数据传输的速率和带宽,还大大增强了 IC设计验证的灵活性;
[0017]数据编码模块和数据解码模块进行有效精确的编解码,保证了数据的精确传输,降低了传输数据的误码率;
[0018]编码时钟、并行时钟和解码时钟为同源时钟,从而避免了因时钟相位偏差造成数据采样的偏差,降低了传输数据的误码率;
[0019]串行器和解串器分别包括serdes接口,从而可以采用serdes的时分多路复用技术的差分传输方法,减少了接口 10数量,降低了数据传输的误码率。
【附图说明】
[0020]图1是本发明的一种FPGA虚拟10片间互连电路实施例的结构框图;
[0021]图2是本发明的一种FPGA虚拟1片间互连电路实施例的结构示意图;
[0022]图3是本发明的一种FPGA虚拟1片间互连电路实施例中FPGA的结构框图;
[0023]图4是四个图3的FPGA进行虚拟1片间互连实施例的结构框图。
【具体实施方式】
[0024]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0025]本发明实施例的核心构思之一在于,提供一种面向跨时钟域的FPGA虚拟1片间互连方案,以实现在很大的范围内能够随意增加传输带宽和传输速率,并极大地降低误码率,从而给FPGA互联接口端的操作带来便利。
[0026]参照图1,示出了本发明的一种FPGA虚拟1片间互连电路实施例的结构框图,具体可以包括如下模块:时钟模块10、发送FPGA端电路20例如FPGA、传输模块30和接收FPGA端电路40例如FPGA。其中,时钟模块10用于提供时钟。发送FPGA端电路20与时钟模块10相连,发送FPGA端电路20包括:数据编码模块21、第一异步FIFO 22和发送模块23。数据编码模块21用于对输入的初始数据、数据控制信号以及数据有效信号进行统一编码,并生成编码数据。第一异步FIFO 22 (异步FIFO的写时钟和读时钟可具有不同的频率和相位)用于缓存数据编码模块21根据时钟模块10提供的编码时钟和异步FIFO写协议写入的编码数据。发送模块23用于根据异步FIFO读协议和时钟模块10提供的并行时钟从第一异步FIFO 22读取至少两位数据,以及同时根据并行时钟产生差分串行时钟,并发送至少两位数据和差分串行时钟,直至发送全部编码数据。传输模块30 (例如LVDS差分传输通道)与发送FPGA端电路20相连,传输模块30用于传输编码数据和差分串行时钟。接收FPGA端电路40与传输模块30和时钟模块10分别相连,接收FPGA端电路40包括:接收模块41、第二异步FIFO 42和数据解码模块43。接收模块41用于接收至少两位数据和差分串行时钟,直至接收全部编码数据。第二异步FIFO 42用于缓存接收模块41根据异步FIFO写协议和差分串行时钟写入的至少两位数据,直至写入全部编码数据。数据解码模块43用于根据异步FIFO读协议和时钟模块10提供的解码时钟从第二异步FIFO 42读取编码数据,并将编码数据同步解码成初始数据、数据控制信号以及数据有效信号。
[0027]优选地,数据控制信号的时钟与初始数据的时钟可以同步,数据控制信号、初始数据可以与数据有效信号同步有效。需要说明的是,数据控制信号、初始数据可以与数据有效信号同步有效表示为:当数据有效信号有效时,数据控制信号和初始数据有效,当数据有效信号无效时,数据控制信号和初始数据无效。
[0028]优选地,编码时钟和解码时钟可以为频率可调整的时钟。优选地,时钟模块10可以包括同源晶振11和与同源晶振11相连的MMCM。其中,同源晶振11可以为任意有源晶振、无源晶振中的一种。优选地,编码时钟、并行时钟和解码时钟可以为由MMCM产生的同源时钟。
[0029]优选地,编码数据可以包括η位数据,其中,I位数据有效信号位于η位数据的第η位,I位数据控制信号位于η位数据的第(η-1)位,(η_2)位初始数据位于η位数据的低(η-2)位,其中,η为大于2且可调整的整数。由于第一异步FIFO 22和第二异步FIFO 42深度可变,因此,发送FPGA端电路20和接收FPGA端电路40可以根据IC设计和异步FIFO读写协议在很大的范围内随意改变第一异步FIFO 22和第二异步FIFO 42接口数
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1