2016-06-28 3 views
0

Можно ли создать виртуальный интерфейс? что такое синтаксис? , например: , если я следующий интерфейс:SystemVerilog [Создание виртуального интерфейса]

интерфейс, если ( вход 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() ; 

Так что теперь у вас есть 2 экземпляра VIF внутри экземпляров двух классов, но

вам все равно придется назначить экземпляр интерфейса к ним. Экземпляр интерфейса сам по себе не может быть динамическим, поскольку он представляет физические подключения.

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

Так может быть много виртуальных интерфейсов, но все виртуальные интерфейсы (если не равно нулю), в конечном счете указывают на некоторый фиксированный набор экземпляров интерфейса.

Смежные вопросы