compuerta lógica xor
En la electrónica digital hay unas compuertas que no son comunes. Una de ellas es la compuerta XOR ó compuerta O exclusiva ó compuerta O excluyente.
El siguiente diagrama muestra eñ símbolo de una compuerta XOR (O exclusiva) de 2 entradas:
Comprender el funcionamiento de esta compuerta digital es muy importante para después poder implementar lo que se llama un comparador digital.
La figura de la derecha muestra la tabla de verdad de una compuerta XOR de 2 entradas.
Y se representa con la siguiente función booleana
X = A.B + A.B
A diferencia de la compuerta OR, la compuerta XOR tiene una salida igual a "0" cuando sus entradas son iguales a 1.
Si se comparan las tablas de verdad de la compuerta OR y la compuerta XOR se observa que la compuerta XOR tendrá un uno ("1") en su salida cuando la suma de los unos "1" en las entradas sea igual a un número impar.
La ecuación se puede escribir de dos maneras:
X = A.B + A.B ó
La siguiente figura muestra la tabla de verdad de una compuerta XOR de 3 entradas
De la misma manera que el caso anterior se puede ver que se cumple que X = 1 sólo cuando la suma de las entradas en "1" sea impar
Circuito XOR equivalente
También se puede implementar la compuerta XOR con una combinación de otras compuertas más comunes.
En el siguiente diagrama se muestra una compuerta XOR de dos entradas implementada con compuertas básicas: la compuerta AND, la compuerta OR y la compuerta NOT
compuerta lógica nor
Una compuerta lógica NOR (No O) se puede implementar con la concatenación de una compuerta OR con una compuerta NOT, como se muestra en la siguiente figura.
Al igual que en el caso de la compuerta lógica OR, ésta se puede encontrar en versiones de 2, 3 o más entradas.
Las tablas de verdad de estos tipos de compuertas son las siguientes:
Como se puede ver la salida X sólo es "1", cuando todas las entradas son "0".
Compuerta lógica NOT creada con una compuerta lógica NOR
Un caso interesante de este tipo de compuerta, al igual que la compuerta lógica NAND, es que cuando las entradas A y B ó A, B y C (caso de una compuerta NOR de 3 entradas) se unen para formar una sola entrada, la salida (X) es exactamente lo opuesto a la entrada, Ver la primera y la última filas de la tabla de verdad.
En otras palabras: Con una compuerta lógica NOR se puede lograr el comportamiento de una compuerta lógica NOT. Ver el siguiente diagrama.
compuerta lógica nand
na compuerta NAND (NO Y) de dos entradas, se puede implementar con la concatenación de una compuerta AND o "Y" de dosentradas y una compuerta NOT o "No" o inversora. Ver la siguiente figura.
Al igual que en el caso de la compuerta AND, ésta se puede encontrar en versiones de 2, 3 o más entradas.
Tablas de verdad de la compuerta NAND
Como se puede ver la salida X sólo será "0" cuando todas las entradas sean "1".
Nota: Un caso interesante de este tipo de compuerta, al igual que la compuerta NOR o "NO O", es que en la primera y última línea de la tabla de verdad, la salida X es tiene un valor opuesto al valor de las entradas.
En otras palabras: Con una compuerta NAND se puede obtener el comportamiento de una compuerta NOT o "NO". Aunque la compuerta NAND parece ser la combinación de 2 compuertas (1 AND y 1 NOT), ésta es más común que la compuerta AND a la hora de hacer diseños.
En la realidad este tipo de compuertas no se construyen como si combináramos los dos tipos de compuertas antes mencionadas, si no que tienen un diseñoindependiente.
En el diagrama se muestra la implementación de una compuerta NOT con una compuerta NAND. En la tabla de verdad se ve que sólo se dan dos casos a la entrada: cuando I = A = B = 0 ó cuando I = A = B = 1
familia de microprocesadores TTL
MICROPROCESADORES MODULARES
La modularidad constituye el fundamento de una clase potente de componentes integrados que le permiten a los diseñadores de sistemas especificar su propia y única arquitectura de microprocesador. En esta sección se examina la modularidad y el método de control relacionado de la microprogramación, que se utiliza en la mayoría de los sistemas modulares. Se analiza la serie de microprocesadores modulares 2900 y se aplica al diseño de un microprocesador que emula al 8080.
Modularidad («Bit Slícing»)
Todos los microprocesadores vistos hasta ahora tienen una estructura y un comportamiento perfectamente definido durante el proceso de fabricación. Por ejemplo, los tipos de datos e instrucciones aceptables están cableados en la unidad E de procesamiento de datos y en la unidad 1 de control del programa. Si se han de procesar operaciones o tipos de datos diferentes (por ejemplo, la multiplicación de números en coma fija con longitudes no estándares), entonces se han de simular por software las instrucciones y operandos necesarios. Por supuesto, esto es mucho mas lento que la realización directa por hardware. La velocidad de la mayoría de los microprocesadores está también limitada por su utilización de la tecnología de circuitos MOS, que posibilita una alta densidad de componentes a expensas de trabajar la velocidad de operación con respecto, por ejemplo, a la máxima velocidad de reloj de la CPU permisible. Así pues, las velocidades realmente altas que se pueden conseguir con varias tecnologías TTL y bipolar ECL no están disponibles con generalidad en los microprocesadores estándares. La modularidad resuelve estos problemas proporcionando bloques constructivos flexibles para diseñar microprocesadores que pueden aprovechar las ventajas de las tecnologías de Cl actuales más rápidas.
El dispositivo modular fundamental es un (micro) procesador modular, que es una unidad E de una CPU sencilla con un tamaño pequeño de palabra, típicamente de 4 bits. La propiedad clave de un procesador modular de k bits es el qué se pueden conectar n copias del módulo de una forma regular y simple para formar un procesador de nk bits que realiza las mismas funciones que un único módulo de nk bits en vez de trabajar con operandos de k bits. Los módulos de procesador se interconectan en forma de un circuito cascada o matriz unidimensional. tal como se representa en la figura
Estructura general de un microprocesador modular de nk bits formado por modulos de k bits.
El término «modularidad» proviene de la similitud entre la matriz de procesadores y un microprocesador grande que se hubiese dividido en n subprocesadores idénticos, cada uno operando con un trozo o módulo de k bits del dato que se esté procesando por la matriz. Tal como se indica en la figura, a todos los módulos se conectan las mismas líneas de control, de forma que, en general, todos rea1izan las mismas operaciones al mismo tiempo; estas operaciones son independientes de n, el número de módulos que haya en la matriz de procesadores. Los buses de datos de k bits que transmiten operandos desde o hacia los módulos se unen, simplemente para formar el bús de datos de kn bits de la matriz de procesadores. Conexiones adicionales de datos pueden enlazar módulos adyacentes para permitir la transmisión de las señales de acarreo/adeudo de un módulo a otro durante las operaciones aritméticas.
Es claro que la modularidad permite adaptar el tamaño de palabra de datos de un microprocesador para una aplicación particular. Utilizando seis módulos de 4 bits, por ejemplo, se puede construir un procesador de 24 bits. Es más, un procesador modular se puede particionar dinámicamente de forma fácil en submatrices de diferentes tamaños, lo que simplifica el procesamiento de operandos de diferentes tamaños —palabras de datos de 16 bits y direcciones de 24 .bits, por ejemplo--. Como los módulos individuales corresponden a microprocesadores sencillos sin las unidades I usuales, son lo suficientemente pequeños como para fabricarlos utilizando diseños de circuitos TTL o ECL. Los tamaños de palabra pequeños utilizados para los módulos de los procesadores también hacen más leve otro problema común en microprocesadores, concretamente el disponer de un número limitado de patas en los encapsulados estándares.
Es claro que las operaciones realizadas con un procesador modular deben ser tales que todas las interacciones entre módulos se pueden reducir a una transferencia de señales entre rnódulos adyacentes. En los términos utilizados en el Capítulo 4, los módulos pueden ampliarse mediante la estructura de interconexión de módulos de la figura 8.17. Una revisión de los circuitos MSI y LSI vistos allí muestra que todas las funciones que aparecen en los microprocesadores más simples se pueden realizar con componentes que se pueden ampliar en forma modular. Las instrucciones de transferencia de datos suponen en primer lugar buses de datos y registro paralelo que pueden fácilmente modularse. pues no hay interacción entre bits de datos adyacentes. Los biestables y registros de la serie 7400, respectivamente, muestran de forma clara la estructura modular de la figura anterior
Operaciones booleanas tales como y, o y o-exclusivo, de forma similar, no implican interacciones entre bits de datos adyacentes. y se pueden realizar mediante matrices modulares de puertas (puertas de palabra). Los sumadores con acarreo en cascada constituyen una implantación modular de la suma y de la resta binaria con señales de acarreo/adeudo propagándose de módulo a módulo. Otros ejemplos de dispositivos modulares encontrados anteriormente son los registros de desplazamiento y 105 contadores. Circuitos ALU combinacionales, tal como la ALU de 4 bits 74l81; son módulos procesadores simples capaces de operaciones de transferencia de datos. lógicas, sumas y restas. En la figura 4.27a se tiene una ALU modular de 16 bits formada por cuatro 74181. Los módulos de procesadores considerados en este capitulo son básicamente módulos ALU de este tipo, con la adición de pequeñas RAMs (para archivos de registros) y con los buses de entrada-salida y las funciones de control necesarias para poder manejar un conjunto de instrucciones generales del tipo de las de los microprocesadores.
Para construir una CPU completa es necesario combinar una unidad E modular con una unidad I que pueda captar y decodificar las instrucciones a ejecutar por la unidad E. Normalmente la unidad I de una CPU modular está microprogramada con la organización general que aparece en la figura.
Esquema de un microprocesador modular utilizando control microprogramado
La microprogramación le da al diseñador una flexibilidad en el diseño de unidades I similar a la que proporciona la modularidad en el caso de las unidades E. Las secuencias de control a activar durante la ejecución de las instrucciones se almacenan como listas de microinstrucciones, es decir, microprogramas una memoria especial (usualmente una ROM o PROM) conocida como memoria de control o CM. Frente a esta solución está el control cableado, en el que las secuencias de control producidas por la unidad I se generan utilizando circuitos lógicos secuenciales de propósito especial. Los circuitos lógicos secuenciales de propósito especial. Los circuitos necesarios para captar de CM las microinstrucciones se denominan colectivamente como secuenciadores de microprogramas o controladores de microprogramas. Como se verá próximamente; el concepto de modularidad también se puede aplicar a los secuenciadores de microprogramas.
La primera familia comercial de componentes modulares apareció muy temprano dentro de la evolución de los microprocesadores (Hayes, 1981). En 1973 National Semiconductor introdujo una serie de microprocesadores modulares denominada GPC/P (General Purpose Controller/Processor: Contro1ador/Procesador de propósito general) basado en un módulo procesador de 4 bits denominado R.A.LU (register and arithmetic-logic unit: registro y unidad aritmético-lógica). Fue seguida la serie 3000 de Intel mucho más utilizada, construida con tecnología TTL Shottky más rápida. El módulo procesador 3002 de esta serie se salió de la norma al utilizar palabras de datos de 2 bits. Una de las familias más populares de microprocesadores modulares fue la serie 2900, introducida en 1976 por Advanced Micro Devices (AMD), que, como la serie 3000, utiliza lógica TTL Schottky, pero con módulos procesadores de 4 bits. También hay varias series de microprocesadores modulares ECL incluido el 10800 de Motorola y la serie 100200 de Fairchild; este último es uno de los primeros en incluir un módulo de procesador de 8 bits.
TTL:
La familia 2900
Desde su introducción en 1976, la serie de AMD se ha convertido en una de las familias de microprocesadores modulares mas ampliamente utilizadas. Comprende un amplio conjunto de CIs compatibles, todo con el código numérico 2900, para la construcción de microcomputadoras modulares microprogramables. En la serie se utiliza la tecnología TTL Schottky de bajo consumo, que combina una alta velocidad con un moderado consumo. Los miembros de la familia 2900 se pueden agrupar como sigue:
1.- Procesadores modulares
2.- Secuenciadores de microprogramas, algunos de los cuales son modulares.
3.- Memorias (RAMs y PROMs).
4.- Diferentes circuitos SSI y MSI (circuitos para entradas y salidas al bus, decodificadores, registros, etc.)
La serie de CIs estándar 74LS00 también se puede utilizar en los sistemas basados en el 2900. Entre las posibilidades a utilizar en el diseño de software está el lenguaje microensamblador AMDASM, y sistemas de desarrollo de microprocesadores con posibilidades especiales para el diseño y comprobación de microprogramas. Un microprocesador o microcomputadora completa construida con componentes de la serie 2900 es de esperar que tenga 50 o mas CIs. Este elevado numero de componentes queda compensado por el hecho de que se pueden conseguir unas prestaciones significativamente mas altas de lo que es posible con microprocesadores o microcomputadoras con una sola pastilla.
CMOS:
Complementary metal-oxide-semiconductor o CMOS es una de las familias lógicas empleadas en la fabricación de circuitos integrados. Su principal característica consiste en la utilización conjunta de transistores de tipo pMOS y tipo nMOS configurados de tal forma que, en estado de reposo, el consumo de energía es únicamente el debido a las corrientes parásitas.
En la actualidad, la mayoría de los circuitos integrados que se fabrican utilizan la tecnología CMOS. Esto incluye microprocesadores, memorias, procesadores digitales de señales y muchos otros tipos de circuitos integrados digitales.
Inversor estático CMOS.
En un circuito CMOS, la función lógica a sintetizar se implementa por duplicado mediante dos circuitos: uno basado exclusivamente en transistores pMOS (circuito de pull-up), y otro basado exclusivamente en transistores nMOS (circuito de pull-down). El circuito pMOS es empleado para propagar el valor binario 1 (pull-up), y el circuito nMOS para propagar el valor binario 0 (pull-down). Véase la figura. Representa una puerta lógica NOT o inversor.
Cuando la entrada es 1, el transistor nMOS está en estado de conducción. Al estar su fuente conectada a tierra (0), el valor 0 se propaga al drenador y por lo tanto a la salida de la puerta lógica. El transistor pMOS, por el contrario, está en estado de no conducción.
Cuando la entrada es 0, el transistor pMOS está en estado de conducción. Al estar su fuente conectada a la alimentación (1), el valor 1 se propaga al drenador y por lo tanto a la salida de la puerta lógica. El transistor nMOS, por el contrario, está en estado de no conducción.
Otra de las características importantes de los circuitos CMOS es que son regenerativos: una señal degradada que acometa una puerta lógica CMOS se verá restaurada a su valor lógico inicial 0 ó 1, siempre y cuando aún esté dentro de los márgenes de ruido que el circuito pueda tolerar.
[editar]Ventajas e inconvenientes
[editar]Ventajas
La familia lógica tiene una serie de ventajas que la hacen superior a otras en la fabricación de circuitos integrados digitales:
El bajo consumo de potencia estática, gracias a la alta impedancia de entrada de los transistores de tipo MOSFET y a que, en estado de reposo, un circuito CMOS sólo experimentará corrientes parásitas. Esto es debido a que en ninguno de los dos estados lógicos existe un camino directo entre la fuente de alimentación y el terminal de tierra, o lo que es lo mismo, uno de los dos transistores que forman el inversor CMOS básico se encuentra en la región de corte en estado estacionario.
Gracias a su carácter regenerativo, los circuitos CMOS son robustos frente a ruido o degradación de señal debido a la impedancia del metal de interconexión.
Los circuitos CMOS son sencillos de diseñar.
La tecnología de fabricación está muy desarrollada, y es posible conseguir densidades de integración muy altas a un precio mucho menor que otras tecnologías.
[editar]Inconvenientes
Algunos de los inconvenientes son los siguientes:
Debido al carácter capacitivo de los transistores MOSFET, y al hecho de que estos son empleados por duplicado en parejas nMOS-pMOS, la velocidad de los circuitos CMOS es comparativamente menor que la de otras familias lógicas.
Son vulnerables a latch-up: Consiste en la existencia de un tiristor parásito en la estructura CMOS que entra en conducción cuando la salida supera la alimentación. Esto se produce con relativa facilidad debido a la componente inductiva de la red de alimentación de los circuitos integrados. El latch-up produce un camino de baja resistencia a la corriente de alimentación que acarrea la destrucción del dispositivo. Siguiendo las técnicas de diseño adecuadas este riesgo es prácticamente nulo. Generalmente es suficiente con espaciar contactos de sustrato y pozos de difusión con suficiente regularidad, para asegurarse de que está sólidamente conectado a masa o alimentación.
Según se va reduciendo el tamaño de los transistores, las corrientes parásitas empiezan a ser comparables a las corrientes dinámicas (debidas a la conmutación de los dispositivos).