CN118551703B - 用于优化数字逻辑电路的方法、计算机设备及存储介质 - Google Patents
用于优化数字逻辑电路的方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN118551703B CN118551703B CN202411021874.5A CN202411021874A CN118551703B CN 118551703 B CN118551703 B CN 118551703B CN 202411021874 A CN202411021874 A CN 202411021874A CN 118551703 B CN118551703 B CN 118551703B
- Authority
- CN
- China
- Prior art keywords
- netlist
- signal
- logic circuit
- target
- digital logic
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004044 response Effects 0.000 claims description 8
- 238000004804 winding Methods 0.000 claims description 7
- 230000001934 delay Effects 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 abstract description 44
- 238000005457 optimization Methods 0.000 abstract description 13
- 238000013461 design Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 102100025444 Gamma-butyrobetaine dioxygenase Human genes 0.000 description 2
- 101000934612 Homo sapiens Gamma-butyrobetaine dioxygenase Proteins 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
本申请提供一种用于优化数字逻辑电路的方法、计算机设备及存储介质。该方法包括:获取所述数字逻辑电路的网表,确定所述网表的信号驱动端和信号接收端,基于所述信号驱动端和所述信号接收端确定约束条件,根据所述约束条件确定所述数字逻辑电路的目标网表,基于所述目标网表,对所述数字逻辑电路进行优化。通过上述方法在无需建立时序图的基础上可以识别数字逻辑电路中的目标网表,节省了时序图的建立时间,从而提升了数字逻辑电路的优化效率。
Description
技术领域
本申请涉及数字逻辑电路技术领域,尤其涉及一种用于优化数字逻辑电路的方法、计算机设备及存储介质。
背景技术
在EDA软件布局布线时,为避免到达时间较大从而发生时序违例,需要找到到达时间可能较大的目标网表,并针对目标网表做时序优化与控制。在相关技术中,为了识别目标网表,可以先建立时序图,然后基于时序图来匹配识别目标网表。然而,时序图的建立非常耗时,基于时序图识别目标网表会导致优化数字逻辑电路的时间开销很大。
发明内容
有鉴于此,本申请的目的在于提出一种用于优化数字逻辑电路的方法、计算机设备及存储介质,以解决或部分解决上述问题。
基于上述目的,本申请第一方面,提供了一种用于优化数字逻辑电路的方法,包括:
获取所述数字逻辑电路的网表;
确定所述网表的信号驱动端和信号接收端;
基于所述信号驱动端和所述信号接收端确定约束条件;
根据所述约束条件确定所述数字逻辑电路的目标网表;
基于所述目标网表,对所述数字逻辑电路进行优化。
本申请第二方面,提供了一种计算机设备,包括:
一个或者多个处理器、存储器;以及
一个或多个程序;
其中,所述一个或多个程序被存储在所述存储器中,并且被一个或多个处理器执行,所述程序包括用于执行如第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行如第一方面所述的方法。
从上面所述可以看出,本申请提供的一种用于优化数字逻辑电路的方法、计算机设备及存储介质。该方法包括:获取所述数字逻辑电路的网表,确定所述网表的信号驱动端和信号接收端,基于所述信号驱动端和所述信号接收端确定约束条件,根据所述约束条件确定所述数字逻辑电路的目标网表,基于所述目标网表,对所述数字逻辑电路进行优化。通过上述方法在无需建立时序图的基础上可以识别数字逻辑电路中的目标网表,节省了时序图的建立时间,从而提升了数字逻辑电路的优化效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的示例性时序图100的示意图。
图2A示出了根据本申请实施例的示例性第一数字逻辑电路200的示意图。
图2B示出了根据本申请实施例的又一示例性第一数字逻辑电路200的示意图。
图3A示出了根据本申请实施例的示例性曼哈顿距离的示意图。
图3B示出了根据本申请实施例的示例性第二数字逻辑电路300a的示意图。
图3C示出了根据本申请实施例的示例性第三数字逻辑电路300b的示意图。
图4示出了根据本申请实施例的示例性用于优化数字逻辑电路的方法400的流程示意图。
图5示出了根据本申请实施例的示例性计算机设备500的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
可以理解的是,在使用本申请中各个实施例的技术方案之前,均会通过恰当的方式对所涉及的个人信息的类型、使用范围、使用场景等告知用户,并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确的提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主的选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定的实现方式,响应于接受到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其他满足相关法律法规的方式也可应用于本申请的实现方式中。
EDA(Electronic Design Automation)即电子设计自动化,是指利用计算机和专门设计的软件工具来辅助进行电子系统的设计过程。EDA工具在电子设计的各个阶段都发挥着重要作用,包括逻辑设计、综合、布局布线、时序分析、功耗分析等。其中,时序与布局布线相容性分析作为电子系统设计的关键环节之一,对于保证电子系统的稳定性、性能和可靠性具有重要意义。
在电子系统设计中,时序(Timing)表示信号在电路中传播的时间特性,在时序分析中,我们需要关注信号从一个触发器到另一个触发器的传播时间,以及各种时序规格的性能要求。布局布线(Placement&Routing)则是指将逻辑电路中的各个元件布放在芯片上的某个位置并予以布线连接,合理的布局布线对于电路性能、功耗以及芯片面积等方面有重要影响。
EDA软件布局布线,需要满足时序(timing)要求,建立时序裕量(Setup Slack)是一个重要指标来指示信号网表(signal nets)的绕线结果是否存在时序违例(timingviolation)。网表(Net),也称网络表,是网络连接和连接表示,其内容主要是电路中各个元件类型、封装信息、连接关系等信息,网表通常包含至少一个信号驱动端(driver)以及一个或者多个信号接收端(load),布线需要将网表的信号驱动端以及所有信号接收端绕通。
建立时序裕量=要求时间(Data Required Time)–到达时间(Data ArrivalTime),其中,要求时间是为了保证时序需求,为数据可以被接收端捕获到的最迟到达的时间;到达时间为信号从信号驱动端实际达到信号接收端的时间,为数据实际到达接收端的时间。需要说明的是,绕线延迟时间(Delay Time)是到达时间的一部分,绕线延迟时间越大,到达时间越大。如果建立时序裕量为负数,那么就存在时序违例,从上面建立时序裕量的计算公式可以看出来,如果到达时间比较大,那么可能导致建立时序裕量为负数,从而发生时序违例。
在EDA软件布局布线时,为避免到达时间较大从而发生时序违例,需要找到布局布线迭代过程中到达时间可能较大的目标网表(timing critical nets),并针对目标网表做时序优化与控制。在相关技术中,为了识别目标网表,可以先建立时序图(timing graph),然后基于时序图来匹配识别目标网表。
图1示出了根据本申请实施例的示例性时序图100的示意图。
如图1所示,时序图100可以是向无环图(Directed Acyclic Graph,DAG)。该图由节点集合与有向边集合构成。其中:
1、有向边表示信号的传递方向。
2、路径(path):一个节点组成的序列,在这个节点序列中,任何两个前后相邻的节点之间都存在一条有向边使得两个节点分别为该边的尾节点和头节点。
3、延迟(delay):每一条有向无环图的边都可以绑定一个正数,代表物理世界中的信号传输延迟。
对于时序图100中的每个节点,需要计算每个节点的到达时间以及要求时间。从一个节点(例如,节点A)到另一个节点(例如,节点B)有很多条路径,在进行布局布线时,需要根据每个节点的到达时间和要求时间计算每个节点的建立时序裕量,再根据每个节点的建立时序裕量将路径中延迟较大的路径找出。进而,基于时序图中找出的路径识别目标网表。这样在根据时序图识别出目标网表后,则可以对目标网表进行布局布线优化,从而达到优化数字逻辑电路的目的。
可以理解,时序图100中节点的数量仅为示例性的。在数字逻辑电路中可以存在更多的节点,更多的节点之间则可以形成更多的路径。然而,在进行布局布线时,对于每个节点都需要计算到达时间、要求时间和建立时间裕量,从而找出延迟较大的路径,这会导致优化数字逻辑电路的时间开销很大。
此外,在一些场景中,例如,直接导入DEF(Design Exchange Format)文件,在直接导入DEF文件的应用场景,可能会存在由于DEF文件中的参数信息缺失,从而无法建立时序图的问题。在这种情况下,无法建立时序图,也就无法基于时序图识别目标网表,进而也就无法进行数字逻辑电路布局布线的优化。
时序图是拓扑结构会随着布局布线迭代过程中不断变化的网络,其中拓扑结构变化表现为节点或连边的增加或减少、节点中到达时间和要求时间值的变化,导致一个节点的重要性会随着时间的演变会发生改变。这样,由于时序图是随时间不断变化的网络结构,在利用时序图识别目标网表时,则可能会导致遗漏一些目标网表。而这些被遗漏的目标网表往往是延迟可能较大的目标网表,在此基础上,在进行布局布线优化时,则无法在布局布线迭代的初期对这些被遗漏的目标网表进行优化,进而会影响数字逻辑电路的整体时序优化效果。
有鉴于此,本申请提供一种用于优化数字逻辑电路的方法、计算机设备及存储介质。该方法包括:获取所述数字逻辑电路的网表,确定所述网表的信号驱动端和信号接收端,基于所述信号驱动端和所述信号接收端确定约束条件,根据所述约束条件确定所述数字逻辑电路的目标网表,基于所述目标网表,对所述数字逻辑电路进行优化。通过上述方法在无需建立时序图的基础上可以识别数字逻辑电路中的目标网表,节省了时序图的建立时间,从而提升了数字逻辑电路的优化效率。
本申请提供的用于优化数字逻辑电路的方法,可以不需要建立时序图。在一些实施例中,可以通过约束条件确定数字逻辑电路中的目标网表,进而在布局布线时,对目标网表的绕线进行优化,从而实现数字逻辑电路的优化。
图2A示出了根据本申请实施例的示例性第一数字逻辑电路200的示意图。
如图2A所示,第一数字逻辑电路200可以包括第一单元202、第二单元204、第三单元206和第四单元208。第一单元202、第二单元204、第三单元206和第四单元208可以是基本逻辑单元、触发器(Flip Flop)等。每个单元可以包括引脚(pin)(例如,第一引脚212、第二引脚214、第三引脚216),用于输入或输出信号。多个单元之间可以通过网表连接,在本实施例中,网表连接了第一引脚212、第二引脚214和第三引脚216。
需要说明的是,第一数字逻辑电路200中模块、引脚以及网表的连接均为示例性的。在实际应用中,数字逻辑电路可以包括更多的模块、引脚以及更多的连接方式,本申请在此不作限定。
为了识别数字逻辑电路中延迟较大的目标网表,在一些实施例中,在获取了数字逻辑电路中所有的网表后,可以确定每个网表的信号驱动端(driver)和信号接收端(load)。以图2A中所示的网表为例,以第二引脚214和第三引脚216为例,假设第二引脚214和第三引脚216通过网表连接,第二引脚214则可以是网表的信号驱动端,第三引脚216则可以是网表的信号接收端。
在确定了每个网表的信号驱动端和信号接收端后,在一些实施例中,可以计算覆盖每个网表的信号驱动端和信号接收端的最小矩形区域的面积(net Boundary Box area,net BBOX area)。如图2A所示,以第二引脚214通过网表连接至第三引脚216和第一引脚212为例,第二引脚214为网表的信号驱动端,第一引脚212和第三引脚216为网表的信号接收端,通过网表的第一连接218将第一引脚212、第二引脚214、第三引脚216连接起来。第一矩形区域210则可以为可以覆盖第一引脚212、第二引脚214、第三引脚216的最小矩形区域,第一矩形区域210的面积可以是第一面积。
图2B示出了根据本申请实施例的又一示例性第一数字逻辑电路200的示意图。
如图2B所示,以第二引脚214通过网表连接至第四引脚220为例,第二引脚214为网表的信号驱动端,第四引脚220为网表的信号接收端,第二引脚214通过网表的第二连接224连接至第四引脚220。第二矩形区域222则可以为覆盖第二引脚214、第四引脚220的最小矩形区域,第二矩形区域222的面积可以是第二面积。
结合图2A和图2B,一般情况下,网表的最小矩形区域的面积越大,则网表的绕线往往越长,网表的延迟也就越大。因此,将覆盖每个网表的信号驱动端和信号接收端的最小矩形区域的面积作为约束条件,以识别数字逻辑电路中延迟较大的网表。例如,如果第一面积大于第二面积,则可以将第一面积对应的网表筛选出来,从而对该网表的绕线进行控制。
在第一数字逻辑电路200中,可能存在多个面积相同的最小矩形区域。然而,多个面积相同的最小矩形区域中的网表的延迟会存在较大的差异。有鉴于此,在将覆盖每个网表的信号驱动端和信号接收端的最小矩形区域的面积作为约束条件的基础上,在一些实施例中,可以进一步将信号驱动端和信号接收端的目标距离作为约束条件。其中,该目标距离可以是信号驱动端和信号接收端的最大曼哈顿距离。
图3A示出了根据本申请实施例的示例性曼哈顿距离的示意图。
曼哈顿距离为两个点在标准坐标系上的绝对轴距的总和。以图3A中的点A和点B为例,点A的坐标为(x1,y1),点B的坐标为(x2,y2),那么点A到点B的曼哈顿距离为| x2- x1|+|y2- y1|。
图3B示出了根据本申请实施例的示例性第二数字逻辑电路300a的示意图。图3C示出了根据本申请实施例的示例性第三数字逻辑电路300b的示意图。
如图3B所示,第二数字逻辑电路300a可以包括第五单元302a、第六单元304a、第七单元306a和第八单元308a。以第五引脚312a、第六引脚316a和第七引脚314a为例,第五引脚312a为网表的信号驱动端,第七引脚314a和第六引脚316a为网表的信号接收端。对于第二数字逻辑电路300a,覆盖信号驱动端和信号接收端的的最小矩形区域可以是第三矩形区域310a。由于引脚间的曼哈顿距离越大,网表延迟可能越大,因此,在一些实施例中,对于某个网表的信号驱动端到该网表的多个信号接收端,选择信号驱动端到信号接收端的最大曼哈顿距离作为约束条件。例如,如图3B所示,在第三矩形区域310a中,第五引脚312a到第七引脚314a的曼哈顿距离大于第五引脚312a到第六引脚316a的曼哈顿距离,如果在布局布线时某个路径通过网表的第三连接320a(第五引脚312a到第七引脚314a),而不是通过网表的第四连接318a(第五引脚312a到第六引脚316a),则可能产生较大的网表延迟。因此,可以将最大曼哈顿距离(本例中,第五引脚312a到第七引脚314a的曼哈顿距离)作为约束条件,将潜在的延迟更大的网表筛选出来。
如图3C所示,第三数字逻辑电路300b可以包括第九单元302b、第十单元304b、第十一单元306b和第十二单元308b。以第八引脚312b、第九引脚316b和第十引脚314b为例,第八引脚312b为网表的信号驱动端,第十引脚314b和第九引脚316b为网表的信号接收端。对于第三数字逻辑电路300b,覆盖信号驱动端和信号接收端的最小矩形区域可以是第四矩形区域310b。由于引脚间的曼哈顿距离越大,网表延迟可能越大,因此,在一些实施例中,对于某个网表的信号驱动端到该网表的多个信号接收端,选择信号驱动端到信号接收端的最大曼哈顿距离作为约束条件。例如,如图3C所示,在第四矩形区域310b中,第八引脚312b到第十引脚314b的曼哈顿距离大于第八引脚312b到第九引脚316b的曼哈顿距离,如果在布局布线时某个路径通过网表的第五连接320b(第八引脚312b到第十引脚314b),而不是通过网表的第六连接318b(第八引脚312b到第九引脚316b),则可能产生较大的网表延迟。因此,可以将最大曼哈顿距离(本例中,第八引脚312b到第十引脚314b的曼哈顿距离)作为约束条件,将潜在的延迟更大的网表筛选出来。
如上所述,多个BBOX区域面积相同的网表的延迟会存在较大的差异。结合图3B和图3C,以第三矩形区域310a和第四矩形区域310b的面积相同为例,例如,第三矩形区域310a的面积可以是10×10,第四矩形区域310b的面积可以是25×4,这样,在第二数字逻辑电路300a中,第五引脚312a的坐标可以是(0,10),第七引脚314a的坐标可以是(10,0),那么最大曼哈顿距离为第五引脚312a到第七引脚314a的曼哈顿距离(例如,第一距离)则可以是20;而在第三数字逻辑电路300b中,第八引脚312b的坐标可以是(0,4),第十引脚314b的坐标可以是(25,0),那么最大曼哈顿距离为第八引脚312b到第十引脚314b的曼哈顿距离(例如,第二距离)则可以是29。
可以看到,对于面积相同的第三矩形区域310a和第四矩形区域310b,信号驱动端到信号接收端的最大曼哈顿距离会有较大差异。而对于信号驱动端到信号接收端最大曼哈顿距离较大的网表则更可能存在较大的延迟。因此,在一些实施例中,可以在将覆盖信号驱动端和信号接收端的最小矩形区域面积作为约束条件的基础上,进一步将信号驱动端到信号接收端的最大曼哈顿距离作为约束条件,从而筛选出数字逻辑电路中最大曼哈顿距离较大的网表,例如,假设图3B和图3C中所示的单元位于同一数字逻辑电路,图3B中第五引脚312a到第七引脚314a的曼哈顿距离小于图3C中第八引脚312b到第十引脚314b的曼哈顿距离,那么可以将第八引脚312b到第十引脚314b的曼哈顿距离作为最大曼哈顿距离(例如,目标距离)的网表筛选出来。
在覆盖信号驱动端和信号接收端的最小矩形区域的面积和曼哈顿距离一样的基础上,信号驱动端和信号接收端的数量越多,则影响到的路径更多,则产生较大延迟的路径的概率越大。因此,在一些实施例中,可以进一步将信号驱动端的第一数量和信号接收端的第二数量作为约束条件,以筛选出信号驱动端和信号接收端较多的网表。
在一些实施例中,将覆盖网表的信号驱动端和网表的信号接收端的最小矩形区域的面积、网表的信号驱动端到网表的信号接收端的最大曼哈顿距离以及网表的信号驱动端和网表的信号接收端的数量作为约束条件,可以表达为如下公式:
其中,表示目标数值,该目标数值与网表一一对应,表示覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积,表示信号驱动端到信号接收端的最大曼哈顿距离,表示第一数值,表示第二数值,表示系数,表示当前网表的信号驱动端和信号接收端的数量,表示数字逻辑电路中信号驱动端和信号接收端数量最大的网表的信号驱动端和信号接收端数量总和。
通过上式可以看到,覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积越大,则目标数值越大;信号驱动端到信号接收端的最大曼哈顿距离越大,则目标数值越大。而当覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积相同的情况下,信号驱动端到信号接收端的最大曼哈顿距离越大,目标数值越大;在信号驱动端到信号接收端的最大曼哈顿距离相同的情况下,覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积越大,目标数值越大。因此,通过将覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积和信号驱动端到信号接收端的最大曼哈顿距离作为约束条件,可以将相同的最小矩形区域的面积中的较大曼哈顿距离的网表筛选出来,将相同的曼哈顿距离中的最小矩形区域的面积较大的网表筛选出来,从而提高筛选出的网表为路径延迟较大的网表的准确度。
通过当前网表的引脚数量与数字逻辑电路中最大网表引脚数量的比值来调节系数,该系数为归一化到(0,1]区间的一个数值。例如,数字逻辑电路中可以包括第三网表和第四网表,第三网表可以包括第三信号驱动端和第三信号接收端,第四网表可以包括第四信号驱动端和第四信号接收端。如果第三信号驱动端和第三信号接收端的数量之和大于第四信号驱动端和第四信号接收端的数量之和,则将第三信号驱动端和第三信号接收端的数量之和作为上述公式中的第三数量(),将当前网表的信号驱动端的数量(例如,第一数量)和信号接收端的数量(例如,第二数量)之和作为上述公式中的第四数量(),从而根据调节系数来控制识别出引脚数量较多的网表。可以理解为,网表的引脚数量越多,则系数越大,相应的,计算出来的目标数值越大。
通过上式计算得到目标数值,在一些实施例中,可以对目标数值进行排序,例如,从大到小进行排序,从排序结果中选取一定比例(例如,目标比例)目标数值大的网表作为目标网表进行布局布线的优化,例如,控制目标网表的绕线方式等,从而优先对布局布线迭代过程中延迟可能较大的网表进行优化,以减少网表的延迟,避免时序违例,从而实现对数字逻辑电路时序的优化。
图4示出了根据本申请实施例的示例性用于优化数字逻辑电路的方法400的流程示意图。如图4所示,方法400可以包括如下步骤。
在步骤402,获取所述数字逻辑电路的网表。
在步骤404,确定所述网表的信号驱动端(例如,图2A中的第二引脚214)和信号接收端(例如,图2A中的第一引脚212和第三引脚216)。
在步骤406,基于所述信号驱动端和所述信号接收端确定约束条件。
在一些实施例中,所述约束条件包括覆盖所述信号驱动端和所述信号接收端的区域(例如,图2A中的第一矩形区域210)的面积、所述信号驱动端和所述信号接收端之间的目标距离、所述信号驱动端的第一数量和所述信号接收端的第二数量。将覆盖每个网表的信号驱动端和信号接收端的最小矩形区域的面积作为约束条件,以识别数字逻辑电路中延迟较大的网表。将信号驱动端到信号接收端的最大曼哈顿距离作为约束条件,从而筛选出延迟可能较大的网表。将信号驱动端和信号接收端的数量作为约束条件,以筛选出信号驱动端和信号接收端较多的网表。
在步骤408,根据所述约束条件确定所述数字逻辑电路的目标网表。
在一些实施例中,所述目标距离包括第一距离和第二距离,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:响应于所述第一距离大于所述第二距离,根据所述第一距离确定所述目标网表。将信号驱动端到信号接收端的最大曼哈顿距离作为约束条件,从而进一步筛选出延迟较大的网表。
在一些实施例中,所述面积包括第一面积和第二面积,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:响应于所述第一面积大于所述第二面积,根据所述第一面积确定所述目标网表。将覆盖每个网表的信号驱动端和信号接收端的最小矩形区域的面积作为约束条件,以识别数字逻辑电路中延迟较大的网表。
在一些实施例中,所述数字逻辑电路包括第一网表和第二网表,所述第一网表包括第一信号驱动端和第一信号接收端,所述第二网表包括第二信号驱动端和第二信号接收端,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:响应于所述第一信号驱动端和所述第一信号接收端的数量之和大于所述第二信号驱动端和所述第二信号接收端的数量之和,根据所述第一网表确定所述目标网表。将信号驱动端和信号接收端的数量作为约束条件,以筛选出信号驱动端和信号接收端较多的网表。
在一些实施例中,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:计算所述目标距离的平方,以得到第一数值;计算所述第一数值和所述面积之和,以得到第二数值;根据所述第二数值、所述第一数量和所述第二数量,确定所述目标网表。通过将覆盖网表的信号驱动端和信号接收端的最小矩形区域的面积和信号驱动端到信号接收端的最大曼哈顿距离作为约束条件,可以将相同的最小矩形区域的面积中的较大曼哈顿距离的网表筛选出来,将相同的曼哈顿距离中的最小矩形区域的面积较大的网表筛选出来,从而提高筛选出的网表为路径延迟较大的网表的准确度。
在一些实施例中,所述数字逻辑电路包括第三网表和第四网表,所述第三网表包括第三信号驱动端和第三信号接收端,所述第四网表包括第四信号驱动端和第四信号接收端,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:响应于所述第三信号驱动端和所述第三信号接收端的数量之和大于所述第四信号驱动端和所述第四信号接收端的数量之和,根据所述第三信号驱动端和所述第三信号接收端的数量之和,得到第三数量;计算所述第一数量和所述第二数量之和,以得到第四数量;计算所述第四数量和所述第三数量的比值,以得到第三数值;根据所述第三数值、所述面积和所述目标距离,确定所述目标网表。通过把当前网表的引脚数量与数字逻辑电路中最大网表引脚数量的比值作为调节系数,从而来控制网表引脚数量对识别目标网表的影响,倾向于选择出引脚数量多的网表。
在一些实施例中,所述数字逻辑电路包括多个网表,所述多个网表对应多个所述约束条件,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:根据多个所述约束条件,得到多个目标数值,所述多个目标数值与所述多个网表一一对应;对所述多个目标数值进行排序,以得到排序结果;根据所述排序结果和目标比例,确定所述目标网表。通过选取目标数值大的目标比例的网表,从而优先对延迟可能较大的网表进行优化,以减少网表的延迟,避免时序违例,从而实现对数字逻辑电路时序的优化。
在步骤410,基于所述目标网表,对所述数字逻辑电路进行优化。
在一些实施例中,所述基于所述目标网表,对所述数字逻辑电路进行优化进一步包括:控制所述目标网表的绕线,以对所述数字逻辑电路进行优化。通过控制目标网表的绕线(例如,避免绕线大的绕路),从而减少网表的延迟,避免时序违例,从而实现对数字逻辑电路时序的优化。
本申请提供的一种用于优化数字逻辑电路的方法、计算机设备及存储介质。该方法包括:获取所述数字逻辑电路的网表,确定所述网表的信号驱动端和信号接收端,基于所述信号驱动端和所述信号接收端确定约束条件,根据所述约束条件确定所述数字逻辑电路的目标网表,基于所述目标网表,对所述数字逻辑电路进行优化。通过上述方法在无需建立时序图的基础上可以识别数字逻辑电路中的目标网表,节省了时序图的建立时间,从而提升了数字逻辑电路的优化效率。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图5示出了根据本申请实施例的示例性计算机设备500的结构示意图。该计算机设备500可以包括:第一处理器502、存储器504、网络接口506、外围接口508和总线510。其中第一处理器502、存储器504、网络接口506和外围接口508通过总线510实现彼此之间在设备内部的通信连接。
第一处理器502可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。第一处理器502可以用于执行与本申请描述的技术相关的功能。在一些实施例中,第一处理器502还可以包括集成为单一逻辑组件的多个处理器。如图5所示,第一处理器502可以包括多个处理器,例如,第二处理器502a、第三处理器502b和第四处理器502c。
存储器504可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图5所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。第一处理器502也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器504可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器504可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口506可以配置为经由网络向计算机设备500提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口506可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口508可以配置为将计算机设备500与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线510可以被配置为在计算机设备500的各个组件(例如,第一处理器502、存储器504、网络接口506和外围接口508)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了第一处理器502、存储器504、网络接口506、外围接口508和总线510,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的计算机设备用于实现前述任一实施例中相应的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法400。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种用于优化数字逻辑电路的方法,其特征在于,包括:
获取所述数字逻辑电路的网表;
确定所述网表的信号驱动端和信号接收端;
基于所述信号驱动端和所述信号接收端确定约束条件,所述约束条件用于筛选所述数字逻辑电路中延迟较大的网表,所述约束条件包括覆盖所述信号驱动端和所述信号接收端的区域的面积、所述信号驱动端和所述信号接收端之间的目标距离、所述信号驱动端的第一数量和所述信号接收端的第二数量;
根据所述约束条件确定所述数字逻辑电路的目标网表;
基于所述目标网表,对所述数字逻辑电路进行优化。
2.如权利要求1所述的方法,其特征在于,所述面积包括第一面积和第二面积,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
响应于所述第一面积大于所述第二面积,根据所述第一面积确定所述目标网表。
3.如权利要求1所述的方法,其特征在于,所述目标距离包括第一距离和第二距离,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
响应于所述第一距离大于所述第二距离,根据所述第一距离确定所述目标网表。
4.如权利要求1所述的方法,其特征在于,所述数字逻辑电路包括第一网表和第二网表,所述第一网表包括第一信号驱动端和第一信号接收端,所述第二网表包括第二信号驱动端和第二信号接收端,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
响应于所述第一信号驱动端和所述第一信号接收端的数量之和大于所述第二信号驱动端和所述第二信号接收端的数量之和,根据所述第一网表确定所述目标网表。
5.如权利要求1所述的方法,其特征在于,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
计算所述目标距离的平方,以得到第一数值;
计算所述第一数值和所述面积之和,以得到第二数值;
根据所述第二数值、所述第一数量和所述第二数量,确定所述目标网表。
6.如权利要求1所述的方法,其特征在于,所述数字逻辑电路包括第三网表和第四网表,所述第三网表包括第三信号驱动端和第三信号接收端,所述第四网表包括第四信号驱动端和第四信号接收端,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
响应于所述第三信号驱动端和所述第三信号接收端的数量之和大于所述第四信号驱动端和所述第四信号接收端的数量之和,根据所述第三信号驱动端和所述第三信号接收端的数量之和,得到第三数量;
计算所述第一数量和所述第二数量之和,以得到第四数量;
计算所述第四数量和所述第三数量的比值,以得到第三数值;
根据所述第三数值、所述面积和所述目标距离,确定所述目标网表。
7.如权利要求1所述的方法,其特征在于,所述数字逻辑电路包括多个网表,所述多个网表对应多个所述约束条件,所述根据所述约束条件确定所述数字逻辑电路的目标网表进一步包括:
根据多个所述约束条件,得到多个目标数值,所述多个目标数值与所述多个网表一一对应;
对所述多个目标数值进行排序,以得到排序结果;
根据所述排序结果和目标比例,确定所述目标网表。
8.如权利要求1所述的方法,其特征在于,所述基于所述目标网表,对所述数字逻辑电路进行优化进一步包括:
控制所述目标网表的绕线,以对所述数字逻辑电路进行优化。
9. 一种计算机设备,其特征在于,包括:
一个或者多个处理器、存储器;以及
一个或多个程序;
其中,所述一个或多个程序被存储在所述存储器中,并且被一个或多个处理器执行,所述程序包括用于执行根据权利要求1-8中任一项所述的方法的指令。
10.一种包含计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411021874.5A CN118551703B (zh) | 2024-07-29 | 用于优化数字逻辑电路的方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411021874.5A CN118551703B (zh) | 2024-07-29 | 用于优化数字逻辑电路的方法、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118551703A CN118551703A (zh) | 2024-08-27 |
CN118551703B true CN118551703B (zh) | 2024-11-15 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116577632A (zh) * | 2023-03-17 | 2023-08-11 | 飞腾信息技术有限公司 | 集成电路中关键路径的检测方法、装置、设备及介质 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116577632A (zh) * | 2023-03-17 | 2023-08-11 | 飞腾信息技术有限公司 | 集成电路中关键路径的检测方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281827B1 (en) | Optimization of parameters for synthesis of a topology using a discriminant function module | |
CN112163394B (zh) | 一种cpu芯片设计方法、装置及电子设备 | |
CN116911246B (zh) | 芯片设计的布线规划方法及相关设备 | |
CN116127908A (zh) | 电路版图的布线方法、装置、设备及存储介质 | |
CN116151179B (zh) | 芯片设计的布局规划方法及相关设备 | |
CN114386356A (zh) | 芯片设计的布线方法及装置、设备、存储介质 | |
CN108734752A (zh) | 显示图表中的数据信息的方法、装置和电子设备 | |
CN118551703B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
US11409934B2 (en) | Generation of hardware design using a constraint solver module for topology synthesis | |
CN117291140B (zh) | 自动布线工具的绕线违例减少方法、装置、存储介质及电子终端 | |
CN116911224B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
WO2024160273A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN118551703A (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
CN116306486A (zh) | 芯片设计的设计规则检查方法及相关设备 | |
US10460064B1 (en) | Partition-aware grid graph based hierarchical global routing | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
CN115828801A (zh) | 一种功率器件版图的设计方法和系统 | |
CN112215524A (zh) | 复杂体系架构中能力重要度的分析方法和装置 | |
CN115293076A (zh) | 生成电路的方法、电子设备及存储介质 | |
CN116888599A (zh) | 一种集成电路的电路单元布局方法及装置 | |
CN112215523A (zh) | 复杂体系架构中能力依赖关系的分析方法和装置 | |
CN118410752B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
CN117272918B (zh) | 在gui界面中进行时钟树规则配置的方法及相关设备 | |
CN118350325B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
CN114115804B (zh) | 一种乘法器转换方法、系统、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |