中文 英语
知识中心
导航
知识中心

调试

从设计中去除bug
受欢迎程度

描述

在芯片或系统进入制造之前,开发团队希望在时间和金钱的限制下,确保设计中的bug尽可能少。这是一种验证行为,以及使用覆盖率衡量的置信度。当发现问题时,调试过程开始,据报道,这可能会消耗项目总时间的35%到50%。这个数字包括在设计和验证环境中发现和修复错误。更让许多团队担心的是,在发现bug之后,修复的时间是不可预测的。调试过程的大部分是不可预测的,开发正确的修复可能会有问题,可能会在过程中引入新的错误。
有两种基本的调试方法。首先是发现问题,通常通过使用测试用例执行设计的模型,然后尝试找到问题的根本原因并确定解决方案。第二种方法是对系统进行分析,通常通过静态分析工具,尝试使用广泛的分析技术来发现一类问题。

在第一种情况下,一旦确定了问题,开发人员就会创建一个关于可能出错的假设。这可能涉及对已被检测的设计进行多次模拟运行,以便它们提供额外的信息。如果假设没有找到问题的根本原因,那么特定的bug可能已经被修复了,但与真正问题相关的潜在bug仍然存在于设计中,待日后发现。调试通常涉及可视化工具,以帮助开发人员理解设计中发生的事情。

第二类调试可以在开发过程的早期开始,通常不需要任何类型的测试平台。对整个设计进行分析,寻找一类已知会产生的问题。一个例子是时钟域交叉,当以不同频率运行的块需要共享数据时,很容易错过问题。这些工具大多被认为是基于形式化分析技术的“lint”工具。

虽然大多数调试与发现和修复设计中的功能问题有关,但其他领域的问题正变得越来越重要。例如,在设计中可能存在电源和性能缺陷。它们不会影响其主要操作,但可能会导致设计超出功率预算或任务可能需要比预期更长的时间。另一个变得越来越重要的领域是安全性。


标签



多媒体

多媒体

多媒体

多媒体

Baidu