software fundamentals descargar and verilog hdl

fundamentals - ¿Cuál es la diferencia entre== y=== en Verilog?



verilog software (3)

Cuál es la diferencia entre:

if (dataoutput[7:0] == 8''bx) begin

y

if (dataoutput[7:0] === 8''bx) begin

Después de ejecutar dataoutput = 52''bx , el segundo da 1, pero el primero da 0. ¿Por qué? (0 o 1 es el resultado de comparación.)


== Para comparar bits (0 o 1) === Para comparar los 4 estados (0, 1, x, z)

== se puede sintetizar en un hardware (x-ni gate), pero === no se puede sintetizar ya que x no es un nivel lógico válido en digital, de hecho tiene voltajes entre 0 y 1. Y z no es En si cualquier lógica, muestra desconexión del circuito.


Algunos tipos de datos en Verilog, como reg , son 4 estados. Esto significa que cada bit puede ser uno de 4 valores: 0,1, x, z.

Con el operador de "igualdad de casos", === , se comparan las x y el resultado es 1.

Con == , el resultado de la comparación no es 0, como dijiste; más bien, el resultado es x, según IEEE Std (1800-2009), sección 11.4.5 "Operadores de igualdad":

Para los operadores de igualdad lógica y desigualdad lógica (== y! =), Si, debido a bits desconocidos o de alta impedancia en los operandos, la relación es ambigua, entonces el resultado será un valor desconocido de 1 bit (x).


En Verilog:

  • == prueba la igualdad lógica (pruebas para 1 y 0, todo lo demás resultará en x)
  • === prueba la igualdad lógica de 4 estados (prueba para 1, 0, z y x)