10、IC验证面试88问——UVM继承、get_next_item、断言、break、触发器和锁存器、UVM验证平台、测试用例、断言past、关闭约束

Q31:哪些继承于component,哪些继承于object?

除了 driver、monitor、agent、scoreboard、env、test 之外全部继承于 uvm_object。
在这里插入图片描述

Q32:get_next_item()和 try_next_item()有什么区别?

  1. get_next_item() 是一个阻塞调用,直到存在可供驱动的 sequence item 为止,并返回指向 sequence item 的指针。
  2. try_next_item()是非阻塞调用,如果没有可供驱动的 sequence item,则返回空指针。

Q33:断言 and 和 intersect 区别。

  1. and:指的是两个序列具有相同的起始点,终点可以不同
  2. Intersect 指的是两个序列具有相同的起始点和终点
  3. Or 指的是两个序列只要满足一个就可以。
  4. Throughout 指的是满足前面要求才能执行后面的序列。

Q34: break、continue、return 的含义。return 之后,function里剩下的语句会执行吗?

  1. break语句:结束整个循环。
  2. continue语句:立即结束本次循环,继续执行下一次循环。
  3. return 语句:会终止函数的执行并返回函数的值(如果有返回值的话)。
  4. return 之后, function 里剩下的语句不能执行,其是终止函数的执行,并返回函数的值

Q35:触发器和锁存器的区别。

触发器:时钟触发,同步控制。受时钟控制,只有在时钟触发时才采样当前的输入,产生输出。
锁存器:由电平触发,非同步控制。在使能信号有效时锁存器相当于通路,在使能信号无效时锁存器保持输出状态。
锁存器对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生;触发器则不易产生毛刺。

Q36:手画一个UVM验证平台。

在这里插入图片描述

Q37:怎么编写测试用例?

主要是编写 sequence,然后在 body 里面根据测试功能要求写相应的激励,然后再通过 reference model 和 scoreboard 判断功能是否实现。

Q38:如果有很多测试用例,如何让它们自动执行?

可以写脚本让它们自动执行,例如 makefile。

Q39:断言$past 的用法?

如:写 abcd 四个信号在时钟沿处监测,当 cd 同时为 1 时,在时钟的前两个周期要 ab 同时为 1 的断言。

Q40. 如何关闭约束?

  1. 通过 constraint_mode(0) 关闭默认范围的约束块,constraint_mode(1) 是打开约束。
  2. 可以用 soft 关键字修饰特定的约束语句,这样既可以让变量在一般的情况下取默认值,也可以直接给变量赋默认值范围外的取值
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值