独创:篇幅较长,但很详细哟
UVM中uvm_do、uvm_create和uvm_send详细区别和代码举例(涵盖start_item和finish_item关系):
在UVM验证框架中,uvm_do、uvm_create 和 uvm_send 是生成和发送 transaction 的三大核心宏,它们的区别体现在 控制粒度 和 功能组合 上。以下是详细对比和示例:
一、功能对比
| 宏 | 功能分解 | 控制权 | 适用场景 |
|---|---|---|---|
uvm_do |
1. 创建对象 (uvm_create)2. 自动随机化 ( randomize)3. 发送对象 ( uvm_send) |
全自动 | 快速生成默认随机化的 transaction |
uvm_create |
仅创建对象(通过工厂实例化) | 手动控制创建过程 | 需要自定义对象类型或延迟发送时使用 |
uvm_send |
仅发送已存在的对象 | 手动控制发送过程 |

&spm=1001.2101.3001.5002&articleId=146553801&d=1&t=3&u=f87afb2d08604d749b61f0aa033408a2)
2283

被折叠的 条评论
为什么被折叠?



