CN116157799A - 动态cdc验证方法 - Google Patents
动态cdc验证方法 Download PDFInfo
- Publication number
- CN116157799A CN116157799A CN202080103641.3A CN202080103641A CN116157799A CN 116157799 A CN116157799 A CN 116157799A CN 202080103641 A CN202080103641 A CN 202080103641A CN 116157799 A CN116157799 A CN 116157799A
- Authority
- CN
- China
- Prior art keywords
- cdc
- protocol
- assertion
- simulation
- analysis
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- 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/396—Clock trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种在寄存器传输级(RTL)设计中动态地验证跨时钟域(CDC)路径的计算机实现的方法。除了静态分析、形式分析和仿真步骤之外,每个CDC路径还分配了永久唯一标识符。这使得能够使用该永久唯一标识符来更新集中式的结果数据库,以便标记相关联的CDC协议断言、功能覆盖率和形式分析结果和仿真结果。此外,在仿真分析之前,关闭在形式分析期间已经证实的CDC协议断言,使得仅对未证实的CDC协议断言执行仿真运行。
Description
技术领域
本发明涉及一种动态跨时钟域(CDC)验证的方法,特别是涉及一种基于静态跨时钟域分析并采用形式分析(formal analysis)和仿真的动态跨时钟域验证方法。
背景技术
数字电路设计通常采用硬件描述语言来创建电路的高级表示。同步数字电路可以使用称为寄存器传输级(RTL)的设计抽象(design abstraction)来模拟硬件寄存器之间的数字信号流。每个硬件寄存器由时钟信号边沿触发,使每个寄存器的输出与其时钟信号同步。跨时钟域(CDC)路径是RTL设计中源寄存器与目标寄存器之间的能够实现CDC信号传输的路径,其中,源寄存器的时钟与目标寄存器的时钟异步。当两个时钟异步时,时钟之间没有确定性的相位关系。由于存在这种异步性,源寄存器可能产生违反目标寄存器的设置和保持要求的异步信号,致使目标寄存器进入亚稳定状态。传统上,使用同步逻辑结构(同步器)来应对这个问题,同步逻辑结构是添加至CDC路径以防止亚稳定事件传播到下游逻辑的RTL结构。虽然将同步器添加至CDC路径将消除一些结构中的亚稳定性,但其本身不足以确保可靠地传输CDC信号。每个同步器都依赖于一组假定或协议,当违反这些假定或协议时将导致数据丢失或损坏,或者在最坏的情况中,允许亚稳定状态被传递到下游逻辑——这正是设计者试图避免的情况。这些事件最终导致RTL设计的功能故障。
为了避免这些问题而使用了两个过程:静态CDC验证和动态CDC验证。顾名思义,静态CDC验证在不需要全电路仿真的情况下使用静态结构分析技术来确定数字电路的正确同步结构。另一方面,动态CDC验证使用全电路仿真和/或对全电路的形式模拟检查分析来确定当使用某些同步器时是否会违反协议。这是通过生成对同步器协议的断言并且在形式环境或仿真环境中验证该断言来完成的。
图1示出了由于协议违反而导致的采用两个触发器(DFF)的同步器的数据丢失。图1示出了源寄存器Tx,目标寄存器Rx和所得的同步信号Rxsync。源时钟Txclock为源寄存器提供信号,而目标时钟Rxclock为目标寄存器和同步信号提供信号。最初,源寄存器Tx在时间t=t处发送单个方波。同时,目标寄存器时钟Rxclock发送频率为0.5的时钟信号。所使用的协议是NUM_CYCLES=2,并且如以下代码所示,该协议被违反,导致在时间t=t时刻,向目标寄存器Rx传输的Tx信号被损坏,并且在Rxsync上根本不存在同步信号:property data_stable_prop(data,clock,reset,arrest,NUM_CYCLES):
@(posedge clock)disable iff(areset)
##1!reset&&$changed(data)|=>$stable(data)[*(NUM_CYCLES-1)];
endproperty
图2示出了用于验证同步器协议的基于断言的典型验证方法。使用静态CDC分析2来评估RTL设计1,以便分析用于在寄存器之间传输信号的CDC路径和同步器结构,并且对每个CDC路径都生成了CDC协议断言3。在形式分析环境4中,来自RTL设计1的数据与CDC协议断言3一起输入,并且添加形式约束5(诸如时钟、复位和恒常约束(constant constraint))以便运行分析并且显示任何对协议的违反6。在仿真环境7中,来自RTL设计1的数据和测试台数据8连同CDC协议断言3一起输入以便对整个数字电路进行仿真,以便确定对协议的违反并显示9出来。
然而,使用这三个系统是复杂且耗时的,这是因为CDC约束和指令需要被转换到每个环境中,所以需要大量的时间和工作量来为形式运行和仿真运行设置RTL设计。审阅来自两个环境的结果的调试工作也是冗长的,因为必须在三个环境中审阅结果(因为形式环境和仿真环境不同于静态CDC分析),并且需要在每个环境中进行任何调试工作。使用不准确的约束可能导致大量的错误激发(false firing)(其中,错误地违反了协议断言),例如,指定时钟频率时的错误可能导致不正确的设计行为。将形式结果和仿真结果关联回静态CDC分析是棘手的,因为在每个环境中的结果之间没有关联性。由于所涉及的多种同步器的复杂性,手动关联要花费大量时间,所述同步器例如fifo(先进先出)和握手(handshake),其中,每个同步器都具有多个断言,这些断言在形式环境和仿真环境中被视为单独的实体,但又关联回单个CDC路径。虽然看起来一起使用形式环境和仿真环境对于用户来说应当是有益的,但是当在形式分析中已证明过的断言在仿真中被不必要地重新验证时,会出现一定量的冗余和例行化的工作量。
形式分析本身需要专门技术来进行。断言协议的形式模拟检查将产生三种类型的结果:
证实:所有事件都证实了断言——用穷举算法证明断言不能被违反;
违反:断言被违反了——显示违反了断言的激励集的形式反例,通过产生显示所讨论的激励的波形示出;
无定论:形式分析不能生成证实或检测到违反——例如,设计可能太大、断言太难以求解、缺乏计算机资源、形式算法中有不足。
形式环境还要求设计者指定包括设计配置信息、时钟信息和输入端口信息的形式设置约束。该信息包括指定端口和寄存器的配置的常数、时钟约束和频率,以及主输入端口和相关时钟频率的约束。在没有这种存在的形式化环境的情况中,任何形式模型检查都在没有任何约束的状态下无约束地运行,所述约束描述设计的合法激励和非法激励。这导致基于非法激励检测假的断言违反并产生无定论的结果。缺少描述合法激励和非法激励的任何断言约束增加了形式模拟检查分析的逻辑状态空间。具有大的状态空间时,形式分析比较难以集中在产生证实或反例上。克服这些困难需要时间和使用先进的形式分析技术,这两者对于设计者都可能是不可用的。
发明内容
本发明旨在通过在第一方面中提供一种在寄存器传输级(RTL)设计中动态地验证跨时钟域(CDC)路径的计算机实现的方法来解决这些问题,所述方法包括:
从CDC静态分析数据库中提取关于CDC路径中结构的存在以及任何相关联的CDC协议断言和功能覆盖率的信息;
将CDC协议断言和功能覆盖率捆绑至捆绑文件中的RTL设计;
从RTL设计生成形式分析文件和仿真设置文件,生成从静态CDC分析数据库提取的用于CDC路径的设置和约束数据,并使用所生成的形式分析和仿真设置文件来编译捆绑文件;
运行RTL设计的形式分析,以便确定经证实的和未证实的CDC协议断言;
更新仿真设置文件,以便关闭经证实的CDC协议断言;
使用未证实的协议断言和功能覆盖率来运行RTL设计的仿真;
用RTL设计的形式分析结果和仿真结果来更新集中式结果数据库;以及
生成形式分析结果和仿真结果的可视化,以进行审阅和调试中的至少一项;
其中,为每个CDC路径分配永久唯一标识符,并且其中,使用该永久唯一标识符来更新集中式结果数据库,以便标记相关联的CDC协议断言、功能覆盖率以及形式分析结果和仿真结果。
与现有技术系统不同,本发明的实施例为设计者提供了同时对所有三个分析环境的结果进行可视化的能力,并且能够改变RTL代码而不影响该可视化的一致性。通过在形式分析之后关闭仿真设置文件中的已被证实的CDC协议断言,与现有CDC协议断言验证方法相比,实现了显著节省仿真所花费时间的效果。此外,当使用本发明的实施例时,CDC协议断言验证的覆盖率高于现有方法。
优选地,CDC路径信息包括至少一个文本串,并且其中,永久唯一标识符是从文本串生成的数字串。优选地,该数字串是通过使用数学运算来减少文本串中的字符数来生成的。更优选地,永久唯一标识符被添加到CDC路径的断言和功能覆盖率的实例名称。此外,优选地,永久唯一标识符被添加到与CDC路径中的结构相关联的CDC协议断言。
优选地,CDC路径中的结构是CDC同步器,并且相关联的CDC协议断言是基于CDC同步器的类型而生成的。
优选地,当在CDC路径中不存在结构时,相关联的CDC协议断言是基于该不存在的结构而生成的。
优选地,未证实的CDC协议断言是被违反的或无定论的。
优选地,在形式分析期间,生成指示违反CDC协议断言的激励的反例。
优选地,在形式分析期间,为经证实的CDC协议断言生成健全波形,其指示不违反CDC协议断言的激励。优选地,形式分析结果的可视化包括显示该健全波形。优选地,形式分析结果和仿真结果的可视化包括显示波形,该波形示出违反CDC协议断言的激励。
优选地,仿真参数文件和形式文件包括回调函数,以便能够更新集中式结果数据库。优选地,仿真参数文件采用PLI(programming language interface)回调函数来捕获断言信息,该断言信息包括示出激励是否违反CDC协议断言的数据。
优选地,所述方法进一步包括用CDC协议断言和功能覆盖率的结果信息来更新静态CDC分析数据库的步骤。
优选地,CDC协议断言是SystemVerilog断言(SVA)。此外,优选地,CDC协议功能覆盖率是SystemVerilog覆盖点和覆盖组。
优选地,设置文件包括:仿真编译和仿真参数文件、形式分析编译和运行脚本以及形式分析约束文件。
在第二方面,本发明还提供了一种数据处理系统,该数据处理系统包括适于执行所述方法的步骤的处理器。
在第三方面,本发明还提供了一种包括指令的计算机程序,当该计算机程序由计算机执行时,该指令使该计算机执行根据权利要求1至18中任一项所述的方法的步骤。
附图说明
现在将仅通过示例并参考附图来描述本发明,其中:
图1示出了由于违反协议而导致的采用两个触发器(DFF)的同步器的数据丢失;
图2示出了用于验证同步器协议的基于断言的典型验证方法;
图3是示出了根据本发明的实施例的方法概况的流程图;
图4是由本发明的实施例执行的用以捆绑CDC协议断言的步骤示意图;以及
图5是由本发明的实施例执行的用以生成设置文件的步骤示意图。
具体实施方式
与现有技术中的现有方法相比,本发明使用了识别系统,该识别系统通过CDC静态分析跟踪到包括形式模型检查和仿真的CDC动态分析中,并且能够使结果可视化。本发明实施例的方法动态地验证RTL设计中的CDC路径。这需要多个步骤。首先,从CDC静态分析数据库中提取关于CDC路径中结构的存在以及任何相关联的CDC协议断言和功能覆盖率的信息。其次,将CDC协议断言和功能覆盖率捆绑至捆绑文件中的RTL设计。这使得能够从RTL设计生成形式分析和仿真的设置文件,其中,用于CDC路径的设置和约束数据从静态CDC分析数据库提取。然后使用生成的形式分析和仿真的设置文件编译绑定文件。运行RTL设计的形式分析,以便确定经证实的CDC协议断言和未证实的CDC协议断言。这使得能够更新仿真设置文件,以便关闭经证实的CDC协议断言。然后,使用未证实的CDC协议断言和功能覆盖率来运行RTL设计的仿真。一旦这发生了,就用RTL设计的形式分析结果和仿真结果来更新集中式结果数据库,以及对形式分析结果和仿真结果进行可视化,以进行审阅和调试中的至少一项。为每个CDC路径分配永久唯一标识符,使用该永久唯一标记来更新集中式结果数据库,以便标记相关联的CDC协议断言、功能覆盖率以及形式分析结果和仿真结果。
图3示出了根据本发明的实施例的方法的顶层视图。图3是示出了根据本发明的实施例的方法概况的流程图。作为起始点,方法100要求在某一时刻已经执行了静态CDC分析110,或者执行方法100的处理装置能够访问静态CDC分析数据库112,该静态CDC分析数据库包含CDC路径的细节,其包括CDC路径中例如CDC同步器的结构的存在,以及任何相关联的CDC协议断言和功能覆盖率。所述功能覆盖率定义了关于CDC协议断言进行仿真的区域,例如,关于x的声明是否已经进行的x的范围。在步骤120处,从静态CDC分析数据库112中提取关于CDC路径中结构的存在、任何相关联的CDC协议断言和功能覆盖率的信息。此时,在步骤130处,从RTL设计生成形式分析131和仿真132的设置文件,并且从静态CDC分析数据库112提取用于RTL设计的设置和约束数据。然后使用这些生成的形式分析和仿真设置文件来编译捆绑文件。步骤140是运行RTL设计的形式分析,以便确定哪些协议断言被证实以及哪些协议断言未证实。在步骤150处,更新仿真设置文件以便关闭经证实的CDC协议断言,留下将在仿真阶段期间使用的未证实的协议断言。在步骤160处,使用未证实的断言和功能覆盖率来运行RTL的仿真。此时,在步骤170处,用RTL设计的形式分析结果和仿真结果来更新集中式结果数据库171。最后,在步骤180处,对形式分析结果和仿真结果进行可视化,以进行审阅和调试中的至少一项。为每个CDC路径分配永久唯一标识符,从而能够使用该永久唯一标记来更新集中式结果数据库171,以便标记相关联的CDC协议断言、功能覆盖率以及形式分析结果和仿真结果
下面将更详细地描述上述步骤。
捆绑CDC协议断言
图4是由本发明的实施例执行的用以捆绑CDC协议断言的步骤的示意图。如上所述,在步骤120处,从静态CDC分析数据库112提取关于CDC路径中结构的存在、任何相关联的CDC协议断言和功能覆盖的信息。在该步骤期间,从在步骤121处提取关于CDC路径中的结构的存在的信息开始,发生多个动作。这个CDC路径已经被分配了永久唯一标识符,下面将讨论分配过程。优选地,这种结构是如下表1中所示的CDC结构或方案:
表1:CDC结构和方案的示例
其中,“检验(Check)”表示与CDC结构关联的CDC断言模块的模块名,“SVA检验”表示被包括在CDC断言模块中的CDC协议断言,以及“CDC方案”表示在CDC路径上检测到的方案或结构的类型。也可能在CDC路径中没有检测到CDC同步器,在这种情况中,将仍然生成CDC协议断言,但是这将是悲观(pessimistic)的CDC协议断言,表示在CDC路径中缺少CDC同步器。在CDC结构是CDC同步器的情况中,在CDC路径中将仅检测到一个或零个CDC同步器。
为了生成CDC协议断言,在步骤123处,在整个CDC静态分析数据库112上迭代CDC结构。在此期间,每个CDC结构的逻辑,换言之,CDC结构的CDC协议断言的所有连接都将被推断和生成。在CDC结构是CDC同步器的情况中,该过程致使在步骤124处完全识别单个(或零个)CDC同步器及其相关联的CDC协议断言和功能覆盖率。在步骤125处,CDC协议断言及其功能覆盖率与tcl回调函数一起被捆绑到设计文件中的RTL设计,使得一旦运行完成就允许更新形式分析数据库。
生成设置文件
图5是由本发明的实施例执行的用以生成设置文件的步骤的示意图。步骤130包括生成用于形式分析和仿真的设置文件。在步骤131处,从CDC静态分析数据库112提取RTL设计、设置和约束数据,用于产生形式分析和仿真的设置文件。对于形式分析,约束是自动生成的。CDC协议生成实用程序将用于恒常、稳定、格雷码(grey-code)信号的CDC信息转换成用于形式验证的形式约束和假定。此外,输入和输出端口时钟域信息也将被转换成形式约束以提高形式反例的准确性。用于形式分析的额外的约束数据可以由设计者指定,并且包括关于RTL设计的合法(允许)激励和非法(不允许)激励的信息。这些约束定义了设计的合法状态空间,用于在合法状态空间上证明或违反CDC断言协议,这些约束也由设计者指定。在步骤132处,从CDC静态分析数据库112获得的信息被转换成用于形式分析工具和仿真工具的正确格式,并被添加到相应工具的设置中。在步骤133处,基于从CDC静态分析数据库112提取的信息生成用于形式分析和仿真的设置文件。用于形式分析的设置文件包括用于对步骤122中生成的CDC协议断言执行形式分析的编译和运行脚本,以及形式分析约束文件。此外,设置文件设有回调函数,形式分析的回调函数优选为tcl回调函数,以便能够用形式分析的结果来更新集中式结果数据库171。仿真设置文件是为编译、加工和仿真而生成的仿真编译和仿真参数文件。设计者可以使用仿真参数文件来将CDC协议断言和相关联的捆绑容易地包括到仿真中,而无需修改原始RTL设计。在步骤134处,所生成的设置文件被用于编译捆绑文件,为形式分析和仿真运行做好准备。
排除经证实的断言
本发明的实施例相对于现有技术的一个关键优点是,能够通过移除(或关闭)在形式分析中已经证实过的CDC协议断言来更新仿真设置文件。为了实现这一点,首先在步骤140处运行形式分析,这产生多个被证实的CDC协议断言和多个未被证实的断言。形式分析结果被迭代以便识别被证实的断言。形式证明是穷举的,并且确定CDC协议断言不会被违反。可对经证实的CDC协议断言产生健全波形以便指示不违反CDC协议断言的激励。然而,如果发生违反,则将生成指示引起违反的激励的反例。还可以生成指示违反CDC协议断言的激励的波形。在形式分析运行结束时,tcl回调函数生成CDC协议断言排除文件。一旦识别出经证实的断言,则在步骤150处更新仿真设置文件以便关闭经证实的断言,因为在仿真中不会违反经证实的断言。对于其中使用SV语言(SystemVerilog)作为编程语言的CDC协议断言,使用$assertoff命令来关闭经证实的CDC协议断言。移除经证实的CDC协议断言将减少在所述方法的下一步骤中的仿真运行时间。示出了关闭四个CDC协议断言的示例:
$assertoff(0,cdc_protocol.fifo_2332.cdc_fifo_wr_ptr_hamming_check.assert_hamming);
$assertoff(0,cdc_protocol.fifo_2332.cdc_fifo_rd_ptr_hamming_check.assert_hamming);
$assertoff(0,cdc_protocol.bus_two_diff_4271.cdc_hamming_check.assert_hamming);
$assertoff(0,cdc_protocol.two_diff_68078.cdc_sync_stable_check.assert_stable);
捕获结果
形式分析运行的结果在运行结束时被捕获在数据库中,确保CDC协议断言和功能覆盖率结果被记录。PLI回调例程被包括在仿真设置文件中,并且在步骤161处,通过在仿真运行期间将数据附加到现有CDC静态分析数据库112,从仿真运行中捕获CDC协议断言和功能覆盖率结果。
更新结果
结果更新步骤发生在使用设置文件中提供的信息进行形式分析和仿真运行结束时。基于tcl回调步骤或PLI回调步骤,分别解析形式分析结果或仿真结果,以便使用分配给CDC静态分析数据库中的CDC路径的永久唯一标识符,用相关信息更新集中式结果数据库171。这种相关性的一个示例示出在下表2中:
表2:形式分析和仿真示例后的CDC协议断言结果
CDC ID是CDC结构的名称,在该情况中,是CDC同步器类型加上永久唯一标识符。协议ID指示CDC协议断言,加上永久唯一标识符。形式结果是CDC协议断言的形式分析的结果,并且要么被证实要么未证实。两个未证实的状态是“激发”,其中,CDC协议断言已被违反,以及“无定论”,其中,不可能为特定提供的约束提供在设计状态空间上的证实。仿真结果产生四个不同的结果:CDC协议断言被激发(违反)、被覆盖(仿真已经显示该CDC协议断言保持为真并且被相同的激励完全运行)、被评估(仿真已经显示该CDC协议断言保持为真并且被相同的激励部分地运行),以及未被评估(仿真已经显示该CDC协议断言保持为真并且未被相同的激励运行)。
永久唯一标识符
本发明的一个关键点是使用永久唯一标识符。通常,CDC路径信息包括至少一个文本串,例如握手。优选地,永久唯一标识符是从文本串生成的数字串。该数字串通常是使用数学运算减少文本串中的字符数而生成的。例如,可以创建文本串中字符的哈希,因为这将减少文本串中字符的数量并提供唯一的标识号。将永久唯一标识符添加到CDC路径的断言和功能覆盖率实例名称,并且优选地添加到与CDC路径中的结构相关联的CDC协议断言。通过确保使用永久唯一标识符来标记所有东西,使得能够更新和关联所有三个环境(CDC静态分析、形式分析和仿真)上的结果。
唯一标识符需要是永久的,以便在分析过程中确保准确性和可追溯性。初始的唯一标识符被分配给CDC路径。如果支持RTL设计代码在设计期间的某时刻改变,则只要CDC路径的结构没有改变,这种改变将不会影响唯一标识符。例如,如果决定修改CDC路径的结构,则唯一标识符不再是永久的,因为它将由于CDC路径中的变化而变化。因此,代码的变化或围绕但不影响CDC路径的变化将不会对唯一标识符造成影响,从而唯一标识符具有永久性。
结果可视化
在图3中概述的过程结束时,产生形式分析结果和仿真结果的可视化。这使得设计者能够审阅结果,或者能够调试过程中使用的代码。这样做的一种方式是生成类似于上表2的使得设计者能够审阅结果的文本文件、显示或文档。替代地,在形式分析期间生成的用于指示不违反CDC协议并因此被证实的激励的健全波形可以作为可视化的一部分被显示。此外,还可以生成作为示出确实违反CDC协议断言的激励的反例的结果而生成的波形。
为了阐述上面描述的本发明的实施例,在实际设计上测试了验证方法,并与使用现有形式分析和仿真技术进行的相同测试进行比较。测试了三种RTL设计:设计A、设计B和设计C,每个设计具有1至3千万个门。
表3a和表3b示出了比较示例。使用传统CDC协议断言验证方法,分别使用QuestaCDC、Questa PropCheck和Questa Simulation进行给定数量的CDC协议断言的形式分析验证和仿真验证:
表3a
表3b
表4a和表4b示出了使用根据本发明的实施例的方法的示例:
表4a
表4b
在比较示例和使用本发明的实施例中,形式覆盖率由下式给出:
((失败断言+覆盖断言)/总断言))*100
对于比较示例,仿真覆盖率由下式给出:
((失败断言+覆盖断言)/总断言))*100
而对于使用本发明的实施例的示例,仿真覆盖率由下式给出:
((失败断言+覆盖断言+证实断言)/总断言))*100
与传统验证方法相比,使用本发明的实施例提供了许多改进。由于设置生成的自动化和对于不完整和不正确设置的增量调试迭代的减少,观察到形式分析设置时间显著减少。此外,还减少了用于仿真的设置时间。这又是由于设置生成的自动化和对于不完整和不正确设置的增量调试迭代的减少。自动的设置生成和将CDC设计约束引入到形式分析中减少了形式设置错误并使得错误激发(即出现对CDC协议断言的错误违反)减少。改进的形式设置和约束还导致更少的不确定的CDC协议断言以及更多的证实和违反。从仿真中删除经证实的CDC协议断言导致更高百分比的被激发和被覆盖的仿真CDC协议断言。由于在采用本发明的实施例的示例中没有对经证实的CDC协议断言进行仿真,所以经证实的CDC协议断言被认为已被覆盖,以便保持传统方法和本发明方法之间的仿真覆盖率一致性。由于排除了形式上经证实的CDC协议断言而使得的传递至仿真的CDC协议断言数量的减少,减少了在仿真中审阅经证实的CDC协议断言所需的验证工作。结构CDC分析、形式验证和仿真结果的关联性提高了调试生产率,并且使得协议错误与其相关联的CDC路径更容易地关联,尤其是通过采用本发明的实施例的永久唯一标识符。因此,在比较实际设计时,与传统方法相比,使用本发明的实施例有显著的优点。
Claims (20)
1.一种在寄存器传输级(RTL)设计中动态地验证跨时钟域(CDC)路径的计算机实现的方法,所述方法包括:
从CDC静态分析数据库中提取关于CDC路径中结构的存在以及任何相关联的CDC协议断言和功能覆盖率的信息;
将所述CDC协议断言和所述功能覆盖率捆绑至捆绑文件中的所述RTL设计;
从所述RTL设计生成形式分析文件和仿真设置文件,生成从所述静态CDC分析数据库提取的用于CDC路径的设置和约束数据,并使用所生成的所述形式分析和仿真设置文件来编译所述捆绑文件;
运行所述RTL设计的形式分析,以便确定经证实的和未证实的CDC协议断言;
更新所述仿真设置文件,以便关闭经证实的CDC协议断言;
使用所述未证实的协议断言和功能覆盖率来运行所述RTL设计的仿真;
使用所述RTL设计的形式分析结果和仿真结果来更新集中式结果数据库;以及
生成所述形式分析结果和仿真结果的可视化,以用于审阅和调试中的至少一项;
其中,为每个CDC路径分配永久唯一标识符,并且其中,使用所述永久唯一标识符来更新所述集中式结果数据库,以便标记相关联的CDC协议断言、功能覆盖率以及形式分析结果和仿真结果。
2.根据权利要求1所述的方法,其中,所述CDC路径信息包括至少一个文本串,并且其中,所述永久唯一标识符是从所述文本串生成的数字串。
3.根据权利要求2所述的方法,其中,所述数字串是通过使用数学运算来减少所述文本串中的字符数而生成的。
4.根据权利要求3所述的方法,其中,所述永久唯一标识符被添加至所述CDC路径的断言和功能覆盖率的实例名称。
5.根据权利要求3所述的方法,其中,所述永久唯一标识符被添加至与所述CDC路径中的结构相关联的CDC协议断言。
6.根据权利要求1所述的方法,其中,所述CDC路径中的结构是CDC同步器,并且其中,基于所述CDC同步器的类型来生成所述相关联的CDC协议断言。
7.根据权利要求1所述的方法,其中,在所述CDC路径中不存在结构,并且其中,基于结构的不存在来生成所述相关联的CDC协议断言。
8.根据权利要求1所述的方法,其中,所述未证实的CDC协议断言是违反的或无定论的。
9.根据权利要求8所述的方法,其中,在形式分析期间,生成指示违反CDC协议断言的激励的反例。
10.根据权利要求9所述的方法,其中,在形式分析期间,对经证实的CDC协议断言生成健全波形,所述健全波形指示不违反CDC协议断言的激励。
11.根据权利要求10所述的方法,其中,所述形式分析结果的可视化包括显示所述健全波形。
12.根据权利要求9所述的方法,其中,所述形式分析和仿真结果的可视化包括显示表示违反所述CDC协议断言的激励的波形。
13.根据权利要求8所述的方法,其中,仿真参数文件和形式文件包括允许更新所述集中式结果数据库的回调函数。
14.根据权利要求12所述的方法,其中,仿真参数文件采用PLI回调函数来捕获断言信息,所述断言信息包括示出激励是否违反CDC协议断言的数据。
15.根据权利要求13所述的方法,其中,所述方法进一步包括以下步骤:
使用所述CDC协议断言和功能覆盖率的结果信息来更新所述静态CDC分析数据库。
16.根据权利要求1所述的方法,其中,所述CDC协议断言是SystemVerilog断言(SVAs)。
17.根据权利要求1所述的方法,其中,所述CDC协议的功能覆盖率是SystemVerilog覆盖点和覆盖组。
18.根据前述权利要求中任一项所述的方法,其中,所述设置文件包括:仿真编译和仿真参数文件、形式分析编译和运行脚本、以及形式分析约束文件。
19.一种数据处理系统,其中,所述数据处理系统包括适于执行根据权利要求1至18中任一项所述的方法的步骤的处理器。
20.一种包括指令的计算机程序,其中,当所述计算机程序由计算机执行时,所述指令使所述计算机执行根据权利要求1至18中任一项所述的方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/048681 WO2022046089A1 (en) | 2020-08-31 | 2020-08-31 | Dynamic cdc verification method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116157799A true CN116157799A (zh) | 2023-05-23 |
Family
ID=72473996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080103641.3A Pending CN116157799A (zh) | 2020-08-31 | 2020-08-31 | 动态cdc验证方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230306172A1 (zh) |
EP (1) | EP4205015A1 (zh) |
CN (1) | CN116157799A (zh) |
WO (1) | WO2022046089A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663463A (zh) * | 2023-07-27 | 2023-08-29 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
CN116776793A (zh) * | 2023-08-22 | 2023-09-19 | 成都翌创微电子有限公司 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
-
2020
- 2020-08-31 EP EP20771706.7A patent/EP4205015A1/en active Pending
- 2020-08-31 US US18/023,819 patent/US20230306172A1/en active Pending
- 2020-08-31 WO PCT/US2020/048681 patent/WO2022046089A1/en unknown
- 2020-08-31 CN CN202080103641.3A patent/CN116157799A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663463A (zh) * | 2023-07-27 | 2023-08-29 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
CN116663463B (zh) * | 2023-07-27 | 2023-11-10 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
CN116776793A (zh) * | 2023-08-22 | 2023-09-19 | 成都翌创微电子有限公司 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
CN116776793B (zh) * | 2023-08-22 | 2023-11-03 | 成都翌创微电子有限公司 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230306172A1 (en) | 2023-09-28 |
WO2022046089A1 (en) | 2022-03-03 |
EP4205015A1 (en) | 2023-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6591403B1 (en) | System and method for specifying hardware description language assertions targeting a diverse set of verification tools | |
Mattarei et al. | Cosa: Integrated verification for agile hardware design | |
US9721057B2 (en) | System and method for netlist clock domain crossing verification | |
CN116157799A (zh) | 动态cdc验证方法 | |
US7888971B2 (en) | Verification support system and method | |
US20110184714A1 (en) | Methods and Systems for Analyzing Electronic Design and Validation Models | |
US20090070619A1 (en) | Multi-cycle path information verification method and multi-cycle path information verification device | |
Bombieri et al. | Reusing RTL assertion checkers for verification of SystemC TLM models | |
CN112131807A (zh) | 一种跨时钟域验证方法、装置、设备及介质 | |
US20090150103A1 (en) | Computer-Based Method and System for Simulating Static Timing Clocking Results | |
Sharma et al. | An automation methodology for amelioration of SpyGlassCDC abstract view generation process | |
CN103729289B (zh) | 一种利用图式标明hpd逻辑可靠性的方法 | |
JP5568779B2 (ja) | 論理検証方法及び論理検証システム | |
Choudhury et al. | Accelerating CDC Verification Closure on Gate-Level Designs | |
US8160859B2 (en) | Medium storing logic simulation program, logic simulation apparatus, and logic simulation method | |
US10546083B1 (en) | System, method, and computer program product for improving coverage accuracy in formal verification | |
Tarawneh et al. | Xprova: Formal Verification Tool with Built-in Metastability Modeling | |
US20230205969A1 (en) | Techniques for modeling and verification of convergence for hierarchical domain crossings | |
Hany et al. | Approach for a unified functional verification flow | |
US7047173B1 (en) | Analog signal verification using digital signatures | |
Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
US11151295B1 (en) | Method and system for sequential equivalence checking | |
Chang et al. | InVerS: an incremental verification system with circuit similarity metrics and error visualization | |
Urdahl et al. | Architectural system modeling for correct-by-construction RTL design | |
US20240311538A1 (en) | System and Method for Glitch Debugging |
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 |