CN116028423A - 一种通过内置边缘模块实现数据传送的fpga - Google Patents
一种通过内置边缘模块实现数据传送的fpga Download PDFInfo
- Publication number
- CN116028423A CN116028423A CN202211622755.6A CN202211622755A CN116028423A CN 116028423 A CN116028423 A CN 116028423A CN 202211622755 A CN202211622755 A CN 202211622755A CN 116028423 A CN116028423 A CN 116028423A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- module
- resource
- port
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种通过内置边缘模块实现数据传送的FPGA,涉及FPGA技术领域,该FPGA内置边缘模块,FPGA内与边缘模块相连的每个资源模块的读端口同时接入绕线架构以及边缘模块,和/或写端口同时接入绕线架构以及边缘模块;边缘模块包括读写控制器以及缓存单元,读写控制器同时从多个资源模块的读端口中读取数据并暂存在缓存单元中,或者,读写控制器将缓存单元中暂存的数据同时写入多个资源模块的写端口。该FPGA通过内置的边缘模块可以同时对多个资源模块进行数据读写,从而实现高速、高带宽的数据传送,提高FPGA的性能。
Description
技术领域
本发明涉及FPGA领域,尤其是一种通过内置边缘模块实现数据传送的FPGA。
背景技术
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)内部包含大量的诸如CLB、BRAM、DSP、IOB之类的资源模块,这些资源模块通过绕线架构实现信号互连以实现所需的用户设计。近年来,人工智能应用和通信信号处理等领域对FPGA的运算能力和速度都提出了更高的性能要求,如何实现数据的高速传送成为了高容量FPGA发展过程中的技术重点。
发明内容
本申请人针对上述问题及技术需求,提出了一种通过内置边缘模块实现数据传送的FPGA,本申请的技术方案如下:
一种通过内置边缘模块实现数据传送的FPGA,该FPGA内置与FPGA内的多个资源模块相连的边缘模块,每个资源模块的读端口同时接入绕线架构以及边缘模块和/或写端口同时接入绕线架构以及边缘模块;
边缘模块包括读写控制器以及缓存单元,读写控制器同时从多个资源模块的读端口中读取数据并暂存在缓存单元中,或者,读写控制器将缓存单元中暂存的数据同时写入多个资源模块的写端口。
其进一步的技术方案为,边缘模块内置的缓存单元包括若干个读缓存单元和至少一个写缓存单元,读写控制器同时从多个资源模块的读端口中读取到的数据分别暂存在各个读缓存单元中,每个读缓存单元用于暂存从一个资源模块的读端口中读取到的数据;读写控制器同时向多个资源模块的写端口写入的数据来自于一个或多个写缓存单元,每个写缓存单元中的数据同时写入一个或多个资源模块的写端口。
其进一步的技术方案为,与边缘模块相连的资源模块同时具有读端口和写端口,读写控制器同时从同一个资源模块的读端口读取数据以及向资源模块的写端口写入数据。
其进一步的技术方案为,边缘模块内置的每个读缓存单元分别连接多个资源模块的读端口,每个资源模块的读端口分别通过三态选择器连接相应的读缓存单元,读写控制器控制各个三态选择器的通断、每次从读缓存单元连接的其中一个资源模块的读端口读取数据;边缘模块内置的每个写缓存单元分别连接多个资源模块的写端口,读写控制器每次将一个写缓存单元中的数据写入连接的所有资源模块的写端口或写入连接的部分资源模块的写端口。
其进一步的技术方案为,边缘模块内置的每个读缓存单元均同时连接各个写缓存单元,读写控制器向任意的第一资源模块的写端口写入的数据是读写控制器从其他的第二资源模块的读端口读取到的数据,读写控制器从第二资源模块的读端口读取数据并暂存到该第二资源模块的读端口连接的读缓存单元中,读写控制器控制将第二资源模块的读端口连接的读缓存单元中的数据写入第一资源模块的写端口连接的写缓存单元中,再将第一资源模块连接的写缓存单元中的数据写入第一资源模块的写端口。
其进一步的技术方案为,读写控制器同时向多个第一资源模块的写端口写入的数据,是读写控制器从其他的一个或多个第二资源模块的读端口读取到的数据;从每个第二资源模块的读端口读取到的数据写入一个或多个第一资源模块的写端口。
其进一步的技术方案为,与边缘模块相连的资源模块按照阵列结构排布,同一个读缓存单元连接位于同一列的多个资源模块的读端口,同一个写缓存单元连接位于同一列的多个资源模块的写端口;
读写控制器同时从位于同一行的多个第二资源模块的读端口读取数据,或者,读写控制器同时向位于同一行的多个第一资源模块的写端口写入数据。
其进一步的技术方案为,边缘模块的缓存单元还连接FPGA的片外读写口,读写控制器从资源模块的读端口读出并暂存在读缓存单元中的数据经由片外读写口传输至FPGA外部,或者,读写控制器向资源模块的写端口写入的数据是经由片外读写口由FPGA外部传入并暂存在写缓存单元中的;FPGA的片外读写口为高速串口和/或DDR IO口。
其进一步的技术方案为,边缘模块同时连接多个片外读写口,读写控制器将多个读缓存单元中暂存的数据分别经由多个片外读写口同时传输至FPGA外部,或者,读写控制器通过多个片外读写口将FPGA外部输入的数据同时写入多个写缓存单元中。
其进一步的技术方案为,边缘模块内置的缓存单元为FIFO,片外读写口对缓存单元的读写速度、与读写控制器对资源模块的读写速度相匹配。
其进一步的技术方案为,边缘模块还包括读写信号产生电路,读写信号产生电路连接资源模块的读写控制端口,读写控制器通过读写信号产生电路产生读写控制信号并发送给资源模块的读写控制端口,并根据读写控制信号从多个资源模块的读端口读取数据或同时向多个资源模块的写端口写入数据。
其进一步的技术方案为,边缘模块包括一个读写信号产生电路,读写信号产生电路连接所有资源模块的读写控制端口;或者边缘模块包括多个读写信号产生电路,每个读写信号产生电路连接一个或多个资源模块的读写控制端口,每个读写信号产生电路向所连接的资源模块的读写控制端口发送读写控制信号。
其进一步的技术方案为,与边缘模块相连的资源模块为BRAM模块,每个BRAM模块的读写控制端口包括读地址端口、读使能端口、写地址端口和写使能端口;
边缘模块内置的读写信号产生电路包括读地址产生器、读使能产生器、写地址产生器和写使能产生器,读地址产生器连接BRAM模块的读地址端口,读使能产生器连接BRAM模块的读地使能端口,写地址产生器连接BRAM模块的写地址端口,写使能产生器连接BRAM模块的写使能端口;
读写信号产生电路产生的读写控制信号包括读地址产生器产生的读地址、读使能产生器产生的读使能、写地址产生器产生的写地址和写使能产生器产生的写使能。
其进一步的技术方案为,同时与边缘模块相连的多个BRAM模块构成全片存储阵列,边缘模块中的读写控制器根据获取到的全片使能信号通过读写信号产生电路向各个BRAM模块提供对应的读使能和写使能,所述边缘模块中的读写控制器根据获取到的全片使能信号全片地址信号通过读写信号产生电路向各个BRAM模块提供对应的读地址和写地址。
本申请的有益技术效果是:
本申请公开了一种通过内置边缘模块实现数据传送的FPGA,该FPGA通过内置的边缘模块可以同时对多个资源模块进行数据读写,从而实现高速、高带宽的数据传送,提高FPGA的性能。
利用内置的边缘模块不仅可以实现FPGA片内不同资源模块间的高效数据传输,还可以实现FPGA片内外的高效数据传输,而且边缘模块的实现代价较低,适合各种大量数据处理的应用。
附图说明
图1是本申请一个实施例中的边缘模块与资源模块的连接示意图。
图2是本申请一个实施例中的边缘模块与资源模块和片外读写口的连接示意图。
图3是本申请一个实施例中边缘模块与BRAM模块的连接示意图。
图4是本申请另一个实施例中边缘模块与BRAM模块的连接示意图。
具体实施方式
下面结合附图对本申请的具体实施方式做进一步说明。
本申请公开了一种通过内置边缘模块实现数据传送的FPGA,请参考图1,该FPGA与常规FPGA一样,内置大量诸如CLB、BRAM、DSP、IOB之类的资源模块,这些资源模块一般按照阵列结构排布。除此之外,该FPGA还额外通过硬件资源内置边缘模块,新增的边缘模块与FPGA内原有的多个资源模块相连。该边缘模块一般内置在资源模块构成的阵列的底部,制作成本代价较低。
常规FPGA中,每个资源模块的读端口RD和/或写端口WD连接互联资源模块INT从而接入绕线架构,从而可以经由绕线架构与其他资源模块的读端口或写端口相连、实现两个资源模块之间的数据传输通信。本申请的FPGA在此基础上,在保留资源模块与绕线架构之间的数据通路的基础上,再将资源模块接入新增的边缘模块,则一个资源模块的读端口RD同时接入绕线架构以及边缘模块,和/或一个资源模块的写端口WD同时接入绕线架构以及边缘模块,使得该资源模块可以如传统做法经由绕线架构与其他资源模块实现数据传输通信,也可以经由边缘模块与其他连接边缘模块的资源模块实现数据传输通信。如图1所示,资源模块的写端口WD一般通过多路选择器连接互联资源模块INT和边缘模块,也即资源模块的写端口WD连接一个多路选择器的输出端,该多路选择器的一个输入端连接互联资源模块INT、另一个输入端连接边缘模块,通过控制多路选择器的选通状态,可以使得资源模块的写端口WD与互联资源模块INT形成通路或者与边缘模块之间形成通路。
在实际实现时,一个资源模块可以仅有读端口RD与边缘模块相连,或者仅有写端口WD与边缘模块相连,或者,如图1-图4所示例的,一个资源模块的读端口RD和写端口WD均与边缘模块相连。
边缘模块包括读写控制器以及缓存单元,资源模块与边缘模块的连接表现为:资源模块的读端口RD和/或写端口WD与边缘模块中的缓存单元相连,如图1-图4所示,图1-图4均未示出边缘模块中的读写控制器。
读写控制器同时从多个资源模块的读端口中读取数据并暂存在缓存单元中,或者,读写控制器将缓存单元中暂存的数据同时写入多个资源模块的写端口。也即利用本申请新增的边缘模块可以一次性同时对多个资源模块执行读操作或写操作,从而提高单次读写的数据位宽,可以实现PFGA片内的高速数据传送。比如每个资源模块有32位数据,按照常规做法,单次从一个资源模块中读取数据,单次读数据位宽为32位。在本申请的FPGA中,可以利用边缘模块同时从6个资源模块中读取数据,单次读数据位宽为192位,可以使得单次读数据位宽非常大,写操作同样如此。
为了避免读写操作的数据互相干扰,边缘模块内置的缓存单元包括若干个读缓存单元和至少一个写缓存单元,每个读缓存单元与对应的资源模块的读端口RD相连,每个写缓存单元与对应的资源模块的写端口WD相连。读写控制器同时从多个资源模块的读端口中读取到的数据分别暂存在各个读缓存单元中,每个读缓存单元用于暂存从一个资源模块的读端口读取到的数据。读写控制器同时向多个资源模块的写端口写入的数据来自于一个或多个写缓存单元,每个写缓存单元中的数据同时写入一个或多个资源模块的写端口。
基于此,当一个资源模块的读端口RD和写端口WD同时连接边缘模块时,读写控制器可以同时从该资源模块的读端口读取数据以及向该资源模块的写端口写入数据,也即对同一个资源模块的读写操作同时进行,读写互不影响。
由于读写控制器同时从多个资源模块的读端口读取到的数据需要暂存在不同的读缓存单元中,在一个实施例中,每个读缓存单元仅连接一个资源模块的读端口,则总能满足这一条件。或者在另一个实施例中,为了提高读缓存单元的复用性,一个读缓存单元同时连接多个资源模块的读端口,每个资源模块的读端口分别通过三态选择器连接相应的读缓存单元,读写控制器控制各个三态选择器的通断、每次从一个读缓存单元连接的其中一个资源模块中读取数据,读写控制器不对同一个读缓存单元相连的多个资源模块进行同时读取。
基于FPGA内部的资源模块按照阵列式结构排布的固有特征,当一个读缓存单元连接多个资源模块的读端口RD时,在一个实施例中,比较常用的结构是,如图1所示,每个读缓存单元同时连接位于同一列的多个资源模块的读端口RD,不同的读缓存单元连接不同列内的资源模块。则读写控制器在同时从多个资源模块的读端口RD读取数据时,这多个资源模块分别位于不同列,每次仅对一列中的一个资源模块读取数据。比如在图1中,与边缘模块相连的资源模块构成M行N列的阵列结构,则边缘模块包含N个读缓存单元分别写为读缓存单元1~读缓存单元N,读缓存单元1连接第一列的M个资源模块的读端口RD,读缓存单元N连接第N列的M个资源模块的读端口RD,其他以此类推。读写控制器可以控制从第1列、第2行的资源模块<2,1>中读取数据并暂存在读缓存单元1中,同时从第N列、第M行的资源模块<M,N>中读取数据并暂存在读缓存单元N中。
不管一个读缓存单元连接一个还是多个资源模块,读写控制器每次在从所连接的资源模块读取数据时,可以同时从所有读缓存单元各自连接的资源模块中读取数据,也可以同时从部分读缓存单元各自连接的资源模块中读取数据,实际实现时,也可以仅从一个读缓存单元连接的资源模块中读取数据。比如在图1中,假设N=40,则读写控制器可以同时从40个资源模块中同时读取数据并分别对应暂存在40个读缓存单元中,这40个资源模块分别位于不同列。或者,读取控制器可以仅从20个资源模块中同时读取数据并分别对应暂存在20个读缓存单元中,这20个资源模块分别位于不同列。或者也可以仅从其中一列的一个资源模块中读取数据并对应暂存在一个读缓存单元中。
读写控制器单次可以将一个写缓存单元中的数据写入一个或多个资源模块的写端口,写入的数据都是相同的,因此在一个实施例中,一个写缓存单元仅连接一个资源模块的写端口WD。或者在另一个实施例中,一个写缓存单元同时连接多个资源模块的写端口WD。与读缓存单元类似的,基于FPGA内部的资源模块按照阵列式结构的特征,当一个写缓存单元连接多个资源模块时,在一个实施例中,比较常见的,每个写缓存单元同时连接位于同一列的多个资源模块的写端口WD,不同的写缓存单元连接不同列内的资源模块。比如在图1中,与边缘模块相连的资源模块构成M行N列的阵列结构,则边缘模块包含N个写缓存单元分别写为写缓存单元1~写缓存单元N,写缓存单元1连接第一列的M个资源模块的写端口WD,写缓存单元N连接第N列的M个资源模块的写端口WD,其他以此类推。读写控制器每次将一个写缓存单元中的数据写入其连接的所有资源模块的写端口或写入其连接的部分资源模块的写端口。比如在图1中,可以将写缓存单元1中的数据同时写入第1列的全部M个资源模块,或者仅将写缓存单元1中的数据同时写入第1列的其中5个资源模块。
在边缘模块中包括多个写缓存单元时,在一个实施例中,读写控制器将所有写缓存单元中的数据同时对应写入各自连接的资源模块中,比如图1中边缘5模块包括N个写缓存单元,读写控制器将N个写缓存单元中的数据分别写入N列的资源模块,每一个写缓存单元中的数据又可以写入同一列的一个或多个资源模块。比如可以将写缓存单元1中的数据写入第1列第5行的资源模块以及第1列第10行的资源模块,同时,将写缓存单元2中的数据写入第2列第1行、第2列第2行、第2列第2行的资源模块,……将写缓存单元N中的数据0写入第N列所有M个资源模块中。
或者在另一个实施例中,读写控制器将部分写缓存单元中的数据同时对应写入各自连接的资源模块的写端口。比如同样在图1中,读写控制器只将写缓存单元1中的数据写入第1列的资源模块,同时将写缓存单元2中的数据写入第2列的资源模块,对其他各列的资源模块不写入数据。
5在一个实施例中,边缘模块内置的每个读缓存单元均同时连接各个写缓存单元。比如图1中,读缓存单元1分别连接N个写缓存单元,读缓存单元2分别连接N个写缓存单元,其他依次类推,使得任意一个读缓存单元中的数据都可以写入任意一个写缓存单元。基于该结构,读写控制器向任意的第一资源模
块的写端口写入的数据是该读写控制器从其他的第二资源模块的读端口读取到0的数据,在实现该功能时:读写控制器首先从第二资源模块的读端口读取数据并暂存到该第二资源模块的读端口连接的读缓存单元中,然后读写控制器控制将与第二资源模块的读端口连接的读缓存单元中的数据写入第一资源模块的写端口连接的写缓存单元中,再将第一资源模块的写端口连接的写缓存单元中的
数据写入第一资源模块的写端口。在该场景中,第一资源模块和第二资源模块5可以位于同一列或者位于不同列,利用边缘模块可以实现任意位置的第一资源模块和第二资源模块的数据传输。需要说明的是,在图2-图4的实施例中,读缓存单元与写缓存单元同样存在该实施例中的类似关系,但图2-图4中为了简化不再示出。
比如在图1中,第一资源模块是位于第15行第10列的资源模块<15,10>,0第二资源模块是位于第25行第10列的资源模块<25,10>。则读写控制器从资源模块<25,10>的读端口RD读取数据并暂存在读缓存单元10中,然后控制将读缓存单元10中的数据写入写缓存单元10中,然后将写缓存单元10中的数据写入资源模块<15,10>的写端口WD。
再比如在图1中,第一资源模块是位于第15行第10列的资源模块<15,10>,第二资源模块是位于第17行第1列的资源模块<17,1>。则读写控制器从资源模块<17,1>的读端口RD读取数据并暂存在读缓存单元1中,然后控制将读缓存单元1中的数据写入写缓存单元10中,然后将写缓存单元10中的数据写入资源模块<15,10>的写端口WD。
在此基础上,读写控制器同时向多个第一资源模块的写端口写入的数据,是读写控制器从其他的一个或多个第二资源模块的读端口读取到的数据,从每个第二资源模块的读端口读取到的数据被写入一个或多个第一资源模块的写端口。在将从一个第二资源模块的读端口读取到的数据写入多个第一资源模块的写端口时,这多个第一资源模块的写端口可以连接同一个写缓存单元,也可以连接不同写缓存单元,具体实现过程与上述实施例相同。
比如在图1中,第二资源模块是位于第17行第1列的资源模块<17,1>,多个第一资源模块包括位于第15行第10列的资源模块<15,10>、位于第16行第10列的资源模块<16,10>、位于第17行第10列的资源模块<17,10>。则读写控制器从资源模块<17,1>的读端口RD读取数据并暂存在读缓存单元1中,然后控制将读缓存单元1中的数据写入写缓存单元10中,然后将写缓存单元10中的数据同时写入资源模块<15,10>、资源模块<16,10>以及资源模块<17,10>的写端口。在该实施例中,这三个第一资源模块均写入从资源模块<17,1>读取的数据且连接同一个写缓存单元10。
再比如在图1中,第二资源模块是位于第17行第1列的资源模块<17,1>,多个第一资源模块包括位于第15行第10列的资源模块<15,10>、位于第16行第10列的资源模块<16,10>、位于第2行第2列的资源模块<2,2>。则读写控制器从资源模块<17,1>的读端口RD读取数据并暂存在读缓存单元1中,控制将读缓存单元1中的数据写入写缓存单元10以及写缓存单元2中,然后将写缓存单元10中的数据同时写入资源模块<15,10>和资源模块<16,10>的写端口,同时将写缓存单元2中的数据同时写入资源模块<2,2>的写端口。在该实例中,这三个第一资源模块均写入从资源模块<17,1>读取的数据但连接不同写缓存单元。
再比如在图1中,第二资源模块包括位于第17行第1列的资源模块<17,1>以及位于第17行第2列的资源模块<17,2>。第一资源模块包括位于第19行第1列的资源模块<19,1>以及位于第19行第2列的资源模块<19,2>。
读写控制器从资源模块<17,1>的读端口RD读取数据并暂存在读缓存单元1中,同时从资源模块<17,2>的读端口RD读取数据并暂存在读缓存单元2中。
然后控制将读缓存单元1中的数据写入写缓存单元1中、将读缓存单元2中的5数据写入写缓存单元2中。然后将写缓存单元1中的数据写入资源模块<19,1>
中,同时将写缓存单元2中的数据写入资源模块<19,2>中。在该实例中,同时向2个第一资源模块写入数据,且写入的数据来自于不同的第二资源模块。
在另一个实施例中,读写控制器同时从位于同一行的多个第二资源模块的读端口读取数据,或者,读写控制器同时向位于同一行的多个第一资源模块的0写端口写入数据。也即利用边缘模块,可以从阵列结构的资源模块中进行整行的数据读取,再整行写入另一行中,该实施例实现的读写过程具有非常重要的实际应用意义。
除了可以通过上述各个实施例实现FPGA内部的高效数据传输,请参考图2,该边缘模块的缓存单元还连接FPGA的片外读写口,读写控制器从资源模块5的读端口读出并暂存在读缓存单元中的数据经由片外读写口传输至FPGA外部,由此可以将FPGA中特定位置的资源模块的数据读出并传输到FPGA外部。
或者,读写控制器向资源模块的写端口写入的数据是经由片外读写口由FPGA外部传入并暂存在写缓存单元中的,由此可将FPGA外部的数据写入到FPGA内特定位置的资源模块中。
0FPGA的片外读写口为高速串口和/或DDR IO口,图2以高速串口采用高速收发器GTH为例。另外边缘模块同时连接多个片外读写口,读写控制器将多个读缓存单元中的数据分别经由多个片外读写口同时传输至FPGA外部,或者,
读写控制器通过多个片外读写口将FPGA外部输入的数据同时写入多个写缓存
单元中,从而实现FPGA的片内外的大带宽的数据传输。比如图2中,每个写5缓存单元分别连接一个GTH、每个读缓存单元分别连接一个GTH。则在该实施例中,边缘模块内置的缓存单元采用FIFO实现,以使得片外读写口对缓存单元的读写速度、与读写控制器对资源模块的读写速度相匹配。
本申请连接边缘模块的资源模块可以是FPGA内的各类资源模块,考虑到对于某些类别的资源模块,在对资源模块进行读写时,往往还需要给资源模块0的读写控制端口提供读写控制信号,比如对于BRAM模块,需要提供读地址和读使能,或者提供写地址和写使能。因此在一个实施例中,边缘模块还包括读写信号产生电路,读写信号产生电路连接资源模块的读写控制端口,读写控制器通过读写信号产生电路产生读写控制信号并发送给资源模块的读写控制端口,并根据读写控制信号从多个资源模块的读端口RD中读取数据或同时向多个资源模块的写端口WD写入数据。
在一个实施例中,与边缘模块相连的所有资源模块共用一个读写信号产生电路,则读写信号产生电路连接所有资源模块的读写控制端口。或者边缘模块包括多个读写信号产生电路,每个读写信号产生电路连接一个或多个资源模块的读写控制端口,每个读写信号产生电路向所连接的资源模块的读写控制端口发送读写控制信号。基于资源模块的阵列式排布架构,在一个实施例中,比较常见的做法是边缘模块包括多个读写信号产生电路,每个读写信号产生电路分别对应一列资源模块,每个读写信号产生电路连接位于同一列的多个资源模块的读写控制端口。
本申请利用边缘模块主要实现多资源模块的同时读写以提高数据传输效率,因此与边缘模块相连的资源模块通常是数据传输需求较大的资源模块,比如是BRMA模块、寄存器、信号点等。比较常见的,在一个实施例中,与FPGA内的边缘模块相连的资源模块为BRAM模块,则通过边缘模块可以同时对多个BRAM模块进行读写。
每个BRAM模块的读写控制端口包括读地址端口WA、读使能端口WEN、写地址端口RA和写使能端口REN。因此,当边缘模块连接的资源模块是BRAM模块时,边缘模块内置的每个读写信号产生电路包括读地址产生器、读使能产生器、写地址产生器和写使能产生器,读地址产生器连接BRAM模块的读地址端口WA,读使能产生器连接BRAM模块的读使能端口WEN,写地址产生器连接BRAM模块的写地址端口RA,写使能产生器连接BRAM模块的写使能端口REN。一个实施例中,每个读写信号产生电路连接一列BRAM模块时的电路结构,则如图3所示,当资源模块构成M行N列的阵列结构时,边缘模块包括读写信号产生电路1~读写信号产生电路N,分别用于连接N列资源模块。另一个实施例中,读写信号产生电路连接所有BRAM模块,电路结构如图4所示。
则每个读写信号产生电路产生的读写控制信号包括读地址产生器产生的读地址、读使能产生器产生的读使能、写地址产生器产生的写地址和写使能产生器产生的写使能。边缘模块通过读写信号产生电路向特定的BRAM模块提供有效电平的读使能以及读地址,读写控制器从读使能的BRAM模块的读端口RD读取该读地址中的数据。或者,边缘模块通过读写信号产生电路向特定的BRAM模块提供有效电平的写使能以及写地址,读写控制器向写使能的BRAM模块的
写端口WD的该写地址写入数据。基于同一列的BRAM模块的读端口RD均连5接同一个读缓存单元的结构,每一列一次只有一个BRAM模块接收到有效电平的读使能。但同一列可以有多个BRAM模块都接收到有效电平的写使能,从而向多个BRAM模块写入相同的数据。对于同一个BRAM模块的读写操作独立,同一个BRAM模块可以同时被读使能和写使能。
同时与边缘模块相连的多个BRAM模块可以构成全片存储阵列,边缘模块0中的读写控制器根据获取到的全片使能信号和全片地址信号对全片存储阵列进行读写,也即边缘模块中的读写控制器根据获取到的全片使能信号通过读写信号产生电路向各个BRAM模块提供对应的读使能和写使能,边缘模块中的读写控制器根据获取到的全片使能信号全片地址信号通过读写信号产生电路向各个BRAM模块提供对应的读地址和写地址。
Claims (14)
1.一种通过内置边缘模块实现数据传送的FPGA,其特征在于,所述FPGA内置与所述FPGA内的多个资源模块相连的边缘模块,每个所述资源模块的读端口同时接入绕线架构以及所述边缘模块和/或写端口同时接入绕线架构以及所述边缘模块;
所述边缘模块包括读写控制器以及缓存单元,所述读写控制器同时从多个资源模块的读端口中读取数据并暂存在所述缓存单元中,或者,所述读写控制器将所述缓存单元中暂存的数据同时写入多个资源模块的写端口。
2.根据权利要求1所述的FPGA,其特征在于,所述边缘模块内置的缓存单元包括若干个读缓存单元和至少一个写缓存单元,所述读写控制器同时从多个资源模块的读端口中读取到的数据分别暂存在各个读缓存单元中,每个读缓存单元用于暂存从一个资源模块的读端口中读取到的数据;所述读写控制器同时向多个资源模块的写端口写入的数据来自于一个或多个写缓存单元,每个写缓存单元中的数据同时写入一个或多个资源模块的写端口。
3.根据权利要求2所述的FPGA,其特征在于,与所述边缘模块相连的资源模块同时具有读端口和写端口,所述读写控制器同时从同一个资源模块的读端口读取数据以及向所述资源模块的写端口写入数据。
4.根据权利要求2所述的FPGA,其特征在于,所述边缘模块内置的每个读缓存单元分别连接多个资源模块的读端口,每个资源模块的读端口分别通过三态选择器连接相应的读缓存单元,所述读写控制器控制各个三态选择器的通断、每次从读缓存单元连接的其中一个资源模块的读端口读取数据;所述边缘模块内置的每个写缓存单元分别连接多个资源模块的写端口,所述读写控制器每次将一个写缓存单元中的数据写入连接的所有资源模块的写端口或写入连接的部分资源模块的写端口。
5.根据权利要求2所述的FPGA,其特征在于,所述边缘模块内置的每个读缓存单元均同时连接各个写缓存单元,所述读写控制器向任意的第一资源模块的写端口写入的数据是所述读写控制器从其他的第二资源模块的读端口读取到的数据,所述读写控制器从所述第二资源模块的读端口读取数据并暂存到所述第二资源模块的读端口连接的读缓存单元中,所述读写控制器控制将所述第二资源模块的读端口连接的读缓存单元中的数据写入所述第一资源模块的写端口连接的写缓存单元中,再将所述第一资源模块连接的写缓存单元中的数据写入所述第一资源模块的写端口。
6.根据权利要求5所述的FPGA,其特征在于,所述读写控制器同时向多个第一资源模块的写端口写入的数据,是所述读写控制器从其他的一个或多个第二资源模块的读端口读取到的数据;从每个第二资源模块的读端口读取到的数据写入一个或多个第一资源模块的写端口。
7.根据权利要求6所述的FPGA,其特征在于,与所述边缘模块相连的资源模块按照阵列结构排布,同一个读缓存单元连接位于同一列的多个资源模块的读端口,同一个写缓存单元连接位于同一列的多个资源模块的写端口;
所述读写控制器同时从位于同一行的多个第二资源模块的读端口读取数据,或者,所述读写控制器同时向位于同一行的多个第一资源模块的写端口写入数据。
8.根据权利要求2所述的FPGA,其特征在于,所述边缘模块的缓存单元还连接所述FPGA的片外读写口,所述读写控制器从资源模块的读端口读出并暂存在读缓存单元中的数据经由所述片外读写口传输至所述FPGA外部,或者,所述读写控制器向资源模块的写端口写入的数据是经由所述片外读写口由所述FPGA外部传入并暂存在所述写缓存单元中的;所述FPGA的片外读写口为高速串口和/或DDRIO口。
9.根据权利要求7所述的FPGA,其特征在于,所述边缘模块同时连接多个片外读写口,所述读写控制器将多个读缓存单元中暂存的数据分别经由多个片外读写口同时传输至所述FPGA外部,或者,所述读写控制器通过多个片外读写口将所述FPGA外部输入的数据同时写入多个写缓存单元中。
10.根据权利要求7所述的FPGA,其特征在于,所述边缘模块内置的缓存单元为FIFO,所述片外读写口对所述缓存单元的读写速度、与所述读写控制器对资源模块的读写速度相匹配。
11.根据权利要求2所述的FPGA,其特征在于,所述边缘模块还包括读写信号产生电路,所述读写信号产生电路连接资源模块的读写控制端口,所述读写控制器通过所述读写信号产生电路产生读写控制信号并发送给资源模块的读写控制端口,并根据所述读写控制信号从多个资源模块的读端口读取数据或同时向多个资源模块的写端口写入数据。
12.根据权利要求11所述的FPGA,其特征在于,所述边缘模块包括一个读写信号产生电路,所述读写信号产生电路连接所有资源模块的读写控制端口;或者所述边缘模块包括多个读写信号产生电路,每个读写信号产生电路连接一个或多个资源模块的读写控制端口,每个读写信号产生电路向所连接的资源模块的读写控制端口发送读写控制信号。
13.根据权利要求11所述的FPGA,其特征在于,与所述边缘模块相连的资源模块为BRAM模块,每个BRAM模块的读写控制端口包括读地址端口、读使能端口、写地址端口和写使能端口;
所述边缘模块内置的读写信号产生电路包括读地址产生器、读使能产生器、写地址产生器和写使能产生器,所述读地址产生器连接BRAM模块的读地址端口,所述读使能产生器连接BRAM模块的读地使能端口,所述写地址产生器连接BRAM模块的写地址端口,所述写使能产生器连接BRAM模块的写使能端口;
所述读写信号产生电路产生的读写控制信号包括所述读地址产生器产生的读地址、读使能产生器产生的读使能、写地址产生器产生的写地址和写使能产生器产生的写使能。
14.根据权利要求13所述的FPGA,其特征在于,同时与所述边缘模块相连的多个BRAM模块构成全片存储阵列,所述边缘模块中的读写控制器根据获取到的全片使能信号通过读写信号产生电路向各个BRAM模块提供对应的读使能和写使能,所述边缘模块中的读写控制器根据获取到的全片使能信号全片地址信号通过读写信号产生电路向各个BRAM模块提供对应的读地址和写地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211622755.6A CN116028423A (zh) | 2022-12-16 | 2022-12-16 | 一种通过内置边缘模块实现数据传送的fpga |
US18/347,642 US20230359573A1 (en) | 2022-12-16 | 2023-07-06 | Field programmable gate array (fpga) for implementing data transmission by using built-in edge module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211622755.6A CN116028423A (zh) | 2022-12-16 | 2022-12-16 | 一种通过内置边缘模块实现数据传送的fpga |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116028423A true CN116028423A (zh) | 2023-04-28 |
Family
ID=86072385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211622755.6A Pending CN116028423A (zh) | 2022-12-16 | 2022-12-16 | 一种通过内置边缘模块实现数据传送的fpga |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028423A (zh) |
-
2022
- 2022-12-16 CN CN202211622755.6A patent/CN116028423A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3106998B2 (ja) | メモリ付加型プログラマブルロジックlsi | |
KR102424962B1 (ko) | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 | |
CN101751980B (zh) | 基于存储器知识产权核的嵌入式可编程存储器 | |
US8724423B1 (en) | Synchronous two-port read, two-port write memory emulator | |
US7990798B2 (en) | Integrated circuit including a memory module having a plurality of memory banks | |
CN101840383B (zh) | 支持连续/离散地址多数据并行访问的可配置存储器 | |
US20240099034A1 (en) | Llc chip, cache system and method for reading and writing llc chip | |
US10908846B2 (en) | Memory system and operation method thereof | |
CN108139989A (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
US9361973B2 (en) | Multi-channel, multi-bank memory with wide data input/output | |
US20070162689A1 (en) | Memory controller, memory module and memory system having the same, and method of controlling the memory system | |
US11281397B2 (en) | Stacked memory device performing function-in-memory (FIM) operation and method of operating the same | |
JPH0792790B2 (ja) | ベクトル並列計算機 | |
CN105528311A (zh) | 一种基于数据包的存储器读写电路及方法 | |
US11113211B2 (en) | Memory device supporting rank-level parallelism and memory system including the same | |
CN116028423A (zh) | 一种通过内置边缘模块实现数据传送的fpga | |
CN111694513A (zh) | 包括循环指令存储器队列的存储器器件和方法 | |
US20230359573A1 (en) | Field programmable gate array (fpga) for implementing data transmission by using built-in edge module | |
US20230195368A1 (en) | Write Request Buffer | |
CN216014252U (zh) | 基于hp接口的多通道数据采集存储回放卡及系统 | |
CN109388344B (zh) | 一种基于带宽扩展交叉编址的双端口sram访问控制系统及方法 | |
CN116490925A (zh) | 存储器电路架构 | |
CN109147839B (zh) | 一种兼具伊辛计算和随机存储访问功能的装置及系统 | |
TWI828052B (zh) | 基於晶體堆疊架構的計算機系統和記憶體管理方法 | |
CN111599391B (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 |