Sistemas digitales combinacionales

27
ELECTRÓNICA XABIER PÉREZ TEMA 08 Página 1 de 27 N-1.... 1 0 Salida Entradas de selección o de control Canales o entradas de datos 0 1 2 . . . . 2 N -1 MUX 2 N : 1 Z S N-1 S 1 S 0 E 1 2 N x - X 0 X 1 Enable X 2 8 SISTEMAS COMBINACIONALES 8.1 Introducción. En el tema anterior se mostraba como cualquier sistema era implementable con dos niveles de puertas. El problema radica en que a mayor complejidad del sistema, aunque se mantienen los dos niveles, el número de puertas y de conectividades puede dificultar su implementación física. Por ello se han estandarizado unos bloques funcionales que integran dos niveles de puertas y que permiten fácilmente su interconexión. Los bloques combinacionales más habituales son: Multiplexores–Demultiplexores, Codificadores– Decodificadores, Módulos Aritméticos (Sumadores y Comparadores, ALU’s, Detectores de Paridad). Recordar en este punto que un sistema combinacional carece de memoria, es decir, que genera una respuesta en función sólo y exclusivamente de la excitación que trata en un momento determinado, y no en función de entradas anteriores. 8.2 Multiplexores – Demultiplexores. 8.2.1 Multiplexores MUX’s. Un multiplexor, o MUX, no es más que un bloque selector de canal. Este bloque presenta 2 N -1 entradas, de las cuáles sólo una puede ser seleccionada en un momento determinado. De la selección de la entrada, o canal, se encargan las N variables de selección, o de control, que tiene el bloque: la combinación binaria de las variables de selección determinará la entrada a seleccionar. Así mismo, este bloque cuenta con una entrada de habilitación, Enable, que no permite que el MUX pueda funcionar si no está activa. Z = 0 si E = 0 Z = X i si E = 1 - = × = 1 N 0 k k k 2 S i

Transcript of Sistemas digitales combinacionales

Page 1: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 1 de 27

N-1.... 1 0

Salida

Entradas de selección o de control

Canales o entradas de datos

0 1 2 . . . . 2N-1

MUX 2N : 1 Z

SN-1 S1 S0

E

12Nx −

X0 X1 Enable X2

8 SISTEMAS COMBINACIONALES 8.1 Introducción. En el tema anterior se mostraba como cualquier sistema era implementable con dos niveles de puertas. El problema radica en que a mayor complejidad del sistema, aunque se mantienen los dos niveles, el número de puertas y de conectividades puede dificultar su implementación física. Por ello se han estandarizado unos bloques funcionales que integran dos niveles de puertas y que permiten fácilmente su interconexión. Los bloques combinacionales más habituales son: Multiplexores–Demultiplexores, Codificadores–Decodificadores, Módulos Aritméticos (Sumadores y Comparadores, ALU’s, Detectores de Paridad). Recordar en este punto que un sistema combinacional carece de memoria, es decir, que genera una respuesta en función sólo y exclusivamente de la excitación que trata en un momento determinado, y no en función de entradas anteriores. 8.2 Multiplexores – Demultiplexores. 8.2.1 Multiplexores ���� MUX’s. Un multiplexor, o MUX, no es más que un bloque selector de canal. Este bloque presenta 2N-1 entradas, de las cuáles sólo una puede ser seleccionada en un momento determinado. De la selección de la entrada, o canal, se encargan las N variables de selección, o de control, que tiene el bloque: la combinación binaria de las variables de selección determinará la entrada a seleccionar. Así mismo, este bloque cuenta con una entrada de habilitación, Enable, que no permite que el MUX pueda funcionar si no está activa.

Z = 0 si E = 0 Z = Xi si E = 1

∑−

=

×=1N

0k

kk 2Si

Page 2: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 2 de 27

1 0

0 1 2 3

MUX 4 : 1 Z

S1 S0

E

X0

X1

X2

X3

Ejemplo. MUX 4:1

La TdV de este MUX quedaría así:

Fíjese que se puede expresar Z como SdP:

013012011010SdP SESXSESXSSEXSSEXZ +++=

Se propone como ejercicio que realice la implementación del logigrama correspondiente a esta SdP. Ejercicios. 1. Realice el dibujo del MUX, la TdV, la ZSdP y el Logigrama de dos

niveles de: • MUX 2:1 • MUX 8:1

2. Implemente un MUX 4:1 con tres MUX 2:1. Detalle las TdV de

cada bloque 2:1 y la del bloque 4:1. Ayúdese de variables intermedias.

3. Implemente un MUX 8:1 con tres MUX 4:1 4. Se desea implementar un MUX 10:1 con bloques 4:1

• Determine el número de variables de selección necesarias. • Dibuje un MUX 10:1. Realice la TdV de un MUX 10:1. • Determine el mínimo número de MUX 4:1 necesarios. • Dibuje el sistema de bloques 4:1. Haga la TdV de cada bloque. • Establezca las conexiones entre los MUX 4:1

E S1 S0 Z 1 0 0 X0 1 0 1 X1 1 1 0 X2 1 1 1 X3 0 X X 0

El MUX 4:1 cuenta con cuatro canales (X0, X1, X2, X3) y dos entradas de control (S0, S1). La combinación binaria de las variables de control (00, 01, 10 ó 11) permitirá seleccionar un canal en concreto (X0, X1, X2 ó X3). Esto será siempre que el enable esté activo ( E = 1).

Page 3: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 3 de 27

2 1 0

0 1 2 3 4 5 6 7

MUX 8 : 1 F

A B C

E

8.2.2 Síntesis de funciones lógicas con MUX’s. Con los multiplexores se puede implementar cualquier función lógica, conectando a alimentación o a tierra los canales de entrada según rija la función. Las variables propias de la función se usan como selectores de canal. El problema se puede presentar si la función tiene más variables que selectores de canal el multiplexor. En ese caso, se deberá usar la combinación de las variables de la función como entradas al canal. Ejemplo. Implementar la función F con MUX 8:1, 4:1 y 2:1 1. Implementación con MUX 8:1

2. Implementación con MUX 4:1 El MUX 4:1 sólo permite dos entradas de selección, con lo que una de las tres variables de la función deberá usarse como entrada al canal. Se usarán como entradas de selección las variables que más veces aparezcan en la SdP_OPT de la función. Será necesario, pues, realizar el MdK de la función:

A � sale una vez B � sale dos veces C � sale dos veces

Las variables B y C aparecen dos veces en la expresión mientras que A sólo una. Serán B y C las entradas de selección. Queda averiguar de qué forma se asigna la variable A a los canales de entrada.

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

B C A

00 01 11 10

0 0 1 0 1 1 0 1 0 0

∑=3

)5,2,1(m)C,B,A(F

Se consideran A, B, C como entradas de selección y se conectan a tierra o a alimentación cada canal según tengan un cero o un uno en la TdV.

CBCBA)C,B,A(FSdP_OPT +=

Page 4: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 4 de 27

1 0

0 1 2 3

MUX 4 : 1 F

B C

E

A

0

0 1

MUX 2 : 1

F

C

E

AB

3. Implementación con MUX 2:1 Ahora sólo se puede tener una entrada de selección. En este caso se escoge C (aunque también podría haber sido B que aparece idénticas veces en la SdP_OPT de F). Se realiza la TdV de F según C y se implementa el MUX:

Ejercicios. 5. implemente con MUX 8:1, 4:1 y 2:1 las siguientes funciones. Siga

el método descrito en el ejemplo. Verifique con el MdK, cuando sea necesario, que las expresiones son óptimas.

• ∑=3

)7,6,5,4,1(mF

• BADBCABF ++=

• ∑∑ +=x4

)3,2,0(d)15,13,8,7,6(mF

B C CBCBAF += 0 0 0 0 1 1 1 0 A 1 1 0

C CBCBAF += 0 BA 1 B

Se realiza la tabla de verdad de la función F según las variables de selección para ver qué canales se ven afectados por la variable A:

La implementación de F con un MUX 4:1 quedaría así:

Page 5: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 5 de 27

N-1.... 1 0

0 1 2 . . . . 2N-1

DEMUX 1:2N A

SN-1 S1 S0

E

y0 y1 y2

12Ny −

1 0

0 1 2 3 . .

DEMUX 1:4 A

S1 S0

E

y0

y1

y2

y3

8.2.3 Demultiplexores ���� DEMUX’s. Un demux selecciona el canal de salida por el que saldrá la entrada según las variables de selección.

Ejemplo. DEMUX 1:4 Se puede expresar cada una de las salidas del demux como un minterm, pudiéndose implementar el demux como sistema de puertas lógicas: 010 SSEAy ⋅⋅⋅=

011 SSEAy ⋅⋅⋅=

012 SSEAy ⋅⋅⋅= 013 SSEAy ⋅⋅⋅=

E S1 S0 y3 y2 y1 y0 1 0 0 0 0 0 A 1 0 1 0 0 A 0 1 1 0 0 A 0 0 1 1 1 A 0 0 0 0 X X 0 0 0 0

E = 0 � yj = 0 E = 1 � yj = A

∑−

=

×=1N

0k

kk 2Si

S1 S0

E

A

y0

y1

y2

y3

DEMUX 1:4

Page 6: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 6 de 27

1 0

0 1 2 3

MUX 4 : 1

E

A

B

C

D

1 0

0 1 2 3 . .

DEMUX 1:4

S1 S0

y0

y1

y2

y3

0 1 2 . . . . N-1

E

y0 y1 y2

1Ny −

0 1 2 . . . .

P-1

x0 x1 x2

1Px −

P entradas N salidas

DEC P:N

PP 2N:binario_código2N =⇒≤

Ejercicio. 6. Dado el sistema combinacional de la figura, compruebe que la

salida corresponde a la solución dada. 8.3 CODIFICADORES – DECODIFICADORES. 8.3.1 Decodificadores ���� DECOD’s. Un decod selecciona la salida decodificada (la pone a 1) de la entrada codificada. El resto de salidas las pone a cero dado que sólo se habilita una salida simultaneamente.

Existen decodificadores para cada uno de las codificaciones habituales: binario, BCD, Gray, siete segmentos,...

y3 y2 y1 y0 0 A 0 0 B 0 0 0 0 0 0 C 0 0 D 0 0 0 0 0

yj = 1 � E = 1y ‘ j ’ es la salida codificada yj = 0 � cualquier otro caso

Page 7: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 7 de 27

E

y0

y1

y2 0

DEC 2:4

1

y3

0

1

3

2 x0

x1

Ejemplo. Decod binario 2:4

• Nivel de salidas altas Las salidas, es decir, la decodificación decimal de las entradas binarias, se pueden expresar como minterms: jj mEy ⋅= , de forma

que se pueden implementar fácilmene como una red de puertas AND: 0100 XXEmEy ⋅⋅=⋅= 0111 XXEmEy ⋅⋅=⋅= 0122 XXEmEy ⋅⋅=⋅= 0133 XXEmEy ⋅⋅=⋅= Este desarrollo del decod 2:4 se ha realizado a nivel de salidas altas: la salida seleccionada adopta el valor alto (1) mientras que las demás se quedan en valor bajo (0).

• Nivel de salidas bajas Existe la posibilidad dual al caso anterior que sería poner a cero la salida seleccionada y las demás a valor alto. Este método se conoce como nivel de salidas bajas. Esta segunda opción permite implementar de forma inmediata una estructura de puertas OR.

E X1 X0 y3 y2 y1 y0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 X X 0 0 0 0

X1 X0

E

y0

y1

y2

y3

DECOD 2:4 salidas altas

Page 8: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 8 de 27

E

Y0

Y1

Y2 0 x0

x1 DEC 2:4

1

Y3

0

1

3

2

Aplicando Morgan y Álgebra básica de Boole, tal y como se vio en el tema anterior, un maxterm es igual a la negación del minterm análogo. Es decir:

jjjjj MEmEmEyY +=+=⋅==

Por lo tanto:

010000 XXEMEmEmEY ++=+=+=⋅=

011111 XXEMEmEmEY ++=+=+=⋅=

012222 XXEMEmEmEY ++=+=+=⋅=

013333 XXEMEmEmEY ++=+=+=⋅= 8.3.2 Encadenamiento de DECOD’s. Al igual que con otros elementos combinacionales, los decodificadores permiten su encadenamiento permitiendo estructuras complejas a partir de bloques elementales. El criterio para su encadenamiento viene determinado por cómo se gestiona el enable para evitar que que se produzcan salidas simultaneas (se insiste nuevamente en que en un sistema decodificador sólo puede habilitarse una salida por cada combinación de entrada). El criterio a seguir viene dado por el uso de los bits de mayor peso como gestores del enable.

E X1 X0 Y3 Y2 Y1 Y0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 X X 1 1 1 1

X1 X0

E

y0

y1

y2

y3

DECOD 2:4 salidas bajas

Page 9: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 9 de 27

E

0

x0

DEC 1:2

0

1

x1

010 XXEy ⋅⋅=

013 XXEy ⋅⋅=

012 XXEy ⋅⋅=

E

0 DEC 1:2

0

1 011 XXEy ⋅⋅=

BLOQUE 1

BLOQUE 2

El bit de mayor peso sirve para seleccionar sólo uno de los dos bloques: cuando vale 1 afecta a las salidas 3 y 2 del bloque 1, mientras que cuando vale 0 afecta a las salidas 1 y 0 del bloque 2. Para evitar que se habiliten sendos bloques simultaneamente se incluye un inversor en uno de los enable para que cuando X1 incida sobre un bloque, el otro quede deshabilitado. En este caso, el inversor se aplicará sobre el enable del bloque 2 ya que sólo se ha de activar cuando X1 sea nulo. Así pues, en este caso, el bit X1 se encarga de seleccionar el bloque, mientras que el bit de menor peso X0 selecciona la salida del bloque seleccionado por X1.

Ejemplo. decod 2:4 con 2 x decod 1:2 El bloque a implementar es el ya estudiado en los ejemplos anteriores, tanto a nivel de salidas altas como bajas. Se realizará la implementación con decod’s 1:2 para para uno de los casos proponiéndose el otro caso como ejercicio. El procedimiento será el siguiente:

• Se dibuja la estructura básica indicando entradas y salidas (en este caso los dos decod’s 1:2 con las las dos entradas y las cuatro salidas repartidas entre los dos bloques).

• Se expresa cada una de las salidas como minterm/Maxterm y

por inspección visual se determina qué variable de entrada permite la separación modular sin que exista simultaneidad. (suele ser el bit de mayor peso)

• Nivel de salidas altas

Page 10: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 10 de 27

E

1 B DEC 3:8

2 0 1

3 2

A

C 0 4 5 6 7

F

F

8.3.3 Síntesis de funciones lógicas con DECOD’s. Al igual que con los MUX’s, las funciones lógicas pueden implementarse con DECOD’s. Pasos a seguir:

1. Hacer la TdV o el MdK de la función. 2. Recontar los ceros y unos que salen. Aplicar el siguiente

criterio: • si hay más 0’s que 1’s � usar salidas bajas • si hay más 1’s que 0’s � usar salidas altas.

Se puede resumir el criterio según esta tabla:

VALORES TdV SALIDAS PUERTAS

1’s ALTA OR BAJA NAND

0’s ALTA NOR BAJA AND

Ejemplo. Implementar con un decod la siguiente función.

∑=3

)6,5,3,1,0(mF

• Dado que se trata de una función de tres variables, se

necesitará un decod de tres entradas (y ocho salidas).

• Como la función viene expresada como suma de mintems, ya nos informa sobre si hay más 1’s que 0’s (por lo que no es necesario hacer la TdV). En este caso tenemos 5 unos por 3 ceros, por lo que se implementará según salidas altas añadiendo una puerta OR al decodificador .

• A la puerta OR le entrarán aquellas salidas del DECOD que sean

altas (en rojo). La salida de la puerta OR será la función F.

• Análogamente se puede implementar el sistema tomando las salidas bajas y usando una puerta NOR (en azúl).

Page 11: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 11 de 27

0 1 2 . . . . N-1

E

y0 y1 y2

1Ny −

0 1 2 . . . .

2N-1

x0 x1 x2

2N entradas N salidas

COD 2N:N

12Nx −

E

x0

x1

x2 0 y0

y1 COD 4:2

1

x3

0

1

3

2

Ejercicio. 7. Implemente con el decod más adecuado y con una puerta lógica

las siguientes funciones. Repita el ejercicio usando dos bloques decod’s que tengan la mitad de salidas que el bloque inicial seleccionado.

� ∏=3

1 )7,5,1(MF

� )CB)·(DB)·(DBA)·(CBA()D,C,B,A(F2 ++++++=

8.3.4 Codificadores ���� COD’s.

Ejemplo. COD 4:2 Para la codificación de salida sólo es relevante el 1 de mayor peso de todas las entradas. Este bit con valor alto es el que indica la codificación de salida. El sistema sólo se habilita, es decir, sólo genera salida, si al menos entra un 1.

x3 x2 x1 x0 E y1 y0 1 x x x 1 1 1 0 1 x x 1 1 0 0 0 1 x 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0

Un bloque codificador da a la salida la codificación de la entrada entrante. En los sistemas binarios, la salida es la equivalencia en binario de la entrada en decimal. Sólo se habilita el enable en el caso de que haya alguna entrada

Page 12: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 12 de 27

0 y0

y1 COD 4:2

1 0

1

3

2 0 x0

x1 DEC 2:4

1 0

1

3

2

Ejercicio. 8. Indique la codificación de salida para cada una de las

combinaciones de entrada según este esquema: se trata de un sistema Transcodificador 2:2. Ayúdese de alguna variable intermedia.

� Reconoce el tipo de código resultante?

� Cómo realizaría un código de Gray si sólo existiera la conexión 3 � 1 entre el decodificador y el codificador?

� Es única la solución propuesta? Demuéstrelo.

Page 13: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 13 de 27

8.4 SUMADORES. Un bloque sumador se encarga de realizar la suma de dos tiras de bits de entrada. Este sumador tiene habilitada una entrada especial, RE, Resto de Entrada, donde se recibe la posibilidad de “llevarse una” de un bloque sumador anterior. Así mismo se genera la salida RS, Resto de Salida para dar salida a un posible bit de “me llevo una”. La suma entre bits se realiza según XOR. 8.4.1 Sumador de 1 bit. Sumador Universal. El bloque sumador más sencillo es el sumador de un bit, conocido como sumador universal. Su esquema y TdV son los siguientes: Realizando el MdK y sacando el PdS se obtiene:

ERbaS ⊕⊕=

EES bRaRabR ++=

Ejemplo. Sumador de 4 bits implementado con bloques universales Secuencias a sumar:

a b RE S RS 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

B

A N

∑NN

S

N

RE

1

RE 1

b

a 1

∑11

S

1

RE

1

RS 1

Page 14: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 14 de 27

A = [a3, a2, a1, a0] B = [b3, b2, b1, b0] S = A / B = [s4, s3, s2, s1, s0]

La estructura del ejemplo está implementada según un formato en serie. Aunque es el método más fácil, también es el más lento dado que para llegar al último bloque encadenado se ha de pasar por los que tiene delante. Eso no es relevante en sistemas de pocos bits, pero sí en sumadores de muchos bits ya que el retraso acumulado por cada bloque puede ser excesivo.

Como solución se suele implementar el sumador con los bloques universales en paralelo, ganándose en retardo pero aumentando los recursos necesarios. Ejercicios. 9. Aplique el bloque sumador de 4 bits diseñado y verifique que la

suma de A = [0, 1, 1, 1] con B = [1, 1, 0, 0] da como resultado S = [1, 0, 0, 1, 1]. Si pasa los números en binario a decimal y los suma verá que coincide con el resultado generado por el sumador de 4 bits.

10. Implemente con sumadores universales encadenados y puertas

AND la operación de producto de 4 por 2 bits (a3a2a1a0 x b1b0). 8.5 COMPARADORES.

Los bloques comparadores establecen la relación de igualdad de una primera tira de bits respecto a una segunda tira de bits: dirá si la primera tira es mayor, igual o menor que la segunda. Tiene

b0 a0

∑1

S0

RS RE

b1 a1

∑1

S1

RS RE

b2 a2

∑1

S2

RS RE

b3 a3

∑1

S3

RS RE S4

Page 15: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 15 de 27

habilitadas tres entradas para encadenamiento que aportan información sobre una comparativa de un bloque anterior.

Ejemplo. Comparador de 8 bits.

Se implementa un sistema comparador de 8 bits. La primera opción se realiza con un único bloque que compara los 8 bits simultáneamente; la segunda opción usa dos bloques comparadores de 4 bits encadenados. � Se implementa un sistema comparador de 8 bits usando

un bloque comparador de 8 bits.

Para los datos de la tabla el sistema responderá sacando un 1 en la salida FA > B .

� Se implementa un sistema comparador de 8 bits usando 2

bloques comparadores de 4 bits.

DEC BIN E> E= E< FA > B FA = B FA < B A 75 01001011

0 1 0 1 0 0 B 62 00111110

B

A N

N

FA > B COMP

>

< = FA = B

FA < B

> = <

E > E = E <

B

A 8

8

FA > B COMP

>

< = FA = B

FA < B

> = <

0 1 0

Dado que este bloque compara los 8 bits a la vez, es decir, no recibe información de ningún otro bloque anterior, se ha de habilitar el enable de igualdad para que el bloque pueda funcionar. La secuencia de arranque en estos casos siempre será 010.

Page 16: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 16 de 27

Para realizar este sistema se agrupan las tiras de bits en dos grupos: el primer grupo contiene los cuatro bits de mayor peso y el segundo grupo los cuatro de menor peso.

El sistema queda de la siguiente forma:

Se ha comparado las dos tiras del caso anterior. El bloque 1

compara los bits de menor peso (al ser el primer bloque a entrar en funcionamiento se le ha de introducir la secuencia de arranque 0 1 0 en los enables). La salida determina que los bits de menor peso de la cadena B son mayores que los de A. Las salidas de comparación del bloque 1 se encadenan con el bloque 2 a modo de enables de comparación. Acto seguido se comparan los bits de mayor peso en el bloque 2. El resultado de esta comparación ya determina que A es mayor que B con lo que se desoye la información de comparación heredada del bloque 1 (sólo habría sido determinante en el caso de que los bits de mayor peso hubieran sido iguales). Se repite el ejemplo pero con estos nuevos valores:

DEC BIN

Peso mayor

Peso menor

A 75 01001011 0100 1011 B 62 00111110 0011 1110

0 0 1 1

1 0 1 1

1 1 1 0

0 1 0 0 a7a6a5a4

4

4

FA > B COMP >

< = FA = B

FA < B

> = <

b7b6b5b4

a3a2a1a0 4

4

COMP >

< =

> = <

0 1 0

b3b2b1b0

BLOQUE 1

BLOQUE 2

0

0

1

0

0

1

Page 17: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 17 de 27

En este caso los bits de mayor peso son iguales, por lo que prevalece la relación de comparación del bloque inferior. De esta forma se determina que A es menor que B.

Al igual que pasa con los bloques sumadores, las estructuras del ejemplo están implementadas según un formato en serie. Aunque es el método más fácil, también es el más lento dado que para llegar al último bloque encadenado se ha de pasar por los que tiene delante. Eso no es relevante en sistemas de pocos bits, pero sí en comparadores de muchos bits ya que el retraso acumulado por cada bloque puede ser excesivo.

Como solución se suele implementar el comparador con los bloques en paralelo, ganándose en retardo pero aumentando los recursos necesarios. Ejercicios.

DEC BIN

Peso mayor

Peso menor

A 75 01001011 0100 1011 B 78 01001110 0100 1110

0 1 0 0

1 0 1 1

1 1 1 0

0 1 0 0 a7a6a5a4

4

4

FA > B COMP >

< = FA = B

FA < B

> = <

b7b6b5b4

a3a2a1a0 4

4

COMP >

< =

> = <

0 1 0

b3b2b1b0

BLOQUE 1

BLOQUE 2

0

0

1

0

0

1

Page 18: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 18 de 27

11. Realice un comparador de 8 bits a partir de bloques comparadores de 2 bits. Verifique su correcto funcionamiento para las cadenas de bits de los ejemplos.

12. El sistema de la figura recibe números codificados en BCD en

las entradas a1 a0 b1 b0. El bloque comparador se encarga de establecer la relación de igualdad entre los dos bits de mayor peso (a1 a0) respecto los dos bits de menor peso (b1 b0).

� Realice la TdV del sistema. Extraiga las funciones SdP de las tres salidas. Observa algún vínculo entre las tres salidas de este sistema?. Justifique y demuestre su respuesta.

� Implemente el sistema con 2 MUX 4:1.

� Implemente el sistema con 1 DECOD 3:8. � Implemente el sistema con 2 COMP de 2 bits.

8.6 MATRICES PROGRAMABLES

FA > B COMP

>

< = FA = B

FA < B

> = <

0 1 0

b1

b0

a0

a1

Page 19: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 19 de 27

8.6.1 Introducción. Los bloques combinaciones también pueden ser representados mediante matrices lógicas programables. Una matriz programable permite representar cualquier función lógica combinacional mediante puertas básicas (OR’s, AND’s e inversores). Estas puertas están agrupadas en forma matricial según muestra la figura. La implementación de las funciones mediante matrices programables requiere su expresión como suma de productos SdP. Este tipo de tecnología combinacional se conoce como PLD (Programmable Logic Device, Dispositivos Lógicos Programables). Los PLD’s se clasifican en tres familias según el grado de libertad de la programación de cada submatriz AND-OR:

• PLA

• PAL

• PROM

Page 20: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 20 de 27

La programación de las PLD’s conlleva conocer la notación usada. Aunque en los esquemas de las matrices las conexiones se realice aparentemente sobre una misma pista, en la implementación física de la matriz cada entrada a una puerta se divide en tantas entradas como sumandos/productos tengan las puertas OR/AND. En el esquema de la izquierda se ve como todas las entradas a cada puerta están perfectamente separadas (implementación física real) mientras que en el de la derecha se han unificado todas las entradas a una puerta en una sola pista sobre la que se marcan las conexiones a realizar (notación equivalente de programación). La notación de una matriz programable viene dada por el número de entradas, productos y sumas mínimos (n x k x r, respectivamente) necesarias para su implementación.

IMPLEMENTACIÓN FÍSICA REAL

NOTACIÓN

EQUIVALENTE DE PROGRAMACIÓN

Page 21: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 21 de 27

8.6.2 PLA, Programmable Logic Array. Los dispositivos PLA permiten 2 niveles de programación:

• Submatriz AND programable

• Submatriz OR programable Dado que tiene los dos grados de libertad (AND’s y OR’s programables), permiten implementar funciones combinacionales de forma más eficiente que los dispositivos PROM. En la figura se desarrolla el ejemplo de una matriz PLA con las siguientes características:

n = número de entradas = 3 k = número de productos = 7 r = número de sumas = 2

El número de entradas corresponde al de las variables que entran al sistema (X1, X2, X3). El número de productos es el total de puertas AND que habrían usado entre las dos funciones: cuatro por cada función, que daría un total de ocho. Sin embargo, el producto X1X2X3 se repite en f1 y en f2, por lo que sereutiliza para ambas funciones (necesitándose sólo siete productos en total). Hacen falta tantas sumas como salidas tenga el sistema.

Page 22: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 22 de 27

8.6.3 PAL, Programmable Array Logic. Los dispositivos PAL permiten sólo 1 nivel de programación:

• Submatriz AND programable

• Submatriz OR no programable Se representa el ejemplo anterior, pero ahora usando una matriz PAL

n = número de entradas = 3 k = número de productos = 8 r = número de sumas = 2

En este caso, en el que las sumas ya están programadas, el número de productos viene fijado: son ocho, repartidos en grupos de cuatro entradas de cada puerta OR de salida. Esta rigidez obliga a que no se pueda reutilizar el producto X1X2X3 como entrada para las dos funciones. Por eso se ha de habilitar una octava puerta AND. El resto del análisis es análogo al caso PLA.

Page 23: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 23 de 27

8.6.4 PROM, Programmable Read Only Memory. Los dispositivos PROM permiten sólo 1 nivel de programación:

• Submatriz AND no programable

• Submatriz OR programable Se representa el mismo ejemplo aplicando en esta ocasión una matriz PROM.

n = número de entradas = 3 k = número de productos = 8 r = número de sumas = 2

Ahora las entradas a las puertas AND ya están fijadas. Fíjese que de mayor a menor peso de las variables, cada producto recoge un minterm ordenado de mayor (m7) a menor (m0). Este caso sí que permite reutilizar un producto, el correspondiente a m7, aunque, sin embargo, deja marcada la conexión de una puerta que no es necesaria en la implementación (m0).

Page 24: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 24 de 27

8.6.5 Resumen y comparativa.

AND OR PLA SÍ PROG SÍ PROG PAL SÍ PROG NO PROG

PROM NO PROG SÍ PROG 8.6.6 Ejercicios. 1. Dibuje un sumador universal de un bit. Especifique claramente sus

entradas y salidas, así como los restos entrantes y salientes. a. Realice las TdV de la salida y del resto saliente. b. Realice el Mdk de cada función. c. Extraiga cada función como SdP. d. Implemente cada función con una matriz programable tipo PLA.

Especifique número de entradas, productos y sumas. e. Igual que el apartado anterior pero con PAL. f. Igual pero con PROM.

2. Averigüe la combinación ganadora de la quiniela de esta semana y

represente con los tres tipos de matrices programables las funciones que sintetizan los valores 1 – X – 2 (F1, FX y F2, respectivamente).

3. Implemente el ejercicio 12 del Tema 08 con los tres tipos de

matrices programables.

Page 25: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 25 de 27

8.6.7 Plantillas.

PLA

Page 26: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 26 de 27

PROM

Page 27: Sistemas digitales combinacionales

ELECTRÓNICA XABIER PÉREZ TEMA 08

Página 27 de 27