ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func...

10
F U N C T I O N A L V E R I F I C A T I O N SULABH KUMAR KHARE ASHISH HARI MENTOR, A SIEMENS BUSINESS W H I T E P A P E R 功能 CDC 验证收敛的系统化加速技术 www.mentor.com 摘要 为满足不断增长的高性能和低功耗需求,现代 SOC 运用了多个异步时钟域。跨时 钟域 (CDC) 信号可横穿多个异步时钟域,而且由于数据转换相对于采样时钟是异步 的,该信号会产生亚稳态效应。SOC 在跨时钟域路径上使用同步器来缓解亚稳态效 应,并会将稳定信号传送至下游逻辑。然而,仅仅增加同步器并无法保证 CDC 信号 能可靠地穿过而不会丢失。每个同步器都假定协议行为正确,如果协议未得到遵 守,就会发生功能故障。因此,SOC 的功能 CDC 验证变得至关重要。现有功能 CDC 验证技术存在诸多限制和缺点,实现完整的功能 CDC 验证收敛极为困难且耗时费力。 本文将介绍现有功能验证方法,说明现有方法的问题,并提出一套自动化技术来 使噪声降至最低,实现更快的覆盖率以及改善调试。另外,我们还会说明建议技 术在 ASIC 设计上取得的结果。

Transcript of ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func...

Page 1: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

F U N C T I O N A L V E R I F I C A T I O N

SULABH KUMAR KHARE 和 ASHISH HARI,MENTOR, A SIEMENS BUSINESS

WH

IT

EP

AP

ER

功能 CDC 验证收敛的系统化加速技术

w w w . m e n t o r . c o m

摘要

为满足不断增长的高性能和低功耗需求,现代 SOC 运用了多个异步时钟域。跨时

钟域 (CDC) 信号可横穿多个异步时钟域,而且由于数据转换相对于采样时钟是异步

的,该信号会产生亚稳态效应。SOC 在跨时钟域路径上使用同步器来缓解亚稳态效

应,并会将稳定信号传送至下游逻辑。然而,仅仅增加同步器并无法保证 CDC 信号

能可靠地穿过而不会丢失。每个同步器都假定协议行为正确,如果协议未得到遵

守,就会发生功能故障。因此,SOC 的功能 CDC 验证变得至关重要。现有功能 CDC

验证技术存在诸多限制和缺点,实现完整的功能 CDC 验证收敛极为困难且耗时费力。

本文将介绍现有功能验证方法,说明现有方法的问题,并提出一套自动化技术来

使噪声降至最低,实现更快的覆盖率以及改善调试。另外,我们还会说明建议技

术在 ASIC 设计上取得的结果。

Page 2: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m2

功能 CDC 验证收敛的系统化加速技术

概述

为满足不断增长的高性能和低功耗需求,现代 SOC 需要依赖多个异步时钟域。CDC 信号在一个时钟域中

产生,在另一个异步时钟域中进行采样。数据转换相对于采样时钟是异步的,因此 CDC 信号会产生亚稳

态效应。跨时钟域路径上的同步器可以缓解亚稳态效应,将稳定信号传送至下游逻辑。CDC 同步器可保护

接收逻辑,防止其收到亚稳态值。然而,仅仅增加同步器并无法保证 CDC 信号能可靠地穿过而不会丢失。

每个同步器都假定协议行为正确,如果协议未得到遵守,就会发生功能故障。图 1 所示即为违反协议引起

数据丢失的一个示例。本例使用了一个 2-DFF 同步器来同步跨时钟域信号。同步器可确保即使第一个接收

端触发器发生亚稳态效应,它也会在一个时钟周期内稳定下来,这样一来,第二个接收端触发器绝不会

违反建立或保持时间要求,下游逻辑也绝不会收到亚稳态值。从波形可以清楚看出,2-DFF 同步器存在一

个潜在假设,即接收端触发器采样的数据保持稳定的时间至少为接收器时钟的 2 个时钟周期,如果数据不

到 2 个时钟周期就发生改变,则在某些情况下,可能会导致数据在第二个接收端触发器上丢失。

图 1:2-DFF 同步器违反协议导致数据丢失

所以即使 CDC 利用同步器防止亚稳态,仍可能存在功能错误。另外,可能还会出现其他问题,比如数据

不一致、假信号或与不同种类同步器相关的亚稳态,这些都可能引起跨时钟域的各种问题。因此,功能

CDC 验证是确保所有 CDC 在各种情况下正确工作的关键。设计和验证工程师采用仿真或形式验证方法执

行功能 CDC 验证,但发现很难实现收敛,原因在于结果中存在高噪声,并且需要投入大量精力来调试环境

(仿真/形式)中的问题,该环境与问题所在的 CDC 环境大不相同,需要予以解决。本文将介绍现有功能

CDC 验证方法存在的问题。我们提出了一套自动化技术来使噪声降至最低,实现更快的覆盖率以及改善

调试,从而消除更快实现完整的 CDC 功能验证收敛的障碍。

Page 3: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m3

功能 CDC 验证收敛的系统化加速技术

现有 CDC 功能验证方法

典型的功能 CDC 验证涉及到生成 CDC 路径所用的属性/断言。每个同步器都有特定协议,其中协议通过

断言予以指定。然后利用仿真或形式工具验证断言。图 2 所示为功能 CDC 验证的现有方法,其在静态

CDC 分析完成之后开始。

图 2:功能 CDC 验证 – 现有方法

静态 CDC 分析生成的结果包含所有 CDC 路径,这些路径带有发送/接收信号和相关时钟。关于同步器假

定条件的断言,是作为后处理步骤从 CDC 分析结果中提取的。然后利用仿真或形式工具验证提取的断言。

工程师采用现有的仿真和形式设置,或者基于设计知识创建一个设置。如果断言失败,协议断言将报告

仿真错误。仿真工具也会报告断言覆盖率。形式工具要么证明协议断言绝不会失败,要么生成协议失败的

反例。仿真或形式工具在各自环境中分别进行调试。如果发现问题,则修复设计/设置以确保没有其他功

能 CDC 故障。这种方法虽然声称能够找出 CDC 协议缺陷,但精度不高,覆盖率不足,且调试能力不强。

现有功能 CDC 验证方法的问题

现有功能 CDC 验证方法创建断言来描述 CDC 同步器协议。然而,所有现在使用的方法都存在下述一些常

见局限性:

冗余检查导致结果中有噪声

现有方法在每个时钟沿检查断言。一般而言,数据由使能条件控制,因此数据传输仅可在特定条件下发

生。如果断言中未包括使能条件,可能会生成许多虚假错误,这样一来便会延迟识别设计中的真正问

题。我们不必在每个边沿进行数据传输检查,因为其对仿真性能有不利影响。在图 3 显示的示例情形中,

CDC 发送和接收信号在某些条件下使能;不同时钟域用不同颜色高亮显示。

Page 4: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m4

功能 CDC 验证收敛的系统化加速技术

图 3:CDC 路径上的发送和接收信号的使能条件示例

图 4 所示为 CDC 上数据传输的波形。该波形表明,如果在每个时钟沿检查断言,仿真期间可能会产生很多

虚假错误。例如当 r3 为 0 时,接收端触发器不会对 tx_data 采样,因而无需检查 tx_data 的稳定性协议。

图 4:无使能条件时协议检查的波形(图 3 示例)

对于形式验证,工具可能会提供无效的反例,因为断言未考虑数据传输可能发生的条件。从形式工具调

试虚假激发需要更多时间,然后带着额外约束返回工具。如果使能条件嵌入属性本身,就能避免虚假失

败,减少达到形式验证收敛的工作量。

时钟频率变化导致验证不准确

现有方法从静态 CDC 结果生成断言,对参与时钟频率会做出某些假设。例如,对于数据稳定性检查,需

要利用发送到接收时钟周期比来计算保持数据稳定性的最少周期数。如果仿真使用的时钟频率改变,发

送到接收时钟周期比可能会随之改变,断言便可能无效。图 5 中的 2-DFF 同步器说明了这一情况。此处的

TX_MIN_CYCLE 为发送时钟的时钟周期数,在此期间内,数据应在发送时钟域内保持稳定。TX_MIN_CYLCE

根据发送到接收时钟周期比进行计算,在仿真或形式验证期间是一个定值。

图 5:2-DFF 数据稳定检查依赖于固定 TX_MIN_CYCLE

Page 5: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m5

功能 CDC 验证收敛的系统化加速技术

缺少功能覆盖率导致收敛时间延长

当前方法中,无论命中与否,仿真都会提供断言的覆盖率。覆盖率不提供/产生关于所执行验证的质量

的反馈。仿真期间需要其他覆盖率指标来评估测试的质量和功能 CDC 验证问题的影响。为确定 Signoff 标

准,必须知道是否已覆盖足够多的极端情况。现有方法缺乏获得 CDC 断言功能覆盖率的内置机制,使得

很有把握地按时完成功能 CDC 验证变为一项繁琐的工作。

调试能力有限

对于 CDC 用户,在仿真或形式环境中调试协议故障可能并非易事。仿真或形式工具以波形或信号值的形式

报告断言失败。因此,应当有一种办法来从波形定位到 CDC;如果链接/集成丢失,调试形式/仿真结果

可能非常耗时。为了加快调试,要求能够证明协议断言失败与 CDC 路径之间的关系。

形式验证的设置不一致

形式验证利用时钟、复位和常数等设置来指定工作模式。现有方法中,协议断言是利用 CDC 工具指定的

设置生成。使用形式验证时,CDC 工具运行与形式验证设置之间的不匹配常常会导致高噪声和假失败。例

如在 CDC 设置中,用户可能指定常数来定义某个功能模式。因此,同样的设置也应当用在形式验证中,

以确保在正确的环境中验证断言。由于自动生成形式验证设置的能力有限,创建 CDC 协议的形式验证设

置就需手动完成。工程师在该过程中可能会遗漏一些步骤,进而导致实现 CDC 功能验证收敛的时间延长。

单时钟断言导致结果不准确

到目前为止,传统解决方案是在 CDC 的一侧 —— 发送或接收时钟上 —— 模拟 CDC 断言。无论何种情

况,均有可能遗漏一些条件。多时钟断言模型可以更准确地捕捉 CDC 行为。图 5 中的协议断言是相对于

发送时钟编写的。当接收时钟关闭时,它能识别协议故障,但在某些情况下会显示虚假错误。图 6 所示示

例即为相对于接收时钟的一个 2-DFF CDC 协议。它也能识别协议故障,但完全遗漏了发生在发送时钟上的

位于接收时钟两个边沿之间的一次数据转换。

图 6:接收时钟上的 2-DFF 数据稳定性检查

Page 6: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m6

功能 CDC 验证收敛的系统化加速技术

功能 CDC 验证流程的建议增强方案

本文提出一些技术来提高功能 CDC 验证的精度,消除噪声,以及改善验证质量与调试体验。建议的功能

CDC 验证流程让功能 CDC 验证调试更接近 CDC 分析,如图 7 所示。

下面介绍加快功能 CDC 验证的建议技术:

仅在需要时检查断言

使用设计逻辑分析自动推测发送和接收对的数据传输(使能)条件。协议检查断言仅在传输条件下使

能。此外,还可以在设计中找出相关同步和异步复位条件,然后将其包括在断言中以降低结果中的噪

声。除载荷条件外,还要计算复位的使能条件并将其应用于协议断言以避免漏报。关于正确加载或使能

条件的信息亦有助于改善约束形式验证工具。图 8 显示了上例(图 3)在适当使能条件下的波形。

图 7:建议的功能 CDC 验证:降低噪声并让调试更接近 CDC

图 8:图 3 示例在使能条件 s3 与 r3 下的波形

确保时钟频率的一致性

利用时钟频率检查模块可确保计算断言参数所用的时钟频率始终与实际仿真所用的时钟频率一致。添加

结构体以使用户能在仿真时指定时钟频率,从而让该方法具有灵活性。通常,同一电路可在不同模式和

不同频率范围下工作。利用此方法,我们可以指定一系列频率,以便检查同步器是否对所有可能的频率

关系都能准确传输数据。利用时钟周期作为仿真 plusargs 参数,修改断言以动态计算所需的时钟周期数。

Page 7: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m7

功能 CDC 验证收敛的系统化加速技术

利用 SVA 覆盖组定义覆盖率

除断言覆盖率外,还可添加覆盖组以捕捉额外的覆盖率。这些捕捉指标对 CDC 同步器协议验证的完整性

具有相关性。例如在格雷编码协议中,若总线的所有位都从 1 变为 0 且从 0 变为 1,则表明该协议得到了

彻底的操练(图 9)。图 10 显示了一个使能覆盖组的仿真结果示例。

图 9:格雷编码协议的覆盖组

图 10:使能覆盖组的格雷编码协议仿真结果

增强调试技术

建议采用一套技术来增强调试,并将相关调试信息从仿真或形式验证集成到 CDC 环境中。

1. 最大程度地减少要调试的数据:利用仿真的编程语言接口 (PLI) 进行筛选并仅报告一组独特的

激发。每个激发都不相关,而且通常情况下,一个样本激发就足以供用户解决 CDC 功能错

误。PLI 还可用来捕捉所有协议断言的摘要以帮助调试。其中一些信息本可利用脚本后仿真

获得,但与 PLI 集成有助于缩短仿真运行时间,高效捕捉此信息。

2. 通过配置文件在仿真器中加载影响信号的相关锥体:生成的配置文件可用于调试仿真器波

形。CDC 静态分析识别特定协议涉及到的信号。配置文件有助于加载所有相关信号以便高效

进行调试。

Page 8: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m8

功能 CDC 验证收敛的系统化加速技术

3. 协议覆盖率与 CDC 覆盖率融合:通过此融合可清楚地了解已完成的验证数量,进而提高验

证质量,缩短验证收敛所需的时间。

这些增强功能支持实现无缝调试,并轻松获得 CDC 结果与仿真或形式验证失败之间的相关性。图 11 显示

了静态与功能 CDC 结果之间相关性的一个示例。

自动生成形式验证设置

形式工具运行设置应利用 CDC 工具运行信息生成。时钟、复位、常数和黑盒的约束条件应在 CDC 工具运

行期间生成。时钟和复位信息有助于形式验证工具对设计正确初始化,这样形式工具就不会对未初始化

寄存器给出假激发。常数和黑盒可确保利用形式验证工具验证的设计模式和层次结构同 CDC 工具一致。

借助一致的设置,形式工具在第一次运行中就能无缝工作。形式验证工具设置可以直接生成为工具专用

格式或通用格式。利用脚本可将通用设置转换为形式工具专用格式。

图 11:增强调试:静态与功能 CDC 结果之间的相关性

精确的跨时钟域断言

相对于数据变化和接收时钟来描述 CDC 协议断言最为精确。图 12 显示了 2-DFF CDC 的一个精确数据稳定

性断言示例。该断言可确保能够评估跨时钟域数据的所有转换,同时还能确保如果接收时钟关闭,断言

也不会激发。采用建议的断言,仿真将能报告最准确的协议违规情况。

图 12:接收时钟上的精确 2-DFF 数据稳定性检查

Page 9: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

w w w. m ento r.co m9

功能 CDC 验证收敛的系统化加速技术

实验与结果

我们在一组含 1 百万到 1 亿门电路和 20 到 240 个时钟的 SOC 设计上对现有和建议的功能验证流程进行了

比较。表 1 所示为采用现有功能验证方法的仿真结果。表 2 所示为采用建议技术的仿真结果。我们收集

了报告的断言失败数量、运行时间及覆盖率。在所有设计中,观察到断言中引入使能条件以及仅报告唯

一的特性失败之后,断言失败数量大幅减少。由于断言错误数量减少,观察到运行时间缩短。集成的覆

盖组和覆盖率属性有助于衡量仿真运行的质量。我们观察到,在少量案例中覆盖率不够高,因此需要修

改验证平台和设置。

表 I利用现有方法的仿真结果

测试 断言失败 运行时间(分钟) 覆盖率 (%)

1 37563 01:08 无

2 27690 02:44 无

3 819 01.29 无

4 6373 01:20 无

表 II利用建议技术的仿真结果

测试 断言失败 运行时间(分钟) 覆盖率 (%)

1 360 00:33 74

2 320 01:11 56

3 191 00.28 83

4 223 00:81 73

在形式验证流程中,建议的方法像仿真一样运用于同一组设计。表 3 显示了采用现有方法和用户自定义设

置的形式验证结果。缺少正确设置时,需要多次迭代才能约束形式验证工具,进而获得收敛结果。初始

运行中的无结论断言数量很多。采用建议技术时,形式验证工具在初始设置下会产生较多的有结论结

果,如表 4 所示。利用生成的设置,我们在第一次运行中就获得了有用的结果,形式验证设置和收敛时间

得以显著缩减。建议的形式与 CDC 集成有助于快速地从形式激发跳跃到 CDC 中的原理图窗口,反之亦然。

这样一来,就能进一步缩短调试问题所需的周转时间。

表 III采用用户自定义设置的形式验证结果

测试 总断言数 已证实 已激发 无结论

1 657 81 50 526

2 2274 22 1115 1137

3 354 33 92 229

4 891 2 498 391

Page 10: ÿ ? CDC £ l û¥ dÄF Î/site.eet-china.com/IQ/Mentor/参考资料/Mentor_IQ_0604.pdf · func tional verific a tion sulabh kumar khare ashish hari mentor, a siemens business whitepaper

©2017 Mentor Graphics Corporation,保留所有权利。本文档包含 Mentor Graphics Corporation 的专有信息,只能由原始接收者出于内部商业 目的全部或部分复制本文档,前提是在所有副本中都包含此完整声明。接受本文档即表示接收者同意采取一切合理措施,防止未经授权使

用这些信息。本文档中提及的所有商标属于其各自所有者。

如 需 最 新 信 息 , 请 致 电 联 系 我 们 , 或 者 访 问 :

功能 CDC 验证收敛的系统化加速技术

公司总部Mentor Graphics Corporation8005 S.W. Boeckman RoadWilsonville, Oregon 97070 USA电话:+1-503-685-7000传真:+1-503-685-1204

销售和产品信息电话:[email protected]

上海明导(上海)电子科技有限公司上海市浦东新区杨高南路 759 号陆家嘴世纪金融广场 2 号楼 5 楼邮编:200127电话:+86-21-6101-6301传真:+86-21-5047-1379

北京明导(上海)电子科技有限公司北京办事处北京市南礼士路 66 号建威大厦 1512 室邮编:100045电话:+86-10-5930-4001传真:+86-10-6808-0319

深圳明导(上海)电子科技有限公司深圳办事处深圳市福田区金田路 3088 号中洲大厦 24 楼 2401 室邮编:518040电话:+86-755-8282-2700传真:+86-755-8826-7750

w w w . m e n t o r . c o m

TECH15950-w-CNMGC 12-17

表 IV采用自动生成设置的形式验证结果

测试 总断言数 已证实 已激发 无结论

1 657 81 544 32

2 2274 273 1064 937

3 354 178 102 74

4 891 323 523 45

结语

本文提出的技术可显著缩短 CDC 路径功能验证收敛所需的时间。建议的技术易于运用,并能改善结果质

量。仿真性能得到改善,用户利用高级覆盖率指标就可以获得关于验证质量的稳定反馈。从 CDC 分析本

身自动生成的设置可缩短形式验证建立时间。形式调试与 CDC 结果的集成使形式调试的周转时间减少到

最短。因此,本文提出的技术可最大程度地降低结果中的噪声,改善仿真/形式性能,以及减少整体验

证工作量。