在面试中解释DUT的验证

时间:2016-07-10 03:30:41

标签: system-verilog verification uvm

我明天正在参加面试,几乎在我参加的每次面试中都会被问到这个问题。

鉴于DUT +规范,您如何验证?

有人可以简单解释一下我应该如何开始回答这个问题吗?我应该考虑什么(Testplan首先考虑优先级,Testbench环境,覆盖等)?

注意:答案并非必须特定于此DUT。我想要了解如何解释这一点。

提前致谢

1 个答案:

答案 0 :(得分:2)

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

这只是众多观点之一。即使有订单,某些步骤也可以改变,甚至可以根据设计特定要求合并甚至跳过。

  1. 学习规范(显然)
  2. 收集测试要求。 一个。高级 - 块大小,可能的TB用户,所需的输出,TB的输入类型 湾低级/详细信息 - 特定的debuging要求,
  3. 开发顶级TB架构文档。
  4. 制定顶级测试计划。
  5. 可以转换顶级测试计划,也可以制定详细的测试计划。
  6. 开发或推导功能覆盖率excel表。 [大多数模拟器都支持跟踪这样的表格]
  7. 为变量导出随机控制变量列表和范围/约束。 [可选]
  8. 低级TB文档 - 描述指定驱动程序,代理,接口。
  9. 根据上述输入制定时间表 - 设计的复杂性和tb。 [此步骤本身可以部分发生]
  10. 启动脚本开发 - 运行和回归等。
  11. 根据测试计划开发和部署测试用例。
  12. 报告/文件错误 - 监控错误率。
  13. 监控和衡量覆盖范围 - 代码和功能。
  14. 达到100%覆盖率(理想情况下),但实际上有些人同意目标和0个错误计数(管道梦想)
  15. 结束验证并宣布成功
  16. 在路上需要考虑的事项

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

    2)根据复杂程度,需要多少TB水平。

    e.g。许多块级别 - >少数子系统 - >单个全芯片环境......

    3)根据项目持续时间和关闭时间 - 您是否需要支持FPGA和/或仿真。

    4)正式验证 - 阻止。

    5)是否需要协同仿真 - 来自软件团队。您是否需要使用软件/架构团队的API?

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

    7)您想如何检查测试通过标准?

    一个。型号/记分牌 -

    我。建筑模型

    II。交易级别模型(从上面更详细)

    III。循环准确模型。 (例如仲裁员)

    湾断言 - 运行时+正式

    8)重复使用考虑

    一个。序列

    我。初始

    II。数据/控制

    湾记分牌

    ℃。剂

    9)调试要求

    一个。输出格式。

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

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