Para explicar por qué la alta impedancia no es una condición que se pueda verificar:
Cuando una señal es de alta impedancia, el FPGA simplemente deja esa señal flotando. Normalmente, si dirige una señal a 0
, la conectará a GND
, si asigna 1
, la conectará a VCC
. Al asignar Z
, le está diciendo al FPGA que lo deje flotante y no hacia arriba o hacia abajo. En este estado, la señal está en un valor indeterminable, porque el circuito CMOS / TTL que determina si una señal es un 1
o un 0
no está diseñado para funcionar con señales flotantes.
Entonces, ¿cuál es el punto? ¿Por qué tienen señales de alta impedancia en primer lugar?
Digamos, por ejemplo, que en su tarjeta la señal está conectada a uno de los pines de salida y el circuito externo lo conecta a GND
. Al dejar la señal en alta impedancia, está permitiendo que los circuitos externos hagan el arrastre hacia abajo. En este caso, si configurara la señal como Z
, aún sería capaz de determinar su valor al verificar si es un 1
o un 0
, porque incluso en el FPGA no ha tirado abajo, ha sido derribado en otra parte del circuito.
Entonces, cuando estás haciendo asignaciones de señales, asignar a z
es algo que se hace regularmente. Sin embargo, cuando está verificando las señales, no debe verificar z
, sino más bien 1
o 0
dependiendo del comportamiento esperado de quien realmente las está conduciendo.