CN117113915B - 缓冲器插入方法、装置和电子设备 - Google Patents
缓冲器插入方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117113915B CN117113915B CN202311385459.3A CN202311385459A CN117113915B CN 117113915 B CN117113915 B CN 117113915B CN 202311385459 A CN202311385459 A CN 202311385459A CN 117113915 B CN117113915 B CN 117113915B
- Authority
- CN
- China
- Prior art keywords
- subtree
- buffer
- signal
- determining
- subtrees
- 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
- 239000000872 buffer Substances 0.000 title claims abstract description 396
- 238000012966 insertion method Methods 0.000 title claims abstract description 23
- 230000007704 transition Effects 0.000 claims abstract description 106
- 230000003139 buffering effect Effects 0.000 claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012216 screening Methods 0.000 claims abstract description 23
- 238000003780 insertion Methods 0.000 claims abstract description 18
- 230000037431 insertion Effects 0.000 claims abstract description 18
- 238000010276 construction Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 16
- 238000005457 optimization Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000013138 pruning Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012367 process mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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
-
- 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
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/10—Buffer insertion
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
技术领域
本申请涉及数字集成电路技术领域,具体而言,涉及一种缓冲器插入方法、装置和电子设备。
背景技术
数字集成电路的逻辑综合后期,对工艺映射后、布局布线前阶段的电路进行高扇出优化是经典的NP问题,通常采用构造合适的缓冲树启发式解决。
目前,开源EDA工具采用顺序分解法,将负载门按照时序裕量排列,将时序裕量较好的一半负载门与驱动门分离,由缓冲器驱动这些负载门,驱动门只需驱动时序裕量较差的一半负载门以及新插入的缓冲器以降低了负载电容,并采用缓冲器插入和门尺寸调整的独立迭代进行优化,从而改善电路延迟。
然而,采用上述方法难以获得高质量的解,电路延迟的优化效果不佳。
发明内容
有鉴于此,本申请实施例提供了一种缓冲器插入方法、装置和电子设备,以解决电路延迟优化效果不佳的问题。
第一方面,本申请实施例提供了一种缓冲器插入方法,包括:
获取子树集合中多个子树的信号所需时间,其中,每个子树的信号所需时间为在所述每个子树对应负载门的后级电路的时序约束下,所述负载门的最迟信号到达时间;
根据所述多个子树的信号所需时间,构建缓冲器树,其中,所述缓冲器树用于指示驱动门和所述多个子树之间的多个待插入位置;
根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,并确定所述多个待插入位置的目标缓冲方案,以采用所述目标缓冲方案在所述缓冲器树的所述多个待插入位置分别插入对应的缓冲器,其中,所述每个子树的解包括:所述每个子树的输入电容和所述每个子树的信号所需时间,所述驱动门的解集中每个解包括:所述驱动门的输入电容和所述驱动门的信号所需时间;
根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,所述第一时序裕量为所述驱动门的信号所需时间与实际信号到达时间的差值,所述信号过渡时间为所述驱动门的输出信号的电平在两个预设电平之间转换所需要的时间;
移除所述缓冲器树插入的所述缓冲器,根据所述驱动门的输出端的信号过渡时间,重新确定所述多个子树的信号所需时间,并重新构建所述缓冲器树;
根据重新构建的所述缓冲器树,重新确定所述驱动门的第二时序裕量;
根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,以采用所述最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
在一可选的实施方式中,所述根据所述多个子树的信号所需时间,构建缓冲器树,包括:
根据所述多个子树的信号所需时间,从所述子树集合中确定满足预设时间范围的第一子树;
对所述第一子树进行聚类,构建第一聚类子树,所述第一聚类子树包括:第一缓冲器以及所述第一缓冲器所驱动的所述第一子树,所述第一缓冲器为从预设单元库中确定的,所述驱动门和所述第一子树所在路径对应的延迟最小的缓冲器;
将所述子树集合中的所述第一子树更新为所述聚类子树;
根据更新后的所述子树集合中每个子树的信号所需时间,构建第二聚类子树,直至更新后所述子树集合中子树的数量为一,并生成所述缓冲器树。
在一可选的实施方式中,所述根据所述多个子树的信号所需时间,从所述子树集合中确定满足预设时间范围的第一子树之前,所述方法还包括:
确定所述多个子树的信号所需时间中的最大值为信号所需时间上限值;
从所述预设单元库中确定所述驱动门与所述最大值对应子树之间的第二缓冲器,所述第二缓冲器为所述驱动门和所述最大值对应子树所在路径对应延迟最小的缓冲器;
根据所述第二缓冲器的延迟以及所述信号所需时间上限值,确定信号所需时间下限值;
根据所述信号所需时间上限值和所述信号所需时间下限值,确定所述预设时间范围。
在一可选的实施方式中,所述根据更新后的所述子树集合中每个子树的信号所需时间,构建第二聚类子树,包括:
根据更新后的所述子树集合中每个子树的信号所需时间,重新确定所述预设时间范围;
根据更新后的所述子树集合中每个子树的信号所需时间,从更新后的所述子树集合中确定满足重新确定的所述预设时间范围的第二子树;
若所述第二子树的数量超过预设阈值,则从所述第二子树中确定与目标子树类型相同的第三子树,所述目标子树为重新确定的所述预设时间范围的信号所需时间上限值对应的子树;
对所述第三子树进行聚类,构建所述第二聚类子树。
在一可选的实施方式中,所述对所述第三子树进行聚类,构建所述第二聚类子树,包括:
根据所述第三子树的信号所需时间,对所述第三子树进行排列;
依次遍历排列后的第三子树,确定预设扇出数量个第三子树;
对所述预设扇出数量个第三子树进行聚类,构建所述第二聚类子树。
在一可选的实施方式中,所述根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,包括:
若所述第一时序裕量小于所述第二时序裕量,则重新构建所述缓冲器树,直至重新构建的所述缓冲器树的时序裕量小于前一个构建的所述缓冲器树的时序裕量;
确定所述前一个构建的所述缓冲器树的多个待插入位置的目标缓冲方案为所述最终缓冲方案,其中,前一个构建的所述缓冲器树的多个待插入位置为所述多个目标待插入位置。
在一可选的实施方式中,所述根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,包括:
根据所述每个子树的解,沿着所述预设解传播方向,依次确定所述多个待插入位置的解集;
根据所述预设解传播方向上最后一个待插入位置的解集,确定所述驱动门的解集;
从所述驱动门的解集中确定满足所述预设筛选条件的所述最优解。
在一可选的实施方式中,所述根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,包括:
根据所述目标缓冲方案,确定所述驱动门的负载电容以及所述驱动门的信号所需时间;
根据所述驱动门的负载电容以及所述驱动门的输入端的信号过渡时间,确定所述驱动门的输出端的信号过渡时间;
根据所述驱动门的信号所需时间以及所述驱动门的实际信号到达时间,确定所述第一时序裕量。
第二方面,本申请实施例还提供了一种缓冲器插入装置,包括:
获取模块,用于获取子树集合中多个子树的信号所需时间,其中,每个子树的信号所需时间为在所述每个子树对应负载门的后级电路的时序约束下,所述负载门的最迟信号到达时间;
构建模块,用于根据所述多个子树的信号所需时间,构建缓冲器树,其中,所述缓冲器树用于指示驱动门和所述多个子树之间的多个待插入位置;
确定模块,用于根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,并确定所述多个待插入位置的目标缓冲方案,以采用所述目标缓冲方案在所述缓冲器树的所述多个待插入位置分别插入缓冲器,其中,所述每个子树的解包括:所述每个子树的输入电容和所述每个子树的信号所需时间,所述驱动门的解集中每个解包括:所述驱动门的输入电容和所述驱动门的信号所需时间;
确定模块,还用于根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,所述第一时序裕量为所述驱动门的信号所需时间与实际信号到达时间的差值,所述信号过渡时间为所述驱动门的输出信号的电平在两个预设电平之间转换所需要的时间;
所述构建模块,还用于移除所述缓冲器树插入的所述缓冲器,根据所述驱动门的输出端的信号过渡时间,重新确定所述多个子树的信号所需时间,并重新构建所述缓冲器树;
所述确定模块,还用于根据重新构建的所述缓冲器树,重新确定所述驱动门的第二时序裕量;
所述确定模块,还用于根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,以采用所述最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
在一可选的实施方式中,所述构建模块,具体用于:
根据所述多个子树的信号所需时间,从所述子树集合中确定满足预设时间范围的第一子树;
对所述第一子树进行聚类,构建第一聚类子树,所述第一聚类子树包括:第一缓冲器以及所述第一缓冲器所驱动的所述第一子树,所述第一缓冲器为从预设单元库中确定的,所述驱动门和所述第一子树所在路径对应的延迟最小的缓冲器;
将所述子树集合中的所述第一子树更新为所述聚类子树;
根据更新后的所述子树集合中每个子树的信号所需时间,构建第二聚类子树,直至更新后所述子树集合中子树的数量为一,并生成所述缓冲器树。
在一可选的实施方式中,所述构建模块,具体用于:
确定所述多个子树的信号所需时间中的最大值为信号所需时间上限值;
从所述预设单元库中确定所述驱动门与所述最大值对应子树之间的第二缓冲器,所述第二缓冲器为所述驱动门和所述最大值对应子树所在路径对应延迟最小的缓冲器;
根据所述第二缓冲器的延迟以及所述信号所需时间上限值,确定信号所需时间下限值;
根据所述信号所需时间上限值和所述信号所需时间下限值,确定所述预设时间范围。
在一可选的实施方式中,所述构建模块,具体用于:
根据更新后的所述子树集合中每个子树的信号所需时间,重新确定所述预设时间范围;
根据更新后的所述子树集合中每个子树的信号所需时间,从更新后的所述子树集合中确定满足重新确定的所述预设时间范围的第二子树;
若所述第二子树的数量超过预设阈值,则从所述第二子树中确定与目标子树类型相同的第三子树,所述目标子树为重新确定的所述预设时间范围的信号所需时间上限值对应的子树;
对所述第三子树进行聚类,构建所述第二聚类子树。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述第三子树的信号所需时间,对所述第三子树进行排列;
依次遍历排列后的第三子树,确定预设扇出数量个第三子树;
对所述预设扇出数量个第三子树进行聚类,构建所述第二聚类子树。
在一可选的实施方式中,所述确定模块,具体用于:
若所述第一时序裕量小于所述第二时序裕量,则重新构建所述缓冲器树,直至重新构建的所述缓冲器树的时序裕量小于前一个构建的所述缓冲器树的时序裕量;
确定所述前一个构建的所述缓冲器树的多个待插入位置的目标缓冲方案为所述最终缓冲方案,其中,前一个构建的所述缓冲器树的多个待插入位置为所述多个目标待插入位置。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述每个子树的解,沿着所述预设解传播方向,依次确定所述多个待插入位置的解集;
根据所述预设解传播方向上最后一个待插入位置的解集,确定所述驱动门的解集;
从所述驱动门的解集中确定满足所述预设筛选条件的所述最优解。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述目标缓冲方案,确定所述驱动门的负载电容以及所述驱动门的信号所需时间;
根据所述驱动门的负载电容以及所述驱动门的输入端的信号过渡时间,确定所述驱动门的输出端的信号过渡时间;
根据所述驱动门的信号所需时间以及所述驱动门的实际信号到达时间,确定所述第一时序裕量。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的缓冲器插入方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的缓冲器插入方法。
本申请提供了一种缓冲器插入方法、装置和电子设备,其中,该方法包括:获取子树集合中多个子树的信号所需时间,根据多个子树的信号所需时间,构建缓冲器树,根据每个子树的解以及多个待插入位置,沿着预设解传播方向,确定驱动门的解集中满足预设筛选条件的最优解,并确定多个待插入位置的目标缓冲方案,根据目标缓冲方案,确定驱动门的第一时序裕量和驱动门的输出端的信号过渡时间,移除缓冲器树插入的缓冲器,根据驱动门的输出端的信号过渡时间,重新确定多个子树的信号所需时间,并重新构建缓冲器树,根据重新构建的缓冲器树,重新确定驱动门的第二时序裕量,根据第一时序裕量以及第二时序裕量,确定最终缓冲方案。通过迭代构建缓冲器树并根据时序裕量确定最终缓冲方案,以插入缓冲器,改善了电路延迟优化效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的缓冲器插入方法的流程示意图一;
图2为本申请实施例提供的驱动门和负载门的初始拓扑关系的示意图;
图3为本申请实施例提供的缓冲器树的示意图;
图4为本申请实施例提供的一种数字集成电路的示意图;
图5为本申请实施例提供的缓冲器插入方法的流程示意图二;
图6为本申请实施例提供的缓冲器树构建过程的示意图一;
图7为本申请实施例提供的缓冲器插入方法的流程示意图三;
图8为本申请实施例提供的缓冲器树构建过程的示意图二;
图9为本申请实施例提供的缓冲器插入方法的流程示意图四;
图10为本申请实施例提供的缓冲器插入方法的流程示意图五;
图11为本申请实施例提供的缓冲器插入方法的一种具体实现过程的示意图;
图12为本申请实施例提供的缓冲器插入装置的结构示意图;
图13为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,数字集成电路的实现过程通常为:数字电路设计文件 ->逻辑综合 ->逻辑优化 ->布局布线 ->电路优化 ->版图实现,其中,数字集成电路设计文件指的是以verilog代码为代表的硬件描述语言所构成的寄存器传输级(Register Transfer Level,RTL)设计文件,逻辑综合与优化指的是将RTL设计文件转化为相互连接的逻辑门电路,并对逻辑结构进行优化以改善性能,布局布线指的是将综合后的逻辑门电路以及互连线按照预设的面积范围进行放置,电路优化指的是通过调整逻辑门尺寸、插入缓冲器等操作改善电路性能,版图实现指的是将布局布线后的逻辑门电路转化为版图文件,以便后续的电路生产。
其中,在布局布线之前的逻辑优化阶段,通常需要插入缓冲器以改善电路延迟,从而在电路延迟较小的情况下,将逻辑问题暴露出来,以避免电路延迟对电路逻辑问题的定位造成干扰,现有技术在使用缓冲器进行电路优化时,采用顺序分解方法,将负载门按照时序裕量排列,驱动门只需驱动时序裕量较差的一半负载门以及新插入的缓冲器,降低了负载电容,但该方法采用缓冲器插入和门尺寸调整的独立迭代进行优化,难以获得高质量的解,电路延迟的优化效果不佳。
基于此,本申请在逻辑优化阶段的缓冲器插入过程中,首先,按照负载门的时序构建缓冲器树,得到与时序相关联的负载门扇出拓扑关系,其次,通过缓冲器插入算法,实现高效的扇出优化,并通过迭代缓冲器树,使驱动门的扇出端在优化前后的信号过渡时间相匹配,进一步提升解的质量,从而进行缓冲器插入,改善了电路延迟优化效果。
图1为本申请实施例提供的缓冲器插入方法的流程示意图一,本实施例的执行主体可以为电子设备。
如图1所示,该方法可以包括:
S101、获取子树集合中多个子树的信号所需时间。
数字集成电路的网表文件中包括驱动门的连接信息以及多个负载门的连接信息,驱动门的连接信息用于指示驱动门的输入端和输出端分别连接的电路单元,通常驱动门的输出端连接的电路单元为负载门,负载门的连接信息用于指示负载门的输入端和输出端分别连接的电路单元,通常负载门的输入端连接的电路单元为驱动门,其中,网表文件是根据RTL设计文件确定的。
值得说明的是,这里的一个子树可以理解为一个负载门,每个子树的信号所需时间为在每个子树对应负载门的后级电路的时序约束下,该负载门的最迟信号到达时间,其中,负载门的后级电路可以理解为负载门的输出端连接的电路单元,后级电路的时序约束可以理解为数字集成电路对后级电路的时序约束,即在满足后级电路的时序约束的情况下,负载门的后级电路要求负载门的信号到达时间不能晚于该信号所需时间。
值得说明的是,子树的信号所需时间为子树对应负载门的输入端的信号所需时间,负载门的输入端的信号所需时间为负载门的输出端的信号所需时间与负载门的延迟之差,其中,负载门的延迟可以根据负载门的输出端的信号过渡时间和负载门的负载电容计算得到,负载门的负载电容为负载门的后级电路的输入电容之和,负载门的输出端的信号过渡时间可以根据负载门的输入端的信号过渡时间和负载门的负载电容计算得到,负载门的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可以根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为多个子树对应负载门的输入电容之和。其中,驱动门的输入端的信号过渡时间是已知的。
图2为本申请实施例提供的驱动门和负载门的初始拓扑关系的示意图,如图2所示,基于数字集成电路的网表文件中驱动门的连接信息以及负载门的连接信息,能够确定驱动门的扇出端的初始拓扑关系,其中,驱动门的扇出端为驱动门的输出端。
S102、根据多个子树的信号所需时间,构建缓冲器树。
按照信号所需时间遍历子树集合中的多个子树,对多个子树进行聚类,得到第一聚类子树,第一聚类子树包括一个缓冲器和该一个缓冲器所驱动的子树集合中的第一子树,即该一个缓冲器和该部分子树是级联连接,将子树集合中的第一子树更新为第一聚类子树,也就是说,更新后的子树集合中的子树包括两种类型,一种是负载门子树,一种是聚类子树,然后获取第一聚类子树的信号所需时间,按照信号所需时间遍历子树集合中的多个子树,再次聚类得到第二聚类子树,第二聚类子树包括一个缓冲器和该一个缓冲器所驱动的子树集合中的第二子树,将子树集合中的第二子树更新为第二聚类子树,重复执行聚类的过程,直至更新后的子树集合中子树的数量为一,并生成缓冲器树,缓冲器树用于指示驱动门和多个子树之间的多个待插入位置,待插入位置为缓冲器树所指示的驱动门和多个子树之间的待插入位置,待插入位置为待插入缓冲器的位置。
在图2的基础上,图3为本申请实施例提供的缓冲器树的示意图,如图3所示,根据多个子树的信号所需时间构建的缓冲器树指示了驱动门和3个负载门之间有多个待插入位置,即图中的缓冲器位置,即得到与时序相关联的负载门扇出拓扑关系。
S103、根据每个子树的解以及多个待插入位置,沿着预设解传播方向,确定驱动门的解集中满足预设筛选条件的最优解,并确定多个待插入位置的目标缓冲方案,以采用目标缓冲方案在缓冲器树的多个待插入位置分别插入对应的缓冲器。
其中,每个子树的解包括:每个子树的输入电容和每个子树的信号所需时间,驱动门的解集中每个解包括:驱动门的输入电容和驱动门的信号所需时间。
每个子树的输入电容可以理解为每个子树的电容,子树的信号所需时间为子树对应负载门的输入端的信号所需时间,负载门的输入端的信号所需时间为负载门的输出端的信号所需时间与负载门的延迟之差,其中,负载门的延迟可以基于负载门的输入端的信号过渡时间与负载门的负载电容计算确定,负载门的输入端的信号过渡时间为前一个逻辑门的输出端的信号过渡时间,其中,逻辑门包括负载门、驱动门以及缓冲器。因此,可根据驱动门的输入端的信号过渡时间与驱动门的负载电容,沿着与预设解传播方向相反的方向,依次确定负载门的输入端的信号过渡时间,进而确定负载门的延迟。
驱动门的输入电容可以理解为驱动门的电容,驱动门的信号所需时间为在驱动门的后级电路的约束下,驱动门的输入端的最迟信号到达时间,其中,驱动门的信号所需时间为在预设解传播方向的传播路径上,基于负载门的输出端的信号所需时间、各逻辑门的延迟以及各逻辑门的负载电容确定的,各逻辑门包括负载门、驱动门以及缓冲器,其中,驱动门的负载电容为驱动门的输出端直接连接的待插入位置的输入电容之和,待插入位置的输入电容可以理解为待插入位置插入的缓冲器的电容。其中,负载门的输出端的信号所需时间是已知的。
预设解传播方向可以为从每个负载门到待优化驱动门的方向,即针对数字集成电路的自底向上的方向,如图3所标识的解传播方向。
采用VDGP算法,基于构建的缓冲器树,自底向上通过动态规划,在每个待插入位置处,构造解集,在合并节点处进行解的合并,最后从驱动门的解集中选择满足预设筛选条件的最优解。
在一些实施例中,根据每个子树的解,沿着预设解传播方向,采用VDGP算法,依次确定多个待插入位置的解集,根据预设解传播方向上最后一个待插入位置的解集,确定驱动门的解集,从驱动门的解集中确定满足预设筛选条件的最优解。
其中,每个待插入位置的解集包括:每个待插入位置的多个解,其中,每个待插入位置的解集中的每个解对应每个待插入位置的一种缓冲器插入方案,一种缓冲器插入方案用于指示在待插入位置插入一种缓冲器,每个待插入位置的解集中的每个解包括:每个待插入位置的输入电容、每个待插入位置的信号所需时间。
每个待插入位置的输入电容为该位置插入的缓冲器的电容,每个待插入位置的信号所需时间为在每个待插入位置的后级电路的时序约束下,每个待插入位置的最迟信号到达时间,即在满足后级电路的时序约束的情况下,每个待插入位置的后级电路要求每个待插入位置的信号到达时间不能晚于该信号所需时间。
其中,每个待插入位置的信号所需时间为在每个待插入位置的后一位置的信号所需时间的基础上,基于每个待插入位置所插入缓冲器的自身延迟、以及每个待插入位置的负载电容的延迟确定的,其中,每个待插入位置的负载电容为每个待插入位置的输出端直接连接的后一位置的输入电容之和,缓冲器的自身延迟可以根据插入缓冲器时每个待插入位置的输入端的信号过渡时间和每个待插入位置的负载电容计算得到。
在一些实施例中,可根据驱动门的输入端的信号过渡时间与驱动门的负载电容,沿着与预设解传播方向相反的方向,依次确定每个待插入位置的输入端的信号过渡时间,也就是说,根据驱动门的输入端的信号过渡时间以及驱动门的负载电容,计算驱动门的输出端的信号过渡时间,沿着与预设解传播方向相反的方向,确定驱动门的输出端的信号过渡时间为预设解传播方向上第一个待插入位置的输入端的信号过渡时间,根据该第一个待插入位置的输入端的信号过渡时间以及第一个待插入位置的负载电容,计算第一个待插入位置的输出端的信号过渡时间,直至依次计算得到全部待插入位置的输入端的信号过渡时间。
然后,根据最后一个待插入位置的解集,采用VDGP算法确定驱动门的解集,驱动门直接和最后一个待插入位置连接,则最后一个待插入位置的解集为驱动门的扇出端的解集,再根据扇出端的解集,确定驱动门的解集,驱动门的解集为驱动门的扇入端的解集,扇入端为输入端,扇出端为输出端,再对驱动门的解集进行筛选,以从中确定满足预设筛选条件的最优解,其中,预设筛选条件例如可以为在输入电容相同的情况下,选取信号所需时间最大的解,以及,在信号所需时间相同的情况下,选取输入电容最小的解。
例如,驱动门的解集包括:v17(2,5)、v18(2,4),分别表示驱动门的输入电容为2、信号所需时间为5,驱动门的输入电容为2、信号所需时间为4,满足预设筛选条件的最优解为v17(2,5)+,也就是说,在输入电容相同的情况下,信号所需时间越大则留给信号越多的传输时间。
之后,根据驱动门的最优解,从多个待插入位置的解集中确定与该最优解对应的、多个待插入位置的解,进而根据每个待插入位置的解,确定每个待插入位置的目标缓冲方案,以采用目标缓冲方案在多个待插入位置插入对应的缓冲器。
值得说明的是,驱动门的最优解是根据多个待插入位置的解集中对应的解确定的,因此,可根据驱动门的最优解,反推出每个待插入位置的解。
S104、根据目标缓冲方案,确定驱动门的第一时序裕量和驱动门的输出端的信号过渡时间。
采用目标缓冲方案,在多个待插入位置分别插入对应的缓冲器后,确定驱动门的第一时序裕量,即在目标缓冲方案下驱动门的第一时序裕量,第一时序裕量为驱动门的信号所需时间与实际信号到达时间的差值,第一时序裕量可以为驱动门的输入端的信号所需时间与驱动门的输入端的实际信号到达时间的差值,或者,也可以为驱动门的输出端的信号所需时间与驱动门的输出端的实际信号到达时间的差值。
驱动门的输出端的信号过渡时间为驱动门的输出信号的电平在两个预设电平之间转换所需要的时间,两个预设电平可以为0和1,在一些实施例,采用目标缓冲方案,在多个待插入位置分别插入对应的缓冲器后,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算确定,其中,驱动门的负载电容为采用目标缓冲方案,在多个待插入位置分别插入对应的缓冲器后,驱动门的负载电容,即在目标缓冲方案下驱动门直接连接的待插入位置的输入电容之和。
在一些实施例中,根据目标缓冲方案,确定驱动门的负载电容以及驱动门的信号所需时间,根据驱动门的负载电容以及驱动门的输入端的信号过渡时间,确定驱动门的输出端的信号过渡时间,根据驱动门的信号所需时间以及驱动门的实际信号到达时间,确定第一时序裕量。
采用目标缓冲方案,在多个待插入位置分别插入对应的缓冲器后,确定驱动门的负载电容和信号所需时间,其中,驱动门的负载电容为采用目标缓冲方案在多个待插入位置分别插入对应的缓冲器后,驱动门的输出端直接连接的待插入位置的输入电容之和,驱动门的信号所需时间采用目标缓冲方案在多个待插入位置分别插入对应的缓冲器后,在预设解传播方向的传播路径上,基于负载门的输出端的信号所需时间、各逻辑门的延迟以及各逻辑门的负载电容确定的。
然后,根据驱动门的负载电容以及驱动门的输入端的信号过渡时间,计算驱动门的输出端的信号过渡时间,并确定驱动门的信号所需时间与实际信号到达时间的差值为第一时序裕量。
S105、移除缓冲器树插入的缓冲器,根据驱动门的输出端的信号过渡时间,重新确定多个子树的信号所需时间,并重新构建缓冲器树。
在一些实施例中,子树的信号所需时间与子树对应负载门的延迟相关,负载门的延迟根据驱动门的输出端的信号过渡时间以及负载门的负载电容计算确定,驱动门的输出端的信号过渡时间根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算确定,在缓冲器树上插入缓冲器时,驱动门的负载电容已经发生改变,这样子树的信号所需时间已经发生改变,但在上述步骤S102构建缓冲器树时,并未考虑插入缓冲器时子树的信号所需时间已经改变这一情况,而仍然使用未插入缓冲器时子树的信号所需时间构建缓冲器树,导致负载门的信号所需时间不准确。
基于此,为解决驱动门的输出端的信号过渡时间不匹配的问题,移除缓冲器树插入的缓冲器,即恢复为图2所示的初始拓扑结构,根据步骤S104得到的驱动门的输出端的信号过渡时间,重新确定多个子树的信号所需时间,其中,每个子树的信号所需时间为负载门的输入端的信号所需时间,负载门的输入端的信号所需时间为负载门的输出端的信号所需时间与负载门的延迟之差,其中,负载门的延迟可以根据负载门的输入端的信号过渡时间和负载门的负载电容计算得到,负载门的负载电容为负载门的后级电路的输入电容,负载门的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可以根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为多个子树对应负载门的电容之和。
根据重新确定的多个子树的信号所需时间,重新构建缓冲器树,其中,可参见步骤S102的实现过程,按照信号所需时间遍历子树集合中的多个子树,对多个子树进行聚类,重新构建缓冲器树,重新构建的缓冲器树用于指示驱动门和多个子树之间的多个待插入位置,其中,重新构建的缓冲器树和上一次构建的缓冲器树所指示的待插入位置不同。
S106、根据重新构建的缓冲器树,重新确定驱动门的第二时序裕量。
参见步骤S103-S105的实现过程,针对重新构建的缓冲器树,获取每个子树的解,根据每个子树的解,沿着预设解传播方向,采用VDGP算法,依次确定多个待插入位置的解集,根据预设解传播方向上最后一个待插入位置的解集,确定驱动门的解集,从驱动门的解集中确定满足预设筛选条件的最优解,根据驱动门的最优解,从多个待插入位置的解集中确定与该最优解对应的、多个待插入位置的解,进而根据每个待插入位置的解,确定每个待插入位置的目标缓冲方案,以采用目标缓冲方案在多个待插入位置插入对应的缓冲器。
针对重新构建的缓冲器树,采用目标缓冲方案,在在多个待插入位置分别插入对应的缓冲器后,确定驱动门的第二时序裕量,即针对重新构建的缓冲器树,在目标缓冲方案下驱动门的第二时序裕量,第二时序裕量为驱动门的信号所需时间与实际信号到达时间的差值,第二时序裕量可以为驱动门的输入端的信号所需时间与驱动门的输入端的实际信号到达时间的差值,或者,也可以为驱动门的输出端的信号所需时间与驱动门的输出端的实际信号到达时间的差值。
S107、根据第一时序裕量以及第二时序裕量,确定最终缓冲方案,以采用最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
对第一时序裕量以及第二时序裕量进行对比,若第一时序裕量大于第二时序裕量,即留给信号更多的传输时间,说明第一次构建的缓冲器树对应的目标缓冲方案优于重新构建的缓冲器树对应的目标缓冲方案,则确定第一次构建的缓冲器树对应的目标缓冲方案为最终缓冲方案,多个目标待插入位置为第一次构建的缓冲器树的多个待插入位置,目标缓冲器为第一次构建的缓冲器树对应的目标缓冲方案下,多个待插入位置插入的缓冲器。
类似地,若第二时序裕量大于第一时序裕量,即留给信号更多的传输时间,说明重新构建的缓冲器树对应的目标缓冲方案优于第一次构建的缓冲器树对应的目标缓冲方案,则确定重新构建的缓冲器树对应的目标缓冲方案为最终缓冲方案,多个目标待插入位置为重新构建的缓冲器树的多个待插入位置,目标缓冲器为重新构建的缓冲器树对应的目标缓冲方案下,多个待插入位置插入的缓冲器。
在一些实施例中,还可以移除重新构建的缓冲器树所插入的缓冲器,参见上述步骤S105重复构建缓冲器树,直至达到电路时序得到最大改善,即驱动门的时序裕量达到最大值,并确定驱动门的时序裕量达到最大值时所构建的缓冲器树对应的目标缓冲方案为最终缓冲方案,以在多个目标待插入位置插入对应的目标缓冲器。
在本实施例的缓冲器插入方法中,通过获取子树集合中多个子树的信号所需时间,根据多个子树的信号所需时间,构建缓冲器树,根据每个子树的解以及多个待插入位置,沿着预设解传播方向,确定驱动门的解集中满足预设筛选条件的最优解,并确定多个待插入位置的目标缓冲方案,根据目标缓冲方案,确定驱动门的第一时序裕量和驱动门的输出端的信号过渡时间,移除缓冲器树插入的缓冲器,根据驱动门的输出端的信号过渡时间,重新确定多个子树的信号所需时间,并重新构建缓冲器树,根据重新构建的缓冲器树,重新确定驱动门的第二时序裕量,根据第一时序裕量以及第二时序裕量,确定最终缓冲方案。通过迭代构建缓冲器树并根据时序裕量确定最终缓冲方案,以插入缓冲器,改善了电路延迟优化效果。
下面结合图4对VDGP算法的实现过程进行说明,在一些实施例中,预设单元库中具有m个缓冲器buf_1-buf_m,在单元库中名字不同的缓冲器视为不同的缓冲器,如buf_x1、clkbuf_x1视为两个不同缓冲器,buf_x1、buf_x2视为两个不同缓冲器。
因此,在沿着预设解传播方向确定每个待插入位置的解集时,可以遍历预设单元库中的m个缓冲器,以得到每个待插入位置的解集,其中,每个待插入位置的解集中每个解对应一个缓冲方案,一个缓冲器对应一个缓冲方案,所以,m个缓冲器对应m个缓冲方案,基于m个缓冲方案,根据负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集。
图4为本申请实施例提供的一种数字集成电路的示意图,如图4所示,负载门1的解为v1(5,15),表示负载门1的输入电容为5,信号所需时间为15;负载门2的解为v2(7,12),表示负载门2的输入电容为7,信号所需时间为12。
待插入位置1为负载门1相邻的位置,待插入位置2为负载门2相邻的位置,根据负载门1的解,以及待插入位置1的多种缓冲方案(一个缓冲方案对应插入一种缓冲器),确定待插入位置1的解集,以预设单元库中的两种目标缓冲方案(即两种缓冲器)为例,在该位置部署b1缓冲器时,待插入位置1的解为v3:b1→v1(2,12),表示该位置的输入电容为2,信号所需时间为12;若在该位置部署b2缓冲器时,待插入位置1的解为v4:b2→v1(4,13),表示该位置的输入电容为4,信号所需时间为13;若不部署导线,则待插入位置1的解为(5,15),对待插入位置1的解进行剪枝,剪枝后待插入位置1的解集为v3:b1→v1(2,12)、v4:b2→v1(4,13)。
类似地,待插入位置2的解集包括:v5:b1→v2(2,7)、v6: b2→v2(4,9)、(7,12),进行剪枝,剪枝后待插入位置2的解集为v5:b1→v2(2,7)、v6: b2→v2(4,9)。
图中A点为斯坦纳节点(即合并节点),针对斯坦纳节点A,将待插入位置1的解和待插入位置2的解进行枚举合并,并进行剪枝,得到斯坦纳节点A处的解集,其中,在合并时将待插入位置1的解和待插入位置2的解中的输入电容相加,并取待插入位置1的解和待插入位置2的解中最小的一个信号所需时间,合并后得到解集包括:v7: v3+v5(4,7)、v8: v3+v6(6,9)、v11: v4+v5(6,7)、v12: v4+v6(8,9),再对合并后得到解集进行剪枝,将v4+v5(6,7)、v4+v6(8,9)剪掉,这样斯坦纳节点A处的解集包括:v7: v3+v5(4,7)、v8: v3+v6(6,9)。
类似地,基于斯坦纳节点A处的解集,确定待插入位置3的解集为v9: b1+v9(2,5)、v10: b2+v10(4,8)、v18(6,9),其中v18(6,9)表示不部署缓冲器,驱动门的解集包括解1:驱动门→v9(3,4)、解2:驱动门→v10(3,3)、解3:驱动门→v8(3,3),对驱动门的解集进行剪枝以从驱动门的解集中确定驱动门的最优解为驱动门→v9(3,4)。
其中,剪枝可以理解为按照预设筛选条件,即在输入电容相同的情况下,剪掉信号所需时间最小的解,或者,在信号所需时间相同的情况下,剪掉输入电容最大的解,或者,剪掉所需时间小但输入电容大的解,其中,在输入电容相同的情况下,信号所需时间越大则留给信号越多的传输时间,在信号所需时间相同的情况下,输入电容越小则留给信号的传输时间越快。
值得说明的是,剪掉所需时间小但输入电容大的解可以理解为,对于解A和解B,若且/>,则认为解A为次优解,从解集中移除,/>为信号所需时间,C为输入电容。
在一些实施例中,在合并节点处,将扇出子树(例如待插入位置1和待插入位置2)的解进行枚举组合,并进行剪枝,假设有个扇出子树,每个扇出子树有/>个解,则会合并构造出/>个解,再通过剪枝剔除次优解,算法中将n个扇出子树进行划分,实现类似二叉树结构的junction节点,可以在合并过程中提前剪枝而不影响最终结果。
在插入缓冲器的位置处,假设前一位置的解集记为,取出预设单元库中某个尺寸的缓冲器Buf_i,遍历/>,构建数据所需时间最大的解,作为本级Buf_i所对应的最优解,考虑预设单元库中所有尺寸的缓冲器,均构建本级Buf_i所对应的最优解,将所有构建出的解作为缓冲器的解,保存于解集/>中,将前一位置的解集/>作为无缓冲器解(即导线解)加入解集/>中,解集/>为当前插入缓存器位置所有解的解集,假设预设单元库中有m个缓冲器,前一位置的解集记为/>中有/>个解,则解集/>中最多包含/>个解,对解集/>中的解进行剪枝作为当前插入缓存器位置的解集。
对于每一个尺寸的缓冲器,其只存在一个非劣解(即一个最优解),对于特定尺寸的缓冲器D,其输入电容为,前一位置存在两个缓冲器A、B,输入电容分别为/>、/>,输入端的信号所需时间分别为/>、/>,则将D与A、B分别构成解/>、/>,缓冲器D的延迟分别为/>、/>,/>、/>在D输入端的信号所需时间为/>、,DA与DB的输入电容均为/>,因此这两个解对于上游电路的延迟无影响,对比/>、/>信号所需时间较大的解作为劣解被剔除。
值得说明的是,任何基于VDGP算法的改进算法均可用于求驱动门的最优解,例如,采用提前剪枝、考虑次关键路径、考虑面积等基于VDGP的改进算法。
通过自底向上通过动态规划,在每个待插入位置处构建解集,在合并节点处进行解合并,最后在驱动门处选择最优解,便于后续进行缓冲器树的迭代以及确定缓冲器树的迭代停止条件。
图5为本申请实施例提供的缓冲器插入方法的流程示意图二,如图5所示,在一可选的实施方式中,步骤S102,根据多个子树的信号所需时间,构建第一缓冲器树,可以包括:
S201、根据多个子树的信号所需时间,从子树集合中确定满足预设时间范围的第一子树。
第一子树为从子树集合中确定的信号所需时间满足预设时间范围的子树,第一子树的数量包括但不限于一个。
S202、对第一子树进行聚类,构建第一聚类子树。
对第一子树进行聚类,构建第一聚类子树,第一聚类子树包括:第一缓冲器以及第一缓冲器所驱动的第一子树,第一缓冲器为从预设单元库中确定的,驱动门和第一子树所在路径对应的延迟最小的缓冲器。
其中,预设单元库中包括多种缓冲器,驱动门和第一子树所在路径对应的延迟最小可以理解为,针对驱动门和第一子树所在路径来说,驱动门的输入端的信号所需时间最大化,即第一缓冲器为从预设单元库中确定的,驱动门和第一子树所在路径上驱动门的输入端的信号所需时间最大化时的缓存器,也就是说,遍历预设单元库所有缓冲器,找到使最大化时的缓冲器,/>为第一子树的输入端的信号所需时间,/>为缓冲器的延迟,/>为驱动门的延迟。
第一子树的输入端的信号所需时间可以为第一子树的输出端的信号所需时间以及第一子树对应负载门的延迟之差,第一子树对应负载门的延迟可根据第一子树的输入端的信号过渡时间以及第一子树对应负载门的负载电容计算确定,第一子树的输入端的信号过渡时间为驱动门和第一子树之间的缓冲器的输出端的信号过渡时间,缓冲器的输出端的信号过渡时间可根据缓冲器的输入端的信号过渡时间以及缓冲器的负载电容计算确定,缓冲器的负载电容为第一子树的输入电容,缓冲器的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为缓冲器输入电容。
将第一缓冲器和第一缓冲器所驱动的第一子树级联连接,以构建第一聚类子树,值得说明的是,若第一子树的数量大于一,则在确定第一缓冲器时,可确定第一子树的信号所需时间中最小信号所需时间为,并遍历预设单元库所有缓冲器。
在该示例中,驱动门的延迟可以根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为驱动门的输出端直接连接的逻辑门的输入电容(对于第一聚类子树来说,逻辑门为第一缓冲器,对于后面的聚类子树来说,逻辑门可以为缓冲器和部分负载门的混合),类似地,缓冲器的延迟/>可以根据缓冲器的输入端的信号过渡时间以及缓冲器的负载电容计算得到,缓冲器的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,缓冲器的负载电容为第一子树的电容之和。
图6为本申请实施例提供的缓冲器树构建过程的示意图一,如图6所示,第一子树表示为G,第一缓冲器和G级联连接构建成一个新子树T,即第一聚类子树,第一子树为被标记的子树,子树集合中剩余子树为未被标记的子树。
S203、将子树集合中的第一子树更新为第一聚类子树。
将子树集合中的第一子树更新为第一聚类子树,得到更新后的子树集合,即从子树集合中将第一子树删除,并将第一聚类子树加入子树集合中,更新后的子树集合中的子树包括两种类型,一种是还未经过聚类的负载门子树,另一种是已经聚类并插入缓冲器的第一聚类子树。
其中,第一聚类子树的输入端的信号所需时间为第一缓冲器的输入端的信号所需时间,第一缓冲器的输入端的信号所需时间为第一缓冲器的输出端的信号所需时间与第一缓冲器的延迟之差,第一缓冲器的输出端的信号所需时间为第一子树的输入端的信号所需时间中的最小值,第一缓冲器的延迟可根据第一缓冲器的输入端的信号过渡时间以及第一缓冲器的负载电容计算确定,第一缓冲器的负载电容为第一子树的输入电容之和,第一缓冲器的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为缓冲器输入电容。
在一些实施例中,若第一子树的总数达到预设阈值max_fanout ,将子树集合中的子树按照信号所需时间递减顺序排列,在子树集合中查找第一子树,直至将所有满足预设时间范围的第一子树查找完毕,或者,第一子树的数量达到max_fanout,max_fanout为驱动门的预设最大扇出数,扇出数为与驱动门直接连接的扇出子树的数量。
S204、根据更新后的子树集合中每个子树的信号所需时间,构建第二聚类子树,直至更新后子树集合中子树的数量为一,并生成缓冲器树。
根据更新后的子树集合中每个子树的信号所需时间,从更新后的子树集合中确定第二子树,参见步骤S202-S203的实现过程,对第二子树进行聚类,构建第二聚类子树,然后将更新后的子树集合中第二子树更新为第二聚类子树,重复该聚类过程,直至更新后的子树集合中子树的数量为一。
在更新后子树集合中子树的数量为一时,根据更新后的子树集合以及驱动门,生成缓冲器树。
在本实施例的缓冲器插入方法中,通过对子树进行聚类以构建缓冲器树,便于后续进行缓冲器树的迭代,从而进行缓冲器插入。
图7为本申请实施例提供的缓冲器插入方法的流程示意图三,如图7所示,在一可选的实施方式中,步骤S201,根据多个子树的信号所需时间,从子树集合中确定满足预设时间范围的第一子树之前,该方法还可以包括:
S301、确定多个子树的信号所需时间中的最大值为信号所需时间上限值。
S302、从预设单元库中确定驱动门与最大值对应子树之间的第二缓冲器。
从多个子树的信号所需时间中确定最大值为信号所需时间上限值,即将最大值对应子树的信号所需时间作为信号所需时间上限值/>。
从预设单元库中确定驱动门与最大值对应子树之间的第二缓冲器,第二缓冲器为驱动门和最大值对应子树所在路径对应延迟最小的缓冲器,即针对驱动门和最大值对应子树所在路径来说,驱动门的输入端的信号所需时间最大化,即第二缓冲器为从预设单元库中确定的,驱动门和最大值对应子树所在路径上驱动门的输入端的信号所需时间最大化时的缓冲器,也就是说,遍历预设单元库所有缓冲器,找到使最大化时的缓冲器,/>为最大值对应子树的输入端的信号所需时间,/>为缓冲器的延迟,为驱动门的延迟。
其中,最大值对应子树的输入端的信号所需时间可以为最大值对应子树的输出端的信号所需时间以及最大值对应子树对应负载门的延迟之差,最大值对应子树对应负载门的延迟可根据最大值对应子树的输入端的信号过渡时间以及最大值对应子树对应负载门的负载电容计算确定,最大值对应子树的输入端的信号过渡时间为驱动门和最大值对应子树之间的缓冲器的输出端的信号过渡时间,缓冲器的输出端的信号过渡时间可根据缓冲器的输入端的信号过渡时间以及缓冲器的负载电容计算确定,缓冲器的负载电容为最大值对应子树的输入电容,缓冲器的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为缓冲器输入电容。
图8为本申请实施例提供的缓冲器树构建过程的示意图二,如图8所示,最大值对应子树为子树TA,遍历预设单元库中所有缓冲器,找到使最大化情况对应的缓冲器为驱动门和子树TA之间的第二缓冲器。
S303、根据第二缓冲器的延迟以及信号所需时间上限值,确定信号所需时间下限值。
S304、根据信号所需时间上限值和信号所需时间下限值,确定预设时间范围。
信号所需时间下限值为信号所需时间上限值与第二缓冲器的延迟之差,信号所需时间下限值表示为,即缓冲器的输入端的信号所需时间,其中,/>为第二缓冲器的延迟。
获取预设时间范围,预设时间范围的上限为信号所需时间上限值,预设时间范围的下限为信号所需时间下限值。
图9为本申请实施例提供的缓冲器插入方法的流程示意图四,如图9所示,在一可选的实施方式中,步骤S204,根据更新后的子树集合中每个子树的信号所需时间,构建第二聚类子树,可以包括:
S401、根据更新后的子树集合中每个子树的信号所需时间,重新确定预设时间范围。
更新后的子树集合中的子树包括两种类型,一种是负载门子树,一种是聚类子树,对于负载门子树,每个子树的信号所需时间为每个子树对应负载门的输入端的信号所需时间,负载门的输入端的信号所需时间为负载门的输出端的信号所需时间与负载门的延迟之差,其中,负载门的延迟可以根据负载门的输出端的信号过渡时间和负载门的负载电容计算得到,负载门的负载电容为负载门的后级电路的输入电容之和,负载门的输出端的信号过渡时间可以根据负载门的输入端的信号过渡时间和负载门的负载电容计算得到,负载门的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间和驱动门的负载电容计算得到,驱动门的负载电容为驱动门直接连接的逻辑门的输入电容之和。
对于聚类子树,每个子树的信号所需时间为第一缓冲器的输出端的信号所需时间与第一缓冲器的延迟之差,第一缓冲器的输出端的信号所需时间为聚类子树对应的第一子树的输入端的信号所需时间中的最小值,第一缓冲器的延迟可根据第一缓冲器的输入端的信号过渡时间以及第一缓冲器的负载电容计算确定,第一缓冲器的负载电容为第一子树的输入电容之和,第一缓冲器的输入端的信号过渡时间为驱动门的输出端的信号过渡时间,驱动门的输出端的信号过渡时间可根据驱动门的输入端的信号过渡时间以及驱动门的负载电容计算得到,驱动门的负载电容为驱动门直接连接的逻辑门的输入电容之和。
在一些实施例中,参见步骤S301-S304的实现过程,根据更新后的子树集合中每个子树的信号所需时间,重新确定更新后的子树集合中信号所需时间最大值为信号所需时间上限值,以及从预设单元库中重新确定驱动门与该最大值对应子树之间的第二缓冲器,根据重新确定的第二缓冲器的延迟,以及重新确定的信号所需时间上限值,重新确定信号所需时间下限值,进而重新确定预设时间范围。
S402、根据更新后的子树集合中每个子树的信号所需时间,从更新后的子树集合中确定满足重新确定的预设时间范围的第二子树。
参见上述步骤S201,根据更新后的子树集合中每个子树的信号所需时间,从更新后的子树集合中确定满足重新确定的预设时间范围的第二子树,第二子树的数量包括但不限于一个。
S403、若第二子树的数量超过预设阈值,则从第二子树中确定与目标子树类型相同的第三子树。
若第二子树的数量超过预设阈值,则从第二子树中确定与目标子树类型相同的第三子树,其中,目标子树为重新确定的预设时间范围的信号所需时间上限值对应的子树,即重新确定的最大值对应的子树,目标子树的类型为负载门子树或聚类子树。其中,预设阈值例如可以为预设阈值为max_fanout ,max_fanout为驱动门的预设最大扇出数,扇出数为与驱动门直接连接的扇出子树的数量。
在一些实施例中,若第二子树的数量达到预设阈值max_fanout ,将更新后的子树集合中的子树按照信号所需时间递减顺序排列,在更新后的子树集合中查找第二子树,直至将所有满足预设时间范围的第二子树查找完毕,或者第二子树的数量达到max_fanout。
S404、对第三子树进行聚类,构建第二聚类子树。
参见步骤S202的实现过程,对第三子树进行聚类,构建第二聚类子树,第二聚类子树包括:一个缓冲器以及该一个缓冲器所驱动的第三子树,该一个缓冲器为从预设单元库中确定的,驱动门和第二子树所在路径对应的延迟最小的缓冲器。
在一可选的实施方式中,步骤S404,对第三子树进行聚类,构建第二聚类子树,可以包括:根据第三子树的信号所需时间,对第三子树进行排列;依次遍历排列后的第三子树,确定预设扇出数量个的第三子树;对预设扇出数量个的第三子树进行聚类,构建第二聚类子树。
若第二子树的数量达到预设阈值,则从第二子树中确定与目标子树类型相同的第三子树,根据第三子树的信号所需时间,对第三子树进行排列,例如可以按照信号所需时间递减顺序排序,并依次遍历排列后的第三子树,确定预设扇出数量个第三子树,预设扇出数量为驱动门的预设最大扇出数,扇出数为与驱动门直接连接的扇出子树的数量,然后对预设扇出数量个第三子树进行聚类,构建第二聚类子树。
在一些实施例中,若第二子树的数量达到预设阈值max_fanout ,将更新后的子树集合中的子树按照信号所需时间递减顺序排列,按照递减顺序标记符合预设时间范围的相同类型的第三子树,直至无符合该预设时间范围的相同类型的第三子树或者第三子树的数量达到预设扇出数量。其中/>∈ (0,1],当扇出数较大时,驱动门的信号过渡时间不准确,因此/>应当取小,避免门延迟计算不准确导致构建出长逻辑链。
图10为本申请实施例提供的缓冲器插入方法的流程示意图五,如图10所示,在一可选的实施方式中,步骤S107,根据第一时序裕量以及第二时序裕量,确定最终缓冲方案,可以包括:
S501、若第一时序裕量小于第二时序裕量,则重新构建缓冲器树,直至重新构建的缓冲器树的时序裕量小于前一个构建的缓冲器树的时序裕量。
对于缓冲器树而言,驱动门的时序阈值可以反映缓冲树的延迟性能,若第一时序裕量大于第二时序裕量,说明第一次构建的缓冲器树对应的目标缓冲方案优于重新构建的缓冲器树对应的目标缓冲方案,则确定第一次构建的缓冲器树对应的目标缓冲方案为最终缓冲方案,多个目标待插入位置为第一次构建的缓冲器树的多个待插入位置,目标缓冲器为第一次构建的缓冲器树对应的目标缓冲方案下,多个待插入位置插入的缓冲器。
若第二时序裕量大于第一时序裕量,即留给信号更多的传输时间,说明重新构建的缓冲器树对应的目标缓冲方案优于第一次构建的缓冲器树对应的目标缓冲方案,电路时序改善,则按照上述步骤S101-S105的实现过程,重新构建缓冲器树,直至重新构建的缓冲器树的时序裕量小于前一个构建的缓冲器树的时序裕量,也即驱动门的时序裕量在前一个构建的缓冲器树时达到最大,且电路时序得到最大改善。
S502、确定前一个构建的缓冲器树的多个待插入位置的目标缓冲方案为最终缓冲方案。
其中,前一个构建的缓冲器树的多个待插入位置为多个目标待插入位置,目标缓冲器为前一个构建的缓冲器对应的目标缓冲方案下,多个待插入位置插入的缓冲器。
例如,第三次构建的缓冲器树的第三时序裕量小于第二次构建的缓冲器树的第二时序裕量,则确定第二次构建的缓冲器树对应的目标缓冲方案为最终缓冲方案。
在本实施例的缓冲器插入方法中,通过迭代缓冲器树,使驱动门的扇出端在优化前后的信号过渡时间相匹配,进一步提升解的质量,从而进行缓冲器插入,改善了电路延迟优化效果。
在上述实施例的基础上,图11为本申请实施例提供的缓冲器插入方法的一种具体实现过程的示意图,如图11所示,子树集合中的子树按照信号所需时间递减顺序排列,首先求解子问题1:缓冲器树构建,再求解子问题2:动态规划求最优解,判断时序是否改善,若时序改善,则保存最优解以及时序信息,移除缓冲器树中的缓冲器,循环执行,直至时序未改善,则恢复最优解。
基于同一发明构思,本申请实施例中还提供了与缓冲器插入方法对应的缓冲器插入装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述缓冲器插入方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图12为本申请实施例提供的缓冲器插入装置的结构示意图,该装置可以集成在电子设备中。
如图2所示,该装置可以包括:
获取模块801,用于获取子树集合中多个子树的信号所需时间,其中,每个子树的信号所需时间为在每个子树对应负载门的后级电路的时序约束下,负载门的最迟信号到达时间;
构建模块802,用于根据多个子树的信号所需时间,构建缓冲器树,其中,缓冲器树用于指示驱动门和多个子树之间的多个待插入位置;
确定模块803,用于根据每个子树的解以及多个待插入位置,沿着预设解传播方向,确定驱动门的解集中满足预设筛选条件的最优解,并确定多个待插入位置的目标缓冲方案,以采用目标缓冲方案在缓冲器树的多个待插入位置分别插入缓冲器,其中,每个子树的解包括:每个子树的输入电容和每个子树的信号所需时间,驱动门的解集中每个解包括:驱动门的输入电容和驱动门的信号所需时间;
确定模块803,还用于根据目标缓冲方案,确定驱动门的第一时序裕量和驱动门的输出端的信号过渡时间,第一时序裕量为驱动门的信号所需时间与实际信号到达时间的差值,信号过渡时间为驱动门的输出信号的电平在两个预设电平之间转换所需要的时间;
构建模块802,还用于移除缓冲器树插入的缓冲器,根据驱动门的输出端的信号过渡时间,重新确定多个子树的信号所需时间,并重新构建缓冲器树;
确定模块803,还用于根据重新构建的缓冲器树,重新确定驱动门的第二时序裕量;
确定模块803,还用于根据第一时序裕量以及第二时序裕量,确定最终缓冲方案,以采用最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
在一可选的实施方式中,构建模块802,具体用于:
根据多个子树的信号所需时间,从子树集合中确定满足预设时间范围的第一子树;
对第一子树进行聚类,构建第一聚类子树,第一聚类子树包括:第一缓冲器以及第一缓冲器所驱动的第一子树,第一缓冲器为从预设单元库中确定的,驱动门和第一子树所在路径对应的延迟最小的缓冲器;
将子树集合中的第一子树更新为聚类子树;
根据更新后的子树集合中每个子树的信号所需时间,构建第二聚类子树,直至更新后子树集合中子树的数量为一,并生成缓冲器树。
在一可选的实施方式中,构建模块802,具体用于:
确定多个子树的信号所需时间中的最大值为信号所需时间上限值;
从预设单元库中确定驱动门与最大值对应子树之间的第二缓冲器,第二缓冲器为驱动门和最大值对应子树所在路径对应延迟最小的缓冲器;
根据第二缓冲器的延迟以及信号所需时间上限值,确定信号所需时间下限值;
根据信号所需时间上限值和信号所需时间下限值,确定预设时间范围。
在一可选的实施方式中,构建模块802,具体用于:
根据更新后的子树集合中每个子树的信号所需时间,重新确定预设时间范围;
根据更新后的子树集合中每个子树的信号所需时间,从更新后的子树集合中确定满足重新确定的预设时间范围的第二子树;
若第二子树的数量超过预设阈值,则从第二子树中确定与目标子树类型相同的第三子树,目标子树为重新确定的预设时间范围的信号所需时间上限值对应的子树;
对第三子树进行聚类,构建第二聚类子树。
在一可选的实施方式中,确定模块803,具体用于:
根据第三子树的信号所需时间,对第三子树进行排列;
依次遍历排列后的第三子树,确定预设扇出数量个第三子树;
对预设扇出数量个第三子树进行聚类,构建第二聚类子树。
在一可选的实施方式中,确定模块803,具体用于:
若第一时序裕量小于第二时序裕量,则重新构建缓冲器树,直至重新构建的缓冲器树的时序裕量小于前一个构建的缓冲器树的时序裕量;
确定前一个构建的缓冲器树的多个待插入位置的目标缓冲方案为最终缓冲方案,其中,前一个构建的缓冲器树的多个待插入位置为多个目标待插入位置。
在一可选的实施方式中,确定模块803,具体用于:
根据每个子树的解,沿着预设解传播方向,依次确定多个待插入位置的解集;
根据预设解传播方向上最后一个待插入位置的解集,确定驱动门的解集;
从驱动门的解集中确定满足预设筛选条件的最优解。
在一可选的实施方式中,确定模块803,具体用于:
根据目标缓冲方案,确定驱动门的负载电容以及驱动门的信号所需时间;
根据驱动门的负载电容以及驱动门的输入端的信号过渡时间,确定驱动门的输出端的信号过渡时间;
根据驱动门的信号所需时间以及驱动门的实际信号到达时间,确定第一时序裕量。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
图13为本申请实施例提供的电子设备的结构示意图,如图13所示,该设备可以包括:处理器901、存储器902和总线903,存储器902存储有处理器901可执行的机器可读指令,当电子设备运行时,处理器901与存储器902之间通过总线903通信,处理器901执行机器可读指令,以执行上述方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行上述方法。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种缓冲器插入方法,其特征在于,包括:
获取子树集合中多个子树的信号所需时间,其中,每个子树的信号所需时间为在所述每个子树对应负载门的后级电路的时序约束下,所述负载门的最迟信号到达时间;
根据所述多个子树的信号所需时间,构建缓冲器树,其中,所述缓冲器树用于指示驱动门和所述多个子树之间的多个待插入位置;
根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,并确定所述多个待插入位置的目标缓冲方案,以采用所述目标缓冲方案在所述缓冲器树的所述多个待插入位置分别插入对应的缓冲器,其中,所述每个子树的解包括:所述每个子树的输入电容和所述每个子树的信号所需时间,所述驱动门的解集中每个解包括:所述驱动门的输入电容和所述驱动门的信号所需时间;
根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,所述第一时序裕量为所述驱动门的信号所需时间与实际信号到达时间的差值,所述信号过渡时间为所述驱动门的输出信号的电平在两个预设电平之间转换所需要的时间;
移除所述缓冲器树插入的所述缓冲器,根据所述驱动门的输出端的信号过渡时间,重新确定所述多个子树的信号所需时间,并重新构建所述缓冲器树;
根据重新构建的所述缓冲器树,重新确定所述驱动门的第二时序裕量;
根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,以采用所述最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个子树的信号所需时间,构建缓冲器树,包括:
根据所述多个子树的信号所需时间,从所述子树集合中确定满足预设时间范围的第一子树;
对所述第一子树进行聚类,构建第一聚类子树,所述第一聚类子树包括:第一缓冲器以及所述第一缓冲器所驱动的所述第一子树,所述第一缓冲器为从预设单元库中确定的,所述驱动门和所述第一子树所在路径对应的延迟最小的缓冲器;
将所述子树集合中的所述第一子树更新为所述聚类子树;
根据更新后的所述子树集合中每个子树的信号所需时间,构建第二聚类子树,直至更新后所述子树集合中子树的数量为一,并生成所述缓冲器树。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个子树的信号所需时间,从所述子树集合中确定满足预设时间范围的第一子树之前,所述方法还包括:
确定所述多个子树的信号所需时间中的最大值为信号所需时间上限值;
从所述预设单元库中确定所述驱动门与所述最大值对应子树之间的第二缓冲器,所述第二缓冲器为所述驱动门和所述最大值对应子树所在路径对应延迟最小的缓冲器;
根据所述第二缓冲器的延迟以及所述信号所需时间上限值,确定信号所需时间下限值;
根据所述信号所需时间上限值和所述信号所需时间下限值,确定所述预设时间范围。
4.根据权利要求2所述的方法,其特征在于,所述根据更新后的所述子树集合中每个子树的信号所需时间,构建第二聚类子树,包括:
根据更新后的所述子树集合中每个子树的信号所需时间,重新确定所述预设时间范围;
根据更新后的所述子树集合中每个子树的信号所需时间,从更新后的所述子树集合中确定满足重新确定的所述预设时间范围的第二子树;
若所述第二子树的数量超过预设阈值,则从所述第二子树中确定与目标子树类型相同的第三子树,所述目标子树为重新确定的所述预设时间范围的信号所需时间上限值对应的子树;
对所述第三子树进行聚类,构建所述第二聚类子树。
5.根据权利要求4所述的方法,其特征在于,所述对所述第三子树进行聚类,构建所述第二聚类子树,包括:
根据所述第三子树的信号所需时间,对所述第三子树进行排列;
依次遍历排列后的第三子树,确定预设扇出数量个第三子树;
对所述预设扇出数量个第三子树进行聚类,构建所述第二聚类子树。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,包括:
若所述第一时序裕量小于所述第二时序裕量,则重新构建所述缓冲器树,直至重新构建的所述缓冲器树的时序裕量小于前一个构建的所述缓冲器树的时序裕量;
确定所述前一个构建的所述缓冲器树的多个待插入位置的目标缓冲方案为所述最终缓冲方案,其中,前一个构建的所述缓冲器树的多个待插入位置为所述多个目标待插入位置。
7.根据权利要求1所述的方法,其特征在于,所述根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,包括:
根据所述每个子树的解,沿着所述预设解传播方向,依次确定所述多个待插入位置的解集;
根据所述预设解传播方向上最后一个待插入位置的解集,确定所述驱动门的解集;
从所述驱动门的解集中确定满足所述预设筛选条件的所述最优解。
8.根据权利要求1所述的方法,其特征在于,所述根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,包括:
根据所述目标缓冲方案,确定所述驱动门的负载电容以及所述驱动门的信号所需时间;
根据所述驱动门的负载电容以及所述驱动门的输入端的信号过渡时间,确定所述驱动门的输出端的信号过渡时间;
根据所述驱动门的信号所需时间以及所述驱动门的实际信号到达时间,确定所述第一时序裕量。
9.一种缓冲器插入装置,其特征在于,包括:
获取模块,用于获取子树集合中多个子树的信号所需时间,其中,每个子树的信号所需时间为在所述每个子树对应负载门的后级电路的时序约束下,所述负载门的最迟信号到达时间;
构建模块,用于根据所述多个子树的信号所需时间,构建缓冲器树,其中,所述缓冲器树用于指示驱动门和所述多个子树之间的多个待插入位置;
确定模块,用于根据所述每个子树的解以及所述多个待插入位置,沿着预设解传播方向,确定所述驱动门的解集中满足预设筛选条件的最优解,并确定所述多个待插入位置的目标缓冲方案,以采用所述目标缓冲方案在所述缓冲器树的所述多个待插入位置分别插入缓冲器,其中,所述每个子树的解包括:所述每个子树的输入电容和所述每个子树的信号所需时间,所述驱动门的解集中每个解包括:所述驱动门的输入电容和所述驱动门的信号所需时间;
确定模块,还用于根据所述目标缓冲方案,确定所述驱动门的第一时序裕量和所述驱动门的输出端的信号过渡时间,所述第一时序裕量为所述驱动门的信号所需时间与实际信号到达时间的差值,所述信号过渡时间为所述驱动门的输出信号的电平在两个预设电平之间转换所需要的时间;
所述构建模块,还用于移除所述缓冲器树插入的所述缓冲器,根据所述驱动门的输出端的信号过渡时间,重新确定所述多个子树的信号所需时间,并重新构建所述缓冲器树;
所述确定模块,还用于根据重新构建的所述缓冲器树,重新确定所述驱动门的第二时序裕量;
所述确定模块,还用于根据所述第一时序裕量以及所述第二时序裕量,确定最终缓冲方案,以采用所述最终缓冲方案在对应缓冲器树的多个目标待插入位置分别插入对应的目标缓冲器。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行权利要求1至8任一项所述的缓冲器插入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311385459.3A CN117113915B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器插入方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311385459.3A CN117113915B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器插入方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117113915A CN117113915A (zh) | 2023-11-24 |
CN117113915B true CN117113915B (zh) | 2024-02-02 |
Family
ID=88809624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311385459.3A Active CN117113915B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器插入方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117113915B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632887A (zh) * | 2020-12-18 | 2021-04-09 | 展讯通信(上海)有限公司 | 存储器的时钟延时调整方法及装置、存储介质、终端 |
CN113326672A (zh) * | 2021-05-31 | 2021-08-31 | 东南大学 | 一种针对近阈值时钟偏差优化的时钟树综合构建方法 |
CN116151186A (zh) * | 2023-02-22 | 2023-05-23 | 上海立芯软件科技有限公司 | 一种时序优化方法、装置和电子设备 |
CN116776816A (zh) * | 2023-06-08 | 2023-09-19 | 西南科技大学 | 一种基于推迟合并策略的低功耗时钟树综合实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591411B2 (en) * | 2001-03-15 | 2003-07-08 | International Business Machines Corporation | Apparatus and method for determining buffered steiner trees for complex circuits |
US7392493B2 (en) * | 2004-11-22 | 2008-06-24 | International Business Machines Corporation | Techniques for super fast buffer insertion |
US7243324B2 (en) * | 2005-01-24 | 2007-07-10 | Lsi Corporation | Method of buffer insertion to achieve pin specific delays |
CN103164585B (zh) * | 2013-03-29 | 2016-02-10 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
-
2023
- 2023-10-25 CN CN202311385459.3A patent/CN117113915B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632887A (zh) * | 2020-12-18 | 2021-04-09 | 展讯通信(上海)有限公司 | 存储器的时钟延时调整方法及装置、存储介质、终端 |
CN113326672A (zh) * | 2021-05-31 | 2021-08-31 | 东南大学 | 一种针对近阈值时钟偏差优化的时钟树综合构建方法 |
CN116151186A (zh) * | 2023-02-22 | 2023-05-23 | 上海立芯软件科技有限公司 | 一种时序优化方法、装置和电子设备 |
CN116776816A (zh) * | 2023-06-08 | 2023-09-19 | 西南科技大学 | 一种基于推迟合并策略的低功耗时钟树综合实现方法 |
Non-Patent Citations (2)
Title |
---|
Buffered Steiner Trees for Difficult Instances;Charles J. Alpert 等;IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS;第3-14页 * |
基于有用时序偏差的时序优化方法;李雪艳 等;微型机与应用(第04期);第81-84页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117113915A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chu et al. | FLUTE: Fast lookup table based rectilinear Steiner minimal tree algorithm for VLSI design | |
US20040216072A1 (en) | Porosity aware buffered steiner tree construction | |
US5553000A (en) | Eliminating retiming bottlenecks to improve performance of synchronous sequential VLSI circuits | |
JP2008015872A (ja) | ビット列検索装置、検索方法及びプログラム | |
US6467069B2 (en) | Timing closure and noise avoidance in detailed routing | |
CN102103416B (zh) | 一种汉字输入方法和装置 | |
US5963728A (en) | Method to partition clock sinks into nets | |
US6651232B1 (en) | Method and system for progressive clock tree or mesh construction concurrently with physical design | |
US7840915B2 (en) | Methods and media for forming a bound network | |
CN108984159A (zh) | 一种基于马尔可夫语言模型的缩略词组扩展方法 | |
CN117113915B (zh) | 缓冲器插入方法、装置和电子设备 | |
Kempa et al. | LZ-End parsing in linear time | |
US6834379B2 (en) | Timing path detailer | |
US8976048B2 (en) | Efficient processing of Huffman encoded data | |
CN115982310A (zh) | 一种自带验证功能的链表生成方法及电子设备 | |
CN114330173B (zh) | 边界节点连接关系获取方法、装置、设备和存储介质 | |
US7302377B1 (en) | Accelerated event queue for logic simulation | |
JP6261669B2 (ja) | クエリ校正システムおよび方法 | |
CN104850591A (zh) | 一种数据的转换存储方法及装置 | |
Ejaz | Abelian pattern matching in strings. | |
Albrecht et al. | On the skew-bounded minimum-buffer routing tree problem | |
US7398486B2 (en) | Method and apparatus for performing logical transformations for global routing | |
US20210349687A1 (en) | Optimal metastability-containing sorting via parallel prefix computation | |
CN117151018B (zh) | 缓冲器和反相器的布局方法、装置和电子设备 | |
CN112307266B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |