Ethereal 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба Здравствуйте. Возник вопрос, который не могу решить с помощью документации на SV. Есть код. interface vInt(input A, output B); endinterface module vTopModule(vInt Int); assign Int.B=Int.A; endmodule Ква дает предупреждение, что к бидиректному B подключается бидиректный же A. Но они же объявлены как вход/выход? Или любые сигналы в интерфейсе считаются бидиректами, независимо от объявлений? Изменено 22 марта, 2011 пользователем Ethereal Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба assign Int.B=Int.O; И где у вас в интерфейсе O? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ethereal 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба И где у вас в интерфейсе 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" Изменено 22 марта, 2011 пользователем Ethereal Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ethereal 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Нашел ответ. Модпорты в топе спасли отца русской демократии. interface vInt; bit A; bit B; modport C(input A, output B); endinterface module vTop(vInt.C Int); assign Int.B=Int.A; endmodule При этом все равно не вполне понял, почему исходный вариант не айс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба При этом все равно не вполне понял, почему исходный вариант не айс. Вот что в стандарте написано. 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ethereal 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Вот что в стандарте написано. 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 Видимо, недопонял стандарт. Попробую перечитать еще раз, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться