功能覆盖率和随机是两个概念,不管要不要随机,功能覆盖率都可以做。
功能覆盖率的目的在于确定验证什么时候收敛,验到什么程度算验完了?大点的公司会使用验证计划来写上需要覆盖的feature,哪个case包含了哪些feature,取自spec的什么部分之类,有文本做底,也方便回归。在定覆盖率点的时候需要多个部门相关工程师讨论确定,保证尽量完备。
随机化,我觉得你说的也是一个不错的方面。这里借用一下synopsys的一个老例子,很多人应该见过。两个32位的数相加,输出也是一个32位,假如1ns可以完成一次运算的验证,那么需要超过500年才能验完所有情况。解决的办法:
Verify with sufficient set of vectors to gain a level of confidence that product will ship with a tolerable fieldfailure rate.
最好的方法synopsys认为是随机化