Про inout порти verilog

I

int19

Guest
Привет!
Я знайомий з verilog так це мій просте запитання.
моя netlist є inout портів, які повинні функціонувати як у портах (але я не можу змінити їх),
тому я б додати tristate буфер.Мій код схожий на цей:

Модуль рейтинг (A, B, C, увімкніть)
введення дозволити;
inout A;
inout B;
виводу з;

якщо (включити =='0 ') почати
A <= 'Z'
B <= 'Z'

кінець
End Module

Я отримую помилку на цій ncsim: чистий не є юридичною lvalue в цьому контексті [9.3.1 (IEEE)]
Я також спробував привласнити і =, але воно не спрацювало.
Що сталося?
Спасибо.

 
inout фактично "провода" так що ви не можете використовувати будь-які процедурні поступки.Ви повинні використовувати безперервні поступки.

inout а, б;
введення дроту дозволити;

дріт a_out, b_out;
дріт a_in, b_in;

/ / Вивід поступки inout порт
призначити = (включити)?a_out: 1'bz;
присвоїти B = (включити)?b_out: 1'bz;

/ / Введення поступки inout порт
присвоїти a_in = (включити)?A: 1'bz;
присвоїти b_in = (включити)?B: 1'bz;

 
Я вчилася, що в ЄС може inout на р, але також про те, як використовувати його

 
привет!
Думаю u'll особа узагальнення проблем, якщо у використання inout завжди в блоці.Що це у U створити тимчасовий рег і привласнити значення inout на нього за допомогою постійного призначення виступ, а тепер ви можете використовувати темп обл цінність завжди в блоці

PLS Поправьте мене, якщо я помиляюся

подяку і
зв'язкуДіпак

 
спасибі за допомогу.
Я вирішити цю проблему таким же чином, визначення "маска", який інстанцірует модуля і з включити в порт і того ж INOUT порт модуля.
Цей спосіб не працює з VHDL маски і VHDL модуля, але прекрасно працює з VHDL маски і verilog модуль!Це цікаво вірно ...

Спасибо еще раз.

 

Welcome to EDABoard.com

Sponsor

Back
Top