SystemVerilog [虚拟接口实例化]

时间:2016-06-28 10:48:40

标签: system-verilog

我可以实例化虚拟接口吗? 语法是什么? 例如 : 如果我有以下界面:

接口if( 输入in1,in2, 输出out1,out2 ); endinterface

虚拟界面,如果是vif;

我可以实例化vif吗?

1 个答案:

答案 0 :(得分:1)

虚拟接口只能拥有,另一个虚拟接口或接口实例或分配给它的空值。

ifs m_ifs () ; 

vifs = m_ifs ;  // valid 
vifs = vifs1 ;  // valid 
vifs = null ( this is the default value if unassigned) 

If you mean 
vifs = new () or  new (if ) ; 

不允许使用上述声明。

你可以改为

Class interface_container { 

virtual interface ifs vifs ; 

} ; 

interface_container m_interface_container[2] ; 

m_interface_container[0] = new () ; 
m_interface_container[1] = new () ; 

所以现在你在两个类BUT

的实例中有2个vif实例

您仍然需要为它们分配接口实例。 接口实例本身不能是动态的,因为它们代表物理连接。

m_interface_container[0].vifs = m_ifs ; 
m_interface_container[1].vifs = m_ifs ; 

因此可以有许多虚拟接口,但所有虚拟接口(如果不为null)最终将指向一组固定的接口实例。