2016-06-28 24 views
0

仮想インターフェイスをインスタンス化できますか? 構文は何ですか?例えば : Iは、以下のインターフェイスしている場合:( 入力IN1、IN2、 出力OUT1、OUT2 )場合SystemVerilog [仮想インターフェイスのインスタンス化]

インターフェースと、 endinterface

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

上記のようなものは許可されません。

あなたは今、あなたがまだそれらにインターフェイスインスタンスを割り当てる必要があり2つの2クラスのインスタンス内のVIFのインスタンスしかし

を持っているので、この代わりに

Class interface_container { 

virtual interface ifs vifs ; 

} ; 

interface_container m_interface_container[2] ; 

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

を行うことができます。 インターフェイスインスタンス自体は、物理接続を表すため、動的にすることはできません。

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

したがって、すべての仮想インターフェイス(nullでない場合)は最終的にいくつかの固定インスタンスのインターフェイスインスタンスを指します。

関連する問題