← 大疆FPGA逻辑岗B卷(19.08.06)

推荐答案 测试一下

在UVM和SystermVerilog基础知识的描述错误的是:

A 当仿真命令行中出现+UVM_VERBOSITY=MEDIUM时`uvm_info(“Exam”,“DJI 2019”,UVM_LOW)对应的message不会打印出来 B sequence中定义了dmac变量,此sequence的`uvm_do_with(tr,{tr.dmac==dmac;})语句中的约束不起作用 C bulid_phase用于创建component而且是top down执行的 D 如果某个操作消耗仿真时间,那这个操作不能直接定义在function中
单选题 中等 笔试真题单选

参考答案

正确选项是A。选项A错误:仿真命令行设置+UVM_VERBOSITY=MEDIUM时,全局冗余度阈值为UVM_MEDIUM(数值50)。`uvm_info`宏中第三个参数UVM_LOW的冗余度数值为0,0 ≤ 50,满足打印条件,因此该message会正常打印。选项B正确:在`uvm_do_with`约束块中,变量名dmac首先在事务类tr中查找,若tr有同名成员,则约束`tr.dmac == dmac`等价于`tr.dmac == tr.dmac`,成为恒真约束,sequence中定义的dmac变量未参与约束,故约束不起作用。选项C正确:UVM中build_phase用于实例化组件(component)并完成配置,执行顺序为从顶层到叶子节点,即top-down。选项D正确:function中不能包含任何消耗仿真时间的语句(如#delay、@事件等待、wait等),否则会导致编译错误;消耗仿真时间的操作必须定义在task中。

涉及知识点

  • UVM verbosity机制与打印条件
  • `uvm_do_with宏中变量作用域规则
  • build_phase执行顺序
  • function与task的时间控制区别
← 上一题
登录后反馈错题
下一题 →