SV学习记录(一) 📅 2026/8/9 2:27:04 目录定向测试和随机测试随机化对象功能覆盖率反馈测试分层测试的三个阶段定向测试和随机测试定向测试指的是人为编写一些可以预想到的向量针对有规范的测试点进行测试随机测试指的是通过随机生成的激励来测试通常随机激励覆盖率会更高但不是所有的随机激励都是有效的当遇到无效激励/违法激励时要通过修改约束生成新的合法激励。随机化对象你应该对整个环境的配置进行随机化包括仿真的时长、设备的数量以及它们的配置方式如果一个总线事务没有完成会怎么样如果遇到一个非法的操作呢设计规范中有没有指出哪两个信号互斥要对这些情况一一尝试然后确保设备还能继续正常运作。测试行为最好能在检测到错误的代码行停下方便检索。你的测试平台应该以多快的速度发送激励呢如果输人以可能的最快速率到达而输出却被卡在一个较低的速率上该怎么办如何处理来自多个输人的激励同时到达的情况如果这些激励带有不同的时延又该怎么办如何运行测试主要注意可以通过加入多个变量来初始化种子得到新的测试激励。功能覆盖率每次要看报告判断哪些功能已经被测试过了逐渐排除最终找到尚未被测试的功能点。反馈这是一种比较少用的办法它的思想是在每次测试过后根据当前的功能覆盖率反馈给激励生成这样让它生成新的互斥激励但是这种反馈作用不大目前主要还是手动分析。测试分层它的思想是把模块分而治之每个小的测试模块只完成最简单的行为这样可以把一些重复性的比如总线写入总线读出之类的行为包装起来反复使用。测试的三个阶段建立。包括初始化环境配置复位待测设计等运行。启动环境运行测试收尾。等待设计清空最后一个进入的事务报告数据。