Suponga que existe un puerto de salida de datos de 1 bit y un puerto de salida dataValid de 1 bit para un módulo. ¿Está bien asignar 1'dx a la salida de datos cuando se asigna 0 a dataValid? ¿Creará esto problemas de síntesis?
EDITAR: las optimizaciones de X parecen ocurrir tanto en Synopsys DC como en Cadence RC. Considere este código (ayb son entradas de 1 bit y c es una salida de 1 bit).
always_comb
if ( !a && !b ) c= 0;
else if ( a && !b ) c = 1;
else if ( !a && b ) c = 1;
else c = 1'dx; // Don't care about this value.
proporciona una compuerta OR que es una solución optimizada en lugar de una XOR que se habría inferido si c se estableciera como 1'd0. Este es un ejemplo simple, pero parece probar que las herramientas de síntesis realizan la optimización X. Teniendo en cuenta los errores de propagación de X desagradables y los problemas de verificación, ¿valen las asignaciones de X el área guardada?