生成门级网表和标准延迟文件及检查和纠正伪路径的方法技术

技术编号:8387223 阅读:308 留言:0更新日期:2013-03-07 07:53
本发明专利技术提供一种生成门级网表和标准延迟文件及检查和纠正伪路径的方法。所述生成门级网表和标准延迟文件的方法包括:获得所有伪路径;针对每个伪路径,执行下述操作:得到伪路径上每个对象的所有扇入和扇出,对每个对象分析扇入和扇出上是否已经存在延迟点,如果存在延迟点,则不再对该伪路径定义延迟点;如果所述扇入和扇出上不存在延迟点,则根据所述扇入和扇出之间的时序弧的类型定义延迟点;对伪路径的延迟点定义延迟值并写出标准延迟文件和修改的门级网表。通过对延迟点添加延迟,以生成标准延迟文件和修改的门级网表以检查伪路径的设定的正确性,从而可以在布局布线之前发现伪路径中严重的问题,以节省布局布线的生产周期并避免重新进行布局布线。

【技术实现步骤摘要】
生成门级网表和标准延迟文件及检查和纠正伪路径的方法
本专利技术涉及片上系统(SOC)后端设计,更具体地讲,涉及在SOC后端设计过程中在前仿真阶段生成标准延迟文件和修改的门级网表以及使用该标准延迟文件和修改的门级网表检查和纠正伪路径的方法。
技术介绍
图1是示出传统的片上系统(SOC)后端设计流程的主要步骤。在步骤S1010,对用硬件描述语言(HDL)编写的数字逻辑电路进行综合以生成门级网表。在该步骤中,可根据时序约束等条件,完成可综合的寄存器传输级描述到综合库单元之间的映射,从而将数字逻辑电路的硬件描述语言描述转化为门级网表。在步骤S1020,对在步骤S1010生成的门级网表进行SDC(synopsysdesignconstraint)清理(clean-up),从而获得较为优化的门级网表。下面将针对图2来详细描述SDC清理。应该注意的是,这里使用SDC只是示例性的,本专利技术可使用其他集成电路逻辑综合软件进行清理工作,为了描述简便,下面的描述依然采用SDC。在步骤S1030,按照同步电路设计的要求,根据优化的门级网表的拓扑结构对整个设计进行前静态时序分析。在对整个设计进行静态时序分析的过程中,基于同步电路的设计要求并根据门级网表的拓扑结构计算并检查电路中每一个存储器或锁存器的建立(setup)时间和保持(hold)时间,以及其他基于路径的时延要求是否得到满足。静态时序分析是集成电路开发流程中非常重要的一环。通过静态时序分析,一方面可以了解到关键路径的信息,分析关键路径的时序;另一方面,还可以了解到电路节点的扇出情况和容性负载的大小。在步骤S1040,对设计的电路进行布局布线前的功能仿真,也即前仿真。功能仿真是设计验证的主要形式,从活动的内容来分,功能仿真包括测试覆盖率检查和功能一致性检查。代码测试覆盖率检查常用电子设计自动化(EDA)工具来帮助完成。可以统计当一组测试用例作用于设计时各种各样的测试覆盖情况,利用这些数据,设计者就可以用测试用例对设计的覆盖情况有所了解,同时还可以确认设计还有哪些功能没有得到测试。这样一方面可以帮助对测试功能覆盖情况有一个量的认识,而另一方面帮助发现冗余逻辑和设计错误;而功能一致性检查的仿真手段有基于波形的仿真、基于对象转换的仿真、基于行为级模型的比较仿真、软硬件协同仿真和硬件加速仿真,这里一般使用软硬件协同仿真。在步骤S1050,执行布局和布线的步骤。布局被认为是整个后端流程最关键的一步,布局首先是在满足电路时序要求的条件下得到尽可能小的实现面积。其次,布局也是把整个设计划分成多个便于控制的模块。布局的内容包括把单元或宏模块摆放到合适的位置,其目的是为了最大限度地减小连线的RC延迟和布线的寄生电容效应。此外,良好的布局还可以减小芯片面积和降低布线时出现拥塞现象的几率。布线分为预布线和详细布线两个阶段。进行预布线时版图工具把整个芯片划分为多个较小的区域,布线器只是估算各个小区域的信号之间最短的连线长度,并以此来计算连线延迟,这个阶段并没有生成真正的版图连线。在详细布线阶段,布线器根据预布线的结果和最新的时序约束条件生成真正的版图连线。但是如果预布线的时间比布局运行的时间还要长,这就意味着布局的结果是失败的,这时候就需要重新布局以减少布线的拥塞。布局布线完成之后,对根据布局布线的结果产生的电路网表分别在步骤S1060和S1070进行后静态时序分析和后仿真,从而有效地去除任何建立(setup)和保持(hold)冲突。在步骤S1080,根据后静态时序分析和后仿真的结果,进行布局和布线的工程变更(ECO,engineeringchangeorder)。具体地讲,就是根据静态时序分析的结果以及后仿真发现的问题或者是其他方面的改变,要求对芯片在布局布线阶段进行时序或者功能上的修正。图1中,在SDC清理阶段,我们需要改正SDC所有的语法以及由于SDC不完备带来的与功能相关的问题,这主要依靠工程师对SDC进行检查并使用相关EDA工具对设计和SDC进行分析来实现,然后才能开始前静态时序分析、前仿真、布局和布线、后静态时序分析、后仿真和工程变更。如果SDC有与伪路径(falsepath)相关的错误,并且在SDC清理阶段没有被发现,那么只能通过后仿真来发现,并在工程变更时改正。这将大大影响布局布线(layout)的生产周期。图2示出了传统的SDC清理方法。在图2中,一般通过借助EDA工具来清理一致性问题、时钟问题和语法问题;而由工程师来清理功能问题和以及一部分语法问题。虽然在SDC清理阶段,可以通过一些专门的SDCEDA工具发现SDC的一些语法问题或者定义缺陷问题,但是对于SDC本身功能的正确性的问题,这些EDA工具是不能发现的。SDC是工程师基于对芯片功能模块的理解完成的,由于各种原因,不可避免会产生一些错误,需要依靠人工去检查和发现这些问题,可事实证明有些错误是很难依靠人工检查出来。通常这些错误对布局布线的生产周期影响很大,特别是伪路径定义的错误。由于错误地定义了伪路径,在布局和布线时,布局布线工具将不会关心相互之间具有伪路径的单元(cell)(也即下文中所指的对象(object)),这些单元的位置以及它们之间的时序不会被优化。由此而带来的问题,并不能通过静态时序分析发现;另外,前仿真阶段也不能发现,因为前仿真用的标准延迟文件(SDF)是不准确的。这个潜在的问题只能在后仿真阶段通过分析波形失配的原因才能找到。这个分析过程通常包括多次的后仿真验证以及多次的工程变更,这将大大增加布局布线的生产周期。
技术实现思路
由于传统的设计流程中,如果伪路径的设定出现了问题,布局布线工具将不会对路径上单元的位置和时序进行优化,由此而带来的实际时序问题是无法通过静态时序分析来发现的,只能在后期的后仿真中通过分析失配的波形发现。这将大大影响芯片设计的生产周期,更有可能造成不可挽回的后果。本专利技术对包含from、to或through语句的伪路径(即下面所述的纯伪路径)进行分析,并通过对作为伪路径的数据路径上的伪时序弧(falsetimingarc)定义上升(rise)和下降(false)延迟,继而生成SDF文件和修改的门级网表,然后用这个SDF文件和修改的门级网表进行仿真以检查伪路径的设定的正确性。这样就可以在布局布线之前发现伪路径中严重的问题,虽然这样的检查会花费一些时间,但是如果错误的伪路径问题在后仿真中发现的话,耗费的时间将会更多,甚至可能需要重新进行布局布线。对rise或fall选项的伪路径,考虑到布局布线工具并不是完全放弃优化以及这种误设的伪路径影响的有限性,本专利技术不做检查分析。根据本专利技术的一方面,提供了一种在前仿真阶段生成标准延迟文件和修改的门级网表的方法,所述方法包括:获得所有伪路径;针对所有伪路径中的每一个伪路径,执行下述操作:得到该伪路径上的每个对象的所有扇入和扇出,分析所述扇入和扇出上是否已经存在延迟点,如果存在延迟点,则不再对该伪路径定义延迟点;如果所述扇入和扇出上不存在延迟点,则根据所述扇入和扇出之间的时序弧的类型定义延迟点;对找到延迟点的伪路径定义延迟值并写出标准延迟文件和修改的门级网表。根据本专利技术的另一方面,根据所述扇入和扇出之间的时序弧的类型定义延迟点的步骤可包括:判断所述扇入和扇本文档来自技高网
...
生成门级网表和标准延迟文件及检查和纠正伪路径的方法

【技术保护点】
一种在前仿真阶段生成标准延迟文件和修改的门级网表的方法,所述方法包括:获得所有伪路径;针对所有伪路径中的每一个伪路径,执行下述操作:得到该伪路径上的每个对象的所有扇入和扇出,分析所述扇入和扇出上是否已经存在延迟点,如果存在延迟点,则不再对该伪路径定义延迟点;如果所述扇入和扇出上不存在延迟点,则根据所述扇入和扇出之间的时序弧的类型定义延迟点;对找到延迟点的伪路径定义延迟值并写出标准延迟文件和修改的门级网表。

【技术特征摘要】
1.一种在前仿真阶段生成标准延迟文件和修改的门级网表的方法,所述方法包括:获得所有伪路径;针对所有伪路径中的每一个伪路径,执行下述操作:得到该伪路径上的每个对象的所有扇入和扇出,分析所述扇入和扇出上是否已经存在延迟点,如果存在延迟点,则不再对该伪路径定义延迟点;如果所述扇入和扇出上不存在延迟点,则根据所述扇入和扇出之间的时序弧的类型定义延迟点;对找到延迟点的伪路径定义延迟值并写出标准延迟文件和修改的门级网表。2.如权利要求1所述的方法,其中,根据所述扇入和扇出之间的时序弧的类型定义延迟点的步骤包括:判断所述扇入和扇出之间的时序弧的类型;如果所述扇入和扇出之间的时序弧的类型属于类型I至类型VII,则根据所述扇入和扇出之间的时序弧的类型定义延迟点;如果所述扇入扇出之间的时序弧的类型属于类型VIII,则通过执行下述操作来定义延迟点:复制所述扇入和扇出连接的对象,将所述扇入和扇出之间的时序弧转换成类型I~VII,在不改变电路逻辑的基础上修改门级网表,并根据复制对象之后形成的扇入和扇出之间的时序弧的类型定义延迟点;如果所述扇入和扇出之间的时序弧的类型属于类型IX,并通过执行下述操作来定义延迟点:将所述对象与所述对象所在伪路径上的上一级或下一级的对象进行合并以产生新的对象和与所述新的对象相应的扇入和扇出,从而将与所述新的对象相应的扇入和扇出之间的时序弧的类型转换为类型I至类型VIII以定义延迟点。3.如权利要求2所述的方法,其中,在将所述对象与所述对象所在伪路径上的上一级或下一级对象进行合并以产生新的对象和与所述新的对象相应的扇入和扇出的操作中,如果与所述新的对象相应的扇入和扇出之间的时序弧的类型仍然不属于类型I至类型VIII,则增加合并级数以将所述新的对象与所述新的对象的上一级或下一级的对象再进行合并,其中,合并级数小于等于设定的合并级数限制。4.如权利要求3所述的方法,其中,如果合并级数大于合并级数限制,则放弃对该伪路径的分析。5.如权利要求1所述的方法,还包括:报告没有找到延迟点的伪路径以对没有找到延迟点的伪路径进行人工分析。6.如权利要求1所述的方法,其中,对伪路径定义延迟点的操作包括在伪路径的延迟点处定义上升和下降延迟。7.如权利要求2所述的方法,其中,按下述方式对扇入和扇出之间的时序弧的类型进行划分,并相应地定义延迟点,其中,m表示伪路径上的对象的扇入的个数,n表示所述对象的扇出的个数,p为大于等于1并且小于m的自然数,q为大于等于1并且小于n的自然数,s为大于等于1并且小于等于m的自然数,t为大于等于1并且小于等于n的自然数;类型I满足条件:只有1个扇入和1个扇出的伪时序弧;在这种情况下,将延迟点定义在该对象的扇入或扇出;类型II满足条件:m>1且n=1,并且有p个扇入到该扇出是伪时序弧;在这种情况下,将延迟点定义在该对象的有伪时序弧的所述p个扇入处;类型III满足条件:m>1且n=1,并且该对象的所有的扇入到扇出都是伪时序弧;在这种情况下,将延迟点定义在该对象的扇出处;类型IV满足条件:m=1,n>1,并且该扇入到q个扇出是伪时序弧;在这种情况下,将延迟点定义在该对象的有伪时序弧的所述q个扇出处;类型V满足条件:m=1,n>1,并且该扇入到所有扇出都是伪时序弧;在这种情况下,将延迟点定义在对象的扇入处;类型VI满足条件:m>1,n>1,并且所有扇入到q个扇出是伪时序弧;在这种情况下,将延迟点定义在对象的有伪时序弧的所述q个扇出处;类型VII满足条件:m>1,n>1,并且有p个扇入到所有扇出都是伪时序弧;在这种情况下,将延迟点定义在对象的有伪时序弧的所述p个扇入处;类型VIII满足条件:m>1,n>1,有s个扇入到t个扇出是伪时序弧,并且任意扇入到任意扇出是伪时序弧或真时序弧;在这种情况下,通过复制对象转换成类型I至类型VII以对延迟点进行定义,并相应地修改门级网表;如果扇入和扇出之间的时序弧的类型不属于类型I至类型VIII,则将所述扇入和扇出之间的时序弧的类型定义为类型IX。8.如权利要求1所述的方法,所述方法还包括:使用标准延迟文件和修改的门级网表进行前仿真。9.如权利要求8所述的方法,其中,如果前仿真的结果与预期的结果不一致,则对门级网表进行清理以优化门级网表并再次进行前仿真。10.如权利要求1所述的方法,其中,所述伪路径为包含from、to或through语句的纯伪路径。11.一种在前仿真阶段检查和纠正伪路径的方法,所述方法包括:对用硬件描述语言编写的数字逻辑电路进行综合以生成门级网表;对门级网表进行清理从而获得优化的门级网表;根据优化的门级网表的拓扑结构进行前静态时序分析;生成标准延迟文件和修改的门级网表;使用标准延迟文件和修改的门级网表进行前仿真;如果仿真的结果与预期的...

【专利技术属性】
技术研发人员:王金城
申请(专利权)人:三星半导体中国研究开发有限公司三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1