在面试中解释 DUT 的验证

Explain verification of a DUT in interview

我明天要去面试,几乎每次面试都会被问到这个问题。

给定 DUT + 规格,您如何验证?

谁能简单地解释一下我应该如何开始回答这个问题?我应该考虑什么(测试计划优先、测试平台环境、覆盖率等)?

注意:答案不必特定于此 DUT。我想要如何解释这个的整体情况。

提前致谢

显然,关于如何验证 DUT 有很多方法(和很多观点)。

这只是众多观点中的一个。即使有顺序,一些步骤也可以更改,甚至可以根据设计特定要求合并甚至跳过。

  1. 学习规范(显然)
  2. 收集测试要求。 一种。高级 - 块大小、TB 的可能用户、需要的输出、TB 的输入类型
    b. Low-level/Details - 具体调试要求,
  3. 开发顶级 TB 架构文档。
  4. 制定顶级测试计划。
  5. 可以转换顶层测试计划,也可以制定详细的测试计划。
  6. 开发或派生功能覆盖范围 excel sheet。 [大多数模拟器将支持跟踪这样的 sheet]
  7. 导出随机控制变量列表和range/constraint变量。 [可选]
  8. 低级 TB 文档 - 描述指定的驱动程序、代理、接口。
  9. 根据以上输入制定时间表 - 设计的复杂性和 tb。 [这一步本身可以部分发生]
  10. 开始脚本开发 - 运行 和回归等。
  11. 根据测试计划开发和部署测试用例。
  12. Report/file 错误 - 监控错误率。
  13. 监视和衡量覆盖率 - 代码和功能。
  14. 达到 100% 的覆盖率(理想情况下),但实际上一些商定的目标和 0 个错误计数(白日梦)
  15. 结束验证并声明成功

途中注意事项

1) 1) 这是系统级、全芯片、块级验证环境还是 ASIC 或 FPGA

2) 根据复杂程度,需要多少级别的结核病。

例如许多块级 -> 几个子系统 -> 单个全芯片环境…

3) 基于项目持续时间和结束时间——您是否需要支持 FPGA 和/或仿真。

4) 形式验证——阻塞。

5) 软件团队是否需要协同仿真。您需要使用 software/architecture 团队的 API 吗?

6) 是否需要生成向量-测试向量,调出向量。

7) 您希望如何查看测试通过标准?

一个。 Model/scoreboards –

我。架构模型

二。事务级别模型(从上面更详细)

三。周期准确的模型。 (例如仲裁者)

b。断言 – 运行 时间 + 正式

8) 重用考虑

一个。序列

我。初始化

二。 Data/control

b。记分牌

c。代理商

9) 调试要求

一个。输出格式。

b。监控和提取信息的工具。

10) 哪种语言、模拟器和工具最符合要求?