一种基于解析布局算法的数据路径布局方法转让专利

申请号 : CN202011413675.0

文献号 : CN112199921B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 靳智捷陈刚李琳

申请人 : 南京集成电路设计服务产业创新中心有限公司

摘要 :

一种基于解析布局算法的数据路径布局方法,包括以下步骤:根据数据路径输入信息建立数据流约束模型;根据约束条件建立数据流约束模型;根据每条数据流的约束模型计算数据路径损失函数;计算整体损失函数;根据所述整体损失函数,对数据路径进行布局。本发明的基于解析布局算法的数据路径布局方法,在全局布局过程中同时考虑数据路径将自动获得布局最优解,减少电路布局的开发时间并提高芯片的性能与集成度,大大降低芯片设计工程师的工作量,具有很高的应用前景。

权利要求 :

1.一种基于解析布局算法的数据路径布局方法,其特征在于,包括以下步骤:根据数据路径输入信息建立数据流约束模型;

根据每条数据流的约束模型计算数据路径损失函数;

计算整体损失函数;

根据所述整体损失函数,对数据路径进行布局;

所述根据数据路径输入信息建立数据流约束模型的步骤,还包括,根据数据路径输入信息提取每条数据流的约束条件,根据约束条件建立数据流约束模型;

所述根据约束条件建立数据流约束模型的步骤,还包括,根据约束条件,在任意一条数据流中,针对任意两个相邻单元建立数据流约束模型;

根据约束条件,针对任意两条相邻数据流中的单元建立数据流约束模型;

所述约束条件,包括:

在同一数据流中,将所有单元按照数据流经的顺序从左到右摆放;

在同一数据流中,将所有单元在水平方向上对齐;

在不同数据流之间,对应单元在竖直方向上对齐;

在不同数据流之间,对应单元按照指定的顺序从上到下依次摆放。

2.根据权利要求1所述的基于解析布局算法的数据路径布局方法,其特征在于,所述根据每条数据流的约束模型计算数据路径损失函数的步骤,还包括,在每条数据流中y坐标上的约束模型以及相邻数据流中x坐标上的约束模型上采用二次损失函数计算数据路径损失函数;

在每条数据流中x坐标上的约束模型以及相邻数据流中y坐标上的约束模型采用Relu平方损失函数计算数据路径损失函数。

3.根据权利要求1所述的基于解析布局算法的数据路径布局方法,其特征在于,所述计算整体损失函数的步骤,还包括,将二次损失函数、Relu平方损失函数、线长损失函数和电子密度损失函数之和作为整体损失函数。

4.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至3任一项所述的基于解析布局算法的数据路径布局方法步骤。

5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至3任一项所述的基于解析布局算法的数据路径布局方法步骤。

说明书 :

一种基于解析布局算法的数据路径布局方法

技术领域

[0001] 本发明涉及集成电子设计自动化( Electronic design automation,EDA)技术领域,特别是涉及一种基于解析布局算法的数据路径布局。

背景技术

[0002] 自从集成电路于上世纪60年代初期发明以来,半导体制造技术一直都在以惊人的速度迅速成长。半导体芯片的性能和集成度也随着制造技术的进步高速发展。如今,一个1平方厘米的芯片上可以容纳数十亿甚至数上百亿的晶体管。如此庞大数量的晶体管使得全定制化的手工布图设计成为了一项耗时费力,甚至不可能短期完成的任务。而电子设计自动化(EDA)工具的应用使得设计周期大大缩短。近年来,深度学习以及人工智能技术的发展为电子设计自动化领域带来了新的活力。基于深度学习的电子设计自动化布局工具也逐渐彰显出其高效且优异的布局效果。
[0003] 当前市场上鲜有布局工具针对数据路径进行布局,而深度学习在数据路径布局领域的应用更是寥寥可数。目前现存的数据路径布局工具主要有两个:一种是Micro Magic公司的 Data Path Compiler(DPC),另外一种是Cadence公司的Structured Data Path(SDP)。DPC通过用户编辑用户界面数据路径单元的位置来引导布局,而SDP也需要用户输入SDP约束条件来引导数据路径的布局。此二中方法都需要大量的人为干预,造成布局过程极其耗时耗力,同时很难获得最优的解决方案。
[0004] 目前基于深度学习的电路布局主要使用线长模型和电路密度模型来构造代价函数,并通过最小化代价函数来获得布局的最优解,其代价函数并没有考虑数据路径。因此,布局的结果通常都是同一条数据流中的单元被分散摆放,这影响电路在时延和线长上的优化。目前市场上的数据路径的布局工具主要通过人工添加约束条件和手工摆放两种方法实现,比较费时费力。

发明内容

[0005] 为了解决现有技术存在的不足,本发明的目的在于提供一种基于解析布局算法的数据路径布局方法,在全局布局过程中同时考虑数据路径将自动获得布局最优解,减少电路布局的开发时间并提高芯片的性能与集成度,大大降低芯片设计工程师的工作量,具有很高的应用前景。
[0006] 为实现上述目的,本发明提供的一种基于解析布局算法的数据路径布局方法,包括以下步骤:
[0007] 根据数据路径输入信息建立数据流约束模型;
[0008] 根据约束条件建立数据流约束模型;
[0009] 根据每条数据流的约束模型计算数据路径损失函数;
[0010] 计算整体损失函数;
[0011] 根据所述整体损失函数,对数据路径进行布局。
[0012] 进一步的,所述根据数据路径输入信息建立数据流约束模型的步骤,还包括,根据数据路径输入信息提取每条数据流的约束条件,根据约束条件建立数据流约束模型。
[0013] 进一步的,所述根据约束条件建立数据流约束模型的步骤,还包括,[0014] 根据约束条件,在任意一条数据流中,针对任意两个相邻单元建立数据流约束模型;
[0015] 根据约束条件,针对任意两条相邻数据流中的单元建立数据流约束模型。
[0016] 进一步的,所述约束条件,包括:
[0017] 在同一数据流中,将所有单元按照数据流经的顺序从左到右摆放;
[0018] 在同一数据流中,将所有单元在水平方向上对齐;
[0019] 在不同数据流之间,对应单元在竖直方向上对齐;
[0020] 在不同数据流之间,对应单元按照指定的顺序从上到下依次摆放。
[0021] 进一步的,所述根据每条数据流的约束模型计算数据路径损失函数的步骤,还包括,
[0022] 在每条数据流中y坐标上的约束模型以及相邻数据流中x坐标上的约束模型上采用二次损失函数计算数据路径损失函数;
[0023] 在每条数据流中x坐标上的约束模型以及相邻数据流中y坐标上的约束模型采用ReLU平方损失函数计算数据路径损失函数。
[0024] 更进一步的,所述计算整体损失函数的步骤,还包括,将二次损失函数、ReLU平方损失函数、线长损失函数和电子密度损失函数之和作为整体损失函数。
[0025] 为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于解析布局算法的数据路径布局方法步骤。
[0026] 为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于解析布局算法的数据路径布局方法步骤。
[0027] 本发明的基于解析布局算法的数据路径布局方法、电子设备及计算机可读存储介质,具有以下有益效果:
[0028] 1)针对数据路径单元间的位置关系自动添加约束,并且在布局过程中同时考虑数据路径单元与非数据路径单元的布局,减少电路布局的开发时间并提高芯片的性能与集成度。
[0029] 2)建立在深度学习框架的基础上,将全局布局优化问题投射为训练神经网络的过程,利用现代深度学习的软件包torch,实现了基于深度学习框架的解析布局算法。该算法可以同时进行CPU多核并行和GPU加速。
[0030] 3)通过引入新的损失函数在整体布局时同时考虑数据路径单元对电路的影响,提高了电路布局的效率。同时,新损失函数的引入大大降低了电路布局的线长与时延。
[0031] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

[0032] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
[0033] 图1为根据本发明的基于解析布局算法的数据路径布局方法流程图;
[0034] 图2为根据本发明的实施例一数据路径结构示意图;
[0035] 图3为根据本发明的实施例一数据路径json文件样例示意图;
[0036] 图4为根据本发明的实施例一不同损失函数及其导数对比示意图;
[0037] 图5为根据本发明的实施例一整体损失函数构成示意图;
[0038] 图6为根据本发明的实施例一第一组案例数据路径电路图;
[0039] 图7为根据本发明的实施例一第一组案例加入数据路径损失函数前布局示意图;
[0040] 图8为根据本发明的实施例一第一组案例加入数据路径损失函数后布局示意图;
[0041] 图9为根据本发明的实施例一第二组案例数据路径电路图;
[0042] 图10为根据本发明的实施例一第二组案例加入数据路径损失函数前布局示意图;
[0043] 图11为根据本发明的实施例一第二组案例加入数据路径损失函数后布局示意图;
[0044] 图12为根据本发明的实施例一第三组案例数据路径电路图;
[0045] 图13为根据本发明的实施例一第三组案例加入数据路径损失函数前布局示意图;
[0046] 图14为根据本发明的实施例一第三组案例加入数据路径损失函数后布局示意图;
[0047] 图15为根据本发明的实施例一第四组案例数据路径电路图;
[0048] 图16为根据本发明的实施例一第四组案例加入数据路径损失函数前布局示意图;
[0049] 图17为根据本发明的实施例一第四组案例加入数据路径损失函数后布局示意图。

具体实施方式

[0050] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0051] 数据路径是并行的多位数操作电路,在结构上具有规则性。因此,在考虑数据路径布局时要充分考虑其规则性的结构。数据路径结构包含多种功能模块,这些模块间一般存在两种互连流,一种为并行的多位数据流,另一种为控制信号的控制流。在数据路径布局过程中,我们主要根据数据流来分析判断各个单元之间的位置关系,并以此为基础添加约束。在电路的整体布局过程中,通过考虑单元间的约束同时布局数据路径单元与非数据路径单元。
[0052] 在现代微处理器中,数据路径模块在电路布局中所占的面积越来越大。有资料显示,数据路径的面积已经占到总布局面积的30%-60%。考虑到数据路径具有高度的结构性,在布局的过程中充分考虑数据路径将大大改善电路的布局面积,拥挤度和时延等等。因此,在布局过程中考虑数据路径对于提高芯片集成度与性能具有深刻的意义。
[0053] 图1为根据本发明的基于解析布局算法的数据路径布局方法流程图,下面将参考图1,对本发明的基于解析布局算法的数据路径布局方法进行详细描述。
[0054] 首先,在步骤101,根据用户输入信息建立约束模型。该步骤中,针对用户输入的每条数据流进行约束提取,其约束根据数据流经数据历经单元的顺序建立。
[0055] 本实施例中,如图2所示,数据路径由多条数据流组成,每条数据流中包含多个单元。在数据路径布局中,我们需要针对每条bit-slice(数据流)布局,使得布图顺序为数据流经数据路径单元的顺序。不同bit-slice间可能有数据线连接。
[0056] 优选地,数据路径输入文件中包含数据路径的详细信息。
[0057] 本实施例中,如图3所示,数据路径输入文件(json文件格式)的样例。文件中包含一个dictionary,代表了数据路径的详细信息。样例是名为leon2的数据路径,共包含一个名为data_path1的数据路径。若电路中有多于一个数据路径,用户可在此设计中按照“data_path1”的格式增添多个数据路径,如“data_path2”、“data_path3”等。本设计中的数据路径“data_path1”包含四条数据流,分别是“bitslice0”-“bitslice3”。每条数据流用一个list来表示其中的单元名信息,list的顺序为数据流经的单元的顺序。若单元名为空“”,则此处没有单元。设置空单元的目的是为了将不同数据流中相应的单元对齐。因此,由于长度稍短的bitslice可以用空单元补齐,每条bitslice的长度在json文件中都相同。
[0058] 优选地,根据数据路径输入信息提取每条数据流的约束条件,根据约束条件建立数据流约束模型。该步骤中,约束提取的原则是按照数据流经路径单元的顺序为基准。
[0059] 优选地,数据路径包括四种约束条件:1)在同一bitslice中,将所有单元按照数据流经的顺序从左到右摆放;2)在同一bitslice中,将所有单元在水平方向上对其(所有单元的y坐标应该尽可能相近);3)在不同bitslice之间,对应单元需要在竖直方向上对其(对应单元的x坐标尽可能相近);4)在不同bitslice之间,对应单元应按照指定的顺序从上到下依次摆放。
[0060] 优选地,对于上述四种约束条件,建立以下模型:
[0061] 在任意一条数据流 中,针对任意两个相邻单元:
[0062] ;且 ;
[0063] 其中, 表示 中的第i个单元, 是 的x坐标, 是
[0064] 的y坐标。
[0065] 在步骤102,根据约束模型计算数据路径损失函数。
[0066] 优选地,针对每条bitslice中y坐标上的约束模型以及相邻bitslice中x坐标上的约束模型,采用二次损失函数,即:
[0067]
[0068]
[0069] 其中,m为datapath中bitslice的数目,n为每条bitslice中单元的数目。
[0070] 优选地,针对每条bitslice中x坐标上的约束模型以及相邻bitslice中y坐标上的约束模型,对比了以下三种损失函数:
[0071] Sigmoid函数及其导数:
[0072]
[0073]
[0074] ReLU函数及其导数:
[0075]
[0076]
[0077] Squared ReLU函数及其导数:
[0078]
[0079]
[0080] 其中,z为 或 ,即x或y方向上的单元间距。
[0081] 本实施例中,如图4所示,对比了三种损失函数以及梯度。从图中可以直观地看到Sigmoid函数的优势在于可导且导数连续,但是在反向传播的过程中容易产生梯度消失的问题。ReLU函数比较好的解决了梯度消失的问题,然而其梯度在零点不连续且当梯度在z的远端与近端相同,造成梯度下降较慢。Squared ReLU则既摆脱了梯度消失的问题又解决了梯度下降的问题,同时还保持了凸函数性质,容易求导,能够产生较好的效果。
[0082] 优选地,在每条bitslice中x坐标上的约束模型以及相邻bitslice中y坐标上的约束模型采用ReLU平方损失(Squared ReLU)函数,即:
[0083]
[0084]
[0085] 也可表示为当参数大于0时采用平方/二次损失函数,小于等于0时损失为0。
[0086] 优选地,数据路径损失函数则为本文之前所描述的四个损失函数之和,即为:
[0087]
[0088] 在步骤103,计算线长损失函数。
[0089] 优选地,电路中每一个接口(pin)都对应一个线长网络(net)。针对一个net,线长损失函数为加权平均线长。线长函数将电路中的单元向中心拉引,以提高集成度。本发明采用的加权平均线长为:
[0090]
[0091] 公式中e为当前当γ极小的时候,加权平均线长可以近似成半周长线长,能够较好地描述电路线长情况。当前电路的总线长为所有线长网络的综合和,即:
[0092]
[0093] 在步骤104,计算电子密度损失函数。
[0094] 优选地,采用的单元密度为电子密度模型,即将每一个单元类比为一个电子。由于电子间的相互作用力,每个单元相互间排斥,形成一个扩散的力。在电子密度模型中,布局区域被划分成M×M大小的网格,每个网格被近似成电场对布局区域内的单元产生作用力。在布局过程中,单元被近似成电子,受到网格所形成的力的牵制。假设: ,,且 , ,则一个网格的泊松方程可以描述为:
[0095]
[0096] 网格所形成的电场力可以表示为:
[0097]
[0098] 当前电路的电子密度损失函数可表示为:
[0099]
[0100] 在步骤105,整体损失函数包括数据路径损失函数、线长损失函数和电子密度损失函数。
[0101] 本实施例中,如图5所示,所采用的损失函数构成,其中线长损失和电子密度损失为原本的解析式布局的损失函数组成。
[0102] 本实施例中,针对本发明所提出的算法,图6至图17中展现了算法实现后的四组案例测试结果。图中分别显示了四组数据路径的电路图,加入数据路径损失函数之前的布局,以及加入数据路径损失函数后的布局图像。布局图中每种颜色代表一个bitslice。其中案例1,案例2和案例4共有四条bitslice,案例3有两条bitslice。在每组数据路径中都有一些穿插在bitslice间的数据线,其目的是为了测试数据路径损失函数的效果。从布局图像上来看,加入数据路径损失函数之后的布局相比于之前有了极大的改善。这些改善也显示在电路的半周长线长上。
[0103] 下表比较了四组测试案例的线长结果,对比之前的结果,加入数据路径布局后的结果平均减少了20.04%的线长。这表现本发明大大减小了电路时延与集成度。对于大规模电路布局来说,具有深远影响。
[0104]design 解析式布局线长 加入datapath后线长 gain
案例1 1.65E+03 1.14E+03 44.52%
案例2 2.32E+03 2.04E+03 13.96%
案例3 1.20E+03 1.16E+03 3.46%
案例4 1.43E+03 1.21E+03 18.21%
[0105] 本发明针对数据路径布局领域算法的不足,提供了一种基于解析布局算法的数据路径布局,针对数据路径单元间的位置关系自动添加约束,并且在布局过程中同时考虑数据路径单元与非数据路径单元的布局。其目的在于减少电路布局的开发时间并提高芯片的性能与集成度。本算法建立在深度学习框架的基础上,将全局布局优化问题投射为训练神经网络的过程,利用现代深度学习的软件包torch,实现了基于深度学习框架的解析布局算法。该算法可以同时进行CPU多核并行和GPU加速。
[0106] 本发明采用深度学习最小化损失函数来训练人工神经网络的方法,基于一种深度学习框架的解析式布局解决方案,在布局过程中通过对分析数据路径单元的位置引入了新的损失函数。利用数据路径单元间的相互关系添加损失函数,分别考虑了单一数据流内部单元的位置关系和每条数据流之间的位置关系。测试结果表明,基于深度学习框架的数据路径布局算法充分利用了数据路径中各单元间的约束条件,全局布局过程中综合考虑了数据路径布局的特性,其得到的布局最优解是自动获得数据路径最优布局的结果,并大大提高了电路在线长和时延等方面的表现。
[0107] 本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于解析布局算法的数据路径布局方法的步骤。
[0108] 本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于解析布局算法的数据路径布局方法的步骤。
[0109] 本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。