Académique Documents
Professionnel Documents
Culture Documents
1. Introducción
Para realizar estos procesos, los ordenadores disponen de memoria que puede estar en dos
estados estables y de circuitos que pueden operar con datos binarios bajo la acción de
señales de control.
En este tema vamos a ver como están implementados estos elementos de memoria y
circuitos en lógica digital, concretamente con circuitos combinacionales y secuenciales. A
su vez, los circuitos combinacionales y secuenciales se componen de puertas lógicas cuyo
funcionamiento está basado en el álgebra de Boole que es el fundamento matemático de la
lógica digital.
2. Álgebra de Boole
La circuitería de los ordenadores digitales se diseña y analiza con el uso de una disciplina
matemática denominada álgebra de Boole. El álgebra de Boole es una herramienta útil tanto
en el análisis como en el diseño de circuitos digitales:
El álgebra de Boole utiliza los siguientes elementos y operaciones. Los elementos del
álgebra de Boole son {verdadero, falso} que los podemos representar por {0,1}.
Tema 9 Lógica de circuitos Página 2 de 10
Ā A·B A+B
A B
NOT A A AND B A OR B
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
En ausencia de paréntesis la operación AND tiene más prioridad que la operación OR.
3. Puertas lógicas
El bloque fundamental de construcción de circuitos lógicos digitales son las puertas lógicas.
Las funciones lógicas se implementan interconectando puertas.
Una puerta es un circuito electrónico que produce como señal de salida una operación
booleana sencilla de las señales de entrada. Las puertas básicas usadas en lógica digital son
AND, OR, NOT, NAND, y NOR. Cada puerta se define de tres formas:
Cada puerta lógica tiene una o más entradas y una salida. Cuando los valores de entrada
cambian, la señal de salida correcta aparece retrasada por el tiempo de propagación de la
señal a través de la puerta (retardo de puerta).
Tema 9 Lógica de circuitos Página 3 de 10
AB F
00 1
NAND F = NOT(A * B) 01 1
10 1
11 0
AB F
00 1
NOR F = NOT(A + B) 01 0
10 0
11 0
A + B = NOT(NOT A * NOT B)
4. Circuitos combinacionales
Tabla de verdad: Para cada una de las 2n combinaciones posibles de las n señales
de entrada, se enumera el valor binario de cada una de las m señales de salida.
Símbolo gráfico: Describe la organización de las interconexiones entre puertas.
Ecuaciones booleanas: Cada señal de salida se expresa como una función booleana
de señales de entrada.
Cualquier función booleana se puede implementar con puertas lógicas. Para una función
dada, podemos implementarla de varias formas alternativas.
Esta expresión se puede escribir como producto de sumas empleando una generalización
del teorema de De Morgan:
Un multiplexor es un circuito que conecta varias entradas con una única salida. En un
momento dado se selecciona una de las entradas para que pase a la salida.
Decodificadores
Un decodificador es un circuito combinacional con varias líneas de salida, con una sola de
ellas seleccionada en un instante dado, dependiendo del patrón de líneas de entrada. En
general un decodificador tiene n entradas y 2n salidas.
Dirección Chip
0000-00FF 0
0100-01FF 1
0200-02FF 2
0300-03FF 3
Cada chip requiere 8 líneas de dirección, y estos se toman de los 8 bits menos significativos
de la dirección. Los 2 bits más significativos de los 10 bits de dirección, se usan para
seleccionar uno de los cuatro chips de RAM. Para ello se puede usar un decodificador de 2
a 4 cuya salida habilita uno de los cuatro chips.
Tema 9 Lógica de circuitos Página 7 de 10
Las puertas lógicas suelen presentarse encapsuladas en chips. Para construir una función
lógica, se disponen de varios de estos chips en una tarjeta de circuito impreso y se hacen las
interconexiones adecuadas entre los terminales de los chips.
El utilizar un alto nivel de integración hace posible añadir mas puertas en un chip y hacer
interconexiones dentro del chip también. Esto tiene como ventajas la disminución del coste
y del tamaño, y el incremento de velocidad (pues los retardos dentro del chip son inferiores
a los retardos fuera del chip).
Sin embargo, surge un problema de diseño. Para cada función lógica particular o conjunto
de funciones, hay que diseñar la organización de las puertas e interconexiones en el chip. El
coste y el tiempo implicados en el diseño del chip a medida son altos.
Para resolver el problema anterior se construyen arrays lógicos programables (PLA) que
son chips de uso general preparados para adaptarse a usos específicos.
Los PLA se basan en el hecho de que cualquier función booleana se puede expresar en
forma de suma de productos. Un PLA consiste en una disposición regular de puertas NOT,
AND y OR en un chip. Cada entrada al chip pasa a través de una puerta NOT, así tenemos
disponible la entrada y su complemento para cada puerta AND. La salida de cada puerta
AND está disponible para cada puerta OR, y la salida de cada puerta OR es una salida del
chip. Haciendo las conexiones adecuadas, se pueden implementar funciones booleanas.
Los PLA se fabrican de dos formas para hacer más fácil la tarea de establecer las
conexiones (programar el chip) entre los diferentes elementos del chip.
PLA de campo. Las conexiones se hacen a través de fusibles en cada punto de
intersección.
PLA de máscara. Las conexiones se hacen durante la fabricación del chip usando
una máscara adecuada para un patrón de interconexión particular.
A los circuitos combinacionales se les llama, a veces, circuitos “sin memoria” ya que su
salida depende sólo de la entrada actual y no retiene la historia de las entradas anteriores.
Sin embargo, las memorias ROM pueden ser implementadas con circuitos
combinacionales.
La ROM es una memoria de sólo lectura. Esto implica que la información almacenada en
una ROM es permanente y se creó en el proceso de fabricación del chip de memoria.
Entonces, dada una entrada a un chip de ROM siempre producirá la misma salida.
La tabla de verdad asociada a una ROM tendría como entrada una dirección de memoria y
como salida el contenido de una dirección de memoria. Se podría implementar una ROM
Tema 9 Lógica de circuitos Página 8 de 10
La suma binaria difiere de la del álgebra booleana en que el resultado incluye un término de
acarreo (1 + 1 = 10).
No obstante, la suma de dos bits puede ser implementada como una función booleana
especificando las entradas y sus correspondientes salidas en una tabla de verdad y
deduciendo de la misma su función booleana asociada.
Para sumar dos números de n bits podemos hacerlo poniendo un conjunto de sumadores de
dos bits de forma que el acarreo de un sumador sea una entrada del siguiente.
Hay que notar que, como la salida de cada sumador depende del sumador previo, hay un
retardo que crece del bit menos significativo al más significativo. Cada sumador de un bit
experimenta un cierto retardo de puerta, y este retardo de puerta se acumula.
5. Circuitos secuenciales
Las funciones esenciales de un ordenador digital pueden ser implementadas con circuitos
combinacionales. Sin embargo, excepto para el caso especial de las memorias ROM, no
proporcionan memoria o información de estado.
Para poder construir registros y memorias se usan los circuitos secuenciales que son
más complejos que los circuitos combinacionales. La salida de un circuito combinacional,
además de depender de la entrada, depende del estado en que se encuentre el circuito.
Tema 9 Lógica de circuitos Página 9 de 10
Un biestable es un dispositivo que puede presentar dos estados. En ausencia de entrada está
en uno de los dos estados, recordando el último estado. Un biestable tiene dos salidas, que
son siempre complementarias (Q, NOT Q). Debido a las características que presenta puede
funcionar como una memoria de 1 bit.
El biestable S-R se puede definir con una tabla parecida a una tabla de verdad, llamada
tabla característica, que muestra el siguiente estado o estados de un circuito secuencial, en
función de los estados y entradas actuales.
Biestable JK
Tabla de verdad
J K Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 NOT Qn
Tema 9 Lógica de circuitos Página 10 de 10
5.2 Registros
5.3 Contadores
Los contadores pueden ser asíncronos o síncronos, dependiendo de la forma en que operen:
Contadores síncronos: son más rápidos que los contadores asíncronos. En este tipo
de contadores todos los biestables cambian de estado a la vez. Las CPU utilizan
contadores síncronos por cuestiones de rapidez