一种现场可编程逻辑芯片内部存储器映射装置及方法

文档序号:6519958阅读:194来源:国知局
一种现场可编程逻辑芯片内部存储器映射装置及方法
【专利摘要】本发明公开了一种现场可编程逻辑芯片内部存储器映射装置,该装置包括:输入模块,接收存储映射性能要求、用户逻辑存储大小及用户选择的优化策略;延时影响因素提取模块,通过对于不同型号FPGA内部结构的实验,得到与访存关键路径延时有关的影响因素;关系式拟合模块,根据延时影响因素及延时测试结果,拟合得到访存关键路径延时与延时影响因素之间的关系式;物理存储单元配置产生模块,根据所述关系式和映射性能要求对物理存储单元进行配置。本发明还公开了一种可编程逻辑芯片内部存储器映射方法。本发明以性能要求作为第一目标,在该前提下进行功耗或者资源的优化,资源和功耗消费较小,映射算法复杂度为常数,在很短的时间内就能够完成映射功能。
【专利说明】一种现场可编程逻辑芯片内部存储器映射装置及方法
【技术领域】
[0001]本发明涉及计算机辅助设计【技术领域】,尤其是一种现场可编程逻辑芯片(FPGA)内部存储器映射装置及方法。
【背景技术】
[0002]由于能够使设计者的设计制造成本减少、设计周期缩短,FPGA (FieldProgrammable Gate Array) —诞生就得到了快速的发展。由于集成电路节点的不断发展,FPGA能够容纳的晶体管数不断增加,能够实现的电路功能不断增强。正是由于上述原因,当今的FPGA能够用来实现整个数字电路系统。为了适应系统对数据存储的需求,很多FPGA厂商将物理存储单元作为一种独立的存储资源集成到FPGA芯片当中。
[0003]但是由于一个物理存储单元只能实现有限的存储容量,因此当系统对存储需求较大时,必须使用一个或多个物理存储单元来共同实现设计者对逻辑存储的需求。这种使用一个或多个物理存储单元来实现逻辑存储的方法(或过程)叫存储器映射。
[0004]目前的存储器映射策略包括:资源最优型、功耗最低型和延时最小型。资源最优型策略保证使用的物理存储单元的总数最少,但不能保证延时能够达到设计者对性能的要求,并且这种设计方法往往导致较大的功耗;功耗最低型策略保证映射成的逻辑存储消耗的功耗最低,但使用的物理存储单元的总数较高,也不能保证延时能够达到设计者对性能的要求;延时最小型策略使得映射的逻辑存储延时最小,有时甚至超过设计者对性能的要求,但由于性能与资源、性能与功耗之间是一种权衡关系,性能高,往往是以牺牲资源和功耗为代价的,而过高的性能(超出设计者对性能的要求)将会导致资源和功耗的浪费。
[0005]随着系统对存储需求的增加,使用FPGA内部物理存储单元的总数也随之增加,但资源最优型、功耗最低型以及延时最小型存储器映射方法产生的映射结果延时往往较大,并可能称为整个系统的时序瓶颈。虽然延时最小型映射策略能够广生延时最小的映射结果,有时甚至超过设计者对性能的要求,但其并不能优化资源和功耗。本发明公开一种存储器映射装置及方法,其将满足设计者对性能的要求作为第一目标,在满足这一目标的前提下进行功耗或者资源的优化。

【发明内容】

[0006]为了解决上述技术问题,本发明提供一种现场可编程逻辑芯片(FPGA)内部存储器映射装置及方法。
[0007]根据本发明的一方面,提出一种现场可编程逻辑芯片(FPGA)内部存储器映射装置,该装置包括:输入模块、延时影响因素提取模块、关系式拟合模块和配置产生模块,其中:
[0008]所述输入模块与所述延时影响因素提取模块连接,用于接收、存储映射性能要求、用户逻辑存储大小及用户选择的优化策略;
[0009]所述延时影响因素提取模块与所述输入模块和所述关系式拟合模块连接,用于通过对于不同型号FPGA内部结构的实验,得到与访存关键路径延时有关的影响因素;
[0010]所述关系式拟合模块与所述延时影响因素提取模块和所述物理存储单元配置产生模块连接,用于根据所述延时影响因素提取模块提取得到的延时影响因素以及延时测试结果,拟合得到访存关键路径延时与延时影响因素之间的关系式;
[0011]所述物理存储单元配置产生模块与所述关系式拟合模块连接,用于根据所述关系式拟合模块得到的访存关键路径延时与延时影响因素之间的关系式和所述输入模块得到的映射性能要求,对需要的物理存储单元进行配置。
[0012]根据本发明的另一方面,还提出一种根据所述映射装置对可编程逻辑芯片(FPGA)内部存储器进行映射的方法,该方法包括以下步骤:
[0013]步骤I,根据用户输入的逻辑存储宽度width和深度depth以及每个物理存储单元的存储容量cap初步得到需要的物理存储单元的总数mem ;
[0014]步骤2,根据关系式拟合模块拟合得到的访存关键路径延时D与延时影响因素之间的关系式以及用户输入的时序约束D,得到满足不等式a+bXmenf+dXmuxe ( D的最大选通器的级数mux;
[0015]步骤3,利用用户输入的逻辑存储深度cbpth和最大选通器的级数mux,得到关键路径部分每个物理存储单元的配置深度d。;
[0016]步骤4,根据所述每个物理存储单元的配置深度d。,从物理存储单元配置模式中找到相应的配置宽度W。;
[0017]步骤5,根据用户输入的逻辑存储宽度width以及所述步骤4得到的配置宽度W。,得到构成关键路径的物理存储单元的组数g ;
[0018]步骤6,根据所述步骤4得到的配置宽度W。、用户输入的逻辑存储宽度width以及所述步骤5得到的组数g,得到非关键路径部分的位宽A ;
[0019]步骤7,根据用户选择的优化策略执行相应的步骤:如果用户选择的优化策略为功耗最小策略,则执行步骤8-9,并跳过步骤10-16,执行步骤17以及后续步骤;如果用户选择资源优化策略,则跳过步骤8-9并执行步骤10-17以及后续步骤;
[0020]步骤8,从物理存储单元配置模式中找到满足式wM ^ Wr的最小物理存储单元配置位宽Wm ;
[0021]步骤9,根据所述步骤8得到的物理存储单元配置位宽wM和用户输入的逻辑存储深度depth,得到构成非关键路径的物理存储单元的个数menv ;
[0022]步骤10,将物理存储单元的所有配置模式按配置宽度由大到小形成数组wM[i],相应的配置深度形成数组dM[i];
[0023]步骤11,按配置位宽由大到小的顺序遍历物理存储单元所有的配置位宽,根据每个配置位宽得到构成非关键路径的物理存储单元的初始配置数组e[i];
[0024]步骤12,根据所述步骤11得到的初始配置数组e[i]和用户输入的逻辑存储深度depth,得到构成非关键路径的物理存储单元总数menir ;
[0025]步骤13,将所述步骤12得到的mem,和所述步骤11得到的配置数组e[i]暂存到存储器 memtenip 和 etenip ; [0026]步骤14,找到满Metemp[i]关O的最大索引系数i,将etemp[i]的值置为零,且将etemp[1-l]加 I ;[0027]步骤15,根据暂存的配置数组etemp[i]和用户输入的逻辑存储深度d印th,得到构成非关键路径的物理存储单元暂存总数Hiemtfaiip ;
[0028]步骤16,判断如果构成非关键路径的物理存储单元暂存总数memt?p与构成非关键路径的物理存储单元总数menir满足:memtemp ( memr,则将memtemp的值赋给menir,将数组etemp[i]的值赋给e[i],并重新执行步骤14-16 ;否则执行步骤17以及后续步骤;
[0029]步骤17,根据组数g、选通器级数mux以及构成非关键路径的物理存储单元总数memr,得到被使用的物理存储单元的总数mem。
[0030]本发明所取得的有益效果为:
[0031](I)与资源最优型、功耗最低型映射策略相比,本发明将设计者对性能的要求作为第一目标,确保能够满足设计者对性能的要求;
[0032](2)与延时最小型映射策略相比,本发明能够满足设计者对性能的要求,并且不会过高的超出设计者对性能的要求,从而不会导致较大的资源和功耗的浪费;
[0033](3)本发明的映射算法复杂度为常数,即在很短的时间内就能够完成映射功能。
【专利附图】

【附图说明】
[0034]图1是本发明提出的现场可编程逻辑芯片(FPGA)内部存储器映射装置结构示意图;
[0035]图2是本发明提出的现场可编程逻辑芯片(FPGA)内部存储器映射方法流程图。【具体实施方式】
[0036]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0037]根据本发明的一方面,提出一种现场可编程逻辑芯片(FPGA)内部存储器映射装置,如图1所示,该装置包括:输入模块、延时影响因素提取模块、关系式拟合模块和物理存储单元配置产生模块,其中:
[0038]所述输入模块与所述延时影响因素提取模块连接,用于接收、存储映射性能要求、用户逻辑存储大小及用户选择的优化策略等,所述映射性能要求至少包括用户的时序约束等;
[0039]所述延时影响因素提取模块与所述输入模块和所述关系式拟合模块连接,用于通过对于不同型号FPGA内部结构的实验,得到与访存关键路径延时有关的影响因素;目前,通过实验发现不同种类的FPGA芯片映射成的逻辑存储的关键路径延时与下列两个因素有关:实现物理存储单元输出数据选通的选通器级数和所使用的物理存储单元的总数。
[0040]在所述延时影响因素提取模块中:
[0041]首先,利用传统的三种存储器映射方法(资源最小策略、功耗最小策略和延时最小策略)对目标FPGA芯片进行一系列逻辑存储宽度width和深度cbpth的不同的实验,记录每种逻辑大小下对应的访存延时D、选通器的级数mux以及被使用的物理存储单元的总数mem,列出三个表格。
[0042]其次,从上述三个表中观察得到随着访存延时增大时,其他因素的变化规律,即根据记录的延时测试结果确定与访存延时有关的因素。该实验中初步确定与访存延时有关的两个影响因素为选通器的级数以及所使用的物理存储单元的总数,并假设访存延时与上述两个影响因素之间的关系为简单多项式关系D=a+b Xmemt^dXmuxfi,其中a, b, c, d, e为待确定的常数。
[0043]所述关系式拟合模块与所述延时影响因素提取模块和所述物理存储单元配置产生模块连接,用于根据所述延时影响因素提取模块提取得到的延时影响因素以及延时测试结果(三个表格),比如可以利用Matlab中cvfit拟合工具,拟合得到访存关键路径延时D与延时影响因素之间的具体数学关系式,即确定所述假设的多项式中每个常数(a,b, c, d, e)的值,不同种类的FPGA芯片因为内部不同的逻辑资源结构、不同的布线资源结构和不同的工艺,曲线拟合所产生的数学关系式也不同,即不同型号芯片对应不同的数学关系式。
[0044]所述物理存储单元配置产生模块与所述关系式拟合模块连接,用于根据所述关系式拟合模块得到的访存关键路径延时D与延时影响因素之间的上述关系式和所述输入模块得到的设计者对映射性能的要求,对需要的物理存储单元进行配置。
[0045]根据本发明的另一方面,还提出一种现场可编程逻辑芯片(FPGA)内部存储器映射方法,如图2所示,该方法包括以下步骤:
[0046]步骤I,根据用户输入的逻辑存储宽度width和深度depth以及每个物理存储单元的存储容量cap初步得到需要的物理存储单元的总数mem ;
[0047]步骤2,根据关系式拟合模块拟合得到的访存关键路径延时D与延时影响因素之间的关系式以及用户输入的时序约束D,得到可以满足不等式a+bXmenf+dXmux6 ( D的最大选通器的级数mux; [0048]步骤3,利用用户输入的逻辑存储深度cbpth和最大选通器的级数mux,得到关键路径部分每个物理存储单元的配置深度d。;
[0049]该步骤根据下式计算出所述配置深度d。:.depth
[0050]
【权利要求】
1.一种可编程逻辑芯片内部存储器映射装置,其特征在于,该装置包括:输入模块、延时影响因素提取模块、关系式拟合模块和物理存储单元配置产生模块,其中: 所述输入模块与所述延时影响因素提取模块连接,用于接收、存储映射性能要求、用户逻辑存储大小及用户选择的优化策略; 所述延时影响因素提取模块与所述输入模块和所述关系式拟合模块连接,用于通过对于不同型号FPGA内部结构的实验,得到与访存关键路径延时有关的影响因素; 所述关系式拟合模块与所述延时影响因素提取模块和所述物理存储单元配置产生模块连接,用于根据所 述延时影响因素提取模块提取得到的延时影响因素以及延时测试结果,拟合得到访存关键路径延时与延时影响因素之间的关系式; 所述物理存储单元配置产生模块与所述关系式拟合模块连接,用于根据所述关系式拟合模块得到的访存关键路径延时与延时影响因素之间的关系式和所述输入模块得到的映射性能要求,对需要的物理存储单元进行配置。
2.根据权利要求1所述的装置,其特征在于,所述映射性能要求至少包括用户的时序约束。
3.根据权利要求1所述的装置,其特征在于,所述影响因素包括实现物理存储单元输出数据选通的选通器级数和所使用的物理存储单元的总数。
4.根据权利要求1所述的装置,其特征在于,在所述延时影响因素提取模块中,首先对目标FPGA芯片进行一系列逻辑存储宽度width和深度depth的不同的实验,记录每种逻辑大小下对应的访存延时D、选通器的级数mux以及被使用的物理存储单元的总数mem ;其次,根据记录的延时测试结果确定与访存延时有关的因素,并假设访存延时与影响因素之间的关系为简单多项式关系。
5.根据权利要求1所述的装置,其特征在于,不同型号的芯片对应不同的数学关系式。
6.一种根据权利要求1所述的映射装置对可编程逻辑芯片内部存储器进行映射的方法,其特征在于,该方法包括以下步骤: 步骤1,根据用户输入的逻辑存储宽度width和深度cbpth以及每个物理存储单元的存储容量cap初步得到需要的物理存储单元的总数mem ; 步骤2,根据关系式拟合模块拟合得到的访存关键路径延时D与延时影响因素之间的关系式以及用户输入的时序约束D,得到满足不等式a+bXmenf+dXmux6 ( D的最大选通器的级数mux ; 步骤3,利用用户输入的逻辑存储深度depth和最大选通器的级数mux,得到关键路径部分每个物理存储单元的配置深度d。; 步骤4,根据所述每个物理存储单元的配置深度d。,从物理存储单元配置模式中找到相应的配置宽度W。; 步骤5,根据用户输入的逻辑存储宽度width以及所述步骤4得到的配置宽度w。,得到构成关键路径的物理存储单元的组数g ; 步骤6,根据所述步骤4得到的配置宽度W。、用户输入的逻辑存储宽度width以及所述步骤5得到的组数g,得到非关键路径部分的位宽A ; 步骤7,根据用户选择的优化策略执行相应的步骤:如果用户选择的优化策略为功耗最小策略,则执行步骤8-9,并跳过步骤10-16,执行步骤17以及后续步骤;如果用户选择资源优化策略,则跳过步骤8-9并执行步骤10-17以及后续步骤; 步骤8,从物理存储单元配置模式中找到满足式wM ^ Wr的最小物理存储单元配置位宽Wm ; 步骤9,根据所述步骤8得到的物理存储单元配置位宽wM和用户输入的逻辑存储深度depth,得到构成非关键路径的物理存储单元的个数men^ ; 步骤10,将物理存储单元的所有配置模式按配置宽度由大到小形成数组wM[i],相应的配置深度形成数组dM[i]; 步骤11,按配置位宽由大到小的顺序遍历物理存储单元所有的配置位宽,根据每个配置位宽得到构成非关键路径的物理存储单元的初始配置数组e[i]; 步骤12,根据所述步骤11得到的初始配置数组e[i]和用户输入的逻辑存储深度depth,得到构成非关键路径的物理存储单元总数menir ; 步骤13,将所述步骤12得到的menv和所述步骤11得到的配置数组e[i]暂存到存储器 memtenip 和 etenip ; 步骤14,找到满足etemp[i] Φ O的最大索引系数i,将etemp[i]的值置为零,且将etemp[1-l]加 I ; 步骤15,根据暂存的配置数组etemp[i]和用户输入的逻辑存储深度cbpth,得到构成非关键路径的物理存储单元暂存总数memtMP ; 步骤16,判断如果构成非关键路径的物理存储单元暂存总数memtMP与构成非关键路径的物理存储单元总数memr满足:memtemp ( memr,则将memtemp的值赋给memr,将数组etemp[i]的值赋给e[i],并重新执行步骤14-16 ;否则执行步骤17以及后续步骤; 步骤17,根据组数g、选通器级数mux以及构成非关键路径的物理存储单元总数menv,得到被使用的物理存储单元的总数mem。
7.根据权利要求6所述的方法,其特征在于,所述步骤3中,根据下式计算出所述配置深度d。:.depth
8.根据权利要求6所述的方法,其特征在于,所述步骤11中,根据下式计算出构成非关键路径的物理存储单元的初始配置数组e[i]:
9.根据权利要求6所述的方法,其特征在于,所述步骤15中,根据下式计算出构成非关键路径的物理存储单元暂存总数Hiemtemp:

10.根据权利要求6所述的方法,其特征在于,所述步骤17中,根据下式计算出被使用的物理存储单元的总数mem:
【文档编号】G06F12/02GK103678147SQ201310589045
【公开日】2014年3月26日 申请日期:2013年11月20日 优先权日:2013年11月20日
【发明者】杨海钢, 杜方清, 林郁, 王飞, 刘峰, 刘飞 申请人:中国科学院电子学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1