logo

Verilog assign Statement

Оператори призначення використовуються для керування значеннями в мережі. А також використовується в Моделювання потоку даних .

Сигнали типу wire або типу даних вимагають постійного призначення значення. Поки батарея +5 В підключена до одного кінця дроту, компонент, підключений до іншого кінця дроту, отримуватиме необхідну напругу.

Ця концепція реалізована за допомогою оператора assign, де будь-який дріт або інший подібний дріт (типи даних) може безперервно керуватися значенням. Значення може бути константою або виразом, що складається з групи сигналів.

xor в java

Синтаксис

Синтаксис призначення починається з ключового слова assign, за яким слідує назва сигналу, яка може бути або сигналом, або комбінацією різних сигнальних мереж.

The сила приводу і затримка є необов’язковими та здебільшого використовуються для моделювання потоку даних, ніж для синтезу в реальне обладнання.

Сигнал на правій стороні оцінюється та призначається сітці або виразу сіток на лівій стороні.

 assign = [drive_strength] [delay] 

Значення затримки корисні для визначення затримок для воріт і використовуються для моделювання поведінки синхронізації в реальному обладнанні. Значення визначає, коли мережі слід присвоїти оцінене значення.

правила

Під час використання оператора присвоєння необхідно дотримуватися деяких правил:

  • LHS завжди має бути скалярним, векторним або комбінацією скалярних і векторних мереж, але ніколи не скалярним чи векторним регістром.
  • RHS може містити скалярні або векторні регістри та виклики функцій.
  • Кожного разу, коли будь-який операнд на RHS змінює значення, LHS буде оновлено новим значенням.
  • Оператори присвоєння також називають безперервними присвоюваннями.

Призначити reg змінні

Ми не можемо водити чи призначати рег змінні типу з інструкцією assign, оскільки змінна reg здатна зберігати дані та не керується постійно.

Сигнали Reg можна керувати лише процедурними блоками, такими як завжди та початковий.

Неявне безперервне присвоєння

Коли оператор присвоєння використовується для присвоєння даній мережі певного значення, він називається an явний призначення

Якщо оголошено призначення, яке потрібно виконати під час мережі, воно називається an неявний призначення.

 wire [1:0] a; assign a = x & y; // Explicit assignment wire [1:0] a = x & y; // Implicit assignment 

Комбінаційний логічний дизайн

Розглянемо наступну цифрову схему, виготовлену з комбінаційних вентилів і відповідних елементів Verilog код.

Verilog assign Statement

Комбінаційна логіка вимагає безперервного керування входами для підтримки виходу, на відміну від послідовних елементів, таких як тригери, де значення фіксується та зберігається на краю тактової частоти.

Присвоєний оператор задовольняє ціль, оскільки вихід o оновлюється щоразу, коли змінюється будь-який із входів у правій частині.

 // This module takes four inputs and performs a Boolean // operation and assigns output to o. // logic is realized using assign statement. module combo (input a, b, c, d, output o); assign o = ~((a & b) | c ^ d); endmodule 

Схема апаратного забезпечення

Після розробки проекту та синтезу комбінаційна схема поводиться так само, як моделюється оператором assign.

підрядок java містить
Verilog assign Statement

Сигнал o стає 1 кожного разу, коли комбінаційний вираз на RHS стає істинним.

Подібним чином o стає 0, якщо RHS є хибним. Вихід o є X від 0ns до 10ns, тому що входи X протягом того самого часу.