LOGICA COMBINACIONAL Se denomi denomina na sistem sistema a combin combinaci acional onal o lógica lógica combin combinaci acional onal a todo todo sistem sistema a 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 electróni ónica ca digita digitall la lógica lógica combin combinaci aciona onall está está formad formada a por ecuaci ecuacione oness 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 Ésto Éstoss circ circui uito toss está están n interconectadas entre sí.
compu ompues esto toss
úni únicame cament nte e
por por
puer puerta tass
lógi lógiccas
FUNCIONES COMBINACIONALES Todos los circuitos combinacionales pueden representarse empleando álgebra de Bool Boole e a part partir ir de su func funció ión n lógi lógica ca,, gene genera rand ndo o de form forma a mate matemá mátitica ca el funcionamiento del sistema combinacional. De este modo, cada señal de entrada es una una vari variab able le de la ecua ecuaci ción ón lógi lógica ca de sali salida da.. Por Por ejem ejempl plo, o, un sist sistem ema a combin combinaci aciona onall compue compuesto sto exclus exclusiva ivamen mente te por una puerta puerta AND tendrí tendría a dos entradas entradas A y B. Su función función combinacio combinacional nal seria , para una puerta OR serí sería a . Esta Estass oper operac acio ione ness se pued pueden en comb combin inar ar form forman ando do 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
entrada
circuito lógico combinacio
salida
PROCEDIMIENTO DE DISEÑO 1. ENUNCIADO DEL PROBLEMA 2. DETERMINAR NUMERO DE VARIABLES DE E/S E/S 3. ASIGNAR LETRAS 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 0 0 1 1
y 0 1 0 1
C 0 0 0 1
S 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 = x⊕y C = xy 6. DIAGRAMAS LOGICOS
X Y
S X Y
X Y
C
SUMADOR COMPLETO 1. PROBLEMA: SUMAR TRES BITS (ACARREO) 2. VARABLES DE ENTRADA 3 VARIABLES DE SALIDA 2 3. VARIABLES DE ENTRADA: VARIABLES DE SALIDA :
x, y, z C, S
4. TABLA DE VERDAD x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
5. FUNCIONES DE BOOLE
6. DIAGRAMAS LOGICOS
C 0 0 0 1 0 1 1 1
S 0 1 1 1 1 0 0 1
SUSTRACTOR MEDIO 1. PROBLEMA: circuito que elabore una resta entre dos bits. 2. VARIABLES DE ENTRADA 2 VARIABLES DE SALIDA 2 3. VARIABLES DE ENTRADA: VARIABLES DE SALIDA :
x, y C, D
4. TABLA DE VERDAD x 0 0 1 1 5. a. D = xy' + x'y
y 0 1 0 1 C = x'y
6. DIAGRAMAS LOGICOS
C 0 1 0 0
D 0 1 1 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 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
C 0 1 1 1 0 0 0 1
5. FUNCIONES DE BOOLE. S = x'y'z + x'yz' + xy'z' + xyz 6. DIAGRAMAS LOGICOS.
C=?
S 0 1 1 0 1 0 0 1
CIRCUITOS COMBINACIONALES COMBINACIONALES Un circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND (AND,, OR OR,, NO NOT) T),, algu alguna nass entr entrad adas as y un jueg juego o de sali salida das, s, como como cada cada sali salida da correspon corresponde de a una función función lógica lógica individu individual, al, un circuito circuito combina combinaciona cionall a menudo menudo implementa varias funciones booleanas diferentes, es muy importante recordar éste hecho, cada salida representa una función booleana diferente. Un ejem ejempl plo o comú común n de un circ circui uito to comb combin inac acio iona nall es el deco decodi dififica cado dorr de siet siete e 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 segm segmen ento to en part partic icul ular ar debe debe ser ser ilum ilumin inad ado, o, por por ejem ejempl plo, o, el segm segmen ento to e debe 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 comerciales tienen t ienen capacidad para desplegar valores adic adicio iona nale less que que corr corres espo pond nden en a las las letr letras as A a la F para para rep represe resent ntac acio ione ness hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a la aquí representada para los valores numéricos.
0 1 2 3 4 5 6 7 8 9
a
b b b b b
a a a a a a
b b b
c c c c c c c c c
d
e
d d
e
d d
e
d
e
f
f f f
g g g g g
f f
g 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 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 inte interv rval alo o de tie tiempo mpo llamado mado reta retard rdo o de prop ropagac gación ión) en las sali salid das.
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 dicho valor valor ha desap desapare arecid cido. o. La unida unidad d de memori memoria a más básica básica es el flip-f flip-flo lop p 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 flipflop en paralelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí aquí es posib posible le implem implement entar ar difere diferente ntess circui circuitos tos como como regist registros ros de corri corrimie miento nto y contadores, éstos últimos también los conocemos como circuitos de reloj. Con los elementos mencionados mencionados es posible construir un microprocesador completo. RELA RELACI CIÓN ÓN ENTR ENTRE E LA LÓGI LÓGICA CA CO COMB MBIN INAC ACION IONAL AL Y SECU SECUEN ENCI CIAL AL CO CON N LA PROGRAMACIÓN En ésta lección hemos dado una repasada muy básica a los elementos que forman la base base de los modern modernos os sistem sistemas as de cómpu cómputo, to, en la secció sección n dedica dedicada da al diseño 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ó función n princ principa ipall del lengua lenguaje je ensamb ensambla lador dor y otros otros con capaci capacidad dad de traba trabajar jar 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 incr incrus usta tado doss (emb (embed edde ded d syste systems ms), ), los los micr microc ocon ontro trola lado dore ress y los los prof profes esio iona nale less 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 denominado semisumador 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 = (A⊕B) ⊕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 + (A⊕B) Cin Nota: esta function, una vez implementada, se combina con la de suma logica para constituir un circuito sumador completo. VER REFERENCIA