circuitos logicos

domingo, 16 de noviembre de 2014

circuitos logicos

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