Перейти к содержанию
    

Q2, SV, интерфейсы в топе

Здравствуйте.

Возник вопрос, который не могу решить с помощью документации на SV.

 

Есть код.

interface vInt(input A, output B);
endinterface

module vTopModule(vInt Int);
  assign Int.B=Int.A;
endmodule

 

Ква дает предупреждение, что к бидиректному B подключается бидиректный же A. Но они же объявлены как вход/выход? Или любые сигналы в интерфейсе считаются бидиректами, независимо от объявлений?

Изменено пользователем Ethereal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И где у вас в интерфейсе O?

Спасибо, поправил.

Конечно же A.

 

Забавное сообщение, если включить наоборот:

interface vInt(input A, output B);
endinterface

module vTopModule(vInt Int);
  assign Int.A=Int.B;
endmodule

Error (10231): Verilog HDL error at vTopModule.v(5): value cannot be assigned to input "A"
Warning (10665): Bidirectional port "Int.B" at vTopModule.v(4) has a one-way connection to bidirectional port "Int.A"

Изменено пользователем Ethereal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел ответ. Модпорты в топе спасли отца русской демократии.

 

interface vInt;
    bit A;
    bit B;
    
    modport C(input A, output B);
endinterface

module vTop(vInt.C Int);
    assign Int.B=Int.A;
endmodule

 

При этом все равно не вполне понял, почему исходный вариант не айс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При этом все равно не вполне понял, почему исходный вариант не айс.

Вот что в стандарте написано.

25.3.2 Interface example using a named bundle

The simplest form of a SystemVerilog interface is a bundled collection of variables or nets. When an

interface is referenced as a port, the variables and nets in it are assumed to have ref and inout access,

respectively.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что в стандарте написано.

25.3.2 Interface example using a named bundle

The simplest form of a SystemVerilog interface is a bundled collection of variables or nets. When an

interface is referenced as a port, the variables and nets in it are assumed to have ref and inout access,

respectively.

Я посчитал, что относится только к конструкциям вида

interface SomeInt;
  bit A, B; // inout
endinterface

interface SomeInt2(input C); //input
  bit A, B; // inout
endinterface

Видимо, недопонял стандарт. Попробую перечитать еще раз, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...