标签题目
SystemVerilog相关面试题
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 直接持有底层接口。
SystemVerilog 中 queue 和 array 有什么区别,如何删除 queue 元素?
这题考验证语言数据结构,回答要区分固定数组、动态数组、关联数组和 queue 的容量、索引和操作语义。
SystemVerilog 中 event 的用法是什么?
这题考仿真进程同步机制,回答要说明 event 的触发、等待、triggered 属性和竞态风险。
UVM 中有哪些 TLM 通信方法?
这题考验证组件之间的事务级通信,回答要区分点对点请求响应、阻塞/非阻塞传输和 analysis 广播。
uvm_component 和 uvm_object 有什么区别?
这题考 UVM 类体系,回答要区分有层级和 phase 的组件,以及轻量、可复制随机化的对象。
UVM 哪些类是虚类,哪些不是虚类?
这题考 UVM 类层次和 SystemVerilog virtual class 规则。稳妥回答要先限定库版本,再给 virtual 与非 virtual 的例子,并区分库类声明和项目里的具体派生类。
SystemVerilog 中 fork/join、fork/join_any、fork/join_none 有什么区别?
这题考仿真并发控制,回答要说明父进程等待所有子进程、等待任一子进程或不等待的差异,以及剩余子进程如何收尾。
约束块和 uvm_do_on_with 中的约束冲突了会怎样?
这题考约束随机化求解语义,回答要说明类内约束和 inline constraint 默认是逻辑与,冲突时 randomize 失败。