diseño digital 5

48
Diseño de circuitos combinacionales 169 ________________________________________________________________________________ Capítulo 5 Diseño de circuitos combinacionales Este capítulo discute diversos conceptos y herramientas utilizados en el diseño de circuitos combinacionales de una cierta complejidad. En primer lugar se presenta el concepto de módulo y su utilización como elemento fundamental en el diseño de sistemas combinacionales complejos. A continuación se presentan los distintos tipos de módulos que la práctica ha consagrado como estándares o de más frecuente utilización. Una aproximación complementaria al diseño de circuitos combinacionales es la utilización de módulos universales, entendiendo por universal que permite generar cualquier función lógica. Este capítulo hace especial énfasis en estos módulos universales por constituir una herramienta flexible y muy utilizada en la práctica. 5.1 ¿Por qué la realización a dos niveles no resuelve el problema del diseño combinacional? De acuerdo con lo visto en el capítulo 2, cualquier sistema combinacional puede implementarse en redes de dos niveles de puertas lógicas, implementación que puede conseguirse de forma sistemática. Por tanto es razonable pensar que el problema del diseño de circuitos combinacionales está resuelto con los conceptos allí presentados y que no hace falta volver sobre él. Este razonamiento es correcto desde el punto de vista teórico; sin embargo, en la práctica las implementaciones a dos niveles para funciones complejas involucran un excesivo número de puertas con un gran número de entradas y un interconexionado que puede ser muy problemático. Por este motivo la implementación a dos niveles es, en general, poco atractiva para realizar circuitos complejos. Un concepto fundamental a considerar en este último caso es el de diseño jerárquico o modular: un determinado circuito se descompone en un cierto número de módulos (circuitos) más pequeños que son diseñados de forma independiente; estos circuitos más sencillos pueden ser, si es necesario, descompuestos a su vez en subcircuitos más simples, etc., hasta que los módulos resultantes puedan ser diseñados como circuitos a dos niveles. La diferencia entre la aproximación a dos niveles y la aproximación modular se pone de manifiesto en el ejemplo 5.1. El procedimiento jerárquico es relativamente independiente de la opción de diseño escogida. Si la implementación se va a realizar mediante circuitos integrados discretos estándar (opción off the shelf) el diseño deberá tener en cuenta qué módulos existen en el catálogo y cuál es su funcionalidad lógica.

description

buen libro para el estudio de diseño digital

Transcript of diseño digital 5

Page 1: diseño digital 5

Diseño de circuitos combinacionales 169________________________________________________________________________________

Capítulo 5 Diseño de circuitos combinacionales

Este capítulo discute diversos conceptos y herramientas utilizados en el diseño de circuitoscombinacionales de una cierta complejidad. En primer lugar se presenta el concepto de módulo y suutilización como elemento fundamental en el diseño de sistemas combinacionales complejos. Acontinuación se presentan los distintos tipos de módulos que la práctica ha consagrado comoestándares o de más frecuente utilización. Una aproximación complementaria al diseño de circuitoscombinacionales es la utilización de módulos universales, entendiendo por universal que permitegenerar cualquier función lógica. Este capítulo hace especial énfasis en estos módulos universales porconstituir una herramienta flexible y muy utilizada en la práctica.

5.1 ¿Por qué la realización a dos niveles no resuelve el problema del diseñocombinacional?

De acuerdo con lo visto en el capítulo 2, cualquier sistema combinacional puede implementarse enredes de dos niveles de puertas lógicas, implementación que puede conseguirse de forma sistemática.Por tanto es razonable pensar que el problema del diseño de circuitos combinacionales está resueltocon los conceptos allí presentados y que no hace falta volver sobre él. Este razonamiento es correctodesde el punto de vista teórico; sin embargo, en la práctica las implementaciones a dos niveles parafunciones complejas involucran un excesivo número de puertas con un gran número de entradas y uninterconexionado que puede ser muy problemático. Por este motivo la implementación a dos niveleses, en general, poco atractiva para realizar circuitos complejos.

Un concepto fundamental a considerar en este último caso es el de diseño jerárquico o modular: undeterminado circuito se descompone en un cierto número de módulos (circuitos) más pequeños queson diseñados de forma independiente; estos circuitos más sencillos pueden ser, si es necesario,descompuestos a su vez en subcircuitos más simples, etc., hasta que los módulos resultantes puedanser diseñados como circuitos a dos niveles. La diferencia entre la aproximación a dos niveles y laaproximación modular se pone de manifiesto en el ejemplo 5.1.

El procedimiento jerárquico es relativamente independiente de la opción de diseño escogida. Si laimplementación se va a realizar mediante circuitos integrados discretos estándar (opción off the shelf)el diseño deberá tener en cuenta qué módulos existen en el catálogo y cuál es su funcionalidad lógica.

Page 2: diseño digital 5

170 Diseño digital________________________________________________________________________________

Si se diseña pensando en una alternativa tipo "semi-custom" debemos pensar en qué módulos estánpredefinidos en las librerías del fabricante. Únicamente en el caso de diseño full-custom podemospensar en la utilización de módulos diseñados ex-profeso para la aplicación en cuestión. En principioel diseño de estos módulos específicos permite obtener mejores características; sin embargo, se tratade un proceso costoso y por tanto sólo justificable cuando los volúmenes de producción son muygrandes. Una posibilidad intermedia entre el diseño de módulos específicos y el de módulos estándarestriba en el uso de módulos programables por el usuario. Se trata de módulos estándar y por tantofabricados en grandes series y a precios muy bajos pero que pueden adaptarse a las necesidades delusuario mediante una programación que puede ser realizada por el fabricante o por el mismo usuario.

Ejemplo 5.1

Vamos a diseñar un sistema capaz de efectuar la suma aritmética de dos números enteroscodificados en binario de dos bits. En esencia, se trata de sintetizar un circuito combinacional concuatro entradas (a1, a0, b1, b0) y tres salidas (S2, S1, S0), correspondientes al valor de la sumaindicada.

Una opción de diseño es seguir la metodología expuesta en el capítulo 2, que conduce a laimplementación en forma de red AND-OR de dos niveles mostrada en la figura 5.1. En dichafigura puede observarse que son necesarias 11 puertas AND (de 2, 3 y 4 entradas), 3 puertas OR(de 2, 3 y 6 entradas), y 4 inversores para realizar el sumador, con un esquema de conexiones deuna complejidad apreciable.

Una segunda opción consistiría en reproducir el algoritmo de la suma binaria (ver figura 5.2.a):cada bit de una entrada se suma con el bit de igual peso de la otra entrada y el acarreo procedentede la suma de los bits de peso inferior, con lo que se genera un bit de suma y otro de acarreo quetransmitir a la suma del siguiente par de bits. Este algoritmo conduce a una implementación abase de dos módulos iguales, sumadores de cada par de bits (M), más el esquema de conexiónadecuado (ver figura 5.2.b).

El diseño de M es relativamente simple puesto que se trata de un circuito con tres entradas y dossalidas relacionadas por la tabla de verdad de la figura 5.2.c. La simplificación de Ci+1 y Siconduce a la implementación de la figura 5.3, donde vemos que son necesarias únicamentepuertas de dos entradas.

A efectos de comparación, podemos ver que en este caso la dificultad del proceso de diseño y lacomplejidad (tipos de puertas necesarias e interconexión) del circuito resultante son menoresescogiendo la segunda alternativa. También podemos ver que esta última solución es útil pararealizar circuitos sumadores de un mayor número de bits (sólo hay que añadir tantos bloques Mcomo bits tengan los números a sumar); en cambio, la realización de sumadores más grandesbasada en la primera opción de diseño implica rehacer totalmente éste para cada caso.

Page 3: diseño digital 5

Diseño de circuitos combinacionales 171________________________________________________________________________________

a a1 0 b1 b0

S1

S 0

S2

S = a b + a a b + a b b2 1 1 1 0 0 0 1 0

ba +1

S = a a b + a a b + a b b +1 1 0 1 1 0 1 1 1 0

a 1a

1 b

0+

0b

1b

0+ a

1a

0b

1b

0

S = a b + a b 0 0 0 0 0

Figura 5.1 Circuito sumador en red AND-OR de dos niveles

C2

M

M

a 1

a 0

b 1

b 0

S1

S0

S2

C0

C1a 1

b 1a 0

b 0+

S1 S0S2

C1 C0C20 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1

a i b i Ci S iC

i+1c)a) b)

Figura 5.2 Algoritmo de suma binaria y diseño basado en él

Page 4: diseño digital 5

172 Diseño digital________________________________________________________________________________

ibia

i+1C

iSiC

Si = ai ⊕ bi ⊕ Ci

Ci+1 = ai bi + a ibi Ci + ai b iCi = = ai bi + Ci (ai ⊕ bi )

Figura 5.3 Realización de un sumador elemental

_________________________________________________________________________________

Ejercicio 5.1

Proponga dos implementaciones para el siguiente sistema, una a dos niveles de puertas lógicas, yla otra, a imagen del ejemplo 5.1, basada en un algoritmo de resta binaria. El sistema, de 4entradas, debe calcular la resta de dos números enteros codificados en binario con 2 bits. Las dossalidas, R1 y R0, indican el resultado de la resta, caso de que ésta pueda realizarse (A•B). Latercera salida, O, valdrá "1" cuando la resta no tenga resultado positivo (A<B).

2Circuito Restador

A R

B2

O = 1 si B > A

R =(A-B) si B ≤ A2

O

Figura 5.4 Circuito del ejercicio 5.1

_________________________________________________________________________________

5.2 Diseño con redes modulares

Los módulos, con independencia de su complejidad, pueden conectarse entre sí para formar circuitosmás grandes y capaces de realizar funciones más complejas. Sin embargo, para asegurar elfuncionamiento del circuito resultante se deben tener en cuenta ciertos aspectos, tanto de ordeneléctrico como funcional, que se comentan en el apartado 5.2.1. Por su parte, el apartado 5.2.2 sededica a examinar algunos ejemplos de análisis y síntesis modular de circuitos combinacionales.

Page 5: diseño digital 5

Diseño de circuitos combinacionales 173________________________________________________________________________________

5.2.1 Construcción de redes modulares

La correcta construcción de una red de módulos debe tener en cuenta aspectos relativos a lascaracterísticas eléctricas concretas de cada módulo. En general estas características dependen de lafamilia tecnológica escogida. En el Apéndice B se presentan de forma condensada distintas familiastecnológicas y se comparan sus características definitorias, de las que se destacan a continuación lasprincipales:

a) La tensión de alimentación y el consumo del módulo, definidas en el capítulo 3para una puerta lógica, y que dependen claramente de la familia tecnológica.

b) Los niveles lógicos, que relacionan los niveles de tensión con que trabajan lasentradas y salidas del módulo con los valores lógicos que representan (ver capítulo 3). Estosniveles son característicos de cada familia tecnológica.

c) El retardo introducido para cada salida. Caracteriza el tiempo que tardan lassalidas de un módulo en alcanzar un valor estable tras una conmutación de las entradas. Dichotiempo es en general dependiente de la carga presente a la salida del módulo.

d) "Fan-in" o factor de carga. Para cada entrada indica la carga que ésta representacuando se la conecta a la salida de otro módulo. Para cada tecnología los factores de cargaestán normalizados a valores enteros.

e) "Fan-out". Para cada salida indica la máxima carga que dicha salida puedesoportar bajo ciertas restricciones de consumo y/o de retraso introducido. Suele darse tambiénen forma de valores enteros normalizados.

Por otra parte, la correcta interconexión de módulos implica respetar, como mínimo, las siguientesreglas básicas:

a) Los niveles lógicos de los módulos a conectar deben ser compatibles entre sí. Encaso de no serlo es necesario añadir circuitos de interfaz (es decir, adaptadores de nivel).

b) La suma de los fan-in de las entrada conectadas a una determinada salida debeser inferior al fan-out de ésta.

c) Si tenemos las salidas de dos módulos distintos conectadas juntas, su valor lógicono está definido si cada una toma un valor distinto; por este motivo, como norma general cadaentrada de un módulo debe estar conectada a una única salida de otro módulo. Esto implicaque, por ejemplo, el conexionado de la figura 5.5.a es válido, y no lo es el de la figura 5.5.b.

Page 6: diseño digital 5

174 Diseño digital________________________________________________________________________________

M3M1

M2

M3M1

M2

b)a)

Figura 5.5 a) Red modular correcta, b) incorrecta

Sin embargo, para algunas tecnologías y configuraciones concretas sí queda definido el valorresultante en caso de conflicto. En algunos casos el valor "1" predomina sobre el "0", con lo que laconexión de dos o más salidas se comporta como si fuera una puerta OR; esta puerta virtual recibe elnombre de OR cableada. El caso contrario también es posible, es decir, en otras situacionespredomina el "0" sobre el "1", con lo que resulta una puerta AND virtual o cableada. La figura 5.6muestra el equivalente circuital en ambos casos.

F = f f

M2

M1f1

f2

F = f + f1 2

M2

M1f1

f2

1 2

Figura 5.6 Puertas AND y OR cableadas

Otro caso particular son las salidas "tri-state": en general la salida de un módulo es o bien "0" o bien"1", pero en algunas tecnologías y/o configuraciones es posible dejar la salida en un valor lógicoindefinido, llamado alta impedancia, que queda determinado por los valores de los módulos restantesconectados a dicha salida. Los circuitos que ofrecen esta posibilidad disponen de una entradaadicional de habilitación (E, "enable") que determina si la salida adopta un valor lógico concreto o siqueda en alta impedancia. Las salidas tri-state pueden conectarse entre sí y el circuito resultantefuncionará correctamente si como máximo un único módulo está habilitado simultáneamente.

Ejemplo 5.2

Los bloques M1 y M2 de la figura 5.7 disponen de salidas tri-state gobernadas por las entradasE1 y E2 respectivamente. La única condición a cumplir para que la interconexión funcionecorrectamente es que ambas sean complementarias. La función lógica a la que equivale estainterconexión se indica en la misma figura.

Page 7: diseño digital 5

Diseño de circuitos combinacionales 175________________________________________________________________________________

E1

E2

M1f1

f2

F = f E + f E1 2

M2

E

Figura 5.7 Conexión de salidas lógicas tri-state

_________________________________________________________________________________

Ejercicio 5.2

El layout de la figura 5.8 corresponde a una implementación CMOS tri-state. Halle su esquemaeléctrico equivalente y la función lógica que implementa. Razone, a nivel de transistores, losposibles caminos del nodo de salida a las alimentaciones en el caso de tener dos módulos comoéste conectados tal como se muestra en la figura 5.7.

A B C E

E

Vdd

Vss

F

Figura 5.8 Layout de función lógica tri-state

_________________________________________________________________________________

Page 8: diseño digital 5

176 Diseño digital________________________________________________________________________________

5.2.2 Análisis y síntesis de redes modulares

En general el análisis a nivel lógico de un circuito supone determinar la función realizada por éste. Lafuncionalidad de un circuito constituido por la interconexión de diferentes módulos puededeterminarse mediante composición de las funciones realizadas por los módulos integrantes. Elejemplo 5.3 ilustra la aplicación de este procedimiento de análisis a circuitos combinacionales.

Este concepto "modular" se puede utilizar también desde el punto de vista del diseño o síntesis:podemos descomponer un problema de diseño relativamente complejo en varios problemas mássencillos y la relación entre ellos. Este planteamiento supone sintetizar por separado una serie demódulos, cada uno de ellos ligado a uno de los problemas, e interconectarlos de manera adecuada,siendo el resultado final un circuito modular. El ejemplo 5.3 ilustra la aplicación de esteprocedimiento de síntesis a un circuito combinacional.

Ejemplo 5.3

Analizar la red de la figura 5.9, dando una descripción de alto nivel de la función o funciones querealiza. Las entradas A, B y C corresponden a números enteros codificados en binario.

A

B

x y

zM14

4 x y

zM14

4

x y

zM24

4x y

zM24

4

m n

pM34

44 DC

Q

zM1 =x si x≥ y

y si x< y

zM 2 =x si x≤ y

y si x> y

p M3 =m+ n si Q= 0

m− n si Q=1

Figura 5.9 Red modular del ejemplo 5.3

El análisis de los módulos M1 lleva a la conclusión de que a la entrada m de M3 se conecta laentrada, A, B, o C, de mayor valor absoluto. De forma análoga se llega a que la entrada n de M3se conecta a la entrada de menor valor absoluto. Luego, incluyendo la función de M3, se llega alsiguiente resultado final:

Page 9: diseño digital 5

Diseño de circuitos combinacionales 177________________________________________________________________________________

D=max A,B,C[ ]+ min A,B,C[ ] si Q= 0

max A,B,C[ ]− min A,B,C[ ] si Q=1

_________________________________________________________________________________

Ejemplo 5.4

Diseñar en forma de red de módulos un circuito comparador de dos números codificados enbinario de 4 bits, de acuerdo con la especificación dada en la figura 5.10.

Circuito Comparador

AF

B

4

4

F = 1 si A > B

F = 0 si A ≤ B

Figura 5.10. Descripción del diseño a efectuar en el ejemplo 5.4

Veamos un enfoque de este problema como composición de problemas más sencillos: encualquier sistema de numeración podemos detectar el mayor de dos números comparando susdígitos dos a dos empezando por los de mayor peso; cuando ambos son iguales el resultado de lacomparación depende de los dos siguientes, etc., hasta que se encuentre un par de dígitosdiferentes, momento a partir del cual no hace falta seguir comparando puesto que el resultadoestará ya decidido.

La figura 5.11 muestra una implementación de la solución propuesta, donde se ve queúnicamente es necesario diseñar un módulo para comparar cada par de bits y otro para obtener elresultado. Las líneas pi indican a cada módulo si debe realizar o no su correspondientecomparación, tomando el valor "1" cuando todas las comparaciones de bits de mayor pesorealizadas indican igualdad. Una línea ci se pone a "1" únicamente cuando pi+1=1 y ai>bi.

p

0c1p

2p

3p3

3

ab

2

2

ab

1

1

ab

0ab

3c

2c

1c

0

1

F

M

M

M

M0

Figura 5.11 Comparador del ejemplo 5.4

Page 10: diseño digital 5

178 Diseño digital________________________________________________________________________________

Con la descripción dada, la síntesis del módulo comparador M resulta inmediata

ib

ia

ic

ip

i+1p

ci = pi +1aib i

pi = pi+1ai ⊕ bi =

= pi +1(ai bi + a i b i )

_________________________________________________________________________________

Ejercicio 5.3

Proponga una implementación alternativa para el comparador descrito en el ejemplo anterior, apartir del siguiente esquema de bloques:

3a 3b

Comp. 4 bits

2a 2b1a 1b0a 0b

4c 3cM1

3a 3b

Comp. 3 bits

2a 2b1a 1b0a 0b

4c

Donde c3 es el resultado de comparar los tres bits de menos peso, e iterando la descomposición:

3cM1

3a 3b2a 2b1a 1b0a 0b

4c2cM1

1cM1M11

_________________________________________________________________________________

Page 11: diseño digital 5

Diseño de circuitos combinacionales 179________________________________________________________________________________

5.3 Módulos combinacionales estándar

No existe un argumento teórico que determine qué módulos deben ser considerados como estándar.En realidad es el uso es el que consagra determinadas estructuras como las de utilización más general.En cualquier caso la consulta de cualquier catálogo de fabricante, ya sea de circuitos integradosdiscretos o de módulos prediseñados para opciones VLSI, muestra la multiplicidad de módulos que seofrecen como circuitos estándar.

En este apartado presentamos una selección reducida de los módulos estándar más utilizados,siguiendo para cada uno de ellos el esquema de describir primero su funcionamiento y simbología,cómo puede implementarse utilizando puertas y/o transistores y, finalmente, mostrando algunosejemplos concretos de utilización.

5.3.1 Decodificadores

Un decodificador binario es un circuito lógico combinacional con n entradas y 2n salidas, donde lasentradas pueden entenderse como la codificación binaria de un número entero (comprendido, portanto, entre 0 y 2n-1). La salida i-ésima estará activa (por ejemplo, valor "1") cuando el valor de laentrada corresponda al entero i, tomando las 2n-1 salidas restantes el valor lógico contrario ("0" eneste caso). Adicionalmente suele disponerse de una entrada de habilitación y/o inhibición (E, enable),de forma que cuando ésta vale "0" el funcionamiento del módulo queda bloqueado, con lo quequedan inactivas todas las salidas.

La figura 5.12 muestra la estructura externa genérica de un decodificador binario n:2n (n entradas, 2n

salidas), junto con una especificación compacta (o de alto nivel) de su funcionamiento.

01

2

nn-1

1

0

E

De

cod

ifica

do

r

2 -1

...

...

x

n-1

1

0x

01

2

n2 -1

yyy

yx

yi =1 si i = x y E=1

0 si i ≠ x o E = 0

para 0≤i ≤ 2n −1, x = xj 2j

j =0

n−1∑

Figura 5.12 Decodificador binario de n entradas

Page 12: diseño digital 5

180 Diseño digital________________________________________________________________________________

La implementación mediante puertas lógicas de un decodificador binario como el acabado dedescribir resulta sumamente fácil si se observa que, para E=1, cada salida yi, considerada como unafunción lógica independiente, coincide con el minterm i-ésimo de las variables de entrada, es decir:

yi = E⋅ mi ( x) 0≤ i ≤ 2n −1

Como ejemplo concreto la figura 5.13 muestra la tabla de verdad y la implementación mediantepuertas de un decodificador binario 2:4. Es obvio que ambas son generalizables a estructurasmayores.

0

1

y

y

E

2

3

y

y

0

1

x

x

0 X X 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1

x 1 x 0E y1

y0

y3

y2

Figura 5.13 Realización mediante puertas de un decodificador binario 2:4

Los catálogos de los fabricantes suelen ofrecer diferentes tipos de decodificadores en función delcódigo de entrada; así es habitual encontrar decodificadores binarios (n entradas, 2n salidas), BCD ensus diversas variantes (4 entradas, 10 salidas), Gray (n entradas, 2n salidas), o correspondientes aotros códigos de uso más o menos popular.

x

x

0

1

y

y

E1

2

3

y

y

0

1

x

x

E2

0

1

2

1

0

E2

De

cod

ifica

do

r

1

0

0

1

2

y

yy

3 3y

E1

Figura 5.14 Decodificador binario 2:4 con salidas activas bajas

Page 13: diseño digital 5

Diseño de circuitos combinacionales 181________________________________________________________________________________

También es usual encontrar variaciones en cuanto al número y tipo de entradas de habilitación de quedispone el módulo, existiendo también variantes respecto a la forma de considerar activas las entradasy salidas del circuito. La figura 5.14 muestra otra posible implementación de un decodificador binario2:4 utilizando un diseño basado en puertas NAND, junto con su simbolo correspondiente.

El análisis lógico del circuito de la figura 5.14 conduce a la tabla de verdad de la figura 5.15 y a unaespecificación análoga a la dada en la figura 5.12 para un decodificador binario genérico, salvo dosdiferencias: a) el módulo está habilitado para E1=0 y E2=1 y bloqueado en cualquier otro caso, b) lasalida activa lo estará con el valor lógico "0" mientras el resto estará a "1". En este caso diremos quela entrada E1 y las salidas se activan con el nivel lógico bajo.

1 X X X 1 1 1 1 X 0 X X 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0

x 1 x 0y1

y0

y3

y2E1 E2

Figura 5.15 Tabla de verdad del circuito de la figura 5.14

Esta situación (multitud de combinaciones en cuanto a salidas y/o entradas activas bajas o altas) sueledarse con mucha frecuencia en los módulos estándar disponibles en catálogos, por lo que esconveniente habituarse a ello. En los ejemplos y ejercicios de este texto se ha optado por ir variandoel formato de salidas y entradas en los módulos utilizados.

Las entradas de habilitación son sumamente útiles para encadenar decodificadores entre sí, con lo quese obtienen decodificadores mayores. La figura 5.16.a muestra la posibilidad de obtener undecodificador binario 4:16 a partir de dos decodificadores 3:8. La figura 5.16.b muestra a su vezcómo realizar el mismo módulo mediante decodificadores 2:4.

Nótese que todos los decodificadores de la figura 5.16 tienen entradas activas bajas, lo cual equivale adecir que el código de entrada que reconocen no es el binario sino su inverso o complementado.Nótese también que sólo la opción de la figura 5.16.b dispone de entrada de habilitación. Se proponecomo ejercicio para el lector la inclusión de una entrada de este tipo en el circuito de la figura 5.16.a.

Page 14: diseño digital 5

182 Diseño digital________________________________________________________________________________

76543210

012

E

De

cod

ifica

do

r

76543210

012

E

De

cod

ifica

do

r0x1x2x

3x

0y

15y

8y

7y

15y3

21

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

12y

11y

8y

7y

4y

3y

0y

E

0x1x

2x3x

a) b)

Figura 5.16 Ejemplos de encadenamiento de decodificadores

Ejercicio 5.4

Discuta posibles alternativas de realización de un decodificador binario 5:32 cuyas entradas ysalidas tengan un formato como el descrito en la figura 5.14, utilizando decodificadores 2:4 y/o3:8 de ese mismo formato.

_________________________________________________________________________________

5.3.2 Codificadores

Como su nombre indica, un codificador es un circuito lógico combinacional que realiza la funcióninversa a la de un decodificador. En consecuencia, un codificador binario tendrá 2n entradas y nsalidas, disponiendo habitualmente de una o varias entradas de habilitación. Adicionalmente suelehaber otra salida, utilizada para hacer encadenamientos, que indica cuándo está activada alguna de lasentradas con el módulo habilitado.

La figura 5.17 muestra la estructura externa genérica de un codificador binario 2n:n junto con unadescripción de su funcionamiento, incluyendo la salida adicional A, que indica cuándo hay algunaentrada activa. Podemos ver que cuando la entrada i-ésima está activa la salida corresponde a lacodificación binaria de i.

Page 15: diseño digital 5

Diseño de circuitos combinacionales 183________________________________________________________________________________

En previsión de que haya más de una entrada activa a la vez, se puede definir una prioridad deentradas, actuando siempre de acuerdo con la entrada activa de prioridad más alta. En laespecificación de la figura 5.17, las entradas con subíndice más alto tienen mayor prioridad.

01

2

n

n-1

1

0E

Co

difi

cad

or

2 -1

...

...

y

n-1

1

0y

y

01

2

n2 -1

xxx

x A

y =i si E = xi = 1 y xk = 0 ∀k > i

0 si E = 0 o xi = 0 ∀ i

con y = yj 2 j

j =0

n−1

Figura 5.17 Codificador binario de 2n entradas

La implementación con puertas lógicas de un codificador es muy sencilla a partir de la especificacióndada. La figura 5.18 muestra una tabla de verdad y la correspondiente implementación de uncodificador binario 4:2.

y1

A

y0

E 0x 1 xx 3 x 2x 1 x0 y1A y0E x 3 x 2

0 1 1 1 1 1

X 0 0 0 0 1

0 0 0 1 0 1

0 0 0 0 1 1

0 0 1 1 1 1

X 0 1 X X X

X 0 0 1 X X

X 0 0 0 1 X

Figura 5.18 Realización mediante puertas de un codificador binario 4:2 con prioridad

El encadenamiento de codificadores se realiza utilizando adecuadamente las señales E y A, más laspuertas que sea necesario añadir para generar el código de salida. En el ejemplo 5.5 se muestra uncaso concreto.

Ejemplo 5.5

La figura 5.19 muestra el esquema y la tabla de verdad de un codificador binario 4:2 conprioridad cuyas entradas y salidas son activas con nivel bajo.

Page 16: diseño digital 5

184 Diseño digital________________________________________________________________________________

Co

difi

cad

or

Z0Z1

A1

X3 X2 X1 X0

A2E

E X0 X1 X2 X3 A1 A2 Z1 Z0

1 0 0 0 0 0

X 1 X X X 0

X 1 X X 0 1

X 1 X 0 1 1

X 1 0 1 1 1

1 0 1 1 1 1

1 1 0 0 0 0

1 1 0 0 1 1

1 1 0 1 0 1

Figura 5.19 Codificador 4:2 con prioridad y señales activas bajas

La figura 5.20 muestra un encadenamiento de codificadores 4:2 como el anterior, que da lugar aotro equivalente (igual comportamiento con señales activas bajas e igual orden de prioridades) dedimensiones 8:3. Se recomienda al lector un análisis detallado del citado esquema.

Cod.3210E

10

A1A2

Cod.3210E

10

A1A2

3x

0x

4x

7x

yy y A2

EI

A110 2

Figura 5.20 Codificador 8:3 con prioridad y señales activas bajas

_________________________________________________________________________________

Ejercicio 5.5

Proponga una implementación a nivel de puertas lógicas del codificador 4:2 especificado en elejemplo anterior.

_________________________________________________________________________________

Page 17: diseño digital 5

Diseño de circuitos combinacionales 185________________________________________________________________________________

5.3.3 Multiplexores

Un multiplexor o selector es un circuito lógico combinacional con 2n entradas, llamadas de datos ocanales (xi), n entradas, llamadas de selección o de control (si), y una salida (y). Adicionalmente sepuede disponer de entrada(s) de habilitación del módulo.

La figura 5.21 muestra la estructura externa genérica de un multiplexor de 2n canales junto con unadescripción de alto nivel de su funcionamiento. Podemos ver que cuando el módulo está habilitado ylas entradas de control corresponden al entero "i" la salida coincide con la entrada de datos i-ésima,siendo ignorado el valor del resto de entradas.

2

01

2

n

n-1 1 0E

Mu

ltip

lexo

r

2 -1

... y

n-1 1 0ss

01

n2 -1

xxx

x

s...

y=xi

0

si E=1

si E = 0

siendo i = sj 2j

j =0

n−1

Figura 5.21 Multiplexor de 2n canales

Este funcionamiento puede expresarse fácilmente en notación algebraica

y= E x0(s n−1,..,s 1,s 0) + x1(s n−1,..,s 1,s0 )+...+[ x2n−1(sn−1,..,s1,s0 )]=

= E x0[ m0(s)+ x1m1(s)+...+ x2n−1

m2n−1(s)]= E ximi (s)

i=0

2n−1∑

donde mi(s) es el minterm i-ésimo de las variables de selección si. Podemos ver que esta notaciónalgebraica conduce a una implementación en forma de red AND-OR de dos niveles para cualquiermultiplexor. En la figura 5.22.a se muestra esta implementación para un multiplexor de dos canales.La implementación a nivel transistor de un multiplexor también es inmediata utilizando interruptoreslógicos. La figura 5.22.b muestra un multiplexor de dos canales realizado mediante puertas detransmisión CMOS.

Page 18: diseño digital 5

186 Diseño digital________________________________________________________________________________

x1

x0

s

y y

x1

x0

s

s

s

b)

x0

s

y

x1

E

a)

Figura 5.22 Implementación de un multiplexor de dos canales con puertasAND-OR (a)y con puertas de transmisión CMOS (b)

Ejemplo 5.6

Implementar un multiplexor de cuatro canales mediante puertas AND-OR y mediante transistoresde paso NMOS.

1 0

x 1

x0

x 3

x 2

s s

y

E

x 3

s1 s0s1 s0

x 1

x0

x 2y

a)b)

Figura 5.23 Implementación AND-OR (a) y NMOS (b) de un multiplexor de cuatro canales

_________________________________________________________________________________

Ejercicio 5.6

Implemente mediante puertas un multiplexor de dos vectores de 4 bits, descrito mediante laespecificación dada en la figura 5.24. Para este diseño basta con tomar cuatro multiplexores dedos canales gobernados por la misma variable de control.

Page 19: diseño digital 5

Diseño de circuitos combinacionales 187________________________________________________________________________________

Circuito a diseñar

4

44A

B

s

YY=A si s=0

Y=B si s=1

Figura 5.24 Multiplexor de 2 vectores de 4 bits

_________________________________________________________________________________

Al igual que los módulos estándar comentados anteriormente, los multiplexores pueden encadenarsepara realizar módulos equivalentes de mayor tamaño. Como ejemplo concreto, la figura 5.25 muestraun encadenamiento de multiplexores de 4 canales para conseguir un multiplexor de 16 canales.

x3

x

3

0x

4x

7x

8x

11x

12x

E

0s1s

2ss

Mux

012310

E

y

Mux

012310

E

Mux

012310

E

Mux

012310

E

Mux

012310

E

0 0 0 015

Figura 5.25 Multiplexor de 16 canales realizado con multiplexores de 4 canales

Nótese que en este ejemplo se han empleado multiplexores con entrada de habilitación activa connivel bajo. La estructura del circuito es la de un selector a dos niveles: el primer nivel esta constituidopor tantos multiplexores como sean necesarios para cubrir el número de entradas requerido (en estecaso hacen falta 4), mientras que el segundo consta de un multiplexor con un número de canalessuficiente para poder seleccionar entre todos los de la primera etapa (en este caso también 4). Las

Page 20: diseño digital 5

188 Diseño digital________________________________________________________________________________

variables de selección de menor peso se aplican por igual a los multiplexores de la primera etapamientras que las de mayor peso gobiernan el de salida.

Ejercicio 5.7

El esquema de la figura 5.26 propone una alternativa de encadenamiento de módulos paraobtener un multiplexor de 16 canales. Se propone al lector el análisis del funcionamiento de lared y la generalización de la estrategia de encadenamiento utilizada.

Decodificador

3x

3

x4

x7

x8

x11

x12

x15

x

0s1s

2ss

Mux

012310

E

y

Mux

012310

E

Mux

012310

E

Mux

012310

E

3 2 1 0E0

1E

0

Figura 5.26 Multiplexor de 16 canales realizado con decodificadores ymultiplexores

_________________________________________________________________________________

5.3.4 Demultiplexores

Como su nombre da a entender, un demultiplexor es el circuito lógico que efectúa la función inversaa la realizada por un multiplexor. En consecuencia, un demultiplexor dispondrá de una entrada (x), 2n

salidas o canales (yi), n entradas de selección o control (si) y, eventualmente, entradas adicionales dehabilitación (E).

Page 21: diseño digital 5

Diseño de circuitos combinacionales 189________________________________________________________________________________

La figura 5.27 muestra la estructura externa genérica de un demultiplexor junto con una descripciónde su funcionamiento: si el módulo está habilitado y el valor de las entradas de control es i, entoncesla información contenida en la entrada es transferida a la salida yi.

2

01

2

n

n-1 1 0

E De

mu

ltip

lexo

r

2 -1

...

x

n-1 1 0ss

01

n2 -1

yyy

y

s...

Si E = 0 → yi = 0 ∀i ∈{0,1,..,2n −1}

Si E =1 →ys = x

yi≠s = 0

con s= sj 2j

j=0

n−1

Figura 5.27 Demultiplexor de 2n canales

La implementación más sencilla de un demultiplexor implica utilizar un decodificador, por lo que esfrecuente encontrar en los catálogos la denominación "decodificador/demultiplexor" referida almismo circuito. En la figura 5.28 se muestra un demultiplexor de 8 canales realizado mediante undecodificador binario 3:8.

76543210

012

EI

De

cod

ifica

do

r

0y

7y

10

ss

2s

Ex

Figura 5.28 Decodificador 3:8 utilizado comodemultiplexor de 8 canales

Para x=E=1 el decodificador estará habilitado y se obtendrá un "1" en la salida indicada por lasentradas si, en particular si s0=s1=s2=1, entonces y7=1, es decir, se transfiere la información contenidaen x a la salida indicada por las entradas de control. Por el contrario, para x=0 y E=s0=s1=s2=1, eldecodificador está inhabiltado y todas sus salidas toman el valor "0", luego también en este caso elvalor lógico presente en x se transfiere a y7.

Page 22: diseño digital 5

190 Diseño digital________________________________________________________________________________

La implementación de un demultiplexor mediante transistores es inmediata a partir de la de unmultiplexor: se trata del mismo circuito, por lo que únicamente es necesario invertir el sentido detransmisión de la información (Veánse por ejemplo las estructuras de las figuras 5.22.b y 5.23.b).

5.3.5 Sumadores

Cabe considerar también como módulos de uso general aquéllos que realizan operaciones de tipoaritmético, siendo el más importante de ellos el sumador. En efecto, la mayoría de las operacionesaritméticas básicas pueden descomponerse en sumas binarias, cambios de formato y/odesplazamientos. No es extraño por ello que los sumadores sean componentes habituales de cualquiercircuito electrónico de cálculo.

Un sumador es un sistema lógico combinacional que tiene como entradas dos vectores de n bits (A yB) y como salida otro vector de n bits (S), cuyo valor corresponde a la suma aritmética binaria de losvectores de entrada. La existencia de una entrada y una salida de acarreo adicionales (Cin y Cout)permiten el encadenamiento de sumadores. La figura 5.29 muestra un sumador básico junto con unadescripción de su funcionamiento, donde el signo "+" indica suma aritmética.

n

Su

ma

do

r

de

n b

its

n

n

A

B

inC outC

S

S=( A+ B + Cin )mod 2n

Cout = 1

2n A+ B+ Cin − S( )

Figura 5.29 Sumador de n bits

El diseño de un sumador como el descrito no es estrictamente una novedad puesto que ya se abordóen el ejemplo 5.1: podemos construirlo como una cadena de sumadores de un bit, tal como muestra lafigura 5.30.

Sumador de 1 bit

bn-1

an-1

sn-1

Cn-1C

n

Sumador de 1 bit

b0

a0

s0

C0

C1

Sumador de 1 bit

b1

a1

s1

C2

.... Cin

Cout

Figura 5.30 Sumador de n bits

Page 23: diseño digital 5

Diseño de circuitos combinacionales 191________________________________________________________________________________

El sumador de un bit, en ocasiones llamado sumador total, tendrá tres entradas, dos de ellas (ai y bi)que representan los dos bits a sumar y la tercera (Ci) el acarreo procedente de la suma de los bits depeso inmediatamente inferior, y dos salidas (si y Ci+1), siendo si la suma binaria de los tres bits deentrada y Ci+1 el acarreo de salida. La figura 5.3, correspondiente al ejemplo 5.1, muestra unaexpresión algebraica de las dos funciones realizadas por el sumador total junto con unaimplementación con puertas de éste.

Una implementación como la propuesta en la figura 5.30, habitualmente llamada sumador con elacarreo en serie, es conceptualmente sencilla y utillizable en sumadores de cualquier número de bits;sin embargo, tiene un inconveniente: nótese que las sumas de cada par de bits se realizan de formaconsecutiva, es decir, es necesario que se haya generado el acarreo de salida del primer sumador paraque el segundo sumador pueda realizar la operación correctamente y generar su correspondienteacarreo de salida, etc.; por tanto se trata de una serie de sumas encadenadas que van acumulando losretrasos, por lo que el tiempo que transcurre hasta que se genera la salida correcta es proporcional alnúmero de bits a sumar, circunstancia que hace desaconsejable utilizar este tipo de sumador cuando elnúmero de bits es grande.

Veamos otra alternativa de implementación, también introducida en el ejemplo 5.1: un sumador de nbits es un sistema combinacional con n+1 salidas y 2n+1 entradas, luego realiza n+1 funciones de2n+1 variables, evidentemente implementables en forma de red de dos niveles de puertas lógicas.Esta solución, si bien implica un retardo casi independiente de n, presenta sin embargo algunosinconvenientes importantes. Así, por ejemplo, cuando n es grande se precisan puertas con grannúmero de entradas y un conexionado complejo. Por otra parte el resultado no es generalizable, esdecir, si se desea hacer un sumador de un número de entradas diferente hay que rediseñarlo tododesde el principio.

Sumador de 1 bit

bn-1

an-1

sn-1

Cn-1

Sumador de 1 bit

b0

a0

s0

C0

C1

Sumador de 1 bit

b1a

1

s1

Cin

Cout

bn-1

an-1 b

0a

0b1

a1

Generador de acarreos

....

....

....

Figura 5.31 Sumador de n bits con acarreo anticipado

Page 24: diseño digital 5

192 Diseño digital________________________________________________________________________________

Una tercera alternativa, la más utilizada en la práctica, es el denominado sumador de acarreoanticipado (en inglés, "carry lookahead adder"). Este tipo de sumador genera todos los acarreos deforma simultánea, lo cual permite a su vez realizar todas las sumas de forma simultánea. La figura5.31 muestra un posible esquema de un sumador de acarreo anticipado que utiliza sumadores totalesde 1 bit y un módulo combinacional específico que se encarga de generar los acarreos.

El diseño del generador de acarreos puede abordarse a partir de las expresiones algebraicas de lassumas y los acarreos parciales si y Ci+1. Si tomamos las expresiones correspondientes tenemos (0•i•n-

1)

Ci +1 = aibi + Ci (ai ⊕ bi ) = Gi + CiPi

si = ai ⊕ bi ⊕ Ci = Pi ⊕ Ci

Donde hemos definido unas variables intermedias Gi = aibi , generación de acarreo en la etapa i-ésima, y Pi = (ai ⊕ bi ) , propagación del acarreo de la etapa anterior. Por tanto podemos escribir

C0 = Cin

C1= G0 + C0P0

C2 = G1 + C1P1 = G1 + G0P1 + C0P0P1

C3 = G2 + C2P2 = G2 + G1P2 + G0P1P2 + C0P0P1P2 .... etc

luego es posible obtener los acarreos Ci mediante una red combinacional a partir de los términos Gi,Pi y C0, es decir, de las entradas ai, bi y Cin.

Ge

ne

rad

or

de

aca

rre

os

G0

P0

G1P1

G3

P3

G2P

2

C0

C1

C2

C3

Cout

Cin

P0

P1

P2

P3

s0

s1

s2

s3

a0

b0

a1b

1

a3

b3

a2b

2

M

M

M

M

a)

b)

Figura 5.32 a) Sumador de 4 bits con acarreo anticipado. b) Realización del módulo M

Page 25: diseño digital 5

Diseño de circuitos combinacionales 193________________________________________________________________________________

La figura 5.32 muestra el esquema completo de un sumador de 4 bits que utiliza el generador deacarreos implementado mediante puertas AND-OR de la figura 5.33; nótese que el hecho de disponerde los términos Pi permite sustituir los sumadores totales de 1 bit por simples puertas XOR en laobtención de los bits de suma si.

G0P0

C0

G1P1

Cin

C1

C2

C3

Cout

G3P3

G2P2

Figura 5.33 Generador de acarreos

El ejemplo 5.7 muestra la utilización de sumadores para realizar otros circuitos de tipo aritmético,concretamente un multiplicador.

Ejemplo 5.7

El circuito de la figura 5.34 multiplica en formato binario una cantidad de 4 bits (a3a2a1a0) porotra de 2 bits (b1b0), siendo el resultado un producto de 6 bits (p5p4p3p2p1p0).

Page 26: diseño digital 5

194 Diseño digital________________________________________________________________________________

Sumador de 1 bit

Sumador de 1 bit

Sumador de 1 bit

Sumador de 1 bit

b0

a0

a1

b1

a2

a3

p1

p2

p3

p4

p5

p0

1b

0

b0

b1

p1

p2

p3

p4

p5

p0

a0

aa2

a3

b00

a0

a1

a2

a3

x

bb0

+ 1b

1a

0aa

2a

3b

11bb

1

Figura 5.34 Multiplicador de 4x2 bits y algoritmo utilizado

Tal como muestra la misma figura, el algoritmo empleado es el más inmediato imaginable: cada cifra(bit) ai se multiplica primero por b0, después por b1, y los productos se suman entre sí efectuando undesplazamiento a la izquierda, con la ventaja añadida de que el producto de dos bits coincide con lafunción AND._________________________________________________________________________________

5.3.6 Comparadores

Un comparador es un circuito combinacional que suele tener 2n entradas de datos (correspondientes ados cantidades enteras codificadas mediante n bits), tres salidas (A>B, A=B, A<B), y tres entradas deencadenamiento (E>, E=, E<).

A>B A<B

A=B

X X 1 0 0

X X 0 1 0

X X 0 0 1

1 0 1 0 0

0 0 0 1 0

0 1 0 0 1

A B A>B A<BA=BEEE> = <

Co

mp

ara

do

r

A>B

A<BA=B

An

Bn

EEE> = <

Figura 5.35 Comparador de n bits

Page 27: diseño digital 5

Diseño de circuitos combinacionales 195________________________________________________________________________________

El funcionamiento de un comparador es muy simple (véase la estructura externa y la tabla de verdadde la figura 5.5): sólo tiene sentido que se ponga a "1" una las tres salidas para cada combinación deentrada y las otras dos queden en valor "0"; así las situaciones A>B y A<B activan la salidacorrespondiente mientras que cuando se tiene A=B la decisión de qué salida se activa queda en manosde las entradas de encadenamiento.

El diseño de un comparador puede abordarse con métodos y resultados muy similares a los vistospara un sumador, siendo también las soluciones de tipo modular las más empleadas.

0

0

B 3 B...

A 3 A...

Co

mp

ara

do

r

A>B

A<BA=B

4

4

> = <

> = <

Co

mp

ara

do

r

4

4

> = <

> = <

a b

a b

"1"

4

4

B 7 B...

A7 A...

Figura 5.36 Comparador de 8 bits

La figura 5.36 muestra un comparador de 8 bits, realizado encadenando comparadores de 4 bits. Elcircuito compara los 4 bits de mayor peso: si son diferentes entre si el resultado estará ya decidido,mientras que si son iguales el resultado pasa a depender de los 4 bits de menor peso; sólo cuandoéstos últimos también son iguales se activará la salida A=B.

Ejemplo 5.8

Vamos a realizar un sumador BCD; para ello recordemos que el algoritmo de suma BCD constade dos pasos (ver apéndice A): 1) sumar en binario, 2) comprobar si el valor obtenido es superiora 9, en caso afirmativo es necesario efectuar una corrección (sumar 0110), mientras que en casonegativo no es necesario efectuarla. Hay que generar, también, un acarreo de salida.

Page 28: diseño digital 5

196 Diseño digital________________________________________________________________________________

El algoritmo expuesto puede realizarse mediante módulos estándar; así, la figura 5.37 muestra unsumador de dos cifras BCD, donde puede verse que la corrección se efectúa cuando los cuatrobits de menor peso de la suma binaria de A, B y Cin corresponden a un valor superior a 9 y/ocuando dicha suma genera un acarreo no nulo (es decir, siempre que el valor de la suma de A y Bsea superior a 9).

Co

mp

ara

do

r

4

4

> = <

> = <

a b

"1"

BA

Σ

"9"

ba

s

Cout inC

4 4

Σba

s

Cout inC

4

4

A+B

inC

Cout

Figura 5.37 Sumador de dos cifras BCD

_________________________________________________________________________________

Ejercicio 5.8

Una posibilidad para encadenar comparadores es seguir un esquema de árbol, como se muestra enla figura 5.38. Compruebe que, efectivamente, la realización propuesta es viable para compararnúmeros de 16 bits. Compare esta realización con la que se deriva de generalizar la estructurapropuesta en la figura 5.36.

Page 29: diseño digital 5

Diseño de circuitos combinacionales 197________________________________________________________________________________

A>B A<BA=B

Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<=

A A...0B3 B...

03A A...4B7 B...

47A A...8B11 B...

811A A...11B15 B...

1115

> = <

"1"

> = <

Comparador

a a a a3 2 1 0 b b b b3 2 1 0

Figura 5.38 Comparador de dos números de 16 bits

_________________________________________________________________________________

5.3.7 Unidades aritmético-lógicas

Una ALU (Arithmetic and Logic Unit) es un sistema lógico combinacional capaz de realizar diversasoperaciones, lógicas o aritméticas, con los vectores de datos de entrada. El tipo de operación concretaa realizar se selecciona mediante unas entradas adicionales de control.

S

n

Función u Operación 1

BA

n

n

n

Función u Operación 2

n

n

n

Función u Operación 2

n

n

...

Multiplexor0

S m-1

S1

n

R

m

Figura 5.39 Esquema funcional de una unidad aritmético-lógica

Page 30: diseño digital 5

198 Diseño digital________________________________________________________________________________

Un esquema genérico, más válido desde un punto de vista conceptual o funcional que correspondientea una implementación real, de una ALU sería el representado en la figura 5.39, donde las entradas dedatos son A y B y las de control S0 a Sm-1, lo que permiterealizar 2m funciones distintas.

Una ALU suele ser un circuito de una complejidad apreciable con una gran versatilidad defuncionamiento; por tanto, es posible emplearla en multitud de aplicaciones diferentes, siendo porello fabricadas en volúmenes grandes con un costo individual razonable. Por otro lado es habitualutilizar una ALU como componente básico de sistemas de procesamiento de datos más complejos(por ejemplo microprocesadores), en los cuales la operación específica a realizar es seleccionada deforma dinámica (es decir, que el mismo circuito puede realizar en momentos distintos operacionesdistintas) por un circuito de control que a su vez actúa de acuerdo con un programa (serie deinstrucciones) generado externamente por el usuario.

5.4 Diseño combinacional basado en módulos universales

Algunos de los módulos estándar presentados en el apartado anterior permiten sintetizar cualquierfunción lógica. Así, por ejemplo, es posible realizar una función mediante decodificadores y puertasOR; asimismo también es posible hacerlo mediante multiplexores. En este sentido dichos módulossuelen denominarse universales. Esta posibilidad es útil sobre todo al sintetizar funcionesrelativamente sencillas (es decir, con pocas entradas). En los subapartados 5.4.1 y 5.4.2 se ilustran losprocedimientos de diseño en ambos casos.

Adicionalmente existen otros módulos combinacionales universales, como las ROM (Read OnlyMemory) y PLA (Programmable Logic Array), que también permiten la síntesis de funciones. Dadoque estos módulos presentan algunas especificidades, su presentación y discusión se realizarán másadelante en el apartado 5.5.

5.4.1 Diseño combinacional con multiplexores

En su momento se vio que el funcionamiento de un multiplexor de 2n canales se puede describiralgebraicamente como

y= ximi (s)i=0

2n−1

donde xi es el valor lógico presente en la entrada i-ésima y mi(s) es el minterm i-ésimo de lasvariables de control.

Page 31: diseño digital 5

Diseño de circuitos combinacionales 199________________________________________________________________________________

Por otra parte, una función lógica genérica de n variables xi expresada mediante la forma canónica ensuma de productos sería

f (xn−1,xn−2,....,x1,x0 )= mi (x) f (i)i =0

2n−1

Comparando las dos expresiones se observa que es posible sintetizar la función f utilizando unmultiplexor de 2n canales introduciendo las variables xi en las entradas de control y el valor f(i)correspondiente en cada uno de los canales. Este procedimiento de síntesis se ilustra y discute en elejemplo 5.9.

Ejemplo 5.9

Vamos a estudiar algunas posibilidades de implementación mediante multiplexores de la funciónlógica siguiente

f (x2,x1,x0) = m(2,5,6)3∑

Dado que se trata de una función de tres variables, el método acabado de sugerir implica enprincipio utilizar un multiplexor de 8 canales (es decir,con 3 entradas de control): hay queconectar las variables x2, x1 y x0 a las entradas de selección e introducir en cada uno de loscanales el valor ("0" o "1") que toma la función para cada combinación de dichas variables. Lafigura 5.40 presenta la tabla de verdad de la función y la implementación descrita; nótese que elpaso de una a otra es inmediato.

0 0 0 0 1 1 1 1

x 1 x0 f x 2

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 0 0 1 1 0 2

2 1 0

Mu

ltip

lexo

r

f

01 xxx

0 1 2 3 4 5 6 7

0

1

Figura 5.40 Función de 3 variables sintetizada mediante unmultiplexor de 8 canales

Page 32: diseño digital 5

200 Diseño digital________________________________________________________________________________

Llegados a este punto, una pregunta que podemos hacernos es si es posible implementarfunciones de n variables mediante multiplexores con menos de n entradas de control. Larespuesta es afirmativa, aunque para ello será necesario en general añadir algún módulo oconjunto de puertas.

Vamos a implementar la función f mediante un multiplexor de 4 canales. Para ello aplicaremos af el teorema de Shanon, extrayendo por ejemplo las variables x2 y x1

f (x2,x1,x0) = x 2x 1 f (0,0,x0) + x 2x1 f (0,1,x0) + x2x 1 f (1,0,x0) + x2x1f (1,1,x0 )

Vemos que la expresión resultante incluye los 4 minterms de las variables extraídas (x2 y x1) ycuatro funciones residuales de la variable restante (x0). Estas funciones pueden evaluarsefácilmente

f (0,0,x0) = f0( x0 )= 0

f (0,1,x0 ) = f1(x0) = x 0f (1,0,x0) = f2( x0 )= x0

f (1,1,x0 )= f3(x0 )= x 0

Luego una realización de la función mediante un multiplexor de 4 canales sería la mostrada en lafigura 5.41 donde se ha conectado las variables x2 y x1 a las entradas de selección y las funcionesresiduales fi(x0) a cada uno de los canales.

Mu

ltip

lexo

r

0

1 0

f

12 xx

x

0

1

2

3

00 0 0 0 1 1 1 1

x 1 x0 f x 2

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 0 0 1 1 0

Figura 5.41 Función de 3 variables sintetizada con un multiplexor de 4 canales

En general las funciones residuales pueden obtenerse mediante puertas lógicas o bien mediantemultiplexores. La figura 5.42 muestra una realización de f utilizando un multiplexor de 2 canalesy puertas

Page 33: diseño digital 5

Diseño de circuitos combinacionales 201________________________________________________________________________________

f ( x2 ,x1,x0 ) == x 1 f ( x2 ,0,x0 ) + x1 f (x2,1,x0 )=

= x 1( x2x0 )+ x1(x 0)

Mu

ltip

lexo

r

f

1

2

x

x0

0x

1

Figura 5.42 Función de 3 variables sintetizada con un multiplexor de 2 canales

_________________________________________________________________________________

Ejercicio 5.9

Obtenga la implementación mediante multiplexores de la función del ejemplo 5.9. Hágalo conun multiplexor de 4 canales, usando como variables de selección x1 y x0. Inténtelo tambiénusando x2 con un multiplexor de 2 canales. Discuta el efecto de la elección de variables deselección sobre la realización que de ella se deriva.

_________________________________________________________________________________

El procedimiento seguido en el ejemplo 5.9 puede expresarse de forma general: una función lógica den variables se puede sintetizar mediante un multiplexor de 2p canales (p•n) sin más que utilizar pvariables como variables de selección, atacando las entradas del multiplexor mediante 2p funcionesresiduales de las n-p variables restantes.

0

1

p

p-1 1 0

Mu

ltip

lexo

r

2 -1

...

p-1 1 0xx

p2 -1

x...

pxn-1x ...( )

f

0f

pxn-1x ...( )1f

pxn-1x ...( )

n-1x ...( )f 1 0x x

Figura 5.43 Función de n variables sintetizada con un multiplexor de 2p

canales

Es claro que la complejidad del circuito resultante y por tanto el coste de su implementacióndependen de qué variables se utilicen como variables de control y cuáles se utilicen para las funciones

Page 34: diseño digital 5

202 Diseño digital________________________________________________________________________________

residuales. Para decidir qué partición de variables es óptima desde este punto de vista en general esnecesario analizar cada una de las particiones posibles y simplificar las funciones residuales.

La implementación a base de multiplexores realizados mediante redes de interruptores (ver figura5.23.b) se adapta particularmente bien a la metodología de diseño propuesta. Recordemos que sufuncionamiento es muy sencillo: cada combinación de valores en las entradas de selección (aplicadasa las puertas de los transistores) hace conducir a los transistores de una y sólo una de las ramas, con loque se transmite a la salida el valor lógico presente en su entrada y se ignoran los demás. La figura5.44.a muestra la utilización de una red de interruptores (equivalente a un multiplexor de 4 canales)para sintetizar la función del ejemplo 5.9.

x2 x1x2 x1

x0

f

a)b)

x0

x0

0

x2 x1x2 x1

x0

x0

0

f

Figura 5.44 Función de 3 variables sintetizada con redes de interruptores

Una particularidad del diseño basado en redes de interruptores es que con frecuencia es posiblereducir el número de ramas y transistores necesarios para implementar una función. De hecho sólo esnecesario asegurar que para cada combinación de las variables de selección conduzca únicamente unade las ramas. Así en la función de nuestro ejemplo podemos agrupar los términos cuya entrada sea lamisma

f (x2,x1,x0) = x 2x 1(0)+ x 2x1( x 0 )+ x2x 1(x0) + x2x1(x 0 )== x 2x 1(0)+ x1(x 0) + x2x 1( x0 )

resultado que conduce directamente a la estructura en tres ramas de la figura 5.44.b, donde podemosobservar una significativa reducción del número de transistores necesarios.

5.4.2 Diseño combinacional con decodificadores

Al presentar los decodificadores binarios se incidía en el hecho de que cada una de las salidascoincide algebraicamente con un minterm diferente de las variables de entrada

Page 35: diseño digital 5

Diseño de circuitos combinacionales 203________________________________________________________________________________

yi = E⋅ mi ( x) 0≤ i ≤ 2n −1

Por tanto es inmediato sintetizar directamente cualquier función de n variables mediante undecodificador n:2n y una puerta OR que agrupe las salidas correspondientes a los minterms queaparecen en la expresión canónica como suma de productos de la función.

Veamos por ejemplo la implementación de un generador de un bit de paridad par para un código de 3bits. Su tabla de verdad y el mapa de Karnaugh se dan en la figura 5.45, donde puede observarse queesta función no admite simplificación.

0 0 0 0 1 1 1 1

b c f a

0 0 1 1 0 0 1 1

0 1 1 0 1 0 0 1

0 1 0 1 0 1 0 1

00 01 11 10

0

1

a\bc

0 1 0 1

1 0 1 0

Figura 5.45 Función de paridad par para tres bits

La figura 5.46.a muestra la implementación de la función de paridad mediante un decodificadorbinario 3:8 y una puerta OR, mientras que la figura 5.46.b lo hace utilizando un decodificador 3:8 consalidas activas con nivel bajo.

E

De

cod

ifica

do

r

f

0 1 2 3 4 5 6 7

b)a)

0 1 2

c b a

E

De

cod

ifica

do

r

f

0 1 2 3 4 5 6 7

0 1 2

c b a

Figura 5.46 Función de paridad par realizada mediante decodificadores 3:8

Page 36: diseño digital 5

204 Diseño digital________________________________________________________________________________

5.5 Diseño combinacional con módulos programables

En este apartado se presentan dos estructuras estándar más, la memoria de sólo lectura (ROM, ReadOnly Memory) y la matriz lógica programable (PLA, Programmable Logic Array), utilizadas confrecuencia para implementar funciones lógicas de complejidad apreciable, es decir, con un número devariables mediano o alto.

Como se verá más adelante estas estructuras presentan una serie de particularidades frente a losmódulos estándar vistos hasta ahora, tanto respecto a su tamaño habitual (nº de entradas y/o desalidas) como respecto al método de trabajo con ellas (es necesario programarlas, es decir, fijar sucontenido, antes de utilizarlas), que justifican el tratamiento aparte que se les da en este texto.

5.5.1 Diseño combinacional basado en ROM

Una ROM de 2nx k bits es un circuito lógico combinacional con n entradas y k salidas queimplementa k funciones lógicas de n variables. Como ya es habitual, el circuito puede disponertambién de entrada(s) adicional(es) de habilitación. La figura 5.47 muestra el esquema genérico deuna ROM junto con una descripción de su funcionamiento.

ROM 2 x kn

kz

nx

E

zi = f i (xn−1,..,x1,x0 ) = f i ( j)mj (x )j =0

2n−1

0 ≤i ≤ k− 1

Figura 5.47 Estructura externa y funcionamiento de una memoria ROM de 2nx k bits

La figura 5.48 muestra la posible estructura interna de una ROM de 2nx k bits, donde puede verse queésta consta de dos módulos o matrices: siguiendo el camino entrada-salida nos encontramos primerocon un decodificador, es decir con una etapa o matriz de 2n puertas AND que realiza todos losproductos (minterms) posibles con las variables de entrada, y luego con una etapa o matriz de kpuertas OR, que permite obtener cada una de las salidas como la suma lógica de los minterms que aellas se conecten.

La estructura descrita coincide formalmente con una red AND-OR de dos niveles mediante la cual sepueden implementar de forma canónica funciones lógicas cualesquiera. También podemos asociar

Page 37: diseño digital 5

Diseño de circuitos combinacionales 205________________________________________________________________________________

fácilmente la estructura de una ROM con el método de realización de funciones con decodificadoresy puertas descrito en el apartado 5.4.2.

01

2

nn-1

1

0

E

De

cod

ifica

do

r

2 -1

... ..

.

x

n-1

1

0x

Matriz OR

x

...

z

k-1

1

0z

z

Figura 5.48 Estructura interna de una ROM de 2nx k bits

Por otra parte es posible interpretar el funcionamiento de una ROM en términos de memoria: unaROM almacena un vector (palabra) de k bits en cada una de las 2n salidas del decodificador(posiciones de memoria), de manera que cada combinación de entrada (dirección) implica leer, esdecir, obtener a la salida la palabra almacenada en la posición de memoria correspondiente. Desdeeste punto de vista la capacidad total de una ROM es de 2nx k bits (2n palabras x k bits/palabra). Elejemplo 5.10 ilustra los conceptos presentados para el caso de una ROM de muy pequeñasdimensiones.

Ejemplo 5.10

El esquema de la figura 5.49.a corresponde a una ROM de 4x4 bits. El esquema de la figura5.49.b corresponde al mismo circuito utilizando una representación abreviada para la matriz OR(que no implica necesariamente utilizar funciones cableadas).

0

1

21

0

De

cod

ifica

do

r

x

1

0x

0 1 2z z z

3

3z

0

1

21

0

De

cod

ifica

do

r

x

1

0x

0 1 2z z z

3

3z

b)a)

Figura 5.49 ROM de 4x4 bits realizada con puertas

Page 38: diseño digital 5

206 Diseño digital________________________________________________________________________________

Las cuatro funciones de dos variables realizadas por el circuito vienen determinadas por lasconexiones realizadas en la matriz OR; así una conexión a una puerta OR implica un minterm enla expresión canónica SoP de la función correspondiente o, equivalentemente, un "1" en su tablade verdad, tal como se muestra en la figura 5.52.

X1 X0 Z0 Z1 Z2 Z3

0011

0101

1010

1110

0110

1001

PalabrasDirecciones

z0 = m0 + m2 = x 1x 0 + x1x 0 = x 0

z1 = m0 + m1 + m2 = x 1x 0 + x 1x0 + x1x 0 = x1x0

z2 = m1 + m2 = x 1x0 + x1x 0 = x1 ⊕ x0

z3 = m0 + m3 = x 1x 0 + x1x0 = x1 ⊕ x0

Figura 5.50 Funciones implementadas por el circuito del ejemplo 5.10

La interpretación del circuito como memoria es también inmediata puesto que hay cuatroposiciones de memoria que almacenan palabras de 4 bits. Así por ejemplo la combinación deentrada x1=1, x0=0 (dirección 10) provoca la salida z0=1, z1=1, z2=1, z3=0, es decir la lectura dela palabra contenida en la penúltima posición de memoria (1110).

La figura 5.51 muestra una posible realización mediante transistores del circuito de nuestroejemplo. Concretamente se utiliza una estructura en forma de dos bloques o matrices de puertaspseudo-NMOS.

Aparentemente esta ROM consta de dos matrices de puertas tipo NOR (y no AND-OR), aunquesi se realiza un análisis menos superficial puede verse que las cuatro salidas de la primera matrizNOR (A, B, C, D) coinciden con los cuatro minterms de las variables de entrada, con lo que éstaequivale desde el punto de vista funcional a un decodificador

A= x1 + x0 = x 1x 0 = m0

B= x1 + x 0 = x 1x0 = m1

C = x 1 + x0 = x1x 0 = m2

D= x 1 + x 0 = x1x0 = m3

Por otra parte la segunda matriz consta de puertas NOR seguidas de inversores, con lo queequivale funcionalmente a una matriz OR: la presencia de un transistor en una puerta NORequivale a un minterm en la expresión canónica de la función de salida correspondiente y a un"1" en su tabla de verdad.

Page 39: diseño digital 5

Diseño de circuitos combinacionales 207________________________________________________________________________________

V DD

A

B

C

D

0 1 2z z z

3zx1 0x

Figura 5.51 ROM del ejemplo 5.10 realizada con tecnología pseudo-NMOS

_________________________________________________________________________________

Es evidente que el contenido de una memoria ROM es fijo durante su utilización como módulo dentrode un circuito digital, pudiéndose distinguir diversos tipos en función de quién graba o en quémomento se fija dicho contenido. Así, suele utilizarse la denominación ROM o ROM programada pormáscara cuando el contenido ha sido fijado durante el proceso de fabricación, y la denominaciónPROM o FPROM (Field Programmable ROM) cuando es el mismo usuario el encargado de fijarlo apartir de una estructura (normalmente un circuito integrado) acabada pero "vacía".

A su vez pueden distinguirse dos grandes grupos entre las memorias ROM programables: aquéllascuyo procedimiento de grabación es irreversible y las denominadas EPROM (Erasable PROM), cuyocontenido puede ser grabado y borrado varias veces. En estas últimas el procedimiento mástradicional de borrado es la exposición a luz ultravioleta, aunque también las hay borrableseléctricamente (EEPROM, Electrically Erasable PROM).

La capacidad de las memorias ROM disponibles a nivel comercial puede ser bastante grande. Porejemplo, una ROM de 64Kx 4 permite implementar hasta cuatro funciones de 16 variables, por lo quesu eventual programación implica dar el valor "0" o "1" a un total de 218 bits. Ello justifica lanecesidad de utilizar herramientas informáticas que ayuden en la tarea de programar el contenido deeste tipo de memorias.

Page 40: diseño digital 5

208 Diseño digital________________________________________________________________________________

La implementación de funciones lógicas mediante ROM supone almacenar sus tablas de verdadcompletas, lo cual a primera vista parece una estrategia de diseño exagerada. Sin embargo, cuando lafunción es compleja y su realización mediante módulos estándar más pequeños se hace complicada, lautilización de ROM u otros módulos lógicos programables puede suponer ventajas:

a) El coste de diseño de la estructura de una memoria ROM es bajo puesto que éstaes conocida y regular. Asimismo, un mismo tipo de circuito ROM puede utilizarse en multitudde aplicaciones distintas, por lo que suele ser fabricado como circuito integrado en grandescantidades, reduciendo su coste individual.

b) El coste de la grabación de una memoria ROM también es reducido, tanto en elcaso de ser realizada por parte del fabricante como por parte del usuario. Como el contenido afijar son tablas de verdad de funciones, basta con utilizar métodos de descripción y/o diseño detipo "canónico", por tanto formalmente sencillos y de coste acotado.

c) El coste de un sistema combinacional realizado con circuitos integrados estándardepende en gran medida del número de dichos circuitos que intervienen. La utilización deROM a menudo disminuye dicho número.

5.5.2 Diseño combinacional con PLA

Una matriz lógica programable (PLA) de nx r x k es un circuito lógico combinacional con n entradas yk salidas que implementa k funciones lógicas de n variables utilizando r productos, siendo r<2n.Adicionalmente el circuito puede disponer de entrada(s) de habilitación.

kz

nx

2n Matriz AND

r Matriz OR

Figura 5.52 Esquema genérico de una PLA

La figura 5.52 muestra la estructura interna genérica de una PLA; allí vemos que ésta se compone detres etapas: n inversores (que permiten disponer de las variables de entrada directas y negadas), rpuertas AND (que realizan productos de las variables de entrada) y k puertas OR (que realizan sumasde los productos anteriores). Una PLA realiza por tanto una implementación en forma de suma deproductos no canónica de k funciones lógicas.

Page 41: diseño digital 5

Diseño de circuitos combinacionales 209________________________________________________________________________________

Ejemplo 5.11

Calcular el tamaño mínimo que debe tener una PLA para implementar un multiplicador de 2números enteros codificados en binario de 2 bits.

El número de entradas está fijado por el enunciado, a 4, 2 para cada entrada. El número de salidasserá también de 4, ya que el valor máximo para el resultado es de 3x3=9 (1001). Para saber elnúmero de productos necesario, hay que simplificar las salidas en forma de suma de productos.Dadas las expresiones simplificadas:

p3 = a1a0b1b0

p2 = a1b1b 0 + a1a 0b1b0

p1 = a 1a0b1 + a1b 1b0 + a1a 0b1b0 + a0b1b 0p0 = a0b0

Observamos que hacen falta 7 productos. Por tanto, el tamaño mínimo para la PLA será de4x7x4. Podemos observar dicha implementación, representada de forma compacta en la figura5.53.

a0

a1

b0

b1

p0

p3

p2

p1

Figura 5.53 Esquema de la PLA del ejemplo 5.11

_________________________________________________________________________________

Ejercicio 5.10

Discuta qué tamaño mínimo debe tener una PLA que implemente la función suma de dosnúmeros enteros de 2 bits codificados en binario.

_________________________________________________________________________________

Page 42: diseño digital 5

210 Diseño digital________________________________________________________________________________

Nótese que en una PLA, a diferencia de una ROM, no se realizan todos los 2n productos posibles delas n variables de entrada (minterms) sino solamente un máximo de r, siendo por tanto la PLA unmódulo de menor tamaño mediante el cual se pueden implementar k funciones de n variables siemprey cuando en las expresiones algebraicas simplificadas de estas funciones no aparezcan en total más der productos. Esta es una diferencia sustancial con respecto a las memorias ROM, que almacenan latabla de verdad completa. En el caso de que el número de productos r a utilizar sea pequeño frente a2n, la reducción en tamaño utilizando una PLA en lugar de una ROM puede ser importante.

De forma análoga a las memorias ROM, las PLA pueden ser programables o bien por el fabricante(por máscara) o bien directamente por el usuario (en campo), siendo estas últimas las más utilizadas.Respecto a la programabilidad de la estructura, a priori pueden encontrarse dos variantes: a) PLA conmatriz AND programable y matriz OR programable, b) matriz AND programable y matriz OR fija. Elprimer caso suele denominarse genéricamente PLA, mientras que el segundo caso suele denominarsePAL (nombre comercial patentado por Monolithic Memories Inc). Un tercer caso, matriz AND fija ymatriz OR programable, coincide de facto con una estructura ya vista anteriormente: la memoriaROM.

Descripción y edición

del diseño

Compilación y optimización

Mezcla

Simulación lógica y/o eléctrica

Elección del dispositivo

Librerías o catálogos de los

fabricantes

Generación del conexionado

óptimo

Tablas de verdad, expresiones algebraicas,

cronogramas, etc.

Otros diseños

Grabador

Figura 5.54 Entorno informático de diseño y grabación de móduloslógicos programables

Page 43: diseño digital 5

Diseño de circuitos combinacionales 211________________________________________________________________________________

Como se ha razonado más arriba, las ventajas de las PLA frente a las ROM derivan básicamente de sumenor tamaño, mientras que sus inconvenientes provienen de la limitación del número de productos,que obliga a simplificar conjuntamente las funciones y que hace que no todos los conjuntos de kfunciones de n variables puedan implementarse mediante una PLA de 2nx r x k.

Finalmente, la necesidad de utilizar herramientas informáticas de ayuda al diseño cuando se trabajacon PLA, PAL u otros dispositivos lógicos programables no canónicos es tanto o más evidente quecuando se trabaja con ROM. Estas herramientas suelen constar de una parte de hardware(normalmente el dispositivo grabador) más un software de control, descripción y depuración deldiseño. El diagrama de bloques de la figura 5.54 muestra un entorno genérico de diseño y grabaciónde dispositivos lógicos programables.

5.6 Cuestiones y problemas

Cuestiones

C5.1 Discuta las ventajas e inconvenientes del diseño modular frente al de dos niveles. Nota: paraimplementar un sumador de dos números de tres bits a dos niveles hacen falta: 3And2 (3 puertasAND de 2 entradas), 6And3, 18And4, 4And5, 1Or2, 1Or6, 1Or7 1 Or16 y 6 inversores. Compare losdiseños a nivel de puertas y transistores usados(CMOS) así como del retardo asociado.

C5.2 Razone el interés del uso de módulos con salidas tri-state en el caso de conexiones a líneas detransmisión compartidas (comúnmente llamadas buses), donde más de un módulo conectado a ellaspuede intentar forzar un "0" o un "1" lógicos.

C5.3 Analice la siguiente estructura para E=1. Si las entradas son números enteros codificados enbinario, ¿en qué código quedan a la salida?

x2

Co

difi

cad

or

x1x0

E

x3 y1

y02

y

y

3y

Dec

odifi

cado

r

1y0

E

x1

x0

Page 44: diseño digital 5

212 Diseño digital________________________________________________________________________________

Generalice esta estructura con un codificador, un decodificador, y una matriz de conexiones, paratraducir entre cualesquiera dos códigos de n bits. ¿Qué modificaciones deberían hacerse para queel código de salida usara más bits de los necesarios (añadiera redundancia)?

C5.4 Analizce la expresión de funcionamiento para un multiplexor en función de los minterms de lasvariables de selección, dada en la sección 5.3.3.

y= E ximi (s)i =0

2n−1

Encuentre una expresión dual para un multiplexor con las salidas y entradas activas bajas, enfunción de los maxterms.

C5.5 Discuta el compromiso entre retardo asociado a una función combinacional y área de silicioocupada por el circuito correspondiente, para las dos implementaciones propuestas para el sumador(con y sin cálculo anticipado de acarreos).

C5.6 A partir de la descripción de la codificación en complemento a 2 dada en el apéndice A,proponga una estructura para un bloque sumador y restador en dicha codificación, usando módulospresentados en este capítulo.

a b

cBloques o

n

n n

c =(a)Ca2 + (b)Ca2 si s = 0

(a)Ca2 − (b)Ca2 si s = 1

o = 1 si existe desbordamiento

C5.7 Repita la cuestión 5.5, comparando esta vez las dos estrategias propuestas en el subapartado5.3.6 para encadenar comparadores.

C5.8 Evalue el interés del siguiente criterio para elegir las variables de selección en unaimplementación de función lógica con multiplexores: Tomar las variables que más veces aparezcanen la expresión simplificada de la función. Busque un ejemplo donde este criterio no sea el óptimopara minimizar las puertas adicionales necesarias.

C5.9 Proponga un método de implementación de funciones con decodificadores con salidas activasbajas y puertas AND, relacionado con la expresión canónica de producto de maxterms.

C5.10 Razone por qué con una PLA de nx rx k podría no ser posible realizar cualquier conjunto de kfunciones lógicas de n variables de entrada.

Page 45: diseño digital 5

Diseño de circuitos combinacionales 213________________________________________________________________________________

Problemas

P5.1 Para realizar un comparador de números enteros de 4 bits encadenable, se ha pensado en unaestructura modular como la de la figura. Diseñe los módulos M1. Diseñe, de forma análoga, otrocomparador, con las entradas y salidas de encadenamiento activas bajas.

M1 M1 M1M1

3a 3b2a 2b1a 1b0a 0b

A< BA= BA> BE <

E >

P5.2 Se desea diseñar un sistema cuya entrada A es un número entero de n cifras codificado en BCD.El sistema debe tener 4 salidas, que indiquen si dicho número es múltiplo de 2, de 3, de 4 y/o de 5.Diseñe el sistema de forma modular. Se recomienda empezar con un número concreto de cifras, ydespues generalízelo.

4 4 4

A n-1 A 1 A 0

D 2

D 5

D 4

D 3Bloque a diseñar

...

Di =1 si A = k ⋅i, con k = 0,1, 2,...

0 en otro caso

P5.3 Analice la siguiente estructura, suponiendo que los módulos están siempre habilitados (E=1), ysabiendo que el multiplexor cuádruple actúa como cuatro multiplexores con las mismas variables deselección. Obtener una implementación equivalente con puertas AND, OR y NOT.

yyyyyyyy

7

6

5

4

3

2

1

0

x 0x 1x 2

De

cod

ifica

do

r

E

z1

x 00x 01

x 10x 11

x 20

x 21

x 30

x 31

s

z0

z2

z3

E

Cu

ad

. M

ulti

ple

xora

b

c

d

o

a

b

c

z

x 0

x 1x 2x 3x 4

x 5x 6

x 7

s0s1s2

E

Mu

ltip

lexo

r

e f g

"0"

Page 46: diseño digital 5

214 Diseño digital________________________________________________________________________________

P5.4 Analice la función lógica que realiza el siguiente logigrama. Intente identificar bloquesrepetidos, para analizarlos por separado y después componer las funciones.

32

a 0

aa

a 1

z 0

z 1

b 1

b 0

2

3

bb

P5.5 Analice la función lógica realizada por el siguiente esquema de bloques. Encuentre unaespecificación de alto nivel (pensando en D y R como números enteros codificados en binario).Proponga una implementación alternativa con menos bloques y/o puertas.

yyyyyyyy

0

1

2

3

4

5

5

7

x 0x 1

x 2

De

cod

ifica

do

r

E

x 0

x 1x 2x 3

x 4

x 5x 6

x 7

E

Co

difi

cad

or

Bin

.

y 0y 1y 2

"0" "1"

A

B

S

Co

Ci

Su

ma

do

r

"1"

D0D1D2

D0

D1D2

R0R1R2

Page 47: diseño digital 5

Diseño de circuitos combinacionales 215________________________________________________________________________________

P5.6 Proponga dos realizaciones a nivel de transistores para un multiplexor de 8 canales sin entradasde habilitación, una usando puertas de transmisión CMOS y, la otra siguiendo el diseño CMOSconvencional (indicando tanto la red PMOS como la NMOS). Compare ambas realizaciones encuanto a complejidad, retardos, versatilidad del diseño, etc.

P 5.7 Implemente la función lógica f (a,b,c,d) = m(1,3,4,9,14,15)4∑ usando:

a) Un multiplexor de 8 canales.

b) Un multiplexor de 4 canales y puertas NOR.

P 5.8 Diseñe un sumador encadenable de 2 cifras en base 3 (x ∈ 0,1, 2{ }) codificadas en binarionatural, con multiplexores de 8 canales y puertas NAND.

P 5.9 Proponga un encadenamiento para ROMs de 8 palabras de 4 bits, usando multiplexores, paraimplementar 4 funciones que dependen de las mismas 5 variables de entrada.

P 5.10 Dado el circuito de la figura, identifique qué módulo de los presentados en éste capítuloimplementa, y en que tecnologia. Encuentre la tabla de verdad de las funciones de salida.

Z1 Z2 Z3 Z4 Z5 Z6BA

VDDVDD

Page 48: diseño digital 5

216 Diseño digital________________________________________________________________________________

P 5.11 Evalue el tamaño mínimo que deben tener las matrices AND y OR de una PLA que permitaobtener como resultado el cuadrado, codificado en binario natural, de una cifra BCD. ¿Cuál deberíaser este tamaño si la entrada se codifica en BCD exceso 3?

P 5.12 Una cifra BCD está formada por los bits a1a0b1b0, de pesos 8,4,2,1 respectivamente. Se deseadiseñar un circuito combinacional que haga la comparación de a1a0 con b1b0 (entendidos comonúmeros binarios de 2 bits). Exprese las tres salidas del comparador, a>b, a=b y a<b, como sumamínima de productos. Diseñe el circuito usando multiplexores de 4 canales y puertas lógicas.Diséñelo encadenando 2 decodificadores de 3 entradas. Considere también la posibilidad derealizarlo utilizando un solo decodificador, aprovechando las inespecificaciones. ¿Qué dimensionesmínimas debería tener una PLA que permitiera implementar este circuito?