coverage-driven混合方法的静态和动态验证功能性疾病预防控制中心验证关闭。
由Sudeep Mondal和Sean O脑海
孵蛋的问题是最常见的一种原因re-spins昂贵的设计。这是不断增长的需求的驱动因素为时钟域交叉(CDC)分析工具。今天,大多数的IP和SoC团队专注于“结构性疾病预防控制中心”的分析,这是很重要的但不是充分的。结构性疾病预防控制中心分析确保设计的结构(例如,某个浏览器)来确保亚稳定性的影响(造成的异步时钟)管理。同时,结构中心分析通常是一些用户约束/假设下驱动。需要验证这些约束/假设原因签收或风险遗漏硅的bug。进一步,设计也需要坚持预定义(功能)疾控中心协议来保证数据传输安全在异步时钟域,所谓功能性疾病预防控制中心验证需要通过静态的多管齐下的办法,正式和仿真技术。
动态验证或模拟使用试验台功能验证设计方法执行的规范通过观察输出基于某些有意义的刺激。另一方面,静态验证验证结构分析设计,隐式或显式的逻辑评价和验证属性使用正式的设计方法。的比较收益和成本这两种类型的方法捕获在以下表中:
为功能性疾病预防控制中心验证关闭,覆盖率驱动的混合方法的静态和动态验证建议。这个流可以带来最好的静态和动态验证和可以帮助增加更快的结果。基于自动生成的方法是可验证的属性假设,约束和豁免用于静态验证,这样他们就可以在动态验证用于验证。
疾控中心审核验证流
流是由三个不同的步骤:
1。静态验证方法:设计假设是封装的形式进行约束和结构分析。一个完整和全面的验证工作需要结构分析之后,正式的验证。这是必需的,因为结构分析只能检查结构而不是实际验证,如果结构将为所有的情况下正常工作。
例如,在图2中,一个控制总线改变域需要gray-encoded避免一致性问题。
在这种情况下,结构分析只能检测到总线穿越及其周边逻辑但无法检查信号是否gray-encoded与否。这是因为格雷编码可以使用多个不同的电路,确定每种类型的电路结构为任何静态工具是不可能的。即使格雷编码成功地识别结构,电路本身可能有一个错误(例如,一个故障复位,可以切换输出00随机从而诱导失败等11 - > 00)之间的过渡。
通过仿真验证gray-encoding电路是testbench的质量一样好。这就是正式的验证可以发挥强大的作用,因为它可以使用正式的做一个详尽的验证技术,使验证过程不可知论者使用的实际结构设计。
形式验证可以报告通过,失败或部分证据。通过断言是好的,不需要进一步调试。失败的断言可以通过检查调试波形查看器的反例。然而,部分证明了属性,需要进一步分析和关闭。
2。设计意图IP一代:设计意图创建需要发生下列情形:
下面的例子显示了一个gray-encoding检查失败在模拟显示波形如下:
3所示。覆盖率驱动的验证关闭:在这个步骤中,用户完成仿真生成的数据库并使用覆盖报告上签字确认。有两种方法来验证功能疾病预防控制中心的属性:
Formal-driven验证覆盖率可以增加使用增量分析的混合物,更高的解决时间和不同的正式技术的结合。这种方法有自己的优点,更详尽的和没有依赖用户testbench。然而,它需要一个前期的了解设计师想要实现的分析和计划,以适应所需的时间和资源。
模拟并不详尽,但它采用的减少了障碍。此外,它可以在SoC工作水平。
因此,正式的混合方法和仿真验证需要采用更快的设计验证关闭。这样做将有助于减少所需的迭代次数完成设计验证和帮助减少昂贵的硅re-spins的风险。
肖恩Synopsys对此脑海是一个主要的应用程序工程师,负责静态和正式的技术。加入Synopsys对此之前,肖恩是一个企业应用程序工程师在Springsoft Atrenta和技术营销主管。他拥有电气工程学士从加州理工大学波莫纳。
留下一个回复