So vergleichen Sie zwei Zahlen (Netze, Variablen, Konstanten) in Verilog

Ich bin neu bei Verilog und würde gerne lernen, wie man zwei Zahlen vergleicht. Vergleichen wir beispielsweise einen Parameter oder Reg (z. B. a) mit der Zahl 2 (2'b10). Wie wird dies in Verilog geschrieben?

Antworten (2)

Gleichheits- und Vergleichsoperatoren (gibt X zurück, wenn ein Operand X oder Z hat)

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)

Identitätsoperatoren (vergleiche die Logikwerte 0, 1, X und 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)

Beispiel

Wenn reg a kleiner als 2'b10 ist, speichere 2'b11 in a.

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

Vorbehalte

  1. Bei den meisten Operationen können die Operanden Netze, Variablen, Konstanten oder Funktionsaufrufe sein. Einige Operationen sind für reelle (Gleitkomma-)Werte nicht zulässig.
  2. Operatoren, die ein Wahr/Falsch-Ergebnis zurückgeben, geben einen 1-Bit-Wert zurück, wobei 1 für wahr, 0 für falsch und X für unbestimmt steht
  3. Die Operatoren === und !== werden für die Synthese nicht unterstützt, da Z und X in Simulation und Hardware nicht dieselbe Bedeutung haben.
  4. Wenn Sie zwei Zahlen mit ungleicher Breite vergleichen, wird die kleinere erweitert. Vorzeichenlose Operanden werden durch Linkserweiterung mit Null erweitert. Vorzeichenbehaftete Operanden werden erweitert, indem sie mit dem Wert des höchstwertigen Bits (dem Vorzeichenbit) nach links erweitert werden.

Quelle: „Verilog HDL Quick Reference Guide based on the Verilog-2001 standard (IEEE Std 1364-2001)“ von Stuart Sutherland

Die numerischen Vergleichsoperatoren von Verilog ähneln denen in C: ==, !=, <, >, <=, >=.