在定向测试用例中,我们就是在不同的时刻将“0”或者“1”驱动到接口总线上。如果我们希望提高这个总线操作的顺序,会将相同的操作序列封装成task(bfm model)。
在现代验证环境中,激励的生成要复杂得多,我们需要创建更真实的芯片外界环境。激励生成的语言要更加抽象,我们需要
随机某些字段
随机某个数据驱动到接口的次数
在输入数据流中注入错误
按照一定顺序运行各种操作,同时并发运行其他操作
每一颗都会有相对固定的流程,所以激励流程必须遵守这个流程才让让芯片正常work。但是这个事情并不简单,当我们和设计沟通、当你读规格或者使用手册时会发现这个流程的验证空间的复杂度非常爆炸。
问题越来越多,再怎么厉害的大脑也觉得复杂度不受控。
太多的选择,太多的如果
事实上,“芯片的一天”也不是完全失控,其中会存在很多个基本的流程,复杂的事情都是在这个基本的流程下组合而来的。例如,芯片可能在复位后加载指令、执行任务、等待中断等等。
团队中的每个工程师(设计和验证)都应该知道这个基本流程。对于验证来说,应该先从基本的流程开始测试,然后扩展到各种复杂的场景随机用例。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !