2016-06-28 69 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)最終會指向一些固定的接口實例。