1.之前的interface 非常简单:

UVM:10.1.1 interface 实现driver 的部分功能_重用性

2.实际的interface 可以定义任务与函数,还可以always 和initial。


3.8bits 到10bits 在driver 中完成,将串行数据驱动到接口上:

UVM:10.1.1 interface 实现driver 的部分功能_数据驱动_02


4.在interface 做:

UVM:10.1.1 interface 实现driver 的部分功能_重用性_03


5.相应的,driver 中可以只驱动到interface 的并行接口上即可:

UVM:10.1.1 interface 实现driver 的部分功能_封装_04


6.除了在interface 中always,也可以assign:

UVM:10.1.1 interface 实现driver 的部分功能_封装_05


7.还可以例化其它interface,8b10b 是一个比较独立的功能,可以放在另一个interface 中:

UVM:10.1.1 interface 实现driver 的部分功能_数据驱动_06

1)只是名字叫interface,作用和function 没什么区别。

2)这个interface 与DUT没有任何接触,只是提高代码可重用性。封装作用


8.然后在interface 中例化这个新的interface,并调用其中的函数:

UVM:10.1.1 interface 实现driver 的部分功能_封装_07

1)interface 只适用于一些低层次的转换。转换动作与transaction 无关。

2)interface 信号方便debug,在driver 中不方便。

3)interface中插入error 不方便。