CN109583103B - 一种基于时间余量的时序修复方法 - Google Patents
一种基于时间余量的时序修复方法 Download PDFInfo
- Publication number
- CN109583103B CN109583103B CN201811475551.8A CN201811475551A CN109583103B CN 109583103 B CN109583103 B CN 109583103B CN 201811475551 A CN201811475551 A CN 201811475551A CN 109583103 B CN109583103 B CN 109583103B
- Authority
- CN
- China
- Prior art keywords
- path
- time
- time sequence
- clock
- violation
- 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
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/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提出一种基于时间余量的时序修复方法,包括:步骤1、提取出芯片布局中全部路径的网表信息,然后进入步骤2;步骤2、基于配置的时序约束条件,确定生成的静态时序分析中的时序违例路径及其对应的时间余量,然后进入步骤3;步骤3、判断所述时间余量是否大于预设阈值,是则在所述时序违例路径中确定预设分析路径的起点或终点,并调整所述时序违例路径的时钟延时的大小;否则基于所述静态时序分析,提取出数据通路和时钟通路上的逻辑单元,进而提取出与时序违例路径相连的逻辑模块及其线网信息,再调整所述与时序违例路径相连接的逻辑模块之间的线长,再根据优化的线长进行优化布局,然后返回步骤1。降低芯片的设计面积,提高芯片的工作频率。
Description
技术领域
本发明涉及集成电路版图自动化布线领域,具体涉及一种基于时间余量的时序修复方法。
背景技术
集成电路芯片设计中,决定集成电路芯片的运行速度和设计面积主要影响因素有几个方面:生产工艺、代码编写风格、代码到版图的物理实现过程等。在代码到版图的物理实现过程中,修复时序是非常重要的关键步骤之一。传统的实现方法中处理时序修复一般都是针对数据路径,比如加大数据路径上的器件的尺寸以增大其驱动能力,或者在扇出负担很重的节点插入缓冲器以降低每个节点的扇出负担等等。无论是上述哪种实现方法,都会增加芯片的面积,甚至在某些情况下数据路径的器件延时已经到了极限状态,每一级器件的延时都已经是最小了,但是因为逻辑功能的原因,路径上的级数太多,其建立时间仍无法满足,从而无法达到所期望的运行速度。这样的设计方式无论是从工作性能还是生产成本上都会大打折扣,从而使芯片失去强有力的竞争力。
集成电路设计中的时序违反不外乎是由建立时间和保持时间不够造成的。一般我们在做时钟通路设计时,要求其不同分支具有相同的延时。当高频芯片中路径通路的时序非常苛刻时,就要考虑干涉时钟通路;如何通过对时钟通路的干预,使得数据通路的条件苛刻部分转移到时钟通路上,以及如何通过对条件苛刻模块的合理布局来降低通路中线延时所占比例,让建立时序快速收敛成为本发明所要解决的技术问题。
发明内容
为了解决现有技术存在的不合理,本发明的目的是提供一种根据不同的slack值去判断如何解决时序问题的方法,技术方案如下:
一种基于时间余量的时序修复方法,所述时序修复方法包括:步骤1、提取出芯片布局中全部路径的网表信息,然后进入步骤2;步骤2、基于配置的时序约束条件,确定生成的静态时序分析中的时序违例路径及其对应的时间余量,然后进入步骤3;步骤3、判断所述时间余量是否大于预设阈值,是则进入步骤4,否则进入步骤6;步骤4、在所述时序违例路径中确定预设分析路径的起点或终点,然后进入步骤5;步骤5、根据所述预设分析路径的起点或终点处的时间余量,调整所述时序违例路径的起点的时钟延时的大小;步骤6、基于所述静态时序分析,提取出数据通路和时钟通路上的逻辑单元,进而从包含以及连接所述逻辑单元的逻辑模块中提取出与时序违例路径相连的逻辑模块及其线网信息,然后进入步骤7;步骤7、基于所述线网信息调整所述与时序违例路径相连接的逻辑模块之间的线长,再根据优化的线长进行优化布局,然后返回步骤1。
进一步地,所述预设阈值小于0,且其绝对值数值是当前工艺库的最小延迟单元的延时时间的十倍。
进一步地,所述预设分析路径包括所述时序违例路径的起点作为起点的第一预设分析路径和所述时序违例路径的起点作为终点的第二预设分析路径。
进一步地,所述步骤5具体包括以下步骤:步骤501、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤502;步骤502、根据所述时序违例路径的起点、终点及所属时钟通路分支,分别设置所述第一预设分析路径和所述第二预设分析路径,进入步骤503;步骤503、当所述第一预设分析路径的保持时间余量为第一预设时间,且所述第二预设分析路径的建立时间余量为第二预设时间时,在所述时钟通路分支上删减预设数量的缓冲器。
进一步地,所述步骤503中,所述在所述时钟通路分支上删减预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上删除所述预设数量的缓冲器;其中,所述预设数量是所述时钟通路分支上的时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的起点,但不能到达包含所述时序违例路径的终点。
进一步地,所述预设分析路径包括所述时序违例路径的终点作为终点的第三预设分析路径和所述时序违例路径的终点作为起点的第四预设分析路径。
进一步地,所述步骤5具体包括以下步骤:步骤511、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤512;步骤512、根据所述时序违例路径的起点、终点及所属时钟通路分支,分别设置所述第三预设分析路径和所述第四预设分析路径,进入步骤513;步骤513、当所述第三预设分析路径的保持时间余量为第三预设时间,且所述第四预设分析路径的建立时间余量为第四预设时间时,在所述时钟通路分支上插入预设数量的缓冲器。
进一步地,所述步骤513中,所述在所述时钟通路分支上插入预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上插入所述预设数量的缓冲器;其中,所述预设数量是所述时钟通路分支上的时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的终点,但不能到达包含所述时序违例路径的起点。
进一步地,所述步骤5之后,还包括:再一次通过静态时序分析验证是否还存在所述时序违例路径,是则根据调整修复的路径进行布线,否则返回所述步骤4。
进一步地,所述基于所述线网信息调整所述与时序违例路径相连的逻辑模块之间的线长,包括:将所述与时序违例路径相连的逻辑模块相互拉近,使其彼此之间的连线在满足时序约束的条件下达到最短的线长。
进一步地,所述步骤7还包括:记录根据优化后的线长进行全局布局优化的次数;判断所述根据优化后的线长进行全局布局优化的次数是否达到预设的优化次数;如果没有达到,则返回所述步骤1。
本发明实施例根据静态时序分析输出的时间余量的严重程度,对应地,先通过布局优化调整时序违例严重的路径,再通过调整时钟通路上的缓冲器数目来进一步优化时序违例路径上时钟通路分支的线网延迟,使得布局布线结果能够满足时序约束要求,既能有效降低芯片的设计面积,又能提高了芯片的工作频率。
附图说明
图1为本发明实施例提供的一种基于时间余量的时序修复方法流程图。
图2为本发明实施例提供的一种时序违例的待修复电路的示意图。
图3为本发明实施例提供的一种基于缩短时序违例路径的起点的时钟延时的时序修复方法流程图。
图4为本发明实施例提供的一种缩短时序违例路径的起点的时钟延时之后的部分电路示意图。
图5为本发明实施例提供的一种基于加大时序违例路径的起点的时钟延时的时序修复方法流程图。
图6为本发明实施例提供的一种加大时序违例路径的起点的时钟延时之后的部分电路示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
本发明方案的原则就是根据不同的时间余量slack去实施对应的处理方法,因为当时间余量slack的绝对值超过某一阈值时,已经无法在通过约束时钟通路来修复时序,只能通过修改芯片的布局去减小时间余量slack的绝对值,再通过约束时钟通路来修复时序。为此,本发明实施例提供一种基于时间余量的时序修复方法,如图1所示,其详细步骤如下:
步骤S101、读取设计网表进行逻辑综合,将输入的硬件描述语言(VHDL 或verilog) 转换到逻辑门级别的电路连线网表。根据网表,进行布局,得到一个初始的全局布局,提取出芯片布局中全部路径的网表信息,然后进入步骤S102;其中,所述网表信息包括各个时钟线网路径的初始长度、硬核、软核和基本逻辑单元等模块的摆放位置信息。该步骤下也包括时钟树综合,即按照时钟的周期、时钟树最大延迟与最小延迟、时钟偏斜以及传递时间的要求完成时钟信号的综合。
步骤S102、基于配置的时序约束条件,确定生成的静态时序分析中的时序违例路径及其对应的时间余量slack,然后进入步骤S103。具体的,静态时序分析是一种重要的逻辑验证方法,通过路径计算延迟的综合并比较相对于预定义时钟的延迟,其目的在于找出隐藏的时序问题,根据时序分析结果优化逻辑或者约束条件,从而使设计达到时序闭合。本实施例的时序约束是指在静态时序分析工具中指定信号的频率/ 周期、占空比、时延等约束条件。静态时序分析之后,输出静态时序分析报告,其中包括所有路径的时间余量slack;其中,静态时序分析报告中,正的slack 表示路径满足时序约束要求, 负的slack 表示路径不满足时序约束要求。在所述时序违例路径中,所述时间余量为负值。在本发明实施例下,该步骤的目的是获取建立时间的违例路径,首先通过EDA工具得到全部的建立时间的违例,再从输出报告中提取相应group clock的slack值。
步骤S103、判断所述时间余量slack是否大于预设阈值,是则进入步骤S104,否则进入步骤S108;在本实施例中,所述预设阈值为负数,所述预设阈值的绝对值取值设置为当前使用工艺库的最小延迟单元的延时时间的十倍。当所述时间余量slack大于所述预设阈值时,但所述时间余量slack仍小于0,此时所述时序违例路径的时间余量的绝对值较小,时序违例不严重,进入步骤S104,通过增加或删减相关时钟通路的缓冲器来优化线网的时序,使得不满足时序约束的路径得到优化;当所述时间余量slack小于所述预设阈值时,但所述时间余量slack仍小于0,此时所述违例路径的时间余量的绝对值较大,时序违例比较严重,进入步骤S108,先借助芯片布局优化以减小所述时间余量slack的绝对值,再通过约束相关时钟通路的方式进一步优化时序,以达到修复所述时序违例路径的违例时序的目的。
步骤S104、为了将时序报告内的各种违例区分开,在所述时序违例路径中确定预设分析路径的起点或终点,具体地,区分违例路径的方式有两种,其一,确定所述时序违例路径的起点作为起点的第一预设分析路径有足够的保持时间余量、以及确定所述时序违例路径的起点作为终点的第二预设分析路径有足够的建立时间余量;其二,所述时序违例路径的终点作为终点的第三预设分析路径有足够的保持时间余量,所述时序违例路径的终点作为起点的第四预设分析路径有足够的建立时间余量。然后进入步骤S105。
步骤S105、根据所述预设分析路径的起点或终点处的时间余量调整所述时序违例路径的起点的时钟延时的大小,然后进入步骤S106。具体地,根据所述第一预设分析路径的保持时间余量和所述第二预设分析路径的建立时间余量,来缩短所述时序违例路径的时钟延时;根据所述第三预设分析路径的保持时间余量和所述第四预设分析路径的建立时间余量,来增大所述时序违例路径的时钟延时;从而控制所述时序违例路径完成时序修复工作,以满足时序约束的要求。
步骤S106、当基于前述步骤处理完成所述时序违例路径的时序修复问题时,再一次通过静态时序分析验证是否还存在所述时序违例路径,是则进入步骤S107,否则返回步骤S104,重新分析输出的时序报告。如果原来的余量不够,则初次修复后会形成新的保持违反例。选择删除缓冲器的时钟通路分支节点如果无法完全满足条件,就有可能产生这些新的违反例,需要补偿性的时序修复操作。
步骤S107、根据前述调整的路径进行布线,其中,调整后的路径上的相关逻辑单元的建立时序得到修复,以保证设计的相关时序能满足设计要求。
步骤S108、基于所述静态时序分析的结果数据,提取出数据通路和时钟通路上的逻辑单元,在本发明实施例下,可自动将图3和图5中的Launch path和Capture path的逻辑单元提取出来并分类,然后进入步骤S109。
步骤S109、在包含以及连接所述逻辑单元的逻辑模块中,提取出与所述时序违例路径相连的逻辑模块及其线网信息,然后进入步骤S110。
步骤S110、基于所述线网信息调整所述与所述时序违例路径相连的逻辑模块之间的线长,然后进入步骤S111。具体包括:将前述逻辑模块进行相互拉近,使其彼此之间的连线在满足时序约束的条件下达到最短的线长。因为在先进制程工艺中,线延时所占违例事件的比例非常大,故该步骤的目的是降低线延时,使得同一个时钟下的触发器DFF尽量靠近,从而使得该时钟线网的偏差尽可能的小。为了保证在优化线长后不增大布线拥挤度,因此要求对于每个时钟线网在优化前后的长度变化不能超过一定的范围。
步骤S111、根据优化的线长进行布局优化,然后返回步骤S101。该步骤可以是一个不断迭代的过程,每次布局迭代时序优化更新所述时序违例路径相连的逻辑模块之间的线长一次,从而将所述时间余量slack控制到大于预设阈值,前述逻辑模块之间的线长的时间余量slack满足时序要求,再进入步骤S104。
优选地,迭代过程可以通过设定迭代次数来限定:比如,在每次根据优化后的线长进行全局布局优化之后,记录优化布局的次数,判断该次数是否达到预设的优化次数。如果没有达到预设的优化次数,则在优化后的全局布局的基础上再重复上述步骤S101至步骤S103,以及步骤S108至步骤S111 的步骤,直至达到预设的优化次数为止,将达到预设的优化次数获得的全局布局作为最终的布局结果,再基于该布局结果进入步骤S104,进一步地修复所述时序违例路径的时序。
需要说明的是,Timing path就是时间线。Timing就是从起始位置的时间点到终点位置的时间点之间的时间长度。Path是指跟位置相关,即时间起始或终点的位置。Timingpath就是某位置的某一时间点到另一位置的某个时间点。对于触发器DFF来说,上升沿类似于一瞬间的脉冲,只有在这短短的一瞬间,数据才允许通过。对于触发器DFF来说,有两个输入点:数据D和时钟CLK,有一个输出点:数据Q。由于是时间比较,所以对于数据信号D和时钟信号CLK一定要有一个共同的起始时间点,当图2中的电路节点A点输入时钟信号CLK的上升沿时,因为节点A位于时钟通路上,时钟信号CLK由A点经过时钟树的缓冲器延迟作用到达触发器FF1的时钟端FF1-C,在时钟信号CLK的上升沿时刻打开触发器FF1,然后数据才能从触发器FF1的Q输出,进而经过组合逻辑2 Comb_logic2传递到触发器FF2的输入端FF2-D。时钟信号CLK由A点经过缓冲器的延迟作用到达触发器FF2的时钟端FF2-C。其中,时钟信号CLK到达触发器的时钟端的时钟路径上所经过的缓冲器可作为时钟树clk_tree_bufs。
需要说明的是,FFX-C为触发器FFX的时钟端,等同于C;FFX-D为触发器FFX的输入端,等同于D;FFX-Q为触发器FFX的输出端,等同于Q;本发明实施例下X=0、1、2、3。
所以如图2所示,在虚线方框内部,数据走过的路程是:Data path:A-> buf1_1->buf1_2->…-> buf1_n ->FF1-C -> FF1-Q ->Comb_logic2 ->FF2-D,其中,图2中Launchpath: A-> buf1_1-> buf1_2->…-> buf1_n ->FF1-C;而对于触发器FF2来说只要满足下个周期的上升沿能够采样即可,所以,如图2所示,时钟到达FF2-C的路径是:Clk path:A ->buf2_1-> buf2_2->…-> buf2_n->FF2-C,即图2中的Capture path。
对于Data path和Clk path,数据通路Data path的路径延时定义为Tdata_path,时钟通路Clk path的路径延时可定义为Tclk_path。假设t0时刻触发器FF1采集到数据并传递给触发器FF2,那么触发器FF2只要在t10上升沿采到数据即可,所以数据有一整个Tperiod的时间来传递到触发器FF2的输入端FF2-D。因为要满足建立时间Tsetup要求,所以对于触发器FF2来说,数据要比时钟“走得快”:Tdata_path+ Tsetup <= Tclk_path+Tperiod。同样假设t0时刻,为防止FF1采到的新数据太快到达FF2而“冲掉”原来的正确数据,数据必须要在一定时间之后才允许到达,所以保持时间Thold分析,分析的是FF1和FF2的同一个时钟沿。因为Data path和Clk path要满足保持时间要求,所以Tdata_path–Thold >= Tclk_path。每个数据都是保持一个时钟节拍同时又有数据通路的延时,实际上输入时钟的延迟远小于数据的延迟,所以保持时间都能满足要求,重点是要关心建立时间。
下面以具体的实施例对本发明中所述时间余量slack大于预设阈值的时序修复方法进行详细说明:
缩短所述时序违例路径的起点的时钟延时的实施例:
该实施例下,所述预设分析路径包括所述时序违例路径的起点作为起点的第一预设分析路径和所述时序违例路径的起点作为终点的第二预设分析路径。
具体的时序修复方法如图3所示,步骤S301、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤S302。
步骤S302、根据所述时序违例路径的起点、终点及所属时钟通路分支,分别设置根据所述时序违例路径的起点、终点及所属时钟通路分支分别设置所述时序违例路径的起点作为起点的第一预设分析路径和所述时序违例路径的起点作为终点的第二预设分析路径,进入步骤S303。具体的路径如图2所示,虚线方框内部为所述时序违例路径,当电路节点A为所述时序违例路径的起点时,所述第一预设分析路径包括数据通路Data_path:A-> buf1_1-> buf1_2->…-> buf1_n ->FF1-C-> FF1-Q ->Comb_logic2 ->FF2-D,时钟通路Clk_path:A -> buf2_1-> buf2_2->…-> buf2_n->FF2-C,等同于图2的Capture path;所述第二预设分析路径包括数据通路Data_path:A->buf0->FF0-C -> FF0-Q ->Comb_logic1 ->FF1-D,时钟通路Clk_path:A-> buf1_1-> buf1_2->…-> buf1_n ->FF1-C,等同于图2的Launch path。
步骤S303、当所述第一预设分析路径的保持时间余量为第一预设时间,且所述第二预设分析路径的建立时间余量为第二预设时间时,在所述时钟通路分支上删减预设数量的缓冲器。具体地,所述在所述时钟通路分支上删减预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上删除所述预设数量的缓冲器;其中,所述预设数量是所述时钟通路分支上时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的起点,但不能到达包含所述时序违例路径的终点。
只有当所述第一预设分析路径的数据通路与时钟通路满足Tdata_path– Thold >= Tclk_path,且所述第二预设分析路径的数据通路与时钟通路满足Tdata_path+ Tsetup<=Tclk_path+ Tperiod时,首先到该路径起点的时钟通路分支,即图2的Launch path: A->buf1_1-> buf1_2->…-> buf1_n ->FF1-C,该时钟通路分支根节点为电路节点A。根据违反例的值,删除相应的缓冲器数目,由于所述第一预设时间=Tdata_path– Thold - Tclk_path,且所述第二预设时间=Tclk_path+ Tperiod-(Tdata_path+ Tsetup),所以该时钟通路分支Launch path上须有足够的缓冲器可供删除。删除缓冲器的预设数量M=D/d,其中D为违反例的值,d 为一个缓冲器在同等操作环境下的延时。若M包含余数,则数目加1。其中,删除缓冲器的节点条件为:①能够到达所有关注的起点;②并且不能到达含有违反例的所有终点,即对应图2中,不能从点A经过时钟树到达触发器FF0的时钟端FF0-C或触发器FF3的时钟端FF3-C,只能选择到达触发器FF1的时钟端FF1-C。为最低限度降低后面操作带来的负面影响,该节点最好不能到达除起点以外的所有寄存器或锁存器,除非这些寄存器或锁存器也满足所述步骤S303涉及的所有起点为起点的路径有足够的保持时间余量,以及所有起点为终点的路径有足够的建立时间余量的条件。
删除所述时钟通路分支Launch path上的所述预设数量的缓冲器后,具体的路径如图4所示,虚线方框内部为修复的时序违例路径,当电路节点A为所述时序违例路径的起点时,所述第一预设分析路径包括数据通路Data_path:A-> buf1_1-> buf1_2->…->buf1_n-M ->FF1-C-> FF1-Q ->Comb_logic2 ->FF2-D,时钟通路Clk_path:A ->buf2_1->buf2_2->…-> buf2_n->FF2-C,等同于图2的Capture path;所述第二预设分析路径包括数据通路Data_path:A->buf0->FF0-C -> FF0-Q ->Comb_logic1 ->FF1-D,时钟通路Clk_path:A-> buf1_1-> buf1_2->…-> buf1_n-M ->FF1-C,相当于图2的Launch path。相比于传统方法,假定该类型的违反例有H个,则需要对H 条路径进行建立时序修复,对于每条路径,修复的方法也根据具体情况不定,除删除无用的缓冲器的办法外,其他的方法都会增加面积,在关键路径上一般都不存在无用的缓冲器,所以增加面积不可避免,而该方法删除了N 个缓冲器,满足了建立时序,同时也节约了芯片设计的面积。
增加所述时序违例路径的起点的时钟延时的实施例:
所述预设分析路径包括所述时序违例路径的终点作为终点的第三预设分析路径和所述时序违例路径的终点作为起点的第四预设分析路径。
具体的时序修复方法如图5所示,步骤S401、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤S402。
步骤S402、根据所述时序违例路径的起点、终点及所属时钟通路分支分别设置所述时序违例路径的终点作为终点的第三预设分析路径和所述时序违例路径的终点作为起点的第四预设分析路径,进入步骤S403。具体的路径如图2所示,虚线方框内部为所述时序违例路径,当电路节点A为所述时序违例路径的终点时,所述第三预设分析路径包括数据通路Data_path:A-> buf1_1-> buf1_2->…-> buf1_n ->FF1-C-> FF1-Q ->Comb_logic2 ->FF2-D,时钟通路Clk_path:A -> buf2_1-> buf2_2->…-> buf2_n->FF2-C,等同于图2的Capture path;所述第四预设分析路径包括数据通路Data_path:A -> buf2_1-> buf2_2->…-> buf2_n->FF2-C->FF2-Q ->Comb_logic3 ->FF3-D,时钟通路Clk_path:A-> buf3->FF3-C。
步骤S403、当所述第三预设分析路径的保持时间余量为第三预设时间,且所述第四预设分析路径的建立时间余量为第四预设时间时,在所述时钟通路分支上插入预设数量的缓冲器。具体地,所述在所述时钟通路分支上插入预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上插入所述预设数量的缓冲器;其中,所述预设数量是所述时钟通路分支上时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的终点,但不能到达包含所述时序违例路径的起点。
只有当所述第三预设分析路径的数据通路与时钟通路满足Tdata_path– Thold>=Tclk_path,且所述第四预设分析路径的数据通路与时钟通路满足Tdata_path+ Tsetup<=Tclk_path+ Tperiod时,首先到该路径起点的时钟通路分支,即图2的Capture path: A ->buf2_1-> buf2_2->…-> buf2_n->FF2-C,该时钟通路分支根节点为电路节点A。根据违反例的值,插入相应的缓冲器数目。由于所述第三预设时间=Tdata_path– Thold - Tclk_path,且所述第四预设时间=Tclk_path+ Tperiod-(Tdata_path+ Tsetup),所以该时钟通路分支Capture path上须有足够的缓冲器可供增加,增加缓冲器的预设数量N=D/d,其中D为违反例的值,d 为一个缓冲器在同等操作环境下的延时。若N包含余数,则数目加1。其中,增加缓冲器的节点条件为:①能够到达所有关注的终点;②并且不能到达含有违反例的所有起点,即对应图2中,不能从点A经过时钟树到达触发器FF1的时钟端FF1-C或触发器FF3的时钟端FF3-C,只能选择到达触发器FF2的时钟端FF2-C。为最低限度降低后面操作带来的负面影响,该节点最好不能到达除起点以外的所有寄存器或锁存器,除非这些寄存器或锁存器也满足所述步骤S403涉及的所有起点为起点的路径有足够的保持时间余量,以及所有起点为终点的路径有足够的建立时间余量的条件。
插入所述时钟通路分支Capture path上的所述预设数量的缓冲器后,具体的路径如图6所示,虚线方框内部为修复的时序违例路径,当电路节点A为所述时序违例路径的终点时,所述第三预设分析路径包括数据通路Data_path:A-> buf1_1-> buf1_2->…->buf1_n-M ->FF1-C-> FF1-Q ->Comb_logic2 ->FF2-D,时钟通路Clk_path:A ->buf2_1->buf2_2->…-> buf2_n+N->FF2-C,等同于图2的Capture path;所述第四预设分析路径包括数据通路Data_path:A ->buf2_1->buf2_2->…-> buf2_n+N->FF2-C-> FF2-Q->Comb_logic3 ->FF3-D,时钟通路Clk_path:A->buf3->FF3-C。相比于传统方案,该方法进插入了N个小尺寸的缓冲器,在修复了建立时序的同时,节约了芯片设计的面积。
特别地,当所述步骤S303中所述第一预设分析路径的保持时间余量为第一预设时间,所述第二预设分析路径的建立时间余量为第二预设时间,所述步骤S403中所述第三预设分析路径的保持时间余量为第三预设时间,且所述第四预设分析路径的建立时间余量为第四预设时间的时候,删除所述时钟通路分支上的所述预设数量的缓冲器,在修复了建立时序的同时,节约了芯片设计的面积。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种基于时间余量的时序修复方法,其特征在于,所述时序修复方法包括:
步骤1、提取出芯片布局中全部路径的网表信息,然后进入步骤2;
步骤2、基于配置的时序约束条件,确定生成的静态时序分析中的时序违例路径及其对应的时间余量,然后进入步骤3;
步骤3、判断所述时间余量是否大于预设阈值,是则进入步骤4,否则进入步骤6;
步骤4、在所述时序违例路径中确定预设分析路径的起点或终点,然后进入步骤5;
步骤5、根据所述预设分析路径的起点或终点处的时间余量,调整所述时序违例路径的起点的时钟延时的大小;
步骤6、基于所述静态时序分析,提取出数据通路和时钟通路上的逻辑单元,进而从包含以及连接所述逻辑单元的逻辑模块中提取出与时序违例路径相连的逻辑模块及其线网信息,然后进入步骤7;
步骤7、基于所述线网信息调整所述与时序违例路径相连接的逻辑模块之间的线长,再根据优化的线长进行优化布局,然后返回步骤1。
2.根据权利要求1所述时序修复方法,其特征在于,所述预设阈值小于0,且其绝对值数值是当前工艺库的最小延迟单元的延时时间的十倍。
3.根据权利要求1所述时序修复方法,其特征在于,所述预设分析路径包括所述时序违例路径的起点作为起点的第一预设分析路径和所述时序违例路径的起点作为终点的第二预设分析路径。
4.根据权利要求3所述时序修复方法,其特征在于,所述步骤5具体包括以下步骤:
步骤501、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤502;
步骤502、根据所述时序违例路径的起点、终点及所属时钟通路分支,分别设置所述第一预设分析路径和所述第二预设分析路径,进入步骤503;
步骤503、当所述第一预设分析路径的保持时间余量为第一预设时间,且所述第二预设分析路径的建立时间余量为第二预设时间时,在所述时钟通路分支上删减预设数量的缓冲器。
5.根据权利要求4所述时序修复方法,其特征在于,所述步骤503中,所述在所述时钟通路分支上删减预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上删除所述预设数量的缓冲器;
其中,所述预设数量是所述时钟通路分支上的时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的起点,但不能到达包含所述时序违例路径的终点。
6.根据权利要求1所述时序修复方法,其特征在于,所述预设分析路径包括所述时序违例路径的终点作为终点的第三预设分析路径和所述时序违例路径的终点作为起点的第四预设分析路径。
7.根据权利要求6所述时序修复方法,其特征在于,所述步骤5具体包括以下步骤:
步骤511、提取所述时序违例路径的起点、终点及所属时钟通路分支,然后进入步骤512;
步骤512、根据所述时序违例路径的起点、终点及所属时钟通路分支,分别设置所述第三预设分析路径和所述第四预设分析路径,进入步骤513;
步骤513、当所述第三预设分析路径的保持时间余量为第三预设时间,且所述第四预设分析路径的建立时间余量为第四预设时间时,在所述时钟通路分支上插入预设数量的缓冲器。
8.根据权利要求7所述时序修复方法,其特征在于,所述步骤513中,所述在所述时钟通路分支上插入预设数量的缓冲器的方法为:搜索所述时钟通路分支的根节点,在所述时钟通路分支上插入所述预设数量的缓冲器;
其中,所述预设数量是所述时钟通路分支上的时序违例值与缓冲器延时的比值;所述时钟通路分支能到达所述时序违例路径的终点,但不能到达包含所述时序违例路径的起点。
9.根据权利要求1所述时序修复方法,其特征在于,所述步骤5之后,还包括:再一次通过静态时序分析验证是否还存在所述时序违例路径,是则根据调整修复的路径进行布线,否则返回所述步骤4。
10.根据权利要求1所述时序修复方法,其特征在于,所述基于所述线网信息调整所述与时序违例路径相连的逻辑模块之间的线长,包括:将所述与时序违例路径相连的逻辑模块相互拉近,使其彼此之间的连线在满足时序约束的条件下达到最短的线长。
11.根据权利要求1所述时序修复方法,其特征在于,所述步骤7还包括:
记录根据优化后的线长进行全局布局优化的次数;
判断所述根据优化后的线长进行全局布局优化的次数是否达到预设的优化次数;
如果没有达到,则返回所述步骤1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811475551.8A CN109583103B (zh) | 2018-12-04 | 2018-12-04 | 一种基于时间余量的时序修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811475551.8A CN109583103B (zh) | 2018-12-04 | 2018-12-04 | 一种基于时间余量的时序修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109583103A CN109583103A (zh) | 2019-04-05 |
CN109583103B true CN109583103B (zh) | 2023-02-17 |
Family
ID=65926542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811475551.8A Active CN109583103B (zh) | 2018-12-04 | 2018-12-04 | 一种基于时间余量的时序修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109583103B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111020B (zh) * | 2019-05-16 | 2021-03-02 | 天津飞腾信息技术有限公司 | 基于自动评估建立时间余量的保持时间修复方法、系统及介质 |
CN110619137B (zh) * | 2019-06-25 | 2022-12-02 | 眸芯科技(上海)有限公司 | 针对电压降的时序分析方法及应用 |
CN111881637B (zh) * | 2020-07-08 | 2021-05-04 | 广芯微电子(广州)股份有限公司 | 一种数字电路功耗优化的方法、系统及存储介质 |
CN111859836B (zh) * | 2020-07-30 | 2024-05-10 | 北京百瑞互联技术股份有限公司 | 一种优化集成电路非平衡时钟网络的方法及系统 |
CN111950214A (zh) * | 2020-08-14 | 2020-11-17 | Oppo广东移动通信有限公司 | 一种时序分析方法、装置、设备以及计算机存储介质 |
CN112100959A (zh) * | 2020-09-21 | 2020-12-18 | Oppo广东移动通信有限公司 | 基于eda工具的时序分析方法、装置及存储介质 |
CN112232005B (zh) * | 2020-09-25 | 2023-03-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种保持时间违例修复方法、系统、设备及存储介质 |
CN112270156B (zh) * | 2020-10-21 | 2021-10-12 | 成都海光集成电路设计有限公司 | 一种时序分析方法、装置、电子设备及存储介质 |
CN112016263B (zh) * | 2020-10-22 | 2021-01-29 | 创意电子(南京)有限公司 | 一种实现数据延时均衡的方法 |
CN112632887B (zh) * | 2020-12-18 | 2023-04-18 | 展讯通信(上海)有限公司 | 存储器的时钟延时调整方法及装置、存储介质、终端 |
CN112597725B (zh) * | 2020-12-21 | 2024-08-02 | 北京百瑞互联技术股份有限公司 | 集成电路多情景时序收敛分析方法、装置、介质及设备 |
CN112597739B (zh) * | 2020-12-30 | 2023-04-07 | 瓴盛科技有限公司 | 修复电路中的保持时间违例的方法和装置 |
CN112783065B (zh) * | 2021-01-08 | 2022-01-28 | 重庆百瑞互联电子技术有限公司 | 一种时序电路优化方法、装置及其存储介质 |
CN112906345B (zh) * | 2021-03-30 | 2022-10-04 | 天津飞腾信息技术有限公司 | 验证逻辑电路中的路径的方法、系统和介质 |
CN113177380B (zh) * | 2021-04-29 | 2023-05-23 | 飞腾信息技术有限公司 | 一种基于dummy的时序优化方法 |
CN113609803B (zh) * | 2021-06-20 | 2024-05-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种dc综合时序优化方法、装置、设备及存储介质 |
CN113486612B (zh) * | 2021-06-29 | 2023-06-06 | 海光信息技术股份有限公司 | 集成电路设计方法、装置、电子设备和可读存储介质 |
CN113781354B (zh) * | 2021-09-18 | 2023-09-22 | 北京环境特性研究所 | 图像噪点抑制方法、装置、计算设备及存储介质 |
CN113850041A (zh) * | 2021-10-14 | 2021-12-28 | 上海亿家芯集成电路设计有限公司 | 用于集成电路时序设计中的自动修正系统及方法 |
CN114742001B (zh) * | 2022-03-16 | 2023-08-29 | 南京邮电大学 | 一种基于多fpga的系统静态时序分析方法 |
CN114676658B (zh) * | 2022-05-20 | 2022-08-16 | 飞腾信息技术有限公司 | 一种时序违例修复方法、装置、存储介质及电子设备 |
CN115577675B (zh) * | 2022-11-23 | 2023-03-07 | 飞腾信息技术有限公司 | 时序违例修复方法、装置、服务器及可读存储介质 |
CN115796093B (zh) * | 2023-01-03 | 2023-08-08 | 摩尔线程智能科技(北京)有限责任公司 | 电路时序优化方法、装置、电子设备及存储介质 |
CN116681011B (zh) * | 2023-08-03 | 2023-11-07 | 飞腾信息技术有限公司 | 时间违例修复方法、装置、计算机设备及存储介质 |
CN116842897B (zh) * | 2023-08-10 | 2024-03-26 | 正心元科技(杭州)有限公司 | 全流程布局布线增量优化方法、装置及计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456087A (zh) * | 2010-11-03 | 2012-05-16 | 上海华虹集成电路有限责任公司 | 一种建立时序修复方法 |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060048084A1 (en) * | 2004-08-27 | 2006-03-02 | Barney C A | System and method for repairing timing violations |
-
2018
- 2018-12-04 CN CN201811475551.8A patent/CN109583103B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456087A (zh) * | 2010-11-03 | 2012-05-16 | 上海华虹集成电路有限责任公司 | 一种建立时序修复方法 |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109583103A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583103B (zh) | 一种基于时间余量的时序修复方法 | |
CN109783984B (zh) | 一种适用于cpu核频率提升的布局布线方法 | |
CN102169515B (zh) | 一种专用集成电路中时钟树延迟时间的估计方法和系统 | |
US7062737B2 (en) | Method of automated repair of crosstalk violations and timing violations in an integrated circuit design | |
CN114676658B (zh) | 一种时序违例修复方法、装置、存储介质及电子设备 | |
US6799308B2 (en) | Timing analysis of latch-controlled digital circuits with detailed clock skew analysis | |
US20070089076A1 (en) | Application of consistent cycle context for related setup and hold tests for static timing analysis | |
CN107908884B (zh) | 一种通过调整时钟树分支改善时序的交互式eco方法 | |
US8806413B2 (en) | Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models | |
CN103164585B (zh) | 缓冲器的插入方法及装置 | |
US8392861B2 (en) | Method of semiconductor integrated circuit device using library for estimating timing/area to place cells | |
CN102339338B (zh) | 一种时序修复方法 | |
EP3324317A1 (en) | Methods for verifying retimed circuits with delayed initialization | |
US8977998B1 (en) | Timing analysis with end-of-life pessimism removal | |
CN110580393A (zh) | 一种门级网表修改后的快速收敛建立时间的方法 | |
JP5120785B2 (ja) | 非同期式論理回路の論理回路設計装置、論理回路設計方法および論理回路設計プログラム | |
CN114841104A (zh) | 时序优化电路和方法、芯片及电子设备 | |
US20080059938A1 (en) | Method of and system for designing semiconductor integrated circuit | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
US8453090B2 (en) | System and method for optimizing logic timing | |
US20240232501A1 (en) | Integrated Circuit Optimization System and Method Based on Multi-Phase Level-Sensitive Latches | |
US10726189B2 (en) | Less-pessimistic static timing analysis for synchronous circuits | |
US6990647B2 (en) | Variable stage ratio buffer insertion for noise optimization in a logic network | |
EP2154621A1 (en) | Circuit design device, circuit design method, and circuit design program | |
JP2018142235A (ja) | 回路設計方法、及び回路設計支援装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong Applicant after: Zhuhai Yiwei Semiconductor Co.,Ltd. Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant before: AMICRO SEMICONDUCTOR Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |