El estándar IEEE 1164 ( Multivalue Logic System for VHDL Model Interoperability ) es un estándar técnico publicado por el IEEE en 1993. Describe las definiciones de valores lógicos a utilizar en la automatización del diseño electrónico , para el lenguaje de descripción de hardware VHDL . [2] Fue patrocinado por el Comité de Estándares de Automatización de Diseño del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). El esfuerzo de estandarización se basó en la donación de la declaración de tipo Synopsys MVL-9.
El tipo de datos primario std_ulogic
(lógica estándar no resuelta) consta de nueve literales de caracteres (consulte la tabla a la derecha). [1] Este sistema promovió un conjunto útil de valores lógicos que los diseños lógicos CMOS típicos podían implementar en la gran mayoría de situaciones de modelado, incluidas:
'Z'
Literal para facilitar la lógica del buffer de tres estados'H'
y 'L'
unidades débiles para permitir la lógica cableada-AND y cableada-OR .'U'
para el valor predeterminado de todas las declaraciones de objetos, de modo que durante las simulaciones los valores no inicializados sean fácilmente detectables y, por lo tanto, fácilmente corregidos si es necesario.En VHDL , el diseñador de hardware hace visibles las declaraciones a través de las siguientes declaraciones library
y :use
biblioteca IEEE ; utilice IEEE.std_logic_1164. todos ;
Muchas herramientas de simulación de lenguaje de descripción de hardware (HDL), como Verilog y VHDL , admiten un valor desconocido como el que se muestra arriba durante la simulación de electrónica digital . El valor desconocido puede ser el resultado de un error de diseño, que el diseñador puede corregir antes de sintetizarlo en un circuito real. El valor desconocido también representa valores de memoria no inicializados y entradas de circuito antes de que la simulación haya confirmado cuál debería ser el valor de entrada real.
Las herramientas de síntesis HDL generalmente producen circuitos que operan únicamente con lógica binaria.
Al diseñar un circuito digital, algunas condiciones pueden quedar fuera del alcance del propósito que el circuito cumplirá. Por lo tanto, al diseñador no le importa lo que sucede en esas condiciones. Además, se da la situación de que las entradas de un circuito están enmascaradas por otras señales, por lo que el valor de esa entrada no tiene efecto en el comportamiento del circuito.
En estas situaciones, es tradicional utilizar 'X'
como marcador de posición para indicar " No importa " al crear tablas de verdad, pero VHDL utiliza -
. Los "No importa" son especialmente comunes en el diseño de máquinas de estados y la simplificación de mapas de Karnaugh . Los '-'
valores proporcionan grados de libertad adicionales al diseño del circuito final, lo que generalmente da como resultado un circuito simplificado y más pequeño. [3]
Una vez que el diseño del circuito esté completo y se construya un circuito real, los '-'
valores ya no existirán. Se convertirán en algo tangible '0'
o '1'
valioso, pero podrían serlo en función de la optimización del diseño final.
Algunos dispositivos digitales admiten una forma de lógica de tres estados únicamente en sus salidas. Los tres estados son "0", "1" y "Z".
Comúnmente conocida como lógica triestado [4] (una marca registrada de National Semiconductor ), comprende los estados verdadero y falso habituales, con un tercer estado transparente de alta impedancia (o "estado apagado") que desconecta efectivamente la salida lógica. Esto proporciona una forma efectiva de conectar varias salidas lógicas a una sola entrada, donde todas menos una se colocan en el estado de alta impedancia, lo que permite que la salida restante funcione en el sentido binario normal. Esto se usa comúnmente para conectar bancos de memoria de computadora y otros dispositivos similares a un bus de datos común ; una gran cantidad de dispositivos pueden comunicarse a través del mismo canal simplemente asegurándose de que solo uno esté habilitado a la vez.
Mientras que las salidas pueden tener uno de tres estados, las entradas solo pueden reconocer dos. Aunque se podría argumentar que el estado de alta impedancia es efectivamente un "desconocido", no existe ninguna disposición en la mayoría de los dispositivos electrónicos que permita interpretar un estado de alta impedancia como un estado en sí mismo. Las entradas solo pueden detectar "0" y "1".
Cuando una entrada digital se deja desconectada, el valor digital interpretado por la entrada depende del tipo de tecnología utilizada. La tecnología TTL tendrá un valor predeterminado confiable en un estado "1". Por otro lado, la tecnología CMOS mantendrá temporalmente el estado anterior visto en esa entrada (debido a la capacitancia de la entrada de compuerta). Con el tiempo, la corriente de fuga hace que la entrada CMOS se desvíe en una dirección aleatoria, lo que posiblemente haga que el estado de entrada cambie. Las entradas desconectadas en dispositivos CMOS pueden captar ruido , pueden causar oscilaciones , la corriente de suministro puede aumentar drásticamente (potencia de palanca) o el dispositivo puede destruirse por completo.