CN110489355B - 逻辑bram的映射方法及其系统 - Google Patents
逻辑bram的映射方法及其系统 Download PDFInfo
- Publication number
- CN110489355B CN110489355B CN201910765532.7A CN201910765532A CN110489355B CN 110489355 B CN110489355 B CN 110489355B CN 201910765532 A CN201910765532 A CN 201910765532A CN 110489355 B CN110489355 B CN 110489355B
- Authority
- CN
- China
- Prior art keywords
- mapping
- filling
- eram
- region
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请涉及集成电路领域,公开了一种逻辑BRAM的映射方法及其系统。该方法包括:根据待映射逻辑BRAM确定映射区域;根据映射区域获取适用的所有类型的ERAM及其对应工作模式的集合;遍历集合中工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充且不超出该映射区域,如果填充一个ERAM也会超出时,则在该方向上仅填充一个ERAM,并对剩余未填充的映射区域以递归的方式进行遍历填充直至其面积为0,得到填充结果,根据该填充结果更新该最优填充结果;遍历结束后,将待映射逻辑BRAM根据最优结果进行映射。本申请的实施方式中,在满足逻辑BRAM的映射区域的填充需求的同时,能够使得多种类型的ERAM资源得到充分合理利用,减少资源浪费。
Description
技术领域
本申请涉及集成电路领域,特别涉及逻辑BRAM的映射技术。
背景技术
在现有FPGA的逻辑BRAM映射过程中,一般针对单一类型的ERAM,用一块或多块ERAM填充成成逻辑BRAM的映射区域尺寸。
但是,FPGA中可能存在多种类型的ERAM资源,仅针对单一类型的ERAM进行填充时,可能因FPGA中剩余的任何单一类型的ERAM数量都不足以完成逻辑BRAM的映射区域的填充而造成填充失败;而且,即使FPGA中剩余的任何单一类型的ERAM数量都充足的情况下,仅针对单一类型的ERAM进行填充的结果往往会造成较多资源浪费。
发明内容
本申请的目的在于提供一种逻辑BRAM的映射方法及其系统,在满足逻辑BRAM的映射区域的填充需求的同时,能够使得多种类型的ERAM资源得到充分合理利用,减少资源浪费。
本申请公开了一种逻辑BRAM的映射方法,包括:
预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域;
根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合;
遍历所述集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到所述当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新所述最优填充结果;
所述遍历结束后,将所述待映射逻辑BRAM根据所述最优结果进行映射。
在一个优选例中,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,进一步包括:
使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,得到填充区域并根据剩余ERAM及其工作模式更新当前集合;
根据所述填充区域的外形边界切分所述映射区域得到剩余的至少一个映射子区域,如果所述至少一个映射子区域面积不为0,则以递归的方式遍历所述当前集合分别完成所述至少一个映射子区域的填充。
在一个优选例中,所述映射区域为方形区域,所述至少一个映射子区域是根据所述填充区域的外形边界切分所述映射区域得到的剩余的1个或2个或3个方形区域。
在一个优选例中,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域时,还包括:
所述填充时会动态更新所述集合中该ERAM的剩余数量,如果所述当前工作模式的ERAM耗尽时仍未填充完整当前行或列且该当前行或列为所述第一行或列,则保留该当前行或列,否则去除该当前行或列。
在一个优选例中,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域时,进一步包括:
使用所述当前工作模式的ERAM对所述映射区域先沿所述第一方向的第一行或列开始填充直到该行或列的剩余数据宽度或地址深度小于该ERAM的数据宽度或地址深度,再沿所述第二方向逐行或列填充直到当前映射区域的剩余地址深度或数据宽度小于该ERAM的地址深度或数据宽度;
其中,所述第一方向是数据宽度方向且所述第二方向是地址深度方向,或者所述第一方向是地址深度方向且所述第二方向是数据宽度方向。
在一个优选例中,所述遍历所述集合中所有工作模式之前,还包括:
将所述集合中的所有ERAM及其对应的工作模式按照地址深度由深到浅排序;或者,
将所述集合中的所有ERAM及其对应的工作模式按照数据宽度由大到小排序。
在一个优选例中,所述将所述当前工作模式对应的填充结果与所述最优填充结果进行比较以更新所述最优填充结果,进一步包括:
如果所述当前工作模式是遍历到的首个工作模式,则以所述当前工作模式对应的填充结果替换所述最优填充结果;
否则根据包含ERAM数量指标和浪费ERAM面积指标计算当前工作模式对应的填充结果的综合评价值,并与当前最优填充结果的综合评价值比较;
如果所述填充结果的综合评价值大于当前最优填充结果的综合评价值,则将所述当前工作模式对应的填充结果替换所述最优填充结果以更新所述最优填充结果,否则保留所述当前最优填充结果。
本申请还公开了一种逻辑BRAM的映射系统包括:
获取模块,用于预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域,并根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合;
遍历模块,用于遍历所述集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到所述当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新所述最优填充结果;
映射模块,用于所述遍历结束后,将所述待映射逻辑BRAM根据所述最优填充结果进行映射。
本申请还公开了一种逻辑BRAM的映射系统包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式中,首先预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域,根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合,并基于多种类型的ERAM资源进行映射区域的填充。这避免了现有技术中因FPGA中剩余的任何单一类型的ERAM数量都不足以完成逻辑BRAM的映射区域的填充而造成填充失败的问题,同时也弥补了现有技术中仅针对单一类型的ERAM进行填充时造成的资源浪费,在满足逻辑BRAM的映射区域的填充需求的同时,能够使得多种类型的ERAM资源得到充分合理利用,减少资源浪费。
进一步地,能在不同填充场景下最优化ERAM资源的填充过程,减少对ERAM资源的浪费。例如,对于待映射逻辑BRAM的映射区域的深度和宽度的比值较大时,可以先对集合中的所有类型的ERAM及其对应工作模式按照ERAM的地址深度从深到浅进行排序,基于排序结果遍历集合中的工作模式进行填充工作,可以提高填充效率。进一步地,在遍历集合时,针对遍历到的任一工作模式,使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,并对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,最大程度的优化了遍历填充过程。
进一步地,将消耗ERAM的数量和浪费ERAM的面积结合起来考量选择综合评价值较高的作为最优填充结果,这有助于合理分配多数电路场景下的ERAM。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的逻辑BRAM的映射方法流程示意图
图2是根据本申请第一实施方式的一个示例性待映射逻辑BRAM的映射区域示意图
图3是根据本申请第一实施方式的使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域的填充状态图
图4是根据本申请第一实施方式的一种情况下的填充区域示意图
图5是根据本申请第一实施方式的另一种情况下的填充区域示意图
图6是根据本申请第一实施方式的另一种情况下的填充区域示意图
图7(a)是根据本申请第一实施方式的另一种情况下的填充区域示意图
图7(b)是根据本申请第一实施方式的另一种情况下的填充区域示意图
图8是根据本申请第一实施方式的基于图7(a)所示填充区域的切分映射区域得到的剩余的1个方形区域示意图
图9是根据本申请第一实施方式的基于6所示填充区域的切分映射区域得到的剩余的2个方形区域示意图
图10是根据本申请第一实施方式的步骤103的遍历该集合中所有工作模式进行填充映射区域得到最优填充结果的一个实施例流程示意图;
图11是根据本申请第二实施方式的逻辑BRAM的映射系统结构示意图
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
FPGA:Field Programmable Gate Array,现场可编程逻辑阵列。其作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。
ERAM:Embeded Random Access Memory,嵌入式随机存取存储器。FPGA中定制的一种硬件存储资源,拥有固定的大小,可以根据地址和时钟进行随机存取。
BRAM:Block Random Access Memory。利用ERAM搭建的随机存取存储器,通常有逻辑BRAM和物理BRAM两种表达,其中逻辑BRAM表示用户根据电路需求自定义的随机存取存储器,物理BRAM表示FPGA中的物理资源,即ERAM。
Mapping:将电路设计映射为以FPGA硬件资源形式表达的过程,将逻辑BRAM映射到ERAM即是Mapping过程的一部分。
HBM:Hetero BRAM Mapping,一种利用多种类型ERAM进行Mapping的方法。
Partition:在逻辑BRAM的映射过程中,通常需要将逻辑BRAM进行切分,然后将每一个切分得到的小块映射到不同ERAM中,针对所有类型的逻辑BRAM进行切分的过程称为Partition。本申请中涉及的“填充”是与“切分”对应的反操作过程。
Working Mode:工作模式。ERAM往往有多种工作模式,比如单口或双口模式,多种位宽与地址深度等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种逻辑BRAM的映射方法,如图1所示流程图,该方法包括以下步骤101~104:
开始,在步骤101中:预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域;
之后,进行步骤102,根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合;
之后,进行步骤103:遍历该集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到该当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新该最优填充结果;
之后,进行步骤104:该遍历结束后,将该待映射逻辑BRAM根据该最优结果进行映射。
下面对各步骤进行具体描述:
首先,在步骤101中,预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域。
可选地,该步骤101中该映射区域为方形区域,其中该方形区域的一个边可以对应为待映射逻辑BRAM数据宽度,并且该方形区域的另一个边可以对应待映射逻辑BRAM的地址深度。例如图2所示的一个示例性待映射逻辑BRAM的映射区域示意图。
其次,在步骤102中,根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合。
具体的,FPGA中有各种类型的ERAM,例如可以包括容量为9K的ERAM、容量为32K的ERAM等。并且,每种类型的ERAM通常又有多种工作模式,例如,容量为9K的ERAM的工作模式可能包含1kx9,2kx4,4kx2,8kx1等,容量为32K的ERAM的工作模式可能包含1kx32,2kx16,4kx4,8kx2等。而并不是所有类型的ERAM的所有工作模式的都适合用于填充该映射区域,例如某一类型ERAM的某一工作模式的数据宽度远大于该映射区域的宽度。所以,在步骤102中,可以根据待映射的逻辑BRAM的特性(例如数据宽度和地址深度的比,单双口等)挑选适用的ERAM,以确定适用的所有类型的ERAM及其对应工作模式的集合。其中具体挑选方式不在本发明讨论范围内。
然后,在步骤103中,遍历该集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到该当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新该最优填充结果。
可选地,遍历该集合中所有工作模式,针对遍历到的任一工作模式进行填充ERAM得到最优填充结果后,再进行遍历到的下一个工作模式的填充工作,在进行下一个工作模式的填充工作前需要恢复集合中适用的所有类型的ERAM及其对应工作模式。
其中,该步骤103中“使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0”可以进一步包括以下子步骤A和B:
在子步骤A中,使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,得到填充区域并根据剩余ERAM及其工作模式更新当前集合;
然后进行子步骤B,根据该填充区域的外形边界切分该映射区域得到剩余的至少一个映射子区域,如果该至少一个映射子区域面积不为0,则以递归的方式遍历该当前集合分别完成该至少一个映射子区域的填充。
而且,该步骤103中的第一方向和第二方向的设定方式有多种。可选地,该第一方向可以是数据宽度方向且该第二方向是地址深度方向。可选地,该第一方向可以是地址深度方向且该第二方向是数据宽度方向。
进一步地,对应于上述第一方向和第二方向的多种设定方式,该步骤103中的“使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域”的实现方式也有多种。在一个实施例中,该第一方向是数据宽度方向且第二方向是地址深度方向,那么,其实现方式为:使用该当前工作模式的ERAM对该映射区域先沿该数据宽度方向的第一行开始填充直到该行的剩余数据宽度小于该ERAM的数据宽度,再沿地址深度方向逐行填充直到当前映射区域的剩余地址深度小于该ERAM的地址深度。在另一个实施例中,该第一方向是地址深度方向且该第二方向是数据宽度方向,那么其实现方式为:使用该当前工作模式的ERAM对该映射区域先沿地址深度方向的第一列开始填充直到该列的剩余地址深度小于该ERAM的地址深度,再沿数据宽度方向逐列填充直到当前映射区域的剩余数据宽度小于该ERAM的数据宽度。
可选地,该子步骤A中“使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域”时,还可以包括以下步骤:
填充时会动态更新该集合中该当前工作模式的ERAM的剩余数量,如果该ERAM耗尽时仍未填充完整当前行或列且该当前行或列为该第一行或列,则保留该当前行或列,否则去除该当前行或列。
为了能够更好地理解该步骤103中“使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域”的过程,下面举例说明。在该例子中,该待映射逻辑BRAM的映射区域示意图如图2所示,遍历该集合中所有工作模式,得到当前工作模式的ERAM,使用该ERAM从图2所示映射区域的0地址和0数据处开始填充逻辑BRAM,沿着数据宽度方向的第一行向右填充,直到即将超出映射区域的宽度,如图3所示,然后沿着地址深度方向逐行填充得到填充区域。其中,在填充的过程中可能存在以下多种情况:例如,图4示出了在当前工作模式数量足够的情况下的该填充区域示意图;或者,如果发现在某次填充后当前工作模式的ERAM资源耗尽(例如填充过程中会动态更新ERAM的剩余数量),但还没有填充完整当前行,则去除最后一行,如图5所示;或者,如果发现在某次填充后当前工作模式的ERAM资源耗尽,但还没有填充完整当前行且当前行恰好为第一行,则仍然保留该行,如图6所示;或者,如果在宽度或者深度方向,即使一个ERAM也会超出边界,则在该方向保留一个,如图7的(a)和(b)所示。需要指出,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
可选地,该子步骤B中的该至少一个映射子区域是根据该填充区域的外形边界切分该映射区域得到的剩余的1个或2个或3个方形区域。例如,对于图7(a)的填充区域的外形边界切分该映射区域可以得到如图8所示的第一映射子区域的1个方形区域。或者,对于图6所示的填充区域的外形边界切分该映射区域可以得到如图9所示的第一映射子区域和第二映射子区域的2个方形区域。
可选地,该步骤103中“遍历该集合中所有工作模式”之前还可以包括:对该集合中的所有ERAM及其对应的工作模式进行排序。在一个实施例中,可以将该集合中的所有ERAM及其对应的工作模式按照地址深度由深到浅排序,并按照该排序结果依次遍历该集合中所有工作模式。在另一个实施例中,可以将该集合中的所有ERAM及其对应的工作模式按照数据宽度由大到小排序,并按照该排序结果依次遍历该集合中所有工作模式。按照排序结果依次遍历该集合中所有工作模式可以提高遍历效率。
可选地,在步骤103中“对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0”的递归过程中,当前递归层所遍历的集合根据上一递归层的填充结果动态更新,即上一递归层填充使用的ERAM从当前集合中删除来更新当前递归层遍历的集合。
可选地,该步骤103中“将该当前工作模式对应的填充结果与该最优填充结果进行比较以更新该最优填充结果”可以进一步包括以下子步骤a和b:
在子步骤a.如果所述当前工作模式是遍历到的首个工作模式,则以所述当前工作模式对应的填充结果替换所述最优填充结果,否则根据包含ERAM数量指标和浪费ERAM面积指标计算当前工作模式对应的填充结果的综合评价值,并与当前最优填充结果的综合评价值比较;
之后进行子步骤b.如果所述当前工作模式对应的填充结果的综合评价值大于当前最优填充结果的综合评价值,则将所述当前工作模式对应的填充结果替换所述最优填充结果以更新所述最优填充结果,否则保留所述当前最优填充结果。
上述“综合评价值”根据包含ERAM数量指标和浪费ERAM面积指标计算,具体计算方法有多种。可选地,综合评价值=-(包含ERAM数量指标*浪费ERAM面积指标)。可选地,-综合评价值=包含ERAM数量指标和浪费ERAM面积指标的加权求和。等等。
图10为步骤103的遍历该集合中所有工作模式进行填充映射区域得到最优填充结果的一个实施例流程示意图。该实施例具体包括以下步骤1001~1010:
开始步骤1001,使用遍历到的当前工作模式的ERAM先沿数据宽度方向的第一行填充再沿地址深度方向逐行填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,得到填充区域。
之后进入步骤1002,根据该填充区域的外形边界切分该映射区域得到剩余的至少一个映射子区域。
之后进入步骤1003,判断:该至少一个映射子区域中是否有面积不为0?如果是,则之后进入步骤1004,以递归的方式分别完成面积不为0的映射子区域的填充直到该至少一个映射子区域中是否有面积为0,得到该当前工作模式对应的填充结果;否则之后进入步骤1005。
在步骤1004之后进入步骤1005,判断:该当前工作模式是否是遍历到的首个工作模式?如果是,进入步骤1006,以该当前工作模式对应的填充结果替换该最优填充结果;否则进入步骤1007,将该当前工作模式对应的填充结果与该最优填充结果进行比较以更新该最优填充结果。
在步骤1006或步骤1007之后进入步骤1008,判断:遍历是否结束?如果遍历结束,则进入步骤1009,得到最优填充结果;否则进入步骤1010,更换工作模式后返回步骤1001重复以上各步骤直至遍历结束,得到最优填充结果,其中在更换工作模式后需要恢复该集合中所有工作模式。
最后,在步骤104中,上述步骤103的遍历结束后,将该待映射逻辑BRAM根据该最优结果进行映射。
本申请的第二实施方式涉及一种逻辑BRAM的映射系统,其结构如图11所示,该逻辑BRAM的映射系统包括获取模块、遍历模块和映射模块。下面进行具体描述:
其中,该获取模块,用于预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域,并根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合。
可选地,该映射区域为方形区域,其中该方形区域的一个边可以对应为待映射逻辑BRAM数据宽度,并且该方形区域的另一个边可以对应待映射逻辑BRAM的地址深度。
可选地,该获取模块还用于根据待映射的逻辑BRAM的特性(例如数据宽度和地址深度的比,单双口等)挑选适用的ERAM,以确定适用的所有类型的ERAM及其对应工作模式的集合。
可选地,该逻辑BRAM的映射系统还包括排序模块,用于对该集合中的所有ERAM及其对应的工作模式进行排序。在一个实施例中,该排序模块用于将该集合中的所有ERAM及其对应的工作模式按照地址深度由深到浅排序,并按照该排序结果依次遍历该集合中所有工作模式。在另一个实施例中,该排序模块用于将该集合中的所有ERAM及其对应的工作模式按照数据宽度由大到小排序,并按照该排序结果依次遍历该集合中所有工作模式。
进一步地,该遍历模块,用于遍历该集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到该当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新该最优填充结果。
可选地,该遍历模块,还用于使用当前工作模式的ERAM沿第一方向和第二方向填充该映射区域且不超出该映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,得到填充区域并根据剩余ERAM及其工作模式更新当前集合,并根据该填充区域的外形边界切分该映射区域得到剩余的至少一个映射子区域,如果该至少一个映射子区域面积不为0,则以递归的方式遍历该当前集合分别完成该至少一个映射子区域的填充。
可选地,该至少一个映射子区域是根据该填充区域的外形边界切分该映射区域得到的剩余的1个、2个或3个方形区域。
可选地,该第一方向和该第二方向的设定方式有多种。可选地,该第一方向可以是数据宽度方向且该第二方向是地址深度方向。可选地,该第一方向可以是地址深度方向且该第二方向是数据宽度方向。
可选地,该遍历模块,还用于使用该当前工作模式的ERAM对该映射区域先沿该数据宽度方向的第一行开始填充直到该行的剩余数据宽度小于该ERAM的数据宽度,再沿地址深度方向逐行填充直到当前映射区域的剩余地址深度小于该ERAM的地址深度,其中该第一方向是数据宽度方向且第二方向是地址深度方向。或者,该遍历模块,还用于使用该当前工作模式的ERAM对该映射区域先沿地址深度方向的第一列开始填充直到该列的剩余地址深度小于该ERAM的地址深度,再沿数据宽度方向逐列填充直到当前映射区域的剩余数据宽度小于该ERAM的数据宽度,其中该第一方向是地址深度方向且该第二方向是数据宽度方向。
可选地,该遍历模块,还用于填充时会动态更新该集合中该当前工作模式的ERAM的剩余数量,如果该ERAM耗尽时仍未填充完整当前行或列且该当前行或列为该第一行或列,则保留该当前行或列,否则去除该当前行或列。
可选地,该遍历模块,还用于如果所述当前工作模式是遍历到的首个工作模式,则以所述当前工作模式对应的填充结果替换所述最优填充结果,否则根据包含ERAM数量指标和浪费ERAM面积指标计算当前工作模式对应的填充结果的综合评价值,并与当前最优填充结果的综合评价值比较,如果所述当前工作模式对应的填充结果的综合评价值大于当前最优填充结果的综合评价值,则将所述当前工作模式对应的填充结果替换所述最优填充结果以更新所述最优填充结果,否则保留所述当前最优填充结果。
上述“综合评价值”根据包含ERAM数量指标和浪费ERAM面积指标计算,具体计算方法有多种。可选地,综合评价值=-(包含ERAM数量指标*浪费ERAM面积指标)。可选地,-综合评价值=包含ERAM数量指标和浪费ERAM面积指标的加权求和值;等等。
进一步地,该映射模块用于该遍历模块的遍历结束后,将该待映射逻辑BRAM根据该最优填充结果进行映射。可选地,该映射模块还用于对映射得到的所有ERAM进行线网连接,包括地址,时钟,数据输入和输出等。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述逻辑BRAM的映射系统的实施方式中所示的各模块的实现功能可参照前述逻辑BRAM的映射方法的相关描述而理解。上述逻辑BRAM的映射系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述逻辑BRAM的映射系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本申请实施方式还提供一种逻辑BRAM的映射系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(CentralProcessing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,简称“DSP”)、专用集成电路(Application Specific IntegratedCircuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
Claims (10)
1.一种逻辑BRAM的映射方法,其特征在于,包括:
预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域;
根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合;
遍历所述集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到所述当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新所述最优填充结果;
所述遍历结束后,将所述待映射逻辑BRAM根据所述最优填充结果进行映射。
2.如权利要求1所述的逻辑BRAM的映射方法,其特征在于,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,进一步包括:
使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,得到填充区域并根据剩余ERAM及其工作模式更新当前集合;
根据所述填充区域的外形边界切分所述映射区域得到剩余的至少一个映射子区域,如果所述至少一个映射子区域面积不为0,则以递归的方式遍历所述当前集合分别完成所述至少一个映射子区域的填充。
3.如权利要求2所述的逻辑BRAM的映射方法,其特征在于,所述映射区域为方形区域,所述至少一个映射子区域是根据所述填充区域的外形边界切分所述映射区域得到的剩余的1个或2个或3个方形区域。
4.如权利要求2所述的逻辑BRAM的映射方法,其特征在于,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域时,还包括:
所述填充时会动态更新所述集合中该ERAM的剩余数量,如果所述当前工作模式的ERAM耗尽时仍未填充完整当前行或列且该当前行或列为第一行或列,则保留该当前行或列,否则去除该当前行或列。
5.如权利要求2所述的逻辑BRAM的映射方法,其特征在于,所述使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域时,进一步包括:
使用所述当前工作模式的ERAM对所述映射区域先沿所述第一方向的第一行或列开始填充直到该行或列的剩余数据宽度或地址深度小于该ERAM的数据宽度或地址深度,再沿所述第二方向逐行或列填充直到当前映射区域的剩余地址深度或数据宽度小于该ERAM的地址深度或数据宽度;
其中,所述第一方向是数据宽度方向且所述第二方向是地址深度方向,或者所述第一方向是地址深度方向且所述第二方向是数据宽度方向。
6.如权利要求1或2所述的逻辑BRAM的映射方法,其特征在于,所述遍历所述集合中所有工作模式之前,还包括:
将所述集合中的所有ERAM及其对应的工作模式按照地址深度由深到浅排序;或者,
将所述集合中的所有ERAM及其对应的工作模式按照数据宽度由大到小排序。
7.如权利要求1或2所述的逻辑BRAM的映射方法,其特征在于,所述将所述当前工作模式对应的填充结果与所述最优填充结果进行比较以更新所述最优填充结果,进一步包括:
如果所述当前工作模式是遍历到的首个工作模式,则以所述当前工作模式对应的填充结果替换所述最优填充结果;
否则根据包含ERAM数量指标和浪费ERAM面积指标计算当前工作模式对应的填充结果的综合评价值,并与当前最优填充结果的综合评价值比较;
如果所述填充结果的综合评价值大于当前最优填充结果的综合评价值,则将所述当前工作模式对应的填充结果替换所述最优填充结果以更新所述最优填充结果,否则保留所述当前最优填充结果。
8.一种逻辑BRAM的映射系统,其特征在于,包括:
获取模块,用于预先根据待映射逻辑BRAM的地址深度和数据宽度确定映射区域,并根据所确定的映射区域获取FPGA中适用的所有类型的ERAM及其对应工作模式的集合;
遍历模块,用于遍历所述集合中所有工作模式,针对遍历到的任一工作模式:使用当前工作模式的ERAM沿第一方向和第二方向填充所述映射区域且不超出所述映射区域,如果填充一个ERAM也会超出该映射区域时,则在该方向上仅填充一个ERAM,并且对剩余未填充的映射区域以递归的方式进行遍历填充直至剩余未填充的映射区域面积为0,得到所述当前工作模式对应的填充结果,将该填充结果与最优填充结果进行比较以更新所述最优填充结果;
映射模块,用于所述遍历结束后,将所述待映射逻辑BRAM根据所述最优填充结果进行映射。
9.一种逻辑BRAM的映射系统,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如权利要求1至7中任意一项所述的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至7中任意一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910765532.7A CN110489355B (zh) | 2019-08-19 | 2019-08-19 | 逻辑bram的映射方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910765532.7A CN110489355B (zh) | 2019-08-19 | 2019-08-19 | 逻辑bram的映射方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489355A CN110489355A (zh) | 2019-11-22 |
CN110489355B true CN110489355B (zh) | 2020-12-08 |
Family
ID=68551988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910765532.7A Active CN110489355B (zh) | 2019-08-19 | 2019-08-19 | 逻辑bram的映射方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489355B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609667B (zh) * | 2021-07-30 | 2024-03-15 | 深圳市创想三维科技股份有限公司 | 模型布局方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942014A (zh) * | 2014-04-29 | 2014-07-23 | 哈尔滨工业大学 | Fc-ae-1553协议接口卡存储器映射装置及存储器映射方法 |
CN107122565A (zh) * | 2017-05-12 | 2017-09-01 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2004241602B2 (en) * | 2003-05-20 | 2008-05-08 | Syndiant, Inc. | Digital backplane |
US7506298B1 (en) * | 2006-12-19 | 2009-03-17 | Xilinx, Inc. | Methods of mapping a logical memory representation to physical memory in a programmable logic device |
CN103927130B (zh) * | 2014-03-14 | 2016-10-05 | 山东大学 | 基于内存管理单元mmu的统一内外存架构 |
CN103997346B (zh) * | 2014-05-12 | 2017-02-15 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
EP3298740B1 (en) * | 2015-05-22 | 2023-04-12 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays |
CN107947801B (zh) * | 2017-11-24 | 2020-12-15 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多码率兼容ldpc码编码器 |
CN107894922B (zh) * | 2017-12-06 | 2020-08-28 | 西安智多晶微电子有限公司 | Ram资源分配方法 |
CN109446127B (zh) * | 2018-02-27 | 2020-03-24 | 上海安路信息科技有限公司 | 一种物理bram匹配方法 |
-
2019
- 2019-08-19 CN CN201910765532.7A patent/CN110489355B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942014A (zh) * | 2014-04-29 | 2014-07-23 | 哈尔滨工业大学 | Fc-ae-1553协议接口卡存储器映射装置及存储器映射方法 |
CN107122565A (zh) * | 2017-05-12 | 2017-09-01 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110489355A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10068033B2 (en) | Graph data query method and apparatus | |
CN111309258B (zh) | 一种b+树的存取方法、装置和计算机可读存储介质 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
KR102061466B1 (ko) | 메모리 관리를 위한 보존 가비지 콜렉팅 및 정수 태깅 기법 | |
CN110399096B (zh) | 分布式文件系统元数据缓存重删的方法、装置以及设备 | |
CN113282799B (zh) | 节点的操作方法、装置、计算机设备和存储介质 | |
CN110489355B (zh) | 逻辑bram的映射方法及其系统 | |
US20170075934A1 (en) | Method and system for handling binary large objects | |
CN110851434A (zh) | 一种数据存储方法、装置及设备 | |
CN114510474B (zh) | 基于时间衰减的样本删除方法及其装置、存储介质 | |
CN104035822A (zh) | 一种低开销的高效内存去冗余方法及系统 | |
CN108959359A (zh) | 一种统一资源定位符语义去重方法、装置、设备和介质 | |
CN113010570B (zh) | 电网设备矢量数据查询方法、装置、计算机设备和介质 | |
CN111125088B (zh) | 多层级数据处理方法和装置 | |
CN114119939A (zh) | 数据轻量化处理方法、装置、存储介质及电子设备 | |
CN105701128A (zh) | 一种查询语句的优化方法和装置 | |
CN107741968B (zh) | 一种文件检索的方法、系统、装置及计算机可读存储介质 | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN113468080A (zh) | 一种全闪元数据的缓存方法、系统及相关装置 | |
CN110765073A (zh) | 分布式存储系统的文件管理方法、介质、设备及装置 | |
CN114489481A (zh) | 硬盘存储数据并访问的方法及系统 | |
US20170147256A1 (en) | Memory storage recycling | |
CN113553215A (zh) | 一种基于环境信息的纠删码数据恢复优化方法及装置 | |
CN116383290B (zh) | 一种数据泛化解析方法 | |
CN110377237B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 200434 Room 202, building 5, No. 500, Memorial Road, Hongkou District, Shanghai Patentee after: Shanghai Anlu Information Technology Co.,Ltd. Address before: Floor 4, no.391-393, dongdaming Road, Hongkou District, Shanghai 200080 (centralized registration place) Patentee before: SHANGHAI ANLOGIC INFORMATION TECHNOLOGY Co.,Ltd. |