domingo, 25 de diciembre de 2016

EJERCICIOS COMBINACIONALES

IMPLEMENTACIÓN  DE  CIRCUITOS  COMBINACIONALES
CON PUERTAS LÓGICAS.

-Representación de funciones: mapas de Karnaugh de hasta 5 variables.

  El Mapa de Karnaugh es una representación gráfica de una función booleana. Los minitérminos
adjuntos (vecinos) sólo se diferencian en una variable. Se consideran vecinos también los extremos. La
numeración de las filas y columnas es un código GRAY.

1)  Para dos variables:

                     B  0     1      A B │ F
                   A ┌─────┬─────┐      ────┼──
                   0 │  0  │  1  │      0 0 │ 0    lugar 0
                     ├─────┼─────┤      0 1 │ 1  lugar 1
                   1 │  1  │  1  │      1 0 │ 1   lugar 2
                     └─────┴─────┘      1 1 │ 1  lugar 3

2)  Para tres variables:

                    BC 00    01    11    10    A B C │ F
                   A ┌─────┬─────┬─────┬─────┐  ──────┼──
                   0 │  1  │  0  │  0  │  1  │  0 0 0 │ 1  lugar 0
                     ├─────┼─────┼─────┼─────┤  0 0 1 │ 0  lugar 1
                   1 │  1  │  0  │  1  │  0  │  0 1 0 │ 1  lugar 2
                     └─────┴─────┴─────┴─────┘  0 1 1 │ 0  lugar 3
                1 0 0 │ 1  lugar 4
1 0 1 │ 0  lugar 5
1 1 0 │ 0  lugar 6
                 1 1 1 │ 1  lugar 7

3)  Para cuatro variables:

              CD 00    01    11    10    A B C D │ F
             AB┌─────┬─────┬─────┬─────┐    ────────┼──
             00│  1  │  0  │  0  │  1  │    0 0 0 0 │ 1 lugar 0
               ├─────┼─────┼─────┼─────┤    0 0 0 1 │ 0 lugar 1
             01│  1  │  1  │  1  │  0  │    0 0 1 0 │ 1 lugar 2
               ├─────┼─────┼─────┼─────┤    0 0 1 1 │ 0 lugar 3
             11│  0  │  1  │  1  │  1  │    0 1 0 0 │ 1 lugar 4
               ├─────┼─────┼─────┼─────┤    0 1 0 1 │ 1 lugar 5
             10│  1  │  1  │  0  │  1  │    0 1 1 0 │ 0 lugar 6
               └─────┴─────┴─────┴─────┘    0 1 1 1 │ 1 lugar 7
1 0 0 0 │ 1 lugar 8
1 0 0 1 │ 1 lugar 9
1 0 1 0 │ 1 lugar 10
1 0 1 1 │ 0 lugar 11
1 1 0 0 │ 0 lugar 12
1 1 0 1 │ 1 lugar 13
1 1 1 0 │ 1 lugar 14
1 1 1 1 │ 1 lugar 15

4) Para cinco variables:

                  CDE 000   001   011   010   110   111   101   100
                AB  ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
                  00│  1  │  0  │  0  │  1  │  0  │  0  │  0  │  1  │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  01│  1  │  1  │  1  │  0  │  0  │  1  │  1  │  0  │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  11│  0  │  1  │  1  │  1  │  1  │  0  │  1  │  0  │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  10│  1  │  1  │  0  │  1  │  1  │  1  │  1  │  0  │
                    └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘  


Numeración de los lugares en los MK

                     B  0     1
                   A ┌─────┬─────┐
                   0 │  0  │  1  │
                     ├─────┼─────┤
                   1 │  2  │  3  │
                     └─────┴─────┘


                    BC 00    01    11    10
                   A ┌─────┬─────┬─────┬─────┐
                   0 │  0  │  1  │  3  │  2  │
                     ├─────┼─────┼─────┼─────┤
                   1 │  4  │  5  │  7  │  6  │
                     └─────┴─────┴─────┴─────┘


              CD 00    01    11    10
             AB┌─────┬─────┬─────┬─────┐
             00│  0  │  1  │  3  │  2  │
               ├─────┼─────┼─────┼─────┤
             01│  4  │  5  │  7  │  6  │
               ├─────┼─────┼─────┼─────┤
             11│  12 │  13 │  15 │  14 │
               ├─────┼─────┼─────┼─────┤
             10│  8  │  9  │  11 │  10 │
               └─────┴─────┴─────┴─────┘


                  CDE 000   001   011   010   110   111   101   100
                AB  ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
                  00│  0  │  1  │  3  │  2  │  6  │  7  │  5  │  4  │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  01│  8  │  9  │  11 │  10 │  14 │  15 │  13 │  12 │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  11│  24 │  25 │  27 │  26 │  30 │  31 │  29 │  28 │
                    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
                  10│  16 │  17 │  19 │  18 │  22 │  23 │  21 │  20 │
                    └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘





  ¿Cómo realizar estas operaciones de forma sistemática?

  1)  Realizar  agrupaciones  de  1's  con  sus  vecinos  lo  mayor  posible  pero  siempre  en
cantidades potencias de 2.

  2)  No  dejar  ningún  1  sin  agrupar.  Puede  ocurrir  que  un  1  pertenezca  a  más  de  una
agrupación. No se pueden coger agrupaciones dentro de agrupaciones.

  3)  Por  cada  agrupación  de  1's  resulta  un  producto  de  variables.  Cuanto  más  1's  se
agrupen,  más  sencilla  resultará  la  expresión  de  esa  agrupación.  En  MK  de  5  variables,  las
agrupaciones que tomen 1’s de las dos porciones deben ser simétricas respecto al eje central.

  4)  En  cada  agrupación,  cada  una  de  las  variables  puede  aparecer  en  alguno  de  los
siguientes casos:

  a) Si siempre vale 1  -----> Se pone afirmada.
  b) Si siempre vale 0  -----> Se pone negada.
  c) Si cambia de valor (50% de los casos un valor y el otro 50% otro valor)-----> No se pone.

  5) La expresión de  la  función booleana será  la suma  lógica de todos  los productos que
hayan salido.


Definición y Especificación de sistemas combinacionales.

  Un  sistema  combinacional  es  un  circuito  lógico  cuyas  salidas  están  completamente
determinadas en cualquier instante por los valores aplicados a sus variables de entrada.Son circuitos que no tienen bucles de realimentación, es decir una salida no puede usarse como
entrada de una etapa anterior.

  Ejemplo de circuito no combinacional, por tener un bucle de realimentación.
  Ejemplo de circuito combinacional
 Tampoco se pueden unir entre sí dos salidas porque puede darse un conflicto.

Implementación de un sistema combinacional.

  La  implementación  de  un  sistema  es  su  composición  en  unidades más pequeñas. Ejemplo:
Implementar un circuito eléctrico de encendido de una bombilla a partir de una pila, un interruptor y una
bombilla.


Especificación de sistemas combinacionales.

Ejemplo.
  La  especificación  de  un  sistema  combinacional  consiste  en  traducir  el  enunciado  de  un
problema concreto a variables y funciones booleanas cuya tabla de verdad permita encontrar un circuito
lógico que resuelva la situación.

A

B
C
A
B
C
A
B

C
D
¿A·B ó C+D?
Si A=0 y C=1 se produce un conflicto

SISTEMA
COMBINACIONAL

x1
x2
xn
z1
z2
zm  

Especificación de alto nivel.

  La especificación se dice que es de alto nivel cuando se encuentra una tabla de verdad en la que
se  reflejan  los  casos  que  se  pretenden  contemplar  de  manera  similar  al  enunciado  del  problema.
Veamos un ejemplo:

  Una máquina expendedora automática proporciona productos con diversos precios: botella de
agua 0,50 €,  lata de  refresco 1,00 €,   paquete   de galletas 1,50 €   y caja de bombones 2,00 €. Sólo
admite una moneda de 0,50 €, 1,00 € ó 2,00 € para adquirir el producto y sólo devuelve cambio de 1
moneda, caso de que tuviera que devolver cambio. Habrá casos en los que, al no poder proporcionar el
cambio correcto, devolverá la moneda introducida, sin proporcionar el producto.

  Realizar la especificación de alto nivel de la máquina:

  ENTRADAS          SALIDAS

Moneda    Producto pedido         ¿Suministra producto?   Cambio

0,00 €   Botella de agua      No  *    0,00 €
0,00 €   Lata de refresco      No  *    0,00 €
0,00 €   Paquete de galletas      No  *    0,00 €
0,00 €   Caja de bombones      No  *    0,00 €
 
0,50 €   Botella de agua      Sí      0,00 €
0,50 €   Lata de refresco      No  *    0,50 €
0,50 €   Paquete de galletas      No  *    0,50 €
0,50 €   Caja de bombones      No  *    0,50 €

1,00 €   Botella de agua      Sí      0,50 €
1,00 €   Lata de refresco      Sí      0,00 €
1,00 €   Paquete de galletas      No  *    1,00 €
1,00 €   Caja de bombones      No  *    1,00 €

2,00 €   Botella de agua      No  **    2,00 €
2,00 €   Lata de refresco      Sí      1,00 €
2,00 €   Paquete de galletas      Sí      0,50 €
2,00 €   Caja de bombones      Sí      0,00 €


MOTIVO DE LA NEGATIVA
* Dinero insuficiente    ** No hay cambio en una única moneda


Especificación de bajo nivel.

  La especificación se dice que es de bajo nivel cuando los casos posibles se codifican de forma
binaria  a  partir  de  la  especificación  de  alto  nivel.  Veamos  el  mismo  ejemplo  del  apartado  anterior
especificado a bajo nivel. Vamos a codificar los distintos tipos de monedas con 2 bits, y los distintos tipos
de productos también con 2 bits.

  ENTRADAS

  Codif. moneda (m1,m0)    Codificación producto (p1,p0)
  00: Ninguna       00: botella de agua
  01: moneda de 0,50 €    01: lata de refresco
  10: moneda de 1,00 €    10: paquete de galletas
  11: moneda de 2,00 €    11: caja de bombones

  SALIDAS

  Codif. devolución (c1,c0)  Codificación suministro (S)
  00: Ninguna       0: NO da el producto seleccionado
  01: moneda de 0,50 €    1: SI da el producto seleccionado
  10: moneda de 1,00 €
  11: moneda de 2,00 €

  Si "traducimos"  la especificación de alto nivel mediante la codificación citada, queda la tabla de
verdad especificada en bajo nivel, que ya es tratable como funciones y variables booleanas:

  ENTRADAS          SALIDAS

Moneda     Producto pedido        ¿Suministra producto?   Cambio

m1  m0  p1  p0          S    c1  c0

 0   0   0   0          0     0   0
 0   0   0   1          0     0   0
 0   0   1   0          0     0   0
 0   0   1   1          0     0   0

 0   1   0   0          1     0   0
 0   1   0   1          0     0   1
 0   1   1   0          0     0   1
 0   1   1   1          0     0   1

 1   0   0   0          1     0   1
 1   0   0   1          1     0   0
 1   0   1   0          0     1   0
 1   0   1   1          0     1   0

 1   1   0   0          0     1   1
 1   1   0   1          1     1   0
 1   1   1   0          1     0   1
 1   1   1   1          1     0   0


que es la Tabla de Verdad de 3 funciones booleanas (S, c1 y c0) de 4 variables (m1, m0, p1 y p0) cada
una.

 El proceso de diseño de un circuito combinacional consiste en:

1)  Determinar el número de variables de entrada y de salida necesarias,  identificar  las
variables  de  entrada,  asignarles  un  nombre  y  hacer  lo mismo  con  las  variables  de
salida.

  2) Deducir la tabla de verdad que define las relaciones entre las variables de entrada y de
salida.

3) Simplificar las funciones representadas en la tabla de verdad.

  4) Obtener el circuito a partir de las funciones simplificadas.


  Si simplificamos aplicando los mapas de Karnaugh resulta:

0 · 1 · 0 · 1 1 · 0 · 1 1 · 0 · 1 0 · 0 · 1 p p m m p m m p m m p m m S


1 · 0 · 1 1 · 0 · 1 1 p m m p m m c


0 · 1 · 0 0 · 0 · 1 0 · 1 · 1 0 p p m p m m p p m c


cuya implementación resulta sencilla a la vista de estas ecuaciones.  

EJERCICIOS RESUELTOS

1. Representar el mapa de Karnaugh y simplificar la función booleana
4 4
) 15 , 14 , 12 , 7 , 4 ( ) 13 , 6 , 5 ( d m F


    CD
AB

00

01

11

10

00  0  0  0  0

01  X  1  X  1

11  X  1  X  X

10  0  0  0  0



2. Encontrar la tabla de verdad, el mapa de Karnaugh y la expresión booleana más simplificada de una
función booleana de 4  variables que  tome el  valor 1  cuando el número expresado en binario por sus
variables  sea un número primo mayor que 4,  y 0 en el  resto de  los casos. Expresar  la  función como
suma de productos y como producto de sumas.

A  B  C  D  F
0  0  0  0  0
0  0  0  1  0
0  0  1  0  0
0  0  1  1  0
0  1  0  0  0
0  1  0  1  1
0  1  1  0  0
0  1  1  1  1
1  0  0  0  0
1  0  0  1  0
1  0  1  0  0
1  0  1  1  1
1  1  0  0  0
1  1  0  1  1
1  1  1  0  0
1  1  1  1  0


   
   CD
AB

00

01

11

10

00  0  0  0  0

01  0  1  1  0

11  0  1  0  0

10  0  0  1  0

Como suma de productos:
D C B A D B A D C B D C B A F · · · · · · · ) , , , (

Como productos de sumas:
) )·( )·( ·( ) , , , ( C B A C B B A D D C B A F

F = B  


3. Se quiere  implementar un sistema con dos  luces de alarma (diodos LED) y  tres sensores (entradas
digitales).  Llamaremos A  y B  a  las  luces  de alarma,  y  x2,  x1  y  x0 a  los  sensores digitales. El  sistema
deberá funcionar de la siguiente manera:

  * La alarma A se dispara si se recibe señal del sensor x2 exclusivamente.
  * La alarma B se dispara si se recibe señal del sensor x0 exclusivamente.
  * Las dos alarmas se disparan si se recibe señal de al menos dos sensores cualesquiera.

  a) Realizar una especificación tabular del sistema de alarma (tabla de verdad).
  b) Realizar una implementación con puertas AND-OR.
  c) Realizar una implementación con puertas NAND.
  d) Realizar una implementación con puertas NOR.

a)

x2  x1  x0  A  B
 0  0  0  0  0
0  0  1  0  1
0  1  0  0  0
0  1  1  1  1
1  0  0  1  0
1  0  1  1  1
1  1  0  1  1
1  1  1  1  1

b)
0 1 2 x x x A
  c)
0 1 2 x x x A
  d)
2 1 2 0 x x x x A
 
2 1 0 x x x B

2 1 0 x x x B
 
1 0 2 0 x x x x B


4. Se desea diseñar un circuito combinacional que realice el complemento a 2 de un número binario de 4
bits. En el diseño se emplearán puertas OR y XOR. Las salidas de las puertas XOR serán las salidas del
circuito.



b3  b2  b1  b0  b’3  b’2  b’1  b’0  x3  x2  x1  x0
0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  1  1  1  1  1  1  1  1  0
0  0  1  0  1  1  1  0  1  1  0  0
0  0  1  1  1  1  0  1  1  1  1  0
0  1  0  0  1  1  0  0  1  0  0  0
0  1  0  1  1  0  1  1  1  1  1  0
0  1  1  0  1  0  1  0  1  1  0  0
0  1  1  1  1  0  0  1  1  1  1  0
1  0  0  0  1  0  0  0  0  0  0  0
1  0  0  1  0  1  1  1  1  1  1  0
1  0  1  0  0  1  1  0  1  1  0  0
1  0  1  1  0  1  0  1  1  1  1  0
1  1  0  0  0  1  0  0  1  0  0  0
1  1  0  1  0  0  1  1  1  1  1  0
1  1  1  0  0  0  1  0  1  1  0  0
1  1  1  1  0  0  0  1  1  1  1  0
i i i
x b b'
   
0 0 x
 
0 1 b x
 
0 1 2 b b x
 
2 2 0 1 2 3 x b b b b x

b’i
bi
xi

SALIDA DEL CIRCUITO


5. Diseñar un circuito al que se  le  introducen  los 4 bits de un código hexadecimal y cuya salida es  la
excitación  para  activar  un  display  de  7  segmentos,  de  acuerdo  con  la  figura  adjunta.  Los  caracteres
hexadecimales que no son numéricos, deben aparecer en mayúsculas, excepto la "b" y la "d", que deben
aparecer en minúscula. NOTA: Tomar D como el bit más significativo.

               S6
   ╔════════╗         ══════
 D─╢ C   D  ╟─S6        ║      ║
   ║ I   I  ╟─S5      S1║      ║S5
 C─╢ R   S  ╟─S4        ║  S0  ║
   ║ C A E  ╟─S3         ══════    DISPLAY 7 SEGMENTOS
 B─╢ U   Ñ  ╟─S2        ║      ║
   ║ I   A  ╟─S1      S2║      ║S4
 A─╢ T   R  ╟─S0        ║     ║
   ║ O      ║          ══════    
   ╚════════╝           S3
             

a) Escribir la tabla de verdad de todas las funciones booleanas que aparecen.
b) Implementar las funciones de la siguiente forma:

  b1) S1 con puertas AND/OR en dos niveles.
  b2) S2 con puertas OR/AND en dos niveles.
  b3) S4 usando sólo puertas NOR.
  b4) S5 usando sólo puertas NAND.

Hexa  D  C  B  A  S6  S5  S4  S3  S2  S1  S0
0  0  0  0  0  1  1  1  1  1  1  0
1  0  0  0  1  0  1  1  0  0  0  0
2  0  0  1  0  1  1  0  1  1  0  1
3  0  0  1  1  1  1  1  1  0  0  1
4  0  1  0  0  0  1  1  0  0  1  1
5  0  1  0  1  1  0  1  0  1  1  1
6  0  1  1  0  1  0  1  1  1  1  1
7  0  1  1  1  1  1  1  0  0  1  0
8  1  0  0  0  1  1  1  1  1  1  1
9  1  0  0  1  1  1  1  1  0  1  1
A  1  0  1  0  1  1  1  0  1  1  1
b  1  0  1  1  0  0  1  1  1  1  1
C  1  1  0  0  1  0  0  1  1  1  0
d  1  1  0  1  0  1  1  1  1  0  1
E  1  1  1  0  1  0  0  1  1  1  1
F  1  1  1  1  1  0  0  0  1  1  1


D B D C D C B A S · · · · 1


) )·( )·( ( 2 D C B A C B A D B A S


) ( ) ( ) ( 4 D C B A D C A D C B S


) · · ( · ) · · ( · ) · ( · ) · ( 5 D B A D B A C A D C S

No hay comentarios :

Publicar un comentario