2016-06-28 62 views
0

我可以实例化虚拟接口吗? 语法是什么? 例如: 如果我如下界面:SystemVerilog [Virtual interface instantiating]

界面如果( 输入IN1,IN2, 输出端OUT1,OUT2 ); endinterface

虚拟接口如果vif;

我可以实例化vif吗?

+1

'if'是一个保留关键字。您无法使用该关键字命名界面。 –

回答

1

虚拟接口只能有另一个虚拟接口或接口的实例或null分配给它。

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() ; 

所以,现在你有两个类的实例中的VIF 2个实例,但

你仍然有一个接口实例分配给他们。 接口实例本身不能是动态的,因为它们表示物理连接。

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

所以可以有很多虚拟接口,但是所有的虚拟接口(如果不是null)最终会指向一些固定的接口实例。