CN117151018B - 缓冲器和反相器的布局方法、装置和电子设备 - Google Patents
缓冲器和反相器的布局方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117151018B CN117151018B CN202311385457.4A CN202311385457A CN117151018B CN 117151018 B CN117151018 B CN 117151018B CN 202311385457 A CN202311385457 A CN 202311385457A CN 117151018 B CN117151018 B CN 117151018B
- Authority
- CN
- China
- Prior art keywords
- solution
- optimized
- layout
- solution set
- gate
- 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 127
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012216 screening Methods 0.000 claims abstract description 38
- 239000003990 capacitor Substances 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 8
- 238000005457 optimization Methods 0.000 description 17
- 238000003780 insertion Methods 0.000 description 16
- 230000037431 insertion Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000013138 pruning Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000008901 benefit Effects 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
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 238000004519 manufacturing process Methods 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
- 238000012545 processing Methods 0.000 description 1
- 238000003786 synthesis reaction 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
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供了一种缓冲器和反相器的布局方法、装置和电子设备,其中,该方法包括:获取待优化驱动门对应的每个负载门的解,根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集,从待优化驱动门的解集中确定满足预设筛选条件的目标解,根据目标解以及多个待插入位置的解集,分别确定多个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或反相器或导线的布局。本方案通过在待插入位置进行缓冲器或者反相器或者导线的布局,进一步提高了电路延迟优化效果。
Description
技术领域
本申请涉及数字集成电路技术领域,具体而言,涉及一种缓冲器和反相器的布局方法、装置和电子设备。
背景技术
在数字集成电路布局布线后,待优化驱动门的总负载电容包括驱动的导线电容和负载门的输入端电容之和,通常需要插入缓冲器,以放大信号,从而驱动大电容导线和负载门,从而减小待优化驱动门的逻辑门延迟和互连导线延迟。
目前,通常是基于Van Ginneken Dynamic Programing(VGDP)算法,在使用缓冲器进行优化的情况下,使用动态规划快速求得最优缓冲器插入解,并通过对VGDP算法进行改进提高算法速度。
然而,上述优化方式只能插入非反向型的缓冲器,无法进一步改进电路延时。
发明内容
有鉴于此,本申请实施例提供了一种缓冲器和反相器的布局方法、装置和电子设备,以进一步改进电路延时。
第一方面,本申请实施例提供了一种缓冲器和反相器的布局方法,包括:
获取待优化驱动门对应的每个负载门的解,所述每个负载门的解包括:所述每个负载门的输入电容、所述每个负载门的信号所需时间以及所述每个负载门的相位指示信息,所述每个负载门的信号所需时间为在满足预设时序约束时,所述每个负载门之后的电路要求所述每个负载门的最迟信号到达时间,所述每个负载门的相位指示信息用于指示传输至所述每个负载门的信号相位与待优化驱动门的信号相位是否一致;
根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,每个待插入位置的解集中的每个解包括:所述每个待插入位置的输入电容、所述每个待插入位置的信号所需时间以及所述每个待插入位置的相位指示信息,所述每个待插入位置的解集中的每个解对应所述每个待插入位置的一个布局方案,所述一个布局方案用于指示在所述每个待插入位置布局缓冲器或反相器或导线,所述预设解传播方向为所述每个负载门到所述待优化驱动门的方向;
根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,所述待优化驱动门的解集中每个解包括:所述待优化驱动门的输入电容、所述待优化驱动门的信号所需时间以及所述待优化驱动门的相位指示信息;
从所述待优化驱动门的解集中确定满足预设筛选条件的目标解;
根据所述目标解以及所述多个待插入位置的解集,分别确定所述多个待插入位置的目标布局方案,以采用所述目标布局方案在所述多个待插入位置进行缓冲器或反相器或导线的布局。
在一可选的实施方式中,所述根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,包括:
根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,所述多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案;
其中,所述预设解传播方向上第一个待插入位置的前一位置的解为:所述每个负载门的解,所述预设解传播方向上其它待插入位置的前一位置的解为:所述其它待插入位置的前一待插入位置的解。
在一可选的实施方式中,若目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案;
所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
根据所述目标待插入位置的最后一级布局单元的多种布局方案,以及所述目标待插入位置的前一位置的解,确定所述目标待插入位置的最后一级布局单元的解集;
根据所述最后一级布局单元的解集以及所述目标待插入位置的其它级布局单元的多种布局方案,逐级确定所述其它级布局单元的解集;
根据所述最后一级布局单元的解集以及所述其它级布局单元的解集,确定所述目标待插入位置的解集,所述目标待插入位置的解集包括:所述最后一级布局单元的解集以及所述其它级布局单元的解集。
在一可选的实施方式中,所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
根据所述多种布局方案,以及所述前一位置的解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,所述根据所述多种布局方案,以及所述前一位置的解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集,包括:
根据所述预设筛选条件,分别对所述前一位置的正相位解集中的每个解和负相位解集中的每个解进行筛选,得到所述前一位置的筛选后的正相位解集和筛选后的负相位解集;
根据所述多种布局方案、所述筛选后的正相位解集中的每个解以及所述筛选后的负相位解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,所述根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,包括:
根据所述最后一个待插入位置的解集,确定所述待优化驱动门的扇出端的解集,所述扇出端的解集包括:所述扇出端的正相位解集;
获取在所述扇出端的正相位解集中每个解下所述待优化驱动门的延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容以及所述待优化驱动门的延迟,确定所述待优化驱动门的扇入端的解集。
在一可选的实施方式中,所述根据所述扇出端的正相位解集、所述待优化驱动门的电容以及所述待优化驱动门的延迟,确定所述待优化驱动门的扇入端的解集,包括:
获取所述扇出端对应的导线延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容、所述待优化驱动门的延迟以及所述每个解对应的导线延迟,确定所述待优化驱动门的扇入端的解集。
在一可选的实施方式中,所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
获取所述每个待插入位置对应的导线延迟;
根据所述每个待插入位置的多种布局方案、所述前一位置的解,以及所述每个待插入位置对应的导线延迟,确定所述每个待插入位置的解集。
第二方面,本申请实施例还提供了一种缓冲器和反相器的布局装置,包括:
获取模块,用于获取待优化驱动门对应的每个负载门的解,所述每个负载门的解包括:所述每个负载门的输入电容、所述每个负载门的信号所需时间以及所述每个负载门的相位指示信息,所述每个负载门的信号所需时间为在满足预设时序约束时,所述每个负载门之后的电路要求所述每个负载门的最迟信号到达时间,所述每个负载门的相位指示信息用于指示传输至所述每个负载门的信号相位与待优化驱动门的信号相位是否一致;
确定模块,用于根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,每个待插入位置的解集中的每个解包括:所述每个待插入位置的输入电容、信号传输至所述每个待插入位置的信号所需时间以及所述每个待插入位置的相位指示信息,所述每个待插入位置的解集中的每个解对应所述每个待插入位置的一个缓冲器布局方案或者一个反相器布局方案,所述预设解传播方向为所述每个负载门到所述待优化驱动门的方向;
所述确定模块,还用于根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,所述待优化驱动门的解集中每个解包括:所述待优化驱动门的输入电容、所述待优化驱动门的信号所需时间以及所述待优化驱动门的相位指示信息;
所述确定模块,还用于从所述待优化驱动门的解集中确定满足预设筛选条件的目标解;
所述确定模块,还用于根据所述目标解以及所述多个待插入位置的解集,分别确定所述多个待插入位置的目标布局方案,以采用所述目标布局方案在所述多个待插入位置进行缓冲器或反相器的布局。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,所述多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案;
其中,所述预设解传播方向上第一个待插入位置的前一位置的解为:所述每个负载门的解,所述预设解传播方向上其它待插入位置的前一位置的解为:所述其它待插入位置的前一待插入位置的解。
在一可选的实施方式中,若目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案;所述确定模块,具体用于:
根据所述目标待插入位置的最后一级布局单元的多种布局方案,以及所述目标待插入位置的前一位置的解,确定所述目标待插入位置的最后一级布局单元的解集;
根据所述最后一级布局单元的解集以及所述目标待插入位置的其它级布局单元的多种布局方案,逐级确定所述其它级布局单元的解集;
根据所述最后一级布局单元的解集以及所述其它级布局单元的解集,确定所述目标待插入位置的解集,所述目标待插入位置的解集包括:所述最后一级布局单元的解集以及所述其它级布局单元的解集。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述多种布局方案,以及所述前一位置的解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述预设筛选条件,分别对所述前一位置的正相位解集中的每个解和负相位解集中的每个解进行筛选,得到所述前一位置的筛选后的正相位解集和筛选后的负相位解集;
根据所述多种布局方案、所述筛选后的正相位解集中的每个解以及所述筛选后的负相位解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,所述确定模块,具体用于:
根据所述最后一个待插入位置的解集,确定所述待优化驱动门的扇出端的解集,所述扇出端的解集包括:所述扇出端的正相位解集;
获取在所述扇出端的正相位解集中每个解下所述待优化驱动门的延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容以及所述待优化驱动门的延迟,确定所述待优化驱动门的扇入端的解集。
在一可选的实施方式中,所述确定模块,具体用于:
获取所述扇出端对应的导线延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容、所述待优化驱动门的延迟以及所述每个解对应的导线延迟,确定所述待优化驱动门的解集。
在一可选的实施方式中,所述确定模块,具体用于:
获取所述每个待插入位置对应的导线延迟;
根据所述每个待插入位置的多种布局方案、所述预设解传播方向上所述每个待插入位置的前一位置的解,以及所述每个待插入位置对应的导线延迟,确定所述每个待插入位置的解集。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的缓冲器和反相器的布局方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的缓冲器和反相器的布局方法。
本申请提供了一种缓冲器和反相器的布局方法、装置和电子设备,其中,该方法包括:获取待优化驱动门对应的每个负载门的解,根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集,从待优化驱动门的解集中确定满足预设筛选条件的目标解,根据目标解以及多个待插入位置的解集,分别确定多个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或反相器或导线的布局。本方案通过在待插入位置进行缓冲器或者反相器的布局,进一步提高了电路延迟优化效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图一;
图2为本申请实施例提供的一种数字集成电路的示意图;
图3为本申请实施例提供的另一种数字集成电路的示意图;
图4为本申请实施例提供的针对斯坦纳节点的解合并的示意图;
图5为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图二;
图6为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图三;
图7为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图四;
图8为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图五;
图9为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图六;
图10为本申请实施例提供的缓冲器和反相器的布局装置的结构示意图;
图11为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,数字集成电路的实现过程通常为:数字电路设计文件 ->逻辑综合 ->逻辑优化 ->布局布线 ->电路优化 ->版图实现,其中,数字集成电路设计文件指的是以verilog代码为代表的硬件描述语言所构成的RTL设计文件,逻辑综合与优化指的是将RTL设计文件转化为相互连接的逻辑门电路,并对逻辑结构进行优化以改善性能,布局布线指的是将综合后的逻辑门电路以及互连线按照预设的面积范围进行放置,电路优化指的是通过调整逻辑门尺寸、插入缓冲器等操作改善电路性能,版图实现指的是将布局布线后的逻辑门电路转化为版图文件,以便后续的电路生产。
其中,在电路优化阶段,通过需要插入缓冲器等改善电路性能,而现有技术在使用缓冲器进行电路优化时,只能插入非反向型缓冲器,无法在相位正确的前提下使用反相器进行互联优化,其中,反相器在面积、延迟、驱动能力等方面更具优势。
基于此,本申请在电路优化阶段的缓冲器插入过程中,提供了一种缓冲器和反相器的布局方法,基于VGDP算法通过动态规划自底向上遍历,以确定待优化驱动门的解,并根据该解确定数字集成电路中待插入位置的目标布局方案,以将目标布局方案应用到数字集成电路中实现缓冲器或者反相器或者导线的布局,相比于只使用缓冲器的布局方案,进一步提高了电路延迟优化效果,改善电路延迟。
图1为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图一,本实施例的执行主体可以为电子设备。
如图1所示,该方法可以包括:
S101、获取待优化驱动门对应的每个负载门的解。
其中,待优化驱动门可以为待进行延迟优化的数字集成电路中的待优化驱动门,数字集成电路包括:待优化驱动门和待优化驱动门对应的至少一个负载门,待优化驱动门的输出为负载门的输入,待优化驱动门和负载门通过导线连接,以将待优化驱动门的输出信号传输至负载门。
作为一种示例,图2为本申请实施例提供的一种数字集成电路的示意图,如图2所示,包括一个待优化驱动门以及四个负载门,待优化驱动门和负载门通过导线连接。
每个负载门的解包括:每个负载门的输入电容、每个负载门的信号所需时间以及每个负载门的相位指示信息,每个负载门的相位指示信息用于指示传输至每个负载门的信号相位与待优化驱动门的信号相位是否一致。
其中,每个负载门的输入电容可以理解为每个负载门的电容,每个负载门的信号所需时间为在满足预设时序约束时,每个负载门之后的电路要求每个负载门的最迟信号到达时间,其中,预设时序约束可以理解为数字集成电路的时序约束,即在满足预设时序约束的情况下,负载门之后的电路要求负载门的信号到达时间不能晚于该信号所需时间。
传输至每个负载门的信号相位可以理解为每个负载门的输入信号的相位,待优化驱动门的信号相位可以理解为待优化驱动门的输出信号的相位,若每个负载门的信号相位和待优化驱动门的信号相位一致,则相位指示信息可以为正相位,表示为+,若每个负载门的信号相位和待优化驱动门的信号相位不一致,则相位指示信息可以为负相位,表示为-。
S102、根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集。
其中,预设解传播方向可以为从每个负载门到待优化驱动门的方向,即针对数字集成电路的自底向上的方向,如图2所标识的解传播方向。
待插入位置为预先设定的待优化驱动门和其对应的每个负载门之间的位置,根据每个负载门的解,沿着预设解传播方向,采用VDGP算法,依次确定多个待插入位置的解集,每个待插入位置的解集包括:每个待插入位置的多个解。
每个待插入位置的解集中的每个解对应每个待插入位置的一个布局方案,该布局方案用于指示在待插入位置布局缓冲器或反相器或导线,其中,在待插入位置布局缓冲器表示在该位置插入一个缓冲器,在待插入位置布局反相器表示在该位置插入一个反相器,在待插入位置布局导线表示在该位置部署导线,即不插入缓冲器和反相器。
其中,每个待插入位置的解集中的每个解包括:每个待插入位置的输入电容、每个待插入位置的信号所需时间以及每个待插入位置的相位指示信息。
每个待插入位置的输入电容、信号传输至每个待插入位置的信号所需时间以及每个待插入位置的相位指示信息均与该位置的布局方案相关。在待插入位置插入缓冲器或者反相器时,待插入位置的输入电容为缓冲器或反相器的电容,在待插入位置不插入缓冲器或者反相器时,待插入位置的输入电容为后一位置的输入电容,其中,后一位置为负载门所在位置时,待插入位置的输入电容为负载门的输入电容,后一位置为其它待插入位置时,待插入位置的输入电容为其它待插入位置的输入电容。
每个待插入位置的信号所需时间为在满足预设时序约束时,每个待插入位置之后的电路要求每个待插入位置的最迟信号到达时间,即在满足预设时序约束的情况下,待插入位置之后的电路要求待插入位置的信号到达时间不能晚于该信号所需时间。
其中,每个待插入位置的信号所需时间为在每个待插入位置的后一位置的信号所需时间的基础上,基于每个待插入位置所插入缓冲器或反相器或导线的自身延迟、以及每个待插入位置的负载电容的延迟确定的,每个待插入位置的负载电容为每个待插入位置的输出端连接的导线电容和待插入位置的前一个位置的输入电容之和。
每个待插入位置的相位指示信息用于指示传输至每个待插入位置的信号相位与待优化驱动门的信号相位是否一致,若每个待插入位置的信号相位和待优化驱动门的信号相位一致,则相位指示信息可以为正相位,表示为+,若每个待插入位置的信号相位和待优化驱动门的信号相位不一致,则相位指示信息可以为负相位,表示为-。
其中,在插入缓冲器时,待插入位置的相位指示信息指示待插入位置的信号相位与待优化驱动门的信号相位一致,在插入反相器时,待插入位置的相位指示信息指示待插入位置的信号相位与待优化驱动门的信号相位不一致。
在一些实施例中,单元库中具有n个反相器inv_1-inv_n,以及m个缓冲器buf_1-buf_m,在单元库中名字不同的缓冲器视为不同的缓冲器,名字不同的反相器视为不同的反相器,如buf_x1、clkbuf_x1视为两个不同缓冲器,buf_x1、buf_x2视为两个不同缓冲器。
因此,在沿着预设解传播方向确定每个待插入位置的解集时,可以遍历单元库中的n个反相器和m个缓冲器,以得到每个待插入位置的解集,其中,待插入位置的解集中每个解对应一个布局方案,一个缓冲器对应一个缓冲器布局方案,一个反相器对应一个反相器布局方案,所以,n个反相器对应n个反相器布局方案,m个缓冲器对应m个缓冲器布局方案,基于n个反相器布局方案和m个缓冲器布局方案,根据负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集。
S103、根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集。
根据最后一个待插入位置的解集,采用VDGP算法确定待优化驱动门的解集,其中,待优化驱动门的解集中每个解包括:待优化驱动门的输入电容、信号传输至待优化驱动门的信号所需时间以及待优化驱动门的相位指示信息。
待优化驱动门的输入电容可以理解为待优化驱动门的电容,信号传输至待优化驱动门的信号所需时间为在满足数字集成电路的时序约束时,信号最迟到达待优化驱动门的时间,信号传输至待优化驱动门的信号所需时间为考虑待优化驱动门的自身延迟、以及待优化驱动门的负载电容的延迟确定的,待优化驱动门的负载电容为待优化驱动门的输出端连接导线的电容和待优化驱动门直接连接的待插入位置的输入电容之和。
在一些实施例中,待优化驱动门直接和最后一个待插入位置连接,则最后一个待插入位置的解集为待优化驱动门的扇出端的解集,再根据扇出端的解集,确定待优化驱动门的解集,待优化驱动门的解集为待优化驱动门的扇入端的解集,扇入端为输入端,扇出端为输出端。
S104、从待优化驱动门的解集中确定满足预设筛选条件的目标解。
对待优化驱动门的解集进行筛选,以从中确定满足预设筛选条件的目标解,目标解可以为待优化驱动门的最优解,预设筛选条件例如可以为在输入电容相同的情况下,选取信号所需时间最大的解,以及,在信号所需时间相同的情况下,选取输入电容最小的解。
例如,待优化驱动门的解集包括:v17(2,5)+、v18(2,4)+,分别表示待优化驱动门的输入电容为2,信号所需时间为5,待优化驱动门的输入信号相位与待优化驱动门的输出信号相位一致、待优化驱动门的输入电容为2,信号所需时间为4,待优化驱动门的输入信号相位与待优化驱动门的输出信号相位一致,满足预设筛选条件的最优解为v17(2,5)+,也就是说,在输入电容相同的情况下,信号所需时间越大则留给信号越多的传输时间。
S105、根据目标解以及多个待插入位置的解集,确定多个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或者反相器或导线的布局。
根据目标解,从多个待插入位置的解集中确定与目标解对应的、多个待插入位置的解,进而根据每个待插入位置的解,确定每个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或者反相器的布局,驱动单元包括缓冲器或反相器,也就是说,在待插入位置插入缓冲器、或者反相器或者不插入(即部署导线)。
值得说明的是,待优化驱动门的目标解是根据多个待插入位置的解集中对应的解确定的,因此,可根据待优化驱动门的目标解,反推出每个待插入位置的解。
在本实施例的缓冲器和反相器的布局方法中,通过获取待优化驱动门对应的每个负载门的解,根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集,从待优化驱动门的解集中确定满足预设筛选条件的目标解,根据目标解以及多个待插入位置的解集,分别确定多个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或反相器或导线的布局。通过在待插入位置进行缓冲器或者反相器或者导线的布局,从而能够在电路延迟优化中混合使用不同布局方案,即更加灵活地插入缓冲器或反相器来优化延迟,进一步提高了电路延迟优化效果,改善电路延迟。
在一可选的实施方式中,步骤S102,根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,可以包括:
根据每个待插入位置的多种布局方案,以及预设解传播方向上每个待插入位置的前一位置的解,确定每个待插入位置的解集。
其中,每个待插入位置具有多种布局方案,多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案,如:m个缓冲器对应的m个缓冲器布局方案,n个反相器对应的n个反相器布局方案,部署导线表征导线布局方案。
一个布局方案对应待插入位置的解集中的一个解,预设解传播方向上每个待插入位置的前一位置为每个待插入位置的前一个待插入位置。
预设解传播方向上第一个待插入位置的前一位置的解为:每个负载门的解,采用VDGP算法,根据每个负载门的解,以及第一个待插入位置的多种布局方案,可以分别确定第一个待插入位置的多个解,第一个待插入位置的解集包括:第一个待插入位置的多个解。
其中,第一个待插入位置的解包括:第一个插入位置的输入电容、第一个插入位置的信号所需时间以及第一个插入位置的相位指示信息,其中,可根据负载门的解,确定负载门的输入电容,将负载门的输入电容作为一个负载电容,并将第一个待插入位置的输出端连接导线的电容作为另一个负载电容,相加得到第一个待插入位置的负载电容,根据第一个待插入位置的负载电容,确定第一个待插入位置的延迟,再将负载门的信号所需时间与第一个待插入位置的延迟的差值作为第一个待插入位置的信号所需时间。
然后采用VDGP算法,根据第一个待插入位置的多个解,以及预设解传播方向上第二个待插入位置的多种布局方案,分别确定第二待插入位置的多个解,进而得到第二个待插入位置的解集,依次遍历预设解传播方向上的全部待插入位置,直至得到全部待插入位置的解集。
值得说明的是,确定每个待插入位置的信号所需时间的方式与上述确定第一个待插入位置的信号所需时间的方式类似,都是根据上一个待插入位置的解,确定一个负载电容,并将输出端直接连接的导线的电容作为另一个负载电容,相加得到该位置的负载电容,然后根据负载电容计算延迟,根据上一个待插入位置的信号所需时间减去该延迟得到该位置的信号所需时间。
另外,对于数字集成电路而言,存在斯坦纳节点的情况下,还可以合并对应的子树解,作为一种示例,图3为本申请实施例提供的另一种数字集成电路的示意图,如图3所示,负载门1的解为v1(3,7)+,表示负载门1的输入电容为3,信号所需时间为7,负载门1的信号相位与待优化驱动门的信号相位一致;负载门2的解为v2(3,10)+,表示负载门2的输入电容为3,信号所需时间为10,负载门2的信号相位与待优化驱动门的信号相位一致;负载门3的解为v3(4,12)+,表示负载门3的输入电容为4,信号所需时间为12,负载门3的信号相位与待优化驱动门的信号相位一致。
待插入位置1为负载门1相邻的位置,待插入位置2为负载门2相邻的位置,待插入位置3为负载门3相邻的位置,根据负载门1的解,以及待插入位置1的多种布局方案,确定待插入位置1的解集,多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案,以单元库中的一种缓冲器布局方案(即一个缓冲器)、一种反相器布局方案(即一个反相器)以及导线布局方案为例,在该位置部署导线时,待插入位置1的解为v1(3,7)+,若在该位置插入缓冲器时,待插入位置1的解为v4:buf→v1(3,7)+,表示该位置的输入电容为3,信号所需时间为7,信号相位与待优化驱动门的信号相位一致,若在该位置插入反相器时,待插入位置1的解为v5:inv→v1(1,6)-,表示该位置的输入电容为1,信号所需时间为6,信号相位与待优化驱动门的信号相位一致,即待插入位置1的解集包括:v1(3,7)+、v4:buf→v1(3,7)+、v5:inv→v1(1,6)-。
类似地,待插入位置2的解集包括:v2(3,10)+、v6:buf→v2(2,9)+、v7:inv→v2(1,9)+;待插入位置3的解集包括:v3(4,12)+、v8:buf→v3(2,10)+、v9:inv→v3(1,11)-。
图中A点、B点为斯坦纳节点,针对斯坦纳节点A,将子树A和子树B的相同相位的解进行枚举合并,并进行剪枝(即筛选),得到斯坦纳节点A处的解集,其中,子树A的解为待插入位置2的解,子树B的解为待插入位置3的解,将正相位解进行枚举合并,得到的解是正相位,将负相位解进行枚举合并,得到的解是负相位。
在合并时将待插入位置2的解和待插入位置3的解中的输入电容相加,并取待插入位置2的解和待插入位置3的解中最小的一个信号所需时间,合并后得到解集包括:v2+v3(7,10)+、v10: v2+v8(5,10)+、v11: v6+v8(4,9)+、v12: v7+v9(2,9)-,再对合并后得到解集进行剪枝,按照预设筛选条件,即在输入电容相同的情况下,剪掉信号所需时间最小的解,或者,在信号所需时间相同的情况下,剪掉输入电容最大的解,可以看出,将v2+v3(7,10)+剪掉,这样斯坦纳节点A处的解集包括:v10: v2+v8(5,10)+、v11: v6+v8(4,9)+、v12:v7+v9(2,9)-。
然后根据斯坦纳节点A的解集,以及待插入位置4的多种布局方案,确定待插入位置4的解集,即:v13: inv→v12 (1,7)+、v10: (5,10)+、v11: (4,9)+、v15: buf→v11 (2,7)+、v12: (2,9)-、v14: inv→v11(1,6)-、v16: buf→v12 (2,7)-,通过剪枝将v15: buf→v11 (2,7)+、v16: buf→v12 (2,7)-,则待插入位置4的解集包括:v13: inv→v12 (1,7)+、v10: (5,10)+、v11: (4,9)+、v12: (2,9)-、v14: inv→v11(1,6)-。
类似地,针对斯坦纳节点B,将子树C的解和子树D的解,即待插入位置4的解和待插入位置1的解进行枚举合并,并进行剪枝,得到斯坦纳节点B的解集包括:v17: v1+v13 (4,7)+、v18: v4+v13 (3,5)+、v19: v5+v14 (3,6)-。
在该示例中,根据斯坦纳节点B为待优化驱动门的扇出端,由于待优化驱动门的扇出端的信号为正相位,因此将v19: v5+v14 (3,6)-移除,根据v17: v1+v13 (4,7)+、v18:v4+v13 (3,5)+,可分别确定一负载电容,再结合待优化驱动门的扇出端直接连接的导线的电容计算另一个负载电容,相加得到待优化驱动门的负载电容,根据待优化驱动门的负载电容确定待优化驱动门的延迟,进而确定待优化驱动门的信号所需时间,从而得到的待优化驱动门的解集包括:v17(2,5)+、v18(2,4)+,再从中确定最优解为v17(2,5)+。
也就是说,通过自底向上的动态规划,在负载门、待插入位置、斯坦纳节点计算正负相位解集,最后在待优化驱动门的扇出端得到最终的解集,通过计算正相位解集中各个解在待优化驱动门输入端的信号所需时间,取信号所需时间最大的解作为互连优化的最优插入解,即待优化驱动门的目标解。
作为一种示例,图4为本申请实施例提供的针对斯坦纳节点的解合并的示意图,如图4所示,以子树A和子树B为例,子树A的解集的正相位解:p1;p2,负相位解:n1;n2;子树B的解集的正相位解:p3;p4,负相位解:n3;n4,则斯坦纳节点解集的正相位解:p1+ p3;p1+p4;p2+ p3;p2+p4;负相位解:n1+ n3;n1+n4;n2+ n3;n2+n4。
剪枝策略:对于解A,若存在解B,使得PA=PB,ReqA<ReqB且CA>CB,则认为解A为次优解,从解集中移除,其中,P、Req、C分别表示相位、数据所需时间、输入电容。
该改进方法不但可以避免不正确的剪枝,还可以避免不必要的不同相位解相位之间的数据比较。
图5为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图二,如图5所示,在一可选的实施方式中,若目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案,根据每个待插入位置的多种布局方案,以及预设解传播方向上每个待插入位置的前一位置的解,确定每个待插入位置的解集,包括:
S201、根据目标待插入位置的最后一级布局单元的多种布局方案,以及目标待插入位置的前一位置的解,确定目标待插入位置的最后一级布局单元的解集。
目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案,至少两级布局单元可以理解为在待插入位置布局有至少两级布局单元,且每级布局单元具有多种布局方案,前一级布局单元的输出为后一级布局单元的输入,即至少两级布局单元串联连接。
若目标插入位置为预设解传播方向上的第一个待插入位置,则目标插入位置的前一位置为负载门的位置,若目标插入位置为非第一个待插入位置,则目标插入位置的前一位置为预设解传播方向上,目标插入位置的前一个待插入位置。
对于最后一级布局单元的每种布局方案,根据目标插入位置的前一位置的解,可确定前一位置的输入电容为第一负载电容,并将目标插入位置的输出端连接的导线的电容作为第二负载电容,将第一负载电容和第二负载电容相加,得到目标插入位置的负载电容,根据目标插入位置的负载电容计算目标插入位置的延迟,根据目标插入位置的前一位置的信号所需时间减去目标插入位置的延迟,得到目标插入位置的最后一级布局单元的信号所需时间。
根据最后一级布局单元的输入电容以及信号所需时间,可得到目标待插入位置的最后一级布局单元的解,最后一级布局单元的解包括:最后一级布局单元的输入电容、最后一级布局单元的信号所需时间以及最后一级布局单元的相位指示信息。
相应地,对于最后一级布局单元的多种布局方案,即遍历m个缓冲器和n个反相器,以及前一位置的每个解,分别执行上述步骤,可得到最后一级布局单元的多个解,最后一级布局单元的解集包括:最后一级布局单元的多个解。
S202、根据最后一级布局单元的解集以及目标待插入位置的其它级布局单元的多种布局方案,逐级确定其它级布局单元的解集。
S203、根据最后一级布局单元的解集以及其它级布局单元的解集,确定目标待插入位置的解集。
对于最后一级布局单元的解集中的每个解,与步骤S201中基于前一位置的解以及最后一级布局单元的多种布局方案确定最后一级布局单元的解集的方式类似,依次逐级确定目标待插入位置的其它级布局单元的解,并确定目标待插入位置的解包括:最后一级布局单元的解以及其它级布局单元的解。
相应地,遍历m个缓冲器和n个反相器,以及最后一级布局单元的解集中的每个解,逐次得到其它级布局单元的解集,目标待插入位置的解集包括:最后一级布局单元的解集和其它级布局单元的解集。
值得说明的是,每级布局单元的解集包括:正相位解和负相位解。
在本实施例的缓冲器和反相器的布局方法中,通过插入多级布局单元扩大了解的空间,提高了待优化驱动门的解质量,进一步提高了电路延迟优化效果。
在一可选的实施方式中,根据每个待插入位置的多种布局方案,以及预设解传播方向上每个待插入位置的前一位置的解,确定每个待插入位置的解集,可以包括:
根据多种布局方案,以及前一位置的解集中的每个解,确定每个待插入位置的正相位解集和负相位解集。
其中,多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案,缓冲器布局方案表示在该位置插入缓冲器,反相器布局方案表示在该位置插入反相器,导线布局方案表示在该位置不插入缓冲器和反相器。
一种缓冲器布局方案表示插入一种缓冲器,不同缓冲器布局方案插入的缓冲器不同,类似地,一种反相器布局方案表示插入一种反相器,不同反相器布局方案插入的反相器不同,因此可遍历单元库中的m个缓冲器和n个反相器,以得到多种缓冲器布局方案以及多种反相器布局方案布局方案。
其中,若前一位置为负载门,则前一位置的解为正相位解,若前一位置为其它待插入位置,则前一位置的解包括:其它待插入位置的正相位解和负相位解,正相位解为与待优化驱动门的信号相位一致的解,负相位解为与待优化驱动门的信号相位不一致的解。
遍历前一位置的解集中的每个解,根据多种布局方案以及前一位置的解集中的每个解,确定每个待插入位置的正相位解集和负相位解集,其中,前一位置的负相位解与待插入位置的多种缓冲器布局方案结合起来,可得到待插入位置的正相位解集,即正相位:buf->正相位解;前一位置的正相位解与待插入位置的多种缓冲器布局方案结合起来,可得到待插入位置的正相位解集,即正相位:inv ->负相位解。
类似地,前一位置的负相位解与待插入位置的多种反相器布局方案结合起来,可得到待插入位置的正相位解集,即正相位:inv ->负相位解;前一位置的正相位解与待插入位置的多种反相器布局方案结合起来,可得到待插入位置的负相位解集,即负相位:inv ->正相位解。
图6为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图三,如图6所示,在一可选的实施方式中,根据多种布局方案,以及前一位置的解集中的每个解,确定每个待插入位置的正相位解集和负相位解集,包括:
S301、根据预设筛选条件,分别对前一位置的正相位解集中的每个解和负相位解集中的每个解进行筛选,得到前一位置的筛选后的正相位解集和筛选后的负相位解集。
其中,预设筛选条件为在输入电容相同的情况下,选信号所需时间最大的解,以及,在信号所需时间相同的情况下,选输入电容最小的解。
根据预设筛选条件,对前一位置的正相位解集中的每个解进行筛选,以得到前一位置的筛选后的正相位解集,以及根据预设筛选条件,对前一位置的负相位解集中的每个解进行筛选,以得到前一位置的筛选后的负相位解集。
S302、根据多种布局方案、筛选后的正相位解集中的每个解以及筛选后的负相位解集中的每个解,确定每个待插入位置的正相位解集和负相位解集。
分别遍历前一位置的筛选后的正相位筛选后的正相位解集中的每个解以及筛选后的负相位解集中的每个解,根据每个待插入位置的多种布局方案、前一位置的筛选后的正相位筛选后的正相位解集中的每个解,以及筛选后的负相位解集中的每个解,确定每个待插入位置的正相位解集和负相位解集。
在本实施例的缓冲器和反相器的布局方法中,通过构建正负相位解集,在进行互连优化中能够混合使用缓冲器和反相器,可以更加灵活地插入,扩大了解空间,提高了电路延迟优化效果,并且通过预设筛选条件对解集进行筛选,减少了后续解的计算量,提高了计算效率。
图7为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图四,如图7所示,在一可选的实施方式中,步骤S103,根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集,包括:
S401、根据最后一个待插入位置的解集,确定待优化驱动门的扇出端的解集。
根据最后一个待插入位置的解集,确定待优化驱动门的扇出端的解集,预设解传播方向上可能存在至少一个传播路径,在存在一个传播路径时,最后一个待插入位置和待优化驱动门的扇出端连接,则待优化驱动门的扇出端的解集为最后一个待插入位置的解集,待优化驱动门的扇出端为待优化驱动门的输出端。
在一些实施例中,若存在多个传播路径,参见图3,存在两条传播路径,每个传播路径上均有一个最后一个待插入位置,则待优化驱动门的扇出端的解集为斯坦纳节点的解集,如图3中斯坦纳节点B的解集。
其中,扇出端的解集包括:扇出端的正相位解集。
S402、获取在扇出端的正相位解集中每个解下待优化驱动门的延迟。
扇出端的正相位解集中每个解下待优化驱动门的延迟为待优化驱动门的自身延迟、以及该解对应的负载电容的延迟,负载电容为待优化驱动门的输出端连接的导线电容和待优化驱动门连接的前一个待插入位置的输入电容之和,参见图3,待优化驱动门的负载电容为待优化驱动门到待插入位置1的导线电容、到待插入位置2的导线电容、待插入位置1的输入电容以及待插入位置2的输入电容之和。
根据待优化驱动门的负载电容,可计算在扇出端的正相位解集中每个解下待优化驱动门的延迟。
S403、根据扇出端的正相位解集、待优化驱动门的电容以及待优化驱动门的延迟,确定待优化驱动门的扇入端的解集。
根据待优化驱动门的延迟,可计算信号到达待优化驱动门的信号所需时间,其中,待优化驱动门的信号所需时间为扇出端的正相位解集中的每个解对应的信号所需时间与待优化驱动门的延迟之差。
待优化驱动门的扇入端的解集中每个解包括:待优化驱动门的电容、待优化驱动门的信号所需时间以及待优化驱动门的相位指示信息,待优化驱动门的相位指示信息用于指示待优化驱动门的信号与待优化驱动门的信号相位一致,表示为+。
在本实施例的缓冲器和反相器的布局方法中,在待优化驱动门处选择正相位解集,从而确保电路相位的正确性。
图8为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图五,如图8所示,在一可选的实施方式中,步骤S403,根据扇出端的正相位解集、待优化驱动门的电容以及待优化驱动门的延迟,确定待优化驱动门的扇入端的解,可以包括:
S501、获取扇出端对应的导线延迟。
扇出端的正相位解集中每个解对应的导线延迟为扇出端连接的导线的延迟,其中,可以根据根据导线电容、导线电阻以及导线长度,计算该导线延迟。
S502、根据扇出端的正相位解集、待优化驱动门的电容、待优化驱动门的延迟以及扇出端对应的导线延迟,确定待优化驱动门的扇入端的解集。
根据待优化驱动门的延迟以及扇出端对应的导线延迟,可计算待优化驱动门的信号所需时间,待优化驱动门的扇入端的解包括:待优化驱动门的电容、待优化驱动门的信号所需时间以及待优化驱动门的相位指示信息。
待优化驱动门的信号所需时间为扇出端的正相位解集中的每个解对应的信号所需时间减去待优化驱动门的延迟以及扇出端对应的导线延迟。
在本实施例的缓冲器和反相器的布局方法中,在计算待优化驱动门的扇入端的解集时,通过考虑扇出端对应的导线延迟,提高了解集准确度,进一步提高了电路延迟优化效果。
图9为本申请实施例提供的缓冲器和反相器的布局方法的流程示意图六,如图9所示,在一可选的实施方式中,根据每个待插入位置的多种布局方案,以及预设解传播方向上每个待插入位置的前一位置的解,依次确定每个待插入位置的解集,包括:
S601、获取每个待插入位置对应的导线延迟。
每个待插入位置对应的导线延迟为每个待插入位置与其后一个待插入位置之间的导线所导致的延迟,其中,每个待插入位置与其后一个待插入位置之间的导线为在预设解传播方向的相反方向上、每个待插入位置直接连接的导线。
其中,可以根据获取导线电容、导线电阻以及导线长度,计算每个待插入位置对应的导线延迟。
S602、根据每个待插入位置的多种布局方案、前一位置的解,以及每个待插入位置对应的导线延迟,确定每个待插入位置的解集。
在确定每个待插入位置的信号所需时间时,将每个待插入位置对应的导线延迟作为考虑因素,每个待插入位置的信号所需时间为前一个位置的解中的信号所需时间减去每个待插入位置的延迟以及每个待插入位置对应的导线延迟。
根据每个待插入位置的信号所需时间、每个待插入位置的相位指示信息以及每个待插入位置的输入电容,确定每个待插入位置的解,每个待插入位置的解集包括:每个待插入位置的多个解。
在本实施例的缓冲器和反相器的布局方法中,在计算待插入位置的解集时,通过考虑导线延迟,提高了解集准确度,进一步提高了电路延迟优化效果。
下面结合一个具体实施例对本申请的技术方案进行说明。
采用正负相位解集的方式实现反相器、缓冲器的混合插入,具体包括:
步骤1:在叶子节点(即负载门)处,每个叶子结点视为一个正相位子树。
步骤2:在待插入位置,子树的正相位解集记为P0,负相位解集记为N0,该待插入位置的解构建方法为:
(1)导线电容、导线电阻、导线长度,计算导线延迟,并更新P0、N0中的输入电容以及信号所需时间。
(2)从单元库取出某个反相器inv_i,与P0中的解分别组合为新解,计算待插入位置的信号所需时间,并进行筛选,取信号所需时间最大的解作为待插入位置的负相位解。
(3)从单元库取出某个反相器inv_i,与N0中的解分别组合为新解,计算待插入位置的信号所需时间,并进行筛选,取信号所需时间最大的解作为待插入位置的正相位解。
(4)从单元库取出某个缓冲器buf_i,与P0中的解分别组合为新解,计算待插入位置的信号所需时间,并进行筛选,取信号所需时间最大的解作为待插入位置的正相位解。
(5)从单元库取出某个缓冲器buf_i,与N0中的解分别组合为新解,计算待插入位置的信号所需时间,并进行筛选,取信号所需时间最大的解作为待插入位置的负相位解。
(6)遍历单元库中的全部缓冲器和反相器,重复步骤(1)-(5),将构建的全部待插入位置的解按照相位保存于正相位解集和负相位解集中,正相位解集记为P1,负相位解集记为N1。
(7)为了扩大解空间,在P1、N1的基础上,再次插入一个缓冲器或反相器,即两级驱动单元,重复步骤(2)-(5),以构建buffer->inv、buffer->buffer、inv->buffer、inv->inv-的结构,将得到解集保存为P2、N2。buffer->inv表示缓冲器和反相器串联,其它类似。
(8)将P0、P1、P2保存为P3,N0、N1、N2保存为N3,其中,P0和N0为没有缓冲器、反相器的解集,P1和P2为最后一级缓冲器或反相器的解集,P1和P2为前一级缓冲器或反相器的解集。
(9)根据预设筛选条件,对P3、N3进行剪枝。
值得说明的是,将两种相位的解分别保存于正负相位解集中,也可以通过将两种相位的解保存在一个解集中并为每个解增加一个相位识别位来替代。
综上所述,在待插入位置处,本方案可以构造出 8种结构的解,分别为:
(1) 正相位:inv ->负相位解;
(2) 负相位:inv ->正相位解;
(3) 正相位:buf ->正相位解;
(4) 负相位:buf->负相位解。
(5) 正相位:inv ->inv ->正相位解;
(6) 负相位:inv ->inv->负相位解;
(7) 正相位:inv ->buf ->负相位解;
(8) 负相位:inv ->buf->正相位解。
其中 inv 为反相器,buf 为缓冲器。
在斯坦纳节点处进行子树合并时,依照对应相位进行合并,从而实现相位的正确传播,在待优化驱动门处选择正相位解集,从而确保电路相位的正确性;实现在布局布线后的互连优化中,混合插入反相器、缓冲器,相比于现有的只能使用缓冲器的优化方法,能够利用反相器得到更好的优化效果。
基于同一发明构思,本申请实施例中还提供了与电路布局方法对应的电路布局装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述电路布局方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图10为本申请实施例提供的缓冲器和反相器的布局装置的结构示意图,该装置可以集成在电子设备中。
如图10所示,该装置可以包括:
获取模块701,用于获取待优化驱动门对应的每个负载门的解,每个负载门的解包括:每个负载门的输入电容、每个负载门的信号所需时间以及每个负载门的相位指示信息,每个负载门的信号所需时间为在满足预设时序约束时,每个负载门之后的电路要求每个负载门的最迟信号到达时间,每个负载门的相位指示信息用于指示传输至每个负载门的信号相位与待优化驱动门的信号相位是否一致;
确定模块702,用于根据每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,每个待插入位置的解集中的每个解包括:每个待插入位置的输入电容、信号传输至每个待插入位置的信号所需时间以及每个待插入位置的相位指示信息,每个待插入位置的解集中的每个解对应每个待插入位置的一个缓冲器布局方案或者一个反相器布局方案,预设解传播方向为每个负载门到待优化驱动门的方向;
确定模块702,还用于根据预设解传播方向上最后一个待插入位置的解集,确定待优化驱动门的解集,待优化驱动门的解集中每个解包括:待优化驱动门的输入电容、待优化驱动门的信号所需时间以及待优化驱动门的相位指示信息;
确定模块702,还用于从待优化驱动门的解集中确定满足预设筛选条件的目标解;
确定模块702,还用于根据目标解以及多个待插入位置的解集,分别确定多个待插入位置的目标布局方案,以采用目标布局方案在多个待插入位置进行缓冲器或反相器的布局。
在一可选的实施方式中,确定模块702,具体用于:
根据每个待插入位置的多种布局方案,以及预设解传播方向上每个待插入位置的前一位置的解,确定每个待插入位置的解集,多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案;
其中,预设解传播方向上第一个待插入位置的前一位置的解为:每个负载门的解,预设解传播方向上其它待插入位置的前一位置的解为:其它待插入位置的前一待插入位置的解。
在一可选的实施方式中,若目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案;确定模块702,具体用于:
根据目标待插入位置的最后一级布局单元的多种布局方案,以及目标待插入位置的前一位置的解,确定目标待插入位置的最后一级布局单元的解集;
根据最后一级布局单元的解集以及目标待插入位置的其它级布局单元的多种布局方案,逐级确定其它级布局单元的解集;
根据最后一级布局单元的解集以及其它级布局单元的解集,确定目标待插入位置的解集,目标待插入位置的解集包括:最后一级布局单元的解集以及其它级布局单元的解集。
在一可选的实施方式中,确定模块702,具体用于:
根据多种布局方案,以及前一位置的解集中的每个解,确定每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,确定模块702,具体用于:
根据预设筛选条件,分别对前一位置的正相位解集中的每个解和负相位解集中的每个解进行筛选,得到前一位置的筛选后的正相位解集和筛选后的负相位解集;
根据多种布局方案、筛选后的正相位解集中的每个解以及筛选后的负相位解集中的每个解,确定每个待插入位置的正相位解集和负相位解集。
在一可选的实施方式中,确定模块702,具体用于:
根据最后一个待插入位置的解集,确定待优化驱动门的扇出端的解集,扇出端的解集包括:扇出端的正相位解集;
获取在扇出端的正相位解集中每个解下待优化驱动门的延迟;
根据扇出端的正相位解集、待优化驱动门的电容以及待优化驱动门的延迟,确定待优化驱动门的扇入端的解集。
在一可选的实施方式中,确定模块702,具体用于:
获取扇出端对应的导线延迟;
根据扇出端的正相位解集、待优化驱动门的电容、待优化驱动门的延迟以及每个解对应的导线延迟,确定待优化驱动门的解集。
在一可选的实施方式中,确定模块702,具体用于:
获取每个待插入位置对应的导线延迟;
根据每个待插入位置的多种布局方案、预设解传播方向上每个待插入位置的前一位置的解,以及每个待插入位置对应的导线延迟,确定每个待插入位置的解集。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
图11为本申请实施例提供的电子设备的结构示意图,如图11所示,该设备包括:处理器801、存储器802和总线803,存储器802存储有处理器801可执行的机器可读指令,当电子设备运行时,处理器801与存储器802之间通过总线803通信,处理器801执行机器可读指令,以执行上述方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,处理器执行上述方法。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种缓冲器和反相器的布局方法,其特征在于,包括:
获取待优化驱动门对应的每个负载门的解,所述每个负载门的解包括:所述每个负载门的输入电容、所述每个负载门的信号所需时间以及所述每个负载门的相位指示信息,所述每个负载门的信号所需时间为在满足预设时序约束时,所述每个负载门之后的电路要求所述每个负载门的最迟信号到达时间,所述每个负载门的相位指示信息用于指示传输至所述每个负载门的信号相位与所述待优化驱动门的信号相位是否一致;
根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,每个待插入位置的解集中的每个解包括:所述每个待插入位置的输入电容、所述每个待插入位置的信号所需时间以及所述每个待插入位置的相位指示信息,所述每个待插入位置的解集中的每个解对应所述每个待插入位置的一个布局方案,所述一个布局方案用于指示在所述每个待插入位置布局缓冲器或反相器或导线,所述预设解传播方向为所述每个负载门到所述待优化驱动门的方向;
根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,所述待优化驱动门的解集中每个解包括:所述待优化驱动门的输入电容、所述待优化驱动门的信号所需时间以及所述待优化驱动门的相位指示信息;
从所述待优化驱动门的解集中确定满足预设筛选条件的目标解;
根据所述目标解以及所述多个待插入位置的解集,分别确定所述多个待插入位置的目标布局方案,以采用所述目标布局方案在所述多个待插入位置进行缓冲器或反相器或导线的布局。
2.根据权利要求1所述的方法,其特征在于,所述根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,包括:
根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,所述多种布局方案包括:多种缓冲器布局方案、多种反相器布局方案以及导线布局方案;
其中,所述预设解传播方向上第一个待插入位置的前一位置的解为:所述每个负载门的解,所述预设解传播方向上其它待插入位置的前一位置的解为:所述其它待插入位置的前一待插入位置的解。
3.根据权利要求2所述的方法,其特征在于,若目标待插入位置的多种布局方案包括:至少两级布局单元的多种布局方案;
所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
根据所述目标待插入位置的最后一级布局单元的多种布局方案,以及所述目标待插入位置的前一位置的解,确定所述目标待插入位置的最后一级布局单元的解集;
根据所述最后一级布局单元的解集以及所述目标待插入位置的其它级布局单元的多种布局方案,逐级确定所述其它级布局单元的解集;
根据所述最后一级布局单元的解集以及所述其它级布局单元的解集,确定所述目标待插入位置的解集,所述目标待插入位置的解集包括:所述最后一级布局单元的解集以及所述其它级布局单元的解集。
4.根据权利要求2所述的方法,其特征在于,所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
根据所述多种布局方案,以及所述前一位置的解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多种布局方案,以及所述前一位置的解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集,包括:
根据所述预设筛选条件,分别对所述前一位置的正相位解集中的每个解和负相位解集中的每个解进行筛选,得到所述前一位置的筛选后的正相位解集和筛选后的负相位解集;
根据所述多种布局方案、所述筛选后的正相位解集中的每个解以及所述筛选后的负相位解集中的每个解,确定所述每个待插入位置的正相位解集和负相位解集。
6.根据权利要求1所述的方法,其特征在于,所述根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,包括:
根据所述最后一个待插入位置的解集,确定所述待优化驱动门的扇出端的解集,所述扇出端的解集包括:所述扇出端的正相位解集;
获取在所述扇出端的正相位解集中每个解下所述待优化驱动门的延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容以及所述待优化驱动门的延迟,确定所述待优化驱动门的扇入端的解集。
7.根据权利要求6所述的方法,其特征在于,所述根据所述扇出端的正相位解集、所述待优化驱动门的电容以及所述待优化驱动门的延迟,确定所述待优化驱动门的扇入端的解集,包括:
获取所述扇出端对应的导线延迟;
根据所述扇出端的正相位解集、所述待优化驱动门的电容、所述待优化驱动门的延迟以及所述每个解对应的导线延迟,确定所述待优化驱动门的扇入端的解集。
8.根据权利要求2所述的方法,其特征在于,所述根据所述每个待插入位置的多种布局方案,以及所述预设解传播方向上所述每个待插入位置的前一位置的解,确定所述每个待插入位置的解集,包括:
获取所述每个待插入位置对应的导线延迟;
根据所述每个待插入位置的多种布局方案、所述前一位置的解,以及所述每个待插入位置对应的导线延迟,确定所述每个待插入位置的解集。
9.一种缓冲器和反相器的布局装置,其特征在于,包括:
获取模块,用于获取待优化驱动门对应的每个负载门的解,所述每个负载门的解包括:所述每个负载门的输入电容、所述每个负载门的信号所需时间以及所述每个负载门的相位指示信息,所述每个负载门的信号所需时间为在满足预设时序约束时,所述每个负载门之后的电路要求所述每个负载门的最迟信号到达时间,所述每个负载门的相位指示信息用于指示传输至所述每个负载门的信号相位与待优化驱动门的信号相位是否一致;
确定模块,用于根据所述每个负载门的解,沿着预设解传播方向,依次确定多个待插入位置的解集,每个待插入位置的解集中的每个解包括:所述每个待插入位置的输入电容、信号传输至所述每个待插入位置的信号所需时间以及所述每个待插入位置的相位指示信息,所述每个待插入位置的解集中的每个解对应所述每个待插入位置的一个缓冲器布局方案或者一个反相器布局方案,所述预设解传播方向为所述每个负载门到所述待优化驱动门的方向;
所述确定模块,还用于根据所述预设解传播方向上最后一个待插入位置的解集,确定所述待优化驱动门的解集,所述待优化驱动门的解集中每个解包括:所述待优化驱动门的输入电容、所述待优化驱动门的信号所需时间以及所述待优化驱动门的相位指示信息;
所述确定模块,还用于从所述待优化驱动门的解集中确定满足预设筛选条件的目标解;
所述确定模块,还用于根据所述目标解以及所述多个待插入位置的解集,分别确定所述多个待插入位置的目标布局方案,以采用所述目标布局方案在所述多个待插入位置进行缓冲器或反相器的布局。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行权利要求1至8任一项所述的缓冲器和反相器的布局方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311385457.4A CN117151018B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器和反相器的布局方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311385457.4A CN117151018B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器和反相器的布局方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117151018A CN117151018A (zh) | 2023-12-01 |
CN117151018B true CN117151018B (zh) | 2024-03-12 |
Family
ID=88897048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311385457.4A Active CN117151018B (zh) | 2023-10-25 | 2023-10-25 | 缓冲器和反相器的布局方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117151018B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790354A (zh) * | 2004-12-14 | 2006-06-21 | 富士通株式会社 | 布局驱动、面积约束的设计优化 |
CN114303150A (zh) * | 2019-09-10 | 2022-04-08 | 美商新思科技有限公司 | 集成电路设计中的机器学习驱动的预测 |
CN115758975A (zh) * | 2022-11-04 | 2023-03-07 | 飞腾信息技术有限公司 | 版图布局优化方法、装置、设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004327864A (ja) * | 2003-04-25 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 半導体集積回路の低消費電力化設計方法 |
-
2023
- 2023-10-25 CN CN202311385457.4A patent/CN117151018B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790354A (zh) * | 2004-12-14 | 2006-06-21 | 富士通株式会社 | 布局驱动、面积约束的设计优化 |
CN114303150A (zh) * | 2019-09-10 | 2022-04-08 | 美商新思科技有限公司 | 集成电路设计中的机器学习驱动的预测 |
CN115758975A (zh) * | 2022-11-04 | 2023-03-07 | 飞腾信息技术有限公司 | 版图布局优化方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117151018A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101687081B1 (ko) | 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치 | |
EP0744704B1 (en) | Logic synthesis method for designing a semiconductor integrated circuit | |
CN101149765A (zh) | 高可靠性数字集成电路设计方法 | |
JP4673203B2 (ja) | レイアウトドリブンの領域の制約された設計の最適化を行う論理プログラム、方法及びシステム | |
US8677299B1 (en) | Latch clustering with proximity to local clock buffers | |
EP3382894B1 (en) | Hold-time compensation using free metal segments | |
US8595683B1 (en) | Generating user clocks for a prototyping environment | |
JP3172211B2 (ja) | 回路合成システム | |
EP0525460A2 (en) | Method and apparatus for optimizing a logic network | |
EP1506503A2 (en) | Method and apparatus for optimizing distributed multiplexed bus interconnects | |
Chen et al. | Routability-driven flip-flop merging process for clock power reduction | |
US6925628B2 (en) | High-level synthesis method | |
CN117151018B (zh) | 缓冲器和反相器的布局方法、装置和电子设备 | |
CN112100971A (zh) | 构建用于集成电路的分层时钟树的方法 | |
CN117131834A (zh) | 芯片设计重组方法、电子设备和介质 | |
CN112580279B (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
Moon et al. | Design and allocation of loosely coupled multi-bit flip-flops for power reduction in post-placement optimization | |
CN114781319A (zh) | 基于金属线的时序修复方法、设备及介质 | |
US6691293B2 (en) | Layout instrument for semiconductor integrated circuits, layout method for semiconductor integrated circuits and recording medium that stores a program for determining layout of semiconductor integrated circuits | |
CN104678815A (zh) | Fpga芯片的接口结构及配置方法 | |
US20070195757A1 (en) | Time multiplexing logic in physical design domain for multiple instantiation | |
US7840930B2 (en) | Signal connection program, method, and device of hierarchical logic circuit | |
JP2002158285A (ja) | 回路修正方法およびコンピュータプログラム | |
CN109902836A (zh) | 人工智能模块的故障容错方法及系统芯片 | |
CN117151015B (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 |