Як порівняти два числа (мережі, змінні, константи) у Verilog


10

Я новачок у Verilog і хотів би навчитися порівнювати два числа. Наприклад, порівняємо параметр або reg (скажімо, а) з числом 2 (2'b10). Як це буде написано у Verilog?

Відповіді:


11

Оператори рівності та реляції (поверніть X, якщо операнд має X або Z)

m == n  // is m equal to n? (1-bit True/False result)

m != n  // is m not equal to n? (1-bit True/False result)

m < n   // is m less than n? (1-bit True/False result)

m > n   // is m greater than n? (1-bit True/False result)

m <= n  // is m less than or equal to n? (1-bit True/False result)

m >= n  // is m greater than or equal to n? (1-bit True/False result)

Оператори ідентичності (порівняйте логічні значення 0, 1, X і Z)

m === n // is m identical to n? (1-bit True/False results)

m !== n // is m not identical to n? (1-bit True/False result)

Приклад

Якщо reg a менше 2'b10, зберігайте 2'b11 в a.

if (a < 2'b10) begin
   a = 2'b11;
end

Коваджі

  1. Для більшості операцій операнди можуть бути мережами, змінними, константами або викликами функцій. Деякі операції не є законними щодо реальних значень (з плаваючою комою).
  2. Оператори, які повертають результат true / false, повернуть 1-бітове значення, де 1 являє собою істину, 0 являє собою хибне, а X являє собою невизначене
  3. Оператори === і! == не підтримуються для синтезу, оскільки Z і X не мають однакового значення в моделюванні та апаратному забезпеченні.
  4. Якщо порівняти два числа неоднакової ширини, то менша буде розширена. Непідписані операнди розширюються ліворуч-розширенням з нулем. Підписані операнди розширюються шляхом розширення ліворуч зі значенням найзначнішого біта (бітового знака).

Джерело: "Короткий довідник Verilog HDL на основі стандарту Verilog-2001 (IEEE Std 1364-2001)" від Stuart Sutherland


1

Оператори числового порівняння Verilog аналогічні тим, що в C: ==,! =, <,>, <=,> =.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.