标签题目
UVM相关面试题
UVM register model 中 map 的作用是什么,可以有多个 map 吗?
这题考寄存器模型和总线访问的映射关系,重点是说明 map 负责地址、总线属性和前门访问路径,并且同一寄存器块可以有多个 map。
UVM 的 run_test("name") 传入字符串后如何创建测试对象?
这题考 factory 注册和按类型名创建对象的机制,重点是说明 test 类通过宏或注册表进入 factory,run_test 根据名字创建顶层 test。
SVA 中 assert 和 cover 有什么区别,断言结果在仿真中有哪些状态?
这题考断言的检查和覆盖两种用途,回答要区分 assert 用于发现违反属性的错误,cover 用于统计属性场景是否发生。
UVM config_db 机制是什么,能否把 interface 传到 sequence?
这题考配置数据库的层级匹配和虚接口传递边界,重点是 interface 通常传给 component 或 config object,不建议 sequence 直接持有底层接口。
UVM 中有哪些 TLM 通信方法?
这题考验证组件之间的事务级通信,回答要区分点对点请求响应、阻塞/非阻塞传输和 analysis 广播。
UVM 的 phase 机制怎么理解?
这题考验证环境生命周期管理,回答要说明 phase 让组件按统一顺序完成搭建、连接、运行、收集和报告。
uvm_component 和 uvm_object 有什么区别?
这题考 UVM 类体系,回答要区分有层级和 phase 的组件,以及轻量、可复制随机化的对象。
UVM 哪些类是虚类,哪些不是虚类?
这题考 UVM 类层次和 SystemVerilog virtual class 规则。稳妥回答要先限定库版本,再给 virtual 与非 virtual 的例子,并区分库类声明和项目里的具体派生类。
uvm_do 的大致执行过程是什么?
这题考 UVM sequence 宏背后的真实流程,回答要能展开创建、随机化、start_item/finish_item 或 sequence start 的步骤。
为什么 reference model 不应该直接由设计人员来写?
这题考验证独立性和 oracle 可信度,回答要说明 reference model 应基于规格独立实现,避免和设计共享同一理解错误。
Sequence 怎么挂载到 sequencer 上,激励怎么发出来?
这题考 UVM 激励链路,回答要把 sequence.start(sequencer)、sequencer 仲裁、driver 取 item 和接口驱动串起来。
模块级验证和系统级验证的关注点有什么不一样?
这题考验证层级思维,回答要说明模块级重协议和边界,系统级重集成、配置、跨模块交互和真实场景。
约束块和 uvm_do_on_with 中的约束冲突了会怎样?
这题考约束随机化求解语义,回答要说明类内约束和 inline constraint 默认是逻辑与,冲突时 randomize 失败。
UVM 的优势和缺点是什么?
这题考验证方法学理解,回答要平衡复用、分层、随机化和覆盖优势,以及学习成本、复杂度、性能和宏调试问题。