CN110147139A - 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 - Google Patents
计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 Download PDFInfo
- Publication number
- CN110147139A CN110147139A CN201810143889.7A CN201810143889A CN110147139A CN 110147139 A CN110147139 A CN 110147139A CN 201810143889 A CN201810143889 A CN 201810143889A CN 110147139 A CN110147139 A CN 110147139A
- Authority
- CN
- China
- Prior art keywords
- clock pulse
- weighted value
- tree
- threshold value
- pin
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004458 analytical method Methods 0.000 claims abstract description 62
- 230000003068 static effect Effects 0.000 claims abstract description 55
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 33
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 238000013500 data storage Methods 0.000 claims description 10
- 210000001367 artery Anatomy 0.000 claims description 7
- 210000003462 vein Anatomy 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000012731 temporal analysis Methods 0.000 claims description 2
- 238000000700 time series analysis Methods 0.000 claims description 2
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010189 synthetic method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- 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
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Abstract
一种计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体。计算机执行方法用以合成时脉树电路,时脉树电路包含多个时脉接脚,时脉接脚任两者之间设置有多个权重值,时脉树合成方法包含:建立图形模型,其中图形模型包含多个节点以及多个边线,节点对应所述多个时脉接脚;基于权重值以及时脉接脚的位置,利用力导向演算计算分支位置;设置引导缓冲器至分支位置并且更新电路描述档;进行时脉树合成并执行合成后的静态时序分析;判断静态时序分析的分析结果是否符合时序设定值;以及如果不符合则重新计算权重值,据以重新建立图形模型。借此,达到让延迟变异最小化同时降低晶片变异的功效。
Description
技术领域
本案是有关于一种计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体,且特别是有关于一种降低晶片变异影响的方法以及利用其方法的时脉数据处理系统以及计算机可读取储存媒体。
背景技术
随着科技产品的越来越轻薄化,单一晶片上所包含元件的数量大幅上升,对晶片制程而言,晶片变异(On-Chip-Variation,OCV)所带来的影响越发的严重,尤其是在时脉树合成(Clock tree synthesis)时,可能因为时序上的差异对整个晶片造成极大的影响,因此如何有效的降低时脉树的晶片变异,为本领域待改进的问题之一。
发明内容
本发明的主要目的是在提供一种计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体,其主要是改进晶片因内部操作环境(制程、温度、电压)的不同而导致有时序冲突(Timing violation)的问题,利用找出最佳的分支位置以延长多个时脉接脚的共同路径,并让分支位置至个别时脉接脚的分支路径长度近似,达到让延迟变异(Delayviolation)最小化同时降低晶片变异的功效。
为达成上述目的,本案的第一态样是在提供一种计算机执行方法,用以计算时脉树电路的一分支位置,时脉树电路包含多个时脉接脚,时脉接脚任两者之间设置有多个权重值,计算机执行方法包含:建立图形模型,其中图形模型包含多个节点以及多个边线,节点对应所述多个时脉接脚,边线对应权重值;基于权重值以及时脉接脚的位置,利用力导向演算计算分支位置;设置引导缓冲器至分支位置并且更新电路描述档;进行时脉树合成并执行合成后的静态时序分析;判断静态时序分析的分析结果是否符合时序设定值;以及如果不符合则重新计算权重值,根据重新建立图形模型。
根据本案一实施例,还包含:根据一前时脉树合成数据库建立一时脉文件;以及根据一静态时序分析结果以及该时脉文件产生一时序文件,其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径。
根据本案一实施例,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
根据本案一实施例,在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
根据本案一实施例,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:判断该权重值是否大于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否大于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
根据本案一实施例,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:判断该权重值是否小于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否小于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
根据本案一实施例,在第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
本案的第二态样是在提供一种时脉数据处理系统,用以计算时脉树电路的分支位置,时脉树电路包含多个时脉接脚,时脉接脚任两者之间设置有多个权重值,时脉数据处理系统包含:数据储存单元以及处理器。数据储存单元用以储存时脉接脚以及权重值。处理器与数据储存单元电性耦接,用以建立图形模型并基于权重值以及时脉接脚的位置,利用力导向演算计算分支位置,处理器设置引导缓冲器至分支位置并且更新电路描述档,接着进行时脉树合成并执行合成后的静态时序分析,并判断静态时序分析的分析结果是否符合时序设定值,如果不符合则重新计算权重值,根据重新计算的权重值重新建立图形模型;其中,图形模型包含多个节点以及多个边线,节点对应时脉接脚,边线对应权重值。
根据本案一实施例,该数据储存单元用以储存一前时脉树合成数据库以及一静态时序分析结果;该处理器更用以根据该前时脉树合成数据库建立一时脉文件,以及根据该静态时序分析结果以及该时脉文件产生一时序文件;其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径。
根据本案一实施例,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
根据本案一实施例,该处理器在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当该处理器进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
根据本案一实施例,该处理器设置该引导缓冲器至该分支位置并且更新该电路描述档,该处理器更用以执行:判断该权重值是否大于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否大于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
根据本案一实施例,该处理器设置该引导缓冲器至该分支位置并且更新该电路描述档,该处理器更用以执行:判断该权重值是否小于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否小于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
根据本案一实施例,在该处理器第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当该处理器进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
本案的第三态样是在提供一种计算机可读取储存媒体,用以储存计算机程序,计算机程序用以载入至计算机系统中,并且使得计算机系统用以执行计算时脉树电路的分支位置,时脉树电路包含多个时脉接脚,时脉接脚任两者之间设置有多个权重值,该计算机程序被处理器所执行时会执行以下步骤:建立图形模型,其中图形模型包含多个节点以及多个边线,节点对应时脉接脚,边线对应权重值;基于权重值以及时脉接脚的位置,利用力导向演算计算分支位置;设置引导缓冲器至分支位置并且更新电路描述档;进行时脉树合成并执行合成后的静态时序分析;判断静态时序分析的分析结果是否符合时序设定值;以及如果不符合则重新计算权重值,根据重新计算的权重值重新建立图形模型。
根据本案一实施例,还包含:根据一前时脉树合成数据库建立一时脉文件;以及根据一静态时序分析结果以及该时脉文件产生一时序文件,其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径;其中,在第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
根据本案一实施例,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
根据本案一实施例,在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
根据本案一实施例,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:判断该权重值是否大于一权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否大于该权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
根据本案一实施例,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:判断该权重值是否小于一权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于一距离门槛值;如果判断皆为是,则新增该引导缓冲器至该分支位置;如果判断该权重值是否小于该权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及更新该电路描述档中所述多个时脉接脚的连接信息。
本发明的计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体可在处理过程中找出最佳的分支位置并在分支位置设置引导缓冲器(Guide buffer),降低早期分支以及绕路(Detour issue)的问题,利用找出最佳的分支位置以延长多个时脉接脚的共同路径,并让分支位置至个别时脉接脚的分支路径长度近似,达到降低晶片变异的功效。
附图说明
为让本发明的上述和其他目的、特征、优点与实施例能更明显易懂,所附附图的说明如下:
图1是根据本案的一些实施例所绘示的一种时脉树电路的示意图;
图2是根据本案的一些实施例所绘示的一种时脉树合成方法的流程图;
图3是根据本案的一些实施例所绘示的图形模型的示意图;
图4A是根据本案的一实施例所绘示的其中一步骤的流程图;
图4B是根据本案的另一实施例所绘示的其中一步骤的流程图;
图5A是根据本案的一些实施例所绘示的一种时脉树电路的示意图;
图5B是根据本案的一些实施例所绘示的一种时脉树电路的示意图;以及
图6是根据本案的一些实施例所绘示的一种时脉数据处理系统的示意图。
具体实施方式
以下揭示提供许多不同实施例或例证用以实施本发明的不同特征。特殊例证中的元件及配置在以下讨论中被用来简化本揭示。所讨论的任何例证只用来作解说的用途,并不会以任何方式限制本发明或其例证的范围和意义。此外,本揭示在不同例证中可能重复引用数字符号且/或字母,这些重复皆为了简化及阐述,其本身并未指定以下讨论中不同实施例且/或配置之间的关系。
请参阅图1。图1是根据本案的一些实施例所绘示的一种时脉树电路100的示意图。如图1所绘示,时脉树电路100包含时脉源110、多个时脉接脚p1、p2、p3及p4、时脉树布局线路120以及引导缓冲器130。时脉树布局线路120用以将时脉源110耦接至时脉接脚p1、p2、p3及p4。引导缓冲器130设置于时脉树布局线路120的分支位置,分支位置是根据多个权重值以及时脉接脚p1、p2、p3及p4的位置而决定,时脉接脚p1、p2、p3及p4任两者之间对应于权重值的其中之一。
请一并参阅图1及图2。图2是根据本案的一些实施例所绘示的一种计算机执行方法200的流程图。图2所示的计算机执行方法200可以应用于图1所示的时脉树电路100上,引导缓冲器130所设置的分支位置是根据下列计算机执行方法200所描述的步骤得出。如图2所示,计算机执行方法200包含以下步骤:
步骤S210:根据前时脉树合成数据库建立时脉文件;
步骤S220:根据静态时序分析结果以及时脉文件产生时序文件;
步骤S230:建立图形模型;
步骤S240:基于时序文件中的权重值以及时脉文件中的时脉接脚的位置,利用力导向演算计算分支位置;
步骤S250:设置引导缓冲器至分支位置并且更新电路描述档;
步骤S260:进行时脉树合成并执行合成后的静态时序分析;以及
步骤S270:判断静态时序分析的分析结果是否符合时序设定值。
于步骤S210及步骤S220中,根据前时脉树合成数据库(pre-CTS database)建立时脉文件,先利用解译器(Parser)解译前布局静态时序分析结果(pre-layout STAresults),再利用解译出的结果及时脉文件产生时序文件。如图1所示,时脉文件包括有时脉源110分别与各个时脉接脚p1、p2、p3及p4之间的耦接关系。时序文件包括时脉接脚p1、p2、p3及p4彼此之间存在内部数据互流的数据路径(Data path),本领域技术人员都知道数据路径也可以是时序路径(Timing path),即为图1中的虚线部分,数据路径与时序路径所代表的作用在本发明中雷同。
在步骤S230中,会根据时脉文件以及时序文件建立图形模型。请参考图1及图3,图3是根据本案的一些实施例所绘示的图形模型的示意图。如图3所示,图形模型包含多个节点以及多个边线e1、e2、e3及p4,这些节点即为图1中的时脉接脚p1、p2、p3及p4,边线则代表时脉接脚之间的时序路径(即为图1中虚线的部分),表示时脉接脚之间是否具有时序关系。
于一实施例中,时脉接脚任两者之间设置有多个权重值,权重值会用于之后的计算中。权重值可以使用两种数值来作为权重值,一种是区块间数据路径的数量,举例而言,请参考图1,如果区块A的子区块与区块B的子区块之间有数据相互传递形成数据路径,数据路径的数量即可以用来作为时脉接脚p1以及p2之间的权重值,表示数据路径的数量越多权重值越高。而另一种是利用区块间数据路径的松弛时间(Slack value)作为权重值,松弛时间=需求时间(Required time)-到达时间(Arrival time),需求时间是指能够容忍路径的最大延时,也就是信号到达的最晚的时间;到达时间是指讯号到达某个特定位置所消耗的时间。在一般情况下,会将时脉讯号到达的时间作为参考时间,为了计算到达时间,需要对路径中的所有元件的延时都进行计算。如果某条数据路径的松弛时间为正数,代表此路径的时延(Time delay)是符合要求的,但如果某条数据路径的松弛时间为负数,则表示此路径上的延时过高需要进行修改。而负值的松弛时间越小,代表此路径的延时越严重,因此是利用负的松弛时间作为权重值,表示负的松弛时间越小权重值越大。
于步骤S240中,基于时序文件中的权重值以及时脉文件中的时脉接脚的位置,利用力导向演算计算分支位置。于一实施例中,分支位置可根据《公式1》得到,Px及Py为分支位置的X座标以及Y座标,ni代表图形模型中的节点,ej代表图形模型中的边线,i代表节点的编号,j代表边线的编号,S即为图形模型中所有节点及边线所形成的集合,xi及yi代表图形模型中某个节点的座标,wj代表边线的权重值,《公式1》如下:
于另一实施例中,分支位置可根据《公式2》得到,Px及Py为分支位置的X座标以及Y座标,ni代表图形模型中的节点,ej代表图形模型中的边线,i代表节点的编号,j代表边线的编号,S即为图形模型中所有节点及边线所形成的集合,xi及yi代表图形模型中某个节点的座标,xj及yj代表图形模型中某个边线的座标,wi代表节点的权重值,wj代表边线的权重值,《公式2》如下:
于步骤S250中,设置引导缓冲器至分支位置并且更新电路描述档。请一并参考图4A及图4B,图4A是根据本案的一实施例所绘示的其中一步骤的流程图,图4B是根据本案的另一实施例所绘示的其中一步骤的流程图。于一实施例中,请参考图4A,如图4A所示,步骤S250A包含以下步骤:
步骤S251A:判断权重值是否大于权重门槛值以及区块的时脉接脚之间的距离是否小于距离门槛值;
步骤S252:如果判断为是,新增引导缓冲器至分支位置;
步骤S253:如果判断为否,移动该引导缓冲器至该分支位置;以及
步骤S254:更新电路描述档中时脉接脚的连接信息。
举例而言,当使用区块间数据路径的数量作为权重值时,于步骤S251A中就要判断区块间数据路径的数量是否大于数据路径数量门槛值,同时也要一起判断区块的时脉接脚之间的实体距离是否小于距离门槛值,如果都符合判断式的话,则表示区块间有较多数据相互传递以及时脉接脚的位置都距离较远,因此则须执行步骤S252,新增引导缓冲器(Guide buffer)至分支位置,但如果上述的两个判断式有其中之一没有符合,则执行步骤S253,不新增引导缓冲器,而是移动引道缓冲器至分支位置。接着执行步骤S254,更新电路描述档(Netlist)中时脉接脚的连接信息。
于另一实施例中,请参考图4B,如图4B所示,步骤S250B包含以下步骤:
步骤S251B:判断权重值是否小于权重门槛值以及区块的时脉接脚之间的距离是否小于距离门槛值;
步骤S252:如果判断为是,新增引导缓冲器至分支位置;
步骤S253:如果判断为否,移动该引导缓冲器至该分支位置;以及
步骤S254:更新电路描述档中时脉接脚的连接信息。
举例而言,当使用区块间数据路径的松弛时间作为权重值时,于步骤S251B中就要判断区块间数据路径的负的松弛时间是否小于松弛时间门槛值,同时也要一起判断区块的时脉接脚之间的实体距离是否小于距离门槛值,如果都符合判断式的话,则表示数据路径上的延时过大以及时脉接脚的位置都距离较远,因此则须执行步骤S252,新增引导缓冲器至分支位置,但如果上述的两个判断式有其中之一没有符合,则执行步骤S253,不新增引导缓冲器,而是移动引导缓冲器至分支位置。接着执行步骤S254,更新电路描述档(Netlist)中时脉接脚的连接信息。另外,步骤S250A及步骤250B在执行步骤S254时都需要一并判断引导缓冲器的位置是否符合设计规则的规范,如果没有符合规范需要重新对引导缓冲器摆放位置进行些微调整。
于一实施例中,权重值的选择会根据执行时脉树合成的次数进行调整,如果是第一次进行时脉树合成,由于那时仅有前布局静态时序分析结果,对于松弛时间仅有概略的估计,因此在第一次执行时脉树合成时会使用区块间数据路径的数量作为权重值,才会得到相对于利用松弛时间较为准确的结果。但如果已经执行过第一次的时脉树合成,即可得到后时脉树合成的静态时序分析结果(Post-CTS STA results),再利用此静态时序分析结果计算出的松弛时间就是较为准确的,因此在第二次执行时脉树合成时就会使用区块间数据路径的松弛时间作为权重值,会得到相对于数据路径的数量较为准确的结果。换句话说,仅在第一次执行时脉树合成时利用区块间数据路径的数量作为权重值,之后如果再执行时脉树合成时会改为使用区块间数据路径的松弛时间作为权重值。
值得注意的是,图形模型的边线不仅代表时脉接脚之间是否有时序关系,同时也可包含权重值,如果有两个时脉接脚之间的权重值很高,则表示这两个时脉接脚之间的时序路径可能是关键路径(Critical path),即为延时最大的路径,需要特别进行调整。当然图形模型中的权重值设定与上述的权重值设定相同,在第一次建立图形模型时,利用区块间数据路径的数量作为权重值,之后再建立图形模型时,就会利用区块间数据路径的松弛时间作为权重值。
接着于步骤S260及步骤S270中,进行时脉树合成并执行合成后的静态时序分析;以及判断静态时序分析的分析结果是否符合时序设定值。如果不符合不仅需要重新计算权重值,也会重新执行步骤S210及步骤S220再次产生新的时脉文件以及时序文件,并根据重新计算的权重值再次建立图形模型。由于在步骤S250更新过电路描述档,因此再次进行时脉树合成时所需要用到的时脉文件也是由更新后的电路描述档所产生。
为了更详细说明,请一并参考图5A以及图5B,图5A是根据本案的一些实施例所绘示的一种时脉树电路的示意图,图5B是根据本案的一些实施例所绘示的一种时脉树电路的示意图。如图5A所示,时脉源110经由时脉树布局线路120耦接至时脉接脚p1、p2、p3及p4。在图5A的时脉树电路中,就存在有虚线区域Q1所示的早期分支(Early branch)问题,以及虚线区域Q2所示的绕路(Detour)问题,将容易导致晶片变异的问题。因此通过在一个较佳的位置放入引导缓冲器将有助于解决早期分支以及绕路的问题。如图5B所示,经由上述的时脉树合成方法的计算后,可以找出分支位置并放入引导缓冲器130使得时脉接脚p1、p2、p3及p4之间的共同路径变长,防止晶片变异的问题产生。
于另一实施例中,本发明揭示一种时脉数据处理系统600,请参阅图6。图6是根据本案的一些实施例所绘示的一种时脉数据处理系统600的示意图。如图6所绘示,时脉数据处理系统600包含数据储存单元610以及处理器620。数据储存单元610与处理器620电性耦接,数据储存单元610用以储存前时脉树合成数据库以及静态时序分析结果,处理器620用以计算时脉树电路的分支位置。处理器620则是根据图2所示的计算机执行方法200计算分支位置,因此在此不赘述。
于另一实施例中,本发明揭示一种计算机可读取储存媒体,其用以储存计算机程序,计算机程序用以载入至计算机系统中,并且使得计算机系统用以执行计算时脉树电路的分支位置。计算机系统是根据图2所示的计算机执行方法200计算分支位置,因此在此不赘述。
由上述本案的实施方式可知,通过利用区块间数据路径的数量以及区块间数据路径的松弛时间作为权重值,让区块间有较多时序关系的路径的权重值变高,使得在计算分支位置时能够有较高的影响力,以找出最佳的分支位置,并在分支位置设置引导缓冲器以延长多个时脉接脚的共同路径,降低早期分支以及绕路的问题,并让分支位置至个别时脉接脚的分支路径长度近似,达到让延迟变异最小化同时降低晶片变异的功效。
另外,上述例示包含依序的示范步骤,但这些步骤不必依所显示的顺序被执行。以不同顺序执行这些步骤皆在本揭示内容的考量范围内。在本揭示内容的实施例的精神与范围内,可视情况增加、取代、变更顺序及/或省略这些步骤。
虽然本案已以实施方式揭示如上,然其并非用以限定本案,任何熟悉此技艺者,在不脱离本案的精神和范围内,当可作各种的更动与润饰,因此本案的保护范围当视所附的权利要求书所界定的范围为准。
Claims (20)
1.一种计算机执行方法,其特征在于,用以计算一时脉树电路的一分支位置,该时脉树电路包含多个时脉接脚,所述多个时脉接脚任两者之间设置有多个权重值,该计算机执行方法包含:
建立一图形模型,其中该图形模型包含多个节点以及多个边线,所述多个节点对应所述多个时脉接脚,所述多个边线对应所述多个权重值;
基于所述多个权重值以及所述多个时脉接脚的位置,利用一力导向演算计算该分支位置;
设置一引导缓冲器至该分支位置并且更新一电路描述档;
进行一时脉树合成并执行合成后的一静态时序分析;
判断该静态时序分析的一分析结果是否符合一时序设定值;以及
如果不符合则重新计算所述多个权重值,根据重新计算的所述多个权重值重新建立该图形模型。
2.根据权利要求1所述的计算机执行方法,其特征在于,还包含:
根据一前时脉树合成数据库建立一时脉文件;以及
根据一静态时序分析结果以及该时脉文件产生一时序文件,
其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径。
3.根据权利要求2所述的计算机执行方法,其特征在于,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
4.根据权利要求3所述的计算机执行方法,其特征在于,在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
5.根据权利要求4所述的计算机执行方法,其特征在于,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:
判断该权重值是否大于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否大于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
6.根据权利要求4所述的计算机执行方法,其特征在于,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:
判断该权重值是否小于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否小于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
7.根据权利要求2所述的计算机执行方法,其特征在于,在第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
8.一种时脉数据处理系统,其特征在于,用以计算一时脉树电路的一分支位置,该时脉树电路包含多个时脉接脚,所述多个时脉接脚任两者之间设置有多个权重值,该时脉数据处理系统包含:
一数据储存单元,用以储存所述多个时脉接脚以及所述多个权重值;以及
一处理器,与该数据储存单元电性耦接,用以建立一图形模型并基于所述多个权重值以及所述多个时脉接脚的位置,利用一力导向演算计算该分支位置,该处理器设置一引导缓冲器至该分支位置并且更新一电路描述档,接着进行一时脉树合成并执行合成后的一静态时序分析,并判断该静态时序分析的一分析结果是否符合一时序设定值,如果不符合则重新计算所述多个权重值,根据重新计算的所述多个权重值重新建立该图形模型;
其中,该图形模型包含多个节点以及多个边线,所述多个节点对应所述多个时脉接脚,所述多个边线对应所述多个权重值。
9.根据权利要求8所述的时脉数据处理系统,其特征在于,该数据储存单元用以储存一前时脉树合成数据库以及一静态时序分析结果;该处理器更用以根据该前时脉树合成数据库建立一时脉文件,以及根据该静态时序分析结果以及该时脉文件产生一时序文件;
其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径。
10.根据权利要求9所述的时脉数据处理系统,其特征在于,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
11.根据权利要求10所述的时脉数据处理系统,其特征在于,该处理器在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当该处理器进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
12.根据权利要求11所述的时脉数据处理系统,其特征在于,该处理器设置该引导缓冲器至该分支位置并且更新该电路描述档,该处理器更用以执行:
判断该权重值是否大于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否大于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
13.根据权利要求11所述的时脉数据处理系统,其特征在于,该处理器设置该引导缓冲器至该分支位置并且更新该电路描述档,该处理器更用以执行:
判断该权重值是否小于一权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否小于该权重门槛值以及所述多个区块的该时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
14.根据权利要求9所述的时脉数据处理系统,其特征在于,在该处理器第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当该处理器进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
15.一种计算机可读取储存媒体,其特征在于,用以储存一计算机程序,该计算机程序用以载入至一计算机系统中,并且使得该计算机系统用以执行计算一时脉树电路的一分支位置,该时脉树电路包含多个时脉接脚,所述多个时脉接脚任两者之间设置有多个权重值,该计算机程序被一处理器所执行时会执行以下步骤:
建立一图形模型,其中该图形模型包含多个节点以及多个边线,所述多个节点对应所述多个时脉接脚,所述多个边线对应所述多个权重值;
基于所述多个权重值以及所述多个时脉接脚的位置,利用一力导向演算计算该分支位置;
设置一引导缓冲器至该分支位置并且更新一电路描述档;
进行一时脉树合成并执行合成后的一静态时序分析;
判断该静态时序分析的一分析结果是否符合一时序设定值;以及
如果不符合则重新计算所述多个权重值,根据重新计算的所述多个权重值重新建立该图形模型。
16.根据权利要求15所述的计算机可读取储存媒体,其特征在于,还包含:
根据一前时脉树合成数据库建立一时脉文件;以及
根据一静态时序分析结果以及该时脉文件产生一时序文件,
其中,该时脉文件包含多个区块,以及所述多个区块分别包含所述多个时脉接脚及一时脉源;该时序文件包含所述多个区块的所述多个时脉接脚任两者之间的一数据路径;
其中,在第一次进行时脉树合成时,利用一前布局静态时序分析结果产生该时序文件;当进行完时脉树合成的该静态时序分析后,则根据该静态时序分析的结果产生该时序文件。
17.根据权利要求16所述的计算机可读取储存媒体,其特征在于,所述多个权重值包含所述多个区块间该数据路径的一数量,以及所述多个区块间该数据路径的一松弛时间。
18.根据权利要求17所述的计算机可读取储存媒体,其特征在于,在第一次建立该图形模型时,利用所述多个区块间该数据路径的数量作为该权重值;当进行完时脉树合成的该静态时序分析后,利用所述多个区块间该数据路径的松弛时间作为该权重值。
19.根据权利要求18所述的计算机可读取储存媒体,其特征在于,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:
判断该权重值是否大于一权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否大于该权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
20.根据权利要求18所述的计算机可读取储存媒体,其特征在于,设置该引导缓冲器至该分支位置并且更新该电路描述档,还包含:
判断该权重值是否小于一权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于一距离门槛值;
如果判断皆为是,则新增该引导缓冲器至该分支位置;
如果判断该权重值是否小于该权重门槛值以及所述多个区块的时脉接脚之间的距离是否小于该距离门槛值两者其中之一为否,则移动该引导缓冲器至该分支位置;以及
更新该电路描述档中所述多个时脉接脚的连接信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810143889.7A CN110147139B (zh) | 2018-02-12 | 2018-02-12 | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 |
US15/956,757 US10503857B2 (en) | 2018-02-12 | 2018-04-19 | Computer executing method, clock data processing system and computer readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810143889.7A CN110147139B (zh) | 2018-02-12 | 2018-02-12 | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147139A true CN110147139A (zh) | 2019-08-20 |
CN110147139B CN110147139B (zh) | 2022-10-18 |
Family
ID=67541746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810143889.7A Active CN110147139B (zh) | 2018-02-12 | 2018-02-12 | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10503857B2 (zh) |
CN (1) | CN110147139B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10769345B1 (en) * | 2018-12-20 | 2020-09-08 | Cadence Design Systems, Inc. | Clock tree optimization by moving instances toward core route |
TWI693799B (zh) * | 2019-01-23 | 2020-05-11 | 創意電子股份有限公司 | 類比數位轉換器裝置與時脈偏斜校正方法 |
CN112989731B (zh) * | 2021-03-22 | 2023-10-13 | 湖南大学 | 一种基于抽象语法树的集成电路建模获取方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557779A (en) * | 1991-06-10 | 1996-09-17 | Kabushiki Kaisha Toshiba | Method for distributing a clock signal within a semiconductor integrated circuit by minimizing clock skew |
JP2007183887A (ja) * | 2006-01-10 | 2007-07-19 | Fujitsu Ltd | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
CN101241523A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | 全芯片互连线功耗最优的布局阶段缓冲器规划方法 |
US20080216038A1 (en) * | 2005-06-29 | 2008-09-04 | Subhasis Bose | Timing Driven Force Directed Placement Flow |
US20140247080A1 (en) * | 2011-11-04 | 2014-09-04 | Freescale Semiconductor, Inc. | Multi-level clock signal distribution network and integrated circuit |
US8966425B1 (en) * | 2012-06-03 | 2015-02-24 | Pulsic Limited | Clock tree generation and routing |
US20150213188A1 (en) * | 2014-01-24 | 2015-07-30 | Oracle International Corporation | Concurrent timing-driven topology construction and buffering for vlsi routing |
-
2018
- 2018-02-12 CN CN201810143889.7A patent/CN110147139B/zh active Active
- 2018-04-19 US US15/956,757 patent/US10503857B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557779A (en) * | 1991-06-10 | 1996-09-17 | Kabushiki Kaisha Toshiba | Method for distributing a clock signal within a semiconductor integrated circuit by minimizing clock skew |
US20080216038A1 (en) * | 2005-06-29 | 2008-09-04 | Subhasis Bose | Timing Driven Force Directed Placement Flow |
JP2007183887A (ja) * | 2006-01-10 | 2007-07-19 | Fujitsu Ltd | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
CN101241523A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | 全芯片互连线功耗最优的布局阶段缓冲器规划方法 |
US20140247080A1 (en) * | 2011-11-04 | 2014-09-04 | Freescale Semiconductor, Inc. | Multi-level clock signal distribution network and integrated circuit |
US8966425B1 (en) * | 2012-06-03 | 2015-02-24 | Pulsic Limited | Clock tree generation and routing |
US20150213188A1 (en) * | 2014-01-24 | 2015-07-30 | Oracle International Corporation | Concurrent timing-driven topology construction and buffering for vlsi routing |
Non-Patent Citations (3)
Title |
---|
ANAND RAJARAM 等: "Robust Chip-Level Clock Tree Synthesis", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
JENG-LIANG TSAI: "Clock Tree Synthesis for Timing Convergence and Timing Yield Improvement in Nanometer Technologies", 《THE UNIVERSITY OF WISCONSIN - MADISON PROQUEST DISSERTATIONS PUBLISHING》 * |
TUCK-BOON CHAN 等: "OCV-Aware Top-Level Clock Tree Optimization", 《ACM GLSVLSI》 * |
Also Published As
Publication number | Publication date |
---|---|
US10503857B2 (en) | 2019-12-10 |
US20190251211A1 (en) | 2019-08-15 |
CN110147139B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8887110B1 (en) | Methods for designing intergrated circuits with automatically synthesized clock distribution networks | |
US6009248A (en) | Delay optimization system to conduct optimization for satisfying delay constraints on the circuit and method therefor | |
CN110147139A (zh) | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 | |
US8572542B2 (en) | Clock-tree structure and method for synthesizing the same | |
US20130174113A1 (en) | Floorplan estimation | |
US20060184906A1 (en) | Method and device for designing semiconductor integrated circuit | |
CN109492288A (zh) | 基于三维模型的船舶电缆设计方法、系统、设备及介质 | |
CN114861591B (zh) | 一种可微分时序驱动的芯片布局优化方法 | |
US7134112B1 (en) | Incremental routing in integrated circuit design | |
US20180197110A1 (en) | Metrics to Train Machine Learning Predictor for NoC Construction | |
Huang et al. | Application-specific network-on-chip synthesis with topology-aware floorplanning | |
US7428718B1 (en) | Enhanced incremental placement during physical synthesis | |
JP2017123010A (ja) | 半導体設計支援装置及び半導体設計支援方法 | |
US9000806B2 (en) | Preventing A-B-A race in a latch-based device | |
CN114186519A (zh) | 时序瓶颈探查方法、装置、终端设备及存储介质 | |
JP4696988B2 (ja) | レイアウト設計装置、方法、及び、プログラム | |
JP2005149273A (ja) | 半導体集積回路のフロアプラン装置及びフロアプラン方法 | |
CN104731987B (zh) | 一种早期版图的寄生电阻电容估算方法 | |
CN115859883A (zh) | 可编程逻辑器件的线网延迟估算方法、装置、设备及介质 | |
TW201935170A (zh) | 電腦執行方法、時脈資料處理系統以及電腦可讀取儲存媒體 | |
US20230105677A1 (en) | SYNTHESIS OF A NETWORK-ON-CHIP (NoC) FOR INSERTION OF PIPELINE STAGES | |
US20090222784A1 (en) | Design method estimating signal delay time with netlist in light of terminal line in macro, and program | |
Livramento et al. | Exploiting non-critical Steiner tree branches for post-placement timing optimization | |
Kao et al. | An industrial design methodology for the synthesis of OCV-aware top-level clock tree | |
US11727178B2 (en) | Under test pin location driven simultaneous signal grouping and pin assignment |
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 |