CN116776793B - 静态时序分析和前仿真相结合的多周期路径约束验证方法 - Google Patents
静态时序分析和前仿真相结合的多周期路径约束验证方法 Download PDFInfo
- Publication number
- CN116776793B CN116776793B CN202311055205.5A CN202311055205A CN116776793B CN 116776793 B CN116776793 B CN 116776793B CN 202311055205 A CN202311055205 A CN 202311055205A CN 116776793 B CN116776793 B CN 116776793B
- Authority
- CN
- China
- Prior art keywords
- clock
- trigger
- name
- net
- reg
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 104
- 238000012795 verification Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000003068 static effect Effects 0.000 title claims abstract description 32
- 238000012300 Sequence Analysis Methods 0.000 title claims abstract description 24
- 230000009191 jumping Effects 0.000 claims abstract description 17
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 12
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 claims description 10
- 238000005457 optimization Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101100390225 Arabidopsis thaliana MOD1 gene Proteins 0.000 description 2
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 2
- 101100003180 Colletotrichum lindemuthianum ATG1 gene Proteins 0.000 description 2
- 101100539461 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ULA1 gene Proteins 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明涉及数字芯片多周期路径验证技术领域,公开了一种静态时序分析和前仿真相结合的多周期路径约束验证方法,包括:S1、搭建并运行基于网表的静态时序分析工具环境;S2、在所述静态时序分析工具环境中输入需要验证的多周期路径约束;S3、获取相应的触发器的触发器名称reg_net、触发器时钟名称clock_net以及约束设置放松的周期数目n;S4、运行前仿真用例,将所述触发器的名称reg_net、触发器时钟名称clock_net、周期数目n自动分别转换成前仿真断言;S5、重复S4;S6、检查每一个多周期路径是否都有对应的断言,若是,则跳转至S8,否则,跳转至S7;S7、新增前仿真用例,返回S4;S8、检查断言结果是否有出现Error。本发明使得验证时间缩短。
Description
技术领域
本发明涉及数字芯片多周期路径验证技术领域,具体涉及一种静态时序分析和前仿真相结合的多周期路径约束验证方法。
背景技术
随着集成电路复杂度和规模的日益增加,时钟频率也不断提高,芯片时序收敛难度也不断提升。多周期路径(multicycle path)是指需要一个以上时钟周期数据才会为稳定的路径,如图2所示,这种路径通常逻辑更长,如果按照时序分析工具默认一个时钟周期的收敛方法,时序收敛难度将变得很困难。因此,对于多周期路径通常要设置更宽松的时序约束(如利用set_multicycle_path 约束),来减少时序收敛难度。而多周期路径的约束的正确性是需要验证的,通常在“后仿真”进行仿真测试,并需要设计人员和验证人员对电路输入输出情况进行分析确认,也可以采用在设计中添加断言的方式来提高验证效率。
采用“后仿真”和人工确认的方法来确认多周期路径具有如下缺陷:1)验证人力的增加,验证周期被拉长;2)“后仿真”通常在芯片流片前才会进行,而且仿真速度很慢,会导致流片时间被拖延;3)后仿真用例通常很少,并不能保证每一条多周期路径被激活翻转,因此增加用例也会导致人力和时间的浪费。
采用在设计中添加断言的方式也有局限性:1)需要增加设计人力成本来增加断言代码。2)对于从外部购买的第三方IP的代码,代码修改会产生一定风险。
发明内容
本发明提供一种静态时序分析和前仿真相结合的多周期路径约束验证方法,解决传统方法中后仿真验证的诸多局限性问题,将后仿真验证的问题提前到前仿真验证,且流程自动化,大幅度减少设计人员和验证人员的人力成本。
本发明通过下述技术方案实现:
一种静态时序分析和前仿真相结合的多周期路径约束验证方法,包括:
S1、搭建并运行基于网表的静态时序分析工具环境;
S2、在所述静态时序分析工具环境中输入需要验证的多周期路径约束;
S3、根据多周期路径约束覆盖的若干多周期路径的起点时钟和终点时钟的频率关系获取相应的触发器的触发器名称reg_net、触发器时钟名称clock_net以及约束设置放松的周期数目n;
S4、运行前仿真用例,将所述触发器的名称reg_net、触发器时钟名称clock_net、周期数目n自动分别转换成前仿真断言,并将断言结果存储进日志中;
S5、重复S4,直到所有的前仿真用例均被运行完;
S6、检查每一个多周期路径是否都有对应的断言,若是,则跳转至S8,否则,跳转至S7;
S7、针对无断言的多周期路径,新增前仿真用例,返回S4;
S8、检查日志中的断言结果是否有出现Error,若是,则证明该多周期路径约束有风险,否则,表示该多周期路径约束验证通过。
作为优化,S3中,获取相应的触发器名称reg_net、触发器时钟名称clock_net的具体过程为:
S3.1、通过静态时序分析工具将所有被所述多周期路径约束覆盖到的多周期路径的起点触发器和终点触发器的触发器名称用get_timing_path 命令提取出来;
S3.2、利用静态时序分析工具,从起点触发器或终点触发器的时钟端口向前追溯用于发出时钟信号的可实例化节点,所述可实例化节点的名称即为触发器时钟名称clock_net。
作为优化,所述实例化节点包括提前插入到RTL验证电路中的PLL。
作为优化,所述实例化节点包括提前插入到RTL验证电路中的BUFFER。
作为优化,所述实例化节点包括提前插入到RTL验证电路中的用于发出时钟信号的时钟触发器。
作为优化,根据多周期路径的起点时钟和终点时钟的频率关系将多周期路径分为三类:
第一类:快频率时钟到慢频率时钟,在该情况下获取起点触发器名称、起点触发器时钟名称以及约束设置放松的周期数目n;
第二类:慢频率时钟到快频率时钟,在该情况下获取终点触发器名称、终点触发器时钟名称以及约束设置放松的周期数目n;
第三类:相同频率时钟之间,在该情况下同时获取起点触发器名称、终点触发器名称、起点触发器时钟名称、终点触发器时钟名称以及约束设置放松的周期数目n。
作为优化,S3与S4之间还包括:将所述触发器名称reg_net、触发器时钟名称clock_net转换为rtl格式的触发器名称reg_trl、触发器时钟名称clock_trl。
作为优化,若多周期路径为第一类或第二类,S4的具体步骤为:
S4.1、运行前仿真用例,判断其中一个多周期路径中的触发器名称reg_trl在基于set-up-hold翻转时,对应的触发器时钟名称clock_trl是否有同时翻转,若是,则跳转至S4.2,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.2、记录翻转后的第一个周期的所述触发器名称reg_trl的值为reg_trl_cycle1,同时记录该多周期路径已被前仿真用例覆盖;
S4.3、在后续(n-1)个周期的触发器时钟名称clock_trl翻转中,采集每一次触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值,并判断触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值是否都等于reg_trl_cycle1,若是,则输出pass,否则,输出Error。
作为优化,S7中,新增前仿真用例的具体手段包括:通过人工分析的方法,设置新增的前仿真用例,该用例使得原来无断言的多周期路径的触发器reg_trl发生翻转。
作为优化,若多周期路径为第三类,则选择reg1或者reg2作为验证对象,S4的具体步骤为:
S4.4、运行前仿真用例,判断其中一个多周期路径中的起点触发器名称在基于set-up-hold翻转时,起点触发器时钟名称是否有同时翻转,若是,则跳转至S4.5,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.5、记录翻转后的第一个周期的所述起点触发器名称的值为,同时记录该多周期路径已被前仿真用例覆盖;
S4.6、在后续(n-1)个周期的起点触发器时钟名称翻转中,采集每一次起点触发器时钟名称翻转时的起点触发器名称的值,并判断起点触发器时钟名称翻转时的起点触发器名称的值是否都等于,若是,则输出pass,否则,输出Error;
或者,
S4.7、运行前仿真用例,判断其中一个多周期路径中的终点触发器名称在基于set-up-hold翻转时,终点触发器时钟名称是否有同时翻转,若是,则跳转至S4.8,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.8、记录翻转后的第一个周期的所述终点触发器名称的值为,同时记录该多周期路径已被前仿真用例覆盖;
S4.9、在后续(n-1)个周期的终点触发器时钟名称翻转中,采集每一次终点触发器时钟名称翻转时的终点触发器名称的值,并判断终点触发器时钟名称翻转时的终点触发器名称的值是否都等于,若是,则输出pass,否则,输出Error。
本发明与现有技术相比,具有如下的优点和有益效果:
1.本发明将约束验证工作从后仿真前移到前仿真,时间节点提前有利于提升芯片整体开发节奏,同时前仿真会比后仿真速度更快,使得验证时间缩短;
2.前仿真具有更多用例,更容易让需要验证的路径被验证到,增补用例也更容易,同时本发明的方法不需要设计人员在代码中人工插入断言,减少设计人力。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本发明所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法的流程图;
图2为多周期路径的示意图;
图3为快时钟到慢时钟的示意图;
图4为慢时钟到快时钟的示意图;
图5为同频率时钟的示意图;
图6为断言过程的流程图;
图7为名称转化的示意图。
实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
基于背景技术描述的后仿真的诸多局限,本发明从多周期路径的基本特征出发,利用静态时序分析工具和前仿真相结合的方法,将后仿真前移至前仿真。实现了更优的验证效果,节省了大量人力。
首先介绍“前仿真”和“后仿真”的区别:
前仿真和后仿真都属于数字验证工程师的工作范畴,使用的工具也基本一样,区别如下:
解决的问题不同:前仿真也称为功能仿真,主要验证功能正确性,后仿真主要验证的是时序正确性。
流程环节不同:前仿真需要在RTL设计阶段进行,流程更靠前,后仿真需要在布局布线之后,流程会更靠后,往往在芯片流片前夕。
仿真速度:前仿真速度会远远快于后仿真,因为后仿真需要读入大量物理参数。
验证完备性:前仿真的验证用例数量和完备性会更高,而后仿真由于只关注时序正确性,而且仿真速度很慢,所以用例会远远少于前仿真。
基于如上差异,将本来需要后仿真验证的多周期路径提前到前仿真将达到如下优势:
仿真速度更快。
前仿真用例更多,容易覆盖到被验证的路径,而且增加用例也更容易实现
验证前置有利于整体开发流程节奏,约早期发现问题,对整体项目的代价越小。如果在后仿真发现问题,往往在流片前夕,那么只能采用ECO(Engineering Change Order),或者延期的方式,整体时间代价和人力代价都更大。
接下来介绍多周期路径的基本特征:
多周期路径可以分类为如下三种情况:
1)快频率时钟到慢频率时钟 2)相同频率时钟之间 3)慢频率时钟到快频率时钟。
对于快频率时钟到慢频率时钟的情况,例如图3所示,clk2是clk1频率的4分频,该类路径通常会有使能信号控制ENR1,来保证起点触发器reg1的输出Q在4个时钟周期内保持不变,即cycle2~4应该与cycle1时刻的值一致。该类路径会通过set_multicycle_path命令进行放松约束,该约束会令建立时间(setup time)检查通常放松至4个时钟周期。 如果在仿真中发现cycle2~4和cycle1数据不一致,则可能有两种情况:1)该电路的reg2输入会漏采样cycle1~3的数据,即可能是设计错误 2)该条路径是普通路径,不是多周期路径,不能放松约束,即约束错误。这两种错误对芯片都是致命的,需要重点关注。
对于慢频率时钟到快频率时钟的情况,例如图4所示,clk1是clk2的四分频,该路径通常会在终点寄存器reg2上有使能信号ENR2,来保证每四个周期采样一次reg1的输出,因此reg2的输出Q会保持四个周期不变。如果在仿真中发现reg2的输出cycle2~4和cycle1不一样,则有可能是如下两种情况:1)这条多周期路径中reg2没有使能信号,由于约束已被放松,reg2可能在cycle1~cycle3采样到亚稳态并向后转播,即设计错误;2)该条路径是普通路径,不是多周期路径,不能放松约束,即约束错误。
对于相同频率之间的情况,如图5所示,该类路径的约束检查放松的周期通常由电路功能决定,如果电路功能认为可以放松4个时钟周期,那么也会有使能信号ENR1来保证起点触发器reg1的输出在4个周期内保持不变,或者ENR2来保证触发器reg2的输出在4个周期保持不变;否则,是漏采样或者约束错误。分析过程同快时钟到慢时钟和慢时钟到快时钟一致,这里就不再赘述了。
上述分析了所有多周期路径的基本特征,可以利用前仿真工具(如synopsys 公司的VCS工具)来验证仿真波形是否满足上述要求。验证环境的输入为RTL代码,需要验证的断言和测试用例。该断言如果通过人工输出会花费大量人力和时间,而且可能出现覆盖不全的情况,因此本发明利用静态时序分析工具进行自动化输出断言。
本发明通过静态时序分析工具(如synopsys公司的primetime)可以将所有被set_multicycle_path约束覆盖到的路径的起点和终点用get_timing_path 命令快速提出。但静态时序分析工具只能针对网表,因此提出来的格式是网表格式,所以需要使用脚本将网表格式的起点和终点转成RTL格式,也即名称转化。
起点和终点通常都是触发器,比较容易进行名称转化,转化的例子如图7所示。而时钟点由于在rtl 验证环境中不容易抓取,因此,我们利用静态时序分析工具,从起点或终点触发器的时钟端口向前追溯,一直追溯到可实例化的节点(如PLL,RTL中预插入的BUFFER,触发器等等),这些实例化节点会提前插入到RTL中,也更容易对名称进行转化。
通过上述描述和分析,本发明可以将多周期路径的约束验证从后仿真前移到前仿真,具体的流程通过如下流程图方式描述,如图1所示:本实施例的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,包括:
S1、搭建并运行基于网表的静态时序分析工具环境,搭建流程参考参考文献【1】:
S2、在所述静态时序分析工具环境中输入需要验证的多周期路径约束;
S3、根据多周期路径约束覆盖的若干多周期路径的起点时钟和终点时钟的频率关系获取相应的触发器的触发器名称reg_net、触发器时钟名称clock_net以及约束设置放松的周期数目n;
具体过程为:
S3.1、通过静态时序分析工具将所有被所述多周期路径约束覆盖到的多周期路径的起点触发器和终点触发器的触发器名称用get_timing_path 命令提取出来;
S3.2、利用静态时序分析工具,从起点触发器或终点触发器的时钟端口向前追溯用于发出时钟信号的可实例化节点,所述可实例化节点的名称即为触发器时钟名称clock_net。
具体的,根据多周期路径的起点时钟和终点时钟的频率关系将多周期路径分为三类:
第一类:快频率时钟到慢频率时钟,在该情况下获取起点触发器名称、起点触发器时钟名称以及约束设置放松的周期数目n;
第二类:慢频率时钟到快频率时钟,在该情况下获取终点触发器名称、终点触发器时钟名称以及约束设置放松的周期数目n;
第三类:相同频率时钟之间,在该情况下同时获取起点触发器名称、终点触发器名称、起点触发器时钟名称、终点触发器时钟名称以及约束设置放松的周期数目n。
获取实例化节点包括提前插入到RTL验证电路中的PLL或BUFFER或触发器。本发明中,实例化节点可以理解为时钟发生器,而作为时钟发生器的触发器与前面的起点/终点触发器不是同一个物体,它们可以是同一个型号的设备。
S4、运行前仿真用例,将所述触发器的名称reg_net、触发器时钟名称clock_net、周期数目n自动分别转换成前仿真断言,并将断言结果存储进日志中;
由于静态时序分析工具只能针对网表,因此提出来的格式是网表格式,所以需要使用脚本将网表格式的起点和终点转成RTL格式,也即名称转化,因此,S3与S4之间还包括:将所述触发器名称reg_net、触发器时钟名称clock_net转换为rtl格式的触发器名称reg_trl、触发器时钟名称clock_trl。
如图6所示,若多周期路径为第一类或第二类,具体步骤为:
S4.1、运行前仿真用例,判断其中一个多周期路径中的触发器名称reg_trl在基于set-up-hold翻转时,对应的触发器时钟名称clock_trl是否有同时翻转,若是,则跳转至S4.2,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
若多周期路径为第一类,则判断该多周期路径的起点触发器名称在翻转时起点触发器时钟名称是否有同时翻转,如果有,那么,该翻转后的起点触发器名称的值作为第一个周期的reg_trl_cycle1,否则,判定该多周期路径未被前仿真用例覆盖;
同理,多周期路径为第二类,则判断该多周期路径的终点触发器名称在翻转时终点触发器时钟名称是否有同时翻转,如果有,那么,该翻转后的终点触发器名称的值作为第一个周期的reg_trl_cycle1,否则,判定该多周期路径未被前仿真用例覆盖。
S4.2、记录翻转后的第一个周期的所述触发器名称reg_trl的值为reg_trl_cycle1,同时记录该多周期路径已被前仿真用例覆盖;
S4.3、在后续(n-1)个周期的触发器时钟名称clock_trl翻转中,采集每一次触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值,并判断触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值是否都等于reg_trl_cycle1,若是,则输出pass,否则,输出Error。
若多周期路径为第三类,则选择reg1或者reg2作为验证对象,S4的具体步骤为:
S4.4、运行前仿真用例,判断其中一个多周期路径中的起点触发器名称在基于set-up-hold翻转时,起点触发器时钟名称是否有同时翻转,若是,则跳转至S4.5,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.5、记录翻转后的第一个周期的所述起点触发器名称的值为,同时记录该多周期路径已被前仿真用例覆盖;
S4.6、在后续(n-1)个周期的起点触发器时钟名称翻转中,采集每一次起点触发器时钟名称翻转时的起点触发器名称的值,并判断起点触发器时钟名称翻转时的起点触发器名称的值是否都等于,若是,则输出pass,否则,输出Error;
或者,
S4.7、运行前仿真用例,判断其中一个多周期路径中的终点触发器名称在基于set-up-hold翻转时,终点触发器时钟名称是否有同时翻转,若是,则跳转至S4.8,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.8、记录翻转后的第一个周期的所述终点触发器名称的值为,同时记录该多周期路径已被前仿真用例覆盖;
S4.9、在后续(n-1)个周期的终点触发器时钟名称翻转中,采集每一次终点触发器时钟名称翻转时的终点触发器名称的值,并判断终点触发器时钟名称翻转时的终点触发器名称的值是否都等于,若是,则输出pass,否则,输出Error。
S5、重复S4,直到所有的前仿真用例均被运行完;
S6、检查每一个多周期路径是否都有对应的断言,若是,则跳转至S8,否则,跳转至S7;
S7、针对无断言的多周期路径,新增前仿真用例,返回S4;具体包括:通过人工分析的方法,设置新增的前仿真用例,该用例使得原来无断言的多周期路径的触发器reg_trl发生翻转。
1、了解模块功能,制定验证计划和验证方案2、编写测试用例代码,并进行仿真验证,用例应保证可以发生翻转。
S8、检查日志中的断言结果是否有出现Error,若是,则证明该多周期路径约束有风险,否则,表示该多周期路径约束验证通过。
参考文件:
【1】synopsys PrimeTime User Guide;
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,包括:
S1、搭建并运行基于网表的静态时序分析工具环境;
S2、在所述静态时序分析工具环境中输入需要验证的多周期路径约束;
S3、根据多周期路径约束覆盖的若干多周期路径的起点时钟和终点时钟的频率关系获取相应的触发器的触发器名称reg_net、触发器时钟名称clock_net以及约束设置放松的周期数目n;
根据多周期路径的起点时钟和终点时钟的频率关系将多周期路径分为三类:
第一类:快频率时钟到慢频率时钟,在该情况下获取起点触发器名称reg_netq、起点触发器时钟名称clock_netq以及约束设置放松的周期数目n;
第二类:慢频率时钟到快频率时钟,在该情况下获取终点触发器名称reg_netz、终点触发器时钟名称clock_netz以及约束设置放松的周期数目n;
第三类:相同频率时钟之间,在该情况下同时获取起点触发器名称reg_netq、终点触发器名称 reg_netz、起点触发器时钟名称clock_netq、终点触发器时钟名称clock_netz以及约束设置放松的周期数目n;
S4、运行前仿真用例,将所述触发器的名称reg_net、触发器时钟名称clock_net、周期数目n自动分别转换成前仿真断言,并将断言结果存储进日志中;
若多周期路径为第一类和第二类,S4的具体步骤为:
S4.1、运行前仿真用例,判断其中一个多周期路径中的触发器名称reg_trl在基于set-up-hold翻转时,对应的触发器时钟名称clock_trl是否有同时翻转,若是,则跳转至S4.2,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.2、记录翻转后的第一个周期的所述触发器名称reg_trl的值为reg_trl_cycle1,同时记录该多周期路径已被前仿真用例覆盖;
S4.3、在后续(n-1)个周期的触发器时钟名称clock_trl翻转中,采集每一次触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值,并判断触发器时钟名称clock_trl翻转时的触发器名称reg_trl的值是否都等于reg_trl_cycle1,若是,则输出pass,否则,输出Error;
若多周期路径为第三类,则选择reg1或者reg2作为验证对象,S4的具体步骤为:
S4.4、运行前仿真用例,判断其中一个多周期路径中的起点触发器名称reg_trlq在基于set-up-hold翻转时,起点触发器时钟名称clock_trlq是否有同时翻转,若是,则跳转至S4.5,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.5、记录翻转后的第一个周期的所述起点触发器名称reg_trlq的值为reg_trlq_cycle1,同时记录该多周期路径已被前仿真用例覆盖;
S4.6、在后续(n-1)个周期的起点触发器时钟名称clock_trlq翻转中,采集每一次起点触发器时钟名称clock_trlq翻转时的起点触发器名称reg_trlq的值,并判断起点触发器时钟名称clock_trlq翻转时的起点触发器名称reg_trlq的值是否都等于 reg_trlq_cycle1,若是,则输出pass,否则,输出Error;
或者,
S4.7、运行前仿真用例,判断其中一个多周期路径中的终点触发器名称 reg_netz在基于set-up-hold翻转时,终点触发器时钟名称clock_netz是否有同时翻转,若是,则跳转至S4.8,否则,判定该多周期路径无断言,未被前仿真用例覆盖;
S4.8、记录翻转后的第一个周期的所述终点触发器名称reg_netz的值为 reg_trlz_cycle1,同时记录该多周期路径已被前仿真用例覆盖;
S4.9、在后续(n-1)个周期的终点触发器时钟名称clock_netz翻转中,采集每一次终点触发器时钟名称clock_netz翻转时的终点触发器名称reg_netz的值,并判断终点触发器时钟名称clock_netz翻转时的终点触发器名称reg_netz的值是否都等于reg_trlz_cycle1,若是,则输出pass,否则,输出Error;
S5、重复S4,直到所有的前仿真用例均被运行完;
S6、检查每一个多周期路径是否都有对应的断言,若是,则跳转至S8,否则,跳转至S7;
S7、针对无断言的多周期路径,新增前仿真用例,返回S4;
新增前仿真用例的具体手段包括:通过人工分析的方法,设置新增的前仿真用例,该用例使得原来无断言的多周期路径的触发器reg_trl发生翻转;
S8、检查日志中的断言结果是否有出现Error,若是,则证明该多周期路径约束有风险,否则,表示该多周期路径约束验证通过。
2.根据权利要求1所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,S3中,获取相应的触发器名称reg_net、触发器时钟名称clock_net的具体过程为:
S3.1、通过静态时序分析工具将所有被所述多周期路径约束覆盖到的多周期路径的起点触发器和终点触发器的触发器名称用get_timing_path 命令提取出来;
S3.2、利用静态时序分析工具,从起点触发器或终点触发器的时钟端口向前追溯用于发出时钟信号的可实例化节点,所述可实例化节点的名称即为触发器时钟名称clock_net。
3.根据权利要求2所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,所述实例化节点包括提前插入到RTL验证电路中的PLL。
4.根据权利要求2所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,所述实例化节点包括提前插入到RTL验证电路中的BUFFER。
5.根据权利要求2所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,所述实例化节点包括提前插入到RTL验证电路中的用于发出时钟信号的时钟触发器。
6.根据权利要求1所述的一种静态时序分析和前仿真相结合的多周期路径约束验证方法,其特征在于,S3与S4之间还包括:将所述触发器名称reg_net、触发器时钟名称clock_net转换为rtl格式的触发器名称reg_trl、触发器时钟名称clock_trl。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311055205.5A CN116776793B (zh) | 2023-08-22 | 2023-08-22 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311055205.5A CN116776793B (zh) | 2023-08-22 | 2023-08-22 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116776793A CN116776793A (zh) | 2023-09-19 |
CN116776793B true CN116776793B (zh) | 2023-11-03 |
Family
ID=87989828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311055205.5A Active CN116776793B (zh) | 2023-08-22 | 2023-08-22 | 静态时序分析和前仿真相结合的多周期路径约束验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116776793B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117236239B (zh) * | 2023-11-10 | 2024-02-20 | 成都翌创微电子有限公司 | 用于数字电路验证的通用连通性测试方法、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452239A (en) * | 1993-01-29 | 1995-09-19 | Quickturn Design Systems, Inc. | Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system |
EP0685793A2 (en) * | 1994-03-09 | 1995-12-06 | Texas Instruments Incorporated | Emulation device, system and method with distributed control of test interfaces in clock domains |
US7398495B1 (en) * | 2006-04-06 | 2008-07-08 | Advanced Micro Devices, Inc. | Method and apparatus for characterizing arrays using cell-based timing elements |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
CN114912282A (zh) * | 2022-05-23 | 2022-08-16 | 苏州同元软控信息技术有限公司 | 仿真计算方法、装置、设备和存储介质 |
CN115758960A (zh) * | 2022-11-24 | 2023-03-07 | 深圳智微电子科技有限公司 | 一种芯片数字时序设计的验证方法 |
CN115935866A (zh) * | 2022-12-27 | 2023-04-07 | 深存科技(无锡)有限公司 | 一种集成电路时序约束功能验证方法 |
CN116157799A (zh) * | 2020-08-31 | 2023-05-23 | 西门子工业软件有限公司 | 动态cdc验证方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977400B2 (en) * | 2019-06-26 | 2021-04-13 | Mentor Graphics Corporation | Deterministic test pattern generation for designs with timing exceptions |
GB2597475B (en) * | 2020-07-22 | 2022-10-26 | Imagination Tech Ltd | Methods and systems for verifying a property of an integrated circuit hardware design using a quiescent state |
-
2023
- 2023-08-22 CN CN202311055205.5A patent/CN116776793B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452239A (en) * | 1993-01-29 | 1995-09-19 | Quickturn Design Systems, Inc. | Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system |
EP0685793A2 (en) * | 1994-03-09 | 1995-12-06 | Texas Instruments Incorporated | Emulation device, system and method with distributed control of test interfaces in clock domains |
US7398495B1 (en) * | 2006-04-06 | 2008-07-08 | Advanced Micro Devices, Inc. | Method and apparatus for characterizing arrays using cell-based timing elements |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
CN116157799A (zh) * | 2020-08-31 | 2023-05-23 | 西门子工业软件有限公司 | 动态cdc验证方法 |
CN114912282A (zh) * | 2022-05-23 | 2022-08-16 | 苏州同元软控信息技术有限公司 | 仿真计算方法、装置、设备和存储介质 |
CN115758960A (zh) * | 2022-11-24 | 2023-03-07 | 深圳智微电子科技有限公司 | 一种芯片数字时序设计的验证方法 |
CN115935866A (zh) * | 2022-12-27 | 2023-04-07 | 深存科技(无锡)有限公司 | 一种集成电路时序约束功能验证方法 |
Non-Patent Citations (2)
Title |
---|
基于反馈约束的SRAM接口时序分析方法;左丽丽等;计算机测量与控制;第28卷(第1期);179-183 * |
基于断言合成的验证方法学及应用;王锐;冯煌;;中国集成电路;第22卷(第10期);50-57 * |
Also Published As
Publication number | Publication date |
---|---|
CN116776793A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7730435B2 (en) | Automatic test component generation and inclusion into simulation testbench | |
CN100573537C (zh) | 一种soc芯片系统级验证系统及方法 | |
Bhatnagar | Advanced ASIC chip synthesis | |
US8972915B2 (en) | Static timing analysis of template-based asynchronous circuits | |
CN101539958B (zh) | 一种标准单元库和集成电路的设计方法和装置 | |
US7984400B2 (en) | Techniques for use with automated circuit design and simulations | |
Ott et al. | A designer's guide to VHDL synthesis | |
US20080313589A1 (en) | Techniques For Use With Automated Circuit Design and Simulations | |
EP2145272A1 (en) | Multiplexing of inputs and delayed inputs of a circuit emulation | |
WO2008140778A2 (en) | Transfer of emulator state to a hdl simulator | |
CN116776793B (zh) | 静态时序分析和前仿真相结合的多周期路径约束验证方法 | |
JP4078435B2 (ja) | 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法 | |
CN115470748A (zh) | 一种芯片仿真加速方法、装置、电子设备及存储介质 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
US7979262B1 (en) | Method for verifying connectivity of electrical circuit components | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
CN116341438A (zh) | 提高fpga原型验证时序收敛的方法、系统、设备和存储介质 | |
CN114186523B (zh) | 基于异步电路的数模混合设计方法及工艺移植方法 | |
CN114398852A (zh) | 一种soc开发流程 | |
CN116848518A (zh) | 一种延迟补偿方法以及相关设备 | |
CN117113908B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN117077603B (zh) | 一种验证方法、芯片、系统、电子设备及可读存储介质 | |
Davies et al. | Timing verification for asynchronous design | |
Ghofrani et al. | Assertion based verification in TLM |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |