中文 英语
系统与设计
的意见

调试这个!如何简化覆盖率分析和关闭

改进soc和fpga的调试。

受欢迎程度

多年来,ASIC和FPGA设计和验证调试的过程主要包括理解设计的结构和源代码,基于试验台刺激,波形随着时间的推移显示活动。如今,随着几年前不存在的新设计需求层(超出基本功能)的出现,功能验证变得成倍复杂——例如,时钟需求、安全需求、安全需求以及与硬件-软件交互相关的需求。

考虑到这些复杂的交互,有效的调试通常需要熟悉所有组件的专家和了解这些异构需求的调试环境。

接下来是一种新的调试方法,在本例中是基于Questa Visualizer Debug的。这个新工具是一个高性能、可伸缩、上下文感知的调试器,它跨越了逻辑验证流,包括模拟、仿真、原型、测试台、低功耗和断言分析,它提供了新的功能支持来改进分析、调试和覆盖闭包。

从覆盖率开始为您提供了另一种诊断问题的方法。Visualizer利用其现有丰富的可视化功能,提供了改进的覆盖数据表示。它的构建具有改进的容量和性能,可以处理最大的覆盖模型。可视化工具显示UCDB结果的代码覆盖和功能覆盖,基于一个单一的环境,可以从覆盖到调试的全部功能。

这是覆盖闭合生产力总体需求中的第一步。使用Questa模拟的统一覆盖数据库(UCDB)分析覆盖结果有两种调用模式:

  • 覆盖视图模式允许访问所有覆盖分析窗口
  • 覆盖调试模式提供了对所有覆盖分析窗口的访问,此外,还提供了对Visualizer中所有调试功能的访问

覆盖窗口提供了多种方法来帮助您开始探索设计的覆盖统计信息。首先,您可以使用覆盖摘要窗口来查看整个设计的覆盖类型的概述,如图1所示。


图1。覆盖摘要窗口。

两种颜色编码的图表提供了整个覆盖空间的图形概述。左边显示了一个饼图,表示覆盖的(绿色)和遗漏的(红色)箱子的总覆盖率百分比。窗口的右侧显示了每个覆盖类型的命中仓数、总仓数和总覆盖率百分比的条形图。列出了给定设计中的代码和功能覆盖类型。

要分析每个设计层次结构的覆盖率,可以从图2所示的设计覆盖率窗口开始。它显示了设计的层次结构的文本列表,以及为左列(设计层次结构)所示的层次实例提供的代码覆盖类型(语句、分支、切换、FSM、条件和表达式)的统计信息列,以及函数覆盖类型(覆盖组、断言和指令)。


图2。设计窗口。

在Visualizer的设计单元覆盖窗口的帮助下,您还可以发现设计单元之间的覆盖分布,如图3所示。它以列出的格式显示所有设计单元,并为每个设计单元计算和显示本地覆盖率。


图3。设计单元窗口。

让我们开始调试
现在,我们将浏览未覆盖项的完整调试路径,并查看如何在同一位置修复代码。从图4中的测试计划跟踪器窗口开始,您可能需要添加更多的标准来确定从哪个部分开始。


图4。测试计划跟踪器窗口,零覆盖部分。

添加一个优先级列,如图5所示,现在可以更明显地看到,操作数限制子节具有非常高的优先级“1”的“零”覆盖率。让我们跟踪链接到该部分的断言类型覆盖率。


图5。在测试计划跟踪器窗口中添加优先级列。

双击断言类型“greater_ than_99_a”,打开断言覆盖窗口以进行更多分析,并在源窗口中突出显示断言(图6)。


图6。断言覆盖窗口。

断言覆盖窗口提供了关于设计断言的更多细节(状态、断言类型、通过/失败计数等)。它显示了在当前会话期间成功编译和模拟的所有嵌入式和外部断言。“greater_than_99_a”断言被标记为0%覆盖,因为断言失败了。为了进行更多的调试,您需要检查这个属性并尝试将其添加到wave中。所有这些都可以通过调用调试模式在同一个工具中完成。

现在,通过双击,您可以导航到源代码窗口中的属性定义,如图7所示。


图7。双击源高亮显示。

条件说,在时钟的负边缘,如果状态是“write_to_stack”,“new_result”信号应该小于100。您可以通过启用值注释或将属性添加到波形窗口来检查这些值,如图8所示。


图8。波形调试。

现在你可以看到,在时钟的负边缘,状态等于" write_to_stack ", " new_result "信号是未定义的。

您可以在代码中通过为“new_result”信号定义一个初始值来解决这个问题,如图9所示。


图9。源代码窗口。

重新运行模拟,返回断言窗口,并在“filter assertions”框中搜索“greater*”,结果得到断言的完全覆盖,如图10所示。


图10。带有固定断言项的断言覆盖窗口。

通过检查测试计划跟踪器窗口,我们可以看到“操作数限制”现在也有了全面的覆盖(图11)。


图11。修复断言后的测试计划跟踪器窗口。

结束
Visualizer调试环境帮助您在一个地方修复和调试设计中所有未覆盖的项。它提供了显示代码和功能覆盖结果的可视化工具。图形用户界面在实例和设计单元视图中显示了覆盖率统计数据,帮助您根据覆盖率类型、测试计划部分和设计单元快速查看设计覆盖率的概述,并通过覆盖率分析窗口提供了每个覆盖率项的详细信息,以促进对该项的深入分析。

有关如何简化明天的设计今天的关闭的更多信息,请阅读白皮书



留下回复


(注:此名称将公开显示)

Baidu