Implementando una máquina Mealy en Verilog

1

Tengo un código que no entiendo:

always_ff @(posedge CLK)
state <= RST || ~A[0]===1'bx || ~A[1]===1'bx ? 0 : nextstate;

A es la entrada. ¿Qué está haciendo exactamente esta pieza de código? ¿Qué es ~A[0]===1'bx o ~A[1]===1'bx ?

Mi conjetura es que este código está comprobando si alguna de las entradas no es válida ( 1'bx ). Si una de las entradas no es válida, saltamos al estado inicial 0 .

¿Pero por qué la negación en ~A[0]===1'bx ?

    
pregunta Nime

1 respuesta

1

Supongo que esto es un atajo para:

A[0]===1'bx || A[0]===1'bz

Si A [0] es 1'bx ~ A [0] seguirá siendo 1'bx.
Si A [0] es 1'bz ~ A [0] lo hará 1'bx.

Tengo que asumir que esto está en un banco de pruebas porque ese código no se puede sintetizar.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas