1.除了PORT 和 EXPORT外,还有第三种端口:IMP。它才是UVM 的精髓,承担UVM 中TLM的大部分代码实现。源码:
1)和之前的15 种PORT 和EXPORT一一对应。
2)IMP 不能发起操作,只作为终点,被动承担者。
3)PORT,EXPORT,IMP 优先级从高到低。PORT 可以直接连接到IMP。
4)第一个参数是传输类型。第二个参数是“在哪个component”。
2.实现过程:
1)A.A_port.put(transaction)调用B.B_export 的put。
2)B.B_export 的put(transaction)又会调用B.B_imp 的put(transaction)。
3)B_imp.put最终会调用B 的相关任务,如B.put(transaction)。
4)所以关于A_port 的操作最终会落到B.put 这个任务上。
5)是属于B 的一个任务,与A 无关,与A 的PORT 无关,也与B 的EXPORT 和IMP 无关。
6)最终要B component 实现接口的操作。所以每个IMP 都要和一个component 对应。
3.A:
B:
env:和上一次一样
仿真通过。
4.把B 中的put 删掉:
报错了。