Tengo un poco de confusión sobre la regla de la lista de sensibilidad: todas las señales que se leen en el bloque siempre deben incluirse en la lista. Al incluir posedge CLK y EN en mi lista de sensibilidad, obtengo un valor de x cambiado cuando cualquiera de las señales en la lista de sensibilidad cambia. Por lo tanto, si EN cambia a la mitad del ciclo del reloj, x cambia en consecuencia, lo que se espera. Sin embargo, este no es el resultado que deseo obtener:
always @(posedge CLK, EN)
if(EN)
x <= 1;
else
x <= 0;
Necesito que el valor de x cambie solo en el flanco ascendente. Por lo tanto, elimino el EN de la lista para lograr el resultado deseado. Pero entonces, esto viola la regla.
Esta es, probablemente, una pregunta muy trivial, pero ¿podría alguien aclarar cuál es la forma correcta de implementarla?