一种自动生成精确负载时序库的方法

文档序号:6340408阅读:297来源:国知局
专利名称:一种自动生成精确负载时序库的方法
一种自动生成精确负载时序库的方法
技术领域
本发明涉及超大规模集成电路设计、制造技术领域,特别涉及一种自动生成精确 负载时序库的方法。
背景技术
在时序分析过程中,需要使用时序库来描述所有硬核模块的时序信息。一般情况 下,需要定义模块中输入引脚上的负载,用输入引脚上的电容来表示负载。在现有阶段,时序模型主要用来使数据完整,以便可以进行后端的时序流程,包括 综合、自动布局布线和时序分析,通常采用简单的时序模型就可以满足要求。现有的做法是 使用标准库中的单元来大致描述硬核模块的输入负载,比如使用标准库中X2的缓冲单元 或者X12的缓冲单元来描述输入引脚的负载,请参阅图1所示,图1列出了一个典型标准库 所有缓冲单元所能提供的负载电容列表。这种方式需要设计人员对整个电路的每一个硬核 模块的每一个引脚的负载情况进行评估,然后从标准库中选择一个标准单元近似表示这个 引脚的输入负载,这个过程复杂而且不够精确。

发明内容本发明的目的是提供一种自动生成精确负载时序库的方法,其能够从已有的硬核 模块的SPICE网表中快速提取精确时序库。为了实现上述目的,本发明采用如下技术方案一种自动生成精确负载时序库的方法,包括生成模块电路网络各节点的电容特征 文件的步骤S5,该步骤包括S51、建立模块电路拓扑结构,获得模块的SPICE网表中的各个节点的列表;S52、对电路的每一个节点,抽取并进行计算获取该节点的线电容;S53、对电路的每一个节点,抽取并进行计算获取该节点的负载电容;S54、对电路的每一个节点,将S52和S53所获得的电容相加,计算获取该节点的总 电容;S55、对各个节点的电容计算获取各个节点的负载电容和总电容;S56、判断所述网络的各个节点的电容是否计算完毕若是则结束此过程,同时生 成模块电路网络各个节点的电容特征文件;如不是则继续执行S51。所述步骤S53具体包括S531、抽取并进行计算获取该节点的线电容(C_wire);S532、抽取并进行计算获取该节点的自感电容(C_Self);S533、抽取并进行计算获取该节点的门电容(C_gate);S534、抽取并进行计算获取该节点的门电容(C_diod)3 ;S535、抽取并进行计算获取该节点的耦合电容(C_ovlp);S536、将上述步骤S531、S532、S533、S534、S535中提取的各个电容相加,获得该节点的负载电容(C_load)。所述自动生成精确负载时序库的方法还包括以下步骤步骤SO、建立硬核模块列表和各个硬核模块的引脚列表,然后执行步骤Sl ;Si、从模块列表中读取一个模块名,然后执行步骤S2 ;S2、判断步骤Sl所读取模块名是否为空,是则执行步骤S11,否则执行步骤S3 ;S3、读取步骤Sl所读取模块的SPICE网表,然后执行步骤S4 ;S4、判断步骤3读取SPICE网表是否成功,是则执行步骤S5,否则执行步骤SlO程 序错误;S6、从步骤Sl所读取的模块的引脚列表中读取一个引脚名,然后执行步骤S7 ;S7、判断步骤S6读取引脚名是否为空,是则执行步骤S9,否则执行步骤S8 ;S8、从步骤S5生成的该模块电路网络各节点的电容特征文件中提取步骤S6读取 引脚的负载,然后返回执行步骤S6 ;S9、步骤S7读取的引脚名为空时,生成该模块已经提取的引脚的时序模型,然后 返回执行步骤Si ;S10、步骤S4读取失败时结束提取过程,程序错误;S11、调用已经生成的各模块的时序模型,生成所有模块的时序库。所述步骤Sll具体包括S111、生成一个空白的时序库;S112、定义整个硬核电路需要产生时序模型的模块列表;S113、从模块列表中读取一个模块,读取步骤S9生成的该模块的时序模型文件掺 入时序库中;然后继续执行步骤S113读取另一模块;S114、判断各个模块的时序模型是否插入完毕若是则结束此过程,同时生成本发 明的时序库;如不是则继续执行S113。与现有技术相比,本发明具有以下优点一种自动生成精确负载时序库的方法可 以从硬核模块已有的SPICE网表中提取出该硬核模块中每个输入引脚的精确电容来描述 对应输入引脚的负载,生成精确的负载时序库;相对于现有人工评估的方法,精度大为提 高,能够满足大规模集成电路的小型化设计对时序库高精度的要求。

图1是某典型标准库所有缓冲单元所能提供的负载电容列表;在这个标准库中, 提供了单元从Xl到X60的18种缓冲单元,他们分别提供了不同的电容,可以用来近似表示 硬核某一个输入引脚的电容。图2为本发明主体流程图;主体流程图主要由三部分完成电路网络各节点的电 容特征分析,电容参数提取和时序库产生。图3为本发明详细流程图。图4为一个典型的反相器电路及其一个节点电路网络分析后的电容报告图;其中 C_wire表示线上电容;C_self表示自感电容;C_gate表示门电容;C_diod表示节电容;C_ ovlp表示耦合电容;C_load表示负载电容;C_tot表示总电容。图5是使用本方法提取的电容相对于采用缓冲单元来近似表示电容精度提高的情况;可以看出,精度最大可以提高35 %。
具体实施方式下面结合附图对本发明做进一步详细描述。请参阅图2所示,本发明包括以下主要步骤:A、给定硬核模块的电路网络分析对 硬核模块已有的SPICE网表进行分析,生成该硬核的电路网络各个节点的电容特征文件; B、给定硬核模块的电容参数提取定义硬核模块需要抽取的输入引脚;从电容特征文件中 抽取相应的电容作为时序模型中该输入引脚的负载,产生该硬核模块的模块时序模型;C、 包含所有硬核模块的时序库产生定义所需要产生时序模型的硬核列表,调用所产生各个 硬核的时序模型,生成包含所有硬核的时序库。请参阅图3所示,本发明提供的一种自动生成精确负载时序库的方法,具体包括 以下步骤步骤SO、建立硬核模块列表和各个硬核模块的引脚列表,然后执行步骤Sl ;步骤Si、从模块列表中读取一个模块名,然后执行步骤S2 ;步骤S2、判断步骤Sl所读取模块名是否为空,是则执行步骤S11,否则执行步骤 S3 ;步骤S3、读取步骤Sl所读取模块的SPICE网表,然后执行步骤S4 ;步骤S4、判断步骤3读取SPICE网表是否成功,是则执行步骤S5,否则执行步骤 SlO程序错误; 步骤S5、提取步骤S3所读取SPICE网表中各节点的电容特征,生成步骤Sl所读取 模块的电路网络各节点的电容特征文件,然后执行步骤S6 ;步骤S6、从步骤Sl所读取的模块的引脚列表中读取一个引脚名,然后执行步骤 S7 ;步骤S7、判断步骤S6读取引脚名是否为空,是则执行步骤S9,否则执行步骤S8 ;步骤S8、从步骤S5生成的该模块电路网络各节点的电容特征文件中提取步骤S6 读取引脚的负载,然后返回执行步骤S6 ;步骤S9、步骤S7读取的引脚名为空时,生成该模块已经提取的引脚的时序模型, 然后返回执行步骤Sl ;步骤S10、步骤S4读取失败时结束提取过程,程序错误;步骤S11、调用已经生成的各模块的时序模型,生成所有模块的时序库。其中步骤S5具体包括以下步骤S51、建立电路拓扑结构,获得SPICE网表中的各个节点的列表;S52、对电路的每一个节点,抽取并进行计算获取该节点的线电容;S53、对电路的每一个节点,抽取并进行计算获取该节点的负载电容;S54、对电路的每一个节点,将S52和S53所获得的电容相加,计算获取该节点的总 电容(C_tot);S55、对各个节点的电容计算获取各个节点的负载电容和总电容;S56、判断所述网络的各个节点的电容是否计算完毕若是则结束此过程,同时生 成该模块电路网络各个节点的电容特征文件;如不是则继续执行S51。
请参阅图4所示,为典型的反相器电路及其一个节点电路网络分析后的电容报告 图来具体说明步骤S53。步骤S53具体包括S531、抽取并进行计算获取该节点的线电容(C_wire);S532、抽取并进行计算获取该节点的自感电容(C_Self);S533、抽取并进行计算获取该节点的门电容(C_gate);S534、抽取并进行计算获取该节点的门电容(C_diod)3 ;S535、抽取并进行计算获取该节点的耦合电容(C_ovlp);S536、将上述步骤S531、S532、S533、S534、S535中提取的各个电容相加,获得该节 点的负载电容(C_load)。步骤S8具体步骤为在所生成的该硬核电路网络各个节点的电容特征文件中,以 该引脚名为关键字作为节点名,扫描该节点定义找到C_tot所对应的电容值,作为该引脚 的电容特征;步骤Sll具体包括S111、生成一个空白的时序库;S112、定义整个硬核电路需要产生时序模型的模块列表;S113、从模块列表中读取一个模块,读取步骤S9生成的该模块的时序模型文件掺 入时序库中;然后继续执行步骤S113读取另一模块;S114、判断各个模块的时序模型是否插入完毕若是则结束此过程,同时生成本发 明的时序库;如不是则继续执行S113。请参阅图5所示,相对于使用传统方法对输入引脚的负载评估后从图1标准库中 选取近似的负载来描述输入引脚的负载,本发明方法提取真实负载描述输入引脚的负载, 精度提高可达35%。本发明从硬核模块已有的SPICE网表中提取出该硬核模块中每个输入引脚的精 确电容来描述对应输入引脚的负载,生成精确负载的时序库;相对于现有人工评估的方法, 本发明提供的方法可以自动提取时序库,并且精度大为提高,能够满足超大规模集成电路 设计中快速建立高精度负载时序库的要求。
权利要求
1.一种自动生成精确负载时序库的方法,其特征在于,包括生成模块电路网络各节点 的电容特征文件的步骤S5,该步骤包括·551、建立模块电路拓扑结构,获得模块的SPICE网表中的各个节点的列表;·552、对电路的每一个节点,抽取并进行计算获取该节点的线电容;·553、对电路的每一个节点,抽取并进行计算获取该节点的负载电容;·554、对电路的每一个节点,将S52和S53所获得的电容相加,计算获取该节点的总电容;·555、对各个节点的电容计算获取各个节点的负载电容和总电容;·556、判断所述网络的各个节点的电容是否计算完毕若是则结束此过程,同时生成模 块电路网络各个节点的电容特征文件;如不是则继续执行S51。
2.如权利要求1所述一种自动生成精确负载时序库的方法,其特征在于,所述步骤S53 具体包括·5531、抽取并进行计算获取该节点的线电容(C_wire);·5532、抽取并进行计算获取该节点的自感电容(C_self);·5533、抽取并进行计算获取该节点的门电容(C_gate);·5534、抽取并进行计算获取该节点的门电容(C_diod)3;·5535、抽取并进行计算获取该节点的耦合电容(C_ovlp);·5536、将上述步骤S531、S532、S533、S534、S535中提取的各个电容相加,获得该节点的 负载电容(C_load)。
3.如权利要求1或2所述一种自动生成精确负载时序库的方法,其特征在于,所述自动 生成精确负载时序库的方法还包括以下步骤步骤SO、建立硬核模块列表和各个硬核模块的引脚列表,然后执行步骤Sl ;·51、从模块列表中读取一个模块名,然后执行步骤S2;·52、判断步骤Sl所读取模块名是否为空,是则执行步骤S11,否则执行步骤S3;·53、读取步骤Sl所读取模块的SPICE网表,然后执行步骤S4;·54、判断步骤3读取SPICE网表是否成功,是则执行步骤S5,否则执行步骤SlO程序错误;·56、从步骤Sl所读取的模块的引脚列表中读取一个引脚名,然后执行步骤S7;·57、判断步骤S6读取引脚名是否为空,是则执行步骤S9,否则执行步骤S8;·58、从步骤S5生成的该模块电路网络各节点的电容特征文件中提取步骤S6读取引脚 的负载,然后返回执行步骤S6;·59、步骤S7读取的引脚名为空时,生成该模块已经提取的引脚的时序模型,然后返回 执行步骤Sl ;·510、步骤S4读取失败时结束提取过程,程序错误;·511、调用已经生成的各模块的时序模型,生成所有模块的时序库。
4.如权利要求3所述一种自动生成精确负载时序库的方法,其特征在于,所述步骤Sll 具体包括·5111、生成一个空白的时序库;·5112、定义整个硬核电路需要产生时序模型的模块列表;·5113、从模块列表中读取一个模块,读取步骤S9生成的该模块的时序模型文件掺入时 序库中;然后继续执行步骤S113读取另一模块;·5114、判断各个模块的时序模型是否插入完毕若是则结束此过程,同时生 成本发明的 时序库;如不是则继续执行S113。
全文摘要
本发明提供一种自动生成精确负载时序库的方法,包括以下步骤A、对硬核模块已有的SPICE网表进行分析,生成该模块的电路网络各节点的电容特征文件;B、定义硬核模块需要抽取的输入引脚;从电容特征文件中抽取相应的电容作为时序模型中该输入引脚的负载,产生该硬核模块的模块时序模型;C、定义所需要产生时序模型的硬核列表,调用所产生各个硬核的时序模型,生成包含所有硬核的时序库。本发明从各个硬核模块已有的SPICE网表中提取出输入引脚的精确电容来描述其负载,生成该模块的精确的负载时序模型,并生成包含所有硬核模块时序模型的时序库;相对于现有人工评估的方法,本发明提供的方法可以自动提取时序库,并且精度大为提高。
文档编号G06F17/50GK102063538SQ20101061234
公开日2011年5月18日 申请日期2010年12月29日 优先权日2010年12月29日
发明者江喜平, 王斌 申请人:山东华芯半导体有限公司, 西安华芯半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1