系统与设计
的意见

调试的问题…

…为什么我花了三天找到这个错误呢?

受欢迎程度

而半导体核查技术已经进化了很多在过去的25年,调试过程中发现的设计问题验证几乎没有改变。新算法包括机器学习、可视化方法和解决问题的思想允许不同的调试方法,节省调试时间一个数量级。

自《盗梦空间》的硬件描述语言(hdl)和模拟,我们认为以同样的方式验证输出分析离散数字电路卡片,通过逻辑分析仪的镜头。确实有新的windows上的老式波形工具,和GUI有点奢华,但从根本上看工具输出,信号由信号,一次一次滴答。

在这个时期,我们看到超越仿真验证工具,新的仿真技术,形式验证等等。测试描述从0和1,复杂的面向对象、约束随机程序。当然,设计本身有显著增长的规模和复杂性,给我们今天的成熟的SoC (SoC)。不过,我们检查和检查这些发展与我们传统的信号电平的视角。毫不奇怪,调试需要核查总数的50%或更多时间,最资源密集型阶段整个芯片的开发过程。

我们决定应用新思维的调试方法,利用心理研究解决问题和大规模数据分析。在过去的三年,我们问自己这样的问题:设计缺陷的本质是什么?我们可以分类成团体吗?为什么一些调试过程需要更长的时间比其他的?然后,我们进行了一系列的实验来验证我们的假设和结果。

登录后我们已经注意到数以百计的bug和他们的调试过程是错误可以分为几种类型。当然,也有例外,但在绝大多数情况下,一个错误会落入其中之一。阅读更多关于这些类别,你可以参考我们的白皮书。

其次,我们探讨了调试过程本身。调试过程开始当一个失败的测试表明,当我们确定失败的根源。从本质上讲,它包括一系列的假设,包括问题和验证这些假设。我们可以看看这个过程流程图,如下图所示。

在这个例子中,有三种情况:

  1. 路径标记为红色说明了情况,得到错误的答案Q1,导致一个不正确的结论,并迫使工程师重返Q1浪费一些时间。
  2. 路径标记为蓝色说明了情况,我们得到了正确的答案没有采取任何捷径,到达几步的bug。
  3. 路径标记为绿色说明了一个很好的捷径通过问不同的问题(X)问题,从而导致错误的速度比蓝色的路径。我们的调试平台,Cogita,设计完成。

链越短,越快我们发现bug。理想情况下,我们希望尽可能经常应用的快捷方式。然而,更多的时候我们做出错误的假设或答案,时间越长,调试过程。快捷键之间实现平衡与正确的假设的本质是有效的调试。

一些假设是如此明显,他们甚至不认为是这样的。我们只是“知道”他们是正确的。然而,如果这些假设不正确,他们有时会创建一个巨大的延迟的根源分析过程。一个简单的例子我们大多数人知道(但可能不承认),是编译错误的文件集…

这些研究主题的例子给我们调试问题的深刻理解。这也是为什么Vtool Cogita发展,下一代调试解决方案,使一个合乎逻辑的方法,允许工程师可视化数据的本质和追踪问题的根源问题,形成了一个有效的和错误的方式。配合现有的调试环境,Cogita特别有效的大规模使用仿真和设计验证回归模拟,提供显著的改善整个验证过程。

请继续关注下一个博客,我将强调一些解决这些问题的办法。



1评论

爱丽儿拜根 说:

伟大的文章。

留下一个回复


(注意:这个名字会显示公开)

Baidu