验证环境中的覆盖率
当前,随着超大规模集成电路规模和复杂性逐渐提高,对EDA验证测试提出更高的要求,对各种EDA仿真验证方法逐步形成并得到发展和推广。
验证环境的含义:
验证是确保在测试环境中设计与结果相符合一致的过程,验证平台通过产生一个或者多个激励,随后激励发送到设计输入中,通过比对差异得出测试结果。在验证过程中如何产生全部激励,如何检测结果的正确性都是难点。
验证环节的第一个关键组件是激励生成,用于驱动DUT到预期状态。然后通过实时或者离线checker机制检查芯片是否工作。
什么是代码覆盖率?
覆盖率是衡量RTL代码是否充分运行的指标,是最终的量化机制。在仿真过程中收集信息。然后进行后续处理得到覆盖率包括,然后找出覆盖之外的区域,进行修改现有测试和创建新的测试。包括代码覆盖率和功能覆盖率,代码覆盖率确保代码的执行,功能覆盖率确保功能点的覆盖。常见的代码覆盖率包括:语句覆盖率(statement coverage),条件覆盖率(condition coverage),决策覆盖率(branch coverage),事件覆盖率(event coverage),断言覆盖率和功能覆盖率等。
代码覆盖的结构:
在验证阶段,需要对系统的每个细节进行分析,减少误差和遗漏,在验证的过程中我们需要明确:1项目的内容和范围。2事件的时间。3逻辑条件。具体包括事务字段,配置设施,控制,状态,时间关系,检查等。
覆盖分析:在项目开发过程中的每个阶段需要对不同场景的观察来分析覆盖参数,不仅选择核心功能验证测试,还要进行扩展的功能验证测试。在对验证的分析中需要注意,报告中的覆盖是否有效,是否存在多余的覆盖被写入,是否对所有必要激励情况被可观察的覆盖记录,是否有多余或者缺失的检查被报告。
缺陷曲线:
在验证过程中发现的设计缺陷需要通过记录表保留下来,交给设计人员分析研究。在缺陷被处理记录的过程中,需要绘制和修改缺陷率曲线。在设置时间坐标和缺陷数量后,完成缺陷曲线的绘制,当缺陷曲线增长状态收敛,表示发现缺陷数量的可能性较小。验证的重点是发现所有的bug,然后保障激励完备性。如果疏漏了某个bug,上层验证环境通过集成checker来发现问题。
|