Jak porównać dwie liczby (sieci, zmienne, stałe) w Verilog


10

Jestem nowy w Verilog i chciałbym nauczyć się porównywać dwie liczby. Na przykład porównajmy parametr lub reg (powiedzmy a) z liczbą 2 (2'b10). Jak to zostanie napisane w Verilog?

Odpowiedzi:


11

Operatory równości i relacji (zwróć X, jeśli operand ma X lub 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)

Operatory tożsamości (porównaj wartości logiczne 0, 1, X i 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)

Przykład

Jeśli reg a jest mniejszy niż 2'b10, przechowuj 2'b11 w a.

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

Ostrzeżenia

  1. W przypadku większości operacji operandami mogą być sieci, zmienne, stałe lub wywołania funkcji. Niektóre operacje nie są zgodne z wartościami rzeczywistymi (zmiennoprzecinkowymi).
  2. Operatory, które zwracają wynik prawda / fałsz, zwracają wartość 1-bitową, gdzie 1 oznacza wartość prawda, 0 oznacza fałsz, a X oznacza nieokreśloną
  3. Operatory === i! == nie są obsługiwane w syntezie, ponieważ Z i X nie mają tego samego znaczenia w symulacji i sprzęcie.
  4. Jeśli porównasz dwie liczby o nierównej szerokości, mniejsza zostanie rozwinięta. Niepodpisane operandy są rozszerzane przez lewe rozszerzenie z zerem. Podpisane argumenty są rozszerzane przez lewe przedłużenie o wartość najbardziej znaczącego bitu (bit znaku).

Źródło: „Verilog HDL Quick Reference Guide oparty na standardzie Verilog-2001 (IEEE Std 1364-2001)” Stuart Sutherland


1

Operatory porównania numerycznego Verilog są podobne do operatorów w C: ==,! =, <,>, <=,> =.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.