在rtl模拟中兑现多循环路径语义的技术的制作方法

xiaoxiao2020-7-22  15

在rtl模拟中兑现多循环路径语义的技术的制作方法
【专利摘要】本发明提供了一种包括关于多循环路径的信息的经改善RTL模拟。在设计约束文件中可供使用的多循环路径信息可被用于在RTL模拟中进行时序分析。该信息可有利地增大RTL模拟引擎以逼近目的地寄存器处的循环延迟,由此提供RTL级的电路表现的更现实近似。尤其,RTL模拟比门级模拟快若干数量级。此外,相比等待直到门级模拟,在RTL模拟过程中与多循环路径关联的设计缺陷更容易被校正。
【专利说明】在RTL模拟中兑现多循环路径语义的技术
【背景技术】【技术领域】
[0001]本发明涉及寄存器传输级(RTL)模拟,尤其涉及在RTL模拟过程中纳入多循环路径信息的技术。
[0002]相关技术
[0003]集成电路(IC)设计的一些组合路径是多循环的,即从源的转移不期望在一个循环内到达目的地。一般来说,多循环路径起因于实现约束因素,例如向指示设计中的具体路径的具体延迟的工具的用户指向。换句话说,用户可指示一具体的源需要设定数量的循环(例如2次、3次或4次循环)来经由具体路径将其值送至具体目的地。由用户设定的延迟循环数可起因于路径中出现的居间组合逻辑的类型和/或量。
[0004]这些多循环路径在边带文件中提供作为对合成工具的设计约束命令,所述合成工具产生门/网表级描述,以及在时序分析中使用以验证时序约束的时序分析工具。注意对合成和时序分析工具的代码输入仅提供用于连接源/目的地的路径的源和目的地之间的组合逻辑传递函数。然而,当执行合成和时序分析时,合成和时序工具将访问边带文件以确保设计约束命令被考虑在内。
[0005]然而,在寄存器传输级(RTL)模拟(其访问RTL描述并验证正确的系统操作),不使用该信息。具体地说,在RTL中,所有组合路径被特征化为零延迟,即单个循环。因此,多循环路径上的转移在一个循环内到达目的地。不幸的是,这种较早的转移可能导致不正确的模拟结果并可能掩盖设计缺陷。例如,预期多循环路径在一个循环中传播转移的任何设计瑕疵将错误地通过RTL模拟。
[0006]这些多循环路径缺陷可能稍后在门级模拟期间被捕获,其详细时序被注释给门。然而,这种分析在设计循环中非常晚并且除了非常性能密集和缓慢外通常涉及验证、合成和布局&走线的昂贵迭代。因此,门级模拟在商业上无法实现以弥补较多量的多循环路径缺陷。在最坏的情形下,多循环路径缺陷可能无法被检测到直到下线(tape out)为止,由此造成一个或多个掩模的重制(re-spin)。

【发明内容】

[0007]描述了一种用于改善寄存器传输级(RTL)模拟的方法。在该方法中,对于设计的RTL文件和边带文件可被访问。RTL文件描述包括这些路径的源和目的地的设计的路径。源和目的地可包括触发器或设计的其它状态器件。
[0008]然后,可识别边带文件的设计约束。这些设计约束包括多循环路径。可使用计算机,通过复制多循环路径的多个部分以创建复制的多循环路径、在复制的多循环路径中插入延迟以及将原始多循环路径从它们的源截断来修正设计。在这一点,包括多循环路径信息的经修正设计可被模拟。
[0009]多循环路径的复制部分可包括多循环路径的复制和组合逻辑。在一个实施例中,至少连接至多循环路径的源的组合逻辑可被复制。在另一实施例中,多循环路径的所有组合逻辑被复制。在又一实施例中,可将经复制的组合逻辑最小化以确保每个多循环路径的插入延迟仅影响该多循环路径。
[0010]插入延迟可以是可控的。在一个实施例中,这些延迟可由用户选择。每个延迟可落在由用户规定的范围内或小于由用户规定的最大延迟。每个延迟可用于一个或多个RTL模拟。在一个实施例中,可根据多循环的值对设计进行修正。
[0011]还描述了存储用于改善寄存器传输级(RTL)模拟的计算机可执行指令的计算机可读介质。当由计算机执行时,这些指令可执行前述的步骤。还描述了一种用于改善寄存器传输级(RTL)模拟的系统。该系统可包括被配置成执行前述步骤的处理器。
【专利附图】

【附图说明】
[0012]图1A示出包括具有居间组合逻辑的多个源和目的地的设计。在这种设计中,已指定一个多循环路径。
[0013]图1B示出可出现在具有指定的多循环路径的图1A设计中的多个单循环路径。
[0014]图1C示出可能导致错误分析的具有布局延迟的图1B的设计。
[0015]图2A示出具有多循环路径的复制部分及其相关延迟的图1B的设计。
[0016]图2B示出具有多循环路径的另一复制部分及其相关延迟的图1B的设计。
[0017]图3示出提供改善的RTL模拟的技术。
[0018]图4解说示例性数字ASIC设计流的简化示图。
【具体实施方式】
[0019]根据改善的RTL模拟的一个方面,有关多循环路径的信息可被访问和使用。具体地说,在设计约束文件中可供使用的多循环路径信息可被访问和用于在RTL模拟中进行时序分析。该信息可有利地增大RTL模拟引擎以逼近目的地寄存器处的循环延迟,由此提供RTL级的电路表现的更现实近似。尤其,RTL模拟比门级模拟快几个数量级。此外,相比等待直到门级模拟,在RTL模拟过程中更容易校正与多循环路径关联的设计缺陷。因此,相比传统RTL模拟,用多循环路径信息改善RTL模拟在验证置信度方面提供了显著改善。
[0020]图1A示出一种简化设计100,其包括多个源101-104、多个多目的地111-114以及居间组合逻辑110。注意,源和目的地可通过状态器件实现,例如触发器或其它寄存器。此外注意,源和目的地可具有一一对应以外的关系。例如,源101可具有两个目的地113、114。在其它实施例中,多源可具有相同的目的地,例如源103、104具有单个目的地111。
[0021]尤其,在典型设计中,多循环路径与单循环路径相互混合。例如,在图1A中,在源103和目的地112之间指定多循环路径120。源101-104和目的地111-114 (为简化起见未示出)之间的其它路径是传统的单循环路径。
[0022]根据改善的RTL模拟,边带文件(例如在门级模拟期间通常使用的设计约束文件)可指示从与多循环路径120关联的源103的任何转移将在N个时钟循环(其中N是由用户设定的正整数)后到达目的地112。该延迟值改变将被并入驱动目的地112的任何逻辑锥(即如果有的话将多个源考虑在内)。注意对于驱动目的地112的所有其它源来说,那些其它源的转移将在单个循环内到达目的地112。在图1A所示的配置中,目的地111、113和114关联于单个循环路径并因此由当前值驱动。如下面更详细描述的那样,只有从源103至目的地112的值(即指定的多循环路径120)应当被延迟。[0023]图1B示出可出现在具有多循环路径120的设计100中的多个单循环路径。注意,组合逻辑110 (图1A)包括组合逻辑110A、110BUIOC和IIOD。在设计100中,源101、102和103具有通过组合逻辑IlOB至目的地111的单循环路径。源104具有通过组合逻辑IlOD至目的地113、114的单循环路径以及通过组合逻辑IlOC至目的地112的单循环路径。
[0024]尤其,RTL模拟工具不具有实际的电路实现和时序细节。因此,RTL工具无法沿多循环路径分配延迟。然而,仅在多循环路径的输入或输出处设置延迟可能会导致错误的分析。例如,图1C示出设置在多循环路径120的输入处的延迟120。不幸的是,尽管延迟120提供多循环路径120的正确延迟,但它向源103和目的地111之间的路径提供错误的信息。类似地,设置在多循环路径120输出处的延迟130将错误信息提供给源104和目的地112之间的路径。
[0025]因此,为了确保与多循环路径关联的延迟不干扰任何其它路径,改善的RTL模拟工具可复制多循环路径的一些部分并从其源断开/截断原始设计中的原始多循环路径。例如,图2A示出设计200,该设计200复制一部分多循环路径120以创建经修正的多循环路径201。在该实施例中,RTL工具可复制多循环路径120的包括组合逻辑110的部分,由此创建新的组合逻辑110A’。在这种配置中,多循环路径201将源103经由组合逻辑IlOAIPIlOC连接至目的地112,并且延迟210可被设置在多循环路径201的输入处。尤其,延迟210将不影响设计200中的任何其它路径。在这一点,多循环路径210可在其原始源(即节点220)处被截断,由此允许RTL工具有效地忽略其对设计200的作用。注意,这种截断也不影响设计200中的任何其它路径。
[0026]在另一实施例中,多循环路径120可完全被复制(除了源和目的地),如图2B的设计200’所示那样。在该实施例中,经修正的多循环路径240包括新的组合逻辑110A”和新的组合逻辑110C’。在这种配置中,经修正的多循环路径240将源103经由组合逻辑110A”和110C’连接至目的地112,并且延迟241可被设置在多循环路径240的输入处。尤其,延迟241将不影响设计200’中的任何其它路径。同样,多循环路径210可在其输入(即在节点220)处被截断,由此允许RTL工具有效地忽略其对设计200’的作用。
[0027]在一个实施例中,多循环路径的被复制的实际部分可基于设计中出现的具体逻辑扇入(fan-1n)和扇出(fan-out)。具体地说,每个多循环路径的被复制的部分可由最小量被复制的组合逻辑确定,所述最小量被复制的组合逻辑确保设计中没有其它路径受到影响。在该实施例中,RTL工具将首先创建设计200 (图2A)并判断是否影响到任何其它路径。如果否,则RTL工具可将多循环路径201保存在经修正的设计文件中以供RTL模拟期间使用。如果是,则RTL工具可复制更多的组合逻辑以创建设计200’(图2B)。重复这个过程,直到经复制的组合逻辑导致不影响设计中的任何其它路径的多循环路径。在该实施例中,对于图2A所示的配置,RTL工具将保存多循环路径201并且不前进至图2B所示的配置。
[0028]注意,设计200 (图2A)和设计200’ (图2B)在功能上与设计100 (图1B)相同。即,
[0029]目的地11 l=f (源 101,源 102,源 103)
[0030]目的地112=f?(源 103,源 104)[0031]目的地113=f (源 104)
[0032]目的地114=f (源 104)
[0033]事实上,多循环路径的复制部分不在所制造的IC中产生实际新的路径。换句话说,多循环路径的经复制部分在RTL模拟期间仅由RTL工具使用。
[0034]图3示出提供改善的RTL模拟的示例性技术。在步骤301,RTL工具访问用户RTL文件(它指示设计中的所有路径,包括源和目的地)以及边带文件(它包括一个或多个设计约束)。在步骤302中,RTL工具识别设计约束并修正RTL文件中提供的设计。这种修正包括:产生多循环路径的经复制部分(它们被标识为边带文件中的设计约束);以及在经修正的多循环路径的输入处插入延迟。如前所述,多循环路径的各个部分的复制可包括路径的组合逻辑。原始多循环路径可从其源被截断。在步骤303,RTL工具模拟经修正的设计以在RTL级产生精确的时序结果。步骤304可输出这些时序结果。
[0035]尤其,插入的延迟现在可以是完全可控的。也就是说,回来参见图2A,用户能容易地将延迟210规定为具有多个延迟,其中第一模拟可使用第一延迟210,第二模拟可使用第二延迟210,等等。在一个实施例中,RTL工具可对一个模拟使用由用户规定的最大延迟值并随后自动地使用比该最大规定的延迟更小的一个或多个延迟值来执行另外的模拟。在另一实施例中,RTL工具可使用由用户规定的延迟值范围内的一个或多个延迟值。如前面提到的,可在一个或多个RTL模拟中使用这些延迟。
[0036]典型的设计具有有限数量的多循环路径,例如低于路径总数的I %。因此,该多循环路径的复制部分的模拟具有非常小的净空,同时允许RTL工具将具体多循环路径的多循环信息考虑在内,而不影响设计中的任何其它路径。
[0037]图4示出可包括具有多循环路径信息的RTL模拟的示例性数字ASIC设计流的简化示图。在高层,该过程始于产品理念(步骤400)并且在EDA软件设计过程中实现(步骤410)。当设计最终定稿时,其可被下线(事件440)。在下线之后,发生制造过程(步骤450)和封装及组装过程(步骤460),最终得到完工的芯片(结果470)。
[0038]EDA软件设计过程(步骤410)实际包括数个步骤412-430,出于简单起见这些步骤以线性方式示出。在实际ASIC设计过程中,特定设计可能不得不回退历经各步骤直到通过某些测试。类似地,在任何实际的设计过程中,这些步骤可能以不同次序和组合发生。本说明书因此借助于上下文和一般化解释来提供,而不是作为用于特定ASIC的具体或推荐的设计流来提供的。
[0039]现在将提供EDA软件设计过程(步骤410)的组成步骤的简要描述。系统设计(步骤412):设计人员描述他们想要实现的功能性,他们可执行假设情景(what-1f)规划以精炼功能性、核查成本等等。硬件-软件架构划分可在这一级发生。在此步骤可使用的来自Synopsys 公司的不例性 EDA 软件产品包括 Model Architect、Saber、System Studio、以及Designffare ?产品。
[0040]逻辑设计和功能验证(步骤414):在该阶段,编写用于系统中的模块的VHDL或Verilog代码,并且检查该设计的功能准确性。更具体地,检查该设计以确保其产生正确的输出。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括VCS、VERA,DesignWaii R fcgellan、Formality、ESP以及LEDA产品。在一个实施例中,使用多循环路径信息的经改善RTL模拟可在步骤414中执行。[0041]合成及测试设计(步骤416):这里,VHDL/Verilog被转译成网表。可针对目标技术对该网表进行优化。另外,发生对测试的设计和实现以准许对完工的芯片进行检查。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Design Compiler PowerCompiler、DFTMAX> TetraMAX、以及 DesignWare ?产品。
[0042]网表验证(步骤418):在此步骤,检查网表对时序约束的顺应性以及与VHDL/Verilog源代码的对应性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括 Formality、PrimeTime> 以及 VCS 产品。
[0043]设计规划(步骤420):这里,构造芯片的整体平面布置图并分析其时序和顶层走线。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Astro和ICCompiler (编译器)产品。
[0044]物理实现(步骤422):在此步骤发生布局(电路元件的定位)和走线(这些电路元件的连接)。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Astro和ICCompiler 产品。
[0045]分析和提取(步骤424):在此步骤,在晶体管级验证电路功能,这进而准许假设情景(what-1f)精炼。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括AstroRail、PrimeRail、Primetime、以及 Star RC/XT 产品。
[0046]物理验证(步骤426):在该步骤,执行各种检查功能以确保以下各项的正确性:制造、电气问题、光刻问题和电路。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Hercules产品。
[0047]分辨率增强(步骤428):此步骤涉及对版图的几何学操纵以改善设计的可制造性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Proteus、ProteusAF以及PSMGen产品。
[0048]掩模数据制备(步骤430):此步骤提供“下线”数据以用来产生光刻掩模,以用于产生完成的芯片。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括CATS (R)广品系。
[0049]具有多循环路径信息的RTL模拟可以有利地在一个或多个计算机程序中实现,该一个或多个计算机程序在包括耦合的至少一个可编程处理器的可编程系统上执行,该至少一个可编程处理器用于从和向数据存储系统、至少一个输入设备和至少一个输出设备接收和发送数据和指令。每一个计算机程序都可以用高级过程或面向对象编程语言、或者在需要时用汇编或机器语言来实现;并且在任何情况下,该语言都可以是经编译或经解释的语言。合适的处理器包括例如通用和专用微处理器以及其它类型的微控制器。一般而言,处理器将从只读存储器和/或随机存取存储器接收指令和数据。一般而言,计算机将包括用于存储数据文件的一个或更多个大容量存储设备;这类设备包括诸如内置硬盘和可移动盘等磁盘、磁光盘和光盘。适于有形地实施计算机程序指令和数据的存储设备包括所有形式的非易失存储器,例如包括:半导体存储设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内置硬盘或可移动盘;磁光盘;以及⑶ROM盘。上述各项中的任一个可由专用集成电路(ASIC)补充或被结合在ASIC中。
[0050]本文中所描述的实施例不旨在是穷尽性的,或者将本发明限于所公开的确切形式。由此,许多修改和改变将是显而易见的。因此,本发明的范围旨在由所附权利要求书及其等效物定义。
【权利要求】
1.一种用于改善寄存器传输级(RTL)模拟的方法,所述方法包括: 访问一设计的RTL文件和边带文件; 标识所述边带文件中的设计约束,所述设计约束包括多循环路径; 使用计算机,通过复制多循环路径的各部分以创建经修正的多循环路径、在经修正的多循环路径中插入延迟以及将多循环路径从其源截断来修正设计;以及 在所述RTL模拟过程中模拟所述经修正的设计。
2.如权利要求1所述的方法,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的某些组合逻辑。
3.如权利要求2所述的方法,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的全部组合逻辑。
4.如权利要求2所述的方法,其特征在于,所述延迟是可控的。
5.如权利要求2所述的方法,其特征在于,所述延迟是可由用户选择的。
6.如权利要求2所述的方法,其特征在于,每个延迟在由用户规定的范围内,并可用于一个或多个RTL模拟。
7.如权利 要求2所述的方法,其特征在于,每个延迟小于由用户规定的最大延迟,并可用于一个或多个RTL模拟。
8.一种存储用于改善寄存器传输级(RTL)模拟的计算机可执行指令的计算机可读介质,当由计算机执行时所述指令执行下列步骤,包括: 访问一设计的RTL文件和边带文件; 标识所述边带文件中的设计约束,所述设计约束包括多循环路径; 通过复制多循环路径的各部分以创建经修正的多循环路径、在经修正的多循环路径中插入延迟以及将多循环路径从其源截断来修正设计;以及 在所述RTL模拟过程中模拟所述经修正的设计。
9.如权利要求8所述的计算机可读介质,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的某些组合逻辑。
10.如权利要求9所述的计算机可读介质,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的全部组合逻辑。
11.如权利要求9所述的计算机可读介质,其特征在于,所述延迟是可控的。
12.如权利要求9所述的计算机可读介质,其特征在于,所述延迟是可由用户选择的。
13.如权利要求9所述的计算机可读介质,其特征在于,每个延迟在由用户规定的范围内,并可用于一个或多个RTL模拟。
14.如权利要求9所述的计算机可读介质,其特征在于,每个延迟小于由用户规定的最大延迟,并可用于一个或多个RTL模拟。
15.一种用于改善寄存器传输级(RTL)模拟的系统,所述系统包括处理器,所述处理器被配置成执行下列步骤,包括: 访问一设计的RTL文件和边带文件; 标识所述边带文件中的设计约束,所述设计约束包括多循环路径; 使用计算机通过复制多循环路径的各个部分以创建经修正的多循环路径、在经修正的多循环路径中插入延迟以及将多循环路径从其源截断来修正设计;以及在所述RTL模拟过程中模拟所述经修正的设计。
16.如权利要求15所述的系统,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的某些组合逻辑。
17.如权利要求16所述的系统,其特征在于,复制所述多循环路径的各部分包括复制所述多循环路径的全部组合逻辑。
18.如权利要求16所述的系统,其特征在于,所述延迟是可控的。
19.如权利要求16所述的系统,其特征在于,所述延迟是可由用户选择的。
20.如权利要求16所述的系统,其特征在于,每个延迟在由用户规定的范围内,并可用于一个或多个RTL模拟。
21.如权利要求16所述的系统,其特征在于,每个延迟小于由用户规定的最大延迟,并可用于一个或多个RTL模拟`
【文档编号】G06F17/50GK103548026SQ201280021607
【公开日】2014年1月29日 申请日期:2012年2月28日 优先权日:2011年3月3日
【发明者】K·蒂, B·P·格帕兰, D·戈斯瓦密 申请人:辛奥普希斯股份有限公司

最新回复(0)