真实面经题目 · 原创解析
UVM 中有哪些 TLM 通信方法?
这题考验证组件之间的事务级通信,回答要区分点对点请求响应、阻塞/非阻塞传输和 analysis 广播。
真实面经题目 · 原创解析
这题考验证组件之间的事务级通信,回答要区分点对点请求响应、阻塞/非阻塞传输和 analysis 广播。
UVM TLM 可以按四类场景讲:第一,sequencer-driver 通过 seq_item_port/export 拉取 sequence item,driver 驱动完成后 item_done;第二,put/get/peek/transport 适合点对点事务传递或请求响应;第三,analysis port 是单向广播,monitor write 出事务,scoreboard、coverage、predictor 等订阅;第四,tlm_fifo 或 analysis_fifo 可在生产者和消费者之间做缓存解耦。选择接口时看是否一对多、是否需要返回、是否允许阻塞,以及是否要避免仿真死锁。
TLM 让验证组件用 transaction 通信,而不是直接访问对方内部变量或 pin。这样 monitor、scoreboard、coverage 和 predictor 可以复用,组件边界更清晰。
典型激励路径是 sequence 产生 item,sequencer 仲裁,driver 通过 seq_item_port 获取 item,驱动完成后 item_done 或返回 response。这是主动激励侧最常见的 TLM 用法。
put 表示发送事务,get 表示接收并取走,peek 表示查看但不取走,transport 表示请求和响应在一次调用中完成。每类又有阻塞和非阻塞变体,适合不同同步需求。
analysis port 通过 write 单向广播事务,不等待接收方返回。一个 monitor 可以连接多个订阅者,常用于功能覆盖、scoreboard 比对、寄存器预测和日志记录。
通常不应该。analysis 是单向广播 write,不用于请求响应。如果需要背压或返回结果,应选择其他 TLM 接口或 FIFO 结构。
monitor 只负责观察并发布事务,不应知道有多少消费者。analysis port 能让 coverage、scoreboard 和 predictor 同时订阅。
要看断言、功能覆盖、代码覆盖、错误注入和回归日志是否对应题目里的关键路径;如果只是组件能跑起来,但没有覆盖目标状态和异常分支,验证价值是不够的。