LOGICA COMBINACIONAL
Se denomina sistema combinacional o
lógica combinacional a todo sistema digital en el que sus salidas son función
exclusiva del valor de sus entradas en un momento dado, sin que intervengan en
ningún caso estados anteriores de las entradas o de las salidas. Las funciones
(OR, AND, NAND, XOR) son booleanas donde cada función se puede representar en
una tabla de la verdad. Por tanto, carecen de memoria y de realimentación.
En electrónica digital la lógica
combinacional está formada por ecuaciones simples a partir de las operaciones
básicas del álgebra de Boole. Entre los circuitos combinacionales clásicos
tenemos:
Lógicos:
Generador/Detector de paridad
Multiplexor y Demultiplexor
Codificador y Decodificador
Conversor de código
Comparador
Aritméticos:
Sumador
Aritméticos y lógicos
Unidad aritmético lógica
Éstos circuitos están compuestos
únicamente por puertas lógicas interconectadas entre sí.
FUNCIONES
COMBINACIONALES
Todos los circuitos combinacionales
pueden representarse empleando álgebra de Boole a partir de su función lógica,
generando de forma matemática el funcionamiento del sistema combinacional. De
este modo, cada señal de entrada es una variable de la ecuación lógica de
salida. Por ejemplo, un sistema combinacional compuesto exclusivamente por una
puerta AND tendría dos entradas A y B. Su función combinacional seria
, para una puerta OR
sería
. Estas operaciones se
pueden combinar formando funciones más complejas. Así, el siguiente esquema se
define por la función indicada debajo del mismo.


LOGICA COMBINACIONAL
Definición
Un circuito combinacional consiste en:
-
variables de entrada,
-
compurtas lógicas y
-
variables de salida
PROCEDIMIENTO DE DISEÑO
1.
ENUNCIADO DEL PROBLEMA
2.
DETERMINAR NUMERO DE VARIABLES DE E/S
3.
ASIGNAR LETRAS A LAS VARIABLES
4.
TABLA DE VERDAD
5.
FUNCION DE BOOLE
6.
DIAGRAMA LOGICO
SUMADOR MEDIO
1.
PROBLEMA: circuito que elabore suma entre dos bits.
2.
VARIABLES DE ENTRADA 2
VARIABLES DE SALIDA 2
3.
VARIABLES DE ENTRADA: x, y
VARIABLES DE SALIDA : C, S
4.
TABLA DE VERDAD
x y
|
C S
|
0 0
0 1
1 0
1 1
|
0 0
0 1
0 1
1 0
|
5. FUNCIONES DE BOOLE
a. S =
xy' + x'y C = xy
b. S =
(x+y)(x'+y') C = xy
c. S =
(C + x'y')' C = (x'+y')'
d. S =
xy C = xy
SUMADOR COMPLETO
1.
PROBLEMA: SUMAR TRES BITS
(ACARREO)
2.
VARABLES DE ENTRADA 3
VARIABLES DE SALIDA 2
3.
VARIABLES DE ENTRADA: x, y,
z
VARIABLES DE SALIDA : C, S
4.
TABLA DE VERDAD
x y z
|
C S
|
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
|
0 0
0 1
0 1
1 1
0 1
1 0
1 0
1 1
|
1.
PROBLEMA: circuito que elabore
una resta entre dos bits.
2.
VARIABLES DE ENTRADA 2
VARIABLES DE SALIDA 2
3.
VARIABLES DE ENTRADA: x, y
VARIABLES DE SALIDA : C, D
4.
TABLA DE VERDAD
x y
|
C D
|
0 0
0 1
1 0
1 1
|
0 0
1 1
0 1
0 0
|
SUSTRACTOR COMPLETO
1.
PROBLEMA: RESTAR TRES BITS (ACARREO)
2.
VARABLES DE ENTRADA 3
VARIABLES DE SALIDA 2
3.
VARIABLES DE ENTRADA: x, y,
z
VARIABLES DE SALIDA : C, S
4. TABLA DE VERDAD
x y z
|
C S
|
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
|
0 0
1 1
1 1
1 0
0 1
0 0
0 0
1 1
|
5. FUNCIONES DE BOOLE.
S = x'y'z + x'yz' +
xy'z' + xyz C=?
6. DIAGRAMAS LOGICOS.
Un circuito combinacional es un sistema
que contiene operaciones booleanas básicas (AND, OR, NOT), algunas entradas y
un juego de salidas, como cada salida corresponde a una función lógica
individual, un circuito combinacional a menudo implementa varias funciones
booleanas diferentes, es muy importante recordar éste hecho, cada salida
representa una función booleana diferente.
Un ejemplo común de un circuito
combinacional es el decodificador de siete segmentos, se trata de un circuito
que acepta cuatro entradas y determina cuál de los siete segmentos se deben
iluminar para representar la respectiva entrada, de acuerdo con lo dicho en el
párrafo anterior, se deben implementar siete funciones de salida diferentes,
una para cada segmento. Las cuatro entradas para cada una de éstas funciones
booleanas son los cuatro bits de un número binario en el rango de 0 a 9. Sea D el bit de alto
orden de éste número y A el bit de bajo orden, cada función lógica debe
producir un uno (para el segmento encendido) para una entrada dada si tal
segmento en particular debe ser iluminado, por ejemplo, el segmento e debe
iluminarse para los valores 0000, 0010, 0110 y 1000. En la siguiente tabla se
puede ver qué segmentos deben iluminarse de acuerdo al valor de entrada, tenga
en cuenta que sólo se están representando valores en el rango de 0 a 9, los decodificadores para
las pantallas de siete segmentos comerciales tienen capacidad para desplegar
valores adicionales que corresponden a las letras A a la F para
representaciones hexadecimales, sin embargo la mecánica para iluminar los
respectivos segmentos es similar a la aquí representada para los valores
numéricos.
0
|
a
|
b
|
c
|
d
|
e
|
f
|
|
1
|
b
|
c
|
|||||
2
|
a
|
b
|
d
|
e
|
g
|
||
3
|
a
|
b
|
c
|
d
|
g
|
||
4
|
b
|
c
|
f
|
g
|
|||
5
|
a
|
c
|
d
|
f
|
g
|
||
6
|
c
|
d
|
e
|
f
|
g
|
||
7
|
a
|
b
|
c
|
||||
8
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
9
|
a
|
b
|
c
|
f
|
g
|
Los circuitos combinacionales son la
base de muchos componentes en un sistema de cómputo básico, se puede construir
circuitos para sumar, restar, comparar, multiplicar, dividir y muchas otras
aplicaciones más.
CIRCUITOS
SECUENCIALES
Un problema con la lógica secuencial es
su falta de "memoria". En teoría, todas las funciones de salida en un
circuito combinacional dependen del estado actual de los valores de entrada,
cualquier cambio en los valores de entrada se refleja (después de un intervalo
de tiempo llamado retardo de propagación) en las salidas. Desafortunadamente
las computadoras requieren de la habilidad para "recordar" el
resultado de cálculos pasados. Éste es el dominio de la lógica secuencial. Una
celda de memoria es un circuito electrónico que recuerda un valor de entrada
después que dicho valor ha desaparecido. La unidad de memoria más básica es el
flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayoría
de los sistemas de cómputo requieren recordar un grupo de bits, ésto se logra
combinando varios flip-flop en paralelo, una conexión de éste tipo recibe el
nombre de registro. A partir de aquí es posible implementar diferentes
circuitos como registros de corrimiento y contadores, éstos últimos también los
conocemos como circuitos de reloj. Con los elementos mencionados es posible
construir un microprocesador completo.
RELACIÓN ENTRE LA LÓGICA COMBINACIONAL Y
SECUENCIAL CON LA PROGRAMACIÓN
En ésta lección hemos dado una repasada
muy básica a los elementos que forman la base de los modernos sistemas de
cómputo, en la sección dedicada al diseño electrónico estudiaremos a
profundidad los conceptos aquí presentados, pero para aquellos que están más
interesados en el aspecto programático podemos decir que con los elementos
vistos en ésta lección es posible implementar máquinas de estado, sin embargo
la moraleja de ésta lección es muy importante: cualquier algoritmo que podamos
implementar en software, lo podemos a su vez implementar directamente en
hardware. Ésto sugiere que la lógica booleana es la base computacional en los
modernos sistemas de cómputo actuales. Cualquier programa que Usted escriba,
independientemente del lenguaje que utilice, sea éste de alto ó bajo nivel, se
puede especificar como una secuencia de ecuaciones booleanas.
Un hecho igualmente interesante es el
punto de vista opuesto, es posible implementar cualquier función de hardware
directamente en software, en la actualidad ésta es la función principal del
lenguaje ensamblador y otros con capacidad de trabajar directamente en
hardware, como el C y el C++. Las consecuencias de éste fenómeno apenas se
están explotando, se infiere la existencia de un futuro muy prometedor para el
profesional de la programación, especialmente aquellos dedicados a los sistemas
incrustados (embedded systems), los microcontroladores y los profesionales
dedicados a la Programación Orientada a Objetos. Para tener éxito en éstos
campos de la investigación es fundamental comprender las funciones booleanas y
la manera de implementarlas en software. Aún y cuando Usted no desee trabajar
en hardware, es importante conocer las funciones booleanas ya que muchos
lenguajes de alto nivel procesan expresiones booleanas, como es el caso de los
enunciados if-then ó los bucles while.
UNIVERSALIDAD DE LAS COMPUERTAS NAND Y
NOR
Esta compuertas se dicen que son
"universales" puesto que con cada una de las dos familias podemos
realizar todas las funciones lógicas.
En la tabla a continuación se muestran
los operadores lógicos en función de solo compuertas NOR y solo compuertas
NAND.
NAND
|
NOR
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
SUMADORES BASICOS
Sumadores. Estas operaciones se realizan
mediante un circuito lógico (compuesto de puertas lógicas) denominado
semisumador
Permite sumar dos bits sin tener en
cuenta los acarreos provenientes de la adición de bits anteriores.
Un semisumador admite dos dígitos
binarios en sus entradas y genera dos dígitos binarios en sus salidas: un bit
de suma y un bit de acarreo, visto anteriormente.
SUMADOR COMPLETO
Un sumador completo es la suma de 2 bits
de entrada y el bit de acarreo de entrada.
A partir del semisumador, sabemos que la
suma de los 2 bits de entrada A y B consiste en la operación OR-exclusiva (XOR)
entre esas dos variables A B. Para la suma del
acarreo de entrada (Cin) a los bits de entrada, hay que volver a aplicar la
operación OR-EXCLUSIVA (XOR), obteniendose la siguiente ecuación de salida:
Suma = (AB) Cin
El acarreo de salida es 1 cuando las 2
entradas de la primera puerta XOR son 1, o cuneado las dos entradas de la
segunda puerta XOR son 1, por lo tanto:
Cout= A B + (AB) Cin
Nota: esta function, una vez
implementada, se combina con la de suma logica para constituir un circuito
sumador completo.
0 comentarios:
Publicar un comentario