一种超大规模集成电路spef寄生参数的并行加速提取方法

文档序号:1861707 发布日期:2021-11-19 浏览:26次 >En<

阅读说明:本技术 一种超大规模集成电路spef寄生参数的并行加速提取方法 (Parallel accelerated extraction method for SPEF parasitic parameters of ultra-large scale integrated circuit ) 是由 谢卓 陈刚 于 2021-10-22 设计创作,主要内容包括:一种超大规模集成电路SPEF寄生参数的并行加速提取方法,包括以下步骤:启动多线程,根据SPEF文件的分支结构,并行将文件划分为基本属性定义部分和参数文件体部分的多个数据块;启动多线程,并行读取每个数据块建立并分析时序图所需要的寄生参数数据;启动多线程,并行对每个数据块进行耦合电容的合并。本发明的超大规模集成电路SPEF寄生参数的并行加速提取方法,通过细粒度的任务划分,达到了非常客观的高度并行,和良好的加速比,提高了静态时序分析在电路设计优化过程中的响应速度。(A method for parallel accelerated extraction of SPEF parasitic parameters of a very large scale integrated circuit comprises the following steps: starting multithreading, and dividing the file into a plurality of data blocks of a basic attribute definition part and a parameter file body part in parallel according to the branch structure of the SPEF file; starting multithreading, reading each data block in parallel, establishing and analyzing parasitic parameter data required by a timing diagram; and starting multithreading, and merging the coupling capacitors of each data block in parallel. The parallel acceleration extraction method of the SPEF parasitic parameters of the ultra-large scale integrated circuit achieves very objective high parallelism and good acceleration ratio through fine-grained task division, and improves the response speed of static timing analysis in the optimization process of circuit design.)

一种超大规模集成电路SPEF寄生参数的并行加速提取方法

技术领域

本发明涉及电子设计自动化(Electronic Design Automation,EDA)技术领域,特别是涉及一种静态时序分析中并行解析超大规模集成电路SPEF文件的加速方法。

背景技术

在集成电路设计的不同阶段,都需要对设计进行时序检查,以保证设计出来的电路能够满足预定的时序要求。静态时序分析(STA)不依赖于激励,可以对电路时序进行快速、准确的测量,用来衡量电路的性能。

静态时序分析采用的是一种穷尽分析方法。它提取整个电路中所有的时序路径,构建时序图,计算信号在路径上的延迟传播,找出违背时序约束的错误。

在计算信号的传播延迟时,静态时序分析需要众多库文件,包含Liberty、SPEF、SDC等。其中SPEF(standard parasitic exchange format,标准寄生交换格式)是集成电路设计流程中EDA工具间传递互连线寄生参数的标准媒介文件。SPEF可以描述多种互连线寄生模型,还建立了信号skew,延迟计算语言和名称映射等功能。集成电路设计者通过特定的寄生参数提取工具提取出当前电路设计网络的SPEF参数,并使用这些参数参与功耗、静态时序分析的计算和评估,综合评价当前设计的可用性和优化方向;事实上,芯片设计者需要多次调整电路设计或者进行多次优化之后,才能满足时序和功耗的相关需求,在此过程中,需要多次提取互连线寄生参数和多次进行静态时序分析,耗时巨大。

在过去的几十年中,硬件计算单元发展迅速,可用的计算资源越来越丰富,可大部分技术仍然停留在单进程(线程)读取,远小于可用的计算资源,造成了大量计算资源的空置和整个静态时序分析的效率低下。

目前硬件可用的计算资源越来越丰富,可大部分技术仍然停留在单进程(线程)读取,远小于可用的计算资源,造成了大量计算资源的空置和整个静态时序分析的效率不足。对于通过多进程(线程)的达到计算优化的方向,研究甚少。

发明内容

为了解决现有技术存在的不足,本发明的目的在于提供一种超大规模集成电路SPEF寄生参数的并行加速提取方法,通过细粒度的任务划分,达到了非常客观的高度并行,和良好的加速比,提高了静态时序分析在电路设计优化过程中的响应速度。

为实现上述目的,本发明提供的超大规模集成电路SPEF寄生参数的并行加速提取方法,包括以下步骤:

启动多线程,根据SPEF文件的分支结构,并行将文件划分为基本属性定义部分和参数文件体部分的多个数据块;

启动多线程,并行读取每个数据块建立并分析时序图所需要的寄生参数数据;

启动多线程,并行对每个数据块进行耦合电容的合并。

进一步地,所述数据块的划分应满足以下条件:

数据块的数量为用户设定的进程数的整数倍或CPU的核心数;

每一个数据块内的Net保持完整且数量接近;

数据块之间互联线最少。

进一步地,所述启动多线程,根据SPEF文件的分支结构,并行将文件划分为基本属性定义部分和参数文件体部分的多个数据块的步骤,还包括,

根据SPEF文件的具体格式,对文件进行粗切割,保证语句信息的完整性和主要元素的完整性;

启动多进程对预分块的信息进行精处理,提取标头的位置信息和NAME_MAP的位置信息。

进一步地,还包括,

根据数据块大小对源文件进行数据块粗定位,保证每个数据块为完整的意义行语句;

根据SPEF文件的块信息,对粗定位得到的数据块进行精定位,获取分级的数据块,分级的原则包括全局依赖的基本属性以及可以高度并行的基本属性。

进一步地,所述启动多线程,并行读取每个数据块建立并分析时序图所需要的寄生参数数据的步骤,还包括,

读取SPEF文件及基本属性定义部分,建立全局可读的基本属性数据存储;

读取NAME_MAP名称映射定义部分,建立全局只读的整数与网络名称对应的映射;

按数据块,分进程分别读取线网的分块标记,完成对互连线寄生参数信息的读取和存储。

进一步地,所述按数据块,分进程分别读取线网的分块标记,完成对互连线寄生参数信息的读取和存储的步骤,还包括,

分析线网信息时,每个线网存储本线网的耦合电容映射到的节点名称和电容大小列表;

当所有线网信息和节点的数据库建立完成后,对预存的耦合电容的映射进行查找和更新。

进一步地,所述启动多线程,并行对每个数据块进行耦合电容的合并的步骤,还包括,对于在建立起来的线网信息进行独立分组,作为细粒度任务进行多进程的并行化,完成耦合电容的序列化存储。

进一步地,还包括,

根据已经完成序列化的线网信息,对不同线网信息中相同的节点名称和序列化数据的映射需求进行抽取合并;

将已经序列化存储的全局线网信息作为只读输入参数,同时记录需要被更新的耦合电容的线网列表,建立耦合电容合并的并行细粒度任务,每个任务进行搜索节点名称与序列化内存的映射,并更新到拥有此耦合电容相应的线网中。

为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的超大规模集成电路SPEF寄生参数的并行加速提取方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的超大规模集成电路SPEF寄生参数的并行加速提取方法的步骤。

本发明的超大规模集成电路SPEF寄生参数的并行加速提取方法,具有以下有益效果:

1)利用分级并行化,充分利用丰富的计算资源,达到SPEF文件的并行高速解析;

2)通过细粒度的任务划分,达到了非常客观的高度并行,和良好的加速比,提高了静态时序分析在电路设计优化过程中的响应速度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的超大规模集成电路SPEF寄生参数的并行加速提取方法流程图;

图2为根据本发明的电路SPEF文件细定位后的部分位置分布示意图;

图3为根据本发明的对电路SPEF文件粗切割后,对第一级再次细定位切分后的标记位置示意图;

图4为根据本发明的电路SPEF文件完成分级分组标记后block示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例1

图1为根据本发明的超大规模集成电路SPEF寄生参数的并行加速提取方法流程图,下面将参考图1,对本发明的超大规模集成电路SPEF寄生参数的并行加速提取方法进行详细描述。

首先,在步骤101,读取SPEF文件,启动多线程(进程),根据SPEF文件的分支结构,并行将文件分为基本属性定义部分(Header)和包括N个数据块(Partition)的参数文件体部分。

SPEF文件使用以往正常的单进程(或线程)读取耗时久,而其中有很多数据块经过特定处理之后可以做到相对独立,进而可以分级并行计算,可以获得很可观的实时运行加速比,达到计算负载均衡。

本发明实施例中,为了保证Partition之间的计算负载均衡,划分Partition需要满足以下几个条件:1)Partition的数量尽量是用户设定的进程数的整数倍,当用户未设定时,默认为CPU的核心数;2)各个Partition里面的Net的数量尽可能接近;3)Partition之间互联线尽可能少;4)各个Partition里的Net保持完整。在满足上述四个条件下划分的N个Partition是最优的。为了获取上述四个条件中的信息,需要预读取整个电路的网表。需要注意的是,最终按照算法划分出来的各个Partition在一般情况下是包含一个或多个Net的数据块,它们的大小长度一般情况下不相同。

本发明实施例中,数据块的划分是根据用户指定或预先设定的经过优化的块大小进行不同数据块的分级位置信息提取,完成之后的结果将会保存一个关于分块信息的位置信息。具体地说,某个进程(或线程)会根据SPEF文件的具体格式,对文件进行第一次粗切割,保证语句信息的完整性和主要元素(譬如Net等)的完整性,进而启动多进程(或线程)对预分块的信息进行精处理,主要包括提取Header的位置信息提取,NAME_MAP的位置信息提取等,包括如下步骤:

1)根据用户指定的或默认的block块大小,前者是用户根据电路特性、SPEF文件的大小等自行定义分块大小,程序结合用户输入进行更细致准确的定级和分块标记;后者是由程序自行根据当前机器的计算资源和存储资源,结合当前SPEF文件的大小,分布特性等,计算出合理的最优资源配置所需要的分级分块大小。由此对源文件进行block块第一次粗定位,基于已定义好的块大小依次对源文件进行切割,如果切割点位置处于语句语义中段,则继续向后寻找语义完整处,并以此作为新的切割点,以上主要保证每个block块为完整的意义行语句。

2)根据SPEF文件的块信息(包括文件及设计的基本属性定义部分、电源线与地线的定义、NAME_MAP名称映射定义、PORTS电路端口定义、线网定义等),对第一次粗定位得到的block块进行一次精定位,获取分级的block块,分级的原则主要为全局依赖的基本属性(包括文件设计的基本属性等)以及可以高度并行的基本属性(包括线网定义等)。

详细地,如图2所示,首先根据粗定位的分块标记进行多进程(线程)查找“*END”关键字,并且对文件首地址到第一个“*END”出现的位置作为全局依赖模块的结束位置,后续将会对此全局依赖模块进行更细致的查找和序列化存储;其次,对于SPEF文件剩余部分,按照查找到的“END”的位置依次进行多进程(线程)开启,并进行线网序列化。

如图3所示,详细地,本示例中将原SPEF进行了粗细粒度的分级分块切分标记,分为了Header部分、NAME_MAP部分和PORTS部分,此三者为互不依赖的第一级;而D_NET的序列化部分作为第二级,基于前文提到的合理的分块大小,在不破坏线网的完整性的前提下,完成多进程(线程)分块标记,最终形成的文件分级分块定位位置结构图如图4所示。

在步骤102,启动多线程(进程),并行读取每个Partition建立和分析时序图所需要的寄生参数数据。

本发明实施例中,寄生参数数据,包括,Net的capacitance,resistor,与Net相关Input port和Output pin,Node的capacitance,resistor以及不同Node之间的耦合电容等。

本发明实施例中,根据得到的分级的block块标记进行多进程(线程)并行,每个进程(或线程),同样不需要读取完整的设计数据,而是根据精定位中得到的切割点,每个进程(或线程)负责一个Partition,只读取当前Partition计算所需要的一部分数据,包括以下步骤:

1)读取SPEF文件及设计的基本属性定义部分(Header)。建立全局可读的基本属性数据存储,主要包含DIVIDER、DELIMITER、BUS_DELIMITER等。

2)读取NAME_MAP名称映射定义部分(若有),建立全局只读的整数与Net名称对应的映射。

3)按block块,分进程(线程)分别读取线网的分块标记,完成对互连线寄生参数信息的读取和存储。主要包含逻辑网表格式*D_NET(distributed nets)和*R_NET(reducednets)以及物理线网*D_PNET(distributed physical nets)和*R_PNET(reduced physicalnets)中的线网信息,包含所连端口名称、属性,线网分布电容,分布电阻和分布电容等。

优选地,3)按block块,分进程(线程)分别读取线网的分块标记,完成对互连线寄生参数信息的读取和存储的步骤,可具体执行为:

第一步,分析线网信息时,每个线网仅负责存储本线网的耦合电容映射到的节点名称和电容大小列表。

第二步,当所有线网信息完成建立之后,节点的数据库建立完毕后,对预存的耦合电容的映射进行查找和更新。

本发明实施例中,对于线网信息进行读取分析时,会涉及到线网间的耦合电容,这一部分会涉及多进程(线程)数据交互,违背多进程(线程)的设计原则。将耦合电容的映射分成两步执行,让原本高度耦合的耦合电容存储顺利解耦,完成了多进程(线程)的加速,并且并未增加程序的冗余负载。

在步骤103,启动多个进程(或线程),并行对每个Partition进行耦合电容的合并。

本发明实施例中,对于在建立起来的线网信息进行独立分组,作为细粒度任务进行多进程(线程)的并行化,完成耦合电容的序列化存储。具体地,对于在建立起来的线网信息进行独立分组,作为细粒度任务进行多进程(线程)的并行化,完成耦合电容的序列化存储的步骤,可具体执行为:

1)根据步骤102中已经完成序列化的线网信息,对不同线网信息中相同的节点名称和序列化数据的映射需求进行抽取合并,这样整个任务的数量最多为此线网信息中的耦合电容总量,计算数据总体可控,不会随block的大小变化而变。

2)将已经序列化存储的全局线网信息作为只读输入参数,同时记录需要被更新的耦合电容的线网列表,建立耦合电容合并的并行细粒度任务,每个任务仅负责搜索节点名称与序列化内存的映射,并更新到拥有此耦合电容相应的线网中。

至此,所有线网信息已经完成了序列化存储,建立了完整的数据库,可以供静态时序分析查询。

本发明提出了一种超大规模集成电路SPEF寄生参数的并行加速提取方法,通过将一个复杂和庞大的电路寄生参数文件,根据其特性分多级对文件进行分块,以达到分级并行的高并发处理,并在全局依赖的模块处理结束,完成同步之后,在对第二级的局部独立模块进行多进程(线程)并行;对已初步完成的各个Net的相互独立的序列化存储的基础上,对可能存在的不同Net间的耦合电容进行合并。合并过程中采用了以每个Net为最小粒度,将所有与之有关联的耦合电容节点记录在Net上,实现高度并行。最终完成寄生参数数据库的建立和分析。

本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的超大规模集成电路SPEF寄生参数的并行加速提取方法的步骤。

本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的超大规模集成电路SPEF寄生参数的并行加速提取方法的步骤。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于寄存器灵活时序库的电路时序优化方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类