UVM学习记录:
这个问题因为它们的用途和生命周期不同。
(1)在monitor中,item通常用于捕获和记录transaction的数据。由于monitor需要在整个仿真过程中一直存在,并且需要保存多个transaction的数据,所以每次收集到新的transaction时,需要创建一个新的item对象来存储这个transaction的数据。因此,在monitor中需要使用new来创建一个新的item对象。
(2)而在driver中,item通常用于生成transaction并将其发送到DUT。由于driver只需要负责生成和发送transaction,而不需要保存它们的数据,所以可以通过使用指针来引用已经存在的item对象,而不需要每次都创建一个新的对象。
总之,monitor和driver在处理transaction时的角色和需求不同,所以它们对item的处理方式也不同