CN114707451A - 数字电路的版图规划方法、装置、电子设备、存储介质 - Google Patents
数字电路的版图规划方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114707451A CN114707451A CN202210425269.9A CN202210425269A CN114707451A CN 114707451 A CN114707451 A CN 114707451A CN 202210425269 A CN202210425269 A CN 202210425269A CN 114707451 A CN114707451 A CN 114707451A
- Authority
- CN
- China
- Prior art keywords
- units
- layout
- unit
- result
- digital circuit
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种数字电路的版图规划方法、装置、电子设备、存储介质。该数字电路的版图规划方法包括:获取多个第一单元和多个第二单元分别对应的属性信息;根据多个第一单元和多个第二单元分别对应的属性信息,计算多个第一单元和多个第二单元分别对应的权重中心;根据多个第一单元和多个第二单元分别对应的权重中心,对数字电路进行版图规划,以得到数字电路对应的版图规划结果。该版图规划方法通过属性信息计算第一单元和第二单元的权重中心,并且通过属性信息及权重中心为数字电路的综合及布局布线提供单元之间的位置关系和逻辑关系,有效降低现有布局方式中的随机性,得到性能更优、功耗更小、面积开销更小的电路。
Description
技术领域
本公开的实施例涉及一种数字电路的版图规划方法、数字电路的版图规划装置、电子设备、非瞬时性计算机可读存储介质。
背景技术
在摩尔定律的推动下,集成电路工艺取得了高速发展,单位面积上的晶体管数量不断增加。片上系统(System-on-Chip,SoC)具有集成度高、功耗低、成本低等优势,已经成为大规模集成电路系统设计的主流方向,解决了通信、图像、计算、消费电子等领域的众多挑战性的难题。随着片上系统的应用需求越来越丰富,SoC需要集成越来越多的不同应用的IP(Intellectual Property)。随着片上系统的高度集成,对片上通信提出了更高的要求。
发明内容
本公开至少一实施例提供一种数字电路的版图规划方法,所述数字电路包括多个第一单元、多个第二单元,所述多个第一单元和所述多个第二单元通过片上互联耦接,所述版图规划方法包括:获取所述多个第一单元和所述多个第二单元分别对应的属性信息;根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心;根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心,包括:根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元一一对应的多个第一权重中心;根据所述多个第二单元分别对应的属性信息,计算所述多个第二单元一一对应的多个第二权重中心;根据所述多个第一权重中心和所述多个第二权重中心,确定全局权重中心;其中,所述多个第一单元和所述多个第二单元分别对应的权重中心包括所述多个第一权重中心和所述多个第二权重中心。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,每个第一单元对应的属性信息至少包括布局信息、逻辑关系和单元类型,根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元一一对应的多个第一权重中心,包括:针对所述多个第一单元中的每个第一单元:响应于所述第一单元对应的属性信息中的单元类型指示所述第一单元为计算单元,根据所述第一单元对应的属性信息中的逻辑关系,确定所述第一单元对应的输入寄存器和输出寄存器;确定所述输入寄存器与所述输出寄存器之间的所有组合逻辑器件;根据所述第一单元对应的属性信息中的布局信息,确定所述所有组合逻辑器件的位置坐标;根据所述所有组合逻辑器件的位置坐标,计算所述第一单元对应的第一权重中心。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,根据所述所有组合逻辑器件的位置坐标,计算所述第一单元对应的第一权重中心,包括:计算所述所有组合逻辑器件的位置坐标的平均值或加权平均值,将所述平均值或所述加权平均值作为所述第一单元对应的第一权重中心。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,每个第一单元对应的属性信息至少包括布局信息和单元类型,根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元分别对应的多个第一权重中心,包括:针对所述多个第一单元中的每个第一单元:响应于所述第一单元对应的属性信息中的单元类型指示所述第一单元为存储单元或通信总线,根据所述第一单元对应的属性信息中的布局信息,确定所述第一单元包括的多个器件的位置坐标;计算所述多个器件的位置坐标的平均值或加权平均值,将所述平均值或所述加权平均值作为所述第一单元对应的第一权重中心。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,根据所述多个第一权重中心和所述多个第二权重中心,确定全局权重中心,包括:计算所述多个第一权重中心和所述多个第二权重中心的平均值或加权平均值,将所述平均值或所述加权平均值作为所述全局权重中心。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,所述片上互联包括交叉开关电路,所述交叉开关电路配置为执行所述多个第一单元的资源和所述多个第二单元的资源的共享和交换,根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果,包括:将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行所述版图规划,以得到所述版图规划结果。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行所述版图规划,以得到所述版图规划结果,包括:将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行布局布线,得到初始版图结果;基于所述初始版图结果执行优化迭代处理得到所述版图优化结果;其中,所述优化迭代处理包括:根据源版图结果,计算所述多个第一单元和所述多个第二单元之间的多组互联线的传输功耗,其中,所述源版图结果包括所述初始版图结果,每组互联线用于连接一个第一单元和一个第二单元;根据所述多组互联线的传输功耗,对所述源版图结果进行布局布线优化处理,得到所述版图优化结果;响应于所述版图优化结果满足预定条件,停止执行所述优化迭代处理,将所述版图优化结果作为所述版图规划结果,响应于所述版图优化结果不满足预定条件,将所述版图优化结果作为所述源版图结果,继续执行所述优化迭代处理。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行布局布线,得到初始版图结果,包括:针对由一组互联线连接的目标第一单元和目标第二单元:根据所述目标第一单元对应的第一权重中心和所述目标第二单元对应的第二权重中心,计算所述目标第一单元和所述目标第二单元之间的曼哈顿距离;根据所述曼哈顿距离,确定所述一组互联线所在的金属层。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,所述数字电路包括多层金属层,所述多层金属层包括第一组金属层和第二组金属层,根据所述曼哈顿距离,确定所述一组互联线所在的金属层,包括:响应于所述曼哈顿距离大于预设阈值,确定所述一组互联线位于所述第一组金属层中的一个金属层;响应于所述曼哈顿距离小于等于所述预设阈值,确定所述一组互联线位于所述第二组金属层中的一个金属层;其中,所述第一组金属层包括的至少一个金属层的电阻小于所述第二组金属层包括的至少一个金属层的电阻。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,根据源版图结果,计算所述多个第一单元和所述多个第二单元之间的多组互联线的传输功耗,包括:根据所述源版图结果,确定所述多组互联线;根据所述源版图结果,确定每组互联线所在的金属层和长度;根据所述每组互联线所在的金属层和长度,计算所述每组互联线的耦合电容;根据所述每组互联线的耦合电容,计算所述每组互联线的传输功耗。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,所述优化迭代处理还包括:根据所述源版图结果,计算所述多组互联线的延时;根据所述多组互联线的传输功耗,对所述源版图结果进行布局布线优化处理,得到所述版图优化结果,包括:根据所述多组互联线的传输功耗和所述多组互联线的延时,对所述源版图结果进行所述布局布线优化处理,以得到所述版图优化结果。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,所述交叉开关电路配置为使得所述多个第一单元与所述多个第二单元两两之间存在连接关系,以及实时切换所述多个第一单元和所述多个第二单元之间的导通状态。
例如,在本公开至少一实施例提供一种数字电路的版图规划方法中,所述交叉开关电路包括多个控制器,所述多个控制器用于根据相应的控制信号切换所述多个第一单元和所述多个第二单元之间的导通状态,在所述版图优化结果中,所述交叉开关电路为分布式电路,所述多个控制器分布至所述多个第一单元或所述多个第二单元中。
例如,本公开至少一实施例提供一种数字电路的版图规划方法还包括:根据所述版图规划结果,确定所述交叉开关电路包括的至少一个器件的位置;根据所述至少一个器件的位置,对所述数字电路进行资源优化处理,其中,所述资源优化处理包括公有路径优化处理。
本公开至少一实施例提供一种数字电路的版图规划装置,其中,所述数字电路包括多个第一单元、多个第二单元,所述多个第一单元和所述多个第二单元通过片上互联耦接,所述版图规划装置包括:获取单元,配置为获取所述多个第一单元和所述多个第二单元分别对应的属性信息;计算单元,配置为根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心;规划单元,配置为根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果。
本公开至少一实施例还提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的数字电路的版图规划方法。
本公开至少一实施例还提供一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的数字电路的版图规划方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了一种GPU计算资源的路由逻辑示意图;
图1B示出了一种GPU计算资源的布局视图;
图1C示出了一种GPU计算资源的布局视图;
图2为本公开至少一实施例提供的一种数字电路的版图规划方法的示意性流程图;
图3为本公开至少一实施例提供的一种数字电路的版图规划方法中步骤S20的示意性流程图;
图4为本公开一实施例提供的数字电路的权重中心的示意图;
图5为本公开一实施例提供的版图规划结果的示意图;
图6A为本公开至少一实施例提供的一种数字电路的版图规划装置的示意性框图;
图6B为本公开至少一实施例提供的一种计算单元的示意性框图;
图7为本公开至少一实施例提供的一种电子设备的示意性框图;
图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
片上互联包括通信总线、交叉开关矩阵(CrossBar)等。例如,在通信总线结构中,所有的处理器和IP模块共享一条或多条通信总线,通信总线可以实现广播通信。当有多个处理器同时访问一条通信总线时候需要有仲裁机制来决定通信总线的所有权。例如,在交叉开关矩阵结构中,每一条输入链路和输出链路都有一个交叉点(CrossPoint),例如在交叉点处有一个半导体开关连接输入线路和输出线路,当来自源端口的输入数据需要交换到目的端口并输出时,在处理器或交换矩阵的控制下切换交叉点的开关,使得源端口与目的端口的交叉点处于导通状态,从而数据就被发送到目的端口并输出。Crossbar保证了多路通信同时进行的实时性。
实际应用中,片上互联也可能会采用Crossbar和通信总线相结合的方式,用桥接器将Crossbar网络和通信总线网络连接起来。
图形处理器(Graphics Processing Unit,简称GPU)可以包括多个存储单元以及多个计算单元,每个单元根据功能可以划分为一个或多个功能模块(Module),每个功能模块可以由一些完成特定功能的电路逻辑构成,图形处理器可以将这些功能模块进行组合实现运算和存储等功能。例如,存储单元可以包括内存块(Memory Bank)、RAM(random accessmemory,随机存取存储器)或ECC(Error Checking and Correcting,错误检查和纠正)内存等;例如,计算单元可以包括用于执行特定计算任务的对象(Object),例如,特定计算任务可以包括乘法运算、乘累加运算等。
由于图形处理器的计算特点,资源需要实时在各个单元之间共享和切换。
图1A示出了一种GPU计算资源的路由示意图。
例如,GPU包括P个存储单元,如图1A所示,N个第一存储单元(如图1A中的第一存储单元1、第一存储单元2、...第一存储单元N)表示P个存储单元中的部分或全部存储单元,同样的,M个第二存储单元(如图1A中的第二存储单元1、第二存储单元2、...第二存储单元M)表示P个存储单元中的部分或全部存储单元。N个第一存储单元和M个第二存储单元可以部分重合,也可以是不同的存储单元。
此外,GPU还包括Q个计算单元(如图1A中的计算单元1、计算单元2、...、计算单元Q)。这里,P、N、M和Q均为正整数,P大于等于N且P大于等于M。
例如,N个第一存储单元中存储有数据资源,这些数据资源需要发送至Q个计算单元执行相应的运算。例如,N个第一存储单元中的数据资源可以通过交叉开关矩阵发送至Q个计算单元,例如,GPU控制相应的交叉点导通,从而使得第一存储单元中的数据资源通过导通的线路发送至对应的计算单元。
例如,在计算单元执行完相应的运算后,需要将计算结果发送至第二存储单元进行存储。例如,Q个计算单元中的计算结果可以通过交叉开关矩阵发送至M个第二存储单元,例如,GPU控制相应的交叉点导通,从而使得计算单元中的数据资源通过导通的线路发送至对应的第二存储单元。
在GPU运行过程中,这种数据资源的共享和切换会实时发生,在不同的时刻,可能有不同的存储单元需要将数据发送至一个或多个计算单元进行计算,以及,在不同的时刻,可能有不同的计算单元需要将计算结果发送至一个或多个存储单元进行存储。
需要说明的是,图1A仅是一种示意性的路由图,在不同时刻,M、N和Q可以有不同的取值。
在对图1A所示的这种存在资源共享和切换的数字电路进行物理实现后时,所得到的典型的布局视图通常如图1B所示。
如图1B所示,P个存储单元通常位于电路的边缘区域,计算单元通常位于电路的中部区域,存储单元和计算单元通常是阵列排布。
考虑布局布线时通常需要线路最短,布局视图的中心位置将是所有资源最本质上的交叉,因此,如图1C所示,在进行布局布线之后,用于实现资源共享和切换的交叉开关电路可能被放置在中心区域。此时,存储单元1和计算单元1之间的数据共享需要通过位于中心区域的交叉开关矩阵完成数据共享,从而中心区域的绕线资源利用率非常高,产生拥堵现象,甚至可能出现资源不足的情况。此外,这种布局布线方式导致连接存储单元1和计算单元1之间的互联线长度较长,传输功耗较大。
此外,在综合、布局布线过程中,由于不了解器件之间的逻辑关系,从而也无法确定真正的数据源和数据接收端,所以通常将交叉开关矩阵中包括的多个器件看做松散的逻辑,随机进行排布和布线,导致布线结果较为混乱。并且,为解决中心区域的拥堵现象,布局布线时可能选择扩大电路的面积,降低器件的排布密度,这又进一步增大了面积开销和传输功耗。
例如,在一个具体示例中,例如在高性能GPU设计中,GPU的功耗包括计算功耗(Computational Power)和传输功耗(Transport Power)。计算功耗是由计算单元在计算过程所产生的动态功耗,传输功耗是将数据从不同的存储单元移动到计算单元(反之亦然)的过程所产生的动态功耗。从表面上看,它们都是属于计算功耗,然而计算功耗只是属于GPU由于运算所产生的功耗中的一部分,传输功耗实际上占据了很大一部分的功耗。例如,如图1C所示的,存储单元1和计算单元1之间的数据共享需要经由位于中心区域的交叉开关矩阵,因此,连接存储单元1和计算单元1之间的互联线长度较长,传输功耗较大。
目前,动态功耗优化通常是将SAIF(Switching Activity Interface Format,切换活动接口形式)文件反标至数字电路进行动态功率优化。但是,由于SAIF文件仅捕捉信号转换和逻辑电平所花费的时间,记录网络中触发计数(toggle counts)和静态概率(staticprobabilities),从而这种方式所进行的动态优化只考虑计算功耗而不考虑传输功耗,因此功耗优化仅局限于电路的切换,而并不会针对传输功耗进行针对性的优化。
本公开至少一实施例提供一种数字电路的版图规划方法,包括:获取多个第一单元和多个第二单元分别对应的属性信息;根据多个第一单元和多个第二单元分别对应的属性信息,计算多个第一单元和多个第二单元分别对应的权重中心;根据多个第一单元和多个第二单元分别对应的权重中心,对数字电路进行版图规划,以得到数字电路对应的版图规划结果。
本公开至少一实施例提供的版图规划方法通过属性信息计算第一单元和第二单元的权重中心,并且通过属性信息及权重中心为数字电路的综合及布局布线提供单元之间的位置关系、逻辑关系,从而可以确定真正的数据源端和数据目的端,从单元层面分析和布线,有效降低现有布局方式中的随机性,整体上提升了电路的PPA(Power,Performance andArea,性能,功耗和面积),也即得到性能更优、功耗更小、面积开销更小的电路。
需要说明的是,在本公开的实施例中,器件包括逻辑器件,逻辑器件包括组合逻辑器件和时序逻辑器件。这里,时序逻辑器件指代数字电路设计中的触发器、寄存器、锁存器等器件,时序逻辑器件对输入信号具有存储和记忆功能,当接收到时钟信号的有效沿或有效电平时,能够触发时序逻辑器件对输入信号的存储及输出信号的状态改变。组合逻辑器件指代数字电路设计中的与门、或门等实现逻辑运算的器件,例如数据选择器、数值比较器等,组合逻辑器件对输入信号不具备存储和记忆功能,在任一时刻,组合逻辑器件的输出信号的状态取决于当前时刻的输入信号的状态。
图2为本公开至少一实施例提供的一种数字电路的版图规划方法的示意性流程图。如图2所示,本公开至少一实施例提供的一种数字电路的版图规划方法至少包括步骤S10-S30。
例如,数字电路可以是集成电路,例如大规模集成电路或超大规模集成电路,例如CPU(Central Processing Unit,中央处理器)或GPU的芯片电路等。
例如,数字电路包括多个第一单元、多个第二单元,多个第一单元和多个第二单元通过片上互联耦接。
例如,第一单元可以包括如前所述的存储单元、计算单元和通信总线,同样的,第二单元也可以包括存储单元、计算单元和通信总线,例如,通信总线可以为远端通信总线。本公开对第一单元和第二单元的具体形式不作限制。例如,第一单元可以表示在某一时刻发送数据资源的单元,第二单元则表示在某一时刻接收数据资源的单元。或者又例如,第二单元则表示在某一时刻发送数据资源的单元,第一单元可以表示在某一时刻接收数据资源的单元。也就是说,本公开中的第一单元和第二单元仅用于表示进行资源交换的两个不同单元,第一单元和第二单元的具体形式、单元类型不作限制。
例如,在如图1A所示的示例中,第一单元可以为第一存储单元,第二单元可以为计算单元,或者,第一单元可以为计算单元,第二单元可以为第二存储单元。
例如,在需要进行广播通信时,第一单元可以为计算单元,第二单元可以为通信总线,计算单元中的数据资源通过通信总线广播至所有与通信总线相连的存储单元或计算单元。
例如,在一些实施例中,多个第一单元和多个第二单元可以包括计算单元和存储单元;例如,在另一些实施例中,电路存在进行广播通信等通信需求时,多个第一单元和多个第二单元除包括计算单元和存储单元之外,还可以包括通信总线。需要说明的是,数字电路还可以包括更多其他类型的单元,第一单元和第二单元还可以包括更多类型的单元,本公开对此不作限制。
例如,片上互联用于实现多个第一单元和多个第二单元之间的数据资源的共享和切换。例如,片上互联可以包括交叉开关电路,交叉开关电路用于实现如前所述的交叉开关矩阵的功能。当然,在另一些实施例中,片上互联也可以采用其他能够实现交叉开关电路的功能的其他电路结构,本公开对此不作限制。
例如,在步骤S10,获取多个第一单元和多个第二单元分别对应的属性信息。
例如,属性信息可以是人为定义,或者,属性信息也可以通过EDA(ElectronicDesign Automation,电子设计自动化)工具获取。通常,每个器件都会有自己的属性信息,例如属性信息可以包括该器件的名称、逻辑连接关系、器件类型(例如是寄存器、RAM等)等,由此,EDA工具可以通过电路分析或人工定义的单元大小,确定各个单元的属性信息。例如,存储单元通常有规律的命名表达式,可以根据命名确定存储单元,进而提取其属性信息。
例如,属性信息定义了单元类型、功能、布局信息、逻辑关系等。
例如,单元类型可以包括存储单元、计算单元、通信总线等。
例如,功能表示该单元的用途,例如用于乘法计算、乘累加计算、存储等。例如,在一些实施例中,可以通过单元的功能确定单元类型,例如单元的功能表示该单元用于乘法计算,则该单元属于计算单元,例如单元的功能表示该单元用于数据存储,则该单元属于存储单元。
例如,布局信息包括该单元所包括的器件的布局位置,例如,布局位置可以根据经验人为确定,或者,布局位置也可以由EDA工具提取版图布局信息(layout placementinformation)得到。
例如,逻辑关系包括该单元的逻辑连接关系,例如,该单元对应的输入寄存器、输出寄存器等。例如,逻辑关系还可以包括与该单元进行资源共享的其他单元,例如,这种逻辑关系可以通过前端网表获取。
当然,属性信息还可以包括更多的内容,单元类型、功能、布局信息以及逻辑关系的具体形式可以根据电路实际需要具体设置,本公开对此不作限制。
在步骤S20,根据多个第一单元和多个第二单元分别对应的属性信息,计算多个第一单元和多个第二单元分别对应的权重中心。
图3为本公开至少一实施例提供的一种数字电路的版图规划方法中步骤S20的示意性流程图。如图3所示,步骤S20至少包括步骤S201-S203。
在步骤S201,根据多个第一单元分别对应的属性信息,计算多个第一单元一一对应的多个第一权重中心。
在步骤S202,根据多个第二单元分别对应的属性信息,计算多个第二单元一一对应的多个第二权重中心。
在步骤S203,根据多个第一权重中心和多个第二权重中心,确定全局权重中心。
例如,多个第一单元和多个第二单元分别对应的权重中心包括多个第一权重中心和多个第二权重中心。
需要说明的是,在本公开中,第一权重中心表示第一单元对应的权重中心,第二权重中心表示第二单元对应的权重中心。
例如,以第一单元为例,具体说明第一权重中心的具体计算过程。
例如,属性信息可以至少包括布局信息、逻辑关系和单元类型,关于布局信息、逻辑关系和单元类型的内容可以参考步骤S10中的相关描述。
例如,若第一单元对应的属性信息中的单元类型指示第一单元为计算单元,步骤S201可以包括:根据第一单元对应的属性信息中的逻辑关系,确定第一单元对应的输入寄存器和输出寄存器;确定输入寄存器与输出寄存器之间的所有组合逻辑器件,例如,可以将输入寄存器与输出寄存器作为时序路径的起点和终点,提取该条时序路径进而得到输入寄存器与输出寄存器之间的所有组合逻辑器件;根据第一单元对应的属性信息中的布局信息,确定所有组合逻辑器件的位置坐标;根据所有组合逻辑器件的位置坐标,计算第一单元对应的第一权重中心。
例如,根据所有组合逻辑器件的位置坐标,计算第一单元对应的第一权重中心,可以包括:计算所有组合逻辑器件的位置坐标的平均值或加权平均值,将该平均值或该加权平均值作为第一单元对应的第一权重中心。
例如,属性信息可以至少包括布局信息和单元类型,此时,根据布局信息和单元类型即可计算存储单元和通信总线对应的第一权重中心。
若第一单元对应的属性信息中的单元类型指示第一单元为存储单元或通信总线,步骤S201可以包括:根据第一单元对应的属性信息中的布局信息,确定第一单元包括的多个器件的位置坐标;计算多个器件的位置坐标的平均值或加权平均值,将该平均值或该加权平均值作为第一单元对应的第一权重中心。
针对多个第一单元中的每个第一单元执行上述操作,根据第一单元的单元类型不同分别计算第一单元对应的第一权重中心,由此得到多个第一单元分别对应的多个第一权重中心。
需要说明的是,在本公开中,第一权重中心表示第一单元对应的权重中心,第二权重中心表示第二单元对应的权重中心。例如,第二单元对应的第二权重中心与第一单元对应的第一权重中心的计算过程完全相同,因此步骤S202的具体内容可以参考前述S201的相关描述,重复之处不再赘述。
例如,步骤S203可以包括:计算多个第一权重中心和多个第二权重中心的平均值或加权平均值,将该平均值或该加权平均值作为全局权重中心。
这里,全局权重中心表示的是需要进行资源共享和切换的多个第一单元和多个第二单元的最本质的中心。
图4为本公开一实施例提供的数字电路的权重中心的示意图。
如图4所示,101表示数字电路(design),实心矩形框103表示存储单元,虚线矩形框102表示计算单元,中部长条形粗线框104表示通信总线。如图4所示,数字电路101包括8个存储单元103,8个计算单元102(例如,图4中标记的计算单元102_1、计算单元102_2和计算单元102_3),以及通信总线104。需要说明的是,图4所示的数字电路仅为一种示意图,数字电路还可以包括更多的计算单元、存储单元和通信总线等,排布形式也可以根据电路需要进行设置,本公开对此不作限制。
如图4所示,每个存储单元、计算单元及通信总线中的“x”表示该单元对应的权重中心。例如,对于存储单元103,201表示其对应的权重中心;对于计算单元102_1,202表示其对应的权重中心;对于计算单元102_2,204表示其对应的权重中心;对于通信总线,203表示其对应的权重中心。关于权重中心及其具体计算方法可以参考步骤S201和步骤S202的相关描述,这里不再赘述。
如图4所示,205(GX)表示全局权重中心,关于全局权重中心的具体计算方法可以参考步骤S203的相关描述,重复之处不再赘述。
如图4所示,301表示存储单元103和计算单元102_1之间存在连接关系,需要进行资源的共享和交换。例如,此时存储单元103可以是第一单元,计算单元102_1可以是第二单元,或者,存储单元103可以是第二单元,计算单元102_1可以是第一单元。
302表示存储单元103和通信总线104之间存在连接关系,需要进行资源的共享和交换,例如,存储单元103的数据资源可以通过通信总线104广播至8个计算单元102。例如,此时存储单元103可以是第一单元,通信总线104可以是第二单元,或者,存储单元103可以是第二单元,通信总线104可以是第一单元。
303表示计算单元102_1和计算单元102_2之间存在连接关系,需要进行资源的共享和交换。
304表示计算单元102_1和计算单元102_3之间存在连接关系,需要进行资源的共享和交换。
需要说明的是,图4仅示出了部分单元之间存在的连接关系,实际上数字电路中的更多单元之间都存在有这种连接关系,以实现多个单元之间的资源的共享和切换。
之后,在得到各个单元对应的权重中心和全局权重中心后,可以基于第一权重中心、第二权重中心和全局权重中心对数字电路进行版图规划,得到版图规划结果。
例如,在步骤S30,根据多个第一单元和多个第二单元分别对应的权重中心,对数字电路进行版图规划,以得到数字电路对应的版图规划结果。
例如,片上互联包括交叉开关电路,交叉开关电路配置为执行多个第一单元的资源和多个第二单元的资源的共享和切换。例如,交叉开关电路的功能可以参考如前所述的CrossBar的相关描述。例如,交叉开关电路可以由多路选择器等器件构成,本公开对交叉开关电路的具体实现方式不作限制。
例如,在一些实施例中,交叉开关电路为“全交叉”模式,交叉开关电路配置为使得多个第一单元与多个第二单元两两之间存在连接关系,以及实时切换多个第一单元和多个第二单元之间的导通状态。此时,交叉开关电路的电路结构最为复杂,任意两个第一单元和第二单元之间都需要存在逻辑上(物理上)的连接关系,并且通过控制器实时切换多个第一单元和多个第二单元之间的导通状态,以实现实时性的任意数量的第一单元和第二单元之间的数据共享和交换。
当然,在另一些实施例中,交叉开关电路也可以不是“全交叉”模式,例如此时不需要多个第一单元与多个第二单元两两之间都存在连接关系,例如某一个第一单元只和部分第二单元存在连接关系,此时交叉开关电路的电路结构相对于“全交叉”模式较为简单,但仍可使用本公开至少一实施例提供的数字电路的版图规划方法。
例如,步骤S30可以包括:将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行版图规划,以得到版图规划结果。
例如,版图规划可以包括后端综合、布局(floorplan)、布线(route)等物理实现过程。版图规划结果可以包括布线后的电路,或者,版图规划结果也可以包括布局布线优化后的电路,例如,布局布线优化可以包括时序优化、面积优化、功耗优化等。
由于全局权重中心为需要进行资源共享和交换的多个第一单元和多个第二单元的最本质的中心,将全局权重中心作为交叉开关电路的初始位置,为版图规划过程提供了一个相对准确、贴近电路的实际布局情况的初始位置参考,并且将各个电路器件以单元为单位进行版图规划,为版图规划提供了电路器件之间的逻辑关系和位置关系,降低了布局布线过程的随机性,所得到的版图规划结果逻辑性更强,布线形态更加整齐,整体上提升了电路的PPA。
例如,将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行版图规划,以得到版图规划结果,可以包括:将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行布局布线,得到初始版图结果;基于初始版图结果执行优化迭代处理得到版图优化结果;其中,优化迭代处理包括:根据源版图结果,计算多个第一单元和多个第二单元之间的多组互联线的传输功耗,其中,源版图结果包括初始版图结果,每组互联线用于连接一个第一单元和一个第二单元;根据多组互联线的传输功耗,对源版图结果进行布局布线优化处理,得到版图优化结果;响应于版图优化结果满足预定条件,停止执行优化迭代处理,将版图优化结果作为版图规划结果,响应于版图优化结果不满足预定条件,将版图优化结果作为源版图结果,继续执行优化迭代处理。
例如,在获得初始版图结果后,计算初始版图结果中多组互联线的传输功耗;之后,根据多组互联线的传输功耗对初始版图结果进行布局布线优化处理,得到版图优化结果,这里,具体的布局布线优化算法可以采用任意可行的优化算法,本公开对此不作限制;之后,若版图优化结果满足预定条件,此时停止执行优化迭代处理,将版图优化结果作为版图规划结果,例如,满足预定条件可以包括版图优化结果的关键路径延时满足最小化,芯片满足尽量密集,功耗满足最小化或串扰满足最小化等,预定条件可以根据实际需要自行设定,本公开对此不作限制;若版图优化结果不满足预定条件,计算版图优化结果中多组互联线的传输功耗;之后,根据多组互联线的传输功耗对版图优化结果进行布局布线优化处理,得到更新后的版图优化结果,重复执行上述过程,直到得到满足条件的版图优化结果,将其作为数字电路的版图规划结果。
例如,在布局布线处理过程中,可以根据步骤S201-S203计算得到的多个第一权重中心、多个第二权重中心以及全局权重中心,得到各个第一单元和各个第二单元之间的位置关系,由此分布式地选择相应的金属层。
例如,在存在连接关系的目标第一单元和目标第二单元之间的距离较远时,可以认为目标第一单元和目标第二单元属于“远端”情况,此时目标第一单元和目标第二单元之间的互联线可以使用电阻更小的上层金属层中的绕线资源。例如,在存在连接关系的目标第一单元和目标第二单元之间的距离较近时,可以认为目标第一单元和目标第二单元属于“近端”情况,此时目标第一单元和目标第二单元之间的互联线可以使用电阻较大的下层金属层中的绕线资源。
例如,将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行布局布线,得到初始版图结果,可以包括:针对由一组互联线连接的目标第一单元和目标第二单元:计算目标第一单元和目标第二单元之间的曼哈顿距离;根据曼哈顿距离,确定一组互联线所在的金属层。
例如,根据集成电路的工艺不同,数字电路包括多层金属层,多层金属层包括第一组金属层和第二组金属层。例如,第一组金属层包括多层金属层中的上层金属层,例如上层金属层包括顶层或靠近顶层的一个或多个金属层,第二组金属层包括多层金属层中的下层金属层,例如下层金属层包括远离顶层的底层或靠近底层的一个或多个金属层。
例如,根据曼哈顿距离,确定一组互联线所在的金属层,可以包括:响应于曼哈顿距离大于预设阈值,确定一组互联线位于第一组金属层中的一个金属层;响应于曼哈顿距离小于等于预设阈值,确定一组互联线位于第二组金属层中的一个金属层;其中,第一组金属层包括的至少一个金属层的电阻小于第二组金属层包括的至少一个金属层的电阻。
例如,对于图4所示的数字电路的示意图,存储单元103和计算单元102_1之间的曼哈顿距离小于预设阈值,可以确定存储单元103和计算单元102_1之间的互联线选择第二组金属层中的一个金属层中的绕线资源,例如可以从第二组金属层中选择绕线资源剩余量更大的一个金属层用于互联;计算单元102_1和计算单元102_2之间的曼哈顿距离小于预设阈值,可以确定计算单元102_1和计算单元102_2之间的互联线选择第二组金属层中的一个金属层中的绕线资源;计算单元102_1和计算单元102_3之间的曼哈顿距离大于预设阈值,可以确定计算单元102_1和计算单元102_3之间的互联线选择第一组金属层中的一个金属层中的绕线资源;通信总线104为远端通信总线,可以确定通信总线104选择第一组金属层中的一个金属层中的绕线资源。
一般来说,上层金属层的电阻相对较小,下层金属层的电阻相对较大,但顶层绕线资源是有限的,本公开至少一实施例提供的数字电路的版图规划方法根据单元之间的距离合理选择相应的绕线资源,例如对于距离较远的两个单元,优先选择电阻更低的上层金属层来实现互联,例如对于距离较近的两个单元,优先选择电阻更大的下层金属层来实现互联,例如对于通信总线优先选择电阻更小的上层金属层实现,这有效解决了中心区域拥堵的问题,极大降低了中心区域资源不足的情况发生的概率,合理分配顶层绕线资源和底层绕线资源,从整体上降低了互联线的电阻,使得电路整体的功耗开销最优,性能最优。
并且,由于中心区域的拥堵问题得到缓解,本公开至少一实施例提供的数字电路的版图规划方法不需要扩大电路面积以降低器件之间的密度,由此也进一步降低了器件的面积开销,整体上进一步提升了电路的PPA。
例如,根据源版图结果,计算多个第一单元和多个第二单元之间的多组互联线的传输功耗,可以包括:根据源版图结果,确定多组互联线;根据源版图结果,确定每组互联线所在的金属层和长度;根据每组互联线所在的金属层和长度,计算每组互联线的耦合电容;根据每组互联线的耦合电容,计算每组互联线的传输功耗。
本公开至少一实施例提供的数字电路的版图规划方法着眼于所有资源之间的逻辑互连和物理距离,根据单元之间的位置关系建立了一个传输功耗估算模型,由此可以在优化迭代过程中提供传输功耗的参考信息,从而使得布线优化,例如功耗优化不再仅局限于计算功耗,还能够针对传输功耗进行针对性优化,所得到的版图规划结果的PPA更优,也即功耗更低、性能更高、面积更小。
此外,在另一些实施例中,除了提供多组互联线的传输功耗外,还可以提供多组互联线的延时用于布局布线优化。
例如,优化迭代处理还包括:根据源版图结果,计算多组互联线的延时;根据多组互联线的传输功耗,对源版图结果进行布局布线优化处理,得到版图优化结果,包括:根据多组互联线的传输功耗和多组互联线的延时,对源版图结果进行布局布线优化处理,以得到版图优化结果。
由此,本公开至少一实施例所提供的版图规划方法能够进一步针对互联线所带来的传输功耗影响和时序影响进行针对性优化,以进一步提升版图规划结果的PPA,优化互联线的时序。
例如,在优化迭代处理过程中,发现交叉开关电路位于全局权重中心时,全局权重中心附近的绕线资源紧张或者绕线资源不足,无法得到满足预定条件的版图规划结果,此时可以将交叉开关电路以分布式的方式实现。
例如,交叉开关电路包括多个控制器,多个控制器用于根据相应的控制信号切换多个第一单元和多个第二单元之间的导通状态,在版图优化结果中,交叉开关电路为分布式电路,多个控制器分布至多个第一单元或多个第二单元中。例如,控制器可以实现为多路选择器的形式,当然,控制器还可以实现为控制寄存器的形式,本公开对此不作限制。
由于属性信息提供了第一单元和第二单元之间的逻辑关系,则可以将交叉开关电路的相应部分(例如相应的控制器)分布至单元内部或单元附近实现。例如,可以将两个存在连接关系的第一单元和第二单元的控制器设置在作为数据接收端的单元端口处等。当然,这种分布式方式的具体实现可以根据优化算法的不同、电路结构的不同、电路性能的不同存在区别,但是,由于本公开能够提供这种第一单元和第二单元之间的逻辑关系,从而可以实现这种分布式的交叉开关电路实现,最终得到布线更加整齐,绕线资源分布更加均衡的版图规划结果。
图5为本公开一实施例提供的版图规划结果的示意图。
例如,如图5所示,数字电路包括Q个计算单元、P个存储单元和通信总线。例如,Q个计算单元分别为计算单元1、计算单元2、...、计算单元k、计算单元k+1、...计算单元Q,P个存储单元分别为存储单元1、存储单元2、...、存储单元i、存储单元i+1、...、存储单元P,i、k、P和Q均为正整数。
例如,在基于步骤S10-S30所得到的版图规划结果中,交叉开关电路处于分布式的状态,而不是如图1C所示的位于数字电路的中心区域。
例如,以计算单元1和存储单元1之间的互联线为例,在优化迭代过程中,发现将计算单元1和存储单元1相应的控制器设置于存储单元1和/或计算单元1的端口处所得到的布线结果更优,因此,可以将交叉开关电路中与计算单元1和存储单元1相应的部分分布至计算单元1和存储单元1中。
与图1C相比,图5所示的存储单元1和计算单元1之间的数据共享和交换不需要通过位于中心区域的交叉开关电路,这极大地减少了互联线的传输长度,降低了传输功耗,优化互联线带来的时序影响,并且减轻了中心区域绕线资源的负担,有效解决中心区域拥堵、绕线资源紧张或不足的问题,对于具有复杂连接关系的交叉开关电路是一种双赢的解决方案。
例如,在一些实施例中,根据上述过程得到的版图规划结果的资源可能仍有优化的空间,例如,可以克隆交叉开关电路中的一些器件以优化公有路径等。
例如,本公开至少一实施例提供的版图规划方法还可以包括:根据版图规划结果,确定交叉开关电路包括的至少一个器件的位置;根据至少一个器件的位置,对数字电路进行资源优化处理,其中,资源优化处理包括公有路径优化处理。
例如,这里的至少一个器件可以表示用于组成多个控制器的器件,例如,至少一个器件可以包括多路选择器、寄存器等。
当然,根据实际需要,还可以根据提供的交叉开关电路中的器件的位置,对数字电路进行其他资源优化处理,以进一步得到PPA更优的版图规划结果。
例如,在另一些实施例中,步骤S30可以包括:将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,对数字电路进行版图规划,以得到版图规划结果。
也即此时可以不计算全局权重中心,为第一单元和第二单元提供初始的位置参考,此时版图规划的具体过程与上述内容相同,例如,版图规划也包括传输功耗优化、根据单元之间的距离合理选择相应的绕线资源等,这里不再赘述。此时也可以为数字电路提供单元之间的逻辑关系和位置关系,得到PPA更优的版图规划结果。
与上述的数字电路的版图规划方法相对应,本公开至少一实施例还提供一种数字电路的版图规划装置,图6A为本公开至少一实施例提供的一种数字电路的版图规划装置的示意性框图。
例如,数字电路包括多个第一单元、多个第二单元,多个第一单元和多个第二单元通过片上互联耦接,关于第一单元、第二单元、片上互联的具体描述可参考数字电路的版图规划方法中的相关介绍,这里不再赘述。
例如,如图6A所示,数字电路的版图规划装置600包括:获取单元601、计算单元602和规划单元603。
获取单元601,配置为获取多个第一单元和多个第二单元分别对应的属性信息。
计算单元602,配置为根据多个第一单元和多个第二单元分别对应的属性信息,计算多个第一单元和多个第二单元分别对应的权重中心。
规划单元603,配置为根据多个第一单元和多个第二单元分别对应的权重中心,对数字电路进行版图规划,以得到数字电路对应的版图规划结果。
图6B为本公开至少一实施例提供的一种计算单元602的示意性框图。
例如,如图6B所示,计算单元602包括第一计算单元6021、第二计算单元6022和全局计算单元6023。
第一计算单元6021配置为根据多个第一单元分别对应的属性信息,计算多个第一单元一一对应的多个第一权重中心。
第二计算单元6022配置为根据多个第二单元分别对应的属性信息,计算多个第二单元一一对应的多个第二权重中心。
全局计算单元6023配置为根据多个第一权重中心和多个第二权重中心,确定全局权重中心。
例如,每个第一单元对应的属性信息至少包括布局信息、逻辑关系和单元类型。第一计算单元6021执行根据多个第一单元分别对应的属性信息,计算多个第一单元一一对应的多个第一权重中心时,包括执行以下操作:针对多个第一单元中的每个第一单元:响应于第一单元对应的属性信息中的单元类型指示第一单元为计算单元,根据第一单元对应的属性信息中的逻辑关系,确定第一单元对应的输入寄存器和输出寄存器;确定输入寄存器与输出寄存器之间的所有组合逻辑器件;根据第一单元对应的属性信息中的布局信息,确定所有组合逻辑器件的位置坐标;根据所有组合逻辑器件的位置坐标,计算第一单元对应的第一权重中心。
例如,第一计算单元6021执行根据所有组合逻辑器件的位置坐标,计算第一单元对应的第一权重中心时,包括执行以下操作:计算所有组合逻辑器件的位置坐标的平均值或加权平均值,将平均值或加权平均值作为第一单元对应的第一权重中心。
例如,第一计算单元6021执行根据多个第一单元分别对应的属性信息,计算多个第一单元分别对应的多个第一权重中心时,包括执行以下操作:针对多个第一单元中的每个第一单元:响应于第一单元对应的属性信息中的单元类型指示第一单元为存储单元或通信总线,根据第一单元对应的属性信息中的布局信息,确定第一单元包括的多个器件的位置坐标;计算多个器件的位置坐标的平均值或加权平均值,将平均值或加权平均值作为第一单元对应的第一权重中心。
例如,全局计算单元6023执行根据多个第一权重中心和多个第二权重中心,确定全局权重中心时,包括执行以下操作:计算多个第一权重中心和多个第二权重中心的平均值或加权平均值,将平均值或加权平均值作为全局权重中心。
例如,片上互联包括交叉开关电路,交叉开关电路配置为执行多个第一单元的资源和多个第二单元的资源的共享和交换,规划单元603执行根据多个第一单元和多个第二单元分别对应的权重中心,对数字电路进行版图规划,以得到数字电路对应的版图规划结果时,包括执行以下操作:将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行版图规划,以得到版图规划结果。
例如,规划单元603包括初始规划子单元和迭代优化子单元。
例如,初始规划子单元配置为将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行布局布线,得到初始版图结果。
例如,迭代优化子单元配置为基于初始版图结果执行优化迭代处理得到版图优化结果;其中,优化迭代处理包括:根据源版图结果,计算多个第一单元和多个第二单元之间的多组互联线的传输功耗,其中,源版图结果包括初始版图结果,每组互联线用于连接一个第一单元和一个第二单元;根据多组互联线的传输功耗,对源版图结果进行布局布线优化处理,得到版图优化结果;响应于版图优化结果满足预定条件,停止执行优化迭代处理,将版图优化结果作为版图规划结果,响应于版图优化结果不满足预定条件,将版图优化结果作为源版图结果,继续执行优化迭代处理。
例如,初始规划子单元执行将多个第一权重中心分别作为多个第一单元的初始位置,将多个第二权重中心分别作为多个第二单元的初始位置,将全局权重中心作为交叉开关电路的初始位置,对数字电路进行布局布线,得到初始版图结果时,包括执行以下操作:针对由一组互联线连接的目标第一单元和目标第二单元:根据目标第一单元对应的第一权重中心和目标第二单元对应的第二权重中心,计算目标第一单元和目标第二单元之间的曼哈顿距离;根据曼哈顿距离,确定一组互联线所在的金属层。
例如,初始规划子单元执行根据曼哈顿距离,确定一组互联线所在的金属层时,包括执行以下操作:响应于曼哈顿距离大于预设阈值,确定一组互联线位于第一组金属层中的一个金属层;响应于曼哈顿距离小于等于预设阈值,确定一组互联线位于第二组金属层中的一个金属层;其中,第一组金属层包括的至少一个金属层的电阻小于第二组金属层包括的至少一个金属层的电阻。
例如,迭代优化子单元执行根据源版图结果,计算多个第一单元和多个第二单元之间的多组互联线的传输功耗时,包括执行以下操作:根据源版图结果,确定多组互联线;根据源版图结果,确定每组互联线所在的金属层和长度;根据每组互联线所在的金属层和长度,计算每组互联线的耦合电容;根据每组互联线的耦合电容,计算每组互联线的传输功耗。
例如,迭代优化子单元执行优化迭代处理时还包括执行以下操作:根据源版图结果,计算多组互联线的延时;根据多组互联线的传输功耗,对源版图结果进行布局布线优化处理,得到版图优化结果,包括:根据多组互联线的传输功耗和多组互联线的延时,对源版图结果进行布局布线优化处理,以得到版图优化结果。
例如,交叉开关电路配置为使得多个第一单元与多个第二单元两两之间存在连接关系,以及实时切换多个第一单元和多个第二单元之间的导通状态。
例如,交叉开关电路包括多个控制器,多个控制器用于根据相应的控制信号切换多个第一单元和多个第二单元之间的导通状态,在版图优化结果中,交叉开关电路为分布式电路,多个控制器分布至多个第一单元或多个第二单元中。
例如,在一些实施例中,数字电路的版图规划装置600还可以包括资源优化单元(图6A未示出)。
例如,资源优化单元配置为根据所述版图规划结果,确定所述交叉开关电路包括的至少一个器件的位置;根据所述至少一个器件的位置,对所述数字电路进行资源优化处理,其中,所述资源优化处理包括公有路径优化处理。
例如,获取单元601、计算单元602和规划单元603包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取单元601、计算单元602和规划单元603的一些功能或全部功能。例如,获取单元601、计算单元602和规划单元603可以是专用硬件器件,用来实现如上所述的获取单元601、计算单元602和规划单元603的一些或全部功能。例如,获取单元601、计算单元602和规划单元603可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,获取单元601用于实现图2所示的步骤S10,计算单元602用于实现图2所示的步骤S20,规划单元603用于实现图2所示的步骤S30。从而关于获取单元601的具体说明可以参考上述数字电路的版图规划方法的实施例中图2所示的步骤S10的相关描述,关于计算单元602的具体说明可以参考上述数字电路的版图规划方法的实施例中图2所示的步骤S20的相关描述,关于规划单元603的具体说明可以参考上述数字电路的版图规划方法的实施例中图2所示的步骤S30的相关描述。
此外,数字电路的版图规划装置可以实现与前述数字电路的版图规划方法相似的技术效果,在此不再赘述。
本公开至少一实施例还提供一种电子设备,图7为本公开至少一实施例提供的一种电子设备的示意性框图。
例如,如图7所示,该电子设备包括处理器1001、通信接口1002、存储器1003和通信总线1004。处理器1001、通信接口1002、存储器1003通过通信总线1004实现相互通信,处理器1001、通信接口1002、存储器1003等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。
例如,存储器1003用于非瞬时性地存储计算机可执行指令。处理器1001用于运行计算机可执行指令时,计算机可执行指令被处理器1001运行时实现根据上述任一实施例所述的数字电路的版图规划方法。关于该数字电路的版图规划方法的各个步骤的具体实现以及相关解释内容可以参见上述数字电路的版图规划方法的实施例,在此不作赘述。
例如,处理器1001执行存储器1003上所存储的程序而实现数字电路的版图规划方法的实现方式,与前述数字电路的版图规划方法的实施例部分所提及的实现方式相同,这里也不再赘述。
例如,通信总线1004可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
例如,通信接口1002用于实现电子设备与其他设备之间的通信。
例如,处理器1001可以控制电子设备中的其它组件以执行期望的功能。处理器1001可以是中央处理器(CPU)、网络处理器(NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
例如,存储器1003可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器1001可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
例如,关于电子设备执行数字电路的版图规划的过程的详细说明可以参考数字电路的版图规划方法的实施例中的相关描述,重复之处不再赘述。
图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图8所示,在存储介质1100上可以非暂时性地存储一个或多个计算机可执行指令1101。例如,当计算机可执行指令1101由处理器执行时可以执行根据上文所述的数字电路的版图规划方法中的一个或多个步骤。
例如,该存储介质1100可以应用于上述电子设备和/或数字电路的版图规划装置600中。例如,存储介质1100可以包括电子设备中的存储器1003。
例如,关于存储介质1100的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种数字电路的版图规划方法,其中,所述数字电路包括多个第一单元、多个第二单元,所述多个第一单元和所述多个第二单元通过片上互联耦接,
所述版图规划方法包括:
获取所述多个第一单元和所述多个第二单元分别对应的属性信息;
根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心;
根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果。
2.根据权利要求1所述的版图规划方法,其中,根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心,包括:
根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元一一对应的多个第一权重中心;
根据所述多个第二单元分别对应的属性信息,计算所述多个第二单元一一对应的多个第二权重中心;
根据所述多个第一权重中心和所述多个第二权重中心,确定全局权重中心;
其中,所述多个第一单元和所述多个第二单元分别对应的权重中心包括所述多个第一权重中心和所述多个第二权重中心。
3.根据权利要求2所述的版图规划方法,其中,每个第一单元对应的属性信息至少包括布局信息、逻辑关系和单元类型,
根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元一一对应的多个第一权重中心,包括:
针对所述多个第一单元中的每个第一单元:
响应于所述第一单元对应的属性信息中的单元类型指示所述第一单元为计算单元,
根据所述第一单元对应的属性信息中的逻辑关系,确定所述第一单元对应的输入寄存器和输出寄存器;
确定所述输入寄存器与所述输出寄存器之间的所有组合逻辑器件;
根据所述第一单元对应的属性信息中的布局信息,确定所述所有组合逻辑器件的位置坐标;
根据所述所有组合逻辑器件的位置坐标,计算所述第一单元对应的第一权重中心。
4.根据权利要求3所述的版图规划方法,其中,根据所述所有组合逻辑器件的位置坐标,计算所述第一单元对应的第一权重中心,包括:
计算所述所有组合逻辑器件的位置坐标的平均值或加权平均值,将所述平均值或所述加权平均值作为所述第一单元对应的第一权重中心。
5.根据权利要求2所述的版图规划方法,其中,每个第一单元对应的属性信息至少包括布局信息和单元类型,
根据所述多个第一单元分别对应的属性信息,计算所述多个第一单元分别对应的多个第一权重中心,包括:
针对所述多个第一单元中的每个第一单元:
响应于所述第一单元对应的属性信息中的单元类型指示所述第一单元为存储单元或通信总线,
根据所述第一单元对应的属性信息中的布局信息,确定所述第一单元包括的多个器件的位置坐标;
计算所述多个器件的位置坐标的平均值或加权平均值,将所述平均值或所述加权平均值作为所述第一单元对应的第一权重中心。
6.根据权利要求2所述的版图规划方法,其中,根据所述多个第一权重中心和所述多个第二权重中心,确定全局权重中心,包括:
计算所述多个第一权重中心和所述多个第二权重中心的平均值或加权平均值,将所述平均值或所述加权平均值作为所述全局权重中心。
7.根据权利要求2-6任一项所述的版图规划方法,其中,所述片上互联包括交叉开关电路,所述交叉开关电路配置为执行所述多个第一单元的资源和所述多个第二单元的资源的共享和交换,
根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果,包括:
将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行所述版图规划,以得到所述版图规划结果。
8.根据权利要求7所述的版图规划方法,其中,将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行所述版图规划,以得到所述版图规划结果,包括:
将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行布局布线,得到初始版图结果;
基于所述初始版图结果执行优化迭代处理得到所述版图优化结果;
其中,所述优化迭代处理包括:
根据源版图结果,计算所述多个第一单元和所述多个第二单元之间的多组互联线的传输功耗,其中,所述源版图结果包括所述初始版图结果,每组互联线用于连接一个第一单元和一个第二单元;
根据所述多组互联线的传输功耗,对所述源版图结果进行布局布线优化处理,得到所述版图优化结果;
响应于所述版图优化结果满足预定条件,停止执行所述优化迭代处理,将所述版图优化结果作为所述版图规划结果,
响应于所述版图优化结果不满足预定条件,将所述版图优化结果作为所述源版图结果,继续执行所述优化迭代处理。
9.根据权利要求8所述的版图规划方法,其中,将所述多个第一权重中心分别作为所述多个第一单元的初始位置,将所述多个第二权重中心分别作为所述多个第二单元的初始位置,将所述全局权重中心作为所述交叉开关电路的初始位置,对所述数字电路进行布局布线,得到初始版图结果,包括:
针对由一组互联线连接的目标第一单元和目标第二单元:
根据所述目标第一单元对应的第一权重中心和所述目标第二单元对应的第二权重中心,计算所述目标第一单元和所述目标第二单元之间的曼哈顿距离;
根据所述曼哈顿距离,确定所述一组互联线所在的金属层。
10.根据权利要求9所述的版图规划方法,其中,所述数字电路包括多层金属层,所述多层金属层包括第一组金属层和第二组金属层,
根据所述曼哈顿距离,确定所述一组互联线所在的金属层,包括:
响应于所述曼哈顿距离大于预设阈值,确定所述一组互联线位于所述第一组金属层中的一个金属层;
响应于所述曼哈顿距离小于等于所述预设阈值,确定所述一组互联线位于所述第二组金属层中的一个金属层;
其中,所述第一组金属层包括的至少一个金属层的电阻小于所述第二组金属层包括的至少一个金属层的电阻。
11.根据权利要求8所述的版图规划方法,其中,根据源版图结果,计算所述多个第一单元和所述多个第二单元之间的多组互联线的传输功耗,包括:
根据所述源版图结果,确定所述多组互联线;
根据所述源版图结果,确定每组互联线所在的金属层和长度;
根据所述每组互联线所在的金属层和长度,计算所述每组互联线的耦合电容;
根据所述每组互联线的耦合电容,计算所述每组互联线的传输功耗。
12.根据权利要求8所述的版图规划方法,其中,所述优化迭代处理还包括:
根据所述源版图结果,计算所述多组互联线的延时;
根据所述多组互联线的传输功耗,对所述源版图结果进行布局布线优化处理,得到所述版图优化结果,包括:
根据所述多组互联线的传输功耗和所述多组互联线的延时,对所述源版图结果进行所述布局布线优化处理,以得到所述版图优化结果。
13.根据权利要求7所述的版图规划方法,其中,所述交叉开关电路配置为使得所述多个第一单元与所述多个第二单元两两之间存在连接关系,以及实时切换所述多个第一单元和所述多个第二单元之间的导通状态。
14.根据权利要求7所述的版图规划方法,其中,所述交叉开关电路包括多个控制器,所述多个控制器用于根据相应的控制信号切换所述多个第一单元和所述多个第二单元之间的导通状态,
在所述版图优化结果中,所述交叉开关电路为分布式电路,所述多个控制器分布至所述多个第一单元或所述多个第二单元中。
15.根据权利要求7所述的版图规划方法,还包括:
根据所述版图规划结果,确定所述交叉开关电路包括的至少一个器件的位置;
根据所述至少一个器件的位置,对所述数字电路进行资源优化处理,其中,所述资源优化处理包括公有路径优化处理。
16.一种数字电路的版图规划装置,其中,所述数字电路包括多个第一单元、多个第二单元,所述多个第一单元和所述多个第二单元通过片上互联耦接,
所述版图规划装置包括:
获取单元,配置为获取所述多个第一单元和所述多个第二单元分别对应的属性信息;
计算单元,配置为根据所述多个第一单元和所述多个第二单元分别对应的属性信息,计算所述多个第一单元和所述多个第二单元分别对应的权重中心;
规划单元,配置为根据所述多个第一单元和所述多个第二单元分别对应的权重中心,对所述数字电路进行版图规划,以得到所述数字电路对应的版图规划结果。
17.一种电子设备,包括:
存储器,非瞬时性地存储有计算机可执行指令;
处理器,配置为运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-15任一项所述的数字电路的版图规划方法。
18.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,
所述计算机可执行指令被处理器执行时实现根据权利要求1-15任一项所述的数字电路的版图规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425269.9A CN114707451A (zh) | 2022-04-21 | 2022-04-21 | 数字电路的版图规划方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425269.9A CN114707451A (zh) | 2022-04-21 | 2022-04-21 | 数字电路的版图规划方法、装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114707451A true CN114707451A (zh) | 2022-07-05 |
Family
ID=82174519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210425269.9A Pending CN114707451A (zh) | 2022-04-21 | 2022-04-21 | 数字电路的版图规划方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114707451A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116029254A (zh) * | 2023-01-06 | 2023-04-28 | 中山大学 | 一种基于路径优化的集成电路版图自动布线方法及系统 |
WO2024021797A1 (zh) * | 2022-07-26 | 2024-02-01 | 腾讯科技(深圳)有限公司 | 芯片版图的布线方法、装置、设备、存储介质及芯片版图 |
-
2022
- 2022-04-21 CN CN202210425269.9A patent/CN114707451A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021797A1 (zh) * | 2022-07-26 | 2024-02-01 | 腾讯科技(深圳)有限公司 | 芯片版图的布线方法、装置、设备、存储介质及芯片版图 |
CN116029254A (zh) * | 2023-01-06 | 2023-04-28 | 中山大学 | 一种基于路径优化的集成电路版图自动布线方法及系统 |
CN116029254B (zh) * | 2023-01-06 | 2024-04-12 | 中山大学 | 一种基于路径优化的集成电路版图自动布线方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
Kumary et al. | A 4.6 Tbits/s 3.6 GHz single-cycle NoC router with a novel switch allocator in 65nm CMOS | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
CN114707451A (zh) | 数字电路的版图规划方法、装置、电子设备、存储介质 | |
JP7074833B2 (ja) | ネットワークオンチップによるデータ処理方法及び装置 | |
US8601423B1 (en) | Asymmetric mesh NoC topologies | |
CN108564168A (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
US10218580B2 (en) | Generating physically aware network-on-chip design from a physical system-on-chip specification | |
CN101335606B (zh) | 一种高可靠片上网络路由器系统及其设计方法 | |
JP2011503710A (ja) | しっかりと連結されたマルチプロセッサのための共有メモリ・システム | |
US11880710B2 (en) | Adaptive data shipment based on burden functions | |
CN111901257B (zh) | 一种交换机、报文转发方法及电子设备 | |
US20220015588A1 (en) | Dual mode interconnect | |
CN117057290A (zh) | 时序优化方法、装置、电子设备及存储介质 | |
US9330211B2 (en) | Simulation system for implementing computing device models in a multi-simulation environment | |
CN115580572B (zh) | 路由方法、路由节点、路由装置和计算机可读存储介质 | |
JP6284177B2 (ja) | 誤り耐性ルータ、これを使用するic、及び誤り耐性ルータの制御方法 | |
CN116614433B (zh) | 一种人工智能芯片、数据传输方法及数据传输系统 | |
US20190205494A1 (en) | System and method for designing a chip floorplan using machine learning | |
CN113449477B (zh) | 数字电路的连接方法、装置、电子设备和存储介质 | |
CN112486402A (zh) | 一种存储节点及系统 | |
US10990408B1 (en) | Place and route aware data pipelining | |
WO2023155239A1 (zh) | 版图布局布线方法、电路版图、电子设备以及存储介质 | |
US20210326262A1 (en) | Low latency metrics sharing across processor units | |
CN107273312B (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 |