UNIVERSIDAD
NACIONAL AUTÓNOMA DE MÉXICO
COLEGIO
DE CIENCIAS Y HUMANIDADES PLANTEL SUR
CIBERNÉTICA
“CIRCUITOS
LÓGICOS”
PIÑA
FRAGOSO ITZAYANA BERENICE
PROFESOR: LUIS
ENRIQUE RODRIGUEZ MALDONADO
INTRODUCCIÓN
En este
documento se estudiaran los circuitos lógicos. El objetivo de este trabajo es
entender como está formado un computador desde el punto de vista electrónico.
Para ello es necesario conocer a fondo los dispositivos básicos.
Los
dispositivos más elementales son las puertas lógicas y los bloques lógicos, que
forman los circuitos lógicos. Estos últimos se pueden ver como un conjunto de
dispositivos que manipulan de una manera determinada las señales electrónicas
que les llegan (las señales de entrada), y generan como resultado otro conjunto
de señales (las señales de salida).
También me
gustaría que al finalizar el estudio de este trabajo poder lograr una
satisfacción en los siguientes puntos:
•Entender el
álgebra de Boole y las diferentes maneras de expresar funciones lógicas
•Conocer las
diferentes puertas lógicas, ver cómo se pueden utilizar para sintetizar
funciones lógicas. Entender porque se desea minimizar el número de puertas y de
niveles de puertas de los circuitos lógicos.
1. ALGEBRA
DE BOOLE
1.1 Definición
de álgebra de Boole
Tanto la teoría de conjuntos como la
lógica de enunciados tienen propiedades similares. Tales propiedades se
utilizan para definir una estructura matemática denominada álgebra de Boole, en
honor al matemático George Boole (1813-1864).
Sea B un
conjunto en el cual se definen dos operaciones binarias, + y *, y una operación
unitaria denotada; sean 0 y 1 dos elementos diferentes de B. Entonces la
séxtupla:
〈B, +, *,
, 0, 1〉
Se denomina álgebra
de Boole si se cumplen los siguientes axiomas para cualesquiera elementos a, b,
c del conjunto B:
[B1] Conmutatividad:
(1a) a + b = b + a (1b) a * b = b * a
[B2] Distributividad:
(2a) a + (b * c) = (a + b) * (a + c) (2b) a * (b + c) = (a * b) + (a * c)
[B3] Identidad:
(3a) a + 0 = a (3b) a *
1 = a
[B4] Complemento:
(4a) a + a = 1 (4b) a * a
= 0
1.2 Terminología y convenciones
• Las
operaciones + y * se denominan suma y
producto, respectivamente.
• La
operación a se denomina complemento
de a.
• El elemento
0 se denomina elemento cero (neutro
respecto de la suma). 2
• El elemento
1 se denomina elemento unidad (neutro
respecto del producto).
• Por
convención, omitimos el símbolo *, usándose en su lugar la yuxtaposición; de
este modo, (2a) y (2b) se escriben:
(2a) a + bc = (a
+ b) (a + c) (2b) a (b + c) = ab + ac
• Por
convención, establecemos que + es más fuerte que * y * es más fuerte que - ;
por
Ejemplo:
a
+ b * c significa a
+ (b * c) y no (a + b) * c
a * b significa a
* ( b ) y no (*) a b
1.3 Dualidad
En un álgebra
de Boole B, el dual de cualquier enunciado es el enunciado obtenido de
intercambiar las operaciones + y *, e intercambiar los elementos neutros 0 y 1
en el enunciado original. Por ejemplo:
el dual de (1 + a) * (b + 0) = b es
(0 * a) + (b * 1) = b
Con esta
definición de dualidad puede observarse que, en la definición de álgebra de
Boole, los axiomas del grupo (1) son duales de los axiomas del grupo (2) y
viceversa. En otras palabras, el dual de cualquier axioma de B también es un
axioma. En consecuencia, se cumple el siguiente teorema:
1.3.1 Teorema 1 (Principio de
dualidad): En un
álgebra de Boole, el dual de cualquier teorema es también un teorema.
Esto
significa que, si cualquier teorema es una consecuencia de los axiomas de un
álgebra de Boole, entonces el dual también es una consecuencia de estos axiomas
ya que se puede probar usando el dual en cada paso de la demostración original.
1.4 Teoremas básicos
Utilizando
los axiomas de la definición de un álgebra de Boole, pueden demostrarse los
siguientes teoremas:
1.4.1Teorema 1: Sean a, b, c elementos cualesquiera
de un álgebra de Boole B, se cumple:
(i) Idempotencia:
(5a)
a + a = a (5b) a * a = a
(ii) Acotamiento:
(6a)
a + 1 = 1 (6b) a * 0 = 0
(iii) Absorción:
(7a) a + (a * b) = a (7b) a * (a + b) = a 3
(iv) Asociatividad:
(8a)
(a + b) + c = a + (b + c) (8b) (a * b) * c = a * (b * c)
1.4.2Teorema 2: Sea a un elemento cualquiera de un álgebra de Boole B, se cumple:
(i) Unicidad del complemento:
Si a + x = 1 y a *
x = 0, entonces
x = a
(ii)
Involución:
a = a
(iii) (9a) 0 = 1 (9b) 1 = 0
1.4.3Teorema 3: Leyes de De Morgan
(10a)
a + b = a*b (10b) a*b = a + b
Es importante
insistir que el álgebra de Boole es la estructura algebraica de la lógica de
enunciados. En efecto, si se reemplazan las variables a, b, c,… por variables proposicionales,
la suma y el producto por la disyunción y la conjunción respectivamente, el
complemento por la negación, la igualdad por el bicondicional, y 1 y 0 por V y
F respectivamente, todos los axiomas y teoremas del álgebra de Boole se
transforman en axiomas o teoremas de la lógica de enunciados. Por ejemplo:
(2b) a * (b + c) = (a * b) + (a * c) p ∧ (q ∨ r) ↔ (p ∧ q) ∨ (p ∧ r)
(5a) a + a = a p
∨ p ↔ p
(7a) a + (a * b) = a p ∨ (p ∧ q) ↔ p
(10b) a*b = a + b ¬ (p ∧
q) ↔ ¬p ∨ ¬q
1.5 Forma de suma de productos
Considérese
un conjunto de variables a, b, c, d,….
• Una expresión booleana E en estas variables
es o una variable o una expresión construida con estas variables y usando las
operaciones booleanas +, * o.
Por ejemplo, las siguientes son expresiones
booleanas:
(a +bc) + (abc + ab)
((abc + b) + ac)
• Un literal es una variable o una variable
complementada. Por ejemplo, a, a , b, b son literales.
• Un producto fundamental es un literal o un
producto de dos o más literales en el cual no hay dos literales con la misma
variable. Por ejemplo, ac, abc, a, b, b,
abc son productos fundamentales. En cambio, abac y abcb no son productos fundamentales: el primero contiene a y a, mientras que el segundo contiene
b dos veces.
• Una
expresión booleana E está en forma de suma
de productos si E es un producto fundamental o una suma de dos o más
productos fundamentales. Por ejemplo, la siguiente expresión está en suma de
productos:
ac + abc + abc
Pero la
siguiente expresión no está en forma de suma de productos:
ac + aba + abc
Ya que el
segundo término no es un producto fundamental.
2. CIRCUITOS LÓGICOS
Un circuito
lógico es un dispositivo que tienen una o más entradas y exactamente una
salida. En cada instante cada entrada tiene un valor, 0 o 1; estos datos son
procesados por el circuito para dar un valor en su salida, 0 o 1.
Los valores 0
y 1 pueden representar ciertas situaciones físicas como, por ejemplo, un
voltaje nulo y no nulo en un conductor.
Un Circuito
Lógico es aquel que maneja la información en forma de "1" y
"0", dos niveles lógicos de voltaje fijos. "1" nivel alto o
"high" y "0" nivel bajo o "low". Puede ser
cualquier circuito que se comporte de acuerdo con un conjunto de reglas
lógicas.
3. TIPOS DE CIRCUITOS LÓGICOS
3.1
Circuitos Lógicos Combinatorios
Un circuito
combinatorio es un arreglo de compuertas lógicas con un conjunto de entradas y
salidas. En cualquier momento, los valores binarios de las salidas son una
combinación binaria de las entradas. Los circuitos combinatorios se emplean en
las computadoras digitales para generar decisiones de control binarias y para
proporcionar los componentes digitales requeridos para el procesamiento de
datos.
·
n
variables de entrada
·
m
variables de salida
El diseño de
un circuito combinatorio parte del planteamiento verbal del problema y termina
con un diagrama lógico. El procedimiento es el siguiente:
1. 2. 3. 4.
5.
Se establece
el problema Se asignan símbolos a las variables de entrada y salida. Se extrae
la tabla de verdad. Se obtienen las funciones booleanas simplificadas. Se traza
el diagrama lógico.
El circuito
aritmético digital más simple es el de la suma de dos dígitos binarios. Un
circuito combinatorio que ejecuta la suma de dos bits se llama semisumador
Implementarlo.
Semisumador
(Medio Sumador o Half Adder)
Otro método
para sumar dos números de n bits consiste en utilizar circuitos separados para
cada par correspondiente de bits: los dos bits que se van a sumar, junto con el
acarreo resultante de la suma de los bits menos significativos, lo cual
producirá como salidas un bit de la suma y un bit del acarreo de salida del bit
más significativo.
3.2
Circuitos Lógicos Secuenciales
A diferencia
de los circuitos combinacionales, en los circuitos secuenciales se guarda
memoria de estado. Las salidas no dependen tan solo del valor de las entradas
en un instante dado, sino que también están determinadas por el estado
almacenado en el circuito. Dicho de otra forma, un circuito secuencial tiene
memoria. En los circuitos secuenciales se distinguirá entre circuitos secuenciales asíncronos y síncronos.
Un circuito
secuencial asíncrono evoluciona ante cualquier cambio en las entradas de forma
inmediata, no tiene periodicidad de funcionamiento, se rige por eventos. Aunque
los circuitos secuenciales más básicos siempre tendrán una parte con
comportamiento asíncrono, para los circuitos secuenciales complejos no es
deseable que sigan este comportamiento (los cambios de estado se producen de
forma esporádica, ante eventos en las entradas, sin periodicidad, se pueden
producir comportamientos que dependen del orden de sucesión de eventos cuando
no se desea ese comportamiento etc.)
Los circuitos
secuenciales complejos se diseñan para comportamiento síncrono, los cambios se
producen de forma periódica y controlada, ante cambios de una señal denominada
señal de reloj (“clock”). Todas las entradas se muestrean de forma simultánea
en un instante determinado por la señal de reloj, la evolución del estado y las
salidas queda determinada por el valor que tenían las entradas y el estado en
el instante de muestreo. Se puede decir que el sistema evoluciona entre estados
discretos para instantes (k-1) T, kT, (k+1) T, ..., siendo T el periodo de
reloj.
3.3 Circuitos Lógicos Programables
Un CLP es una
máquina electrónica la cual es capaz de controlar máquinas e incluso procesos a
través de entradas y salidas. Las entradas y las salidas pueden ser tanto
analógicas como digitales.
Las formas
como los CLP intercambian datos con otros dispositivos son muy variadas.
Típicamente un CLP puede tener integrado puertos de comunicaciones seriales que
pueden cumplir con distintos estándares de acuerdo al fabricante.
4. COMPUERTAS LÓGICAS
Los circuitos
lógicos se construyen a partir de ciertos circuitos elementales denominados
compuertas lógicas, entre las cuales diferenciaremos:
• Compuertas
lógicas básicas: OR, AND, NOT.
• Compuertas
lógicas derivadas: NOR, NAND.
4.1 Compuerta OR
En una
compuerta OR con entradas A y B, la salida Y resulta:
Y = A+ B
Donde la suma
se define por la siguiente tabla:
La compuerta
OR se representa del siguiente modo:
La compuerta
OR también puede tener más de dos entradas:
Donde la
salida Y=A+B+C+D puede obtenerse
asociando los sumandos:
Y = A+ B + C + D =(A + B) + (C + D) = ((A + B) + C) + D
4.2 Compuerta AND
En una
compuerta AND con entradas A y B, la salida Y resulta:
Y = A* B
Donde el
producto se define por la siguiente tabla:
La compuerta
AND se representa del siguiente modo:
La compuerta
AND también puede tener más de dos entradas:
Donde la
salida Y=A*B*C*D puede obtenerse
asociando los factores:
Y = A * B * C
* D = (A * B) * (C * D) = ((A * B) * C) * D
4.3 Compuerta NOT
En una
compuerta NOT con entrada A, la salida Y resulta:
Y = A
Donde el
complemento se define por la siguiente tabla:
La compuerta
NOT se representa del siguiente modo:
4.4 Compuertas NOR y NAND
Las
compuertas NOR y NAND no son básicas. Una compuerta NOR equivale a una
compuerta OR seguida de una compuerta NOT. Una compuerta NAND equivale a una
compuerta AND seguida de una compuerta NOT.
Por lo tanto,
cuando las entradas son A y B, las salidas de estas compuertas resultan:
• NOR: Y = A
+B
• NAND: Y = A
* B
Los circuitos
lógicos se forman combinando compuertas lógicas. La salida de un circuito
lógico se obtiene combinando las tablas correspondientes a sus compuertas
componentes.
Por ejemplo:
Es fácil
notar que las tablas correspondientes a las compuertas OR, AND y NOT son
respectivamente idénticas a las tablas de verdad de la disyunción, la
conjunción y la negación en la lógica de enunciados, donde sólo se ha cambiado
V y F por 0 y 1. Por lo tanto, los circuitos lógicos, de los cuales tales
compuertas son elementos, forman un álgebra de Boole al igual que los
enunciados de la lógica de enunciados.
Adoptaremos,
entonces, aquí las mismas convenciones adoptadas en el caso del álgebra de
Boole:
• Omitimos el
símbolo *, usándose en su lugar la yuxtaposición de variables.
•
Establecemos que + es más fuerte que * y * es más fuerte que -.
Puesto que
tanto el álgebra de Boole es la estructura algebraica tanto de los circuitos
como de la lógica de enunciados, la salida de un circuito lógico también puede
expresarse en el lenguaje de la lógica de enunciados. Por ejemplo, la salida
del circuito anterior resulta:
(A + B) *
C (¬p ∨ q) ∧ ¬r
5. FUNCIONES LÓGICAS
Una función
lógica es una variable binaria que depende de otras variables binarias
relacionadas entre sí por las operaciones lógicas. Una función lógica se nota
de la siguiente manera:
F (a, b, c,.......,
n) = {expresión lógica que involucra a
las variables a ,b ,c , d,......, n}
La función
adoptará el valor 0 o 1 de acuerdo a la expresión y al valor determinado de las
variables. Por ejemplo:
F (a ,b, c) = a b’ + a c
Se trata de
una función de tres variables a la cual le corresponde la siguiente Tabla de Verdad.
5.1 Teoremas de funciones lógicas
• En el
Álgebra de Boole se cumple
F(a, b,
c,.....n) = a f(1, b, c,....n) + a’ f(0, b, c,.....n)
Para
demostrar esta igualdad basta con reemplazar a = 1 y a = 0 en la expresión y
verificar que la misma se cumple en ambos casos. También, considerando que la
función en cuestión no tiene restricciones, se puede decir que también es
válida su dual:
F(a, b,
c,.....,n) = [a + f(0, b, c, ....n)] [a’ + f(1, b, c,....n)]
Y se trata de
una función cualquiera.
Este teorema
posee corolarios muy útiles a la hora de simplificar (obtener una expresión más
simple de la misma función) funciones (expresiones en general) lógicas. Se
obtienen efectuando el producto miembro a miembro de la primera expresión por a
o por a’, como se indica a continuación:
a f(a, b, c, ....n) = a [ a f(1, b, c, ....n) + a’ f(0, b, c,.....n)]
Aplicando
propiedad distributiva al segundo miembro, se obtiene:
a f(a, b, c, ....n) = a
f (1, b, c, ....n) Primer Corolario
a’ f(a, b, c, ....n) = a’ [ a f(1, b,
c, ....n) + a’ f(0, b, c,.....n)]
Aplicando
propiedad distributiva al segundo miembro, se obtiene:
a’ f(a, b, c, ....n) =
a’ f (0, b, c, ....n) Segundo Corolario
Aplicando
dualidad a los corolarios, se obtienen:
a + f(a, b, c, ...n) = a
+ f(0, b, c, ....n) Tercer Corolario
y
a’ + f(a, b, c, ...n) =
a’ + f(1, b, c, ....n) Cuarto Corolario
•Toda función lógica puede expresarse
en forma canónica, es decir:
- Como una sumatoria de términos en los cuales
aparecen todas sus variables en forma de producto lógico (estos términos se
llaman MINTERMS)
- O como una productora de términos en los cuales
aparecen todas sus variables en forma de suma lógica (estos términos se llaman
MAXTERMS).
En ambos
casos la función se dice expresada en forma canónica y sus términos (ya sean
minterms o maxterms se llaman términos canónicos).
Se demostrará
este teorema para una función de dos variables f(a, b), luego se hará extensivo
para n variables.
Aplicando el
teorema 1 a f(a, b), se tiene:
F (a, b) = a
f(1, b) + a’ f(0, b)
Aplicando
nuevamente el teorema 1 a f(1, b) y a f(0, b), se tiene:
F (1, b) = b
f(1, 1) + b’ f(1, 0)
F (0, b) = b f(0, 1) + b’ f(0, 0)
Reemplazando
en la expresión inicial se obtiene
F (a, b) = a b
f(1, 1) + a b’ f(1, 0) + a’ b f(0, 1) + a’ b’ f(0, 0
Se observa
entonces que toda función puede expresarse como una sumatoria de todos sus
minterms, afectados cada uno de ellos por un coeficiente que consiste en el
valor de la función (calculado reemplazando las variables por 1 o por 0 sí, en
el minterm que acompaña, la variable correspondiente se encuentra directa o
negada respectivamente).
Teniendo en
cuenta que f(a, b) es una función cualquiera del álgebra de Boole, su dual
también lo será, por lo tanto:
F (a, b) = [a
+ b + f(0, 0)] [a + b’ + f(0,1)] [a’ + b + f(1, 0)] [a’ + b’ + f(1, 1)]
Se observa
entonces que toda función puede expresarse como una productoria de todos sus
maxterms, afectados cada uno de ellos por un coeficiente que consiste en el
valor de la función (calculado reemplazando las variables por 0 o por 1 sí, en
el maxterm que acompaña, la variable correspondiente se encuentra directa o
negada respectivamente).
La
generalización de los resultados obtenidos para funciones de n variables,
resulta evidente.
A fin de
obtener una notación más sencilla de las funciones lógicas, se suele asignar a
cada término canónico un número decimal que se obtiene dando pesos a las
variables de acuerdo a sí las mismas se encuentran expresadas en forma directa
o negada. El convenio es el siguiente:
Si la
variable aparece en forma negada, el peso asignado es cero.
Según el
convenio entonces, el término canónico cualquiera a’ b c’ d correspondiente a un minterm de una función de cuatro
variables, tendrá el número decimal 10.
El convenio
mencionado permite una tercera forma, llamada compacta, de notar una función, a
saber:
F(a, b,
c,....n) = Σ(i=0,
2n-1) i f(i) = Π(i=0,
2n-1) [(2n – 1 - i) + f(i)]
De la
expresión anterior se deduce una regla para pasar de una función canónica en
minterms a una en maxterms y viceversa: Se
buscan los términos canónicos que no están en la expresión de la función, y se
los complementa a 2n – 1. Estos serán los términos de la función buscada.
Por ejemplo:
Sea la función de 4 variables
F(a, b, c, d) = Σ4 (0, 1, 3, 5, 6, 7, 10, 13, 14, 15)
Los términos
canónicos que no están son: 2, 4, 8, 9, 11 y 12. Sus complementos a 15 son: 13,
11, 7, 6, 4 y 3. Por lo tanto la expresión canónica en maxterms de la función
es:
F(a, b, c, d) = Π4 (3, 4, 6, 7, 11, 13)
Nótese que, a
modo de verificación, la suma del número de minterms y maxterms de una función,
siempre es igual a 2n – 1.
5.2 Minimización de funciones lógicas
Es importante
obtener la mínima expresión posible de una función, esto es la menor cantidad
de variables y operaciones involucradas. Los métodos de minimización se basan
en los postulados del álgebra y a la conveniencia de agregar oportunamente
términos en la expresión de la función.
Para aplicar
los métodos es necesario que la función esté expresada en forma canónica. Como
se vio en el punto anterior, toda función lógica es expresable en forma
canónica, ya sea en minterms o maxterms.
Supóngase que
una función canónica de 4 variables posee en su expresión los siguientes
términos canónicos:
.....+ a’ b c d’ + a b c d’+.....
Se observa
que puede sacarse factor común de la siguiente forma
.....+ b c d’ (a’ + a)+........
Según el
postulado 4, a’ + a = 1, por lo tanto
.....+ b c d’ 1 +..... =....+ b c d’ +.....
Se ha perdido
la variable a.
Este
procedimiento se sistematiza detectando todos los términos canónicos de la
función que difieran en el estado (directo o negado) de sólo una variable, se
saca factor común entre ellos y se van eliminando variables.
Sea el
siguiente ejemplo:
F(a, b, c, d) = Σ4 (0, 4, 8, 12)
La expresión
algebraica de la misma es:
F(a, b, c, d) = a’ b’ c’ d’ + a’ b’ c d’ +
a’ b’ c’ d + a’ b’ c d
Se ve que los
dos primeros son adyacentes, como así también los dos últimos. Puede sacarse
factor común:
F(a, b, c, d) = a’ b’ d’ (c’ + c) + a’ b’ d (c’ + c) = a’ b’ d’ + a’ b’
d
Los dos
términos que quedan, si bien no canónicos, son adyacentes, quedando finalmente:
F(a, b, c, d) = a’ b’ (d’ + d) = a’ b’
E. W. Veitch
en 1952, propuso un método gráfico para la identificación de los términos
adyacentes de una función. Posteriormente Maurice Karnaugh lo modificó tal como
se conoce actualmente. Consiste en mapas aplicables a funciones de dos, tres,
cuatro y cinco variables. Para funciones de más variables no resulta práctico
este método gráfico, se usa un método numérico que no se estudia en este curso.
Los mapas
Karnaugh son los siguientes:
Para
funciones de 4 variables:
Los dos
números binarios en las columnas y las filas, que siguen un código Gray de dos
variables, se corresponden con las variables directas o negadas de cada cuadro,
y los números decimales son los asignados a cada término canónico según la
convención indicada con anterioridad. Esta tabla genérica puede
particularizarse
para
una función determinada marcando en la misma con un 1 los términos canónicos
que forman parte de la función. De esta forma es sencillo identificar los
términos canónicos adyacentes que serán los que limitan por los lados. Por
ejemplo, el término canónico 14, posee cuatros términos adyacentes que son: 6;
10; 12 y 15.
Formar un
grupo entre dos unos colindantes en el mapa se corresponde con sacar factor
común y perder la variable que cambia. Es de suponer la conveniencia de
realizar los grupos que contengan mayor cantidad de unos en su interior. Pero
esto debe seguir ciertas reglas.
Sea la
función de 4 variables siguiente:
F(a, b, c, d) = S (0, 1, 2, 3, 6, 7,
8, 9, 10, 11, 14, 15)
El mapa que
le corresponde es el indicado en la figura.
El grupo 0-2
corresponde a sacar factor común con pérdida de la variable b.
El grupo 3-1
pierde la variable b.
Se observa
que estos dos grupos son adyacentes y se pueden juntar en un solo grupo 0-1-2-3
donde se pierden las variables a y b. El mismo razonamiento es válido para el
grupo 8-9-10-11 que pierde las variables a y b.
Se observa
que estos grupos son adyacentes y podría formarse un solo grupo
0-1-2-3-8-9-10-11 donde sólo queda la variable c’. Para el grupo vertical de 8
unos se ha seguido el mismo procedimiento, cabe aclarar que los términos
canónicos 2, 3, 10 y 11 se han usado dos veces. Esto puede realizarse ya que
según el teorema 5, un término canónico podría repetirse cuantas veces se
quiera sin alterar el valor de la función.
La función
minimizada queda por lo tanto
F(a, b, c, d) = b + c’
Cabe aclarar
que la última expresión es una suma porque la función inicial estaba en
minterms, es decir era una sumatoria.
De lo visto
pueden enunciarse la siguiente regla de formación de grupos:
a) Se agrupan
la mayor cantidad de unos posible, siempre que sean una potencia de dos y el
grupo resultante pueda subdividirse en grupos menores.
b) Se agrupan
los unos restantes siguiendo la regla a), pudiendo usar (si es conveniente) un
uno ya agrupado anteriormente
c) Se repite
b) hasta realizar todos los unos.
Para el caso
de funciones de tres y de dos variables las tablas son más pequeñas y la regla
de formación de grupos es la misma. Se invita al alumno a sugerir cómo serías
estas tablas y visitar el Práctico correspondiente resolviendo los ejercicios
propuestos.
6. SISTEMAS COMBINACIONALES
De lo
definido en el punto anterior se concluye que en un Sistema combinacional las
salidas no son otra cosa que funciones lógicas de las entradas.
En la fig. se
ve el diagrama en bloque de un combinacional con n entradas y m salidas. Se
puede escribir que:
zi = fi (x1, x2, ...... xn)
De lo
anterior se deduce que para diseñar un circuito combinacional bastará con minimizar
las funciones requeridas y finalmente implementar con compuertas lógicas.
7. CIRCUITOS COMBINACIONALES MSI
Cuando las
funciones lógicas son muy complejas no siempre el diseño basado en la
minimización y posterior implementación con compuertas lógicas, es el más
adecuado. Las técnicas de integración han permitido CI más complejos. Por
ejemplo en MSI se dispone de CI de hasta 100 puertas. Estos bloques funcionales
MSI, si bien a veces tienen fines específicos, pueden aplicarse a la
implementación de funciones lógicas de muchas variables. Las ventajas caen en
la disminución de los CI necesarias, del tiempo de diseño, del número de
conexiones externas y facilita el mantenimiento.
A
continuación se describen brevemente los Combinacionales MSI más comunes
7.1 Codificadores
Permiten
codificar las líneas de entrada. Generalmente codifican en binario o BCD.
En la figura se muestra un codificador binario
de 8 entradas y 3 salidas, su circuito interno y su tabla de verdad.
En este
codificador se supone que sólo está activa una entrada por vez. En caso de no
ser así la salida debe calcularse como la función OR bit a bit de las salidas
correspondientes a las entradas activadas independientemente. Estos
decodificadores se llaman sin prioridad.
Si en la
tabla de verdad de la fig. 11 se reemplazan con x los ceros a la izquierda de
los unos de las entradas, se obtiene un codificador con prioridad. La entrada
de mayor prioridad es la que define la salida.
Si ninguna
entrada está activa las salidas son todas cero, igual que si estuviera activada
la entrada D0.
Para evitar
este problema los codificadores cuentan con una salida adicional que indica la
ausencia de activación de las entradas.
Por último
los codificadores suelen contar con una entrada de habilitación. Cuando el chip
está activado es válida la tabla de verdad, si no lo está el chip no funciona.
7.2 Decodificadores
Son
Combinacionales que poseen n entrada y m salidas. El orden adecuado de la
salida se activa cuando la codificación correspondiente se inyecta a la
entrada. Generalmente son binarios o BCD. En caso de un decodificador binario
si tiene n entradas poseerá m = 2n salidas. Así un decodificador realiza lo
opuesto a un codificador.
Los
decodificadores, además de usarse para decodificar, son útiles para implementar
funciones lógicas. Cada una de sus salidas es un minterm de una función de n
variable. Aprovechando la entrada de habilitación que suelen tener, es posible
aumentar el número de variables.
En la figura
se usa un decodificador de 3 x 8 para implementar la función F(z, y, x) = Σ3 (1,3,6,7)
7.3 Multiplexores
Disponen de m
= 2n líneas de entrada (canales), una línea de salida y n líneas de selección.
En función de las líneas de selección determina qué entrada aparece en la
salida.
Los multiplexores,
además de multiplexar, pueden usarse eficazmente para implementar funciones
lógicas. Supongamos que la función a implementar sea:
F(a, b, c) =
Σ (0,1, 5, 6, 7)
Para
implementar una función de 3 variables se necesita un multiplexor de 3 – 1
entradas de selección.
Dos de las
variables (por ejemplo a y b) se conectan a las líneas de selección. La
tercera variable c, se conecta a los
canales. A esta altura es conveniente contar con la tabla de verdad de la
función, que en nuestro ejemplo es:
7.4 Demultiplexores
Cumplen la
función opuesta a los multiplexores. Tienen una entrada y m salidas y n
entradas de selección. La salida seleccionada tendrá el valor de la entrada. En
la figura se muestra un demultiplexor de cuatro canales de salida.
El circuito
de un demultiplexor es coincidente con un decodificador que posea entrada de
habilitación.
Por esta
razón no se encuentran demultiplexores específicos. En la figura se indica cómo
obtener un demultiplexor de cuatro canales desde un decodificador de 2 x 4 con
entrada de habilitación.
Es usual
encontrar en algunas familias lógicas multiplexores/demultiplexores. Estos
circuitos pueden cumplir ambas funciones.
7.5 Comparadores
Realizan la
comparación entre dos números binarios de n bits. El circuito básico que
realiza la comparación de 1 bit, se indica en la figura.
Este circuito
responde a la siguiente tabla de verdad:
Comparadores
de más bits se diseñan de la misma manera. Los Comparadores poseen además
entradas por =, <, y >, esto permite realizar comparadores de elevado
número de bits, partiendo de comparadores menores.
7.6 Sumadores
Son CI que
realizan la suma aritmética de dos números de n bits. Antes de ver los
sumadores disponibles en escala de integración MSI, estudiaremos la suma y resta
binaria.
7.6.1 Suma binaria
Para indicar
la suma aritmética utilizaremos el símbolo +, para diferenciarlo del + usado
para la suma lógica.
Para sumar
dos bits, se puede implementar el circuito de la figura, llamado Semisumador.
Se
observa que son necesarios cuatro circuitos, uno para cada columna, y cada uno
debe ser capaz de sumar tres bits: ai, bi, y ci. Se implementa entonces el
circuito de la figura, llamado Sumador Total.
7.6.2 Resta binaria
Debe
recordarse los convenios de representación de números negativos en binario.
Se podría
implementar un circuito para realizar la resta como una nueva operación. Sin
embargo se verá que es posible restar dos números realizando la suma de uno de
ellos más el complemento a dos (o a uno) del otro.
Para el caso
de usar el convenio de complemento a dos.
Sean A y B
dos números binarios signados en convenio de complemento a dos, véase el
siguiente desarrollo:
A – B / A +
C2(B) = A + 2n – B = 2n + (A – B)
En la
expresión se observa que el resultado obtenido difiere del buscado en el valor
2n y además tiene un error en efecto de valor 1. Este resultado debe
interpretarse como un acarreo a despreciar si el paréntesis ( A - B) resulta
positivo. En caso que el paréntesis resulte negativo el resultado estará
expresado en complemento a uno.
En la figura
se muestra un Sumador/restador en complemento a dos de 4 bits a partir de un
Cuádruple sumador total.
En general,
para ejecutar una determinada función es necesario conectar grandes cantidades
de elementos lógicos en circuitos complejos. En algunos casos se utilizan
microprocesadores para efectuar muchas de las funciones de conmutación y
temporización de los elementos lógicos individuales. Los procesadores están
específicamente programados con instrucciones individuales para ejecutar una
determinada tarea o tareas. Una de las ventajas de los microprocesadores es que
permiten realizar diferentes funciones lógicas, dependiendo de las
instrucciones de programación almacenadas. La desventaja de los
microprocesadores es que normalmente funcionan de manera secuencial, lo que
podría resultar demasiado lento para algunas aplicaciones. En tales casos se
emplean circuitos lógicos especialmente diseñados.
CONCLUSIONES
Bueno para
terminar, para mi punto de vista los circuitos lógicos son muy poco conocidos,
por ende, tienen muy poca información, la información de los mismos es muy
poco difundida, a pesar de que son muy importantes, además de ser la base
de cualquier sistema digital en la creación de las computadoras, el avance de
dichas maquinas tienen como base a los circuitos lógicos y sus
funciones y prestaciones que otorgan a los sistemas de hoy en día, desde una
simple calculadora hasta una servidor u otra máquina con mas tecnología y
sofisticación tiene como núcleo de operaciones un sistema de circuitos lógicos
ya sean simples o complejos, para realizar sus funciones básicas, para la
que fueron construidas o creadas.
Así también atreves
del estudio del presente trabajo pudimos ver cómo están constituidos los
circuitos lógicos, la forma en que trabajan, a partir de que operaciones, como
los podemos representar a través de diagramas y que reglas debemos seguir para
usarlos de forma correcta y sus distintas aplicaciones además de saber la
importancia que estos tienen para la correcta operación de distintos
dispositivos como lo puede ser un computador ya que sin estos sería una simple
maquina tonta ya que los Circuitos Lógicos son una parte muy
importante en el manejo de información en los dispositivos que requieren de la
selección o combinación de señales de manera controlada y estos son utilizados
en diferentes sectores, como la telefonía y las computadoras digitales entre
otros.
No hay comentarios:
Publicar un comentario