Come confrontare due numeri (reti, variabili, costanti) in Verilog


10

Sono nuovo di Verilog e vorrei imparare a confrontare due numeri. Ad esempio, confrontiamo un parametro o reg (diciamo a) con il numero 2 (2'b10). Come sarà scritto in Verilog?

Risposte:


11

Operatori di uguaglianza e relazione (restituisce X se un operando ha X o 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)

Operatori di identità (confronta i valori logici 0, 1, X e 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)

Esempio

Se reg a è inferiore a 2'b10, memorizzare 2'b11 in a.

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

Avvertenze

  1. Per la maggior parte delle operazioni, gli operandi possono essere reti, variabili, costanti o chiamate di funzione. Alcune operazioni non sono legali su valori reali (in virgola mobile).
  2. Gli operatori che restituiscono un risultato vero / falso restituiranno un valore di 1 bit in cui 1 rappresenta vero, 0 rappresenta falso e X rappresenta indeterminato
  3. Gli operatori === e! == non sono supportati per la sintesi, poiché Z e X non hanno lo stesso significato in simulazione e hardware.
  4. Se si confrontano due numeri di larghezza diversa, il più piccolo verrà espanso. Gli operandi senza segno vengono espansi estendendosi a sinistra con zero. Gli operandi con segno vengono espansi estendendosi a sinistra con il valore del bit significativo (il segno con segno).

Fonte: "Guida di riferimento rapido HDL di Verilog basata sullo standard Verilog-2001 (IEEE Std 1364-2001)" di Stuart Sutherland


1

Gli operatori di confronto numerico di Verilog sono simili a quelli in C: ==,! =, <,>, <=,> =.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.