粉丝投稿:IC验证面试真题
公司名称匿了
1、你的多通道数据整形器学的怎么样了?
答:极其尴尬,可想而知**的影响力已经多大了。我说,我就讲讲我做的功能测试点吧,先分析DUT的设计,然后拆解要检测到的功能点,blabla,然后功能覆盖率到了92,翻转覆盖率80左右,还有个80多,其他的几个都90多。
2、你的验证框架是完整的吧?
3、你的环境有几个agent。
答:6个
4、讲讲你的整形器agent有哪些东西,各是什么功能。
答:driver mon sqr
5、用过virtual sequence吧?它跟sequence的区别
答:
①本质区别就是vsq不会连接到具体的agent里面的sqr,它是通过start连接到vsqr。
②vsq在top test中创建,作用是完成具体的测试行为。分为以下两种方法:
· 对于rgm的操作。直接在vsq中对rgm进行操作,来进行寄存器测试配置,由rgm来修改期望值,然后update。也可以把这些对寄存器的测试操作封装成一个更小的seq,然后不经过rgm,直接发送给reg.sqr。
· 在vsq中对更小的seq用宏`uvm_run_on_with(),挂载到对应sqr,且在具体的seq的task body中,调用uvm do with将对具体的seq item进行赋值,发送。
6、有哪些内容可以进行随机化?
答:我感觉这个问题要结合验证功能点去回答,体现出你的思路,为什么这个东西要让它随机。
7、你的验证框架有没有完成数据比对的功能?如果有,是怎么实现的?
答:这就是在scoreboard里面编写的数据比对的task来实现的。其实在v seq中也编写了一个数据比对的function,这个function可以直接在top v seq中使用,有时候也非常好用。但面试官主要想问的应该是scoreboard。就给他讲scoreboard的结构,ref model,信号从哪里获取等。
8、如果我的ref model产生数据是实时的,但是dut产生数据是有延时的,如何去做比较?
答:这个问题我首先想到的就是用一个FIFO先把数据存起来,再去比较。(不知是否正确)
9、(既然我提到了FIFO)如何用SV去实现一个FIFO?
答:最简单就是用个mailbox,或者队列。然后我说还可以用通信管道tlm fifo,我想到就说了,但这么说好像有点跑题。
10、如何去判断验证充分了?
答:还是要从验证流程去分析,在验证计划没问题,功能点拆分没问题的情况下,看功能覆盖率和代码覆盖率。
后面有时间还会继续跟
#数字IC#