You are on page 1of 299

_________________________________________________________________________________7

Introducción

Introducción

En las últimas décadas hemos asistido a un rápido desarrollo de los sistemas electrónicos digitales,
origen y consecuencia del crecimiento de las redes de comunicaciones, de los sistemas de control y, en
particular, de la aparición y la utilización masiva de los ordenadores.

El crecimiento en complejidad de los circuitos y los sistemas digitales ha hecho posible el desarrollo
de sistemas con unas potencialidades impensables unos años atrás. En particular, el número de
transistores en un circuito integrado ha crecido de forma espectacular en los últimos 30 años, por lo
que resulta arriesgado realizar previsiones sobre la evolución a largo plazo.

Simultáneamente con los avances tecnológicos, existe una creciente oferta de nuevas posibilidades que
obligan al diseñador de sistemas digitales a adaptar progresivamente sus estrategias de diseño a dichas
novedades.

En una primera época, sobre los años 60, los ingenieros utilizaban en sus diseños circuitos integrados
digitales sencillos, fabricados masivamente, que debían ser interconectados sobre una placa de forma
adecuada para lograr la funcionalidad requerida. Estos circuitos incluían un pequeño número de puertas
lógicas (del orden de 10) y constituyen lo que hoy día se denominan circuitos de pequeña escala de
integración (SSI, small scale integration).

Los circuitos integrados digitales disponibles comercialmente fueron sofisticándose a medida que era
posible integrar un mayor de número de transistores, y por tanto de puertas lógicas, sobre un mismo
sustrato, incluyendo una serie de bloques o módulos lógicos estándar de cierta complejidad. Se habla
entonces de circuitos de escala de integración media (MSI, medium scale integration).

Posteriormente, la posiblidad de integrar varios miles de puertas en un solo circuito integrado, lo que
se ha dado en denominar alta escala de integración (LSI large scale integration), y la aparición de
circuitos de aplicación general cuya funcionalidad concreta depende de una programación por parte del
usuario obligaron a un cambio del modo de abordar el diseño de los sistemas digitales complejos. Un
ejemplo de estructura de este tipo es el microprocesador, un potente circuito digital de uso general cuya
funcionalidad precisa se establece mediante programación. De esta forma un mismo circuito puede ser
utilizado para diferentes aplicaciones sin más que modificar el programa que lo controla.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
8 Diseño digital
_________________________________________________________________________________

Finalmente, desde hace algunos años es posible integrar decenas de miles de puertas en un único
circuito integrado, lo que da lugar a la muy alta escala de integración (VLSI very large scale
integration).

Dentro del contexto VLSI han hecho su aparición nuevas posiblidades de diseño. Por ejemplo los
circuitos integrados de aplicación específica (ASIC Application Specific Integrated Circuits), circuitos
realizados a medida de un usuario y una aplicación concretos, cuya utilización es cada vez más general.
Dentro del concepto genérico de ASIC existen comercialmente multitud de variantes, que podemos
clasificar en dos grandes grupos:

1) Circuitos lógicos programables (PLD, programmable logic devices): El circuito integrado


comercializado por el fabricante dispone de un conjunto de puertas y módulos lógicos estándar,
cuya interconexión no está definida. Estas interconexiones pueden ser programadas a la medida de
una funcionalidad concreta mediante la utilización de un equipo de desarrollo (software+hardware)
adecuado. Dentro de este grupo podemos incluir multitud de estructuras comerciales: PROM
(programmable read only memory), PAL (programmable array logic), GAL (general array logic),
FPGA (field programmable gate array), etc.

2) Circuitos integrados fabricados a medida (custom): El usuario tiene la posibilidad de


interaccionar directamente con el fabricante de circuitos integrados, de forma que el producto final
realizado por éste último es, incluyendo una parte del proceso de fabricación, específico para un
usuario y una aplicación concretos. Dentro de este grupo podemos distinguir dos modalidades. Por
un lado los circuitos semi-custom, en los cuales sólo algunas etapas de su proceso de fabricación
son diseñadas de forma específica, y por el otro los full-custom, donde el diseño y la fabricación
son totalmente específicos para un usuario y una aplicación. A su vez, dentro del semi-custom hay
diversas posibilidades, desde el gate array (circuito integrado con una disposición regular de
puertas, donde quedan por realizar físicamente las pistas de interconexión y los contactos) hasta las
standard cells (circuito integrado a realizar en su totalidad a partir de una librería de módulos
predefinidos ofrecida por el fabricante más las interconexiones necesarias).

En resumen, el abanico de soluciones posibles para llevar a término el diseño de un circuito digital es
muy amplio: utilización de circuitos integrados estándar SSI y MSI, sistemas basados en
microprocesadores, circuitos lógicos programables y circuitos tipo custom. Entre ellas el diseñador
debe elegir en función de diversas variables: número de unidades a producir, coste por unidad,
complejidad y coste del diseño, confidencialidad del diseño, urgencia, disponibilidad del equipo
necesario para el desarrollo, experiencia previa, etc.

En este contexto complejo se inscribe este libro, un objetivo del cual es ofrecer de forma clara y
ordenada los conceptos abstractos del diseño digital, imprescindibles sea cual sea la alternativa
finalmente escogida. Adicionalmente se introduce al lector en la realización, tanto a nivel eléctrico
como físico, de circuitos digitales en las tecnologías nMOS y CMOS, proporcionándole con ello las
herramientas básicas necesarias parar abordar el diseño de circuitos integrados VLSI CMOS.

© los autores, 1998; © Edicions UPC, 1998.


_________________________________________________________________________________9
Introducción

La inclusión en un mismo texto de aspectos lógicos, eléctricos y tecnológicos, más la interrelación


entre ellos, es uno de los aspectos originales de este texto. Son numerosos los textos de diseño digital,
muchos de ellos excelentes, enfocados tanto a los conceptos más abstractos como al uso de circuitos
estándar. Asimismo es posible encontrar algunos excelentes textos enfocados al diseño de circuitos
integrados CMOS. Sin embargo, son más bien escasos los libros que, como éste, combinan los dos
aspectos.

Este libro es el resultado de la experiencia acumulada durante varios años en la impartición de un curso
introductorio de electrónica digital en la Universidad Politécnica de Catalunya a alumnos de primer
curso en las titulaciones de Ingeniería de Telecomunicación e Ingeniería Electrónica. El material
presentado se cubre en su práctica totalidad en un semestre de 60 horas de clase de teoría y problemas,
en paralelo con un curso de laboratorio. Los autores han utilizado material generado por el colectivo de
profesores que en uno u otro momento han impartido la asignatura y quieren hacer constar aquí su
agradecimiento a todos ellos.

Se ha hecho un esfuerzo para generar un texto autocontenido en el que los conocimientos previos
requeridos son muy escasos (únicamente a partir del capítulo 3 es necesario el conocimiento de los
conceptos más elementales de análisis de circuitos electrónicos). Se ha intentado que el libro sea una
herramienta útil de estudio personal. También ha sido preocupación constante de los autores no
elaborar un texto enciclopédico o exhaustivo, sino por el contrario conseguir un libro conciso que
hiciera hincapié en los aspectos fundamentales.

Se ha cuidado de forma especial la participación del lector en el proceso de aprendizaje, incluyendo


diferentes elementos: ejemplos resueltos (incluidos en el texto), ejercicios propuestos (también
incluidos en el texto), y cuestiones y problemas (al final de cada capítulo). Estos elementos no son
complementarios, sino parte esencial del libro. En ellos no solamente se insiste en los aspectos
mecánicos del diseño, sino que se intenta motivar al lector para reelaborar en profundidad los
conceptos, al tiempo que se plantean cuestiones complementarias que facilitan una profundización en
lo aprendido.

R. Alcubilla

J. Pons

D. Bardés

Barcelona, junio de 1995.

© los autores, 1998; © Edicions UPC, 1998.


Índice 11
_________________________________________________________________________________

Índice

1 Primera aproximación a los sistemas digitales.....................................................15

1.1 Definiciones.............................................................................................................15
1.2 Sistemas digitales combinacionales y secuenciales...........................................................17
1.3 Codificación.............................................................................................................21
1.3.1 Codificación de números enteros ........................................................................23
1.3.2 Códigos alfanuméricos.....................................................................................27
1.3.3 Códigos detectores de errores .............................................................................29
1.5 Cuestiones y problemas .............................................................................................30

2 Fundamentos abstractos del diseño digital ...........................................................33

2.1 Funciones lógicas .....................................................................................................33


2.1.1 Representación mediante tabla de verdad...............................................................34
2.1.2 Representación mediante tabla de Karnaugh..........................................................34
2.1.3 Funciones lógicas de una y dos variables .............................................................37
2.1.4 Funciones incompletamente especificadas ............................................................40
2.1.5 Composición de funciones lógicas......................................................................41
2.2 Algebra de Boole.......................................................................................................42
2.2.1 Postulados del Algebra de Boole......................................................................... 42
2.2.2 Teoremas del Algebra de Boole .........................................................................43
2.2.3 Simplificación algebraica .................................................................................45
2.3 Formas canónicas de una función lógica ........................................................................48
2.3.1 Minterms y Maxterms .....................................................................................48
2.3.2 Teorema de Shannon........................................................................................49
2.3.3 Formas canónicas............................................................................................50
2.3.4 Grupo completo de funciones ............................................................................53
2.3.5 Realización de logigramas.................................................................................54
2.4 Minimización de funciones lógicas ...............................................................................57
2.4.1 Consideraciones previas....................................................................................57

© los autores, 1998; © Edicions UPC, 1998.


12 Diseño digital
_________________________________________________________________________________

2.4.2 Método de Karnaugh........................................................................................59


2.4.3 Minimización en forma de producto de sumas .......................................................61
2.4.4 Minimización de funciones incompletamente especificadas......................................62
2.4.5 Limitaciones del método de Karnaugh .................................................................63
2.5 Cuestiones y problemas .............................................................................................65

3 Fundamentos circuitales del diseño digital ...........................................................73

3.1 Características eléctricas de las puertas lógicas ................................................................73


3.1.1 Curva de transferencia y niveles lógicos............................................................... 74
3.1.2 Márgenes de ruido ...........................................................................................75
3.1.3 Retardos de propagación ...................................................................................77
3.1.4 Potencia consumida.........................................................................................78
3.2 El transistor MOS.....................................................................................................79
3.2.1 Estructura y funcionamiento básico.....................................................................79
3.2.2 Efectos de segundo orden...................................................................................85
3.3 Puertas lógicas NMOS...............................................................................................85
3.3.1 Inversor NMOS con carga de vaciamiento............................................................85
3.3.2 Puertas básicas NMOS.....................................................................................91
3.4 Puertas de transmisión ...............................................................................................97
3.4.1 Transistor de paso NMOS.................................................................................98
3.4.2 Transistor de paso PMOS............................................................................... 101
3.4.3 La puerta de transmisión CMOS ...................................................................... 101
3.5 Puertas lógicas CMOS............................................................................................. 103
3.5.1 Inversor CMOS............................................................................................ 103
3.5.2 Puertas básicas CMOS................................................................................... 110
3.5.3 Otras estructuras ........................................................................................... 113
3.6 Cuestiones y problemas ........................................................................................... 114

4 Fundamentos tecnológicos del diseño digital ...................................................... 123

4.1 Etapas básicas de fabricación de circuitos integrados....................................................... 123


4.1.1 Deposición de capas....................................................................................... 124
4.1.2 Oxidación térmica ......................................................................................... 125
4.1.3 Fotolitografía............................................................................................... 126
4.1.4 Difusión de impurezas.................................................................................... 128
4.1.5 Implantación iónica ....................................................................................... 129
4.1.6 Fabricación de un transistor MOS con puerta de polisilicio ................................... 130
4.2 Procesos CMOS y layouts........................................................................................ 132
4.2.1 Fabricación de un inversor CMOS.................................................................... 132
4.2.2 Layouts....................................................................................................... 136
4.2.3 Reglas de diseño de layouts............................................................................. 142

© los autores, 1998; © Edicions UPC, 1998.


Índice 13
_________________________________________________________________________________

4.3 Caracterización eléctrica de circuitos integrados MOS..................................................... 147


4.3.1 Estimación de resistencias............................................................................... 147
4.3.2 Estimación de capacidades ............................................................................... 150
4.4 Cálculo simplificado de retardos de propagación ............................................................ 154
4.4.1 Retardos en un inversor .................................................................................. 155
4.4.2 Retardos en una cadena de inversores ................................................................. 157
4.4.3 Retardo en una cadena de interruptores............................................................... 159
4.4.4 Retardos en puertas CMOS cualesquiera ............................................................ 161
4.5 Cuestiones y problemas ........................................................................................... 163

5 Diseño de circuitos combinacionales .................................................................. 169

5.1 ¿Por qué la realización a dos niveles no resuelve el problema del diseño combinacional? ....... 169
5.2 Diseño con redes modulares....................................................................................... 172
5.2.1 Construcción de redes modulares ...................................................................... 173
5.2.2 Análisis y síntesis de redes modulares ............................................................... 176
5.3 Módulos combinacionales estándar ............................................................................. 179
5.3.1 Decodificadores............................................................................................. 179
5.3.2 Codificadores................................................................................................ 182
5.3.3 Multiplexores............................................................................................... 185
5.3.4 Demultiplexores ........................................................................................... 188
5.3.5 Sumadores ................................................................................................... 190
5.3.6 Comparadores............................................................................................... 194
5.3.7 Unidades aritmético-lógicas............................................................................. 197
5.4 Diseño combinacional basado en módulos universales .................................................... 198
5.4.1 Diseño combinacional con multiplexores........................................................... 198
5.4.2 Diseño combinacional con decodificadores.......................................................... 202
5.5 Diseño combinacional con módulos programables......................................................... 204
5.5.1 Diseño combinacional basado en ROM ............................................................. 204
5.5.2 Diseño combinacional con PLA....................................................................... 208
5.6 Cuestiones y problemas ........................................................................................... 210

6 Introducción a los sistemas secuenciales ............................................................. 217

6.1 Especificación de sistemas secuenciales ....................................................................... 217


6.1.1 Concepto de estado ........................................................................................ 218
6.1.2 Especificación basada en el estado..................................................................... 220
6.1.3 Diagrama de estados....................................................................................... 222
6.1.4 Equivalencia de estados................................................................................... 226
6.2 Sincronización de sistemas secuenciales....................................................................... 230
6.2.1 Sistemas secuenciales síncronos y asíncronos..................................................... 231
6.2.2 Implementación canónica de un sistema secuencial síncrono.................................. 234

© los autores, 1998; © Edicions UPC, 1998.


14 Diseño digital
_________________________________________________________________________________

6.2.3 Sincronización con reloj no ideal...................................................................... 237


6.3 Biestables.............................................................................................................. 239
6.3.1 Biestable D.................................................................................................. 240
6.3.2 Biestable JK................................................................................................. 241
6.3.3 Biestable T .................................................................................................. 243
6.4 Realización de biestables .......................................................................................... 244
6.4.1 Biestable SR asíncrono .................................................................................. 244
6.4.2 Biestables síncronizados por nivel .................................................................... 246
6.4.3 Biestables sincronizados por flanco................................................................... 249
6.5 Cuestiones y problemas ........................................................................................... 250

7 Diseño de circuitos secuenciales síncronos .......................................................... 257

7.1 Diseño canónico de circuitos secuenciales síncronos....................................................... 257


7.1.1 Método sistemático de análisis......................................................................... 257
7.1.2 Método sistemático de síntesis......................................................................... 264
7.2 Módulos secuenciales............................................................................................... 270
7.2.1 Registros..................................................................................................... 271
7.2.2 Registros de desplazamiento ............................................................................ 273
7.2.3 Contadores................................................................................................... 276
7.3 Dispositivos lógicos programables ............................................................................. 280
7.4 Memorias RAM ..................................................................................................... 284
7.4.1 Descripción genérica...................................................................................... 284
7.4.2 Memorias MOS dinámicas y estáticas ............................................................... 287
7.5 Cuestiones y problemas ........................................................................................... 291

Apéndice A Aritmética binaria ............................................................................... 301

Apéndice B Familias lógicas bipolares ................................................................... 307

Bibliografía ................................................................................................................. 311

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 15
_________________________________________________________________________________

Cap’tulo 1 Primera aproximaci—n a los sistemas digitales

Este cap’tulo pretende situar al lector en el campo de los sistemas electr—nicos digitales, introduciendo
algunos conceptos fundamentales de uso constante a lo largo de este texto. Para ello, el apartado 1.1
presenta un conjunto de definiciones que pemiten un uso preciso de la terminolog’a. El apartado 1.2
discute los conceptos de sistema combinacional y sistema secuencial. Por œltimo el apartado 1.3
introduce el concepto de codificaci—n.

1.1 Definiciones

Un sistema electr—nico digital es aquel que procesa se–ales elŽctricas digitales. Para el lector novel en
el ‡rea de ingenier’a es conveniente clarificar los significados precisos de cada uno de los tŽrminos de la
frase anterior.

Se entiende por sistema una entidad f’sica que recibe una serie de entradas o excitaciones y responde con
un conjunto de salidas. La figura 1.1 muestra la representaci—n genŽrica de un sistema.

n m
X Sistema Y

Figura 1.1 Sistema genŽrico

La n minœscula indica la existencia de n entradas y la m minœscula indica la existencia de un nœmero


m de salidas. Esta definici—n "a priori" no se limita a sistemas electr—nicos. Es igualmente aplicable a
sistemas mec‡nicos, biol—gicos, econ—micos, etc.

El comportamiento de un sistema estar‡ perfectamente determinado cuando se conozcan los valores de


las salidas para cada posible combinaci—n de valores de las entradas.

Entenderemos por se–al una magnitud f’sica variable con el tiempo que sirve de soporte a algœn tipo de
informaci—n. Se invita al lector a reflexionar sobre el hecho de que solamente las magnitudes f’sicas

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las
sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el
tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares
para su distribución y venta fuera del ámbito de la Unión Europea.
16 Dise–o digital
_________________________________________________________________________________

variables pueden soportar/transmitir alguna informaci—n. En el campo de la ingenier’a electr—nica las


se–ales habitualmente utilizadas son tensiones y corrientes.

Las se–ales elŽctricas se pueden dividir en dos categor’as distintas, las se–ales anal—gicas y las
digitales. Una se–al es anal—gica cuando puede tomar cualquier valor entre dos valores extremos. Una
se–al es digital o discreta cuando s—lo puede tomar un nœmero finito de valores fijos entre dos valores
extremos. En la figura 1.2 se muestran ejemplos de estos dos tipos de se–ales.

a) b)
s(t) s(t)

t t

Figura 1.2 a) Se–al anal—gica. b) Se–al digital

Veamos a continuaci—n un caso particular de sistema digital, el sistema l—gico. Un sistema l—gico
procesa se–ales l—gicas. Una se–al l—gica o binaria es aquella que solamente puede tomar dos valores
fijos. Las se–ales l—gicas son, por tanto, un caso particular de se–al digital as’ como el sistema l—gico
lo es de los sistemas digitales. Un ejemplo de se–al l—gica se muestra en la figura 1.3.

s(t)

Figura 1.3 Se–al l—gica

En este texto trataremos de forma intensiva con se–ales y sistemas de este tipo. Uno de los motivos
del interŽs particular en las se–ales y los sistemas l—gicos es la disponibilidad de dispositivos
electr—nicos capaces de funcionar en dos estados n’tidamente diferenciados.

En realidad resulta habitual, y as’ se har‡ en este texto, el emplear indistintamente los tŽrminos
"digital" y "l—gico" aplicados ya sea a sistemas, circuitos o se–ales. El motivo es que la
transformaci—n de se–ales digitales o discretas a se–ales l—gicas o binarias, y viceversa, es

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 17
_________________________________________________________________________________

extraordinariamente sencilla. Estas transformaciones se denominan respectivamente codificaci—n y


decodificaci—n. De estos aspectos nos ocuparemos con m‡s detalle en el apartado 1.3. La figura 1.4
muestra de forma esquem‡tica la relaci—n existente entre un sistema digital y uno l—gico.

Sistema
Codificador Decodificador
lógico

Sistema digital

Figura 1.4 Relaci—n entre un sistema digital y un sistema l—gico

1.2 Sistemas digitales combinacionales y secuenciales

Los sistemas digitales pueden dividirse en dos categor’as atendiendo a la influencia que tiene el factor
tiempo en su funcionamiento.

Sistemas digitales combinacionales son aquŽllos en los cuales las salidas en un instante de tiempo ti
dependen œnicamente del valor de las entradas en ese mismo instante. Se entiende, por tanto, que los
valores que hayan tomado las entradas y salidas con anterioridad, es decir, en t<ti, no ejercen ninguna
influencia sobre el valor de las salidas en ti.

n Sistema m
X Combinacional Y

Figura 1.5 Sistema combinacional

Por tanto en dichos sistemas

[
y(ti ) = F x ( ti ) ]
Como esta igualdad se cumple para cualquier valor de ti puede dejarse impl’cito el factor tiempo y
escribirse simplemente

y = F(x)

© los autores, 1998; © Edicions UPC, 1998.


18 Dise–o digital
_________________________________________________________________________________

Ejemplo 1.1

Supongamos un dep—sito dividido en 6 niveles numerados del 0 al 5. Queremos implementar una


alarma que se active cuando el nivel del l’quido que contiene sea o bien demasiado alto (>4) o bien
demasiado bajo (<2).

Evidentemente se trata de un sistema combinacional. La activaci—n o no de la alarma depende


exclusivamente del nivel del l’quido en cada momento. Los valores que haya podido tomar el nivel
con anterioridad no tienen influencia alguna en el resultado.

n m
X Alarma Y

Figura 1.6 Esquema del ejemplo 1.1

La entrada del sistema es el nivel del l’quido en el dep—sito y por tanto existen 6 valores posibles
de la entrada. An‡logamente s—lo pueden haber dos valores posibles de la salida: o bien la alarma
est‡ activada o bien no lo est‡.

X ∈ {0,1, 2, 3, 4, 5} Y ∈ {ON, OFF}

La funci—n Y = F( X), es decir, el valor de la salida para cada posible valor de la entrada, est‡
perfectamente determinada mediante la tabla siguiente

X Y
0 ON
1 ON
2 OFF
3 OFF
4 OFF
5 ON
__________________________________________________________________________________

Un sistema combinacional siempre queda completamente determinado a travŽs de la definici—n de sus


entradas, salidas y de una tabla que las relacione entre s’. Estas tablas reciben el nombre de tablas de
verdad. Conviene ser consciente que este tipo de tablas, si bien dan toda la informaci—n necesaria sobre
el comportamiento del sistema combinacional, cuando el nœmero de entradas y salidas crece llegan a ser
pr‡cticamente imposibles de manipular.

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 19
_________________________________________________________________________________

En los sistemas digitales secuenciales el valor de las salidas del sistema en un instante ti depende tanto
del valor de las entradas en ese instante como de valores anteriores de las entradas.

n Sistema m
X Secuencial Y

Figura 1.7 Sistema secuencial

Por tanto se puede escribir

y(ti ) = F[ x(−∞,ti )]

Esta es la definici—n general de sistema secuencial. Sin embargo, existe de hecho un inconveniente de
orden pr‡ctico. El hecho de que la salida dependa de los distintos valores que toma la entrada durante un
intervalo infinito de tiempo conlleva la necesidad de una capacidad de almacenaje de informaci—n
infinita: esta capacidad es necesaria para memorizar los valores de la entrada durante el intervalo
(−∞,ti ) . Es claro que una memoria infinita es algo poco pr‡ctico desde el punto de vista de la
implementaci—n f’sica.

En este texto nos ocuparemos de una clase particular de sistemas secuenciales llamados sistemas
secuenciales de estados finitos; un nombre alternativo es el de m‡quinas de estados finitos. En estos
sistemas todas las evoluciones hist—ricas posibles de las entradas pueden ser agrupadas en un nœmero
finito de clases de equivalencia. Por tanto, el valor de la salida en un instante determinado depende del
valor de las entradas en ese instante y de la clase de equivalencia a la que pertenezca la evoluci—n
temporal anterior de las entradas. Esto elimina la necesidad de memoria infinita y permite implementar
pr‡cticamente estos sistemas.

Dicho de otra forma, para hallar y(t) en funci—n de x(t) no necesitamos conocer x(−∞,t) , sino
solamente la clase de equivalencia a la que pertenece. Este conocimiento lo tendremos a travŽs de una
variable nueva, s(t) , que denominaremos estado del sistema.

Por tanto la especificaci—n de una m‡quina de estados finitos pasa por la definici—n de un conjunto de
entradas, un conjunto de salidas y otro de estados. Adicionalmente ser‡ necesario definir dos funciones

y(t) = H(x(t),s(t))
s(t + ) = G(x(t),s(t))

La funci—n H se denomina funci—n de salida e indica el valor de la salida para cada combinaci—n de
entrada y estado del sistema. La funci—n G se denomina funci—n transici—n de estados y determina cu‡l
ser‡ el estado pr—ximo del sistema, es decir, el valor pr—ximo de la variable de estado, para cada
combinaci—n de valores de la entrada y estado actual del sistema.

© los autores, 1998; © Edicions UPC, 1998.


20 Dise–o digital
_________________________________________________________________________________

Ejemplo 1.2

Una comprensi—n intuitiva del concepto de sistema secuencial se puede obtener a travŽs del an‡lisis
del funcionamiento de un ascensor. Para centrar ideas piŽnsese en el ascensor de un edificio con dos
pisos y planta baja, dotado con un botonera con œnicamente tres botones: 0, 1, 2.

Una primera reflexi—n nos conduce a que el sistema de control del ascensor no es un sistema
combinacional. Si consideramos como entrada el hecho de pulsar un determinado bot—n, la salida,
es decir, la acci—n realizada por el ascensor, no siempre es la misma, depende en realidad de en quŽ
piso estuviera el ascensor cuando se produce la entrada.

Dicho en otras palabras, la salida, la acci—n realizada por el ascensor, depende de la historia anterior
del ascensor (el hecho de estar en un piso u otro en un momento dado depende de los
desplazamientos anteriores del ascensor y por tanto de sus entradas anteriores).

TambiŽn es evidente que no es necesario conocer toda la secuencia de las diferentes idas y venidas
del ascensor para poder determinar el valor de la salida en un cierto momento. Nos basta con
conocer en quŽ piso est‡. Todas las evoluciones de las entradas que conducen a que en un
determinado instante el ascensor estŽ en un determinado piso son equivalentes. Por tanto, el piso
en que estŽ el ascensor constituir‡ el estado del sistema.

Vamos a ver lo mismo pero desde un punto de vista m‡s formal.

Entradas al sistema: Bot—n pulsado por el usuario. Es decir: x ∈{0,1,2} .

Salidas del sistema: Acciones realizadas por el ascensor: o bien sube 2 pisos, o sube 1, o no hace
nada, o baja 1, o baja 2. Esto es: y ∈{nada,+1,+2,−1,−2} .

Estados del sistema: A partir de la discusi—n anterior deber’a ser claro que el nœmero de estados del
sistema es tres: o bien el ascensor est‡ en planta baja o en el primero o en el segundo piso.
Formalmente escribiremos: s ∈{0,1,2} .

s(t) x(t) y(t) s(t+)


0 0 nada 0
1 0 -1 0
2 0 -2 0
0 1 +1 1
1 1 nada 1
2 1 -1 1
0 2 +2 2
1 2 +1 2
2 2 nada 2

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 21
_________________________________________________________________________________

Para especificar el sistema secuencial de forma completa necesitamos la funci—n de salida que
depende de la entrada y el estado actual y la funci—n transici—n de estados, que da el estado pr—ximo
en funcion de la entrada y el estado actual. Podemos especificar estas dos funciones mediante la
tabla de verdad presentada.
__________________________________________________________________________________

1.3 Codificaci—n

Un concepto fundamental dentro de los sistemas digitales es el de codificaci—n. En el apartado 1.1


hac’amos una primera referencia diciendo que mediante la codificaci—n pod’amos pasar de una se–al
discreta a una se–al l—gica, mientras la decodificaci—n realizaba el camino inverso. En este apartado
vamos a definir estos conceptos con m‡s precisi—n.

El problema de la codificaci—n en el ‡mbito de la electr—nica digital se traduce en representar un


conjunto finito de elementos mediante vectores de n componentes donde cada uno de los componentes
puede tomar solamente dos valores: 0 o 1.

Antes de dar una definici—n formal vamos a ver un ejemplo de codificaci—n.

Ejemplo 1.3

Recordemos el ejemplo 1.1 referente a la alarma para un dep—sito. Ten’amos 6 entradas posibles y
por tanto 6 elementos a codificar x ∈{0,1,2,3,4,5} . Si tenemos que representar estos valores
mediante vectores de n elementos donde cada uno de ellos puede tomar los valores 0 o 1, podemos
hacerlo de multitud de maneras. Una posibilidad ser’a

Elemento C—digo
asignado
0 000
1 100
2 101
3 001
4 010
5 011

Esta asignaci—n es totalmente arbitraria, caracter’stica propia de la codificaci—n.

Vemos, por otra parte, que el nœmero n de elementos de los vectores, en este caso particular, tiene
que ser de tres como m’nimo. Si hubiŽramos utilizado vectores de dos elementos no hubiŽramos
tenido suficientes combinaciones distintas para asignarlas a todos los elementos a codificar. Es

© los autores, 1998; © Edicions UPC, 1998.


22 Dise–o digital
_________________________________________________________________________________

evidente que asignar dos codificaciones iguales a dos elementos distintos s—lo puede conducir a la
pŽrdida o confusi—n de informaci—n.

N—tese que en este ejemplo las combinaciones 111 y 110 no han sido utilizadas.

Igualmente podr’amos codificar las salidas. En el caso de la alarma s—lo ten’amos dos salidas
posibles y ∈{ON,OFF} , por tanto podemos utilizar vectores de un solo elemento para
codificarlas. Una posible codificaci—n, nuevamente arbitraria, de las salidas ser’a

C—digo
Elemento
asignado
ON 1
OFF 0
__________________________________________________________________________________

Una vez presentado de forma intuitiva el problema de la codificaci—n, vamos a formalizar la definici—n.

Codificaci—n es una funci—n, al menos inyectiva, que asigna un vector binario de dimensi—n n a cada
elemento de un conjunto finito.

{Conjunto} → {0,1}n

Representamos mediante {0,1}n el conjunto de vectores de n elementos donde cada uno de ellos puede
tomar o el valor 0 o el valor 1. A cada uno de los elementos que pueden tomar el valor 0 o 1 le
llamamos d’gito binario o bit. Denominamos byte a un vector de 8 bits.

Ejercicio 1.1

ÀCu‡ntos elementos podemos codificar mediante vectores de n bits? ÀCu‡ntos c—digos distintos
podemos formar con n bits?

Soluci—n:

¥ n bits permiten codificar 2n elementos.

¥ Podemos formar 2n! c—digos distintos con n bits.


__________________________________________________________________________________

La codificaci—n, es decir, la elecci—n de una forma particular de asignaci—n de c—digos es en principio


arbitraria. En cada caso concreto hay que elegir entre 2n! codificaciones posibles. Ahora bien, el que
cualquier codificaci—n sea en teor’a v‡lida no quiere decir que sea indiferente la elecci—n de una u otra.

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 23
_________________________________________________________________________________

Criterios posibles que pueden determinar la elecci—n de un c—digo determinado podr’an ser la
simplicidad, la compatibilidad entre sistemas, la posibilidad de detectar la aparici—n de algœn error, la
posibilidad de corregir errores, etc.

En los pr—ximos subapartados vamos a presentar brevemente algunos de los c—digos m‡s comœnmente
utilizados.

1.3.1 Codificaci—n de nœmeros enteros

Ya que la codificaci—n finalmente representa los elementos a codificar mediante los d’gitos binarios 0 y
1, empezaremos este apartado presentando los sistemas de numeraci—n y en particular la numeraci—n en
base 2 y en potencias de 2.

Un nœmero representado en base r se escribe ( an−1 ,an−2 ,......,a1 ,a0 )r y su valor decimal se calcula
simplemente desarroll‡ndolo en potencias de r , donde los s’mbolos ai se asocian a los r primeros
nœmeros enteros (por tanto entre 0 y r-1)

( an−1 ,an−2 ,....,a1 ,a0 )r = an−1r n−1 +....+a1r1 + a0 r 0

Ejemplo 1.4

Encontrar el equivalente decimal del nœmero en base 2 (11100001)2.

(11100001)2=1.27+1.26+1.25+0.24+0.23+0.22+0.21+1.20=128+64+32+1=(225)10
__________________________________________________________________________________

Ejercicio 1.2

Escribir los numeros decimales (101)10 y (202)10 en base 2. ÀQuŽ relaci—n hay entre los dos
resultados?

Soluci—n: (101)10=(1100101)2 (202)10=(11001010)2

El 202 en base 2 coincide con el 101, desplazado una cifra a la izquierda. Esto se cumple para
cualquier nœmero que cumpla m =2.n, y se puede demostrar f‡cilmente substituyendo r por 2 en la
expresi—n de desarrollo en potencias, y multiplic‡ndola por 2.
__________________________________________________________________________________

El cambio entre base 2 y base 10 es particularmente frecuente y por ello es conveniente recordar los
valores de las potencias de 2.

© los autores, 1998; © Edicions UPC, 1998.


24 Dise–o digital
_________________________________________________________________________________

20=1 21=2 22=4 23=8 24=16 25=32

26=64 27=128 28=256 29=512 210=1024 ...

En el contexto que nos ocupa tambiŽn son de interŽs los sistemas de numeraci—n cuya base es una
potencia de 2, en particular base 8 y base 16, denominados octal y hexadecimal respectivamente.

El paso de base 2 a base 2k es particularmente sencillo. Se parte del nœmero escrito en base 2 y,
empezando por la derecha, se agrupan los d’gitos que lo forman en grupos de k bits, a cada uno de los
grupos se le asigna el d’gito correspondiente en base 2k .

Ejemplo 1.5

(1010110001101011)2= ( 1 010 110 001 101 011)2= (1 2 6 1 5 3)8

En base 16 este mismo nœmero quedar’a

(1010 1100 0110 1011)2= (A C 6 B)16

Nota: En base 16 se utilizan los siguientes s’mbolos para los 16 d’gitos necesarios:

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
__________________________________________________________________________________

Los cambios en sentido contrario, es decir, el paso de base 2 k a base 2 se realizan invertiendo el
procedimiento anterior.

Ejercicio 1.3

Expresar el numero (3 7 0 1 2)8 en base binaria y en base hexadecimal.

Soluci—n: (3 7 0 1 2)8 = (11111000001010)2= (3 E 0 A)16


__________________________________________________________________________________

Codificaci—n en binario

Simplemente escribimos en binario, utilizando el nœmero de bits que sea necesario, el nœmero entero a
codificar.

Es claro que utilizando n bits podemos codificar un total de 2n nœmeros enteros, en concreto los que
van desde el 0 al 2n-1.

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 25
_________________________________________________________________________________

Ejemplo 1.6

Escribir el c—digo binario para n = 3 bits.

Con 3 bits podemos codificar en binario natural los nœmeros que van desde el 0 hasta el 7.

0 1 2 3 4 5 6 7
000 001 010 011 100 101 110 111

__________________________________________________________________________________

Codificaci—n en BCD

El c—digo BCD, decimal codificado en binario, utiliza 4 bits para cada d’gito decimal, es decir

0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001

Por tanto quedan 6 combinaciones libres, las que van del 1010 al 1111. Cab’a esperar esto desde el
principio ya que 4 bits permiten codificar hasta 16 elementos y en el sistema de numeraci—n decimal
s—lo tenemos 10 d’gitos.

Ejemplo 1.7

Pasar a c—digo BCD el nœmero decimal 124.

(124)10 = (0001 0010 0100)BCD


__________________________________________________________________________________

El valor decimal de cada d’gito del nœmero codificado en BCD puede ser obtenido sumando el peso
asignado a cada bit. Para el BCD natural los pesos son 8, 4, 2, 1. Estos pesos son coincidentes con los
pesos de los d’gitos correspondientes en binario de 4 bits. Los c—digos en los que esta operaci—n es
posible se denominan c—digos ponderados.

© los autores, 1998; © Edicions UPC, 1998.


26 Dise–o digital
_________________________________________________________________________________

Ejemplo 1.8

(0111)BCD = 0.8+1.4+ 1.2+1.1 = 7

(0010 0011)BCD = (1.2).101+ (1.2+ 1.1).100 = 23


__________________________________________________________________________________

Existen distintas variantes del c—digo BCD. Algunas de ellas se diferencian en el peso (o ponderaci—n)
de cada uno de los bits. Un ejemplo ser’a el BCD 2421. En dicho c—digo 2, 4, 2 y 1 son los pesos
respectivos de cada uno de los bits. ObsŽrvese en este ejemplo concreto que " a priori " un mismo
nœmero puede ser codificado de distintas maneras. Ser‡ necesaria, por tanto, una regla adicional que
determine cu‡l de las posibles codificaciones es la correspondiente al c—digo.

Otra variante de interŽs es el llamado BCD exceso 3. El c—digo es el siguiente

0 0011 5 1000
1 0100 6 1001
2 0101 7 1010
3 0110 8 1011
4 0111 9 1100

Como el lector habr‡ adivinado se obtiene a travŽs de sumar 3 al BCD natural.

Parte del interŽs de este c—digo radica en que es autocomplementario, es decir, si en la combinaci—n
correspondiente a un nœmero n cambiamos los ceros por unos y viceversa se obtiene la combinaci—n
correspondiente a 9-n. Por ejemplo, el d’gito decimal 6 se codifica en BCD exceso 3 como 1001; si en
esta combinaci—n cambiamos los ceros por unos y viceversa se obtiene 0110. Esta combinaci—n
corresponde al 3, justamente 9-6. Por otra parte obsŽrvese que este c—digo no es ponderado.

C—digos de Gray

Este tipo de c—digo tambiŽn se conoce por los nombres de c—digo c’clico o reflejado. Su propiedad
fundamental es que cada codificaci—n difiere de la codificaci—n del entero anterior o posterior en un solo
bit. Empecemos construyendo el c—digo de Gray de un solo bit

Decimal Gray
0 0
1 1

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 27
_________________________________________________________________________________

Para obtener el c—digo de Gray de dos bits se procede de la siguiente manera: Se toma el c—digo de Gray
de 1 bit, se refleja especularmente respecto al eje mostrado en la figura, y se completa a–adiendo un "0"
a la izquierda para la primera mitad de combinaciones y un "1" para la otra mitad.

Decimal C—digo de Gray


0 0 0
1 0 1
2 1 1
3 1 0
a–adido reflejado

El procedimiento se itera para obtener de forma sucesiva los c—digos de Gray de 3, 4 y m‡s bits. As’
por ejemplo el c—digo de Gray de 3 bits se obtiene del de 2 bits de la forma que se indica en el gr‡fico
siguiente

Decimal C—digo de Gray


0 0 0 0
1 0 0 1
2 0 1 1
3 0 1 0
4 1 1 0
5 1 1 1
6 1 0 1
7 1 0 0
a–adido reflejados

1.3.2 C—digos alfanumŽricos

Es muy habitual el tener que codificar textos compuestos por caracteres alfanumŽricos ( bajo esta
denominaci—n incluimos letras, nœmeros, s’mbolos ortogr‡ficos, car‡cteres de control, etc.).

El c—digo m‡s utilizado en este caso es el c—digo ASCII (American Standard Code for Information
Interchange), del cual existen dos versiones, la que utiliza 7 bits y el ASCII extendido, que utiliza 8
bits.

A t’tulo informativo la distribuci—n de combinaciones en el c—digo ASCII de 7 bits es la mostrada en


la figura 1.8, donde las primeras 32 codificaciones corresponden a car‡cteres de control, que se

© los autores, 1998; © Edicions UPC, 1998.


28 Dise–o digital
_________________________________________________________________________________

especifican aparte. Estos car‡cteres pueden utilizarse para transmitir un texto entre sistemas y/o
reconstruirlo sin ambigŸedades.

Bits de mayor peso A7A6A5

A4A3A2A1 000 001 010 011 100 101 110 111

0000 NULL DLE SP 0 @ P ` p


0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 " 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYNC & 6 F V f v
0111 BELL ETB ' 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , < L \ l |
1101 CR GS - = M ] m }
1110 SO RS . > N ^ n ~
1111 SI US / ? O _ o DEL

NULL Car‡cter nulo DLE Cambio de enlace de transmisi—n


SOH Encabezamiento DCi Control del dispositivo i
STX Principio de texto NACK No reconocimiento
ETX Final de texto SYNC Transmisi—n s’ncrona
ENQ Pregunta ETB Fin de transmisi—n de bloque
ACK Reconocimiento CAN Cancelar
BELL Timbre EM Fin de medio
BS Retroceso SUB Sustituci—n
HT Tabulador horizontal ESC Escape
LF Salto de l’nea FS Separador de ficheros
VT Tabulador vertical GS Separador de grupos
FF Salto de p‡gina RS Separador de registros
CR Retorno de carro US Separador de unidades
SO Desplazamiento exterior SP Espacio en blanco
SI Desplazamiento interior DEL Borrar

Figura 1.8 C—digo ASCII de 7 bits

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 29
_________________________________________________________________________________

1.3.3 C—digos detectores de errores

Las se–ales codificadas contienen informaci—n. Estas se–ales, y por tanto esta informaci—n, se
transmiten de unos circuitos (sistemas) electr—nicos a otros. Existen formas de codificar que permiten
detectar si se ha producido algœn error en la transmisi—n, estos c—digos reciben el nombre de c—digos
detectores de error. Mencionaremos aqu’ a t’tulo de ejemplo los c—digos con paridad, que es la forma
m‡s sencilla de c—digo detector de error.

Para transformar un c—digo en un c—digo con paridad se a–ade un bit adicional de tal manera que la
codificaci—n resultante (c—digo anterior y bit a–adido) tenga un nœmero par de bits de valor "1", en los
c—digos de paridad par, o impar en los c—digos de paridad impar.

Ejemplo 1.9

Tenemos un c—digo de tres bits con todas las combinaciones utilizadas y queremos convertirlo en
un c—digo de 4 bits con paridad par

C—digo Bit
previo a–adido
X2 X2 000 0
X1 X1 001 1
X0 X0
Xp 010 1
Paridad 011 0
100 1
101 0
110 0
111 1

Figura 1.9 Sistema generador de bit de paridad

__________________________________________________________________________________

Los c—digos con paridad pueden detectar un nœmero impar de errores en la transmisi—n de la
informaci—n pero no pueden detectar un nœmero par, ya que en este caso la paridad no se modifica.

En el ejemplo anterior se observa que el hecho de intentar detectar errores nos lleva a utilizar m‡s bits
de los estrictamente imprescindibles. Un c—digo que utiliza m‡s bits de los necesarios se denomina
redundante. En efecto, si tenemos 8 elementos a codificar podemos hacerlo mediante 3 bits, a–adir un
bit de paridad nos exige utilizar 4 bits para codificar el mismo nœmero de elementos. Cualquiera que
sea el procedimiento que utilicemos para detectar errores, siempre utilizaremos m‡s bits de los
imprescindibles. Esto es as’ por una raz—n muy simple: supongamos que codificamos 16 elementos
mediante 4 bits. Si se produce un error en la transmisi—n de uno cualquiera de los bits, por ejemplo se

© los autores, 1998; © Edicions UPC, 1998.


30 Dise–o digital
_________________________________________________________________________________

env’a 0011 y se recibe el 0010, el receptor recibe una codificaci—n que corresponde a uno de los
elementos a codificar y por tanto en ausencia de informaci—n adicional no puede determinar si ha
ocurrido un error. Para que el receptor pueda saber que se ha producido un error es necesario que la
codificaci—n que reciba no corresponda a ninguno de los elementos a codificar y esto no es posible a
menos que se utilicen m‡s bits de los imprescindibles.

Asimismo es posible generar c—digos que permitan, no s—lo detectar, sino corregir un cierto nœmero de
errores. El precio a pagar siempre es el aumentar el nœmero de bits utilizados para codificar una
determinada informaci—n, es decir, aumentar la redundancia del c—digo.

1.4 Cuestiones y problemas

Cuestiones

C1.1 Discuta si las magnitudes y los sistemas siguientes son anal—gicos o digitales:
a) Temperatura
b) Cron—metro
c) Sem‡foro
d) Corriente elŽctrica

C1.2 ÀCu‡les de los siguientes sistemas, donde cada entrada puede tomar dos valores x ∈{a,b} , son
combinacionales y cu‡les secuenciales? Discuta si los secuenciales pueden describirse o no como
m‡quinas de estados finitos.

a) Un sistema con dos entradas que indique en cu‡l de ellas ha recibido m‡s veces el valor a .
b) Un sistema con tres entradas que detecte si las tres son iguales.
c) Un sistema con una sola entrada que indique si ha entrado un nœmero par o impar de b.

C1.3 Demuestre que para que una codificaci—n BCD ponderada sea autocomplementaria, la suma de
todos los pesos de la ponderaci—n debe ser igual a 9.

C1.4 Encuentre cu‡ntos c—digos BCD 2,4,2,1 diferentes se pueden formar y cu‡les de ellos son
autocomplementarios.

© los autores, 1998; © Edicions UPC, 1998.


Primera aproximaci—n a los sistemas digitales 31
_________________________________________________________________________________

C1.5 Un c—digo "n entre m" es aquŽl en que todas las combinaciones v‡lidas contienen n unos y (m-n)
ceros (por tanto m bits en total). ÀCu‡ntos elementos distintos se pueden codificar mediante un c—digo
"2 entre 5"? Discuta quŽ tipo de errores permite detectar este c—digo.

C1.6 ÀEs œnico el c—digo de Gray? Proponga diferentes c—digos de tres bits con las mismas propiedades
que el c—digo de Gray.

Problemas

P1.1 Identifique las entradas y salidas de un sistema combinacional que controla un motor de dos
velocidades, con dos sensores de fin de recorrido, un mando de velocidad y otro de direcci—n. Escriba la
tabla de verdad que permita mover el motor a un lado o al otro hasta su l’mite.

P1.2 Determine las salidas y los estados de un sistema secuencial con una œnica entrada
x ∈{0,1,2,3,4} , que indique si la suma de todas las entradas realizadas hasta el momento es un
mœltiplo de tres. Escriba las tablas de sus funciones de salida y de transici—n de estados.

P1.3 Proponga una codificaci—n que utilice 3 bits para los d’as de la semana. ÀEntre cu‡ntos c—digos
distintos puede escogerse?

P1.4 Proponga un c—digo BCD autocomplementario ponderado con pesos 8,4,-2,-1. ÀEs el œnico
posible?

P1.5 Complete la siguiente tabla:

Decimal Binario Hexadecimal Octal


1256
1001110101
624
A03C

P1.6 Encuentre la codificaci—n BCD de los nœmeros de la tabla del problema anterior.

P1.7 El c—digo llamado biquinario es un c—digo "2 entre 7" ponderado con pesos 5,0,4,3,2,1,0 para
cifras decimales. Encuentre cu‡ntos c—digos distintos cumplen estos requisitos.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 33
_________________________________________________________________________________

Cap’tulo 2 Fundamentos abstractos del dise–o digital

En este cap’tulo se presentan los fundamentos formales, o si se prefiere matem‡ticos, del dise–o
digital. El hecho de que las se–ales procesadas por los sistemas l—gicos s—lo puedan tomar dos valores
permite interpretar los sistemas combinacionales como un conjunto de funciones donde las entradas y
las salidas son variables que toman œnicamente dos valores. Una consecuencia de esto es la posibilidad
de utilizar superestructuras matem‡ticas espec’ficamente creadas para tratar con este tipo de variables.
El ‡lgebra de Boole, desarrollada el siglo pasado como herramienta para tratar el c‡lculo de predicados
en l—gica matem‡tica, se revela extremadamente œtil en el campo del dise–o digital. A pesar del
marcado tono matem‡tico de este cap’tulo, es conveniente que el lector tenga en cuenta que su
inclusi—n no obedece a un deseo de completitud formal sino, por el contrario, a una necesidad de orden
pr‡ctico. Como comprobar‡ el lector, los conceptos introducidos en este cap’tulo son de uso
continuado en el resto de este texto.

2.1 Funciones l—gicas

Una funci—n l—gica o de conmutaci—n de n variables asigna un valor l—gico ("0" o "1") a cada
combinaci—n de n valores l—gicos de entrada

y = f (x n−1 , x n−2 ,......, x1 , x 0 ) → {0,1} donde y, xi ∈{0,1}

De acuerdo con esto, un sistema l—gico combinacional de n entradas y m salidas como el representado
en la figura 2.1 puede interpretarse como un conjunto de m funciones l—gicas de las mismas n
variables.

Y = F( X)
x y0
0
Sistema X = (xn−1 ,...,x1 ,x0 ) Y = (ym−1 ,...,y1 ,y0 )
x y1
1
.... Combinacional .... yi = f i (xn−1 ,...,x1 ,x0 ) 0 ≤ i ≤ m −1
x n-1 y m-1

Figura 2.1 Sistema combinacional visto como un conjunto de funciones l—gicas

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las
sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el
tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de
ejemplares para su distribución y venta fuera del ámbito de la Unión Europea.
34 Dise–o digital
_________________________________________________________________________________

Existen distintas maneras de especificar y/o representar una funci—n l—gica; entre ellas podemos
destacar las siguientes: a) tabla de verdad, b) tabla de Karnaugh, c) expresiones algebraicas, d)
logigramas. Veamos de momento las dos primeras, dejando para m‡s adelante dentro de este mismo
cap’tulo las dos restantes.

2.1.1 Representaci—n mediante tabla de verdad

Una tabla de verdad especifica el valor que toma la funci—n para cada posible combinaci—n de valores de
sus variables. Es evidente que cualquier funci—n l—gica puede representarse mediante una tabla de
verdad.

La tabla de verdad de una funci—n l—gica de tres variables (formalmente equivalente a un sistema
combinacional de tres entradas y una salida) se muestra a continuaci—n. Los valores de la funci—n
f(x2,x1,x0) s—lo pueden ser o bien "0" o bien "1".

x2 x1 x0 f(x2,x1,x0)
0 0 0 f(0,0,0)
0 0 1 f(0,0,1)
0 1 0 f(0,1,0)
0 1 1 f(0,1,1)
1 0 0 f(1,0,0)
1 0 1 f(1,0,1)
1 1 0 f(1,1,0)
1 1 1 f(1,1,1)

La extensi—n de este tipo de representaci—n a funciones de cualquier nœmero de variables es inmediata,


aunque resulta poco pr‡ctica cuando este nœmero es elevado.

2.1.2 Representaci—n mediante tabla de Karnaugh

La tabla de Karnaugh, tambiŽn llamada mapa de Karnaugh, da una informaci—n equivalente a la de una
tabla de verdad. La diferencia estriba en la disposici—n topol—gica de la informaci—n. Se disponen los
valores de la funci—n en una tabla de doble entrada donde unas variables est‡n en el eje horizontal y
otras en el eje vertical. Las combinaciones de las variables de entrada en cada eje se ordenan siguiendo
un c—digo de Gray.

Ve‡moslo para el caso concreto de una funci—n de tres variables f(x2,x1,x0). En el eje vertical situamos
x2 y en el eje horizontal x1 y x0.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 35
_________________________________________________________________________________

x2\x1x0 00 01 11 10
0 f(0,0,0) f(0,0,1) f(0,1,1) f(0,1,0)
1 f(1,0,0) f(1,0,1) f(1,1,1) f(1,1,0)

Como es natural, en una funci—n de 3 variables tenemos 8 combinaciones de entrada y por tanto una
tabla de 8 casillas. Para el caso de 4 variables el procedimiento es el mismo, situando dos de las
variables en el eje horizontal y las dos restantes en el eje vertical. Como antes, las combinaciones de
las variables en cada eje se ordenan siguiendo un c—digo de Gray. Ve‡moslo para una funci—n genŽrica
de 4 variables f(x3,x2,x1,x0).

x3x2\x1x0 00 01 11 10
00 f(0,0,0,0) f(0,0,0,1) f(0,0,1,1) f(0,0,1,0)
01 f(0,1,0,0) f(0,1,0,1) f(0,1,1,1) f(0,1,1,0)
11 f(1,1,0,0) f(1,1,0,1) f(1,1,1,1) f(1,1,1,0)
10 f(1,0,0,0) f(1,0,0,1) f(1,0,1,1) f(1,0,1,0)

El hecho de ordenar las variables segœn un c—digo de Gray hace que en casillas vecinas se sitœen los
valores de la funci—n correspondientes a combinaciones de las variables de entrada que difieren entre s’
en un s—lo bit. Si definimos como casillas l—gicamente adyacentes las correspondientes a
combinaciones de entrada que difieren entre s’ en el valor de un solo bit, la fila superior resulta
adyacente a la inferior y del mismo modo la columna de la derecha es adyacente a la columna de la
izquierda.

Por ejemplo, si observamos en la tabla anterior la casilla correspondiente a f(1,0,0,1) (sombreada de


forma m‡s intensa) vemos que las casillas adyacentes segœn la definici—n anterior (marcadas en
punteado claro) corresponden a f(1,0,0,0) donde s—lo var’a el valor de x0, f(1,0,1,1) donde es x1 la
variable que cambia de valor, f(1,1,0,1) donde es x2 la variable que cambia de valor, y por œltimo en
f(0,0,0,1) x3 cambia de valor.

Generalizando, podemos decir que cada casilla de una tabla de Karnaugh de n variables tiene n casillas
l—gicamente adyacentes, es decir, correspondientes a combinaciones de entrada que difieren œnicamente
en el valor de una variable.

Para funciones de 5 variables el procedimiento es el siguiente: consideremos una funci—n genŽrica


f(x4,x3,x2,x1,x0); se forman dos tablas de Karnaugh iguales (con la misma disposici—n de variables) de
4 variables, por ejemplo x3,x2,x1,x0, una referida a las combinaciones de entrada con x4=0 y otra con
las combinaciones correspondientes a x4=1. La definici—n de adyacencia incluye las casillas vistas para
la tabla de 4 variables m‡s la casilla que est‡ situada en el mismo lugar en la otra tabla, tal como se
muestra en la figura que sigue.

© los autores, 1998; © Edicions UPC, 1998.


36 Diseño digital
________________________________________________________________________________

x4=0 x4=1

x3x2\x1x0 00 01 11 10 x3x2\x1x0 00 01 11 10
00 00
01 01
11 11
10 10

La representación mediante tabla de Karnaugh para funciones lógicas de 6 variables puede realizarse
extendiendo la idea aplicada para 5 variables (cuatro tablas de 4 variables situadas una encima de la
otra y ordenadas mediante combinaciones cíclicas de las 2 variables restantes), aunque se pierde la
facilidad de identificación de las casillas adyacentes. Por ello en la práctica la tabla de Karnaugh no
suele utilizarse para funciones de más de 5 variables.

Ejemplo 2.1

Supongamos un código de 4 bits con todas las combinaciones asignadas. Se desea generar un bit
adicional de forma que el código de 5 bits resultante tenga una paridad par. Especificar la función
lógica correspondiente mediante su tabla de verdad y su mapa de Karnaugh.

a b c d Y
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0 ab\cd 00 01 11 10
0 1 0 0 1
0 1 0 1 0 00 0 1 0 1
0 1 1 0 0
0 1 1 1 1 01 1 0 1 0
1 0 0 0 1
1 0 0 1 0 11 0 1 0 1
1 0 1 0 0
1 0 1 1 1 10 1 0 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 37
_________________________________________________________________________________

Se trata de un sistema combinacional con 4 entradas y una salida, cuyo valor ser‡ "1" cuando en
las entradas tengamos un nœmero impar de valores "1", y "0" en caso contrario (nœmero par de
"1"). Por tanto la tabla de verdad y mapa de Karnaugh ser‡n los dados en la figura.

ObsŽrvese que el mapa de Karnaugh de una funci—n de paridad, dado que las variables de entrada
est‡n ordenadas segœn el c—digo de Gray, tiene el aspecto de un tablero de ajedrez. Esto es, si en
una casilla determinada hay un "1", en todas sus adyacentes hay un "0" y viceversa.
__________________________________________________________________________________

Ejercicio 2.1

Describa, a travŽs de sus tablas de verdad y de Karnaugh, un sistema combinacional que compare 2
nœmeros enteros A y B codificados en binario. La salida valdr‡ "1" si A>B.

A, B C—digo
Entradas A, B ∈{0,1,2,3}
0 00
1 01
1 si A > B
Salida Y = 2 10
0 en otro caso
3 11
__________________________________________________________________________________

2.1.3 Funciones l—gicas de una y dos variables

Al estar limitado a dos el nœmero de valores que pueden tomar tanto las distintas variables de entrada
como la salida de una funci—n l—gica, resulta que el nœmero de funciones l—gicas distintas de n
variables est‡ acotado. Por tanto, es posible realizar un inventario de todas las funciones l—gicas de un
nœmero dado de variables.

Funciones l—gicas de una variable: Existen 4 y s—lo 4 funciones l—gicas de una variable, que
presentamos en la tabla siguiente

x0 f0(x0) f1(x0) f2(x0) f3(x0)

0 0 0 1 0
1 0 1 0 0

f0(x0). Como se observa en la tabla, esta funci—n asigna el valor cero independientemente del valor de
la variable. Se la denomina funci—n constante cero. Podemos asignar a esta funci—n la siguiente
representaci—n en forma de expresi—n algebraica

© los autores, 1998; © Edicions UPC, 1998.


38 Dise–o digital
_________________________________________________________________________________

f 0 (x 0 ) = 0

f1(x0). El valor de la funci—n coincide con el de la variable de entrada. Por este motivo se la denomina
funci—n identidad. La expresi—n algebraica de esta funci—n es

f 1 (x 0 ) = x 0

f2(x0). En este caso el valor de la funci—n siempre es el contrario o complementario del que tiene la
variable de entrada. Se la conoce como funci—n complemento, negaci—n o funci—n NOT. La expresi—n
algebraica correspondiente es

f 2 (x 0 ) = x 0

f3(x0). Por œltimo, esta funci—n siempre devuelve el valor "1" independientemente del valor de la
variable de entrada y por eso recibe el nombre de funci—n constante 1. Su expresi—n algebraica ser‡

f 3 (x 0 ) =1

Algunas funciones l—gicas cuentan con un s’mbolo propio para su representaci—n gr‡fica. Estos
s’mb—los graficos se denominan logigramas o puertas y suponen una primera aproximaci—n a la
estructura del circuito o elemento f’sico que las implementa. Las cuatro funciones de una variable
pueden representarse mediante los logigramas que se muestran en la figura 2.2.

a) b)

0
x x x x
1

Figura 2.2 Logigramas para las funciones l—gicas de una variable. a) funci—n constante 0,
b) funci—n identidad, c) funci—n constante 1, d) funci—n complemento

Funciones l—gicas de dos variables: Es posible obtener hasta 16 funciones l—gicas diferentes
de 2 variables, que se muestran en la tabla siguiente

x1 x0 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15


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

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 39
_________________________________________________________________________________

Algunas de estas 16 funciones se utilizan con mayor frecuencia y las presentamos a continuaci—n
como funciones destacables.

f 1 . La funci—n f 1 se denomina AND o producto l—gico y s—lo toma el valor "1" cuando las dos
variables de entrada toman el valor "1". La definici—n dada puede independizarse del nœmero de
variables; por tanto, denominaremos funci—n AND de n variables a la funci—n l—gica que s—lo valdr‡
"1" cuando todas las variables de entrada valgan "1". La expresi—n algebraica y el logigrama para la
funci—n AND de dos variables son los siguientes

x1
f AND (x1 , x 0 ) = x1 x 0 x1 x0
x0

f7. Esta funci—n toma el valor "1" cuando alguna de las entradas toma el valor "1" (eventualmente
pueden ser las dos) o, de forma equivalente, s—lo toma el valor "0" cuando todas las variables de entrada
toman el valor "0". Recibe el nombre de funci—n OR o suma l—gica. Como antes la definici—n es
independiente del nœmero de variables y por tanto denominaremos funci—n OR de n variables a aquella
que vale "1" cuando alguna (una o m‡s) de las entradas toma el valor "1". La expresi—n algebraica y el
logigrama para esta funci—n son

x1
f OR (x1 , x 0 ) = x1 + x 0 x1 + x 0
x0

f6. A partir de los valores que toma para dos variables esta funci—n puede ser interpretada de diversas
maneras: 1- La funci—n toma el valor "1" cuando las entradas son distintas y "0" cuando son iguales.
2- El valor de la funci—n es la suma m—dulo 2 de las entradas. 3- La funci—n vale "1" cuando el nœmero
de "1" a su entrada es impar y "0" cuando no lo es. Las dos œltimas interpretaciones son directamente
generalizables a n entradas. Esta funci—n recibe el nombre de XOR o tambiŽn OR exclusiva. La
expresi—n algebraica y el logigrama para la funci—n XOR de dos variables son

x1
f XOR (x1 , x 0 ) = x1 ⊕ x 0 x1 + x 0
x0

Las complementarias de estas tres funciones tambiŽn son destacables. Entendemos por funciones
complementarias aquŽllas que para los mismos valores de las variables toman valores opuestos:

f14. Recibe el nombre de NOT-AND, o abreviadamente, NAND.

x1
f NAND (x1 , x 0 ) = x1 x 0 x1x0
x0

© los autores, 1998; © Edicions UPC, 1998.


40 Dise–o digital
_________________________________________________________________________________

f8. Recibe el nombre de NOR (NOT-OR).

x1
f NOR (x1 , x 0 ) = x1 + x 0 x1 + x 0
x0

f9. Recibe el nombre de XNOR (NOR-exclusiva).

x1
f XNOR (x1 , x 0 ) = x1 ⊕ x 0 x1 + x0
x0

2.1.4 Funciones incompletamente especificadas

Son funciones l—gicas cuyo valor no est‡ definido, especificado, para alguna combinaci—n de variables
de entrada. En lenguaje formal, podr’amos decir que su dominio es un subconjunto de las 2n posibles
combinaciones de las variables de entrada.

Ejemplo 2.2

Supongamos un sistema combinacional tal que su entrada es una cifra codificada en BCD y su
salida es "1" en caso de que la entrada sea mœltiplo de 3 y "0" en caso contrario. La tabla de verdad
de este sistema ser’a

x3 x2 x1 x0 Y x3 x2 x1 x0 Y
0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 1 0 0 1 1
0 0 1 0 0 1 0 1 0 X
0 0 1 1 1 1 0 1 1 X
0 1 0 0 0 1 1 0 0 X
0 1 0 1 0 1 1 0 1 X
0 1 1 0 1 1 1 1 0 X
0 1 1 1 0 1 1 1 1 X

N—tese que las combinaciones de entrada comprendidas entre 1010 y 1111 no pertenecen al c—digo
BCD y por tanto no se van a presentar nunca; en consecuencia, es irrelevante el valor que tome la
funci—n para dichas combinaciones de entrada. Usaremos la notaci—n "X" (salida indiferente) para el
valor de la funci—n en dichos casos.
__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 41
_________________________________________________________________________________

Ejercicio 2.2
n
DemuŽstrese que hay 2 (2 ) funciones l—gicas diferentes de n variables.
__________________________________________________________________________________

2.1.5 Composici—n de funciones l—gicas

Los œnicos valores que puede tomar una funci—n l—gica son "0" o "1", es decir, valores que pueden
corresponder a variables de una nueva funci—n l—gica. En consecuencia las funciones l—gicas se pueden
componer entre s’, con lo que se generan otras funciones l—gicas m‡s complejas.

Ejemplo 2.3

La funci—n z es el resultado de aplicar la funci—n OR a la variable c y al resultado obtenido de


aplicar la funci—n AND a las variables a, b y al complementario de d:

z = f OR (c, f AND (a,b, f NOT (d)))

La expresi—n algebraica correspondiente a esta composici—n es

z = c + abd

TambiŽn es posible obtener el logigrama de la composici—n de funciones combinando


adecuadamente los logigramas de cada una de las funciones involucradas, tal como se muestra en la
figura 2.3. Este logigrama supone una primera aproximaci—n a un posible circuito electr—nico que
realice la funci—n.

d abd
d
a c + abd
b
c

Figura 2.3 Logigrama resultante de la composici—n de funciones

__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


42 Dise–o digital
_________________________________________________________________________________

Ejercicio 2.3

Obtener la tabla de verdad y el logigrama de la composici—n de funciones siguiente

z = f NOR ( f 1 (a,b,c,d), f NOT ( f AND (b,d)))

donde f1 es la funci—n descrita en el ejemplo 2.3


__________________________________________________________________________________

Hasta ahora hemos visto cuatro formas equivalentes, aunque formalmente distintas, de representar una
funci—n l—gica: 1-Tabla de verdad. 2-Tabla de Karnaugh. 3-Expresi—n algebraica. 4-Logigrama. Segœn
las circunstancias, unas formas de representaci—n ser‡n m‡s convenientes que otras, pero no debe
perderse de vista que la informaci—n aportada es la misma.

2.2 Algebra de Boole

Recordemos que las variables l—gicas solamente pueden tomar dos valores. En el siglo XIX George
Boole (1815-1864), trabajando en el c‡lculo de predicados en l—gica matem‡tica, cre— una
superestructura matem‡tica particularmente œtil en los casos en que los valores posibles de las
variables son solamente dos. El dise–o digital utiliza de forma extensiva estos resultados obtenidos
hace m‡s de un siglo.

2.2.1 Postulados del Algebra de Boole

Se denomina ‡lgebra de Boole a la estructura matem‡tica formada por un conjunto B de elementos y


dos operaciones, denominadas genŽricamente " +" (suma) y "." (producto), que cumple las siguientes
propiedades

1- B es un conjunto cerrado respecto a las operaciones definidas, es decir

ì a ×b ÎB
a,b ÎB Þ í
î a + b ÎB

2- Las dos operaciones son conmutativas

ìa + b = b + a
a,b ÎB Þ í
î a ×b = b × a

3- Existe distributividad de una operaci—n respecto a la otra y viceversa

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 43
_________________________________________________________________________________

ì a ×(b + c) = a ×b + a ×c
a,b,c ÎB Þ í
î a + (b ×c) = (a + b)×(a + c)

4- Existe un elemento neutro para cada operaci—n. Es decir, si aÎ B, entonces existen dos
elementos del conjunto B, llamados arbitrariamente "0" y "1", tales que

a+0=a
a ×1= a

5- Existencia de elemento opuesto. Si a es un elemento del conjunto B entonces existe un


œnico elemento a ÎB tal que

a + a =1
a×a = 0

6- El conjunto B tiene al menos dos elementos distintos.

En el tratamiento de variables l—gicas podemos tomar el conjunto B = {0,1} y escoger las operaciones
siguientes

"+" o suma: Funci—n l—gica OR

"." o producto: Funci—n l—gica AND


_
" " u opuesto: Funci—n l—gica complemento o negaci—n (NOT)

Es inmediato comprobar que el conjunto definido m‡s las operaciones suma y producto escogidas
cumplen los postulados anteriores. Por tanto, constituyen un ‡lgebra de Boole de dos elementos (o
valores).

2.2.2 Teoremas del Algebra de Boole

Un ‡lgebra de Boole, en virtud de las propiedades que por definici—n se le exigen, cumple una serie de
teoremas. Estos teoremas son de gran utilidad a la hora de transformar expresiones algebraicas de
funciones l—gicas en otras equivalentes.

Sean a,b,c ÎB

-Asociatividad: a + (b + c) = (a + b) + c
a ×(b ×c) = (a ×b)×c

-Idempotencia: a+a=a
a×a = a

© los autores, 1998; © Edicions UPC, 1998.


44 Dise–o digital
_________________________________________________________________________________

-Absorci—n: a + a ×b = a + b a + a ×b = a
a ×(a + b) = a ×b a(a + b) = a

-Involuci—n: (a) = a

-Inc—gnita: x +1=1
x ×0 = 0

-Leyes de De Morgan: a + b = a ×b
a ×b = a + b

- Dualidad: Cualquier expresi—n v‡lida en un ‡lgebra de Boole continœa siendo v‡lida si


se intercambian entre s’ los elementos neutros ( 0 «1) y las operaciones ( + « ×).

La permutaci—n del teorema de dualidad conlleva cambiar cada variable por su complementaria.
ObsŽrvese que todas las propiedades exigidas a un ‡lgebra de Boole cumplen esta condici—n, por tanto,
cualquier expresi—n que se derive de ellas tambiŽn la cumplir‡.

Adem‡s, algunos de estos teoremas son directamente generalizables a n variables, por ejemplo, las
leyes de De Morgan: el complementario de una suma de variables es igual al producto de los
complementarios de las variables, y el complementario de un producto de variables es igual a la suma
de los complementarios de las variables.

å ai = Õ ai Õ ai = å ai
i i i i

Ejemplo 2.4

Vamos a aplicar dualidad a la expresi—n algebraica obtenida en el ejemplo 2.3. La expresi—n de


partida es

z = c + abd

y la que aplicando dualidad se deriva de ella es

(
z =c a +b +d )
Esto nos permite escribir una expresi—n algebraica equivalente para la funci—n z, aplicando el
teorema de involuci—n

(
z=c a +b +d )

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 45
_________________________________________________________________________________

Ejercicio 2.4

DemuŽstrese la identidad del ejemplo 2.4 usando las leyes de De Morgan.


__________________________________________________________________________________

Las demostraciones de los teoremas presentados tambiŽn quedan como ejercicio para el lector. En
cualquier caso, cuando se intenta demostrar cualquier igualdad entre dos expresiones algebraicas en un
‡lgebra de Boole, siempre se puede evaluar cada una de las expresiones en todos los casos posibles a
travŽs de su tabla de verdad y realizar la comprobaci—n del resultado.

Ejemplo 2.5

Vamos a demostrar la primera igualdad del teorema de absorci—n.

a + ab = a + b

Aplicando sucesivamente la distributividad de la suma con respecto al producto y las definiciones


de elemento inverso y elemento neutro, nos queda

a + ab = (a + a)(a + b) =1×(a + b) = a + b
__________________________________________________________________________________

Ejercicio 2.5

Utilizando œnicamente los postulados del ‡lgebra de Boole, demuŽstrese la segunda igualdad del
teorema de absorci—n: a + ab = a .
__________________________________________________________________________________

2.2.3 Simplificaci—n algebraica

Los postulados y teoremas del ‡lgebra de Boole traen como consecuencia que la expresi—n algebraica de
una funci—n l—gica no es œnica. Por tanto es posible utilizar las propiedades anteriores para simplificar
las expresiones algebraicas de funciones l—gicas. Ve‡moslo mediante algunos ejemplos.

Ejemplo 2.6

a) cd(a + ab) + bd(ac + c) = cd(a(1+ b)) + bd(c(1+ a)) = cda + cbd = cd(a + b)

Donde se ha aplicado el postulado de distributividad, el teorema de inc—gnita, el postulado del


elemento neutro y otra vez distributividad.

© los autores, 1998; © Edicions UPC, 1998.


46 Dise–o digital
_________________________________________________________________________________

b) a + b + c + d + abcd = (a + b + c + d) + (a + b + c + d) =1

c) a + b + c + d + abcd = a(1+ bcd) + b + c + d = a + b + c + d


__________________________________________________________________________________

Ejercicio 2.6

Simplificar las expresiones siguientes:

a) xyz + xy + xyz b) a + b + c + abc

c) x(z + xy) + z y + xy x d) cad + b + c + abc


__________________________________________________________________________________

Al final del apartado 2.1 resum’amos las cuatro formas vistas de representar una funci—n l—gica: tabla
de verdad, tabla de Karnaugh, expresi—n algebraica y logigrama. Ahora se ha presentado un
procedimiento para transformar unas expresiones algebraicas en otras. Vamos a analizar estas cuatro
posibles representaciones de una funci—n l—gica a travŽs de un ejemplo.

Ejemplo 2.7

A partir del logigrama de la figura 2.4, obtener la tabla de verdad, la tabla de Karnaugh, y una
expresi—n algebraica de la funci—n Y(a,b,c).

a b c

A B

C
Y

D
F

Figura 2.4 Logigrama del ejemplo 2.7

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 47
_________________________________________________________________________________

Es laborioso encontrar directamente la expresi—n algebraica de la funci—n completa, por lo que el


procedimiento m‡s aconsejable es hallar primero las expresiones algebraicas de las variables
intermedias A, B, C, D, E, y F se–aladas en la figura 2.4.

A = a + b = ab B = Ac = abc C = abc
D = abc E = abc F = DE = abc + abc

Por tanto, la expresi—n algebraica final para Y es

Y = B + C + F = abc + abc + abc + abc

La tabla de verdad puede obtenerse evaluando las variables intermedias y las expresiones anteriores
para cada combinaci—n de valores de las variables de entrada.

a b c A B C D E F Y
0 0 0 1 0 0 1 1 0 0
0 0 1 1 1 0 1 1 0 1
0 1 0 0 0 1 1 1 0 1
0 1 1 0 0 0 1 1 0 0
1 0 0 0 0 0 0 1 1 1
1 0 1 0 0 0 1 1 0 0
1 1 0 0 0 0 1 1 0 0
1 1 1 0 0 0 1 0 1 1

La tabla de Karnaugh quedar’a de la forma siguiente

a\bc 00 01 11 10

0 0 1 0 1

1 1 0 1 0

Un an‡lisis detallado de la tabla de verdad nos lleva a concluir que la funci—n l—gica Y vale "1"
cuando el nœmero de entradas que toman el valor "1" es impar y asigna el valor "0" en caso
contrario; por tanto, una expresi—n algebraica y un logigrama alternativos son

a
Y = aÅbÅc b Y
c

__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


48 Dise–o digital
_________________________________________________________________________________

2.3 Formas can—nicas de una funci—n l—gica

A partir de lo visto en el apartado anterior, es claro que una misma funci—n l—gica admite una infinidad
de expresiones algebraicas. Como consecuencia admitir‡ tambiŽn una infinidad de logigramas. Por el
contrario, la tabla de verdad y la tabla de Karnaugh son œnicas para una funci—n l—gica dada.

De entre esta infinidad de expresiones algebraicas equivalentes se puede encontrar formatos que sean de
particular interŽs por ser aplicables a cualquier funci—n l—gica. Estos formatos o expresiones
generalizables de las funciones l—gicas se denominan formas can—nicas. Sin embargo, antes de
presentar las formas can—nicas de una funci—n l—gica es conveniente formalizar el concepto de
minterm, el de maxterm y presentar el teorema de Shannon.

2.3.1 Minterms y Maxterms

Sea f una funci—n l—gica de n variables; denominamos producto m’nimo o minterm de dicha funci—n al
monomio formado por el producto l—gico de todas sus variables complementadas o no. Con n
variables se pueden construir 2n minterms diferentes. Usaremos la notaci—n mi (con 0 £ i £ 2 n - 1 )
para referirnos al minterm i-Žsimo de una funci—n.

Identificamos cada minterm mediante un sub’ndice nœmerico que corresponde a la combinaci—n binaria
resultante de sustituir por "0" las variables complementadas y por "1" las que no lo est‡n. Otra forma
de expresar lo mismo es diciendo que un minterm se identifica mediante un sub’ndice correspondiente
al valor decimal de la combinaci—n de entradas que hace que el minterm en cuesti—n tome el valor "1".

Veamos esto en detalle para una funci—n l—gica de tres variables. La generalizaci—n a n variables es
inmediata.

M int erm Sub. binario Sub. decimal

x2 x1 x0 m000 m0
x2 x1 x0 m001 m1
x2 x1 x0 m010 m2
x2 x1 x0 m011 m3
x2 x1 x0 m100 m4
x2 x1 x0 m101 m5
x2 x1 x0 m110 m6
x2 x1 x0 m111 m7

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 49
_________________________________________________________________________________

Sea f una funci—n l—gica de n variables; denominamos suma m‡xima o maxterm de dicha funci—n al
polinomio formado por la suma l—gica de todas sus variables complementadas o no. Con n variables
se pueden construir 2n maxterms diferentes. Usaremos la notaci—n Mi para referirnos al maxterm i-
Žsimo de una funci—n.

Cada maxterm se identifica mediante un sub’ndice correspondiente a la combinaci—n binaria resultante


de sustituir por unos las variables que est‡n complementadas y por ceros las que no lo est‡n. Otra
forma de expresar lo mismo es diciendo que un maxterm se identifica mediante un d’gito
correspondiente al valor decimal de la combinaci—n binaria de entradas que hace que el maxterm en
cuesti—n tome el valor "0".

Vamos a verlo en detalle para una funci—n l—gica de tres variables. La generalizaci—n a n variables es,
otra vez, inmediata.

Maxterm Sub. binario Sub. decimal

x2 + x1 + x0 M111 M7
x2 + x1 + x0 M110 M6
x2 + x1 + x0 M101 M5
x2 + x1 + x0 M100 M4
x2 + x1 + x0 M011 M3
x2 + x1 + x0 M010 M2
x2 + x1 + x0 M001 M1
x2 + x1 + x0 M000 M0

2.3.2 Teorema de Shannon

Si f es una funci—n l—gica de n variables, entonces es posible realizar la extracci—n de una de las
variables, con lo que se generan dos funciones residuales de n-1 variables de acuerdo con la siguiente
expresi—n

f (x n-1 , x n-2 ,..., x1 , x 0 ) = x n-1 f (0, x n-2 ,..., x1 , x 0 ) + x n-1 f (1, x n-2 ,..., x1 , x 0 )

Una formulaci—n dual del teorema puede hacerse mediante esta otra expresi—n

f (x n-1 , x n-2 ,..., x1 , x 0 ) = [ x n-1 + f (1, x n-2 ,..., x1 , x 0 )] × [ x n-1 + f (0, x n-2 ,..., x1 , x 0 )]

© los autores, 1998; © Edicions UPC, 1998.


50 Dise–o digital
_________________________________________________________________________________

La demostraci—n del teorema es inmediata a travŽs de la tabla de verdad. Para ello s—lo es necesario
evaluar los tŽrminos a derecha e izquierda de la igualdad para cada uno de los dos valores posibles de la
variable extra’da: xn-1=0 y xn-1=1.

Ejemplo 2.8

Extraer la variable c de la funci—n l—gica f (a,b,c,d) = (a Å c) + ac + bcd + ab cd .

De acuerdo con el teorema de Shannon es necesario obtener las funciones resultantes de


particularizar c a los valores "1" y "0" en la funci—n f(a,b,c,d) inicial.

f (a,b,0,d) = (a Å 0) + a + bd = a + a + bd = a + bd
f (a,b,1,d) = (a Å1) + ab d = a + ab d = a

Luego, recurriendo a la primera expresi—n del teorema

f (a,b,c,d) = cf (a,b,0,d) + cf (a,b,1,d) = c (a + bd) + c(a )

O bien, recurriendo a la segunda expresi—n

f (a,b,c,d) = [ c + f (a,b,1,d)] × [ c + f (a,b,0,d)] = [ c + ( a )] × [ c + ( a + bd )]


__________________________________________________________________________________

2.3.3 Formas can—nicas

Cualquier funci—n l—gica puede expresarse como suma l—gica de minterms. Asimismo, cualquier
funci—n l—gica puede tambiŽn expresarse como producto l—gico de maxterms. Estas expresiones
algebraicas se denominan formas can—nicas disyuntiva y conjuntiva respectivamente.

La demostraci—n de la existencia de estas dos formas can—nicas es sencilla si bien un tanto farragosa en
lo que respecta a la notaci—n. Se basa en la aplicaci—n reiterada del teorema de Shannon: partiendo de la
primera de las expresiones propuestas por el teorema para una funci—n f de n variables y aplic‡ndola de
nuevo a cada uno de los sumandos del tŽrmino de la derecha nos queda

f (0, x n-2 ,..., x 0 ) = x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-2 f (0,1, x n-3 ,..., x 0 )
f (1, x n-2 ,..., x 0 ) = x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-2 f (1,1, x n-3 ,..., x 0 )

Y por tanto extraemos 2 de las n variables de la funci—n.

f (x n-1 , x n-2 ,..., x 0 ) = x n-1 x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (0,1, x n-3 ,..., x 0 ) +
+ x n-1 x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (1,1, x n-3 ,..., x 0 )

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 51
_________________________________________________________________________________

Iterando la aplicaci—n del teorema de Shannon a las funciones residuales hasta extraer todas las
variables, nos queda finalmente

f (x n-1 , x n-2 ,.., x1 , x 0 ) = x n-1 x n-2 .. x1 x 0 f (0,0,..,0,0) + x n-1 x n-2 .. x1 x 0 f (0,0,..,0,1) +


2n -1
+ x n-1 x n-2 .. x1 x 0 f (0,0,...,1,0)+...+ x n-1 x n-2 ... x1 x 0 f (1,1,..,1,1) = å mi f (i)
i=0

Expresi—n que identificamos como la forma can—nica disyuntiva, es decir, en suma de minterms, donde
las f(i) son las funciones residuales tras la extracci—n de todas las variables, es decir, funciones
constantes, que solo pueden tomar dos valores "0" o "1".

La existencia de la forma can—nica conjuntiva puede demostrarse a partir de la segunda expresi—n del
teorema de Shannon. Su expresi—n compacta es

2n -1
f (x n-1 , x n-2 ,.., x1 , x 0 ) = Õ (Mi + f (i))
i=0

Veamos a travŽs de un ejemplo c—mo obtener las formas can—nicas de una funci—n l—gica.

Ejemplo 2.9

Pretendemos obtener las formas can—nicas de la funci—n y = a + bc. Siguiendo paso a paso la
demostraci—n anterior se llega a la siguiente expresi—n

y = f (a,b,c) = abc f (0,0,0) + abcf (0,0,1) + abc f (0,1,0) + abcf (0,1,1) +


+abc f (1,0,0) + abcf (1,0,1) + abc f (1,1,0) + abcf (1,1,1)

A partir de la tabla de verdad podemos evaluar el valor de la funci—n para cada combinaci—n de las
variables de entrada

a b c y
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

© los autores, 1998; © Edicions UPC, 1998.


52 Dise–o digital
_________________________________________________________________________________

Sustituyendo los valores de la funci—n en la expresi—n anterior nos queda

y = abc + abc + abc + abc + abc = m1 + m4 + m5 + m6 + m7

Una notaci—n alternativa m‡s compacta es

y = å m(1,4,5,6,7)
3

donde el sub’ndice del sumatorio indica el nœmero de variables de la funci—n.

Si nos fijamos en la expresi—n de la funci—n como suma de minterms (en ocasiones la


denominaremos SoP) y, simult‡neamente en la tabla de verdad, vemos que aparecen en la
expresi—n los minterms cuyo sub’ndice corresponde a combinaciones de las variables de entrada
para las cuales la funci—n vale "1" (que hemos destacado sombre‡ndolas en la tabla de verdad).

Para obtener la expresi—n de la funci—n como producto de maxterms el procedimiento es el


siguiente: Si la funci—n y se escribe como

y = å m(1,4,5,6,7)
3

Entonces la expresi—n como suma de minterms de la funci—n complementada es

y = å m(0,2,3)
3

Si negamos ambos lados de esta œltima igualdad y operamos

y = y = å m(0,2,3) = m0 + m2 + m3 = ab c + abc + abc =


3
= (a + b + c)(a + b + c)(a + b + c ) = M0 M2 M3 = Õ M(0,2,3)
3

Es decir, los tŽrminos presentes en la expresi—n de la funci—n como producto de maxterms (en
ocasiones denominada PoS) son M0, M2, y M3, cuyos sub’ndices son precisamente los que no
aparec’an en la forma can—nica en suma de minterms: a partir de la tabla de verdad se observa que
los maxterms que aparecen en la forma can—nica conjuntiva son aquellos cuyo sub’ndice
corresponde a las combinaciones de entrada que hacen "0" la funci—n. Esto es as’ en virtud de las
distintas notaciones utilizadas para minterms y maxterms. Esta notaci—n, sin embargo, no es
universal: en algunos textos se utilizan otros procedimientos para asignar sub’ndices a los
minterms y a los maxterms, en cuyo caso el mŽtodo de paso de una a otra forma can—nica es
menos inmediato que el aqu’ descrito.
__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 53
_________________________________________________________________________________

Ejercicio 2.7

Obtener la forma can—nica alternativa de las funciones siguientes

a) F(x, y,z) = å m(1,3,7) b) F(x, y,z) = Õ M(0,3,6,7)


3 3
__________________________________________________________________________________

2.3.4 Grupo completo de funciones

Un conjunto de funciones l—gicas es completo cuando cualquier funci—n l—gica se puede expresar
utilizando œnicamente las funciones del grupo. De lo visto en el apartado anterior se deduce que el
conjunto formado por las funciones NOT, AND y OR es un grupo completo de funciones. En realidad
las formas can—nicas son formas de escribir cualquier funci—n utilizando s—lo funciones AND, OR y
NOT.

Es de destacar el hecho que las funciones NAND y NOR constituyen, cada una de ellas por separado,
un grupo completo de funciones. Esto se traduce en que cualquier funci—n l—gica puede expresarse
utilizando œnicamente o bien funciones NAND o bien funciones NOR.

Ejemplo 2.10

Vamos a demostrar que la funci—n NAND constituye un grupo completo. Una forma de
comprobarlo es viendo que utilizando œnicamente funciones NAND podemos realizar las funciones
NOT, AND y OR. Al ser el grupo formado por estas tres funciones un grupo completo, quedar‡
demostrada la completitud de la funci—n NAND. Comencemos viendo que es posible obtener la
funci—n NOT utilizando s—lo funciones NAND

x = x×x Þ

Una vez vista la realizaci—n de la funci—n NOT mediante funciones NAND, resulta inmediato
realizar una funci—n AND utilizando funciones NAND

x1 x2 = x1 × x2 = x1 × x2 × x1 × x2 Þ

Por œltimo, para realizar la funci—n OR podemos aplicar las leyes de De Morgan

© los autores, 1998; © Edicions UPC, 1998.


54 Dise–o digital
_________________________________________________________________________________

x1 + x2 = x1 × x2 = x1 × x1 × x2 × x2 Þ

__________________________________________________________________________________

Ejercicio 2.8

Demostrar que la funci—n NOR consituye, por s’ sola, un grupo completo.


__________________________________________________________________________________

2.3.5 Realizaci—n de logigramas

Mediante algunos ejemplos vamos a presentar c—mo son los logigramas asociados a las expresiones
algebraicas can—nicas de una funci—n l—gica.

Ejemplo 2.11

Dibujar el logigrama de la funci—n del ejemplo 2.7 partiendo de su expresi—n como SoP. A
continuaci—n, realizar el logigrama s—lo mediante funciones NAND. De forma dual, proponer el
logigrama correspondiente al producto de maxterms, y una realizaci—n solo con funciones NOR.

La expresi—n de la funci—n en SoP es y = m1 + m4 + m5 + m6 + m7 = abc + abc + abc + abc + abc ,


por lo que su implementaci—n utilizando funciones AND, OR y NOT es inmediata

a b c

m1

m4

m5
y

m6

m 7

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 55
_________________________________________________________________________________

Para realizar una implementaci—n usando s—lo funciones NAND el procedimiento es el siguiente:
supongamos que sustituimos las puertas AND directamente por puertas NAND; para que el
resultado global permanezca inalterado habr‡ que negar cada entrada de la puerta OR. Recordando
las leyes de De Morgan, una puerta OR de variables negadas es equivalente a una puerta NAND de
las mismas variables sin negar, es decir

Õ ai = å ai
i i

Luego la implementaci—n mediante puertas NAND se obtiene simplemente sustituyendo cada


puerta OR y cada puerta AND por una NAND, sin que sea necesario alterar la topolog’a o las
conexiones del logigrama original.

a b c

m1

m4

m5
y

m6

m7

Partamos ahora de la expresi—n algebraica en producto de maxterms

y = M0 × M2 × M3 = (a + b + c)(a + b + c)(a + b + c)

La implementaci—n con puertas OR, AND y NOT requerida es, otra vez, inmediata a partir de la
expresi—n algebraica

© los autores, 1998; © Edicions UPC, 1998.


56 Dise–o digital
_________________________________________________________________________________

a b c

M0

M 2
y

M3

Para pasar a una implementaci—n s—lo con NOR el procedimiento es dual al anterior. Si
sustituimos las puertas OR directamente por NOR, es evidente que hay que negar cada entrada de la
puerta AND. En consecuencia, la puerta AND final tendr‡ todas sus entradas negadas. Recordando
las leyes de De Morgan, una funci—n AND de variables negadas es equivalente a la funci—n NOR
de las mismas variables sin negar. Luego el resultado ser‡

a b c

M0

M 2
y

M3

__________________________________________________________________________________

La primera conclusi—n que podemos extraer del ejemplo 2.11 es que las formas can—nicas conducen de
una forma inmediata a logigramas con una estructura regular. As’ la forma can—nica en suma de
minterms conduce a logigramas constituidos por dos etapas de puertas (una etapa de puertas AND y
otra de puertas OR en el sentido entrada-salida), siendo las entradas de las puertas AND de la primera
etapa las variables de la funci—n, directas o negadas (mediante puertas NOT). Este resultado es dual para
la forma can—nica en producto de sumas.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 57
_________________________________________________________________________________

Adem‡s, un resultado complementario es que las formas can—nicas conducen tambiŽn de forma natural
a la realizaci—n de cualquier funci—n l—gica mediante logigramas hechos œnicamente con dos etapas de
puertas NAND (caso de partir de la forma can—nica SoP) o con dos etapas de puertas NOR (caso de
partir de la forma can—nica PoS).

Ejercicio 2.9

Obtenga las formas can—nicas en SoP y PoS de la funci—n y(a,b,c) = abc + bc + abc . Obtener
tambiŽn los logigramas de la funci—n en forma de redes de dos niveles de puertas AND-OR, OR-
AND, NAND y NOR.
__________________________________________________________________________________

2.4 Minimizaci—n de funciones l—gicas

Minimizar una funci—n l—gica es encontrar una expresi—n algebraica que la describa y que incluya el
m’nimo nœmero de variables y/o operaciones. Existe un interŽs evidente en poder minimizar funciones
puesto que, en principio, una funci—n l—gica especificada mediante una expresi—n algebraica sencilla
podr‡ implementarse mediante un logigrama (cicuito) m‡s sencillo, y por tanto de menor coste.

Hemos visto en el apartado 2.3 que es posible simplificar la expresi—n algebraica de una funci—n l—gica
mediante la aplicaci—n "adecuada" de las propiedades del ‡lgebra de Boole. Sin embargo dicho
procedimiento tiene algunos inconvenientes: 1- No es sistem‡tico, dependiendo el resultado de la
habilidad de quien lo utiliza. 2- No siempre es f‡cil determinar si se ha obtenido la expresi—n m‡s
simplificada posible. 3- A diferencia de las formas can—nicas, la soluci—n no suele tener un formato
regular, por lo que conduce a logigramas de estructura impredecible a priori.

En este apartado se presenta un mŽtodo sistem‡tico, denominado mŽtodo de Karnaugh, que permite
obtener la expresi—n m’nima de una funci—n l—gica manteniendo el formato de suma de productos y/o
de producto de sumas.

2.4.1 Consideraciones previas

Recordemos que, al representar una funci—n mediante tabla de Karnaugh, en cada casilla se consigna el
valor de la funci—n para una cierta combinaci—n de valores de las variables de entrada. La propiedad
fundamental de la tabla de Karnaugh es que dos casillas adyacentes corresponden a combinaciones de las
variables de entrada que difieren en un solo bit. Por otra parte, recordar‡ el lector que las combinaciones
de entrada que dan lugar a "1" en la tabla de verdad indican los minterms presentes en la expresi—n
can—nica de la funci—n.

© los autores, 1998; © Edicions UPC, 1998.


58 Diseño digital
________________________________________________________________________________

Consideremos a efectos de referencia la función y(a,b,c,d) siguiente

y = ∑ m(0 ,2,4, 6,9,13)


4

Cuya tabla de Karnaugh será

ab\cd 00 01 11 10

00 1 0 0 1

01 1 0 0 1

11 0 1 0 0

10 0 1 0 0

Cada "1" de la tabla corresponde a un minterm presente en la expresión canónica de la función como
suma de minterms. Así por ejemplo el "1" correspondiente a la combinación de entrada
(a,b,c,d)=(0,0,0,0) revela la presencia del minterm a bcd en la expresión canónica de la función.

Dos "1" en celdas adyacentes de la tabla de Karnaugh corresponden a dos minterms en la expresión
canónica de la función que difieren entre sí en una única variable; así en la columna de la izquierda
los dos "1" adyacentes corresponden a los minterms m 0 = abc d y m 4 = abcd respectivamente, que
difieren en el valor de la variable b.

En general, si en la expresión como suma de minterms de una función lógica aparecen dos minterms
que sólo difieren en una variable xi, es claro que aplicando distributividad nos quedarán expresiones
del tipo siguiente

x1x 2 x 3.... x i−1x i+1 .....x n (x i + xi )

El contenido del paréntesis es igual a la unidad y por tanto puede eliminarse. Es decir, la presencia de
dos "1" adyacentes en la tabla de Karnaugh conduce a la eliminación de una variable. Este resultado
es generalizable para 4, 8 y en general 2n casillas adyacentes.

Vamos a clarificar esto mediante el análisis completo y detallado de la función anterior.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 59
_________________________________________________________________________________

Ejemplo 2.12

En la funci—n y(a,b,c,d) referida en el apartado 2.4.1 tenemos dos grupos de casillas adyacentes,
uno formado por los "1" correspondientes a los minterms m9 y m13 y otro formado por los
correspondientes a los minterms m0 , m2 , m4 , y m6 (recordemos que las casillas de la columna
de la derecha se defin’an como l—gicamente adyacentes a las casillas de la columna de la izquierda,
y que las casillas de la fila superior estaban definidas como l—gicamente adyacentes a las casillas de
la fila inferior).

Si observamos el grupo formado por m9 y m13 tenemos

m9 = abcd
m9 + m13 = abcd + abcd = acd(b + b) = acd
m13 = abcd

De la agrupaci—n de los dos minterms hemos eliminado una variable. Si analizamos ahora la
agrupaci—n restante tenemos

m0 = abcd
m2 = abcd m0 + m2 = abd
m4 = abcd m4 + m6 = abd
m6 = abcd

Los dos tŽrminos resultantes tambiŽn difieren entre s’ en una sola variable (b) y, por tanto, al
sumarlos tambiŽn se eliminar‡ esa variable

m0 + m2 + m4 + m6 = ad

Podemos concluir diciendo que una expresi—n simplificada en forma (no can—nica) de suma de
productos de la funci—n y(a,b,c,d) es y = ad + acd .
__________________________________________________________________________________

2.4.2 MŽtodo de Karnaugh

A continuaci—n, como recapitulaci—n y sistematizaci—n de lo visto hasta ahora, se ofrece,


esquematizado, el procedimiento de minimizaci—n

1- Cada celda en un mapa de Karnaugh correspondiente a una funci—n de n variables


tiene n celdas l—gicamente adyacentes, con las cuales difiere en el valor de una variable.

© los autores, 1998; © Edicions UPC, 1998.


60 Diseño digital
________________________________________________________________________________

2- La reunión (suma) de 2p celdas lógicamente adyacentes entre sí que contienen "1" elimina
p variables en la expresión de la función.

3- Al reunir celdas en un mapa de Karnaugh es aconsejable comenzar por las que presentan
menor número de "1" en celdas adyacentes.

4- Hay que formar el menor número de grupos que recubra todos los "1" de la función.
Cuantos menos grupos tengamos menos términos quedarán en la expresión final.

5- Es necesario agrupar tantos "1" como sea posible en cada grupo; recuérdese que grupos
mayores eliminan mayor número de variables.

Ejemplo 2.13

Simplificar, utilizando el método de Karnaugh, la función siguiente

f ( a, b, c , d ) = ∑ m (0 ,1,3,8,9,11,13,14 )
4

Construyamos la tabla de Karnaugh y hagamos las reuniones de todos los "1" de la función

cd\ab 00 01 11 10

00 1 0 0 1
bc
01 1 0 1 1

11 1 0 0 1

10 0 0 1 0 bd

abcd acd

Para identificar las variables que aparecen en el producto asociado a cada grupo de "1", debemos
fijarnos en cuáles de ellas no cambian su valor en todas las celdas del grupo. La expresión
mínima como suma de productos nos queda

f = abcd + acd + bc + bd
_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 61
_________________________________________________________________________________

Ejercicio 2.10

Obtener la expresi—n m’nima en suma de productos de las funciones siguientes

a) F(x, y,z,w) = Õ M(0,1,2,3,4,10,11)


4

b) F(a,b,c,d) = å m(1,2,3,4,6,7,10,15)
4

__________________________________________________________________________________

2.4.3 Minimizaci—n en forma de producto de sumas

TambiŽn es posible obtener la expresi—n simplificada de una funci—n l—gica como producto de sumas.
Podriamos usar un mŽtodo de Karnaugh dual, pero el procedimiento m‡s c—modo es el siguiente: Si
los "1" de la tabla de Karnaugh representan los minterms de la funci—n, entonces los "0" representan
los minterms de la funci—n negada. Aplicando el mŽtodo de minimizaci—n a los "0" en lugar de a los
"1", se obtendr‡ la expresi—n m’nima en suma de productos de la funci—n negada. Complementando el
resultado y aplicando las leyes de De Morgan, obtendremos la expresi—n m’nima como producto de
sumas.

Ejemplo 2.14

Vamos a minimizar la funci—n del ejemplo 2.13 en forma de producto de sumas. Para ello
comencemos construyendo la tabla de Karnaugh y hagamos las reuniones de todos los "0" de la
funci—n en grupos de 2p

cd\ab 00 01 11 10

00 1 0 0 1
bcd
01 1 0 1 1
bcd
11 1 0 0 1

10 0 0 1 0

bcd ab

Luego la expresi—n m’nima de la funci—n complementaria como suma de productos es

© los autores, 1998; © Edicions UPC, 1998.


62 Dise–o digital
_________________________________________________________________________________

f = bcd + bcd + b cd + ab

Complementando ambos lados de la igualdad y aplicando las leyes de De Morgan, nos queda la
expresi—n m’nima requerida

f = f = (b + c + d )(b + c + d)(b + c + d)(a + b )


__________________________________________________________________________________

Ejercicio 2.11

Obtener la expresi—n m’nima como producto de sumas de las funciones propuestas en el ejercicio
2.10
__________________________________________________________________________________

2.4.4 Minimizaci—n de funciones incompletamente especificadas

El mŽtodo de Karnaugh tambiŽn se puede aplicar en el caso de funciones incompletamente


especificadas. En esencia se trata de que, para las combinaciones de entrada para las cuales la funci—n
no est‡ especificada, supondremos que la funci—n toma el valor, "0" o "1", que sea m‡s conveniente
para obtener la m‡xima simplificaci—n.

Ejemplo 2.15

Sea la funci—n

f (a,b,c,d) = å m(2,7,8,10,12,13,15) + å m(5,11,14)


4 x

Esta notaci—n expresa que para las combinaciones de las variables de entrada asociadas a los
minterms 5,11, y 14 la funci—n no est‡ especificada.

La minimizaci—n de esta funci—n en forma de suma de productos ser’a la correspondiente a la tabla


de Karnaugh de la figura 2.5.a, con lo que resulta la expresi—n f = acd + b cd + bd . N—tese que
para obtener esta simplificaci—n se ha asignado el valor "1" a uno de los tŽrminos no especificados
(concretamente el correpondiente a m5) y el valor "0" a los otros dos.

Si quisiŽramos obtener la expresi—n m’nima como producto de sumas habr’a que agrupar los ceros
de la funci—n tomando otra vez para las combinaciones no especificadas el valor m‡s conveniente
para obtener la m‡xima simplificaci—n.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 63
_________________________________________________________________________________

a) b)
ab\cd 00 01 11 ab\cd 00
10 01 11

00 0 0 0 100 0 0 0

01 0 X 1 001 0 X 1

11 1 1 1 X11 1 1 1

10 1 0 X 110 1 0 X

Figura 2.5 Mapas de Karnaugh del ejemplo 2.15

De acuerdo con la figura 2.5.b, la expresi—n m’nima como suma de productos de la funci—n negada
y la expresi—n final como producto de sumas ser‡n

f = abd + ac + b d
f = f = (a + b + d)(a + c)(b + d )

N—tese que en este œltimo caso se ha efectuado una asignaci—n de valores para los tŽrminos
inespecificados diferente de la realizada para obtener una suma de productos m’nima, concretamente
"1" para el correspondiente a m14 y "0" para los otros dos.

Ejercicio 2.12

Obtener las expresiones m’nimas como suma de productos y como producto de sumas de la
funci—n incompletamente especificada siguiente:

F = å m(0,2,3,6,7) + å m(5,8,10,11,15)
4 x
__________________________________________________________________________________

2.4.5 Limitaciones del mŽtodo de Karnaugh

En este texto no hemos intentado presentar soluciones universales al problema de la minimizaci—n de


funciones l—gicas. En concreto, el mŽtodo presentado deja dos lagunas importantes: 1- ÀquŽ hacer con
funciones de muchas variables? 2- ÀquŽ hacer cuando se presentan varias funciones l—gicas de las
mismas variables (multifunciones) y lo que interesa minimizar es el nœmero global de tŽrminos
presentes en sus expresiones algebraicas?

© los autores, 1998; © Edicions UPC, 1998.


64 Dise–o digital
_________________________________________________________________________________

Respecto al primer problema hay que indicar que existen herramientas inform‡ticas de ayuda al dise–o
digital que permiten resolverlo con comodidad: es evidente que el mŽtodo de simplificaci—n de
Karnaugh pierde su manejabilidad cuando el nœmero de variables de la funci—n es igual o superior a
seis, pero tambiŽn es evidente que el algoritmo que se aplica no depende de este nœmero, siendo
posible implementarlo inform‡ticamente.

Admitiendo como entrada la tabla de verdad, una expresi—n algebraica, e incluso en algunos casos un
logigrama de la funci—n, estas herramientas inform‡ticas proporcionan una expresi—n simplificada de la
funci—n. Esta expresi—n suele ser m’nima cuando el nœmero de variables es inferior a una cierta cota, y
muy simplificada (pero no m’nima) cuando el nœmero de variables supera esta, caso en el que suelen
emplearse algoritmos no estrictamente de minimizaci—n.

En cuanto a la simplificaci—n de multifunciones, no es evidente que se obtenga un resultado —ptimo


(con el menor nœmero global de tŽrminos) a base de minimizar cada funci—n por separado. Veamos
esto mediante un ejemplo.

Ejemplo 2.16

Implementar las funciones F1 (a,b,c) y F2 (a,b,c) mediante una red AND-OR de dos niveles
m’nima, es decir con el menor nœmero total posible de puertas.

F1 (a,b,c) = å m(0,1,2,3,7) F2 (a,b,c) = å m(0,2,7)


3 3

Una opci—n es minimizar cada funci—n por separado, con lo que se obtienen los mapas y el
logigrama de la figura 2.6.

a
a\bc 00 01 11 10 00 01 11 10 b F1
c
0 1 1 1 1 0 1 0 0 1 a
b
1 0 0 1 0 1 0 0 1 0 c F2
a
F 1 = a + bc F2 = abc + ac c

Figura 2.6 Primera soluci—n del ejemplo 2.16

Observando el resultado obtenido vemos que es posible realizar las funciones utilizando una puerta
menos si se aprovecha el tŽrmino comœn m7, tal como indica la figura 2.7, con lo que se llega al
resultado, esta vez s’, m’nimo.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 65
_________________________________________________________________________________

a\bc 00 01 11 10 00 01 11 10 a
F1
a
0 1 1 1 1 0 1 0 0 1 b
c
F2
1 0 0 1 0 1 0 0 1 0 a
c
F 1 = a + abc F2 = abc + ac

Figura 2.7 Segunda soluci—n del ejemplo 2.16

__________________________________________________________________________________

A la luz de lo mostrado en el ejemplo 2.16, el mŽtodo de simplificaci—n de multifunciones deber’a


considerar el reutilizar puertas en m‡s de una funci—n o, lo que es lo mismo, buscar tŽrminos o grupos
comunes a diversas funciones.

El mŽtodo de Quine-McCluskey, que no presentaremos en este texto, es un mŽtodo tabular basado en


la misma idea que el de Karnaugh, es decir, en simplificar expresiones del tipo suma de productos o
producto de sumas, aplicando la equivalencia booleana a(b + b ) = a o su dual, a + (bb ) = a , que
permite minimizar multifunciones. Ahora bien, incluso para pocas variables, en este mŽtodo se
pierden las "facilidades visuales" que posee el de Karnaugh, ya que es engorroso de usar, pero su
implementaci—n inform‡tica es directa y sencilla.

2.5 Cuestiones y problemas

Cuestiones

C2.1 ÀCu‡ntas funciones incompletamente especificadas distintas de n variables pueden encontrarse?

C2.2 Plantee las diferencias entre suma l—gica y suma aritmŽtica. ÀCon quŽ funciones l—gicas puede
identificarse cada una de ellas?

C2.3 Escriba las definiciones de minterm y maxterm.

C.2.4 ÀQuŽ importancia tiene el orden de las variables en la notaci—n de minterms y maxterms?
Expl’quelo con un ejemplo.

C2.5 Explore en detalle las consecuencias de utilizar la misma notaci—n, referente a los sub’ndices,
para los minterms que para los maxterms, y no la dual, tal como se comenta en el apartado 2.3.1.

© los autores, 1998; © Edicions UPC, 1998.


66 Dise–o digital
_________________________________________________________________________________

C2.6 ÀQuŽ ventajas de orden pr‡ctico se derivan de la existencia de grupos completos de funciones?

C2.7 ÀTiene alguna importancia el orden de las variables en un mapa de Karnaugh al aplicar el mŽtodo
de minimizaci—n?

C2.8 ConsidŽrese la posibilidad de usar distintos c—digos de Gray para ordenar las variables en un mapa
de Karnaugh. ÀAfectar’a al mŽtodo de simplificaci—n y/o al resultado?

C2.9 Escriba la expresi—n algebraica como suma de minterms y como producto de maxterms de las
funciones XOR de dos y tres variables. Escriba a continuaci—n la expresi—n obtenida al aplicar el
mŽtodo de simplificaci—n de Karnaugh, y compare los resultados.

C2.10 ÀPor quŽ, al simplificar una funci—n mediante el mŽtodo de Karnaugh, los "1" del mapa de
Karnaugh deben reunirse en grupos de 2p?

C2.11 ÀEs œnica la expresi—n m’nima como suma de productos asociada a una funci—n l—gica? Ilustre
su respuesta con la funci—n:

f (x, y,z,w) = å m(3,5,6,7,9,11,13)


4

C2.12 Enuncie de forma sistem‡tica el mŽtodo dual de minimizaci—n de Karnaugh para obtener
directamente expresiones en forma de producto de sumas.

C2.13 Piense en c—mo debe aplicarse el mŽtodo de simplificaci—n de Karnaugh para funciones de 5
variables. Apl’quelo a la funci—n siguiente

f (a,b,c,d,e) = å m(1,2,4,6,10,11,12,18,20,21,22,28,29,30,31)
5

Problemas

P2.1 Realice las funciones l—gicas NOR y NAND de dos variables utilizando œnicamente un m—dulo
como el indicado a continuaci—n. ÀSer’a posible realizar tambiŽn la funci—n XOR de dos variables
solamente con este m—dulo?

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 67
_________________________________________________________________________________

P2.2 La composici—n de funciones l—gicas es otra funci—n l—gica. Si consideramos el caso de


funciones l—gicas incompletamente especificadas, determine c—mo ser‡ la funci—n f tal que

f (x n-1 ,..., x1 , x 0 ) = g[ h(x n-1 ,..., x1 , x 0 )]

considerando los siguientes casos:

a) h est‡ especificada incompletamente y g completamente.

b) h est‡ especificada completamente y g incompletamente.

c) h y g est‡n especificadas incompletamente.

Se sugiere analizar primero algœn caso con funciones concretas y despuŽs generalizar el resultado.

P2.3 H‡llense las expresiones algebraicas de las funciones y1 e y2. Escrib‡nse tambiŽn sus tablas de
verdad y sus mapas de Karnaugh.

a) a
b
c y1
d
b

a
b) b
c
y2
d
b

P2.4 Demostrar que si a, b, c Î {0,1}, entonces

a) ab = ac Þ
/ b=c

ì ab = ac ü
b) í ýÞb =c
îa + b = a + c þ

c) a Å b = c Û a Å c = b Û b Å c = a

© los autores, 1998; © Edicions UPC, 1998.


68 Dise–o digital
_________________________________________________________________________________

P2.5 Obtenga una expresi—n algebraica y una tabla de verdad de cada una de las funciones realizadas por
el logigrama siguiente

f1

b
f2

P2.6 Demuestre las igualdades siguientes:

aÅb= a Åb
a(b Å c) = ab Å ac

P2.7 Cualquier funci—n l—gica de dos variables f(x,y) puede expresarse en funci—n de una combinaci—n
de cuatro par‡metros ai Î {0,1}, de la siguiente manera

f (x, y) = a0 xy + a1 xy + a2 xy + a3 xy

que corresponde a la forma can—nica en suma de productos. Demuestre que tambiŽn es posible escribir
f(x,y) en funci—n de otros cuatro par‡metros bi Î {0,1}, as’

f (x, y) = b0 Å b1 y Å b2 x Å b3 xy

P2.8 Una funci—n l—gica f es completa si cualquier otra funci—n l—gica g puede ser expresada
œnicamente en tŽrminos de f. Suponiendo que es posible utilizar como entradas dos variables l—gicas y
los valores constantes "0" y "1", Àcu‡les de las 16 funciones diferentes de dos variables son por s’
mismas completas? Justificar la respuesta. Util’zese como dato conocido (que no hace falta demostrar)
que las funciones NOR y NAND son completas.

P2.13 Considere el logigrama de la figura, respecto del cual se pide:

a) Obtener la tabla de verdad de la funci—n f(a,b,c,d).

b) Expresar f mediante las formas can—nicas SoP y PoS.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del dise–o digital 69
_________________________________________________________________________________

c) Realizar f utilizando el menor nœmero posible de puertas NOR de tres entradas.

d) Repetir el apartado anterior utilitzando puertas NAND de tres entradas.

a
c
a
d
f
c
d
b
d

P2.9 Dada la funci—n l—gica f (x, y,z) = x × y + x × y + y × z , se pide implementarla

a) Mediante puertas AND, OR y NOT.

b) Mediante puertas OR y NOT.

c) Mediante puertas AND y NOT.

d) Mediante puertas AND y XOR.

P2.10 Simplifique la funci—n f = f1 f2 + f3 utilizando el mŽtodo de Karnaugh.


f 1 = å m(1,2,3,5,7) f 2 = å m(0,1,5) f 3 = Õ M(2,3,5,7)
3 3 3

P2.11 Dise–e un logigrama que corresponda a un conversor de c—digo binario de 3 bits a Gray de 3
bits. ÀEs posible hacerlo utilizando solamente puertas XOR de 2 entradas?

P2.12 Dise–e un sistema combinacional como el especificado utilizando una red de puertas {AND,
OR, NOT} de dos etapas. (Nota): en este caso el s’mbolo S indica suma aritmŽtica.

X Î{0,1}
SISTEMA 3 2
Z = å Xi
3 2
X A Z
Z Î{0,1}
2
DISE AR i=0

© los autores, 1998; © Edicions UPC, 1998.


70 Dise–o digital
_________________________________________________________________________________

P2.13 El objetivo es dise–ar un comparador y detector de igualdad que opere con nœmeros codificados
en binario de dos bits, segœn la siguiente especificaci—n:

2
a SISTEMA 3
A z
2
b DISE„AR

ì1 si a = b ì1 si a > b ì1 si a < b
z0 = í z1 = í z2 = í
î0 si a ¹ b î0 si a £ b î0 si a ³ b

Se pide realizar una implementaci—n m’nima del comparador utilizando œnicamente puertas NOR.
Nota: ObsŽrvese que las funciones son mutuamente excluyentes y que es posible obtener
cualquiera de ellas a partir de las otras dos.

P2.14 Considere la funci—n F(h8,h4,h2,h1) realizada mediante el logigrama siguiente

h2
h1 F

h8
h4

donde las entradas corresponden a las horas de un reloj codificadas en binario: F vale "1" para
ciertas combinaciones de entrada (horas). Se pide realizar un logigrama m’nimo que dŽ el valor
l—gico "1" para las mismas combinaciones de entrada v‡lidas que el anterior.

P2.15 Simplifique la funci—n f = f1 + f2 f3 utilizando el mŽtodo de Karnaugh.


f 1 = å m(1,7) + å m(6) f 2 = å m(3,5,6) f 3 = Õ M(5,6,7)
3 x 3 3

P2.16 Implemente la funci—n f(a,b,c) especificada por la siguiente evoluci—n temporal de los valores de
la salida en funci—n de los valores de las variables de entrada, donde el nivel alto corresponde al valor
l—gico "1" y el bajo al valor "0".

a) Utilizando solamente puertas NAND.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos abstractos del diseño digital 71
________________________________________________________________________________

b) Utilizando solamente puertas XOR de dos entradas.

P2.17 Se quiere diseñar un subsistema que forma parte un calendario. El objetivo es obtener una
salida que nos indique los dias que tiene cada mes (30, 31 o bien <30), a partir de una entrada que es
el número del mes codificado en binario. Se pide realizar una implementación mínima del subsistema
usando solamente puertas NOR de tres entradas e inversores.

M8 D31
SISTEMA
M4
A D30
M2
DISEÑAR D<30
M1

P2.18 Diseñe un sistema combinacional que determine si una combinación codificada en ASCII
corresponde o no a un dígito decimal. Utilizar solamente puertas NAND y/o NOR de tres entradas.

P2.19 El logigrama de la izquierda, Y0 corresponde a una posible implementación de la función


incompletamente especificada Y.

X 3 X 2 X1 X0
X 3 X 2 X1 X0

Y0 Y1

© los autores, 1998; © Edicions UPC, 1998.


72 Dise–o digital
_________________________________________________________________________________

a) Analice la funci—n l—gica Y0 y escriba su forma can—nica como producto de sumas.

b) Construya su mapa de Karnaugh y encuentre la expresi—n m’nima de Y0 como producto de


sumas.

c) Si Y 1, en la figura de la derecha, es otra posible implementaci—n para Y, Àcu‡les de las


combinaciones de entrada X 3 X2 X1 X0 deben ser inespecificadas y por quŽ? Razone si ser’a
posible que hubiera m‡s inespecificaciones.

d) Encuentre el mapa de Karnaugh de Y. Proponga una implementaci—n m’nima de Y hecha con


dos niveles de puertas NAND.

P2.20 Se pide hacer la implementaci—n m’nima del sistema combinacional siguiente teniendo en
cuenta que para realizarla se dispone solamente de 3 puertas OR de 3 entradas, 6 puertas AND de 3
entradas y tantos inversores como sean necesarios.

SISTEMA
4 3
x A f
DISE„AR

f 1 = å m(0,4,9,11,15) + å m(1,5)
4 x

f 2 = å m(0,4,6,7,13) + å m(5)
4 x

f 3 = Õ M(1,3,4,6,7,8,9,10,12,14)Õ M(11)
4 x

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 73
_________________________________________________________________________________

Cap’tulo 3 Fundamentos circuitales del dise–o digital

En el cap’tulo anterior se han presentado las bases formales necesarias para el tratamiento de funciones
l—gicas. El lector en este punto deber’a sentirse capacitado para dise–ar, a nivel de logigrama, sistemas
combinacionales sencillos, especificar las funciones l—gicas que los definen y obtener expresiones
simplificadas de estas funciones. En este cap’tulo se presentan estructuras circuitales que permiten
realizar f’sicamente dichas funciones l—gicas.

Los elementos b‡sicos de los circuitos digitales son los transistores, ya sean bipolares o de efecto de
campo. Sea cual sea el tipo de transistor utilizado, diversas estructuras topol—gicas son posibles, y
cada una de ellas da lugar a una determinada familia de puertas l—gicas. Este cap’tulo se centra en la
familia denominada CMOS (MOS complementaria), por ser en la actualidad la preponderante en el
mercado de circuitos integrados digitales.

Como se observar‡, en este cap’tulo, a diferencia de los anteriores, el Žnfasis est‡ puesto en los
aspectos elŽctricos, valores de corrientes y tensiones y su evoluci—n temporal. Posiblemente esto
sorprenda al lector, el cual deber‡ realizar un cierto esfuerzo de adaptaci—n.

3.1 Caracter’sticas elŽctricas de las puertas l—gicas

Una puerta l—gica es un circuito electr—nico cuyas entradas y salidas trabajan en conmutaci—n entre dos
estados claramente diferenciados. En este texto utilizaremos como componente b‡sico de las puertas
l—gicas el transistor MOS y, en particular, nos centraremos en la llamada tecnolog’a CMOS. Antes
presentaremos las caracter’sticas elŽctricas m‡s relevantes de una puerta l—gica. Estas caracter’sticas son
genŽricas y aplicables a puertas realizadas mediante cualquier tecnolog’a.

Vamos a centrar la descripci—n de las caracter’sticas elŽctricas para una de las puertas l—gicas m‡s
sencillas: el inversor. En cualquier caso, lo que aqu’ presentaremos es directamente extrapolable a las
entradas y salidas de cualquier otro tipo de puerta.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
74 Dise–o digital
_________________________________________________________________________________

3.1.1 Curva de transferencia y niveles l—gicos

Si en una puerta l—gica se utilizan dos valores de tensi—n claramente diferenciados tanto en las entradas
como en las salidas, es natural establecer una correspondencia, en principio arbitraria, entre estos dos
valores y los valores posibles de una variable l—gica, "0" y "1". Restringido al caso de un inversor,
cuando la entrada tome el valor de tensi—n asignado al valor l—gico"0", la salida debe tomar el valor de
tensi—n correspondiente al valor l—gico "1" y viceversa.

La curva de transferencia de un inversor relaciona las tensiones de salida y de entrada. Esta curva suele
tener la forma genŽrica presentada en la figura 3.1.

VO
V OH VDD
VOHmin

Vi VO

VOLmax
V OL
Vi
VIL V IH V DD

Figura 3.1 Curva de transferencia de un inversor

Para un funcionamiento correcto del inversor es preciso asegurar que en rŽgimen est‡tico el punto de
trabajo del circuito (Vi,VO) se sitœe en las zonas extremas de entradas y salidas. Estas zonas se definen
de la manera siguiente: la tensi—n de entrada al inversor Vi es considerada valor l—gico alto si es mayor
que cierta tensi—n VIH; con lo que se genera, de acuerdo con la curva de transferencia, una tensi—n de
salida baja (inferior a VOLmax), que corresponder‡ a su valor l—gico complementario. En cambio, Vi se
considera valor l—gico bajo cuando es inferior a la tensi—n VIL, lo que da lugar a una tensi—n de salida
alta (superior a VOHmin), que corresponder‡ a su valor l—gico complementario.

VOL es el valor de tensi—n que toma la salida cuando la tensi—n a la entrada corresponde al mejor valor
l—gico alto posible (Vi=V DD ). SimŽtricamente, VOH es el valor de tensi—n en la salida cuando la
tensi—n en la entrada corresponde al mejor valor l—gico bajo posible (Vi=0). Por otro lado, VIL es el

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 75
_________________________________________________________________________________

m’nimo valor de Vi tal que en dicho punto la derivada de la curva de transferencia toma el valor -1.
An‡logamente VIH es el m‡ximo valor de Vi para el cual la derivada de la curva de transferencia toma
el valor -1. Estos l’mites se corresponden con los peores niveles l—gicos aceptables a la entrada.
Subsidiariamente se define VOHmin como el valor que toma la salida cuando Vi=VIL y VOLmax como
el valor que toma la salida cuando Vi=VIH.

La zona intermedia de tensiones de entrada debe ser, en principio, evitada ya que carece de valor l—gico
asociado. TambiŽn puede observarse que un circuito con una curva de transferencia como la de la figura
3.1 polarizado en la zona VIL<Vi<VIH se comportar’a como un amplificador: a peque–as variaciones
de la tensi—n de entrada, superpuestas a la tensi—n de polarizaci—n o de rŽgimen permanente, responder’a
con variaciones mayores de la tensi—n de salida.

En resumen, para un correcto funcionamiento de una puerta inversora, los valores de tensi—n en la
entrada deben estar comprendidos, cuando la entrada toma el valor l—gico alto, entre VIH y la tensi—n de
alimentaci—n VDD (habitualmente asignado al "1" l—gico). SimŽtricamente cuando la entrada toma el
valor l—gico bajo, los valores de tensi—n en la misma deben estar comprendidos entre VIL y 0 V
(tensi—n asignada al "0" l—gico). En estas condiciones los valores de tensi—n en la salida est‡n
comprendidos entre VOL y VOLmax en el primer caso y entre VOHmin y VOH en el segundo. Se recoge
un resumen esquematizado de todo esto en la figura 3.2.

Vi VO

V DD VDD V OH
"1" "1"
VOHmin
V IH
Vi VO
VIL
"0" VOLmax
"0"
V OL
0

Figura 3.2 Resumen esquem‡tico de los niveles l—gicos en un inversor

3.1.2 M‡rgenes de ruido

Cuando dos puertas l—gicas se conectan en serie es preciso que haya una concordancia entre los niveles
l—gicos de salida de la primera de ellas y los de entrada de la siguiente, es decir, que la salida alta de la
primera puerta sea reconocida como entrada alta por la puerta siguiente, y que la salida baja de la
primera puerta sea reconocida como tal por la siguiente. Vamos a estudiar el caso de la conexi—n de dos
inversores mostrado en la figura 3.3.

© los autores, 1998; © Edicions UPC, 1998.


76 Dise–o digital
_________________________________________________________________________________

A partir de la figura es evidente que la concordancia requerida de valores l—gicos implica que se
cumplan dos condiciones: que VIH<VOHmin y adicionalmente que VIL>VOLmax.

1 2

VO1 Vi2

VOH VDD

VOHmin
NMH VIH

VIL
NML
VOLmax
V OL 0

Figura 3.3 Conexi—n en cascada de inversores

Cuanto mayores sean las diferencias VOHmin- V IH y VIL- V O L m a x , m‡s resistente ser‡ el
funcionamiento del circuito a peque–as variaciones incontroladas del valor de la tensi—n VO1 a
transmitir. Dado que el valor de la tensi—n de salida de un inversor est‡ afectado de peque–as
fluctuaciones espœreas e indeseadas (comœnmente llamadas ruido), nos cuestionamos cu‡l es el valor
m‡ximo admisible de estas fluctuaciones para que el funcionamiento del circuito siga siendo correcto o,
lo que es lo mismo, la etapa siguiente siga interpretando correctamente el valor de tensi—n a su entrada.

La figura 3.3 permite definir, ya formalmente, los m‡rgenes de ruido alto (NMH) y bajo (NML) de un
inversor como

NMH = VOH min - V IH


NML = V IL - VOL max

Es conveniente darse cuenta de que en realidad el margen de ruido œtil es el menor de los dos: como las
se–ales espœreas son incontroladas por naturaleza, pueden aparecer en cualquiera de los estados de la
puerta; por tanto, s—lo el menor de los dos m‡rgenes indica la protecci—n real que tenemos frente al
ruido.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 77
_________________________________________________________________________________

3.1.3 Retardos de propagaci—n

Una puerta l—gica, como cualquier otro circuito electr—nico, es incapaz de responder instant‡neamente
(en un tiempo nulo) a un cambio de valor de sus entradas. Esto se debe a la existencia de efectos
capacitivos par‡sitos. As’, por ejemplo, cuando la puerta tiene que dar a su salida un "1", tras haber
dado un "0", suministra corriente a una capacidad de carga hasta que la tensi—n en bornas de Žsta alcanza
un valor alto (normalmente VOH). SimŽtricamente cuando la salida debe dar un "0" tras haber dado un
"1", la puerta extrae corriente de la capacidad hasta que la tensi—n disminuye a un valor bajo
(normalmente VOL).

Los efectos capacitivos par‡sitos siempre est‡n presentes en un circuito integrado, por lo que la
existencia de retrasos asociados con su carga y descarga es inevitable.

Cuando estudiemos el funcionamiento en rŽgimen transitorio, o conmutaci—n, de una puerta l—gica la


supondremos cargada con un condensador CL, correspondiente a la capacidad par‡sita vista desde el
nodo de salida. En rŽgimen permanente o est‡tico CL no tiene ninguna influencia; luego no afecta a
par‡metros elŽctricos "est‡ticos" como son los niveles l—gicos o los m‡rgenes de ruido.

La figura 3.4 muestra un ejemplo de evoluci—n temporal de las entradas y salidas de un inversor.

Vi

V DD
t
t PHL t PLH
Vi VO VO
CL 90%
50%
10%
t
t HL t LH

Figura 3.4 Tiempos de conmutaci—n y retardos en un inversor

Se puede cuantificar el retraso producido por las conmutaciones mediante diversos par‡metros: 1.-
Tiempos de conmutaci—n alto-bajo y bajo-alto, tHL y tLH son los tiempos transcurridos desde que se
produce la conmutaci—n a la entrada hasta que la salida alcanza el 90% del valor final (caso tLH) o el
10% del valor inicial (caso tHL ). 2.- Retardos de propagaci—n alto-bajo (tPHL ) y bajo-alto (tPLH )
definidos hasta el 50% del valor inicial o final respectivamente. Es evidente que estos dos tipos de
tiempos no son independientes entre s’.

© los autores, 1998; © Edicions UPC, 1998.


78 Dise–o digital
_________________________________________________________________________________

Por razones de orden pr‡ctico, en este texto trabajaremos casi exclusivamente con los retardos de
propagaci—n: como se ver‡ en el cap’tulo 4, es posible obtener estimaciones de tPHL y tPLH utilizando
mŽtodos aproximados muy sencillos. En cambio, la obtenci—n de los tiempos de conmutaci—n exige
c‡lculos farragosos; por ello normalmente no se aborda este c‡lculo manualmente sino mediante
simulaci—n del circuito. El lector interesado en el c‡lculo manual encontrar‡ ejemplos concretos en el
volumen de esta misma colecci—n indicado en la bibliograf’a.

3.1.4 Potencia consumida


Una puerta l—gica es un circuito que conmuta entre dos estados estables y, por tanto, la potencia
consumida ser‡, en principio, distinta cuando la salida est‡ en estado alto que cuando est‡ en estado
bajo o bien cuando est‡ conmutando de un estado al otro.
Razonando en tŽrminos de rŽgimen permanente, podemos definir la potencia est‡tica consumida por un
inversor como la media aritmŽtica entre la potencia disipada cuando la salida es alta y la potencia
disipada cuando la salida es baja

POH + POL ìï POH = V DD I DD


PD = con í H
2 îï POL = V DD I DD L

siendo VDD e IDD la tensi—n y la corriente suministradas por la alimentaci—n al circuito. Esta
definici—n supone impl’citamente que la salida del inversor pasa aproximadamente la mitad del tiempo
en nivel alto y la otra mitad en nivel bajo.
Por otra parte, en cuanto a la potencia consumida durante los transitorios, podemos definir la potencia
din‡mica consumida por un inversor como la necesaria para poder conmutar el valor de la tensi—n en el
nodo de salida en un cierto per’odo de tiempo. As’, tomando como referencia una se–al de entrada
peri—dica, se tiene

V DD
T/2
1 dVO (t)
Vi V O ® Pdin =
T òC V
T
L O (t)
dt
dt

T CL

Figura 3.5 Potencia din‡mica consumida por un inversor

En general una puerta l—gica pasa m‡s tiempo en rŽgimen est‡tico que conmutando, por lo que el
consumo de potencia m‡s notable suele ser el est‡tico. No obstante, en algunas familias l—gicas, como
la CMOS, el consumo est‡tico es pr‡cticamente nulo, siendo el consumo din‡mico el œnico
significativo.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 79
_________________________________________________________________________________

3.2 El transistor MOS

Dado que todos los circuitos cuya presentaci—n y estudio es el objetivo del presente cap’tulo est‡n
formados por transistores MOS (Metal îxido Semiconductor), resulta imprescindible introducir la
estructura f’sica y el funcionamiento b‡sico del transistor MOS, presentando tambiŽn los tipos o
variantes de mayor interŽs.

3.2.1 Estructura y funcionamiento b‡sico

El transistor MOS es un dispositivo de tres terminales en el cual el flujo de corriente entre dos de
ellos, denominados drenador y surtidor, es controlado fundamentalmente a travŽs de la tensi—n aplicada
al tercer terminal, llamado puerta.

La estructura f’sica de un transistor MOS se muestra en la figura 3.6. El sustrato puede ser silicio de
tipo P o de tipo N. Drenador y surtidor (D y S) son zonas muy dopadas con impurezas de tipo
contrario a las del sustrato. La puerta (G) est‡ formada por una capa de polisilicio muy dopada (de tipo
N), existiendo entre Žsta y el sustrato una capa de —xido de silicio SiO2 , material de excelentes
propiedades aislantes. En funci—n de si el sustrato es tipo P o tipo N hablaremos respectivamente de
transistores MOS de canal N (NMOS) o de canal P (PMOS).

Zona muy dopada Puerta (G)


(D/S)
Oxido de puerta
W
Zona muy
dopada (S/D)
L
Zona del
canal Sustrato (B)

Figura 3.6 Estructura f’sica de un transistor MOS

Si se observa su estructura es evidente que el transistor MOS es un dispositivo simŽtrico: drenador y


surtidor son f’sicamente indistinguibles. En realidad cada uno de los terminales S/D y D/S actuar‡
como drenador o como surtidor en funci—n de las tensiones que se apliquen al transistor.

Para fijar ideas veamos de forma cualitativa el funcionamiento de un transistor NMOS. Como se
muestra en la figura 3.7, el sustrato ser‡ de tipo P y tanto drenador como surtidor ser‡n de tipo N.
Tomaremos la referencia de tensiones en el terminal de la izquierda (VS=0), de manera que las tensiones
(siempre positivas) que aplicaremos a los otros dos terminales ser‡n VGS =V G y VDS =V D . Esta

© los autores, 1998; © Edicions UPC, 1998.


80 Dise–o digital
_________________________________________________________________________________

terminolog’a indica que el drenador de un transistor NMOS es el terminal simŽtrico al que se aplica la
tensi—n m‡s alta. Dada su escasa influencia, en primera aproximaci—n, sobre el funcionamiento del
transistor, obviaremos de momento el efecto de una tensi—n de sustrato distinta de la de surtidor.
Supondremos, por tanto, una tensi—n VSB=0.

G
S (-) D (+)
G
n+ n+

p
S (-) D (+)
B ID
B

Figura 3.7 Secci—n vertical y s’mbolo circuital de un transistor NMOS

Una primera conclusi—n que puede obtenerse a la vista de la estructura del transistor es que, en
condiciones est‡ticas, la corriente que fluye por el terminal de puerta siempre es nula, puesto que est‡
conectado a un material aislante. En consecuencia, en estas condiciones s—lo puede fluir una corriente
no nula (ID) entre los dos terminales simŽtricos.

Si la tensi—n aplicada a la puerta (VGS) es nula o negativa, sea cual sea el valor de la tensi—n aplicada
al drenador (VDS), tendremos una corriente ID nula. Ello es debido a la presencia de dos uniones P/N
polarizadas inversamente en el camino entre drenador y surtidor.

Si por el contrario aplicamos una tensi—n VGS positiva, por analog’a a un condensador, se acumular‡n
cargas negativas (electrones) en la zona de substrato debajo de la puerta. Si la tensi—n VGS es
suficientemente grande, estas cargas negativas formar‡n un "canal" conductor que permitir‡ la
circulaci—n de corriente entre los dos terminales extremos. Si simult‡neamente la tensi—n VDS es
positiva, los electrones fluir‡n del terminal de la izquierda (llamado por ese motivo surtidor) al
terminal de la derecha (llamado por este motivo drenador). Como se define la corriente elŽctrica como
un desplazamiento de cargas positivas, diremos que la corriente ID fluir‡ de drenador a surtidor.

Intuitivamente parece razonable pensar que, a mayor valor de VGS, la corriente ID ser‡ tambiŽn mayor.
Asimismo tambiŽn parece razonable pensar que, atendiendo a la sencilla descripci—n del mecanismo
f’sico involucrado, la corriente ID aumentar‡ tambiŽn al aumentar la tensi—n VDS. Esto es cierto para
peque–os valores de VDS; sin embargo, al aumentar VDS m‡s all‡ de un cierto valor, la corriente deja
de aumentar (es decir, satura), situaci—n en que se dice que el canal est‡ estrangulado. La raz—n es la
siguiente: si la tensi—n de puerta es fija, al aumentar progresivamente la tensi—n en el drenador, llega
un momento en el que la diferencia de potencial entre la puerta y los puntos pr—ximos al drenador es

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 81
_________________________________________________________________________________

insuficiente para acumular las cargas negativas necesarias para formar canal. Como consecuencia el
canal deja de existir en las proximidades del drenador.

A continuaci—n se presentan expresiones anal’ticas sencillas que relacionan la corriente en un transistor


NMOS con las tensiones aplicadas en terminales. Para ello seguiremos utilizando la terminolog’a
definida en los p‡rrafos anteriores y supondremos que existe un cortocircuito entre el sustrato y el
surtidor del transistor (es decir, VSB=0).

Llamaremos tensi—n umbral VT a la tensi—n de puerta VGS m’nima necesaria para formar canal y
posibilitar por tanto la circulaci—n de corriente entre drenador y surtidor. Valores t’picos de la tensi—n
umbral en transistores NMOS se sitœan en el rango 0.7-1V. Para valores de VGS menores que VT la
corriente circulante entre drenador y surtidor es pr‡cticamente nula, situaci—n que define la llamada zona
de corte del transistor.

La corriente que circula entre drenador y surtidor, para VGS>VT y valores peque–os de VDS, viene dada
por la expresi—n siguiente

é V2 ù W
I D = K ê(V GS - V T )V DS - DS ú con K = m n Cox
êë 2 ûú L

donde mn es la movilidad de los electrones en el sustrato (cm2/V.s), Cox es la capacidad por unidad de
superficie (F/cm2) del condensador plano formado por el polisilicio de puerta, el —xido aislante y el
canal, L es la distancia entre drenador y surtidor (es decir, la longitud del canal) y finalmente W es la
dimensi—n transversal del dispositivo (es decir, la anchura del canal). Llamaremos relaci—n de aspecto
del transistor al cociente W/L.

El margen de validez de la expresi—n anterior es V DS < V GS - V T . Este margen define la zona —hmica
de funcionamiento del transistor. En efecto, a partir de la expresi—n anterior de ID es f‡cil observar que,
para un valor fijo de VGS y valores peque–os de VDS, la corriente muestra un comportamiento —hmico

V DS ® 0 Þ I D » K(V GS - V T )V DS

que permite definir la resistencia equivalente de conducci—n del transistor Ron como

dV DS 1
Ron = =
dI D V DS ®0
K(V GS - V T )

Para valores de VDS superiores, es decir, en el margen V DS > V GS - V T , el transistor entra en la zona
de saturaci—n. La expresi—n anal’tica de la corriente de saturaci—n es

K
ID = (V GS - V T )2
2

© los autores, 1998; © Edicions UPC, 1998.


82 Dise–o digital
_________________________________________________________________________________

donde podemos observar la no dependencia de ID con VDS.

Corriente Margen de validez Zona

ID = 0 V GS £ V T Corte (OFF)

é V2 ù
I D = K ê(V GS - V T )V DS - DS ú V GS > V T , V DS < V GS - V T Ohmica (W)
êë 2 ûú

K
ID = (V GS - V T )2 V GS > V T , V DS > V GS - V T Saturaci—n (SAT)
2

Figura 3.8 Expresiones de la corriente y zonas de trabajo en un transistor NMOS

La figura 3.8 resume las expresiones de la corriente en un transistor NMOS para cada una de sus zonas
de funcionamiento en rŽgimen permanente o est‡tico. N—tese que la corriente es siempre proporcional a
la constante K y por tanto a la relaci—n de aspecto W/L, es decir la corriente que puede conducir el
transistor es mayor cuando W aumenta y/o L disminuye.

La figura 3.9 muestra en forma gr‡fica las caracter’sticas ID(VDS) para distintas tensiones de puerta
(0<VT<V GS1<V GS2<V GS3). La figura muestra tambiŽn la frontera entre las zonas de saturaci—n y
—hmica, dada por la expresi—n VDS=VGS-VT.

ID
VDS =V GS - V T

VGS3

VGS2

VGS1

VGS < V T V DS

Figura 3.9 Curvas caracter’sticas de un transistor NMOS

Existe un tipo de transistor NMOS que conduce corriente entre drenador y surtidor incluso cuando la
tensi—n VGS es nula, que recibe el nombre de transistor NMOS de vaciamiento o deplexi—n (en

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 83
_________________________________________________________________________________

contraposici—n a los transistores de acumulaci—n, que es el nombre que reciben los descritos en los
p‡rrafos anteriores). En un transistor NMOS de vaciamiento el canal ya est‡ formado para VGS=0,
situaci—n equivalente a decir que en este tipo de transistor el valor de la tensi—n umbral es negativo y
que para trabajar en corte precisa una tensi—n de puerta VGS aœn m‡s negativa (VGS <V T ). Las
expresiones que describen el funcionamiento de estos transistores son las mismas que para los de
acumulaci—n utilizando el valor correspondiente para la tensi—n umbral.

Un transistor PMOS presenta un funcionamiento cualitativamente idŽntico al de un NMOS, aunque


con diferencias debidas al distinto signo de los portadores que soportan la corriente, que en el caso de
un PMOS son los huecos (cargas positivas) frente a los electrones (cargas negativas) en el caso de un
NMOS.

En la figura 3.10 se detallan la secci—n f’sica y el s’mbolo circuital de un transistor PMOS. El


sustrato es de tipo N, mientras que el drenador y el surtidor son de tipo P. Definiremos como surtidor
el terminal simŽtrico donde se aplica la tensi—n m‡s alta y tomaremos all’ la referencia de tensiones
(VS=0). Otra vez obviaremos el efecto de la tensi—n de sustrato, que consideraremos cortocircuitado con
el surtidor (VSB=0).

G
D (-) S (+)
G
p+ p+

n
D (-) S (+)
B ID
B

Figura 3.10 Secci—n vertical y s’mbolo circuital de un transistor PMOS

En situaci—n de conducci—n el canal de un transistor PMOS debe formarse mediante cargas positivas.
Para ello es necesario aplicar una tensi—n VGS suficientemente negativa. La tensi—n umbral VT es por
tanto negativa (un valor t’pico es -1V). Si la tensi—n VGS es inferior a VT , la aplicaci—n de una
tensi—n VDS negativa provoca el flujo de huecos desde el terminal m‡s positivo (que actuar‡ como
surtidor) hacia el terminal menos positivo (que realizar‡ el papel de drenador). N—tese que, salvo las
inversiones de signo, este funcionamiento coincide con el descrito para un transistor NMOS.

Las expresiones de la corriente en un transistor PMOS son formalmente idŽnticas a las de un transistor
NMOS cambiando mn (movilidad de los electrones) por mp (movilidad de los huecos). Sin embargo,
aunque las expresiones de la corriente sean las mismas, tanto la direcci—n de Žsta como los m‡rgenes de
aplicabilidad se invierten, quedando las indicadas en la figura 3.11.

© los autores, 1998; © Edicions UPC, 1998.


84 Dise–o digital
_________________________________________________________________________________

Corriente Margen de validez Zona

ID = 0 V GS ³ V T Corte (OFF)

é V2 ù
I D = K ê(V GS - V T )V DS - DS ú V GS < V T , V DS > V GS - V T Ohmica (W)
êë 2 úû

K
ID = (V GS - V T )2 V GS < V T , V DS < V GS - V T Saturaci—n (SAT)
2

Figura 3.11 Expresiones de la corriente y zonas de trabajo en un transistor PMOS

La figura 3.12 muestra en forma gr‡fica las caracter’sticas ID(VDS) para distintas tensiones de puerta
(0>VT>VGS1>VGS2>VGS3) en un transistor PMOS. La figura tambiŽn muestra la frontera entre las
zonas de saturaci—n y —hmica.

ID
VDS =V GS - V T

VGS3

VGS2

VGS1

VGS > V T -V DS

Figura 3.12 Curvas caracter’sticas de un transistor PMOS

a) b) c)

Figura 3.13 S’mbolos usados para distintos tipos de transistores MOS.


a) NMOS de acumulaci—n; b) PMOS de acumulaci—n; c) NMOS de vaciamiento

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 85
_________________________________________________________________________________

Los s’mbolos que en adelante utilizaremos para los tres tipos de transistores MOS presentados se
muestran en la figura 3.13, donde se supone por defecto que el sustrato est‡ conectado a la tensi—n m‡s
baja del circuito en el caso de los NMOS y a la tensi—n m‡s alta en el caso del PMOS.

3.2.2 Efectos de segundo orden

El modelo de funcionamiento en rŽgimen est‡tico del transistor MOS dado en los p‡rrafos anteriores es
el m‡s simple posible, aunque suficiente para realizar c‡lculos de primer orden y orientar dise–os.
C‡lculos m‡s detallados o bien c‡lculos en circuitos con un cierto nœmero de componentes necesitan
de la utilizaci—n de simuladores circuitales. Entre ellos el m‡s difundido y convertido en referencia es
SPICE. Dicho simulador es capaz de asumir distintos modelos, de complejidad y precisi—n crecientes,
para el transistor MOS. Estos modelos se identifican mediante un par‡metro llamado LEVEL. El
modelo de LEVEL 1 recoge las expresiones presentadas anteriormente junto con algunos efectos de
segundo orden importantes: el efecto de una tensi—n no nula entre sustrato y fuente sobre el valor de la
tensi—n umbral (denominado efecto sustrato), la modulaci—n de la longitud del canal debido a la tensi—n
drenador-surtidor y la variaci—n de la movilidad con el campo elŽctrico. Una presentaci—n del modelo
SPICE del transistor MOS a LEVEL 1 puede encontrarse en el volumen de esta misma colecci—n
refernciado anteriormente. Por otra parte la descripci—n del transistor MOS hecha aqu’ es meramente
fenomenol—gica, una justificaci—n sencilla pero desde un punto de vista m‡s f’sico puede ser encontrada
en el texto mencionado.

3.3 Puertas l—gicas NMOS

Este cap’tulo se centra en el an‡lisis de las puertas l—gicas realizadas mediante tecnolog’a CMOS. Sin
embargo este apartado se dedicar‡ al estudio de la tecnolog’a NMOS, hist—ricamente predecesora de la
CMOS y poco utilizada en la actualidad. Este estudio se justifica, m‡s que por su incidencia en la
pr‡ctica, por servir de introducci—n conceptual y metodol—gica al estudio de la tecnolog’a CMOS.

3.3.1 Inversor NMOS con carga de vaciamiento

Un inversor NMOS con carga de vaciamiento est‡ formado por dos transistores NMOS, uno de
acumulaci—n, al cual se le aplica la entrada (al que llamaremos MOSI o transistor inversor), y otro de
vaciamiento (al que llamaremos MOSL o transistor de carga). El esquema circuital es el presentado en
la figura 3.14.

Vamos a analizar esta puerta inversora. Por analizar entenderemos encontrar expresiones que permitan
obtener la curva de transferencia y en particular los puntos destacables de la misma (VOH, VOL,.. etc).
A partir de la inspecci—n del circuito se observa lo siguiente:

© los autores, 1998; © Edicions UPC, 1998.


86 Dise–o digital
_________________________________________________________________________________

-En el transistor de carga el drenador es el terminal conectado a VDD , y en el


transistor inversor el surtidor es el terminal conectado a masa; recordar que en un transistor
NMOS el terminal conectado a tensi—n m‡s positiva es el drenador; esto unido a que en el
circuito de la figura no puede haber en rŽgimen permanente tensiones mayores que V DD ni
inferiores a 0V, permite identificar los terminales.

V DD

MOSL

VO
Vi MOSI

Figura 3.14 Inversor NMOS con carga de vaciamiento

-La corriente que atraviesa el transistor de carga IDL coincide con la que atraviesa el
transistor inversor IDI (recordar que en rŽgimen permanente la corriente de puerta es nula), es
decir

I DL = I DI = I D

-Las tensiones de entrada y de salida del inversor coinciden con las tensiones puerta-
surtidor y drenador-surtidor del transistor inversor respectivamente

Vi = V GSI

V o = V DSI

-En el transistor de carga la tensi—n puerta-surtidor siempre es nula, mientras que la


tensi—n drenador-surtidor se relaciona con la de salida del inversor

V GSL = 0

V DSL = V DD - V 0

Adem‡s es preciso tener en cuenta que la tensi—n umbral del transistor inversor VTI es positiva (es un
NMOS de acumulaci—n) mientras que para el transistor de carga la tensi—n umbral VTL es negativa.

En la figura 3.15 vemos las curvas caracter’sticas de cada uno de los dos transistores. N—tese que como
el transistor de carga tiene cortocircuitada la puerta con el surtidor s—lo tenemos que considerar la curva
correspondiente a VGSL=0.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 87
_________________________________________________________________________________

ID ID

VGSI3
VGSL>0

VGSI2
VGSL = 0
VGSI1 VGSL<0

VGSI < V TI V DSI V DSL

Figura 3.15 Curvas caracter’sticas del transistor inversor y del transistor de carga

Las curvas caracter’sticas son representaciones gr‡ficas de las ecuaciones del transistor. Por tanto es
posible plantearse una soluci—n gr‡fica de dichas ecuaciones que permita por lo menos de forma
cualitativa entender el funcionamiento del inversor. Para ello tenemos que representar las curvas
caracter’sticas de ambos transistores sobre los mismos ejes. Si utilizamos los ejes VDSI o VO (recordar
que VDSI=VO) e ID, las curvas caracter’sticas del transistor inversor se ven inalteradas (sus ejes no se
ven modificados); en cambio, la curva caracter’stica del transistor de carga debe ser invertida y
desplazada a la derecha una cantidad VDD, puesto que VO=VDD-VDSL. Resolver la ecuaci—n resultante
de igualar las dos corrientes para una tensi—n de entrada dada significa encontrar la intersecci—n entre las
dos curvas correspondientes a esa tensi—n. La figura 3.16 muestra el resultado de esta superposici—n
sobre los mismos ejes.

ID

V i =V DD

V i2

V i1

V OL Vi < VTI V DD VO

Figura 3.16 Curvas caracter’sticas de los dos transistores


sobre los ejes ID (VO )

© los autores, 1998; © Edicions UPC, 1998.


88 Dise–o digital
_________________________________________________________________________________

Para cada valor de Vi los valores de VO e ID se encuentran en la intersecci—n de la curva caracter’stica


del transistor inversor para Vi con la curva VGSL=0, correspondiente al transistor de carga. Vamos
aplicar la soluci—n gr‡fica para obtener los niveles l—gicos VOH y VOL.

Cuando Vi=V GSI =0 tenemos que VGSI <V TI y por tanto el transistor inversor estar‡ en corte.
Observando la figura 3.16, la curva caracter’stica correspondiente coincide con el eje de abscisas (ID=0)
y por tanto la intersecci—n con la curva caracter’stica del transistor de carga se sitœa en el punto
(VO=VDD, ID=0). En consecuencia, el valor de tensi—n a la salida correspondiente al estado alto ser‡
VOH=VDD.

An‡logamente cuando Vi=VGSI=VDD la curva correspondiente del transistor inversor ser‡ VGSI=VDD,
cuya intersecci—n con la caracter’stica del transistor de carga nos fijar‡ el valor VO=VOL, que ser‡ el
valor de tensi—n a la salida correspondiente al estado bajo. Desde el punto de vista cualitativo, vemos
que para este tipo de inversor VOL es siempre mayor que cero; asimismo, cuando la salida tome este
valor circular‡ una corriente no nula a travŽs de los dos transistores.

Ejemplo 3.1

Encontrar la expresi—n anal’tica de VOL en un inversor NMOS con carga de vaciamiento. Calcular
el valor de esta tensi—n para un inversor con VDD=5V, VTI=1V, VTL=-3V y KI=2KL=40 mA/V2.
ÀSe trata de un valor aceptable?

Es necesario, para poder encontrar la expresi—n pedida, suponer una zona de trabajo para cada
transistor e igualar las expresiones de la corriente. De la ecuaci—n resultante se obtiene, tras las
manipulaciones necesarias, dicha expresi—n. En caso de disponer de valores numŽricos siempre
debemos comprobar a posteriori que los resultados obtenidos son consistentes con las hip—tesis
hechas. En caso de inconsistencia las hip—tesis deben ser modificadas y el c‡lculo repetido.

En principio la hip—tesis m‡s razonable es que en estado bajo, VO=VOL, el transistor inversor est‡
en zona —hmica y el de carga en saturaci—n. En estas condiciones

é V2 ù K
I DI = K I ê(V GSI - V TI )V DSI - DSI ú = I DL = L (V GSL - V TL )2
êë 2 úû 2

Sustituyendo las variables por sus valores concretos en el circuito queda

V GSI = Vi = V DD ü
ï é V2 ù V2
V DSI = VO = VOL ý Þ K I ê(V DD - V TI )VOL - OL ú = K L TL
V GSL = 0 ï ëê 2 ûú 2
þ

Que conduce a la siguiente expresi—n final

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 89
_________________________________________________________________________________

2
KI (W / L) I V TL
KR = = = 2
K L (W / L) L 2(V DD - V TI )VOL - VOL

Llamaremos relaci—n de aspecto del inversor KR al cociente de relaciones de aspecto. La expresi—n


encontrada permite determinar el cociente entre relaciones de aspecto necesario para obtener una
puerta inversora NMOS con un nivel l—gico VOL dado. Es evidente que cuanto m‡s conductor sea
el MOSI menor ser‡ VOL y, viceversa, cuanto m‡s conductor sea el MOSL mayor ser‡ el valor de
VOL.

Aplicando los valores numŽricos del enunciado a la expresi—n obtenida se llega a una ecuaci—n
cuadr‡tica cuyas soluciones son

2 ì7, 39 V
2VOL - 16VOL + 9 = 0 Þ VOL » í
î 0, 61 V

donde s—lo la segunda soluci—n tiene sentido f’sico, pues se corresponde con la parte de la par‡bola
que modela la curva caracter’stica del MOS.

Finalmente, es necesario comprobar la bondad de las suposiciones realizadas para obtener el


resultado antes de darlo definitivamente por v‡lido; en concreto se ha supuesto que el MOSL
trabaja en saturaci—n y que el MOSI lo hace en —hmica. Vamos ver si esto es cierto

ì V GSI = V DD = 5 V ü
í ý Þ V DSI < V GSI - V TI Þ MOSI en W
îV DSI = VOL = 0, 61 V þ
ì V GSL = 0 V ü
í ý Þ V DSL > V GSL - V TL Þ MOSL en SAT
V
î DSL = V DD - V OL = 4, 39 V þ

Podemos considerar aceptable un valor de VOL que aplicado a la entrada de otro inversor sea
interpretado correctamente, es decir, como un "0" l—gico. Para ello es necesario verificar la
condici—n VOL<VTI, condici—n que cumple, aunque no muy holgadamente, el inversor de nuestro
ejemplo.

__________________________________________________________________________________

Ejercicio 3.1

ÀCu‡l es el valor de la corriente que circula por el inversor del ejemplo 3.1 cuando la entrada vale
VDD? Calcule el valor que deberia tener KL manteniendo igual el resto de datos para obtener una
tensi—n de salida en estado bajo VOL =0.2 V en dicho inversor NMOS. Calcular el valor de la
corriente ID para esta nueva situaci—n.
__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


90 Dise–o digital
_________________________________________________________________________________

Una vez calculados los puntos extremos de la curva de transferencia vamos a ocuparnos del estudio del
resto de la misma. Para ello es necesario determinar en quŽ zona de funcionamiento trabaja cada
transistor para cada margen de tensiones de entrada Vi. Esto se muestra de forma resumida en la
siguiente tabla:

MOSI OFF si V GSI £ V TI Þ Vi £ V TI


MOSI en W si V DSI < V GSI - V TI Þ VO < Vi - V TI
MOSI SAT si VO > Vi - V TI
MOSL en W si V DSL < V GSL - V TL Þ VO > V DD + V TL
MOSL SAT si VO < V DD + V TL

Estos m‡rgenes nos definen diversas zonas dentro de la curva de transferencia, es decir, en el plano
Vo(Vi), que se recogen bajo los nombres I, II, III y IV en la figura 3.17.

VO

I
V DD
II
Zona I II III IV
VDD +VTL Vi -VTI MOSI OFF SAT SAT W
III
MOSL W W SAT SAT

IV
V OL
V TI V DD Vi

Figura 3.17 Curva de transferencia del inversor NMOS con carga de vaciamiento

Es importante puntualizar que la serie de estados indicada en la figura 3.17 no es universal; en efecto,
observando con detalle la posici—n de las rectas frontera entre saturaci—n y —hmica para cada transistor,
podemos ver que, en funci—n de los valores de VTL y VTI, la sucesi—n de estados puede ser diferente.

Ejemplo 3.2

Calcular la potencia consumida en rŽgimen est‡tico por un inversor NMOS con carga de
vaciamiento. Aplicarlo al caso concreto del inversor del ejemplo 3.1.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 91
_________________________________________________________________________________

Atendiendo a la definici—n dada, la potencia consumida se calcula como el promedio entre la


potencia consumida cuando la salida toma el valor alto y la consumida cuando la salida toma el
valor bajo.

PDH = V DD I D ü
V I =0 = 0
ï 1 2
2 ý Þ PD = V DD K L V TL = 225 mW
V TL 4
PDL = V DD I D V I =V DD = V DD K L ï
2 þ
__________________________________________________________________________________

En los p‡rrafos anteriores hemos visto que tanto V OL como la potencia disipada dependen del
dimensionado de los transistores (de KL para el caso de la potencia disipada y de KR para el valor de
tensi—n cuando la salida es baja). En el cap’tulo pr—ximo veremos que las dimensiones ser‡n
determinantes tambiŽn de los retardos de propagaci—n. Esta es una caracter’stica no s—lo de la
tecnolog’a NMOS sino tambiŽn de la CMOS. Por tanto, el dimensionado de los transistores es la
principal variable de dise–o de que dispone el dise–ador de circuitos integrados para conseguir que un
circuito cumpla las especificaciones elŽctricas deseadas.

3.3.2 Puertas b‡sicas NMOS

Este subapartado presenta en primer lugar la estructura de dos puertas l—gicas b‡sicas (NOR y NAND)
realizadas en tecnolog’a NMOS con carga de vaciamiento. A continuaci—n se presentan ejemplos de
puertas arbitrarias, mostrando el procedimiento general de an‡lisis y dise–o de este tipo de circuitos.

Puerta NOR: El esquema de una puerta NOR de dos entradas realizada en tecnolog’a NMOS con
carga de vaciamento se presenta en la figura 3.18.

V DD
A B F
0 0 1
F 0 1 0
1 0 0
A B 1 1 0

Figura 3.18 Puerta NOR NMOS

La salida F tomar‡ el valor alto s—lo cuando los dos transistores de entradas A y B estŽn cortados, es
decir, cuando ambos tengan una tensi—n de puerta inferior a VT. En este caso la situaci—n ser‡ idŽntica
a la del inversor NMOS visto anteriormente cuando el transistor inversor estaba cortado.

© los autores, 1998; © Edicions UPC, 1998.


92 Dise–o digital
_________________________________________________________________________________

En el caso de que uno cualquiera de los dos transistores de acumulaci—n en paralelo conduzca (tenga un
valor alto de tensi—n a su entrada) y con mayor motivo si los dos conducen simult‡neamente, el valor
de la tensi—n en la salida ser‡ bajo y por tanto el valor l—gico asignado ser‡ "0".

Puerta NAND: La figura 3.19 muestra una puerta NAND NMOS de dos entradas.

V DD

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

Figura 3.19 Puerta NAND NMOS

S—lo tendremos un valor bajo ("0" l—gico) en la salida cuando los dos transistores en serie que forman
el camino entre la salida y masa conduzcan, y por tanto el valor de las tensiones aplicadas a sus
entradas, A y B, sea alto. Para todas las dem‡s combinaciones de valores l—gicos en A y B alguno de
los dos transistores de acumulaci—n estar‡ cortado y la salida estar‡ en valor alto.

Las estructuras presentadas en la figura 3.18 y 3.19 son f‡cilmente generalizables: para obtener puertas
NAND/NOR de mayor nœmero de entradas s—lo es necesario a–adir m‡s transistores NMOS en
serie/paralelo respectivamente.

Ejemplo 3.3

ObtŽnganse los niveles l—gicos VOH y VOL de las puertas NOR y NAND de las figuras 3.18 y
3.19 y comp‡rense con los de un inversor NMOS. Considerar VTL=-4V y (W/L)=1/4 para todos
los transistores de vaciamiento, VT=1V y (W/L)=2 para todos los de acumulaci—n, y VDD=5V.

Inversor NMOS. Se trata de c‡lculos ya realizados anteriormente, que para los valores del
ejemplo conducen a los resultados siguientes:

VOH = 5 V VOL = 0, 258 V

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 93
_________________________________________________________________________________

Puerta NOR. El razonamiento utilizado para obtener VOH en el inversor es aplicable a cualquier
puerta NMOS con carga de vaciamiento: cuando la salida est‡ en nivel alto el camino entre Žsta y
masa est‡ cortado y VOH = VDD = 5 V.

En una puerta NOR tenemos tres combinaciones que generan una salida baja, luego podemos dar
hasta tres definiciones de VOL:

VOL1 = V F V A =V DD VOL2 = V F V B =V DD VOL3 = V F V A =V B =V DD


V B =0 V A =0

Est‡ claro que las dos primeras situaciones son idŽnticas al caso de un inversor (un transistor de
acumulaci—n que conduce entre la salida y masa), luego VOL1 = VOL2 = 0, 258 V .

El tercer caso implica que los dos transistores en paralelo conducen, tal como indica la figura
3.20.a. En esta situaci—n la corriente suministrada por el transistor de carga se reparte por igual
entre los dos transistores de acumulaci—n, es decir IL=I1+I2. Haciendo la suposici—n de que el
transistor de carga trabaja en saturaci—n y que los de acumulaci—n lo hacen en —hmica y aplicando
las expresiones correspondientes, se llega el resultado final VOL3 = 0,127 V , valor inferior al del
inversor de referencia.

V DD
a) V DD b)

IL
IL
V OL
V OL3
V DD I1
V DD I1 I2 V DD
V DD I2

Figura 3.20 Situaciones de c‡lculo de VOL del ejemplo 3.3

Puerta NAND. El valor de VOH lo encontramos siguiendo razonamientos hechos anteriormente,


V OH=V DD=5V. Adem‡s en esta puerta tenemos una sola combinaci—n que genera salida baja,
luego la definici—n de VOL es:

VOL = V F V A =V B =V DD

En esta situaci—n los transistores en serie conducen, tal como indica la figura 3.20.b. Luego
IL=I1=I2. Haciendo la suposici—n de que el transistor de carga trabaja en saturaci—n y de que los de

© los autores, 1998; © Edicions UPC, 1998.


94 Dise–o digital
_________________________________________________________________________________

acumulacion lo hacen en —hmica y aplicando las expresiones correspondientes, se llega el resultado


VOL = 0,516 V , valor superior al del inversor de referencia.

Este ejemplo permite concluir que en los circuitos NMOS la asociaci—n de transistores en paralelo
no perjudica los niveles l—gicos de la puerta, mientras que la asociaci—n en serie perjudica el valor
l—gico bajo (VOL aumenta), efecto que s—lo puede paliarse aumentando la relaci—n de aspecto de
los transistores de acumulaci—n y/o reduciendo la del transistor de carga m‡s de lo que suele hacerse
en un simple inversor.
__________________________________________________________________________________

Ejercicio 3.2

Generalice los niveles l—gicos de puertas NAND y NOR encontrados en el ejemplo anterior para el
caso de puertas de n entradas.
__________________________________________________________________________________

Tiene interŽs, por otro lado, un an‡lisis no a nivel elŽctrico sino a nivel l—gico de una implementaci—n
NMOS. Este an‡lisis resulta extremadamente sencillo, como se muestra en el ejemplo 3.4, puesto que
s—lo hay que considerar para quŽ combinaciones de variables de entrada conduce, o est‡ en corte, cada
transistor de acumulaci—n. Se deduce del citado ejemplo que dise–ando adecuadamente la red de
transistores de acumulaci—n se puede implementar cualquier funci—n l—gica.

Ejemplo 3.4

Analizar desde el punto de vista de funcionalidad l—gica el circuito de la figura 3.21.

V DD

A C

B D E

Figura 3.21 Funci—n l—gica F(A,B,C,D,E) en tecnolog’a NMOS

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 95
_________________________________________________________________________________

Tendremos un valor bajo a la salida (F=0) cuando alguno de los caminos que unen este nodo con
masa tenga todos los transistores en estado de conducci—n, por tanto, cuando A y B tomen el valor
"1" o cuando C tome el valor alto y o bien D o bien E tomen el valor alto.

Es decir:

F = AB + C(D + E)
F = AB + C(D + E) = ( A + B)(C + DE)
__________________________________________________________________________________

Ejercicio 3.3

Analizar desde el punto de vista de funcionalidad l—gica el circuito de la figura 3.22.

V DD VDD V DD

F
C

A B D
E B

Figura 3.22 Funci—n l—gica F(A,B,C,D,E) en tecnolog’a NMOS

__________________________________________________________________________________

De los an‡lisis realizados en el ejemplo y ejercicio anteriores podemos intuir una tŽcnica de dise–o de
funciones cualquiera con tecnolog’a NMOS. Si somos capaces de obtener una expresi—n algebraica
para el inverso de la funci—n se puede proponer directamente una topolog’a para la red NMOS. Tal
como podemos observar en la figura 3.21, el producto de dos tŽrminos se corresponder‡ con dos
bloques en serie, mientras que la suma l—gica lo har‡ con bloques en paralelo.

Podemos notar que cada literal de la expresi—n escogida se traducir‡ en un transistor de acumulaci—n;
por tanto, si el criterio de dise–o es minimizar el nœmero de transistores deberemos obtener
expresiones lo m‡s compactas posibles. Si algœn literal aparece complementado en la expresi—n del
inverso de la funci—n necesitaremos, adem‡s, un inversor. En el ejemplo siguiente podemos ver
distintas implementaciones NMOS para una funci—n.

© los autores, 1998; © Edicions UPC, 1998.


96 Dise–o digital
_________________________________________________________________________________

Ejemplo 3.5

Implementar la funci—n l—gica siguiente mediante tecnolog’a NMOS con el m’nimo nœmero de
transistores posible.

f ( A, B, C, D) = å m(1, 3, 4, 5, 6,8, 9,10)


4

Expresamos primeramente la funci—n complementada como PoS y como SoP de forma m’nima.

f POS = ( A + B + D )( A + B + D)( A + B + D)( A + C + D )(B + C + D )

Expresi—n con 15 literales, donde tres de las variables aparecen negadas; es sencillo razonar que
necesitar‡ 18 transistores NMOS de acumulaci—n y 4 de vaciamiento.

f SOP = AB + ACD + BCD + ABD

Esta propuesta contiene s—lo 11 literales y sigue necesitando tres inversores, con lo cual usar‡ 14
transistores NMOS de acumulaci—n y 4 de vaciamiento. Es posible proponer expresiones que no
sean producto de sumas o suma de productos, si esto nos reduce el nœmero de literales. En este
caso, a partir de la forma SOP obtenemos fˆcilmente

f = AB + ( A + B)CD + ABD

donde tenemos dos literales, y por tanto dos NMOS de vaciamiento, menos. Finalmente podemos
implementar la funci—n como cascada de bloques NMOS, usando un total de 10 transistores de
acumulaci—n y 2 de vaciamiento, como se observa en la figura 3.23.

f = AB + ( A + B)CD + X X = A+ B+ D

V DD VDD

X f

A B
A
A B C C
B
D

Figura 3.23 Funci—n l—gica del ejemplo 3.5.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 97
_________________________________________________________________________________

Ejercicio 3.4

Proponer diferentes implementaciones NMOS para la funci—n f.

f ( A, B, C, D) = Õ M(4,8, 9,11,12,13,15)
4
__________________________________________________________________________________

3.4 Puertas de transmisi—n

Una puerta de transmisi—n es un circuito que actœa como un interruptor l—gico, permitiendo o no el
paso de informaci—n entre dos puntos distintos de un circuito digital de acuerdo con el valor de una
variable de control.

El esquema de la figura 3.24 modeliza un interruptor l—gico a cuyo nodo de entrada se aplica una
tensi—n Vi procedente de una etapa anterior, siendo VO la tensi—n del nodo de salida y VC la de control.
El efecto de carga de las puertas conectadas al nodo de salida se representa mediante el condensador CL.

VC

Vi VO

CL

Fig 3.24 Puerta de transmisi—n o interruptor l—gico.

El funcionamiento cualitativo de este interruptor es el siguiente: para un valor de VC, por ejemplo 0V
("0" l—gico), el interruptor est‡ abierto y consecuentemente las tensiones Vi y VO son independientes,
mientras que para VC=VDD ("1" l—gico) el interruptor est‡ cerrado y se produce la transmisi—n del
valor de la entrada a la salida (VO =V i), ya sea cargando la capacidad (transmisi—n de un "1") o
descarg‡ndola (transmisi—n de un "0").

La anterior explicaci—n sugiere la utilizaci—n de un transistor MOS como puerta de transmisi—n.


Mediante la tensi—n en la puerta es posible independizar o no drenador y surtidor, con lo que el
transistor se comporta aproximadamente como un interruptor abierto o cerrado. Cuando el transistor
actœe de esta forma le llamaremos transistor de paso.

A continuaci—n vamos a detallar el funcionamiento a nivel elŽctrico de un transistor de paso NMOS,


discutiendo sus ventajas y/o inconvenientes. M‡s adelante lo compararemos con su dual, el transistor
de paso PMOS, e introduciremos la puerta de transmisi—n CMOS.

© los autores, 1998; © Edicions UPC, 1998.


98 Dise–o digital
_________________________________________________________________________________

3.4.1 Transistor de paso NMOS

Consideremos el esquema de la figura 3.25. Si VC=0, para cualquier valor de las tensiones Vi y VO el
transistor estar‡ cortado (recordemos que en rŽgimen permanente no puede haber tensiones negativas)
por lo que estas dos tensiones ser‡n independientes.

VC

Vi VO

CL

Figura 3.25 Transistor de paso NMOS

Si VC=VDD tenemos dos casos a considerar: o bien Vi=0 o bien Vi=VDD. Vamos a analizarlos por
separado.

Transmisi—n del "0": Supongamos Vi=0 y que en un cierto instante de tiempo la puerta conmuta
de "0" a "1", es decir, de VC=0 a VC=VDD. Veamos cu‡l ser‡ el valor de VO en rŽgimen permanente.

a) VDD b) VDD

S D D S
0 VO V DD VO
I I
CL CL

Figura 3.26 Funcionamiento del transistor de paso NMOS.


a) Transmisi—n del "0"; b) transmisi—n del "1"

En estas condiciones el terminal de la derecha ser‡ el drenador y el de la izquierda el surtidor (el


terminal de la izquierda est‡ a la tensi—n m‡s baja posible, es decir, a 0 voltios). Como se tiene
VGS=VDD>VT el transistor empezar‡ a conducir y la capacidad de salida se ir‡ descargando mediante la
corriente que fluir‡ en el sentido condensador-surtidor (ver figura 3.26.a). En consecuencia la tensi—n
entre los terminales de CL disminuir‡ progresivamente. A medida que el condensador se va
descargando, el transistor pasar‡ sucesivamente de saturaci—n a zona —hmica. Veamos cu‡ndo entra el
transistor en zona —hmica

V DS = VO - Vi = VO < V GS - V T = V DD - V T

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 99
_________________________________________________________________________________

En esta situaci—n la corriente que fluye a travŽs del transistor vendr‡ expresada por

2
V DS V2
I D = K((V GS - V T )V DS - ) = K((V DD - V T )VO - O )
2 2

En rŽgimen permanente la corriente deber‡ ser cero. Igualando la ecuaci—n anterior a cero se obtienen
dos soluciones para la tensi—n de salida Vo:

Vo = 0
V o = 2(V DD - V T )

La segunda soluci—n debe ser rechazada por carecer de significado f’sico: no es posible que la tensi—n
final sea mayor que VDD o, si se prefiere, implicar’a que el transistor est‡ en saturaci—n, cosa que
contradice el razonamiento efectuado. En consecuencia la tensi—n final en el nodo de salida ser‡ nula
(CL se descargar‡ completamente), con lo que podemos decir que el transistor de paso NMOS habr‡
transmitido correctamente el "0" l—gico.

Transmisi—n del "1": Se trata del caso complementario, es decir, supondremos Vi=VDD y que en
un cierto instante la tensi—n en la puerta conmuta de cero a VDD.

En este caso el nodo de entrada ser‡ el drenador, por ser donde se aplica la tensi—n m‡s elevada (V DD).
En consecuencia se tendr‡ VDS=VGS, lo que implica VDS>VGS-VT y por tanto el transistor siempre
trabajar‡ en saturaci—n. La corriente que atravesar‡ el transistor vendr‡ expresada por

K
I DS = (V GS - V T )2
2

Como en rŽgimen permanente la corriente debe ser nula, la tensi—n VGS final ser‡ VT y por tanto el
valor final de VO ser‡ VDD-VT, tensi—n pr—xima pero no igual a un "1" l—gico.

Podemos resumir los dos resultados anteriores diciendo que un transistor de paso NMOS transmite
perfectamente el valor l—gico "0" (Vi=0 Þ VO=0) pero que degrada la transmisi—n del valor l—gico "1"
(Vi=VDD Þ VO=VDD-VT).

Ejemplo 3.5

Vamos a ver quŽ ocurre con la transmisi—n del "1" l—gico en una cadena formada por dos
transistores de paso NMOS. Para ello tomaremos como referencia el esquema de la figura 3.27,
suponiendo que se parte de una situaci—n previa en la que los dos transistores estaban cortados y
las capacidades descargadas (Vx=VO=0).

© los autores, 1998; © Edicions UPC, 1998.


100 Dise–o digital
_________________________________________________________________________________

En la situaci—n descrita los dos transistores de paso entrar‡n en conducci—n, cargando las
capacidades CL1 y CL2 y haciendo aumentar las tensiones Vx y VO, hasta que una vez llegados al
rŽgimen est‡tico, deje de fluir corriente y las tensiones se estabilicen.

VDD VDD

Vx
V DD VO

C L1 C L2

Figura 3.27 Transmisi—n del "1"en una cadena de


transistores de paso NMOS

Si nos fijamos inicialmente en el transistor de la izquierda, vemos que Žste dejar‡ de conducir
cuando se llegue a Vx=V DD -V T . Para este valor de Vx el transistor de la derecha estar‡ en la
frontera entre —hmica y saturaci—n (VDS=VGS-VT) y tanto si consideramos uno como otro estado
la anulaci—n de la corriente conduce a la soluci—n VO=VDD-VT. Este resultado es generalizable:
una cadena de transistores de paso degrada la transmisi—n del "1" l—gico con independencia del
nœmero de transistores que la forman.

__________________________________________________________________________________

Ejercicio 3.4

Analizar el circuito de la figura 3.28, en el que la tensi—n de control del transistor de paso de la
derecha proviene, a su vez, de otro transistor de paso. ÀCu‡l ser‡ el valor final de la tensi—n de
salida?

VDD

Vx
VDD V DD VO

C L1 C L2

Figura 3.28 Circuito con transistores de paso NMOS

__________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 101
_________________________________________________________________________________

3.4.2 Transistor de paso PMOS

TambiŽn puede utilizarse como transistor de paso un PMOS, aunque su comportamiento es


exactamente el opuesto al de un NMOS: cuando VC=0 ("0" l—gico) el transistor conduce, mientras que
cuando VC=VDD el transistor est‡ cortado. Una vez hecha esta salvedad el funcionamiento del transistor
de paso PMOS es an‡logo al ya visto: cuando el transistor est‡ cortado los valores de tensi—n en
drenador y surtidor son independientes entre s’; por el contrario, cuando el transistor conduce, se
comporta aproximadamente como un interruptor cerrado y en consecuencia la tensi—n en drenador y
surtidor es "similar" (como en el caso del NMOS esto no es estrictamente cierto pero sirve como
primera descripci—n intuitiva).

VC

Vi VO

CL

Figura 3.29 Transistor de paso PMOS

Los dos casos que deben ser analizados cuando el transistor conduce son, otra vez, los correspondientes
a Vi=VDD y Vi=0.

Para Vi=VDD el valor final de la tensi—n de salida es VO=VDD; por tanto, se dice que el transistor de
paso PMOS transmite bien los "1" l—gicos. Cuando Vi=0 y la capacidad CL est‡ cargada inicialmente a
una cierta tensi—n distinta de cero (en rigor mayor que -VTP), el valor final de la tensi—n de salida es
VO=-VTP. Por tanto diremos que el transistor de paso PMOS transmite mal los "0" l—gicos.

La obtenci—n de estos dos resultados es paralela a la realizada para transistores de paso NMOS y queda
como ejercicio para el lector.

3.4.3 La puerta de transmisi—n CMOS

La puerta de transmisi—n CMOS combina dos transistores de paso, un NMOS y un PMOS,


conectados en paralelo, de forma que se transmitan fielmente ambos valores l—gicos. Su estructura
circuital se muestra en la figura 3.30.

El an‡lisis del funcionamiento de la puerta de transmisi—n CMOS es sencillo una vez visto el de los
transistores de paso NMOS y PMOS: cuando VC =0 los dos transistores est‡n cortados y las tensiones
Vi y VO son independientes. Por el contrario, cuando VC=VDD los dos transistores conducen. En este
œltimo caso, tanto si tenemos Vi=0 como Vi=VDD, ambos transistores contribuyen en principio a la
conducci—n, hasta que uno de los dos entra en corte; a partir de ese momento s—lo uno de los dos

© los autores, 1998; © Edicions UPC, 1998.


102 Dise–o digital
_________________________________________________________________________________

proporciona el camino de corriente necesario para completar la carga o descarga de la capacidad de


salida.

VC
VC

Vi VO Vi VO

VC
VC

Figura 3.30 Esquema y s’mbolo circuital de la puerta de transmisi—n CMOS

En concreto si Vi=0 la tensi—n VO disminuye progresivamente a partir del momento en que VC=VDD;
cuando VO alcanza el valor -VTP el transistor PMOS se corta y la descarga de la capacidad de salida se
realiza œnicamente a travŽs del NMOS, que sigue conduciendo hasta que VO=0. Por tanto, la puerta de
transmisi—n CMOS transmite correctamente el "0" l—gico. El razonamiento acerca de la correcta
transmisi—n del "1" es simŽtrico y se deja como ejercicio para el lector.

Con puertas de transmisi—n, en combinaci—n con inversores, pueden proponerse distintas


implementaciones de funciones l—gicas, tal como se muestra en el ejemplo 3.6.

Ejemplo 3.6

Implementar una puerta or-exclusiva de dos entradas mediante puertas de transmisi—n CMOS e
inversores.

Para ello escogemos una de las variables de entrada como variable de control, y evaluamos la
funci—n cuando dicha variable toma cada uno de los valores posibles.

F = A Å B F B=1 = A Å 1 = A F B=0 = A Å 0 = A

Podemos interpretar estas ecuaciones en tŽrminos de conexiones de la salida F con la entrada A o


su inversa, en funci—n de una variable de control, B. El siguiente paso hacia la implementaci—n
ya es trivial y se muestra en la figura 3.31.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 103
_________________________________________________________________________________

B F

Figura 3.31 Implementaci—n con puertas de transmisi—n

__________________________________________________________________________________

Ejercicio 3.5

Proponer una implementaci—n con inversores y puertas de transmisi—n para la funci—n f de tres
variables descrita a travŽs de su forma can—nica como producto de sumas.

f = Õ M(1, 4, 5, 7)
3
__________________________________________________________________________________

3.5 Puertas l—gicas CMOS

La tecnolog’a CMOS es en la actualidad la m‡s utilizada en la realizaci—n de circuitos integrados


digitales. Los motivos son b‡sicamente tres: 1- el bajo valor de la potencia consumida, que posibilita
grandes densidades de integraci—n, 2- una buena inmunidad frente al ruido, y 3- la particularidad de que,
en rŽgimen permanente, los valores de tensi—n a la salida no dependen de las dimensiones de los
transistores. Estos factores la convierten en una tecnolog’a robusta y de utilizaci—n f‡cil y masiva.

3.5.1 Inversor CMOS

El inversor CMOS est‡ formado por dos transistores MOS, uno de tipo P y otro de tipo N, conectados
tal como indica la figura 3.32. El an‡lisis de este circuito es paralelo al realizado para el inversor
NMOS. Entenderemos tambiŽn aqu’ por analizar obtener expresiones que permitan definir la curva de
transferencia y calcular las caracter’sticas elŽctricas principales.

© los autores, 1998; © Edicions UPC, 1998.


104 Dise–o digital
_________________________________________________________________________________

VDD

PMOS
Vi VO

NMOS

Figura 3.32 Inversor CMOS

A partir del esquema elŽctrico varias conclusiones son inmediatas:

-Los terminales simŽtricos del transistor PMOS est‡n definidos de la siguiente


manera: el superior es el surtidor y el inferior es el drenador; en efecto, como hemos visto
anteriormente en un PMOS, el surtidor es el terminal conectado a la tensi—n m‡s alta. En el
transistor NMOS, por el contrario, el surtidor es el terminal inferior (el conectado a masa, es
decir a la tensi—n m‡s baja).

-La corriente que circula por los dos transistores es la misma:

I DN = I DP = I D

-Las tensiones puerta-surtidor y drenador-surtidor de los dos transistores se relacionan


directamente con las de entrada y salida del inversor:

V GSN = Vi V GSP = Vi - V DD
V DSN = VO V DSP = V o - V DD

TambiŽn hay que recordar que en el transistor NMOS la tensi—n umbral es positiva (VTN>0), mientras
que en el PMOS es negativa (VTP<0).

Desde un punto de vista gr‡fico los puntos (ID ,V O ) de funcionamiento del circuito se sitœan
forzosamente en la intersecci—n de las curvas caracter’sticas del transistor NMOS y del PMOS. Como
ya se vio anteriormente en el caso el inversor NMOS, este punto de vista permite conocer detalles
importantes sobre el funcionamiento del circuito.

Vamos a dibujar sobre los mismos ejes las curvas caracter’sticas de ambos transistores. Si tomamos
como ejes de referencia ID y Vo, las curvas caracter’sticas del transistor NMOS no se ven modificadas,
mientras que las del transistor PMOS deben ser invertidas y desplazadas hacia la derecha una cantidad
VDD, tal como muestra la figura 3.33.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 105
_________________________________________________________________________________

ID ID
Vi =V DD

Vi =0

Vi2
V i1

Vi1 V i2

Vi < VTN VO Vi > V DD+VTP VDD VO

Figura 3.33 Curvas caracter’sticas de los transistores NMOS y PMOS. Las curvas del transistor
PMOS han sido transformadas para adaptarse a los mismos ejes que las del transistor NMOS

ObsŽrvese que la respuesta de cada transistor ante un aumento de la tensi—n de entrada Vi es contraria:
un aumento en Vi es un aumento en VGSN y por tanto la corriente de drenador del transistor NMOS
tiende a aumentar; por el contrario, el mismo aumento en Vi hace que la tensi—n VGSP sea menos
negativa, lo cual provoca una disminuci—n de la corriente de drenador del transistor PMOS.

Para encontrar los puntos de funcionamiento hay que hallar la intersecci—n de las curvas caracter’sticas
de los dos transistores correspondientes a cada valor concreto de Vi. Vamos a aplicar esto a la
obtenci—n de los niveles l—gicos VOH y VOL.

ID

NMOS

PMOS Vi
Vi

VO

Figura 3.34 Superposici—n de las curvas caracter’sticas de los


transistores NMOS y PMOS sobre los ejes ID,VO

© los autores, 1998; © Edicions UPC, 1998.


106 Dise–o digital
_________________________________________________________________________________

Cuando Vi=0 tenemos VGSN =0 y por tanto VGSN <V TN , luego el transistor NMOS est‡ cortado y
tenemos que el punto de funcionamiento estar‡ sobre la curva caracter’stica que coincide con el eje de
abscisas (ID=0). La intersecci—n con la curva correspondiente del transistor PMOS (en concreto para
VGSP=Vi-VDD=-VDD) sitœa el punto de funcionamiento en Vo=VDD e ID=0. Por tanto, en un inversor
CMOS se tiene VOH=VDD.

An‡logamente, cuando Vi=VDD se tiene VGSP=0 y por tanto VGSP>VTP, luego el transistor PMOS
estar‡ cortado y su curva caracter’stica correspondiente coincide con el eje de abscisas. La intersecci—n
con la curva correspondiente del NMOS (en concreto para VGSN =V i=V DD ) sitœa el punto de
funcionamiento en el origen (Vo=0, ID=0). Por tanto en un inversor CMOS se tiene VOL=0.

Una consecuencia importante de lo anterior es que tanto si el inversor tiene salida alta como si tiene
salida baja, la corriente ID circulante es nula. Por tanto, en rŽgimen est‡tico la potencia disipada por el
inversor CMOS es nula. Esta caracter’stica, junto con el hecho de disponer de los mejores niveles
l—gicos VOH y VOL posibles, es una de las ventajas principales de la tecnolog’a CMOS frente a sus
competidoras.

Vamos a analizar ahora otros aspectos relevantes de la curva de transferencia del inversor. En la tabla
siguiente vemos los m‡rgenes de tensi—n que definen las distintas zonas de funcionamiento de cada uno
de los transistores expresados en funci—n de las tensiones relevantes del inversor:

PMOS OFF Þ Vi ³ VTP + V DD


NMOS OFF Þ Vi £ VTN
PMOS en W Þ V o > Vi - VTP
NMOS en W Þ V o < Vi - VTN
PMOS SAT Þ V o < Vi - VTP
NMOS SAT Þ V o > Vi - VTN

Si trasladamos estas condiciones a la curva de transferencia Vo(Vi) quedar‡n definidas las cinco zonas de
funcionamiento (I, II, III, IV, y V) mostradas en la figura 3.35.

Cuando se desea hacer cualquier c‡lculo referente a la curva de transferencia en rŽgimen permanente, la
ecuaci—n a resolver siempre es la resultante de plantear la igualdad entre las corrientes que atraviesan
los dos transistores. Por tanto, es necesario conocer previamente la zona de funcionamiento de cada
transistor.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 107
_________________________________________________________________________________

VO

I
VDD III Vi -VTP

Zona I III V IV II
V NMOS OFF SAT SAT W W
Vi -VTN
PMOS W W SAT SAT OFF

IV
II
Vi
VTP VTN VDD +VTP VDD

Figura 3.35 Curva de transferencia de un inversor CMOS

Ejemplo 3.7

Calcular la tensi—n de inversi—n Vinv (tensi—n de entrada para la cual Vo=Vi=Vinv).

La tensi—n de inversi—n se sitœa en el punto de intersecci—n de la recta Vo=V i con la curva de


transferencia. En esta situaci—n es posible conocer el estado de los transistores sin plantear
hip—tesis sujetas a posterior comprobaci—n; as’, para el NMOS

ìV GSN = Vinv ü
VO = Vi = Vinv Þ í ý Þ V DSN > V GSN - V TN
îV DSN = Vinv þ

Y para el PMOS

ìV GSP = V DD - Vinv ü
VO = Vi = Vinv Þ í ý Þ V DSP < V GSP - V TP
îV DSP = V DD - Vinv þ

Es decir, ambos transistores estar‡n saturados, por lo que la corriente conducida ser‡

KN K
I DN = (V GSN - V TN )2 = N (Vinv - V TN )2
2 2
KP K
I DP = (V GSP - V TP )2 = P (Vinv - V DD - V TP )2
2 2

Como IDN=IDP, entonces podemos obtener Vinv

© los autores, 1998; © Edicions UPC, 1998.


108 Dise–o digital
_________________________________________________________________________________

a V TN + V DD + V TP K m (W / L) N
Vinv = ; a= N = N
a +1 KP m P (W / L) P

Las constantes KN y KP determinan la situaci—n de la tensi—n de inversi—n. Si por analog’a con el


inversor NMOS llamamos a a relaci—n de aspecto del inversor tenemos para VTN=-VTP

Si a = 1 Þ Vinv = V DD / 2
Si a > 1 Þ Vinv < V DD / 2
Si a < 1 Þ Vinv > V DD / 2

Desde un punto de vista de dise–o este resultado indica que modificando las dimensiones relativas
de los transistores se puede ajustar el valor de la tensi—n de inversi—n y, consecuentemente, se
puede asimetrizar segœn convenga la curva de transferencia.
__________________________________________________________________________________

Ejercicio 3.6

Encontrar expresiones anal’ticas para la funci—n ID (Vi) en las diversas zonas de trabajo de un
inversor CMOS. Encontrar la tensi—n de entrada para la cual la corriente es m‡xima. Para el caso
particular de VTN=-VTP y KN=KP, representarla gr‡ficamente.
__________________________________________________________________________________

Ejemplo 3.8

Calcular los m‡rgenes de ruido para un inversor CMOS. En aras de una mayor simplicidad,
considerar un inversor simŽtrico (KN=KP), tensiones umbral iguales en valor absoluto (VT=VTN=-
VTP=1,1V) y VDD=5V.

Como se recordar‡ los m‡rgenes de ruido se definen como

NMH = VOH min - V IH NML = V IL - VOL max

siendo

V IL = min Vi dV o V IH = max Vi dV o
= -1 = -1
dV i dV i

VOH min = V o V i =V IL VOL max = V o V i =V IH

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 109
_________________________________________________________________________________

Vamos a efectuar a continuaci—n el c‡lculo de VIH y de VOLmax, quedando el c‡lculo de VIL y


VOHmin como ejercicio para el lector.

A partir de la inspecci—n de la curva de transferencia parece l—gico suponer que el transistor NMOS
trabaja en zona —hmica y que el transistor PMOS est‡ en saturaci—n:

VO2 KP
I DN = K N ((Vi - V TN )VO - ) I DP = (Vi - V DD - V TP )2
2 2

Para Vi=VIH, tensi—n en principio alta, tenemos VO=VOLmax, tensi—n en principio baja, por lo
que podemos suponer VO2 << 2(Vi - V TN )VO , pudiendo despreciar el tŽrmino cuadr‡tico

I DN » K N (Vi - V TN )VO

Igualando las corrientes IDN e IDP y despejando VO queda

(Vi - V DD + V T )2
2(Vi - V T )VO = (Vi - V DD + V T )2 Þ VO =
2(Vi - V T )

que, derivando y aplicando la definici—n de VIH, conduce a

dVO 1 2(V IH - V DD + V T ) (V IH - V DD + V T )2
= ( - ) = -1
dVi 2 V IH - V T (V IH - V T )2

Esta es una ecuaci—n cuadr‡tica del tipo 2 x - x 2 = -2 , cuyas soluciones son

V IH - V DD + V T
x = 1± 3 Þ = 1± 3
V IH - V T

S—lo la soluci—n con signo negativo da lugar a un signo positivo de VIH. El resultado final queda
por tanto

V DD - (2 - 3 )V T (V IH - V DD + V T )2
V IH = » 2,83 V VOL max = » 0, 33 V
3 2(V IH - V T )

Llegados a este punto, es imprescindible comprobar a posteriori la validez de las suposiciones y/o
aproximaciones realizadas, en concreto verificar el estado de los transistores y la aproximaci—n
hecha para eliminar el tŽrmino cuadr‡tico en IDN.

© los autores, 1998; © Edicions UPC, 1998.


110 Dise–o digital
_________________________________________________________________________________

ì VOL max = 0, 33 V ü
í ý Þ VOL max << 2(V IH - V T )
î2(V IH - V T ) = 3, 46 V þ
ìV DSN = VOL max = 0, 33 V ü
í ý Þ V DSN < V GSN - V T Þ NMOS en W
î V GSN = V IH = 2,83 V þ
ìV DSP = VOL max - V DD ü
í ý Þ V DSP < V GSP + V T Þ PMOS en SAT
î V GSP = V IH - V DD þ
__________________________________________________________________________________

Ejercicio 3.7

Resuelva el ejemplo anterior sin hacer ninguna aproximaci—n en la expresi—n de la corriente para
la zona —hmica. Calcule el error cometido al despreciar el tŽrmino cuadr‡tico.
__________________________________________________________________________________

3.5.2 Puertas b‡sicas CMOS

El inversor CMOS se basa en la utilizaci—n de transistores con comportamientos opuestos. El


transistor NMOS se comporta como un interruptor cerrado que transmite una tensi—n nula cuando VGS
toma un valor l—gico alto y como un interruptor abierto cuando VGS toma un valor l—gico bajo. De
forma simŽtrica podemos considerar el transistor PMOS: como un interruptor cerrado que transmite
una tensi—n VDD cuando VGS toma un valor l—gico bajo y como interruptor abierto cuando VGS toma
un valor l—gico alto. La figura 3.36 ilustra esta interpretaci—n del funcionamiento del inversor CMOS.

a) V DD b) V
V DD DD

Vi VO V DD 0

Figura 3.36 Interpretaci—n mediante interruptores del funcionamiento del


inversor CMOS: a) caso de Vi=0; b) caso de Vi=VDD

Esta idea puede utilizarse para implementar cualquier funci—n l—gica combinacional. Una puerta l—gica
toma el valor "1" a su salida para ciertas combinaciones de valores de las variables de entrada; para

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 111
_________________________________________________________________________________

todas las dem‡s tomar‡ el valor "0". Por tanto es necesario dise–ar una red de transistores PMOS que
una la salida a la alimentaci—n y que sea equivalente a un interruptor cerrado para las combinaciones de
entrada que hacen la salida igual a "1". Por otra parte, para asegurar el valor cero en la salida para las
dem‡s combinaciones de entrada, es necesario dise–ar una red de transistores NMOS que se comporte
como un interruptor cerrado para las combinaciones de entrada restantes, es decir, aquŽllas que dan lugar
a salida baja.

Un esquema que ilustra esta forma de dise–ar se presenta en la figura 3.37.

VDD

PMOS
n
Vi VO

NMOS

Figura 3.37 Implementaci—n de una funci—n l—gica F de


n variables mediante tecnolog’a CMOS

Como ejemplo concreto, en la figura 3.38 se muestra la realizaci—n de una funci—n NOR y una
funci—n NAND de dos variables en tecnolog’a CMOS.

a) b) VDD
VDD

A A B

B F
F A

A B B

Figura 3.38 Puertas NOR (a) y NAND (b) en tecnolog’a CMOS

© los autores, 1998; © Edicions UPC, 1998.


112 Dise–o digital
_________________________________________________________________________________

Observando la puerta NOR de la figura 3.38.a, vemos que la red NMOS conduce, llevando un "0"
l—gico a la salida cuando alguno de los dos transistores en paralelo lo hace y que est‡ en corte cuando
ambos transistores est‡n cortados, luego podemos escribir

F = A+ B

Centr‡ndonos ahora en la red PMOS de la figura 3.38.a, podemos ver que Žsta conduce cuando los dos
transistores en serie lo hacen, llevando un "1" l—gico a la salida, y que est‡ en corte cuando uno de los
dos transistores est‡ cortado, luego podemos escribir

F = A×B

El resultado neto en ambas redes es una funci—n l—gica NOR de dos variables. Un an‡lisis simŽtrico es
posible para la puerta NAND y se deja como ejercicio para el lector.

Ejemplo 3.9

Implementar mediante tecnolog’a CMOS la funci—n f, descrita de forma can—nica.

f (a, b, c) = Õ M(0,1, 2, 4)
3

Para proponer la red NMOS, encontramos, al igual que en el ejemplo 3.5, una expresi—n para el
inverso de la funci—n. Por el mŽtodo de Karnaugh podemos encontrar una suma de productos y
simplificarla para reducir el nœmero de literales. Obtendremos

f = ab + ac + b c = a(b + c ) + b c

Necesitaremos tres inversores para controlar correctamente los transistores NMOS. Por otro lado,
si la implementamos a travŽs de la funci—n negada, tendremos que usar un solo inversor.

f =x x = a(b + c) + bc

Hasta aqu’ hemos resuelto la red NMOS. Deber’amos hacer lo mismo para la PMOS, recordando
que debemos encontrar ahora una expresi—n para la funci—n sin invertir, y que los PMOS conducen
cuando su entrada es baja. Esta expresi—n la podemos hallar por dualidad.

f =x [
x = a + (b c ) (b + c )]
La topolog’a correspondiente a las funciones escogidas necesita de 6 transistores NMOS y 6
PMOS, como se aprecia en la figura 3.39.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 113
_________________________________________________________________________________

b
a
c

b c
x
f

a b

b c c

Figura 3.39 Funci—n del ejemplo 3.9

__________________________________________________________________________________

Ejercicio 3.8

Proponer una implementaci—n CMOS para un sistema que permita hacer la suma aritmŽtica de tres
bits de entrada. La salida deber‡ tener dos bits, z1 z0.

Comparar la soluci—n propuesta con la que se deriva de las siguientes expresiones para el inverso
de las funciones a implementar.

z1 = x x = a(b + c) + bc
z0 = y y = x(a + b + c) + abc
__________________________________________________________________________________

3.5.3 Otras estructuras

Las dos posibilidades de realizaci—n de puertas l—gicas comentadas hasta aqu’ (NMOS con carga de
vaciamiento y CMOS) son, especialmente en el segundo caso, utilizadas mayoritariamente. Sin
embargo existe multitud de variantes de ambas tecnolog’as cuyo uso no es tan general pero si m‡s
adecuado en determinadas situaciones. De entre estas variantes mencionaremos brevemente tres a travŽs
de su inversor representativo: la l—gica NMOS con carga saturada, la l—gica pseudo-NMOS y las
puertas CMOS tri-state.

© los autores, 1998; © Edicions UPC, 1998.


114 Dise–o digital
_________________________________________________________________________________

L—gica NMOS con carga saturada. Se basa en la utilizaci—n como carga de un transistor
NMOS de acumulaci—n donde por construcci—n se fuerza VDS=VGS (ver figura 3.40).

V DD

VO
Vi

Figura 3.40 Inversor NMOS con carga saturada

La principal ventaja de este tipo de estructura es que, al utilizar un s—lo tipo de transistor, requiere un
proceso de fabricaci—n m‡s sencillo que la tecnolog’a NMOS con carga de vaciamiento o la CMOS.
Su principal problema estriba en que par‡metros elŽctricos como los niveles l—gicos son
sensiblemente peores. As’, por ejemplo, no es dif’cil deducir que VOH=VDD-VT.

L—gica pseudo-NMOS. Conceptualmente tambiŽn se basa en la tecnolog’a NMOS con carga de


vaciamiento, utilizando como transistor de carga un PMOS con VGS =-V DD (ver figura 3.41). El
funcionamiento es cualitativamente idŽntico al de un inversor NMOS con carga de vaciamiento: el
transistor PMOS trabaja sobre una œnica curva caracter’stica, con lo que es f‡cil determinar VOH, VOL,
etc.

ID
V DD

V i =V
DD

VO V i2
Vi
V i1

V OL Vi < V TI V DD V

Figura 3.41 Inversor pseudo-NMOS

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 115
_________________________________________________________________________________

A nivel tecnol—gico esta estructura es compatible con la CMOS, aunque sus prestaciones a nivel
elŽctrico son inferiores y similares (aunque un poco mejores) a las de un inversor NMOS con carga de
vaciamiento. Suele emplearse en estructuras CMOS regulares y grandes, como las PLA y/o ROM (ver
cap’tulo 5), que pueden tener un tama–o reducido a base de evitar el desdoblamiento en dos redes duales
propio de las puertas CMOS t’picas.

L—gica CMOS tri-state. Se trata de una variante de la puerta CMOS cl‡sica donde existe la
posibilidad de desconectar la salida mediante una variable de control (ver figura 3.42).

V DD

E
Vi VO
E

Figura 3.42 Inversor CMOS con salida tri-state

Es evidente que si la variable de control est‡ activada (E=1) este circuito funciona igual que un inversor
CMOS. Para E=0, los dos transistores controlados por E est‡n cortados y el valor de VO es el
correspondiente al estado de carga de la capacidad en el nodo de salida, valor que no depende de Vi.

3.6 Cuestiones y problemas

Cuestiones

C3.1 Como se aprecia en la figura 3.4, los retardos de propagaci—n est‡n definidos entre el 50% de las
transiciones de entrada y salida de la puerta que caracterizan. Razone c—mo se relaciona el retardo total
de diversos bloques conectados en cascada con los retardos particulares de cada uno. ÀY si los bloques
se encuentran en paralelo?

C3.2 Dibuje unas curvas ID(VGS) con VDS como par‡metro para un transistor NMOS de acumulaci—n
y para uno de vaciamiento.

© los autores, 1998; © Edicions UPC, 1998.


116 Dise–o digital
_________________________________________________________________________________

C3.3 Razone quŽ ocurre en un transistor MOS cuando la relaci—n entre VDS y VGS-VT es de igualdad.
ÀEst‡ en —hmica o en saturaci—n?

C3.4 Una notaci—n alternativa a la de la figura 3.11 para las corrientes en un transistor PMOS seria la
siguente:

Corriente Margen de validez Zona

ID = 0 V SG £ V T Corte (OFF)

é V2 ù
I D = K ê(V SG - V T )V SD - SD ú V SG > V T , V SD < V SG - V T Ohmica (W)
êë 2 úû

K
ID = (V SG - V T )2 V SG > V T , V SD > V SG - V T Saturaci—n (SAT)
2

Compruebe que son expresiones equivalentes y razonar las ventajas de una y otra, compar‡ndolas
con las del transistor NMOS.

C3.5 En un modelo menos simplificado para transistores MOS que el presentado en este cap’tulo, la
ecuaci—n de la zona de saturaci—n se corrige a–adiendo un tŽrmino, tal como se ve a continuaci—n, para
tener en cuenta una ligera dependencia con VDS.

K
I Dsat = (V GS - V T )2 (1 + lV DS )
2

ÀC—mo cambia esto las curvas ID (VDS)? MuŽstrelo gr‡ficamente para unos valores t’picos de
VT=1V y l=0.05V-1. Vea c—mo cambiar’a, de forma cualitativa, la curva de transferencia de un
inversor CMOS, mostrada en la figura 3.35.

C3.6 ÀC—mo afectar’a, cualitativamente, a los niveles l—gicos VOH y VOL de un inversor NMOS una
carga resistiva entre la salida y tierra?ÀY si la carga est‡ entre la salida y VDD? Razone la variaci—n de
estos niveles l—gicos con el valor de la resistencia.

C3.7 Responda las mismas preguntas de la cuestion 3.6 para un inversor CMOS.

C3.8 ÀA quŽ funciones l—gicas corresponder’an las implementaciones CMOS propuestas para las
funciones NOR y NAND de la figura 3.38 si intercambiamos la asignaci—n entre niveles de tensi—n y
estados l—gicos (1Ûtensi—n baja y 0Ûtensi—n alta)?

C3.9 El ejemplo 3.9 muestra c—mo obtener, aplicando dualidad a las expresiones algebraicas, la
topolog’a de la red PMOS una vez conocida la de la NMOS en la realizaci—n CMOS de cualquier
funcion. Enuncie un mŽtodo que sea aplicable directamente a la topolog’a de las redes, sin pasar por las
expresiones algebraicas, en tŽrminos de bloques, o transistores, en serie o en paralelo.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 117
_________________________________________________________________________________

Problemas

P3.1 Considere los siguientes circuitos inversores:

VDD V DD
VDD VDD

Tv Ts Tp R
VO VO VO VO
Vi Ti Vi Ti Vi Ti Vi Ti

a) Compare los niveles l—gicos VOH y VOL de cada puerta.

b) ÀQuŽ variaciones podriamos introducir en los datos de cada uno de los inversores para mejorar
estos niveles?

Datos: VDD=5V, VTNi=VTNs=|VTP|=1V, VTNv=-3.5V, K'N=35mA/V2, K'P=15mA/V2, R=10kW,


(W/L)Ni=6, (W/L)Ns=1, (W/L)Nv=3, (W/L)P=2

P3.2 La red de la figura es una estructura bidimensional de transistores de paso llamada circuito de
Tally. Se propone analizar su comportamiento a nivel l—gico.

Z2

X0
X0

Z1

X1 X0
X1 X0
V DD

Z0

X1 X0
X1 X0

a) Encuentre la tabla de verdad de cada una de las salidas. Proponga una especificaci—n de alto nivel
para estas salidas.

© los autores, 1998; © Edicions UPC, 1998.


118 Dise–o digital
_________________________________________________________________________________

b) Calcule VOLyVOH en la salida Z1. ÀSon estos niveles generalizables a las dem‡s salidas?

c) Razone c—mo podr’an mejorarse estos niveles l—gicos.

P3.3 La figura siguiente muestra una implementaci—n de una funci—n l—gica de dos variables

Construya su tabla de verdad. Proponga una implementaci—n NMOS y otra CMOS para la misma
funci—n. ÀCu‡ntos transistores, incluyendo los de los inversores usados, necesita cada una?

P3.4 Proponga distintas implementaciones NMOS y CMOS para la funci—n

F( A, B, C, D) = å m(1, 3, 4, 5, 7,11,15)
4

P3.5 Considere el siguiente inversor.

VDD

V DD = 5V
T2
VT desconocida
VO
(W/L) = 1/2
Vi T1 T1
(W/L)T2 = 2

a) Determine la regi—n de funcionamento de T2.

b) Si tenemos VO=VI=VA, Àen quŽ estado se encuentra T1? ÀEs posible obtener VT en funci—n de
VA y VDD en esta situaci—n? Si es as’, calcule el valor de VT per VA = 2V.

(Nota): Suponga que VA>VT.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 119
_________________________________________________________________________________

P3.6 Para un inversor pseudo-NMOS, como el de la figura 3.41, calcule:

a) La tensi—n de inversi—n, Vinv, tensi—n a la cual Vi=VO.

b) Los m‡rgenes de ruido, NMH y NML.

c) Los niveles de tensi—n VOH y VOL si ponemos una carga de 100 kW entre la salida VO y tierra.

Datos: VTN=|VTP|=1V, VDD=5V, K'N=20mA/V2=2K'P, (W/L)N=10=5(W/L)P,

P3.7 Del circuito de la figura queremos saber:

V DD

VO

VA VB

a) ÀCu‡l es su tabla de verdad y quŽ funci—n l—gica realiza?

b) El valor de V0 cuando VA=VDD y VB=0 y el valor de V0 cuando VA=VB=VDD.

c) Generalice el resultado anterior para el mismo tipo de puerta con n entradas idŽnticas de valor
VDD.

Datos: K'n= 20 mA/V2, K'p= 10 mA/V2, (W/L)n= 10, (W/L)p= 2, VTN= -VTP= 1V, VDD= 5V

P3.8 El circuito de la figura tiene una entrada de control, F, que permite su funcionamiento en ciertos
per’odos de tiempo.

a) Para F=10 V, Àen quŽ regi—n de funcionamiento trabajan los transistores T3 y T4? ÀDegradan la
transmisi—n del "1" l—gico (VDD )? Razone la respuesta.

b) Si en F encontramos pulsos de 10V, Àen quŽ regi—n o regiones de funcionamiento trabaja el


transistor TL? Explique el funcionamiento del circuito a nivel l—gico.

c) Calcule las tensiones del nivel de salida alto (VOH) y bajo (VOL).

© los autores, 1998; © Edicions UPC, 1998.


120 Dise–o digital
_________________________________________________________________________________

V DD

F TL
VO
A T1
T3

B
T4 T2

Datos: VDD=5V, VT=1V, KR=kI/kL=20, con kI=kT1=kT2

P3.9 Obtenga la tabla de verdad de la funci—n l—gica F segœn la figura. Obtenga sus niveles l—gicos de
salida alto y bajo, VOH = VO½VA=VB=VDD y VOL = VO½VA=VB=0. Razone por quŽ no se usa este tipo
de estructura.

V DD

B
F

A B

P3.10 La siguiente figura muestra una implementaci—n CMOS para una puerta AND. Un error en el
proceso de fabricaci—n ha provocado un cortocircuito entre el drenador y el surtidor del transistor
NMOS controlado por la entrada B.

a) Razone a quŽ combinaciones de entrada afectar‡ este defecto.

b) Calcule el valor de la tensi—n en el nodo intermedio X para estas combinaciones de variables de


entrada.

c) Calcule el valor de tensi—n a la salida en este mismo caso.

d) ÀCu‡l ser‡ la potencia media disipada en est‡tica? (Suponga que en ambas entradas los unos y
los ceros son equiprobables).

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos circuitales del dise–o digital 121
_________________________________________________________________________________

VDD
V DD

A B

F
X
A

Datos: K'n=2K'p= 80 mA/V2, (W/L)n= 8/2, (W/L)p= 12/2, VTN= -VTP= 1V, VDD= 5V

P3.11 La estructura de la figura se corresponde con la de un inversor con histŽresis. Encontrar la zona
de funcionamiento de cada transistor cuando la entrada vale 0 y cuando vale VDD.

V DD

T1
T3

T2
V in Vout
VDD
T4

T6
T5

Partiendo de la situaci—n estable Vin=0, calcular cu‡nto debe aumentar Vin para descargar el nodo
V out, es decir, para que T4 y T5 conduzcan. Hacer los c‡lculos partiendo de Vin=V DD , para
encontrar a quŽ tensi—n de entrada empezar‡n a conducir a la vez T1 y T2.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 123
________________________________________________________________________________

Capítulo 4 Fundamentos tecnológicos del diseño digital

En el capítulo anterior se han presentado algunas implementaciones circuitales de puertas lógicas en


las tecnologías MOS. No se ha hecho mención, sin embargo, a que de hecho los diversos transistores
integrantes de una puerta lógica no suelen ser componentes discretos sino que normalmente forman
parte de un mismo circuito integrado y por tanto son fabricados simultáneamente.

El propósito de este capítulo es introducir al lector en la tecnología CMOS desde el punto de vista de
su fabricación, poniendo en evidencia la posibilidad de un lenguaje común entre el diseñador de
circuitos digitales y el fabricante de circuitos integrados. Este lenguaje común, basado en una
herramienta geométrica denominada "layout", ha supuesto una innovación en el mercado de los
circuitos integrados digitales, permitiendo diseñar y producir circuitos a medida de un usuario y una
aplicación concretos (es decir circuitos específicos o "custom").

El capítulo presenta en primer lugar, mediante un tratamiento descriptivo e introductorio, una breve
panorámica de las etapas básicas en la fabricación de circuitos integrados sobre silicio, orientada
desde una perspectiva CMOS. Los lectores que tengan un conocimiento previo de este tema pueden
pasar directamente al apartado 4.2, donde se presenta con cierto detalle un proceso de fabricación
CMOS completo, tomándose como referencia básica de diseño el conjunto de máscaras empleadas
(layout) e ilustrando su uso mediante ejemplos. Más adelante se aborda la problemática de los efectos
eléctricos presentes en un circuito integrado MOS y su relación con la tecnología. Por último, el
capítulo presenta un método aproximado de cálculo de retardos en circuitos integrados CMOS.

4.1 Etapas básicas de fabricación de circuitos integrados

La tecnología de fabricación de circuitos integrados sobre silicio ha evolucionado en las últimas


décadas hasta alcanzar un gran nivel de sofisticación. Su objetivo, sin embargo, puede presentarse de
forma sencilla: partiendo de una oblea de silicio cristalino ser capaces de fabricar sobre ella
transistores (cuantos más y más pequeños mejor) mediante la adecuada situación de zonas dopadas
tipo N (con impurezas donadoras), de zonas dopadas tipo P (con impurezas aceptoras), y de sus
interconexiones.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
124 Diseño digital
________________________________________________________________________________

Mediante técnicas de crecimiento cristalino se obtienen lingotes cilíndricos de silicio monocristalino


con una concentración de impurezas (tipo N o tipo P) controlada y uniforme. Estos lingotes
posteriormente son aserrados y pulidos hasta obtener unos discos u obleas (en inglés "wafers") de un
grosor comprendido habitualmente entre 300 µm y 1 mm, y diámetro variable. A lo largo de los años
el diámetro de las obleas ha evolucionado al alza, y actualmente supera los 20 cm.

Las obleas son los sustratos de partida sobre los cuales se realizan los circuitos integrados. Las
operaciones o etapas tecnológicas cuya aplicación en orden adecuado conduce a un circuito integrado
MOS son básicamente cuatro: la deposición de capas, la oxidación térmica del silicio, la
fotolitografía, y la introducción de impurezas (en dos modalidades: difusión e implantación iónica).
En los apartados siguientes se comentan estas etapas brevemente y por separado.

4.1.1 Deposición de capas

En las tecnologías MOS tiene particular interés el depósito de silicio policristalino (polisilicio), que se
consigue mediante deposición química en fase vapor (CVD Chemical Vapor Deposition). En esencia
este procedimiento consiste en introducir en un horno el sustrato sobre el que se desea realizar el
depósito juntamente con un gas portador del material a depositar (en el caso del polisilicio el gas en
cuestión es SiH4 o Cl3HSi); a temperaturas del orden de 1000ºC y presiones del gas portador
adecuadas se consigue que átomos de silicio presentes en el gas precipiten sobre el sustrato. En
función de las condiciones precisas de presión y temperatura el silicio depositado puede ser amorfo o
policristalino (polisilicio).

Si Si

Fig 4.1 Deposición de un material sobre una oblea

El polisilicio se utiliza en tecnologías MOS como material de puerta de los transistores, sustituyendo
a la antigua puerta metálica. Su ventaja principal es, como veremos más adelante, que puede utilizarse
para realizar el drenador y el surtidor, de forma que por construcción estas dos zonas queden
directamente alineadas con la puerta. Este procedimiento, utilizado en todas las tecnologías MOS
actuales, se denomina autoalineado.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 125
________________________________________________________________________________

El metal, utilizado para realizar pistas de conexión y contactos, también se deposita sobre la oblea. Un
procedimiento sencillo para depositar metales consiste en evaporar de forma brusca metal por efecto
Joule (calentamiento mediante una resistencia) en un ambiente de vacio; el material evaporado se
condensa sobre la superficie de la oblea.

Otros materiales utilizados comúnmente en procesos MOS y susceptibles de ser depositados son el
Si3N4 o el SiO2.

4.1.2 Oxidación térmica

Probablemente se pueda afirmar que la tecnología del silicio ha alcanzado su grado actual de
desarrollo debido a las particulares propiedades del dióxido de silicio (SiO2). El SiO2 se utiliza como
aislante (es el caso del óxido de puerta de los transistores MOS) y también para delimitar las zonas
donde se va a proceder a un cambio en el tipo de dopado del silicio (de P a N o viceversa).

O2
a) Si O 2

Si Si

O2
b)

Si Si

Fig 4.2 a) Oxidación de una oblea de silicio. b) Oxidación parcial

La oxidación del silicio se lleva a cabo mediante calentamiento de la oblea en atmósfera rica en
oxígeno. Para ello pueden utilizarse dos tipos de ambientes: el oxígeno seco (oxidación seca), o una
mezcla de oxígeno y vapor de agua (oxidación húmeda).

La oxidación seca produce un óxido de mejor calidad pero es mucho más lenta que la oxidación
húmeda a igual temperatura (el grosor del óxido obtenido en el mismo tiempo es mucho menor). Por
su parte, la oxidación húmeda es la utilizada habitualmente para obtener espesores de óxido
importantes.

© los autores, 1998; © Edicions UPC, 1998.


126 Diseño digital
________________________________________________________________________________

Los procesos de oxidación se realizan a temperaturas próximas a los 1000ºC. Un aspecto que
conviene tener presente es que la oxidación consume silicio (esto es así en la oxidación de cualquier
elemento), luego la capa de óxido que se va formando crece en ambas direcciones según el eje
vertical (ver figura 4.2.a). La figura 4.2.b muestra la cinética de un proceso de oxidación sobre una
estructura donde parte de la superficie ya estaba cubierta inicialmente por una capa de SiO2: la nueva
capa de óxido crece más rápidamente donde el silicio está en contacto directo con el ambiente
oxidante.

4.1.3 Fotolitografía

La fotolitografía permite realizar operaciones delimitadas espacialmente sobre la superficie de la


oblea. Supongamos, por ejemplo, que tras una oxidación queremos eliminar el óxido en determinadas
partes de la oblea; esto puede hacerse mediante un ataque químico de la oblea protegiendo la fracción
de superficie donde queremos que el óxido permanezca.

Vamos a detallar un poco más este ejemplo. Para ello podemos tomar como referencia o punto de
partida la situación mostrada en la figura 4.3.I.

a) Deposición de resina fotosensible sobre toda la oblea (ver figura 4.3.II).

b) Iluminación con luz ultravioleta de áreas determinadas de resina. Esto se


consigue colocando una máscara encima de la oblea tal que unas zonas de esta máscara sean
transparentes a la luz y otras no (ver figura 4.3.III).

c) La resina que ha sido iluminada adquiere propiedades distintas que la que no lo


ha sido. Esto permite disolverla de forma selectiva en un revelador. Puede disolverse la resina
que ha sido iluminada (caso denominado de resina positiva) o bien la que no lo ha sido (resina
negativa). En nuestro ejemplo se trataría de resina positiva (ver figura 4.3.IV).

d) Endurecimento de la resina restante y ataque químico (grabado) de la superficie


mediante ácidos. La resina endurecida protege del ataque químico los materiales situados
debajo (ver figura 4.3.V).

e) Eliminación de la resina restante (ver figura 4.3.VI). El resultado final es que el


óxido crecido sólo recubre las porciones de la oblea determinadas por la máscara, siendo
eliminado del resto.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 127
________________________________________________________________________________

I) Si O 2
- Situación inicial
Si

Resina
II)
Si O 2 - Deposición de resina

Si

III) Máscara

Si O 2 - Iluminación con luz UV a


través de la máscara
Si

IV) Si O 2
- Revelado
Si

V)
Si O 2

- Grabado del óxido


Si

VI) Si O 2
- Eliminación de la
Si resina restante

Figura 4.3 Representación esquemática de una etapa de fotolitografía

© los autores, 1998; © Edicions UPC, 1998.


128 Diseño digital
________________________________________________________________________________

4.1.4 Difusión de impurezas

Esta etapa permite la introducción de impurezas dentro de un semiconductor. De forma resumida el


proceso es como sigue: a temperatura elevada (entre 900 y 1100ºC) se pone en contacto la oblea con
algún material que contenga una alta concentración de impurezas del tipo que se desea introducir; los
átomos de impureza en contacto con la superficie de la oblea penetran lentamente en ésta. Esta
penetración aumenta con la temperatura y la duración del proceso.
Tras una etapa de difusión el perfil de dopado (concentración de impurezas introducidas) resultante es
decreciente con la distancia a la superficie, normalmente siguiendo una variación del tipo función de
error complementario (ver figura 4.4).
La rapidez en la penetración de las impurezas viene determinada por un parámetro, llamado constante
de difusión, dependiente del tipo concreto de impureza, del material en donde la difusión se produce
y de la temperatura.

Fuente de impurezas N(x)

Oxido
t1 < t2 < t3
Zona
dopada
x
Sustrato x

Figura 4.4 Difusión localizada y perfiles de dopado resultantes

Cuando se está interesado en cambiar el tipo de conductividad del semiconductor (de P a N o


viceversa) en zonas localizadas de la oblea suele utilizarse el SiO2 para enmascarar la difusión. En
efecto las constantes de difusión de las impurezas normalmente utilizadas (fósforo, arsénico o boro)
son más de un orden de magnitud menores en el SiO2 que en el silicio. Como consecuencia, la forma
habitual de crear zonas N o P localizadas mediante difusión es la siguiente (ver figura 4.4):

a) Se realiza una oxidación previa.

b) Mediante una etapa de fotolitografía se elimina el óxido de las zonas en las que se
desea realizar la difusión, manteniéndolo en las restantes.

c) Se realiza el proceso de difusión.

d) Eventualmente se elimina el óxido.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 129
________________________________________________________________________________

4.1.5 Implantación iónica

La implantación iónica es el procedimiento utilizado en las tecnologías MOS comerciales para


conseguir zonas localizadas de tipo P o N. En esencia el procedimiento consiste en bombardear el
sustrato con iones de la impureza adecuada. Para ello las impurezas son primero ionizadas,
posteriormente aceleradas mediante campos eléctricos y finalmente proyectadas sobre la oblea, y
chocan de forma aleatoria con los átomos de silicio hasta perder su energía e inmovilizarse.
La penetración de las impurezas en el sustrato de silicio depende del tipo de éstas (básicamente de su
tamaño) y de la energía con que han sido aceleradas (que determina la velocidad a la que inciden
sobre la oblea). Como los choques son aleatorios, el perfil de dopado resultante corresponde con
buena aproximación a una distribución gaussiana (ver figura 4.5).

N(x)
Después de
implantar

Después del
"annealing"

Figura 4.5 Perfiles de dopado típicos tras una etapa de implantación

Las principal ventaja de la implantación frente a la difusión es la posibilidad de controlar con gran
precisión el perfil de dopado resultante a través de dos parámetros: la cantidad de impurezas
introducidas (que influye sobre todo en el valor del máximo y la anchura del perfil) y la energía de
implantación (que influye sobre la posición del máximo).
Para limitar las áreas en las que los iones de impureza deben alcanzar el sustrato es necesario algún
tipo de protección o enmascaramiento de las zonas que no deben ser afectadas. Los materiales
habitualmente utilizados para ello son el SiO2 (crecido o depositado), el Si3N4 depositado, el
polisilicio depositado y, en ocasiones, la fotoresina.
Es preciso tener en cuenta que después de la implantación la estructura cristalina del silicio queda
dañada como consecuencia de las colisiones de los átomos de impureza con los del sustrato. Es
preciso, por tanto, regenerar la estructura cristalina original mediante un breve tratamiento térmico
posterior a la implantación. Este tratamiento térmico implica una cierta difusión de las impurezas
implantadas y, con ella, una modificación del perfil de dopado (éste se ensancha); este paso obligado
tras una etapa de implantación se denomina "annealing", o recocido.

© los autores, 1998; © Edicions UPC, 1998.


130 Diseño digital
________________________________________________________________________________

4.1.6 Fabricación de un transistor MOS con puerta de polisilicio

Una vez pasada revista, aunque de forma somera, a las etapas básicas de fabricación de circuitos
integrados sobre silicio, vamos a ver un ejemplo de concatenación de estas etapas que permite
fabricar un transistor NMOS a partir de una oblea de silicio tipo P. La secuencia de operaciones se
ilustra en la figura 4.6.
El proceso se inicia con el crecimiento de un óxido grueso, llamado de campo, cuyo espesor típico es
de 1µm. A continuación se delimita la zona donde situaremos el transistor (zona activa) mediante un
paso de litografía, cuyo resultado es que el óxido de campo recubrirá toda la oblea salvo la zona a
ocupar por el dispositivo (ver figura 4.6.b).

a) Oxidación de campo

b) Delimitación del área activa

c) Crecimiento del óxido fino

d) Deposición del polisilicio

Figura 4.6 Fabricación de un transistor MOS de puerta de polisilicio

En la zona activa se hace crecer una capa fina de óxido térmico seco, que será el óxido de puerta en el
dispositivo acabado, y cuyo espesor indicativo es de 300 Å. El paso siguiente es el depósito de

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 131
________________________________________________________________________________

polisilicio sobre toda la oblea, seguido de un ataque de éste y el óxido fino, preservando solamente la
zona de puerta y dejando el silicio al descubierto en las zonas de drenador y surtidor (ver figura
4.6.e).
Sobre la estructura resultante se implantan impurezas tipo N. Los iones de impureza llegarán al silicio
solamente en las zonas en que éste está descubierto (ver figura 4.6.g). Seguidamente se recubre todo
mediante una capa de óxido (en esta ocasión depositado) en la cual se practican mediante ataque
selectivo aperturas en las zonas en que se quiere hacer los contactos de drenador y surtidor. La última
etapa consiste en el depósito del metal y su posterior ataque para formar pistas de interconexión.

e) Grabado (creación de la zona


de puerta)

f) Implantación de drenador y
surtidor

g) Deposición de óxido y
grabado para realizar los
contactos

h) Deposición del metal y


grabado para realizar las pistas
de conexión

Figura 4.6 Fabricación de un transistor MOS de puerta de polisilicio

Nótese que en este sencillo ejemplo hemos visto que para fabricar un transistor son necesarias cuatro
operaciones que requieren litografía, es decir, cuatro máscaras diferentes (delimitación de la zona
activa, de la zona de puerta, de los agujeros de contacto, y de las pistas de metal).

© los autores, 1998; © Edicions UPC, 1998.


132 Diseño digital
________________________________________________________________________________

4.2 Procesos CMOS y layouts

Entendemos por proceso CMOS la serie ordenada de etapas de fabricación que permite realizar un
circuito CMOS. Téngase en cuenta que cualquier circuito CMOS por complicado que sea es
simplemente una interconexión de transistores PMOS y NMOS, por tanto, un proceso CMOS es la
secuencia de operaciones tecnológicas que producen transistores NMOS y PMOS en la misma oblea.
Las etapas principales de cualquier proceso CMOS (tal vez sería más riguroso decir que las etapas
que necesitan de uso de máscara) son las mismas y su secuenciación también, con independencia del
fabricante. Es por este motivo que es posible a partir del conocimiento de un proceso genérico diseñar
circuitos integrados con una cierta independencia del fabricante que los vaya a realizar. A lo largo de
los apartados siguientes veremos hasta qué punto esta afirmación es exacta.

4.2.1 Fabricación de un inversor CMOS

Al ser éste un texto introductorio, presentaremos un proceso de fabricación de circuitos CMOS


simplificado. Puesto que las máscaras utilizadas en este proceso son básicamente las mismas que en
procesos CMOS más sofisticados o realistas, la comprensión del proceso aquí presentado es suficiente
desde el punto de vista del diseñador de circuitos integrados. Como ejemplo de referencia tomaremos
el caso de la fabricación de un inversor, aunque, como veremos, las conclusiones que se obtendrán
son perfectamente generalizables a cualquier circuito CMOS.

El primer inconveniente a remarcar para fabricar transistores PMOS y NMOS de forma conjunta
reside en que los transistores NMOS necesitan de un sustrato de tipo P mientras que los transistores
PMOS lo necesitan de tipo N. Luego si por ejemplo el sustrato es de tipo P la primera operación en un
proceso CMOS es crear una zona suficientemente grande de tipo N (denominada pozo) donde alojar
los transistores PMOS. La solución simétrica también es posible: comenzar con un sustrato tipo N y
crear un pozo de zona de tipo P donde alojar los transistores NMOS. En el primer caso diremos que
utilizamos tecnología CMOS de pozo N y en el segundo diremos que utilizamos tecnología CMOS de
pozo P.

a) b)

p n n p

Transistores NMOS Transistores PMOS Transistores PMOS Transistores NMOS

Figura 4.7 Tecnologías CMOS de pozo N (a) y de pozo P (b)

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 133
________________________________________________________________________________

Al ser la movilidad de los portadores una función decreciente con el dopado resulta que utilizar pozo
N o pozo P tiene consecuencias sobre el comportamiento eléctrico de los transistores fabricados.
Como el pozo tiene un dopado mayor que el sustrato la movilidad de los portadores queda más
degradada en el canal de un transistor situado dentro del pozo que en el que no lo está. Así en el caso
de pozo N los transistores PMOS están dentro del pozo, luego la movilidad de los huecos se verá más
reducida por efecto del dopado que la movilidad de los electrones en los transistores NMOS. Como la
movilidad de los electrones, a igual dopado, es mayor que la de los huecos la consecuencia global es
que esta diferencia de movilidades se ve incrementada. Un razonamiento parecido conduce a que en
el caso de utilizar tecnología de pozo P la diferencia de movilidades entre electrones y huecos
disminuye.

En la fabricación de nuestro inversor utilizaremos como referencia la tecnología CMOS de pozo N.


La figura 4.8 esquematiza todo el proceso, y se representa la evolución de la sección vertical del
dispositivo conforme avanza el proceso. Simultáneamente se presenta a la derecha de la figura la vista
superior de las máscaras utilizadas. Cada máscara está descrita mediante un entramado concreto que
permite su reconocimiento posterior (ver tabla 4.1). Por último, encima de cada sección del
dispositivo se muestra una sección de la máscara con sus zonas opacas y transparentes. La figura 4.8
es de gran importancia y conviene comprenderla suficientemente antes de abordar la lectura de los
apartados siguientes de este capítulo.

El primer paso del proceso es, como se ha indicado más arriba, crear el pozo N. Esto suele hacerse
mediante implantación seguida de difusión (ver figura 4.8.a). Para ello es necesaria una máscara que
delimite la situación del pozo.

Una vez creado el pozo y tras una oxidación posterior, es preciso delimitar la zona activa, es decir, el
área de la oblea en la cual estarán situados los transistores. La máscara utilizada a tal efecto se
denomina de zona activa o "thinox" (ver figura 4.8.b). Tras delimitar la zona activa, mediante
oxidación seca se crece sobre ésta el óxido de puerta (este óxido apenas se nota donde ya estaba el
óxido de campo). A continuación se deposita el polisilicio, habitualmente dopado N+, que constituirá
la puerta de los transistores (ver figura 4.8.c).

Mediante una etapa de fotolitografía, utilizando la máscara que denominaremos de polisilicio, se


delimitan las puertas de los transistores atacando el polisilicio y el óxido fino subyacente en todas
partes menos en las ubicaciones indicadas por la mencionada máscara. La situación tras este ataque se
puede observar en la figura 4.8.d.

En este punto del proceso se procede a crear mediante implantación los surtidores y drenadores de
todos los transistores (tanto NMOS como PMOS). Para ello basta con una sola máscara, denominada
de implantación. Utilizando esta máscara se implanta de tipo N+ realizando así los drenadores y
surtidores de los transistores NMOS y utilizando su complementaria, o bien la misma con la resina
contraria, se implantan los drenadores y surtidores de los transistores PMOS (ver figuras 4.8.e y
4.8.f). Procesos CMOS más complejos utilizan dos máscaras diferentes (una para cada tipo de
implantación).

© los autores, 1998; © Edicions UPC, 1998.


134 Diseño digital
________________________________________________________________________________

Máscara 1: Pozo N.
a) Creación del pozo N mediante implantación/difusión.

Máscara 2: Area activa.


b) Crecimiento del óxido de campo y delimitación de la zona activa.

c) Crecimiento del óxido de puerta y deposición del polisilicio.

Máscara 3: Polisilicio

d) Grabado del polisilicio y del óxido de puerta.

Figura 4.8 Etapas de un proceso CMOS simplificado

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 135
________________________________________________________________________________

n+ n+

Máscara 4: Implantación n+.


e) Creación de drenadores y surtidores en los NMOS.

n+ n+ p+ p+

Máscara 4-bis: Implantación p+.

f) Creación de drenadores y surtidores en los PMOS.

n+ n+ p+ p+
Máscara 5: Contactos

g) Deposición de óxido y grabado de los contactos.

n+ n+ p+ p+
Máscara 6: Metal

h) Deposición de metal y grabado de las pistas.

Figura 4.8 Etapas de un proceso CMOS simplificado

© los autores, 1998; © Edicions UPC, 1998.


136 Diseño digital
________________________________________________________________________________

Se denomina óhmico al contacto entre metal y semiconductor que permite el paso de la corriente en
los dos sentidos sin provocar caídas resistivas (el caso opuesto se denomina contacto Schottky o
rectificador y es una situación a evitar aquí). En general la condición para que el contacto sea óhmico
es que el semiconductor esté fuertemente dopado, como es el caso de los drenadores y surtidores de
un transistor MOS. Las etapas finales del proceso consisten en, tras recubrir todo con óxido
depositado, abrir agujeros en éste para poder realizar contactos, es decir, delimitar las zonas donde el
metal debe establecer contacto con el silicio. Para ello se utiliza una nueva máscara denominada de
contactos (ver figura 4.8.g).

Un aspecto complementario que merece ser comentado es el siguiente: los drenadores y surtidores de
los transistores NMOS son zonas N+ sobre sustrato tipo P; si la implantación N+ tiene lugar sobre el
pozo N, lo que se consigue es una zona fuertemente dopada sobre la que es posible establecer
contactos óhmicos con el pozo. Análogamente si la implantación P+ tiene lugar sobre el pozo N se
generan los drenadores y surtidores de los transistores PMOS y si dicha implantación se realiza sobre
el sustrato P lo que se consigue es tener una zona fuertemente dopada a través de la cual es posible
establecer un contacto óhmico con el sustrato.

Por último el metal es depositado sobre toda la oblea y eliminado mediante grabado en donde no es
necesario. Esto se consigue mediante una última máscara, denominada de metal (ver figura 4.8.h).

Las etapas finales del proceso pueden repetirse para obtener sucesivas capas de pistas de metal
separadas por óxido y contactarlas donde sea necesario; así, cuando se desea realizar un conexionado
complejo suelen utilizarse dos niveles de metal. Para ello son necesarias dos máscaras adicionales:
una segunda de contactos y otra segunda de metal.

4.2.2 Layouts

La representación gráfica del conjunto de máscaras utilizadas en la fabricación de un circuito


integrado recibe el nombre de "layout". El hecho de que tanto el proceso CMOS como el conjunto de
máscaras que éste utiliza sean básicamente fijos permite desligar el diseño a nivel transistor de un
circuito integrado de su proceso de fabricación. Por tanto es perfectamente posible separar
físicamente dos etapas: I) el diseñador de circuitos integrados especifica la forma geométrica de las
distintas máscaras, es decir el "layout", que determinan de forma unívoca el circuito resultante
(tamaños e inteconexión de los transistores), II) con la información contenida en el "layout" el
fabricante posteriormente puede fabricar completamente el circuito integrado.

La importancia del layout como herramienta primordial en el diseño y fabricación de circuitos


integrados CMOS es evidente. Nótese que, como iremos comprobando, éste contiene toda la
información necesaria sobre el circuito, tanto de orden eléctrico (de qué componentes consta el
circuito y cómo están conectados) como de orden físico (aspecto del circuito una vez fabricado).

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 137
________________________________________________________________________________

Especificaciones
Layout Circuito integrado
a nivel eléctrico y/o
abstracto CMOS

Diseñador Fabricante

Figura 4.9 Diseño de circuitos CMOS

Las diferentes máscaras del layout suelen representarse mediante códigos de colores o bien, como es
el caso de este libro, mediante distintos entramados en blanco y negro. Los entramados que
utilizaremos como referencia se listan en la tabla 4.1.

Máscara Color Entramado Observaciones


Pozo Marrón Discrimina P y N
Area activa Verde
Polisilicio Rojo
Implantación Amarillo Discrimina P+ y N +
Metal Azul
Contacto Negro

Tabla 4.1 Código utilizado para las distintas máscaras

La figura 4.10 muestra el layout de un inversor CMOS similar al del apartado anterior. Recordando el
proceso de fabricación, es pertinente hacer una serie de observaciones generales sobre su
interpretación.

VSS VIN VDD

VSS VIN VDD

W W
=1 V =2
VOUT  L OUT  L 

Figura 4.10 Layout de un inversor CMOS y circuito eléctrico equivalente

© los autores, 1998; © Edicions UPC, 1998.


138 Diseño digital
________________________________________________________________________________

a) La intersección de las máscaras de zona activa y polisilicio define el canal de un


transistor. En efecto, justamente donde el polisilicio cruza la zona activa enmascara la implantación y
por tanto ésta sólo llega al sustrato en las partes de zona activa no recubiertas por el polisilicio, las
cuales pasan a constituir los drenadores y surtidores de los transistores. Esta intersección define, por
tanto, las dimensiones físicas del canal de los transistores fabricados: como muestra la figura 4.11, L
es la distancia entre drenador y surtidor (que coincide con la anchura de la máscara de polisilicio), y
W la dimensión transversal del canal (que coincide con la anchura de la máscara de zona activa).

a) Canal

W Zona activa

Polisilicio
L
b) Oxido de puerta

n+ n+
p

Figura 4.11 Cruce entre zona activa y polisilicio; a) layout, b) sección vertical

b) Toda la zona cubierta por la máscara de zona activa, excluyendo las zonas en que cruza la
de polisilicio, es o bien de tipo N+ o bien de tipo P+: recordar que las máscaras de implantación P+ y
N+ son complementarias; por tanto, definiendo simplemente las zonas P+ como las situadas dentro de
las máscaras de zona activa e implantación P+, las zonas N+ quedan definidas automáticamente por
exclusión (ver figura 4.12).

c) Los transistores PMOS se encuentran dentro de la máscara correspondiente al pozo N y de


la máscara correspondiente a la implantación P+. Simétricamente los transistores NMOS son los
situados fuera del pozo y de la máscara de implantación P+.

d) Las máscaras correspondientes al metal y al polisilicio pueden cruzarse. Si recordamos el


proceso de fabricación, antes del metal se deposita un óxido que recubre toda la oblea, aislando entre
sí el metal y el polisilicio, que por tanto pueden cruzarse sin provocar un cortocircuito. Si se desea
contactar las pistas de metal y polisilicio hay que indicarlo explícitamente utilizando la máscara de
contactos.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 139
________________________________________________________________________________

+ +
Zona N Zona N
Zona P+

Zona P +
Sustrato P Pozo N

Figura 4.12 Zonas N+ y P+ de acuerdo con las máscaras de pozo, zona


activa, e implantación P+ utilizadas en el proceso de referencia

Ejemplo 4.1

Vamos a analizar el layout de la figura 4.13, correspondiente a un cierto circuito CMOS,


extrayendo la información más relevante a nivel eléctrico/lógico y físico.

VDD

VSS

S S'

Figura 4.13 Layout CMOS del ejemplo 4.1

© los autores, 1998; © Edicions UPC, 1998.


140 Diseño digital
________________________________________________________________________________

Una primera inspección permite identificar seis transistores (hay seis intersecciones área activa-
polisilicio). También pueden observarse transistores situados fuera del pozo y conectados a la
alimentación VDD; dado que éstos deben ser PMOS podemos decir que los situados dentro del
pozo son los NMOS y que el layout corresponde a tecnología CMOS de pozo P. Además las
zonas activas situadas dentro de la máscara de implantación son de tipo p+ y, simétricamente, de
tipo n+ las situadas fuera.

VDD
S'
A B
A
F F
B B

A S
VSS
S S'

Figura 4.14 Extracción del circuito del ejemplo 4.1

A nivel eléctrico se observa que las pistas A, B, S, y S' son las entradas al circuito (todas terminan
en puertas de transistor), mientras que F es la salida. En la figura 4.14 se realiza la extracción del
esquema eléctrico que, tras una ligera manipulación, es fácil de identificar con una puerta lógica
NAND seguida de una puerta de transmisión.

El conocimiento genérico del proceso permite tener una idea aproximada de la estructura física
del circuito una vez fabricado. Así, por ejemplo, podemos realizar secciones verticales a partir del
layout. En la figura 4.15 se representa la sección del circuito a la altura de los transistores NMOS.

Esta sección permite observar una serie de aspectos, algunos de ellos comentados en apartados
anteriores: a) existe óxido de campo sólo fuera de la zona marcada por la máscara de zona activa, b)
el óxido depositado recubre todo el circuito excepto donde se han situado explícitamente los
contactos, c) metal y polisilicio están separados por el óxido depositado, d) al no haber contacto
intermedio, los dos primeros transistores están en serie.

p+ n+ n+ n+ n+

Figura 4.15 Sección vertical del layout del ejemplo 4.1

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 141
________________________________________________________________________________

Hay que destacar que el contacto situado más a la izquierda es de tipo óhmico (metal con p+
sobre p) y que conecta el pozo (sustrato de los transistores NMOS) a la tensión baja VSS. Esto
sintoniza con lo dicho en el capítulo 3, donde se suponía el sustrato de los transistores NMOS
conectado a la tensión baja de referencia. Como podemos ver aquí, esta conexión se realiza cada
cierta área y no individualmente para cada transistor. La situación dual para el sustrato de los
PMOS la da el contacto, n+ sobre n con VDD, situado en la zona superior derecha del layout.

Como ejercicio para el lector se propone identificar la sección vertical de la figura 4.16 con el eje
del layout de la figura 4.13 a que corresponde.

Figura 4.16 Otra sección vertical del layout del ejemplo 4.1

_________________________________________________________________________________

Ejercicio 4.1

Considérese el layout de la figura 4.17, respecto del cual se pide:

-Obtener el esquema eléctrico equivalente, determinando previamente qué tipo de pozo usa
la tecnología asociada a este layout.

-Construir la tabla de verdad de la función lógica realizada por el circuito. ¿Qué puerta o
conjunto de puertas implementa?

-Dibujar el aspecto de un corte vertical según los ejes M-M' y N-N'.

© los autores, 1998; © Edicions UPC, 1998.


142 Diseño digital
________________________________________________________________________________

V V
SS DD

M M'

A A

B B

S S

N'
V V
SS DD

Figura 4.17 Layout del ejercicio 4.1

_________________________________________________________________________________
_

4.2.3 Reglas de diseño de layouts


La elaboración de layouts por parte del diseñador de circuitos integrados está sujeta a un conjunto de
reglas cuyo objeto es optimizar la cantidad de circuitos fabricados en una misma serie que funcionan
correctamente (este porcentaje suele denominarse "yield").
Un proceso de fabricación tiene siempre limitaciones de orden tecnológico que hacen que existan
diferencias entre la estructura que se espera obtener a partir de un determinado layout y la que
realmente resulta tras el proceso de fabricación. Estas limitaciones son debidas básicamente a dos
causas: a) no idealidad de las etapas de fabricación, b) posibles desajustes (desalineamientos) en el
uso de las máscaras durante el proceso.
Un objetivo habitual de los diseñadores de circuitos es que el tamaño de éstos sea el menor posible
(con ello se ocupa una menor superficie de silicio, lo cual repercute de forma importante en el precio
y, como veremos más adelante, en muchas de las prestaciones eléctricas del circuito), objetivo que

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 143
________________________________________________________________________________

choca frontalmente con las limitaciones tecnológicas del proceso: ¿hasta qué punto puede reducirse el
tamaño de un motivo en el layout (la anchura de una pista, la puerta de un transistor, etc.) estando al
mismo tiempo razonablemante seguro de que éste efectivamente existirá? ¿hasta qué punto se pueden
colocar próximas dos pistas sin correr el riesgo de que se produzca un cortocircuito no deseado?

5λ 3λ
10λ

Reglas relativas a pozo y área activa Implantación a zona activa


(Excepto contactos de pozo i sustrato)

2λ 2λ
3λ 2λ
2λ 2λ

Area activa Líneas de polisilicio

Separación Definición de canal


Polisilicio-difusión en un transistor

1λ 2λ

Lineas de metal Lineas de metal


primer nivel segundo nivel
(si existe)

3λ 3λ 3λ 3λ 4λ 3λ

2λ Agujeros de Separación entre


contacto-metal contactos
4λ 2λ

Figura 4.18 Juego elemental de reglas de diseño para proceso CMOS de pozo N

© los autores, 1998; © Edicions UPC, 1998.


144 Diseño digital
________________________________________________________________________________

La solución a este problema es considerar la existencia de tolerancias en el proceso de diseño del


layout. Estas tolerancias se traducen en una serie de reglas de diseño que fijan distancias y grosores
mínimos, de forma que si éstas se respetan la probabilidad de que el circuito resultante sea correcto es
razonablemente alta.
Las reglas de diseño están ligadas a la calidad del proceso tecnológico y por tanto dependen del
fabricante. Al mismo tiempo la evolución constante de la tecnología conduce a una progresiva
reducción de las distancias que constituyen las reglas de diseño.
Existen dos maneras distintas de especificar estas reglas: a) como distancias absolutas (en µm), b)
como múltiplos enteros de un parámetro único, denominado λ, relacionado con la calidad del
proceso.
Las reglas de diseño basadas en λ son menos utilizadas en la industria, pero más sencillas y útiles a
nivel pedagógico. Además son, en cierta medida, independientes del progreso tecnológico, que se
traduce en disminuciones del valor efectivo de λ (a título de ejemplo, entre mediados de los años
ochenta y principios de la década de los noventa el valor típico de λ en procesos CMOS comerciales
ha pasado de valores en torno a 2,5µm a valores en torno a 0,75µm, lo cual supone una reducción de
área del 90%).
La figura 4.18 muestra algunas de las reglas de diseño basadas en λ aplicables a un proceso de pozo
N como el que estamos usando como referencia en este texto. El supuesto básico aplicado es que la
distancia mínima (grosor o separación) que se puede fabricar con garantías es 2λ. En algunas
situaciones, cuando el posible desajuste no es catastrófico, la separación mínima entre máscaras se
relaja a solamente λ.

Ejemplo 4.2

Vamos a discutir la regla de diseño referente a la definición del canal de un transistor en función
de posibles desalineamientos de las máscaras implicadas. En la figura 4.19 se reproducen tanto la
regla de diseño como el resultado esperable a nivel de sección vertical si no se producen errores.

Eje
Sección
NoP

Figura 4.19 Regla de diseño y sección ideal correspondiente

En la figura 4.20 se reproducen dos situaciones de error: a) una desviación de 2λ (el máximo
tolerable) , y b) una desviación de 3λ.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 145
________________________________________________________________________________

a) b)

p+ n+

Figura 4.20 Estructuras resultantes de alineaciones erróneas

Vemos que en la primera situación la zona de puerta del transistor sigue existiendo, con lo que,
por tanto, el error no es grave, mientras que en el segundo caso una parte de esta zona ha
desaparecido, apareciendo en su lugar una zona muy dopada (ello se debe a que el polisilicio y el
óxido de puerta han sido eliminados y no han enmascarado la implantación posterior), con lo que
el transistor estará cortocircuitado, problema que podemos calificar de catastrófico. (Como se
muestra en el problema 3.10)

_________________________________________________________________________________

Ejemplo 4.3

Vamos a construir un layout correspondiente a una función OR de dos variables en tecnología


CMOS de pozo N, utilizando el menor número posible de transistores y respetando las reglas de
diseño dadas en la figura 4.18. El tamaño de los transistores NMOS será 2λx2λ, y para los PMOS
la anchura será el doble.

De entre las opciones CMOS que permiten realizar una puerta OR la que más se ajusta a nuestras
necesidades es la que encadena una puerta NOR y un inversor (ver figura 4.21).

Una vez escogida la estructura es conveniente manipular el esquema eléctrico, de forma que sea
más inmediato generar un layout de dimensiones reducidas. Aspectos a tener en cuenta son: a)
situar los transistores PMOS, que en este caso irán dentro del pozo, próximos entre sí y en un
mismo semiplano y los NMOS también próximos entre si y en el semiplano contrario, b) alinear
los transistores que tengan la misma variable de entrada, de forma que ésta pueda introducirse
mediante la misma pista, c) definir un esquema de conexiones lo más compacto y simple posible,
etc. La figura 4.21 muestra el esquema eléctrico inicial del circuito y el generado de acuerdo con
estas directrices.

© los autores, 1998; © Edicions UPC, 1998.


146 Diseño digital
________________________________________________________________________________

VA

VB VO VO

VA VB

VA VB

Figura 4.21 Esquemas eléctricos del ejemplo 4.3

El paso del esquema eléctrico al layout implica generar los transistores (cruces polisilicio-área
activa), las pistas de interconexión y los contactos, escogiendo el grosor de pistas y transistores
de acuerdo con las prestaciones eléctricas deseadas para el circuito, todo ello respetando las
reglas de diseño del fabricante. El resultado es un layout como el de la figura 4.22, cuyas
dimensiones son múltiplos enteros de λ.

VDD

VSS

VA VB VO

Figura 4.22 Layout del ejemplo 4.3

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 147
________________________________________________________________________________

Es preciso tener en cuenta que el diseño de layouts no suele realizarse en la práctica de forma
artesanal o manual, tal como este ejemplo parece indicar, sino que normalmente se utilizan
entornos software muy completos que permiten tanto editar layouts como verificar si éstos
cumplen las reglas de diseño e incluso extraer el circuito equivalente a nivel eléctrico y, en
ocasiones, simular su funcionamiento.

_________________________________________________________________________________

Ejercicio 4.2

Construir un layout que corresponda a una función NAND de cuatro variables en tecnología
CMOS de pozo N, utilizando el menor número posible de transistores y respetando las reglas de
diseño dadas en la figura 4.18. El tamaño de los transistores NMOS debe ser 2λx2λ, y para los
PMOS la anchura será el doble .

_________________________________________________________________________________

4.3 Caracterización eléctrica de circuitos integrados MOS

Como hemos visto, un proceso de fabricación MOS conduce, por una parte, a la creación de capas de
diversos materiales sobre la oblea, y por otra, de zonas con distinto tipo de conductividad dentro del
mismo silicio. Cada una de estas capas y zonas semiconductoras presenta una resistencia al paso de
corriente, y al mismo tiempo una cierta capacidad parásita. Estas características eléctricas determinan,
entre otras cosas, los retardos que experimentan las señales y la potencia consumida por el circuito.
En este apartado se presentan modelos sencillos para la evaluación tanto de las resistencias como de
las capacidades presentes en un circuito integrado CMOS.

4.3.1 Estimación de resistencias

La resistencia de una pista uniforme de material conductor como la representada en la figura 4.23
puede calcularse mediante la relación dada en la misma figura, donde ρ es la resistividad del material
(Ω.cm), L la longitud de la pista (cm),S su sección (cm2), W su anchura (cm) y t su espesor (cm). El
valor de la resistencia viene dado en ohmios.

© los autores, 1998; © Edicions UPC, 1998.


148 Diseño digital
________________________________________________________________________________

L t
I
L L
R =ρ = ρ
S Wt

Figura 4.23 Resistencia de una pista conductora

Una forma alternativa, muy útil, de reescribir la expresión dada consiste en relacionar R con los
parámetros L y W (directamente observables en un layout) a través de una constante, que incluya ρ y
t. Por otro lado, podemos interpretar la relación L/W como el número de cuadrados de lado W
contenidos en la pista de longitud L. Por tanto, podemos calcular la resistencia de esa pista
multiplicando el número de cuadrados por la constante ρ/t , que es la resistencia de una pista cuadrada
y se la denomina resistencia de cuadro

ρ L L
R= = Rs ( )
t W W

donde Rs es la resistencia de cuadro, en ohmios, y L/W el número de cuadrados.

Tanto el tipo de materiales a utilizar como el espesor de las pistas están asociados al proceso, luego la
resistencia de cuadro de una determinada capa (polisilicio, metal, difusión, etc.) es un dato a
suministrar por el fabricante. En cambio L y W son dimensiones presentes en el layout, siendo por
tanto el diseñador de las máscaras, o si se quiere del circuito, quien define sus valores. En resumen,
desde el punto de vista del diseñador, la resistencia de cuadro es un dato del proceso mientras que L y
W son las variables a través de las cuales puede modificarse el valor de la resistencia. La figura 4.24
ilustra este método de cálculo mediante algunos ejemplos.

L
L
I
W I
2
W R= R
3 S
R=3R S

Figura 4.24 Layout y cálculo de resistencias

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 149
________________________________________________________________________________

La tabla 4.2 muestra valores característicos para las resistencias de cuadro de distintos materiales
utilizados en un proceso CMOS de λ=1µm.

Rsmin Rsmax
Polisilicio 15 30
Difusión 10 100
Metal 0.05 0.1
pozo N 1K 5K

Tabla 4.2 Valores típicos de resistencia de cuadro (•)

De estos valores se pueden obtener algunas indicaciones sobre cómo realizar el diseño de las pistas de
interconexión. Tomemos como referencia la situación mostrada en la figura 4.25, donde una pista de
un cierto material debe transmitir una tensión Vi; si la resistencia de la pista es apreciable se producirá
una caída óhmica y la tensión transmitida será VO. Es evidente que esta caída será menor para pistas
de poca longitud y/o muy anchas.

L
W
L
Vi I VO V = V - IR
O i SW

Figura 4.25 Caída óhmica en una pista

Los valores de resistencia de cuadro dados en la tabla anterior indican que una conexión entre dos
puntos alejados de un circuito debe realizarse mediante una pista metálica. Por otra parte, es necesario
ser muy cuidadoso con la longitud excesiva de las pistas de polisilicio y/o difusión debido al elevado
valor de resistencia de cuadro que presentan. Adicionalmente este problema empeora cuanto mayor
sea la corriente transportada por la pista.

En principio el concepto de resistencia de cuadro presentado solamente es útil para pistas


rectangulares. Obtener la resistencia cuando la forma de la pista es otra necesita de cálculos
complejos, aunque para las formas más corrientes el resultado está tabulado. Como ejemplo la figura
4.26 muestra dos formas habituales, el ángulo y el cambio de anchura, junto con el valor de
resistencia correspondiente.

© los autores, 1998; © Edicions UPC, 1998.


150 Diseño digital
________________________________________________________________________________

W1 / W2 R
W2
1 2.5 R S
W2
W1 2 2.6 R S
3 2.75 R S
W1

W2
W1 / W2 R
W2
2 2.25 R S
W1 3 2.5 R S
4 2.65 R S
W1

Figura 4.26 Resistencia de pistas no rectangulares

Aunque los transistores MOS tengan una característica no lineal y por tanto en rigor no puedan
asimilarse a una resistencia (la cual tiene por definición un comportamiento lineal), es útil en algunas
ocasiones asignar a los transistores una resistencia media equivalente cuando el transistor no está
cortado. Una expresión habitualmente utilizada es

L 3 L
RMOS = Rs =
W 2C ox µV DD W

siendo L y W la longitud y la anchura del canal respectivamente, Cox=εox/tox la capacidad por unidad
de superficie del condensador de puerta y µ la movilidad de los electrones o huecos (en función de si
se trata de un transistor NMOS o PMOS).

4.3.2 Estimación de capacidades

Las distintas capacidades presentes en un circuito integrado MOS pueden clasificarse en tres grupos:
a) las asociadas a las pistas de interconexión, b) las asociadas a las difusiones, y c) las asociadas a las
puertas de los transistores. Vamos a comentar estos tres tipos por separado.

a) Capacidades relacionadas con las pistas de polisilicio y metal: cualquier par de


conductores separados por un aislante presenta una capacidad, siendo éste el caso de la multitud de
pistas existentes en un circuito integrado MOS, en general próximas entre sí y separadas por óxido de
silicio. Una evaluación precisa de estas capacidades no es tarea sencilla ya que podemos considerar
para cada pista una capacidad con respecto al substrato y las capacidades entre esta pista y las demás
(ver figura 4.27).

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 151
________________________________________________________________________________

a) b)

Si Si

Figura 4.27 Capacidad entre una pista y el sustrato y entre diferentes pistas

De forma simplificada, las capacidades entre las pistas metálicas o de polisilicio y el sustrato pueden
evaluarse aproximándolas a un condensador de placas paralelas, de acuerdo con la expresión
siguiente

C = C' WL

donde C' es la capacidad específica de la pista (F/µm2), valor dependiente del proceso, y WL es la
superficie de la pista (µm2), dato fácilmente extraíble del layout.

b) Capacidades asociadas a las difusiones: en un circuito CMOS los surtidores y drenadores


de los distintos transistores son zonas N+ o P+ creadas sobre zonas P o N (en función de si se trata de
transistores NMOS o PMOS respectivamente); esto implica uniones P+/N y N+/P que siempre están
polarizadas en inversa. Como se vio en el volumen I de esta misma serie, una unión polarizada en
inversa presenta la denominada capacidad de transición. Para calcular el valor de esta capacidad es
preciso tener en cuenta las superficies frontal y perimetral de la zona difundida; así, si tomamos como
referencia la difusión n+ de la figura 4.28 podemos calcular su capacidad de transición como

C j = Cja (ab + t (2a + 2b)) = C ja ab + C jp (2a + 2b)

donde a y b son las dimensiones horizontales de la difusión (medibles sobre el layout), y Cja y Cjp las
capacidades por unidad de superficie y de longitud respectivamente (valores otra vez dependientes
del proceso, es decir, del fabricante).

a t
N+

b
P

Figura 4.28 Referencia para el cálculo de la capacidad de transición.

© los autores, 1998; © Edicions UPC, 1998.


152 Diseño digital
________________________________________________________________________________

c) Capacidades asociadas a las puertas de los transistores MOS: se debe recordar que la
puerta ejerce su influencia sobre el canal de forma capacitiva, luego existe siempre una capacidad
entre el polisilicio y el canal, que puesto que están separados por una capa muy estrecha de óxido,
suele tener un valor notable.

Una fuente de complejidad en la estimación de esta capacidad reside en su dependencia del estado de
conducción del canal, es decir de las tensiones aplicadas al transistor. Si se toma un criterio pesimista
se puede suponer que la capacidad de puerta toma el mayor valor posible, es decir

C G = C oxLW

donde L y W son las dimensiones del canal y Cox es la capacidad específica de la puerta. Como
veremos al final de este mismo capítulo, esta estimación por exceso de la capacidad de puerta
conduce a una estimación tipo peor-caso para el retardo.

La figura 4.29 muestra las capacidades que en primera aproximación podemos considerar en un
transistor MOS: las de cada difusión desde los terminales de drenador y surtidor, y la de puerta desde
el terminal de puerta.

CG
C j1 C j2

Figura 4.29 Principales capacidades en un


transistor MOS

Ejemplo 4.4

Considerar el inversor cuyo layout se especifica en la figura 4.10, que reproducimos otra vez,
asociado a un proceso CMOS de pozo N determinado. Se pide calcular la resistencia equivalente
para el transistor NMOS en conducción, según la expresión del apartado 4.3.1, si el valor de VDD
es de 5V.

Datos del proceso: λ = 1,25 µm, µn = 500 cm2/Vs, RSmetal = 60 mΩ, RSpoly = 20 Ω, Cps = Cms=
2.10-4 pF/µm2, Cox = 3.5 10–3 pF/µm2, Cja = 4.10-4 pF/µm2, Cjp = 4.10-4 pF/µm.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 153
________________________________________________________________________________

V V V
SS IN DD

V
OUT

Tenemos que encontrar la relación L/W del transistor NMOS. Observando directamente del
layout obtenemos 2λ/2λ = 1. Entonces:

3 L
RNMOS = =1.7 kΩ
2 Cox µnV DD W

Calcular la longitud que debería tener la pista metálica conectada a VSS para que el efecto de la
resistencia que presenta no fuera despreciable frente al del transistor.

Dado que la corriente que circula a través de la pista lo hace también a través del transistor, las
resistencias estarán en serie, y la resistencia resultante será la suma de ambas. Para que la
resistencia de la pista sea relevante podemos considerar que debe valer, como mínimo, el 10% de
la del transistor.

L Rmin
Rpista = RSmetal L min = 4 λ = 14.3 mm (≈ 11500λ !!)
W RSmetal

Calcular también la capacidad con el sustrato de cada uno de los nodos del circuito. La capacidad
de un nodo del circuito respecto del sustrato (que suponemos conectado a tensión nula) puede
calcularse sumando las capacidades respecto del sustrato de cada una de las pistas conectadas a
dicho nodo, que estarán en paralelo. Así, por ejemplo, para calcular la capacidad vista desde el
nodo VDD, hay que considerar la del trozo de pista visible de metal más la del surtidor del
transistor PMOS, teniendo presente que en los contactos la capacidad de la pista de metal con el
sustrato queda enmascarada por el surtidor y por tanto no cuenta

2 2
CV DD = C metal + Csurtidor = Cms 40λ + C ja 20 λ + C jp 18λ = 0,034 pF
PMOS

Igual puede procederse para obtener las capacidades vistas desde los nodos VSS y OUT

CV SS = Cms 40λ2 + C ja 18λ2 + C jp 18λ = 0,033 pF


2 2
C OUT = Cms 44λ + C ja 38λ + C jp 36 λ = 0,056 pF

© los autores, 1998; © Edicions UPC, 1998.


154 Diseño digital
________________________________________________________________________________

Finalmente la capacidad vista desde el nodo IN constará de la capacidad de la pista de polisilicio


más las capacidades de puerta de los transistores

C IN = Cpoly + CGPMOS + C GNMOS = Cps 82λ2 + Cox 12λ2 = 0,091pF

_________________________________________________________________________________

Ejercicio 4.3

Para el layout de la figura 4.17, del ejercicio 4.1, y con los datos del ejemplo anterior, calcular la
resistencia que presenta la pista de polisilicio de cualquiera de las entradas a ser recorrida de
extremo a extremo. Calcular también la capacidad del nodo de salida al sustrato.

_________________________________________________________________________________

4.4 Cálculo simplificado de retardos de propagación

Al diseñar un circuito integrado resulta de interés poder estimar de forma sencilla y rápida sus
retardos de propagación. Un análisis preciso de los retardos requiere de la simulación por ordenador
del comportamiento eléctrico del circuito. En este apartado se presenta un método sumamente
sencillo de estimar retardos por exceso, estimación que no puede en ningún caso sustituir a la
mencionada simulación pero que resulta muy útil como aproximación de primer orden.

Como se comentó en el capítulo anterior, la causa principal de retardo en un circuito integrado es la


necesidad de modificar los valores de tensión en sus nodos. En este mismo capítulo se ha visto que
estos nodos presentan siempre una cierta capacidad parásita, y, por tanto, son imposibles los cambios
instantáneos de tensión: es necesario un cierto tiempo para efectuar su carga o descarga. Esta carga o
descarga de capacidades se realiza siempre mediante corrientes circulando a través de caminos en
cierta medida resistivos.

El procedimiento de estimación de retardos que aquí se propone se basa en identificar el circuito con
una serie de etapas RC conectadas en cascada. Se supone que estas etapas son independientes entre sí
y se calcula el retardo total como la suma de las constantes de tiempo de cada una de las etapas.

Nótese que este procedimiento se basa en varias aproximaciones, algunas de ellas bastante burdas: a)
como la carga/descarga de capacidades se realiza a través de transistores que conducen es necesario
asignar un valor de resistencia a cada transistor; b) suponer que las distintas células RC son
independientes entre sí y que por tanto el retardo de varias células en cascada es la suma de cada uno
de ellos es evidentemente una aproximación; c) es inexacto identificar un retardo de propagación,
definido en el capítulo 3, con la constante de tiempo de un circuito RC, que siempre es algo mayor
(ver figura 4.30).

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 155
________________________________________________________________________________

Vi
VDD
R
Vi VO t
C VO
VDD
0,63 VDD
t
RC

Figura 4.30 Carga de una célula RC

4.4.1 Retardos en un inversor

Consideremos el caso de un inversor CMOS como el mostrado en la figura 4.31, donde CL es la


capacidad vista en el nodo de salida. Esta capacidad incluye las capacidades de puerta de los
transistores allí conectados, la de las zonas difundidas (drenadores de los transistores del inversor) y
la de las pistas de conexión.

VDD

t pLH

Vi VO
t pHL CL

Figura 4.31 Inversor CMOS con carga capacitiva

En el capítulo 3 se definieron los tiempos de propagación en un inversor tpLH y tpHL, el primero de


los cuales corresponde al tránsito ascendente de la tensión de salida, mientras que el segundo se
refiere al tránsito descendente. Cuando la tensión de salida pasa de 0 a VDD es porque la entrada ha
conmutado de VDD a 0, pasando el transistor NMOS a corte y el PMOS a conducción. Luego la carga
del nodo de salida se realiza desde la alimentación a través de la resistencia equivalente del transistor
PMOS. Un razonamiento simétrico puede hacerse para la transición de la tensión del nodo de salida
de VDD a 0. Aplicando el procedimiento descrito más arriba los tiempos de propagación se calculan
como

© los autores, 1998; © Edicions UPC, 1998.


156 Diseño digital
________________________________________________________________________________

t pLH ≈ RPMOSC L = RSP   C L


L
WP

t pHL ≈ RNMOS C L = RSN   C L


L
 W N

Ejemplo 4.5

Calcular los tiempos de retardo del inversor cuyo layout se indica en la figura 4.10 obteniendo
previamente la resistencia equivalente de cada transistor y la capacidad a la salida del circuito si
lo cargamos con otro inversor idéntico, como se muestra en el esquema que sigue. Utilizar los
datos del ejemplo 4.4, y RSP=2.5xRSN.

El cálculo de la resistencia de cada transistor resulta inmediato conociendo sus dimensiones

 L 2λ  L 2λ
RNMOS = RSN   = RSN = 1.7kΩ RPMOS = RSP   = 2.5RSN = 2.1kΩ
 W N 2λ WP 4λ

La capacidad vista a la salida del circuito constará en principio de tres componentes, dos de ellas
ya calculadas en el ejemplo 4.4: la capacidad de salida del inversor (COUT) más la de entrada del
inversor de carga (CIN) y la de las pistas que se añadan para conectarlos. Observamos que esto se
hace con un contacto de metal a polisilicio de 4λx4λ, tenemos

2
C L = C OUT + C IN + Ccontacto = 0,056pF + 0,091pF + Cps 16λ = 0,15pF

En consecuencia los retardos de propagación serán

t pHL ≈ RNMOS C L = 0,26ns t pLH ≈ RPMOS CL = 0,32ns


_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 157
________________________________________________________________________________

Ejercicio 4.4

Considerar el layout de la puerta OR del ejercicio 4.3 (Figura 4.22). Calcular la capacidad entre el
nodo intermedio (Entre la NOR y el inversor) y el nodo de sustrato. Calcular la resistencia
equivalente de cada uno de los transistores. Calcular, finalmente, el tiempo de propagación hasta
este nodo intermedio, tpHL, en el caso en que solo uno de los transistores NMOS conduzca.
Razonar cuánto valdrá este tiempo en el caso de que conduzcan ambos.

Usar datos de proceso genéricos: λ, µn, µp, RSmetal, RSpoly, Cps, Cms, Cox, Cja, Cjp.
_________________________________________________________________________________

4.4.2 Retardos en una cadena de inversores

La figura 4.32 muestra una cadena formada por dos inversores con sus respectivas capacidades de
salida CL1 y CL2. El cálculo de los retardos de propagación en este caso es fácil puesto que las dos
etapas son eléctricamente independientes: la corriente de carga o descarga de CL1 es suministrada
únicamente por los transistores del primer inversor e igual ocurre con CL2 y los transistores del
segundo inversor; luego el retardo de toda la cadena puede obtenerse como la suma de los retardos de
cada etapa.

V DD V DD

Vi VO

C L1 C L2

Figura 4.32 Retardos de propagación en una cadena de inversores

Una transición ascendente a la entrada de la cadena provoca un transición descendente en el nodo


intermedio; por tanto, dicho nodo se descargará a través del transistor NMOS del primer inversor. La
transición en el nodo intermedio provoca a su vez una transición ascendente en la salida del segundo
inversor (el nodo de salida se cargará a traves del transistor PMOS del segundo inversor). Un
razonamiento simétrico puede hacerse para la transición contraria. Los retardos de propagación serán:

L L
t pLH = t pHL1 + t pLH 2 ≈ RMOSN 1CL1 + RMOSP 2 CL 2 = RSN1 ( )N 1 CL1 + RSP2 ( )P 2 CL2
W W
L L
t pHL = t pLH 1 + t pHL 2 ≈ RMOSP1 CL1 + RMOSN 2 CL 2 = RSP1 ( )P1 CL1 + RSN 2 ( ) N 2 CL 2
W W
Este procedimiento es directamente generalizable a cadenas de más inversores.

© los autores, 1998; © Edicions UPC, 1998.


158 Diseño digital
________________________________________________________________________________

Ejemplo 4.6

Llamamos anillo de inversores a una cadena de inversores cerrada. El de la figura 4.33 es un


anillo formado por tres inversores CMOS iguales.

Inversores iguales, con:


V DD V DD V
DD
(W/L)N = 2λ/2λ
V1 V2 V3 (W/L)P = 4λ/2λ
R SP =2R SN=5 k•
C1 C2 C3 C 1 =C 2 =C 3= 0.3 pF

Figura 4.33 Anillo de tres inversores

a) ¿Cuál será la evolución temporal de las tensiones en los nodos 1, 2 y 3, si en un instante


determinado se produce una transición de 0 a VDD en el nodo 1?

Esta transición a la entrada del segundo inversor provocará una transición de VDD a 0 en el nodo
2, pero no instantáneamente, sino con un cierto retardo, tpHL del inversor. Igualmente, el tercer
inversor forzará una variación de tensión de 0 a VDD a su salida, el nodo 3, con su retardo
correspondiente tpLH. Este cambio excita una transición en la entrada del primer inversor que
resulta en una conmutación del nodo 1 de VDD a 0; esta conmutación se produce 2tpHL + tpLH
despues de la primera transición considerada. El análisis que sigue ahora es el inverso del ya
realizado, para volver al punto de partida. La conclusión es que las tensiones en los nodos
oscilan.

b) Calculése la frecuencia de oscilación.

Siguiendo el razonamiento del apartado anterior podemos calcular el período de oscilación

T osc = t pHL2 + t pLH3 + t pHL1 + t pLH2 + t pHL3 + t pLH1

 
( )  L  L
T osc = 3 t pHL + t pLH = 3 RSN   CL + RSP   C L  = 3.6 ns
  W N  W P 

Y, a partir de aquí, la frecuencia de oscilación

1
f osc = ≈ 280 MHz
T osc
_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 159
________________________________________________________________________________

Ejercicio 4.5

Para atacar una capacidad de carga grande, sin presentar a su vez una capacidad importante al
resto de un circuito, una solución posible es usar una cadena con un número par de inversores,
cuyos transistores tienen anchuras crecientes geométricamente y longitudes de canal idénticas.
Esto es:

W N (i) = k ⋅ W N(i −1) W P(i ) = k ⋅W P (i −1) L N(i ) = LP (i ) = L

Para la cadena de 4 inversores de la figura 4.34 calcule el tiempo de propagación tp en función de


k para CL = 50 pF. Encuentre el valor de k que minimiza el retardo y el valor de éste.

tp =
1
(t +t
2 pLH pHL
)

0 1 2 3 (W/L)N0 = (W/L) P0 = 2 λ/2λ


C1 C2 C3
C0= = = = 0.2 pF
k k2 k3
C1 C2 C3 CL R SP=2R SN=5 k•

Figura 4.34 Cadena con un número par de inversores

_________________________________________________________________________________

4.4.3 Retardo en una cadena de interruptores

A efectos de cálculo del retardo introducido por una cadena de transistores de paso o de puertas de
transmisión que está conduciendo podemos asociar ésta a una serie de etapas RC conectadas en
cascada, tal como muestra la figura 4.35.

R1 R2 R3 RN
T1 T2 T3 TN

C1 C2 C3 CN

Figura 4.35 Cadena de interruptores lógicos vista como una red RC

En esta situación no es correcto aplicar el método de calcular por separado el producto RC de cada etapa y después sumar para
obtener el retardo global puesto que la carga o descarga de cada capacidad no se realiza individualmente. Por ejemplo, una corriente
entrante contribuye a cargar todas las capacidades.

© los autores, 1998; © Edicions UPC, 1998.


160 Diseño digital
________________________________________________________________________________

Una posibilidad de estimar el retardo en la carga o descarga de cada nodo es asociarlo a una constante
RC donde el valor de la resistencia corresponde a la asociación serie de los transistores que debe
atravesar la corriente hasta llegar a la capacidad, es decir
Carga o descarga de C1 a través de R1 ⇒ tp1 ≈ R1C1
Carga o descarga de C2 a través de R1 y R2 ⇒ tp2 ≈ (R1 + R2 )C2
Carga o descarga de CN a través de R1 a RN ⇒ tpN ≈ (R1 + R2 +.. +RN )C N

Luego el retardo global de la cadena será

N N  i 
t p = ∑ tpi ≈ ∑ ∑ Rj Ci
i=1 i=1  j=1 

Un caso particular de interés es aquél en que las etapas son idénticas, es decir, cuando resistencias y
capacidades son iguales entre sí (llamémoslas R y C). En esta situación el retardo global sería

N  i  N
N ( N + 1)
t p ≈ ∑  ∑ R C = RC ∑ i = RC
i=1  j=1  i=1
2

Otro caso de interés, éste bastante más realista, es aquél en que las etapas son idénticas (transistores
iguales) y la capacidad vista en el nodo de salida es muy superior a las de los nodos intermedios, es
decir R1=R2=..=RN=R y C1=C2=..=CN-1<<CN. En esta situación el retardo global sería

N
t p ≈ ∑ RiC N = NRC N
i=1

Ejemplo 4.7

Calculénse los retardos de propagación en el circuito de la figura 4.36. Datos: (W/L)P=4λ/2λ,


(W/L)N=2λ/2λ, CO=1pF, RSP=2RSN=4KΩ.

VDD
VC

Vx
Vi VO

Cx CO
VC

Figura 4.36 Circuito del ejemplo 4.7

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 161
________________________________________________________________________________

Es razonable suponer que la capacidad del nodo intermedio Cx, que corresponderá a difusiones y
pistas de escasa longitud, es muy inferior a la del nodo de salida (ésta sí de valor apreciable según
el enunciado); por tanto, los retardos de propagación serán debidos básicamente a la carga y
descarga de CO. Por otra parte, es evidente que estas cargas y descargas se realizarán siempre a
través de uno de los transistores del inversor y de los dos de la puerta de transmisión, por lo que
podemos escribir directamente

 2(L / W )P ( L / W ) N 
t pHL ≈ (RNMOS + RPMOS RNMOS )CO = ( L / W )N + R C = 3 ns
 2(L / W )P + ( L / W ) N  SN O
 2( L / W )P ( L / W )N 
t pLH ≈ (RPMOS + RPMOS RNMOS )CO = 2( L / W )P + RSN CO = 3 ns
 2( L / W ) P + ( L / W )N 

_________________________________________________________________________________

Ejercicio 4.6

Calcular el retardo de propagación tpHL del circuito del ejemplo 4.1, cuyo layout se explicita en la
figura 4.13, si la carga capacitiva en el nodo F es de 2.5 pF, para las mismas resistencias de
cuadro para los del ejemplo anterior.

_________________________________________________________________________________

4.4.4 Retardos en puertas CMOS cualesquiera

La aplicación del método de las constantes de tiempo a un inversor puede extenderse a cualquier
puerta CMOS. En una puerta de n entradas podemos definir distintos retardos de propagación
relacionados con distintas conmutaciones en las entradas. Si la capacidad parásita en el nodo de salida
es, con mucho, la mayor de la puerta, entonces los retardos tipo LH pueden calcularse considerando
esta capacidad y la resistencia equivalente de los transistores que conducen entre la salida y la
alimentación (VDD). Simétricamente, los retardos tipo HL se calcularán considerando la capacidad
del nodo de salida y la resistencia de los transistores conduciendo entre ésta y masa.

Ejemplo 4.8

Calcular los retardos de propagación para la puerta NAND de la figura 4.37. Utilícense los
mismos datos que en el ejemplo 4.7.

© los autores, 1998; © Edicions UPC, 1998.


162 Diseño digital
________________________________________________________________________________

V DD

VA VB

VO
VA CO

VB

Figura 4.37 Circuito del ejemplo 4.8

Si la capacidad del nodo intermedio de los transistores NMOS es muy inferior a CO, los retardos
de propagación serán debidos a la carga y descarga de CO. Además es evidente que la descarga
de CO sólo se produce cuando los dos transistores NMOS conducen simultáneamente
(VA=VB=VDD), por lo que habrá únicamente un retardo tipo alto-bajo

 L
t pHL ≈ (RNMOS + RNMOS )CO = 2  RSN CO = 4ns
 W N

En cambio hay tres combinaciones de entrada que hacen conducir a la red PMOS, que para
transistores iguales generan dos retardos de propagación bajo-alto diferentes, según conduzca un
solo transistor PMOS, o ambos:

t pLH
min
(
≈ RPMOS RPMOS C O = ) 1
R C = 1 ns
2 PMOS O
t pLH ≈ RPMOSC O = 2 ns
max

Manteniendo el habitual criterio de peor-caso puede decirse que el retardo de propagación bajo-
alto de esta puerta NAND es el mayor de los dos, es decir, 2 ns.

_________________________________________________________________________________

Ejercicio 4.7

Calcular los retardos de propagación tpLH del circuito del ejemplo 4.1, cuyo layout se explicita en
la figura 4.13, si la carga capacitiva en el nodo F es de 2.5 pF, para las mismas resistencias de
cuadro para los del ejemplo anterior.

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 163
________________________________________________________________________________

4.5 Cuestiones y problemas

Cuestiones

C4.1 Sabiendo que el dopado degrada la movilidad, y que la movilidad de huecos es menor que la de
electrones, razone qué tipo de pozo es mejor para equilibrar esta diferencia, y por tanto el tamaño de
los transistores correspondientes.

C4.2 Describa detalladamente el proceso CMOS simplificado presentado en este capítulo, a nivel de
etapas básicas usadas, máscaras, resinas y ataques químicos, etc.

C4.3 Evalue las consecuencias de un desalineamiento de máscaras o de un incumplimiento de la regla


de diseño de la figura 4.18, referida a la distancia mínima entre una pista de polisilicio y otra de zona
activa.


λ

C4.4 Responda a la cuestión anterior suponiendo que existe un desalineamiento de las tres máscaras
involucradas en un contacto entre metal y polisilicio (según las reglas de la figura 4.18).

C4.5 Calcule las longitudes de pista necesarias para obtener una resistencia de 1 k• con los distintos
materiales involucrados en un proceso CMOS, según los datos de la tabla 4.2, cumpliendo las reglas
de diseño de la figura 4.18 para la anchura mínima.

C4.6 Considere un proceso tecnológico cuyos layouts están expresados en función de λ. ¿Qué
evolución tendrán las resistencias y capacidades asociadas a un layout si podemos reducir λ en un
factor k? ¿Qué pasaría con los retardos de propagación?

C4.7 Conteste a la cuestión anterior si, además de reducir las dimensiones horizontales en un factor
k1, también reducimos las verticales (espesores de capas, etc) en un factor k2.

C4.8 Si definimos la resistencia asociada a un MOS en conducción como

© los autores, 1998; © Edicions UPC, 1998.


164 Diseño digital
________________________________________________________________________________

V
RNMOS = DS
I D V =V
GS DD

encuentre una expresión para la resistencia de cuadro de un NMOS para VDS=VDD, para VDS
tendiendo a 0, y el valor medio de los anteriores. Compare los resultados obtenidos con la
expresión propuesta en el punto 4.3.1.

C4.9 Si en un circuito CMOS las únicas resistencias relevantes fueran las de los transistores en
conducción, y las únicas capacidades las de puerta de los transistores, razone cuál sería la
dependencia de los retardos de propagación con el parámetro Cox (capacidad de puerta por unidad de
área), asociado al proceso tecnológico.

Problemas

P4.1 Dado el layout de la figura, correspondiente a una red de transistores de paso NMOS, obténga la
serie de máscaras del proceso. Encuentre el esquema eléctrico equivalente. Identifique entradas y
salidas, obteniendo la tabla de verdad de la función lógica que implementa.

C3 C2 C1 C0

S1

S1

S2

S2

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 165
________________________________________________________________________________

P4.2 El layout de la figura corresponde a una tecnología CMOS de pozo N.

VDD

CLK

Vi

CLK

VSS
Vi Vo

Obtenga el esquema eléctrico equivalente. Identifique, si es posible, puertas o combinaciones de


puertas conocidas. Suponiendo el nodo Vo cargado con una capacidad, razone cuál será la
evolución temporal de la tensión en el nodo de salida a partir de la información del cronograma
adjunto.

P4.3 Al siguiente layout, correspondiente a una implementación CMOS en tecnología de pozo P, le


falta la información del interior del pozo.

© los autores, 1998; © Edicions UPC, 1998.


166 Diseño digital
________________________________________________________________________________

Obtenga el esquema eléctrico equivalente de la parte visible del layout, identificando claramente
las señales de alimentación, entrada y salida. Realice la tabla de verdad de la función que
implementa. Complete el esquema eléctrico y dibuje la parte del layout que falta, cumpliendo las
reglas de diseño de la figura 4.18.

P4.4 Obtener el esquema eléctrico equivalente del siguiente layout. ¿Qué función lógica realiza?

A B
VDD

VSS
A B

P4.5 Estudie el siguiente layout. Encuentre el esquema eléctrico equivalente y calcule la resistencia de
la pista conectada a Φ, si la resistencia de cuadro del polisilicio es de 50 •. La capacidad parásita total
vista desde el nodo VO es de 10 pF; calcule los retardos de propagación si esta es la única capacidad
significativa en el circuito.

Datos del proceso: λ = 1,5µm, µn = 500 cm2/Vs, µp = 200 cm2/Vs, Cox = 3.5 10–3 pF/µm2, VDD =
5V, VSS = 0V.

© los autores, 1998; © Edicions UPC, 1998.


Fundamentos tecnológicos del diseño digital 167
________________________________________________________________________________

VDD

Vi
Vo

VSS

Φ Φ

P4.6 Encuentre el esquema eléctrico y la tabla de verdad del circuito implementado por el siguiente
layout. ¿Qué reglas de diseño de entre las dadas en la figura 4.18 se incumplen en este layout?

VDD

VSS

A B C

© los autores, 1998; © Edicions UPC, 1998.


168 Diseño digital
________________________________________________________________________________

P4.7 La salida del circuito del problema anterior está conectada a un inversor, siendo las dimensiones
de sus transistores función de un parámetro adimensional ß: Wpinv=3βλ, Lpinv=2λ, Wninv=βλ, y
Lninv=2λ.

a
b
c
C L=1pF

La capacidad parásita entre el nodo de entrada al inversor y masa es la de las puertas de


transistores conectadas al nodo. En el instante to, la entrada c conmuta entre 1 y 0, mientras a=0 y
b=1. Calcule el tiempo de propagación (en función de ß) hasta que se actualiza la salida del
inversor. Calcule también el peor tiempo de propagación. Encuentre el valor de ß que minimiza
el retardor en el peor caso.

Datos del proceso: Kn´=2Kp´=100µA/V2, λ=1µm, Cg´=2 10-15 F/µm2, Rsp=2Rsn=8KΩ.

P4.8 Se desea atacar una capacidad de salida exterior de un chip, de valor CL=200 pF a través de una
cadena de inversores CMOS, en los cuales Wp=Wn=W y Lp=Ln=L=2λ. Las únicas resistencias
relevantes son las de los transistores en conducción, y las únicas capacidades las de las puertas de los
transistores. Calcule la dimensión W del último inversor para que su retardo de propagación sea
inferior a 5 ns para los mismos datos de proceso que en el problema anterior. Haga una estimación del
valor de la capacidad de entrada de este inversor en función de la que tendría otro de dimensiones
mínimas (transistores de 2λx2λ).

VDD VDD VDD VDD VDD


1 2 i i+1 N
Vi VO
CL

Evalue el retardo total de la cadena de inversores, sabiendo que las anchuras de los transistores
son geométricamente crecientes con un factor f (Wi+1=fxWi). Encuentre el resultado en función
de las resistencias de cuadro y capacidades específicas involucradas, para un número genérico de
inversores N. Nota: considere que la anchura del inversor N-ésimo es tal que la capacidad
parásita a su entrada cumple CinvN = f-1 CL.

© los autores, 1998; © Edicions UPC, 1998.


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.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
170 Diseño digital
________________________________________________________________________________

Si se diseña pensando en una alternativa tipo "semi-custom" debemos pensar en qué módulos están
predefinidos en las librerías del fabricante. Únicamente en el caso de diseño full-custom podemos
pensar en la utilización de módulos diseñados ex-profeso para la aplicación en cuestión. En principio
el diseño de estos módulos específicos permite obtener mejores características; sin embargo, se trata
de un proceso costoso y por tanto sólo justificable cuando los volúmenes de producción son muy
grandes. Una posibilidad intermedia entre el diseño de módulos específicos y el de módulos estándar
estriba en el uso de módulos programables por el usuario. Se trata de módulos estándar y por tanto
fabricados en grandes series y a precios muy bajos pero que pueden adaptarse a las necesidades del
usuario 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 enteros
codificados en binario de dos bits. En esencia, se trata de sintetizar un circuito combinacional con
cuatro entradas (a1, a0, b1, b0) y tres salidas (S2, S1, S0), correspondientes al valor de la suma
indicada.

Una opción de diseño es seguir la metodología expuesta en el capítulo 2, que conduce a la


implementación en forma de red AND-OR de dos niveles mostrada en la figura 5.1. En dicha
figura 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 de
una 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 procedente
de la suma de los bits de peso inferior, con lo que se genera un bit de suma y otro de acarreo que
transmitir a la suma del siguiente par de bits. Este algoritmo conduce a una implementación a
base de dos módulos iguales, sumadores de cada par de bits (M), más el esquema de conexión
adecuado (ver figura 5.2.b).

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

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

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 171
________________________________________________________________________________

a1 a0 b1 b0

S2

S 2 = a 1b1 + a 1a 0b0 + a 0b1b0

S 1 = a 1a 0 b1 + a 1a 0 b1 + a 1b1 b0 +

+ a 1b1b0 + a 1a 0b1b0 + a 1a 0b1b0


S1
S0 = a 0b 0 + a 0b 0

S0

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

a) b) c) a i bi Ci C
C2 S2 i+1 S i
C2 C1 C0 b1 0 0 0 0 0
a1 M S1 0 0 1 0 1
b1 b0
0 1 0 0 1
+ a1 a0 C1
0 1 1 1 0
S2 S1 S0 b0 1 0 0 0 1
M S0
a0 1 0 1 1 0
C0 1 1 0 1 0
1 1 1 1 1

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

© los autores, 1998; © Edicions UPC, 1998.


172 Diseño digital
________________________________________________________________________________

ai
Si = ai ⊕ bi ⊕ Ci
C i+1
bi Ci+1 = ai bi + aibi Ci + ai biCi =
= ai bi + Ci (ai ⊕ bi )
Ci Si

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, y
la otra, a imagen del ejemplo 5.1, basada en un algoritmo de resta binaria. El sistema, de 4
entradas, debe calcular la resta de dos números enteros codificados en binario con 2 bits. Las dos
salidas, R1 y R0, indican el resultado de la resta, caso de que ésta pueda realizarse (A•B). La
tercera salida, O, valdrá "1" cuando la resta no tenga resultado positivo (A<B).

2 2
A
Circuito R R =(A-B) si B ≤ A
2 Restador
B O O = 1 si B > A

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 circuitos
más grandes y capaces de realizar funciones más complejas. Sin embargo, para asegurar el
funcionamiento del circuito resultante se deben tener en cuenta ciertos aspectos, tanto de orden
eléctrico como funcional, que se comentan en el apartado 5.2.1. Por su parte, el apartado 5.2.2 se
dedica a examinar algunos ejemplos de análisis y síntesis modular de circuitos combinacionales.

© los autores, 1998; © Edicions UPC, 1998.


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 las
características eléctricas concretas de cada módulo. En general estas características dependen de la
familia tecnológica escogida. En el Apéndice B se presentan de forma condensada distintas familias
tecnológicas y se comparan sus características definitorias, de las que se destacan a continuación las
principales:
a) La tensión de alimentación y el consumo del módulo, definidas en el capítulo 3
para 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 las
entradas y salidas del módulo con los valores lógicos que representan (ver capítulo 3). Estos
niveles son característicos de cada familia tecnológica.

c) El retardo introducido para cada salida. Caracteriza el tiempo que tardan las
salidas de un módulo en alcanzar un valor estable tras una conmutación de las entradas. Dicho
tiempo 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 representa
cuando se la conecta a la salida de otro módulo. Para cada tecnología los factores de carga
están normalizados a valores enteros.

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

Por otra parte, la correcta interconexión de módulos implica respetar, como mínimo, las siguientes
reglas básicas:
a) Los niveles lógicos de los módulos a conectar deben ser compatibles entre sí. En
caso 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 debe
ser inferior al fan-out de ésta.

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

© los autores, 1998; © Edicions UPC, 1998.


174 Diseño digital
________________________________________________________________________________

a)
b)
M1 M3 M1 M3

M2 M2

Figura 5.5 a) Red modular correcta, b) incorrecta

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

f1 f1
M1 M1

F = f 1+ f 2 F = f 1 f2

M2 M2
f2 f2

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ógico
indefinido, llamado alta impedancia, que queda determinado por los valores de los módulos restantes
conectados a dicha salida. Los circuitos que ofrecen esta posibilidad disponen de una entrada
adicional de habilitación (E, "enable") que determina si la salida adopta un valor lógico concreto o si
queda en alta impedancia. Las salidas tri-state pueden conectarse entre sí y el circuito resultante
funcionará 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 entradas
E1 y E2 respectivamente. La única condición a cumplir para que la interconexión funcione
correctamente es que ambas sean complementarias. La función lógica a la que equivale esta
interconexión se indica en la misma figura.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 175
________________________________________________________________________________

f1
M1

E1 F = f 1E + f 2E
M2
f2
E E2

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 esquema
eléctrico equivalente y la función lógica que implementa. Razone, a nivel de transistores, los
posibles 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
Vdd

Vss
E

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

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


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. La
funcionalidad de un circuito constituido por la interconexión de diferentes módulos puede
determinarse mediante composición de las funciones realizadas por los módulos integrantes. El
ejemplo 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ás
sencillos y la relación entre ellos. Este planteamiento supone sintetizar por separado una serie de
mó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 este
procedimiento 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 que
realiza. Las entradas A, B y C corresponden a números enteros codificados en binario.

A 4
x 4
4 M1 z x
B y 4 M1 z
y 4
m 4
C M3 p D
4 4
x n
4
x 4 M2 z
4 M2 z y
Q
y

 x si x ≥ y  x si x ≤ y m + n si Q = 0
z M1 =  z M2 =  p M3 = 
 y si x < y  y si x > y 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 la


entrada, A, B, o C, de mayor valor absoluto. De forma análoga se llega a que la entrada n de M3
se conecta a la entrada de menor valor absoluto. Luego, incluyendo la función de M3, se llega al
siguiente resultado final:

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 177
________________________________________________________________________________

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


D= 
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 en


binario de 4 bits, de acuerdo con la especificación dada en la figura 5.10.

4
A F = 1 si A > B
Circuito
F
B
4 Comparador 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: en


cualquier sistema de numeración podemos detectar el mayor de dos números comparando sus
dígitos dos a dos empezando por los de mayor peso; cuando ambos son iguales el resultado de la
comparación depende de los dos siguientes, etc., hasta que se encuentre un par de dígitos
diferentes, momento a partir del cual no hace falta seguir comparando puesto que el resultado
estará 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 el
resultado. Las líneas pi indican a cada módulo si debe realizar o no su correspondiente
comparación, tomando el valor "1" cuando todas las comparaciones de bits de mayor peso
realizadas indican igualdad. Una línea ci se pone a "1" únicamente cuando pi+1=1 y ai>bi.

1 c3
a3 M p3
b3 c2
a2 M F
p2
b2 c1
a1 M p1
b1 c0
a0 M p0
b0

Figura 5.11 Comparador del ejemplo 5.4

© los autores, 1998; © Edicions UPC, 1998.


178 Diseño digital
________________________________________________________________________________

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

p i+1
ai
ci = pi +1aibi
ci
bi
pi = pi+1 ai ⊕ bi =
pi
= pi +1 (ai bi + ai bi )

_________________________________________________________________________________

Ejercicio 5.3

Proponga una implementación alternativa para el comparador descrito en el ejemplo anterior, a


partir del siguiente esquema de bloques:

a 0b 0 a 1b 1 a 2b 2 a 3b 3 a 0b 0 a 1b 1 a 2b 2 a 3b 3

c3
Comp. 4 bits c4 Comp. 3 bits M1 c4

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

a 0b 0 a 1b 1 a 2b 2 a 3b 3

c1 c2 c3
1 M1 M1 M1 M1 c4

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


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 integrados
discretos o de módulos prediseñados para opciones VLSI, muestra la multiplicidad de módulos que se
ofrecen 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 algunos
ejemplos concretos de utilización.

5.3.1 Decodificadores

Un decodificador binario es un circuito lógico combinacional con n entradas y 2n salidas, donde las
entradas pueden entenderse como la codificación binaria de un número entero (comprendido, por
tanto, entre 0 y 2n-1). La salida i-ésima estará activa (por ejemplo, valor "1") cuando el valor de la
entrada corresponda al entero i, tomando las 2n-1 salidas restantes el valor lógico contrario ("0" en
este 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 que
quedan 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.

y
Decodificador

E 0
0
1 y
x0 0 1 1 si i = x y E =1
2 y yi = 
x1 1 2 0 si i ≠ x o E = 0
...

...

n −1
xn-1 n-1 n y n para 0 ≤i ≤ 2n −1, x = ∑ x j 2 j
2 -1
2 -1
j=0

Figura 5.12 Decodificador binario de n entradas

© los autores, 1998; © Edicions UPC, 1998.


180 Diseño digital
________________________________________________________________________________

La implementación mediante puertas lógicas de un decodificador binario como el acabado de


describir resulta sumamente fácil si se observa que, para E=1, cada salida yi, considerada como una
función lógica independiente, coincide con el minterm i-ésimo de las variables de entrada, es decir:
n
yi = E⋅ mi ( x) 0 ≤ i ≤ 2 −1

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

E
y
0
E x1 x0 y y y y
x 0 1 2 3
0 y
1 0 X X 0 0 0 0
1 0 0 1 0 0 0
x y 1 0 1 0 1 0 0
1 2
1 1 0 0 0 1 0
y 1 1 1 0 0 0 1
3

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 del
código de entrada; así es habitual encontrar decodificadores binarios (n entradas, 2n salidas), BCD en
sus diversas variantes (4 entradas, 10 salidas), Gray (n entradas, 2n salidas), o correspondientes a
otros códigos de uso más o menos popular.

y
0
Decodificador

x E1 y
0 y 0
1 E2 0
1 y1
x0 0 2 y
x y 2
1 2 3 y
x1 1 3
E1 y
3
E2

Figura 5.14 Decodificador binario 2:4 con salidas activas bajas

© los autores, 1998; © Edicions UPC, 1998.


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 que
dispone el módulo, existiendo también variantes respecto a la forma de considerar activas las entradas
y salidas del circuito. La figura 5.14 muestra otra posible implementación de un decodificador binario
2: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 una
especificación análoga a la dada en la figura 5.12 para un decodificador binario genérico, salvo dos
diferencias: a) el módulo está habilitado para E1=0 y E2=1 y bloqueado en cualquier otro caso, b) la
salida activa lo estará con el valor lógico "0" mientras el resto estará a "1". En este caso diremos que
la entrada E1 y las salidas se activan con el nivel lógico bajo.

E1 E2 x 1 x 0 y y y y
0 1 2 3
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

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) suele
darse con mucha frecuencia en los módulos estándar disponibles en catálogos, por lo que es
conveniente habituarse a ello. En los ejemplos y ejercicios de este texto se ha optado por ir variando
el 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 que
se obtienen decodificadores mayores. La figura 5.16.a muestra la posibilidad de obtener un
decodificador binario 4:16 a partir de dos decodificadores 3:8. La figura 5.16.b muestra a su vez
có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 a
decir 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 propone
como ejercicio para el lector la inclusión de una entrada de este tipo en el circuito de la figura 5.16.a.

© los autores, 1998; © Edicions UPC, 1998.


182 Diseño digital
________________________________________________________________________________

a) b)
3 y

Decod
7 y E 2 15
15

Decodificador
x3 E 6 1 1
5 0 0 y
4 12
x2 2 3
3 3 y

Decod
x1 1 2 E 11

Decod
E E 2 2
x0 0 1 x3 1 1
0 y 1 1
8 x2 0 0 0 y
0 8
7 y 3 y
7

Decod
E 7
Decodificador

E 6 2
5 x1 1 1
4 x0 0 0 y
2 3 4
1 2 3 y

Decod
E 2 3
0 1
0 y 1 1
0 0 0 y
0

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 y


salidas tengan un formato como el descrito en la figura 5.14, utilizando decodificadores 2:4 y/o
3: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ón
inversa a la de un decodificador. En consecuencia, un codificador binario tendrá 2n entradas y n
salidas, disponiendo habitualmente de una o varias entradas de habilitación. Adicionalmente suele
haber otra salida, utilizada para hacer encadenamientos, que indica cuándo está activada alguna de las
entradas con el módulo habilitado.

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

© los autores, 1998; © Edicions UPC, 1998.


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 de
entradas, actuando siempre de acuerdo con la entrada activa de prioridad más alta. En la
especificación de la figura 5.17, las entradas con subíndice más alto tienen mayor prioridad.

E
0 y0
x0 0 Codificador
x1 1 y1 i si E = xi = 1 y x k = 0 ∀k > i
1
y=
... 0 si E = 0 o xi = 0 ∀ i
x2 2 n-1 y n-1
n−1
...

x n
2 -1
n
2 -1 A con y = ∑ yj 2 j
j=0

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ón


dada. La figura 5.18 muestra una tabla de verdad y la correspondiente implementación de un
codificador binario 4:2.

x3 x2 x1x0 E
E x3 x2 x1 x0 A y1 y0
y1
0 X X X X 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 1 1 0 0 y0
1 0 0 1 X 1 0 1
1 0 1 X X 1 1 0
1 1 X X X 1 1 1 A

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 las


puertas que sea necesario añadir para generar el código de salida. En el ejemplo 5.5 se muestra un
caso concreto.

Ejemplo 5.5

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

© los autores, 1998; © Edicions UPC, 1998.


184 Diseño digital
________________________________________________________________________________

E X0 X1 X2 X3 A1 A2 Z1 Z0

Codificador
X3 1 X X X X 1 1 1 1
X2 Z1 0 1 1 1 1 0 1 1 1
X1 Z0 0 X X X 0 1 0 0 0
X0
0 X X 0 1 1 0 0 1
E A1 A2 0 X 0 1 1 1 0 1 0
0 0 1 1 1 1 0 1 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 a
otro equivalente (igual comportamiento con señales activas bajas e igual orden de prioridades) de
dimensiones 8:3. Se recomienda al lector un análisis detallado del citado esquema.

x x EI x x
0 3 4 7

0 1 2 3 0 1 2 3
E E
A1 Cod. A1 Cod.
A2 0 1 A2 0 1

A1 y y y A2
0 1 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 el
ejemplo anterior.

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


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 o


canales (xi), n entradas, llamadas de selección o de control (si), y una salida (y). Adicionalmente se
puede 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 una
descripción de alto nivel de su funcionamiento. Podemos ver que cuando el módulo está habilitado y
las 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.

x 0
0
 xi si E =1
Multiplexor

x1 1 y=
x 2  0 si E = 0
2 y
n−1
...

x n
2 -1
n
2 -1 siendo i = ∑sj 2j
j=0
E
n-1 1 0
...
s n-1 s 1 s 0

Figura 5.21 Multiplexor de 2n canales

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

y = E [x 0 (sn−1,.., s1 ,s0 ) + x1(sn−1 ,..,s1 ,s0 )+... + x 2n 1 (sn −1 ,..,s1,s0 )] =



2n −1
= E[x 0 m0 (s )+ x1m1(s)+...+ x 2n 1m2n 1(s) ]= E ∑ xi mi (s)
− −
i= 0

donde mi(s) es el minterm i-ésimo de las variables de selección si. Podemos ver que esta notación
algebraica conduce a una implementación en forma de red AND-OR de dos niveles para cualquier
multiplexor. 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 interruptores
lógicos. La figura 5.22.b muestra un multiplexor de dos canales realizado mediante puertas de
transmisión CMOS.

© los autores, 1998; © Edicions UPC, 1998.


186 Diseño digital
________________________________________________________________________________

s
a)
b)
E
x x
1 x 1
1
y y s y
x
x 0 x
0 0
s s
s

Figura 5.22 Implementación de un multiplexor de dos canales con puertas


AND-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 transistores


de paso NMOS.

a) E
x0 b)
x0
x1
x1
x2 y y
x2

x3 x3

s1 s0 s1 s1 s0 s0

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 la


especificación dada en la figura 5.24. Para este diseño basta con tomar cuatro multiplexores de
dos canales gobernados por la misma variable de control.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 187
________________________________________________________________________________

4
A Circuito 4 Y=A si s=0
4 a diseñar Y
B Y=B si s=1
s

Figura 5.24 Multiplexor de 2 vectores de 4 bits

_________________________________________________________________________________

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

x x x x x x x x
0 15 12 0 11 8 0 7 4 0 3 0

E 3210 E 3210 E 3210 E 3210


1 1 1 1
0 Mux 0 Mux 0 Mux 0 Mux
s1
s0

s3 3210
1 E E
s2 0 Mux

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 con
nivel bajo. La estructura del circuito es la de un selector a dos niveles: el primer nivel esta constituido
por tantos multiplexores como sean necesarios para cubrir el número de entradas requerido (en este
caso hacen falta 4), mientras que el segundo consta de un multiplexor con un número de canales
suficiente para poder seleccionar entre todos los de la primera etapa (en este caso también 4). Las

© los autores, 1998; © Edicions UPC, 1998.


188 Diseño digital
________________________________________________________________________________

variables de selección de menor peso se aplican por igual a los multiplexores de la primera etapa
mientras 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 para


obtener un multiplexor de 16 canales. Se propone al lector el análisis del funcionamiento de la
red y la generalización de la estrategia de encadenamiento utilizada.

s3 1 Decodificador
E E
s2 0
3 2 1 0

x x x x x x x x
15 12 11 8 7 4 3 0

E 3210 E 3210 E 3210 E 3210


1 1 1 1
0 Mux 0 Mux 0 Mux 0 Mux
s1
s0

Figura 5.26 Multiplexor de 16 canales realizado con decodificadores y


multiplexores

_________________________________________________________________________________

5.3.4 Demultiplexores

Como su nombre da a entender, un demultiplexor es el circuito lógico que efectúa la función inversa
a la realizada por un multiplexor. En consecuencia, un demultiplexor dispondrá de una entrada (x), 2 n
salidas o canales (yi), n entradas de selección o control (si) y, eventualmente, entradas adicionales de
habilitación (E).

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 189
________________________________________________________________________________

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

Demultiplexor 0 y
0
1 y1 Si E = 0 → yi = 0 ∀i ∈{0,1,..,2 n −1}
x y
2 2  ys = x n−1

n
... Si E =1 → 
y i≠s = 0
con s = ∑sj 2j
E 2 -1 y n j=0
2 -1
n-1 1 0
...
s n-1 s 1 s 0

Figura 5.27 Demultiplexor de 2n canales

La implementación más sencilla de un demultiplexor implica utilizar un decodificador, por lo que es


frecuente encontrar en los catálogos la denominación "decodificador/demultiplexor" referida al
mismo circuito. En la figura 5.28 se muestra un demultiplexor de 8 canales realizado mediante un
decodificador binario 3:8.

7 y
E 7
Decodificador

EI 6
x 5
4
s2
2 3
s1 1 2
s0 0 1
0 y
0

Figura 5.28 Decodificador 3:8 utilizado como


demultiplexor de 8 canales

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

© los autores, 1998; © Edicions UPC, 1998.


190 Diseño digital
________________________________________________________________________________

La implementación de un demultiplexor mediante transistores es inmediata a partir de la de un


multiplexor: se trata del mismo circuito, por lo que únicamente es necesario invertir el sentido de
transmisió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 tipo
aritmético, siendo el más importante de ellos el sumador. En efecto, la mayoría de las operaciones
aritméticas básicas pueden descomponerse en sumas binarias, cambios de formato y/o
desplazamientos. No es extraño por ello que los sumadores sean componentes habituales de cualquier
circuito electrónico de cálculo.

Un sumador es un sistema lógico combinacional que tiene como entradas dos vectores de n bits (A y
B) y como salida otro vector de n bits (S), cuyo valor corresponde a la suma aritmética binaria de los
vectores 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 una
descripción de su funcionamiento, donde el signo "+" indica suma aritmética.

n
A
S =( A+ B + Cin )
Sumador
de n bits

n mod 2
n
n S
B
C out = n (A+ B+ C in − S)
1
Cout 2
C in

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 la
figura 5.30.

a a a
n-1 bn-1 1 b
1 0 b
0

C Sumador .... Sumador Sumador


out C
C de 1 bit C C de 1 bit C de 1 bit C in
n n-1 2 1 0
s s s
n-1 1 0

Figura 5.30 Sumador de n bits

© los autores, 1998; © Edicions UPC, 1998.


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 de
peso inmediatamente inferior, y dos salidas (si y Ci+1), siendo si la suma binaria de los tres bits de
entrada y Ci+1 el acarreo de salida. La figura 5.3, correspondiente al ejemplo 5.1, muestra una
expresión algebraica de las dos funciones realizadas por el sumador total junto con una
implementación con puertas de éste.

Una implementación como la propuesta en la figura 5.30, habitualmente llamada sumador con el
acarreo 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 forma
consecutiva, es decir, es necesario que se haya generado el acarreo de salida del primer sumador para
que el segundo sumador pueda realizar la operación correctamente y generar su correspondiente
acarreo de salida, etc.; por tanto se trata de una serie de sumas encadenadas que van acumulando los
retrasos, por lo que el tiempo que transcurre hasta que se genera la salida correcta es proporcional al
número de bits a sumar, circunstancia que hace desaconsejable utilizar este tipo de sumador cuando el
número de bits es grande.

Veamos otra alternativa de implementación, también introducida en el ejemplo 5.1: un sumador de n


bits es un sistema combinacional con n+1 salidas y 2n+1 entradas, luego realiza n+1 funciones de
2n+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 algunos
inconvenientes importantes. Así, por ejemplo, cuando n es grande se precisan puertas con gran
número de entradas y un conexionado complejo. Por otra parte el resultado no es generalizable, es
decir, si se desea hacer un sumador de un número de entradas diferente hay que rediseñarlo todo
desde el principio.

a a b a b
n-1 bn-1 1 1 0 0
....

Generador de
C C
out acarreos in
....
a
n-1 bn-1 C
n-1
a
1 b1 C
1
a
0 b
0 C
0

Sumador Sumador Sumador


de 1 bit .... de 1 bit de 1 bit

s s s
n-1 1 0

Figura 5.31 Sumador de n bits con acarreo anticipado

© los autores, 1998; © Edicions UPC, 1998.


192 Diseño digital
________________________________________________________________________________

Una tercera alternativa, la más utilizada en la práctica, es el denominado sumador de acarreo


anticipado (en inglés, "carry lookahead adder"). Este tipo de sumador genera todos los acarreos de
forma simultánea, lo cual permite a su vez realizar todas las sumas de forma simultánea. La figura
5.31 muestra un posible esquema de un sumador de acarreo anticipado que utiliza sumadores totales
de 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 las
sumas y los acarreos parciales si y Ci+1. Si tomamos las expresiones correspondientes tenemos (0•i•n-
1)

Ci+1 = ai bi + C i ( ai ⊕ bi ) = Gi + Ci Pi
si = ai ⊕ bi ⊕ Ci = Pi ⊕ Ci

Donde hemos definido unas variables intermedias Gi = ai bi , 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

C 0 = C in
C 1= G0 + C0 P0
C 2 = G1 + C1 P1 = G1 + G0 P1 + C 0 P0 P1
C3 = G2 + C2 P2 = G2 + G1P2 + G0P1P2 + C 0 P0 P1 P2 .... 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.

a)
a C
0 G in C
0 0 s
b M P 0
0 P 0 b)
0
a1 G1 C
1 s
de acarreos

M
Generador

b P 1
1 P1 1
a2 G2 C
M 2 s
b P 2
2 P 2
2
a G C
3 M 3 3 s
b P 3
3 P 3
3
C
out

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

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 193
________________________________________________________________________________

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

C in
G0 C0
P0
C1
G1
P1

C2

G2
P2

C3

G3
P3
Cout

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) por
otra de 2 bits (b1b0), siendo el resultado un producto de 6 bits (p5p4p3p2p1p0).

© los autores, 1998; © Edicions UPC, 1998.


194 Diseño digital
________________________________________________________________________________

a a a a
3 2 1 0

b b
1 0
a a a a
3 2 1 0
x b b
1 0
a b a b a b a b
3 0 2 0 1 0 0 0
+ a 3 b1 a 2 b1 a 1 b1 a 0 b1
Sumador Sumador Sumador Sumador
de 1 bit de 1 bit de 1 bit de 1 bit p p p p p p
5 4 3 2 1 0

p p p p p p
5 4 3 2 1 0

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 un
desplazamiento a la izquierda, con la ventaja añadida de que el producto de dos bits coincide con la
función AND.
_________________________________________________________________________________

5.3.6 Comparadores

Un comparador es un circuito combinacional que suele tener 2n entradas de datos (correspondientes a


dos cantidades enteras codificadas mediante n bits), tres salidas (A>B, A=B, A<B), y tres entradas de
encadenamiento (E>, E=, E<).

n
Comparador

A A B E > E = E < A>B A=B A<B


A>B A>B X X X 1 0 0
A=B A<B X X X 0 0 1
n A<B 1 0 0 1 0 0
B
A=B 0 1 0 0 1 0
0 0 1 0 0 1
E> E = E <

Figura 5.35 Comparador de n bits

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 195
________________________________________________________________________________

El funcionamiento de un comparador es muy simple (véase la estructura externa y la tabla de verdad


de la figura 5.5): sólo tiene sentido que se ponga a "1" una las tres salidas para cada combinación de
entrada y las otras dos queden en valor "0"; así las situaciones A>B y A<B activan la salida
correspondiente mientras que cuando se tiene A=B la decisión de qué salida se activa queda en manos
de las entradas de encadenamiento.

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

Comparador
A 7 ... A 4 4 a
> A>B
= A=B
B 7 ... B 4 4 b < A<B

> = <
Comparador

4
A 3 ... A 0 a
>
=
4
B 3 ... B 0 b <

> = <
"1"

Figura 5.36 Comparador de 8 bits

La figura 5.36 muestra un comparador de 8 bits, realizado encadenando comparadores de 4 bits. El


circuito 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 consta
de dos pasos (ver apéndice A): 1) sumar en binario, 2) comprobar si el valor obtenido es superior
a 9, en caso afirmativo es necesario efectuar una corrección (sumar 0110), mientras que en caso
negativo no es necesario efectuarla. Hay que generar, también, un acarreo de salida.

© los autores, 1998; © Edicions UPC, 1998.


196 Diseño digital
________________________________________________________________________________

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

A B
4 4
a b
C out Σ C in C in
s
Comparador

4 4
a
>
= a b
"9" 4 b <
C out Σ C in
> = < s
"1" 4
C out A+B

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 en
la figura 5.38. Compruebe que, efectivamente, la realización propuesta es viable para comparar
números de 16 bits. Compare esta realización con la que se deriva de generalizar la estructura
propuesta en la figura 5.36.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 197
________________________________________________________________________________

... A B ... B
A15 ... A B ... B
A11 A7... A 4 B7... B 4 A3... A 0 B3... B 0
11 15 11 8 11 8
4 4 4 4 4 4 4 4

> a b > a b > a b > a b


"1" = Comp. "1" = Comp. "1" = Comp. "1" = Comp.
< > = < < > = < < > = < < > = <

a a a a b 3 b 2 b 1b 0
> 3 2 1 0
"1" = Comparador
<
> = <

A>B A=B A<B

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 diversas
operaciones, lógicas o aritméticas, con los vectores de datos de entrada. El tipo de operación concreta
a realizar se selecciona mediante unas entradas adicionales de control.

A B

n n n n n n

Función u Función u ... Función u


Operación 1 Operación 2 Operación 2 m

n n n

S0
Multiplexor S1
S m-1
n
R

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

© los autores, 1998; © Edicions UPC, 1998.


198 Diseño digital
________________________________________________________________________________

Un esquema genérico, más válido desde un punto de vista conceptual o funcional que correspondiente
a una implementación real, de una ALU sería el representado en la figura 5.39, donde las entradas de
datos 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 de
funcionamiento; por tanto, es posible emplearla en multitud de aplicaciones diferentes, siendo por
ello fabricadas en volúmenes grandes con un costo individual razonable. Por otro lado es habitual
utilizar 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 de
forma dinámica (es decir, que el mismo circuito puede realizar en momentos distintos operaciones
distintas) por un circuito de control que a su vez actúa de acuerdo con un programa (serie de
instrucciones) 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 cualquier
función lógica. Así, por ejemplo, es posible realizar una función mediante decodificadores y puertas
OR; asimismo también es posible hacerlo mediante multiplexores. En este sentido dichos módulos
suelen denominarse universales. Esta posibilidad es útil sobre todo al sintetizar funciones
relativamente sencillas (es decir, con pocas entradas). En los subapartados 5.4.1 y 5.4.2 se ilustran los
procedimientos de diseño en ambos casos.

Adicionalmente existen otros módulos combinacionales universales, como las ROM (Read Only
Memory) y PLA (Programmable Logic Array), que también permiten la síntesis de funciones. Dado
que estos módulos presentan algunas especificidades, su presentación y discusión se realizarán más
adelante 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 describir


algebraicamente como

2n −1
y= ∑ x i mi (s )
i= 0

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

© los autores, 1998; © Edicions UPC, 1998.


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 en
suma de productos sería

2 n−1
f (x n−1, x n− 2 ,...., x1 ,x 0 )= ∑ mi (x) f (i)
i=0

Comparando las dos expresiones se observa que es posible sintetizar la función f utilizando un
multiplexor 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 el
ejemplo 5.9.

Ejemplo 5.9

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


lógica siguiente

f (x 2 , x1, x 0 ) = ∑ m(2 ,5,6)


3

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

x 2 x 1 x0 f 0
0 0 0 0 1
Multiplexor

0 0 1 0 1 2
3
0 1 0 1 f
0 4
0 1 1 0
5
1 0 0 0 6
1 0 1 1 7
1 1 0 1 2 1 0
1 1 1 0 x
2 x1 x0

Figura 5.40 Función de 3 variables sintetizada mediante un


multiplexor de 8 canales

© los autores, 1998; © Edicions UPC, 1998.


200 Diseño digital
________________________________________________________________________________

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

Vamos a implementar la función f mediante un multiplexor de 4 canales. Para ello aplicaremos a


f el teorema de Shanon, extrayendo por ejemplo las variables x2 y x1

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

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

f (0,0, x 0 ) = f 0 ( x0 )= 0
f (0,1, x0 ) = f1 (x 0 ) = x 0
f (1,0, x 0 ) = f 2 ( x0 )= x 0
f (1,1,x 0 )= f 3 (x 0 )= x 0

Luego una realización de la función mediante un multiplexor de 4 canales sería la mostrada en la


figura 5.41 donde se ha conectado las variables x2 y x1 a las entradas de selección y las funciones
residuales fi(x0) a cada uno de los canales.

x2 x1 x0 f
0 0 0 0
Multiplexor

0 0
0 0 1 0
0 1 0 1 1
f
0 1 1 0 x 2
0
1 0 0 0
3
1 0 1 1 1 0
1 1 0 1
x2 x1
1 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 mediante
multiplexores. La figura 5.42 muestra una realización de f utilizando un multiplexor de 2 canales
y puertas

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 201
________________________________________________________________________________

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

x1

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 con
un multiplexor de 4 canales, usando como variables de selección x1 y x0. Inténtelo también
usando x2 con un multiplexor de 2 canales. Discuta el efecto de la elección de variables de
selecció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 de
n variables se puede sintetizar mediante un multiplexor de 2p canales (p•n) sin más que utilizar p
variables como variables de selección, atacando las entradas del multiplexor mediante 2p funciones
residuales de las n-p variables restantes.

f0 (x n-1 ... x )p 0
Multiplexor

f1 (x n-1 ... x )p 1
f (x n-1 ... x1 x)0
...

p
f p (x n-1 ... x )p 2 -1
2 -1
p-1 1 0
...
x p-1 x1 x 0

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ón
dependen de qué variables se utilicen como variables de control y cuáles se utilicen para las funciones

© los autores, 1998; © Edicions UPC, 1998.


202 Diseño digital
________________________________________________________________________________

residuales. Para decidir qué partición de variables es óptima desde este punto de vista en general es
necesario 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 figura


5.23.b) se adapta particularmente bien a la metodología de diseño propuesta. Recordemos que su
funcionamiento es muy sencillo: cada combinación de valores en las entradas de selección (aplicadas
a las puertas de los transistores) hace conducir a los transistores de una y sólo una de las ramas, con lo
que se transmite a la salida el valor lógico presente en su entrada y se ignoran los demás. La figura
5.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.

a) 0
b)
0
x0
f x0
x0 f
x0
x0

x2 x2 x1 x1
x2 x2 x1 x1

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 posible
reducir el número de ramas y transistores necesarios para implementar una función. De hecho sólo es
necesario asegurar que para cada combinación de las variables de selección conduzca únicamente una
de las ramas. Así en la función de nuestro ejemplo podemos agrupar los términos cuya entrada sea la
misma

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

resultado que conduce directamente a la estructura en tres ramas de la figura 5.44.b, donde podemos
observar 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 salidas
coincide algebraicamente con un minterm diferente de las variables de entrada

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 203
________________________________________________________________________________

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

Por tanto es inmediato sintetizar directamente cualquier función de n variables mediante un


decodificador n:2n y una puerta OR que agrupe las salidas correspondientes a los minterms que
aparecen 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 3
bits. Su tabla de verdad y el mapa de Karnaugh se dan en la figura 5.45, donde puede observarse que
esta función no admite simplificación.

a b c f
0 0 0 0
0 0 1 1 a\bc 00 01 11 10
0 1 0 1
0 1 1 0 0 0 1 0 1
1 0 0 1
1 0 1 0 1 1 0 1 0
1 1 0 0
1 1 1 1

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 decodificador


binario 3:8 y una puerta OR, mientras que la figura 5.46.b lo hace utilizando un decodificador 3:8 con
salidas activas con nivel bajo.

a) b)
0 0
Decodificador

Decodificador

1 1
c 0 2 c 0 2
b 1 3 b 1 3
a 2 4 f a 2 4 f
5 5
E 6 E 6
7 7

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

© los autores, 1998; © Edicions UPC, 1998.


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, Read
Only Memory) y la matriz lógica programable (PLA, Programmable Logic Array), utilizadas con
frecuencia para implementar funciones lógicas de complejidad apreciable, es decir, con un número de
variables mediano o alto.

Como se verá más adelante estas estructuras presentan una serie de particularidades frente a los
módulos estándar vistos hasta ahora, tanto respecto a su tamaño habitual (nº de entradas y/o de
salidas) como respecto al método de trabajo con ellas (es necesario programarlas, es decir, fijar su
contenido, 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 que
implementa k funciones lógicas de n variables. Como ya es habitual, el circuito puede disponer
también de entrada(s) adicional(es) de habilitación. La figura 5.47 muestra el esquema genérico de
una ROM junto con una descripción de su funcionamiento.

2n −1
n ROM k
zi = f i (x n−1,..,x1 , x0 ) = ∑ f i ( j)m j (x )
x z j=0
2 nx k
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 primero
con un decodificador, es decir con una etapa o matriz de 2n puertas AND que realiza todos los
productos (minterms) posibles con las variables de entrada, y luego con una etapa o matriz de k
puertas OR, que permite obtener cada una de las salidas como la suma lógica de los minterms que a
ellas se conecten.

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

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 205
________________________________________________________________________________

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

Decodificador
E
1 z0
x0 0 2 Matriz z1
x1

...
1 OR

...
z k-1
...

x n-1 n
n-1 2 -1

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: una
ROM 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, es
decir, obtener a la salida la palabra almacenada en la posición de memoria correspondiente. Desde
este punto de vista la capacidad total de una ROM es de 2nx k bits (2n palabras x k bits/palabra). El
ejemplo 5.10 ilustra los conceptos presentados para el caso de una ROM de muy pequeñas
dimensiones.

Ejemplo 5.10

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

a) b)
Decodificador

Decodificador

0 0
x0 0 1 x0 0 1
x1 1 2 x1 1 2
3 3

z z z z z z z z
0 1 2 3 0 1 2 3

Figura 5.49 ROM de 4x4 bits realizada con puertas

© los autores, 1998; © Edicions UPC, 1998.


206 Diseño digital
________________________________________________________________________________

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

X1 X0 Z0 Z1 Z2 Z3
z0 = m 0 + m2 = x1 x0 + x1x 0 = x 0
0 0 1 1 0 1
0 1 0 1 1 0 z1 = m0 + m1 + m2 = x1x 0 + x1 x0 + x1x 0 = x1 x 0
1 0 1 1 1 0 z2 = m1 + m2 = x1x 0 + x1 x 0 = x1 ⊕ x 0
1 1 0 0 0 1
z3 = m0 + m3 = x1 x0 + x1x 0 = x1 ⊕ x0
Direcciones Palabras

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 cuatro
posiciones de memoria que almacenan palabras de 4 bits. Así por ejemplo la combinación de
entrada x1=1, x0=0 (dirección 10) provoca la salida z0=1, z1=1, z2=1, z3=0, es decir la lectura de
la 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 nuestro
ejemplo. Concretamente se utiliza una estructura en forma de dos bloques o matrices de puertas
pseudo-NMOS.

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

A= x1 + x 0 = x1x 0 = m0
B= x1 + x0 = x1x 0 = m1
C = x1 + x 0 = x1 x0 = m2
D= x1 + x0 = x1x 0 = m3

Por otra parte la segunda matriz consta de puertas NOR seguidas de inversores, con lo que
equivale funcionalmente a una matriz OR: la presencia de un transistor en una puerta NOR
equivale 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.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 207
________________________________________________________________________________

V DD

x1 x0 z z z z
0 1 2 3

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 dentro
de 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 por
máscara cuando el contenido ha sido fijado durante el proceso de fabricación, y la denominación
PROM o FPROM (Field Programmable ROM) cuando es el mismo usuario el encargado de fijarlo a
partir 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éllas
cuyo procedimiento de grabación es irreversible y las denominadas EPROM (Erasable PROM), cuyo
contenido puede ser grabado y borrado varias veces. En estas últimas el procedimiento más
tradicional de borrado es la exposición a luz ultravioleta, aunque también las hay borrables
eléctricamente (EEPROM, Electrically Erasable PROM).

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

© los autores, 1998; © Edicions UPC, 1998.


208 Diseño digital
________________________________________________________________________________

La implementación de funciones lógicas mediante ROM supone almacenar sus tablas de verdad
completas, lo cual a primera vista parece una estrategia de diseño exagerada. Sin embargo, cuando la
función es compleja y su realización mediante módulos estándar más pequeños se hace complicada, la
utilizació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 ésta
es conocida y regular. Asimismo, un mismo tipo de circuito ROM puede utilizarse en multitud
de aplicaciones distintas, por lo que suele ser fabricado como circuito integrado en grandes
cantidades, reduciendo su coste individual.

b) El coste de la grabación de una memoria ROM también es reducido, tanto en el


caso de ser realizada por parte del fabricante como por parte del usuario. Como el contenido a
fijar son tablas de verdad de funciones, basta con utilizar métodos de descripción y/o diseño de
tipo "canónico", por tanto formalmente sencillos y de coste acotado.

c) El coste de un sistema combinacional realizado con circuitos integrados estándar


depende en gran medida del número de dichos circuitos que intervienen. La utilización de
ROM 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 y
k 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.

n 2n Matriz r Matriz k
x z
AND 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 de
tres etapas: n inversores (que permiten disponer de las variables de entrada directas y negadas), r
puertas AND (que realizan productos de las variables de entrada) y k puertas OR (que realizan sumas
de los productos anteriores). Una PLA realiza por tanto una implementación en forma de suma de
productos no canónica de k funciones lógicas.

© los autores, 1998; © Edicions UPC, 1998.


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 2
nú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 salidas
será también de 4, ya que el valor máximo para el resultado es de 3x3=9 (1001). Para saber el
número de productos necesario, hay que simplificar las salidas en forma de suma de productos.
Dadas las expresiones simplificadas:

p3 = a1a0b1b0
p2 = a1b1b0 + a1a0 b1b0
p1 = a1a0 b1 + a1b1b0 + a1a0b1b0 + a0b1b0
p0 = a0 b0

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

a1
a0
b1
b0

p3

p2

p1

p0

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 dos
números enteros de 2 bits codificados en binario.
_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


210 Diseño digital
________________________________________________________________________________

Nótese que en una PLA, a diferencia de una ROM, no se realizan todos los 2n productos posibles de
las n variables de entrada (minterms) sino solamente un máximo de r, siendo por tanto la PLA un
módulo de menor tamaño mediante el cual se pueden implementar k funciones de n variables siempre
y cuando en las expresiones algebraicas simplificadas de estas funciones no aparezcan en total más de
r productos. Esta es una diferencia sustancial con respecto a las memorias ROM, que almacenan la
tabla de verdad completa. En el caso de que el número de productos r a utilizar sea pequeño frente a
2n, 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 con
matriz AND programable y matriz OR programable, b) matriz AND programable y matriz OR fija. El
primer caso suele denominarse genéricamente PLA, mientras que el segundo caso suele denominarse
PAL (nombre comercial patentado por Monolithic Memories Inc). Un tercer caso, matriz AND fija y
matriz OR programable, coincide de facto con una estructura ya vista anteriormente: la memoria
ROM.

Descripción y
edición
del diseño
Tablas de verdad,
expresiones
algebraicas,
Compilación y
cronogramas, etc.
optimización

Otros diseños Mezcla

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

Librerías o
Elección del
catálogos de los
dispositivo
fabricantes

Generación del
conexionado Grabador
óptimo

Figura 5.54 Entorno informático de diseño y grabación de módulos


lógicos programables

© los autores, 1998; © Edicions UPC, 1998.


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 su
menor 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 k
funciones 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 trabaja


con PLA, PAL u otros dispositivos lógicos programables no canónicos es tanto o más evidente que
cuando 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 del
diseño. El diagrama de bloques de la figura 5.54 muestra un entorno genérico de diseño y grabación
de 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: para
implementar un sumador de dos números de tres bits a dos niveles hacen falta: 3And2 (3 puertas
AND de 2 entradas), 6And3, 18And4, 4And5, 1Or2, 1Or6, 1Or7 1 Or16 y 6 inversores. Compare los
diseñ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 de
transmisión compartidas (comúnmente llamadas buses), donde más de un módulo conectado a ellas
puede 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 en
binario, ¿en qué código quedan a la salida?

E E
Decodificador

Codificador

y3 x3
x y2 x2 y
1 1
x0 y1 x1 y0
y0 x0

© los autores, 1998; © Edicions UPC, 1998.


212 Diseño digital
________________________________________________________________________________

Generalice esta estructura con un codificador, un decodificador, y una matriz de conexiones, para
traducir entre cualesquiera dos códigos de n bits. ¿Qué modificaciones deberían hacerse para que
el 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 las
variables de selección, dada en la sección 5.3.3.

2 −1
n

y=E ∑ x i mi (s )
i=0

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

C5.5 Discuta el compromiso entre retardo asociado a una función combinacional y área de silicio
ocupada 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ódulos
presentados en este capítulo.

n n
a b ( a )Ca2 + ( b) Ca2 si s=0
c= 
s Bloque o ( a )Ca2 − (b )Ca2 si s =1
c
n o =1 si existe desbordamiento

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

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

C5.9 Proponga un método de implementación de funciones con decodificadores con salidas activas
bajas 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 k
funciones lógicas de n variables de entrada.

© los autores, 1998; © Edicions UPC, 1998.


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 una
estructura modular como la de la figura. Diseñe los módulos M1. Diseñe, de forma análoga, otro
comparador, con las entradas y salidas de encadenamiento activas bajas.

a 0b 0 a 1b 1 a 2b 2 a 3b 3

E< A> B
M1 M1 M1 M1 A= B
E> A< B

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, y
despues generalízelo.

A n-1 A1 A0
4 ... 4 4

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


Bloque a diseñar D3 Di = 
D4  0 en otro caso
D5

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

E
E y7 x0
a x 00 y6 x1
a x 01 z0
Decodificador

y5 x2
Cuad. Multiplexor

Multiplexor

b x 10 x0
y4 x3
b x 11 z1 x1 z o
y3 x4
x2
c x 20 y2 x5
z2
c x 21 y1 x6
x 30 y0 x7
"0" x 31 z3 s2 s1s0
E
s
d e f g

© los autores, 1998; © Edicions UPC, 1998.


214 Diseño digital
________________________________________________________________________________

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

a3
a2

a1
a0
b0 z1
b1 z0

b2
b3

P5.5 Analice la función lógica realizada por el siguiente esquema de bloques. Encuentre una
especificació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.

y0 x0
y1 x1 "1"
Codificador Bin.
Decodificador

y2 x2
D0 x0 y0 Ci
y3 x3
D1 x1 y4 y1 A
x4
Sumador

D2 x2 y2 R0
y5 x5
S R1
y5 x6 D0 R2
y7 x7 D1 B
E E D2 Co
"0" "1"

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos combinacionales 215
________________________________________________________________________________

P5.6 Proponga dos realizaciones a nivel de transistores para un multiplexor de 8 canales sin entradas
de habilitación, una usando puertas de transmisión CMOS y, la otra siguiendo el diseño CMOS
convencional (indicando tanto la red PMOS como la NMOS). Compare ambas realizaciones en
cuanto 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) usando:


4

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 binario
natural, con multiplexores de 8 canales y puertas NAND.

P 5.9 Proponga un encadenamiento para ROMs de 8 palabras de 4 bits, usando multiplexores, para
implementar 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ítulo
implementa, y en que tecnologia. Encuentre la tabla de verdad de las funciones de salida.

V DD
V DD

Z1 Z2 Z3 Z4 Z5 Z6
A B

© los autores, 1998; © Edicions UPC, 1998.


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 permita
obtener como resultado el cuadrado, codificado en binario natural, de una cifra BCD. ¿Cuál debería
ser 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 desea
diseñar un circuito combinacional que haga la comparación de a1a0 con b1b0 (entendidos como
números binarios de 2 bits). Exprese las tres salidas del comparador, a>b, a=b y a<b, como suma
mí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 de
realizarlo utilizando un solo decodificador, aprovechando las inespecificaciones. ¿Qué dimensiones
mínimas debería tener una PLA que permitiera implementar este circuito?

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 217
________________________________________________________________________________

Capítulo 6 Introducción a los sistemas secuenciales

Los sistemas digitales secuenciales fueron presentados brevemente en el capítulo 1, cuya relectura se
recomienda llegados a este punto. En un sistema secuencial el valor de la salida en un cierto instante
de tiempo depende no solamente del valor de la entrada en dicho instante sino de los valores
anteriores que ésta ha tomado. Por ello es intuitivo pensar que el estudio y comprensión de los
sistemas secuenciales es, a priori, más complejo que el de los sistemas combinacionales.

Este capítulo presenta los conceptos fundamentales necesarios para abordar el análisis y diseño de
sistemas secuenciales. En primer lugar se presenta el concepto de estado y su utilización en la
especificación de sistemas secuenciales. A continuación se discute el problema de la sincronización,
es decir, cómo abordar la inclusión de la variable tiempo en el funcionamiento del sistema. Por último
se presentan los biestables, vistos como ejemplos sencillos de circuito secuencial y también como
elementos a utilizar en la implementación de circuitos secuenciales de mayor complejidad.

6.1 Especificación de sistemas secuenciales

Como se ha indicado anteriormente, un primer objetivo de este capítulo es proporcionar herramientas


que permitan describir (especificar) de forma normalizada y, a ser posible, cómoda el funcionamiento
de un sistema secuencial. Por este motivo se trabajará a nivel funcional, siendo el sistema
básicamente una "caja negra" con sus entradas y salidas, y dejando para apartados posteriores
aspectos como las estrategias de temporización y las posibles implementaciones circuitales del
sistema

Así, se presenta el concepto de estado del sistema para describir la secuencia temporal de entradas, y
el uso de éste en la especificación de dicho sistema. El punto 6.1.4, referido a la minimización del
número de estados en la especificación de un sistema secuencial, aunque es de importancia,
constituye una pequeña disgresión dentro del esquema lógico seguido. Por este motivo su estudio
puede posponerse a una segunda lectura del capítulo, cuando los conceptos fundamentales sobre
sistemas secuenciales hayan sido asimilados.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
218 Diseño digital
________________________________________________________________________________

6.1.1 Concepto de estado

Como se ha dicho, en un sistema secuencial el valor de la salida en un instante z(t0) depende tanto del
valor de la entrada en ese instante, x(t0), como de valores anteriores, x(t<t0), luego podemos escribir

x Sistema z z(t0 ) = F (x (−∞,t0 ))


Digital

Es evidente que un sistema así necesita recordar un número en principio ilimitado de entradas para
generar cada salida, es decir, implica una capacidad de memorización infinita, cosa que impide su
realizabilidad a nivel práctico. Por este motivo introduciremos una restricción importante:
trabajaremos solamente con aquellos sistemas secuenciales en los cuales las posibles evoluciones
temporales de la entrada se puedan agrupar en un número finito de tipos, llamados "estados", y que,
desde el punto de vista funcional, todas las evoluciones de la entrada pertenecientes a un mismo
estado son equivalentes.

Con la finalidad de simplificar la notación, en adelante llamaremos por defecto sistemas secuenciales
a aquéllos cuyo funcionamiento puede describirse mediante un número finito de estados, que con
mayor rigor deberían ser denominados autómatas o máquinas de estados finitos.

Ejemplo 6.1

Sea un sistema digital como el de la figura 6.1, cuya entrada recibe una serie arbitraria de valores
enteros entre 0 y 3, tomando su salida el valor "a" cuando la suma de los valores recibidos a la
entrada sea múltiplo de 2, y el valor "b" cuando no lo sea. Es claro que este sistema es secuencial
puesto que el valor de la salida en un instante dado depende de todas las entradas recibidas hasta
ese instante y no sólo de la última de ellas.

Sistema x ∈ {0, 1, 2, 3}
x z
Digital z ∈ {a, b}

Figura 6.1 Sistema del ejemplo 6.1

Veamos si es posible especificar el funcionamiento de este sistema como una máquina de estados
finitos. Para ello obsérvese que para generar la salida no es necesario que el sistema almacene o
"recuerde" la secuencia completa de entradas recibidas (que es en principio ilimitada), y que
tampoco es necesario que almacene el valor de la suma de las entradas (que puede hacerse
prácticamente infinito), sino que le basta con saber si esta suma es par (múltiplo de 2) o no.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 219
________________________________________________________________________________

Supongamos por ejemplo que la suma de los valores recibidos, excluyendo el último, sea par,
cosa que indicamos definiendo una variable de estado (s) y haciendo que ésta tome el valor "par";
si el último valor recibido es x=0, es evidente que la suma total de los valores recibidos sigue
siendo par, por lo que la salida será y=a. Lo mismo pasaría si el último valor recibido fuese x=2,
pero si este valor fuera x=1 o x=3 tendríamos una suma total impar, por lo que en ambos casos la
salida generada sería z=b.

Si por el contrario suponemos que la suma de entradas recibidas (excepto la última) es impar,
cosa que indicaremos haciendo s=impar, y se recibe como última entrada x=0 o x=2, la salida en
ambos casos será z=b (suma total impar). En cambio, si la última entrada recibida es x=1 o x=3,
la salida será z=b (suma total par).

Por otra parte, si la variable de estado recoge el efecto de las entradas anteriores sobre el
comportamiento del sistema, es evidente que el valor de esta variable se verá afectado por la
última entrada; por ejemplo, si se tiene s=par y x=1, la salida será z=b (suma impar) y el estado
"siguiente", es decir el que incluirá está última entrada, será s=impar. En consecuencia los valores
de la entrada (x) y del estado (s) determinan unívocamente tanto el valor de la salida (z) como el
valor del estado siguiente (llamémoslo s(t+∆t) o, simplemente, s+).

s x s+ z
a) b)
par 0 par a
par 1 impar b
tiempo
par 2 par a
x 0 3 2 1 3 ...
par 3 impar b
s par par impar impar par impar
impar 0 impar b
z a b b a b ...
impar 1 par a
impar 2 impar b
impar 3 par a

Figura 6.2 Comportamiento del sistema del ejemplo 6.1

La figura 6.2.a ilustra el comportamiento del sistema en función del tiempo para una cierta
secuencia de entradas (0,3,2,1,3,..) a partir de un estado inicial s=par. La figura 6.2.b muestra por
su parte la tabla de verdad de la salida del sistema (z) y del estado futuro (s+) en función de la
entrada (x) y del estado (s) del sistema.

La tabla de la figura 6.2.b permite concluir que es posible describir completamente el


funcionamiento de un sistema secuencial especificando mediante tabla de verdad, expresiones
algebraicas u otros métodos ya conocidos y utilizados anteriormente para los sistemas
combinacionales, dos funciones de las mismas variables, z=f(s,x) y s+=g(s,x), a las cuales
llamaremos respectivamente función de salida y función de transición de estados.
_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


220 Diseño digital
________________________________________________________________________________

Ejercicio 6.1

Un sistema secuencial tiene dos posibles valores de entrada, A y B. Queremos que el sistema
detecte secuencias de tres entradas iguales. Decida los estados posibles, y describa el
funcionamiento del sistema a través de una tabla.
_________________________________________________________________________________

Ejemplo 6.2

El ejemplo 6.1 ilustra claramente cómo la utilización de una variable de estado es una valiosa
ayuda a la hora de especificar (describir) el funcionamiento de un sistema secuencial. En dicho
ejemplo la variable toma un número finito de valores (en concreto, dos); sin embargo, es fácil
imaginar sistemas cuya variable de estado tendría que tomar infinitos valores: sea un sistema
digital con una entrada y una salida en que ambas pueden tomar dos valores, "0" y "1". La salida
toma el valor "1" cuando la entrada haya tomado el mismo número de veces el valor "0" que el
valor "1", y "0" en los demás casos.

Sistema x ∈ {0, 1}
x z
Digital z ∈ {0, 1}

Figura 6.3 Sistema del ejemplo 6.2

Si el sistema tiene que detectar cuándo la entrada ha tomado el mismo número de veces el valor
"0" que el valor "1" quiere decir implícitamente que debe contar cuántas veces más ha tomado un
valor que otro. Esto se podría hacer mediante una variable de estado, que por ejemplo podría
indicar cuántas veces más toma la entrada el valor "1" que el "0". Sin embargo, en ausencia de
otras restricciones el número de estados no está limitado: imaginemos por ejemplo que en la
entrada se recibe una secuencia indefinida de "1", necesitaríamos que la variable de estado
pudiera tomar un número ilimitado de valores. Diremos entonces que este sistema no es
realizable en forma de máquina de estados finitos.
_________________________________________________________________________________

6.1.2 Especificación basada en el estado

Al igual que ocurría en un sistema combinacional, la especificación de un sistema secuencial implica


indicar de forma unívoca sus posibles excitaciones, y las respuestas que éstas provocan
(funcionalidad del sistema).

Así la especificación de un sistema secuencial (entendido como máquina de estados finitos) puede
hacerse de forma sistemática si se conocen los conjuntos de posibles entradas, salidas y estados, más

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 221
________________________________________________________________________________

las dos funciones que relacionan estos tres conjuntos entre sí: la función de salida y la función de
transición de estados. La figura 6.4 muestra este tipo de especificación utilizando un lenguaje más
formal.

Sistema
x Secuencial z
[s]

x ∈ X, s ∈ S, z ∈ Z
X= Conjunto finito de entradas
F: X, S Z S= Conjunto finito de estados
z = f(x, s) Z= Conjunto finito de salidas
F= Función de salida
G: X, S G= Función de transición de estados
S s+=g(x, s)

Figura 6.4 Especificación de un sistema secuencial basada en el estado

Las entradas son los datos que recibe el sistema del exterior, los estados pueden considerarse como
datos generados por el mismo sistema y utilizados internamente por éste (por tanto no accesibles
desde el exterior), y las salidas como los resultados transmitidos al exterior. Las funciones de salida y
de transición de estados se asocian con el tratamiento y generación de datos realizado por el sistema.

Ejemplo 6.3

Vamos a hacer la especificación de un sistema que indica si, en los sucesivos lanzamientos de una
moneda al aire, el número de veces que ha salido "cruz" es par o impar. Se trata obviamente de
un sistema secuencial, para el que se puede suponer que tanto el conjunto de entradas como el de
salidas constan de sólo dos elementos, por ejemplo

X = {cara, cruz } Z = {0,1}

Parece razonable pensar que el sistema debe ser capaz de memorizar el resultado de los
lanzamientos efectuados (anteriores al último) en dos grupos o estados, el primero de los cuales
comprendería, por ejemplo, las evoluciones en que el número de veces que se ha recibido la
entrada "cruz" sea par, mientras que el otro grupo reuniría las secuencias que conducen a un
número impar de entradas "cruz". Luego tendremos dos estados posibles

S = {par, impar}

Para terminar de especificar el sistema es necesario indicar cuál es el valor de la salida para cada
posible valor de la entrada y del estado (función de salida) y cómo se actualiza el estado en
función de su valor anterior y del de la entrada (función de transición de estados). Si por ejemplo

© los autores, 1998; © Edicions UPC, 1998.


222 Diseño digital
________________________________________________________________________________

asignamos la salida "1" cuando el número de cruces aparecidas sea impar, la tabla de verdad para
ambas funciones será la de la figura 6.5.a.

entrada actual (x)


a) s x s+ z b)
cara cruz
par cara par 0 par par,0 impar,1
par cruz impar 1 impar impar,1 par,0
impar cara impar 1
impar cruz par 0 estado actual (s) estado futuro (s+ )
y salida (z)

Figura 6.5 Tablas de verdad del sistema del ejemplo 6.3

En la figura 6.5.b se muestra la misma información que en la 6.5.a utilizando una tabla de doble
entrada, de forma que en cada casilla especificamos el valor actualizado del estado y la salida;
así, por ejemplo, si el estado actual es "par" y la entrada es "cara", el estado próximo seguirá
siendo "par" y la salida "0". Dado su formato más compacto utilizaremos preferentemente este
segundo tipo de tabla en lo sucesivo.
_________________________________________________________________________________

Ejercicio 6.2

Especifique el sistema propuesto en el problema P1.2 usando los dos tipos de tablas presentadas
en el ejemplo anterior.
_________________________________________________________________________________

6.1.3 Diagrama de estados

Una forma alternativa y posiblemente más intuitiva de especificar el funcionamiento de un sistema


secuencial es el diagrama de estados. El diagrama de estados es una forma gráfica, equivalente a las
tablas anteriormente mencionadas, de representar la información relativa a la función de salida y a la
función transición de estados. Por tanto debe quedar claro que no contiene información adicional.

El diagrama de estados está compuesto por una serie de nodos y arcos. Cada nodo representa un
posible estado del sistema (por tanto hay tantos nodos en el diagrama como estados posibles),
mientras que los arcos unen los nodos entre sí de forma direccionada (suelen representarse mediante
flechas). Así la interpretación del esquema de la figura 6.6 es la siguiente: si el estado actual del
sistema es s=A y la entrada es x, la salida toma el valor z y el sistema pasará al estado s+=B. Nótese
que de cada nodo del diagrama salen tantos arcos como combinaciones de entrada diferentes sean
posibles.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 223
________________________________________________________________________________

x/z z = f ( A, x )
A B
B = g( A, x )

Figura 6.6 Fragmento de un diagrama de estados

Evidentemente cualquier especificación basada en el estado, ya sea en forma de tablas o de diagrama


de estados, puede hacerse tanto a nivel discreto (tal como se hace en la mayoría de los ejemplos de
este capítulo) como, mediante codificación de las entradas, estados y salidas, a nivel binario o de
variables lógicas.

Ejemplo 6.4

Vamos a construir el diagrama de estados del sistema del ejemplo 6.3. Su generación a partir de
la tabla de verdad de la figura 6.5.b es inmediata: sólo hay que dibujar tantos nodos como estados
tiene el sistema (en este caso dos: par e impar) y tantos arcos partiendo de cada nodo
(transiciones y salidas) como entradas posibles tiene el sistema (en este caso también dos: cara o
cruz).

Cruz/1

Par Impar
Cara/0 Cara/1
Cruz/0

Figura 6.7 Diagrama de estados del ejemplo 6.4

_________________________________________________________________________________

Ejercicio 6.3

Construya el diagrama de estados del sistema descrito en el ejercicio 6.1.

_________________________________________________________________________________

Ejemplo 6.5

Obtener la tabla de verdad y el diagrama de estados de un sistema secuencial cuya entrada puede
tomar cinco valores distintos (X={a,b,c,d,e}), correspondientes a las cinco opciones entre las que
el usuario puede escoger pulsando un pequeño teclado, y cuya salida puede tener dos valores
(Z={s,n}), que permiten o no el acceso a una zona de seguridad. El funcionamiento del sistema es

© los autores, 1998; © Edicions UPC, 1998.


224 Diseño digital
________________________________________________________________________________

tal que, si se pulsan consecutivamente las teclas "a","d" y "b", se habilita el acceso (z=s), mientras
que en cualquier otro caso éste permanece inhabilitado (z=n).

Parece claro que basta con saber hasta qué punto las entradas antepenúltima y penúltima se
parecen a la secuencia clave: esta información más la última entrada (tercer componente de la
secuencia) permite determinar qué salida se tiene que generar.

Luego podemos definir un conjunto de tres estados S={S0,S1,S2}:

Estado Significado
S0 Se ha recibido una secuencia tipo "-, -", que en nada
coincide con la clave.
S1 Se ha recibido una secuencia tipo "-, a", que coincide
con el principio de la clave.
S2 Se ha recibido una secuencia "a, d", que coincide
con la clave.

Que a su vez permite confeccionar la tabla de verdad y/o el diagrama de estados del sistema (ver
figura 6.8).

a/n
S S
a b c d e 0 1
S0 S 1,n S 0,n S 0 ,n S 0 ,n S 0,n b,c,d,e/n b,c,e/n a/n
d/n
S1 S 1,n S 0,n S 0 ,n S 2 ,n S 0,n a/n
b/s
S2 S 1,n S 0,s S 0 ,n S 0 ,n S 0,n c,d,e/n
S
2

Figura 6.8 Tabla de verdad y diagrama de estados del sistema del ejemplo 6.5

La especificación dada en la figura 6.8 ha sido obtenida a partir de un razonamiento concreto,


pero es necesario puntualizar que enfoques alternativos pueden conducir a especificaciones
diferentes para el mismo sistema; por ejemplo podríamos definir un conjunto de cuatro estados
S={S0,S1,S2,S3} en base a que el sistema sea capaz de recordar las tres últimas entradas
recibidas:

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 225
________________________________________________________________________________

Estado Significado
S0 Las últimas entradas recibidas componen la secuencia
"-, -, -", que en nada coincide con la clave.
S1 Las últimas entradas recibidas componen la secuencia
"-, -, a", que coincide con el principio de la clave.
S2 Las últimas entradas recibidas componen la secuencia
"-, a, d", que coincide con parte de la clave.
S3 Las últimas entradas recibidas componen la secuencia
"a, d, b", que coincide con la clave completa.

Podemos notar que con estos cuatro estados la función de salida es del tipo z=f(s), es decir, la
salida depende únicamente del estado y no directamente de la entrada. Esta situación permite
especificar el funcionamiento del sistema mediante una tabla de verdad algo más sencilla (ver
figura 6.9), donde podemos indicar la salida en una columna aparte. En el diagrama de estados
podemos indicar la salida en los nodos (ver figura 6.9).

b,c,d,e

S /n
x 0 a
s a b c d e z
b,c,d,e
S0 S1 S0 S0 S0 S0 n
S1 S1 S0 S0 S2 S0 n b,c,e
S /s a S /n
3 1
S2 S1 S3 S0 S0 S0 n
a
S3 S1 S0 S0 S0 S0 s a d
c,d,e

b S 2/n

Figura 6.9 Segunda tabla de verdad y diagrama de estados del sistema del ejemplo 6.5

El tipo de especificación mostrada en la figura 6.9 (con z=f(s)) se denomina máquina de Moore.
Una especificación como la dada en la figura 6.8 (con z=f(s,x)), se denomina máquina de Mealy.
Un comportamiento entrada-salida dado puede especificarse siempre de ambas maneras. Además,
como se verá más adelante, estas dos variantes de especificación conducen a realizaciones
circuitales características.
_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


226 Diseño digital
________________________________________________________________________________

Ejercicio 6.4

Proponga un diagrama de estados de tipo Mealy para un sistema igual que el descrito en el
ejemplo 6.5, que detecte la secuencia de entrada de 4 carácteres "a,a,d,e". Repita el ejercicio para
la secuencia "b,a,b,d", con uno de Moore.

__________________________________________________________________________

6.1.4 Equivalencia de estados

El ejemplo 6.5 ilustra la existencia de dos especificaciones diferentes de un mismo sistema


secuencial. En realidad se puede ir aún más lejos: un mismo sistema, es decir, un mismo
comportamiento entrada-salida, puede especificarse de innumerables maneras sin más que utilizar
diferentes conjuntos de estados.

Por tanto dado un sistema secuencial tiene su interés, si más no por sencillez, poder trabajar con la
especificación mínima de dicho sistema, entendiendo como tal aquélla que utiliza el menor número
posible de estados. En el capítulo 7 veremos que esto tiene implicaciones directas sobre la
complejidad de implementación del sistema.

Vamos, pues, a introducir un método sistemático que permite obtener la especificación mínima a
partir de otra cualquiera de un sistema secuencial. Este método se basa en eliminar sucesivamente los
estados que son redundantes o equivalentes entre sí.

Concretando más, diremos que dos estados son equivalentes cuando el sistema genera la misma
secuencia de salidas para cualquier secuencia de entradas dada, partiendo de cada uno de ellos, siendo
imposible distinguirlos entre sí. Diremos además que dos estados son n-equivalentes cuando,
tomándolos como iniciales, no es posible distinguirlos entre sí después de aplicar cualquier secuencia
de n entradas (es decir, cuando a partir de ellos se genera siempre la misma secuencia de n salidas al
aplicar la misma secuencia de n entradas).

El método se puede esquematizar en los siguientes pasos:

I) Tomando como referencia el conjunto inicial de estados, al que llamaremos


partición inicial o p0, generar una nueva partición (p1) compuesta de varios grupos de estados,
de modo que cada grupo esté formado por los estados que es imposible distinguir tras una
única entrada (estados 1-equivalentes). Esto es fácil de hacer a partir de la función de salida:
mirando la tabla de verdad del sistema fila a fila, hay que agrupar los estados (filas) cuyas
salidas sean idénticas.

II) Tomando como referencia la partición p1 (estados 1-equivalentes), obtener la


partición p2 (estados 2-equivalentes). Esto es fácil de hacer si se repara en que dos estados son
2-equivalentes cuando sus estados futuros son 1-equivalentes, luego hay que particularizar la

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 227
________________________________________________________________________________

función de transición de estados para cada grupo de p1; si para cada valor de la entrada el
estado futuro pertenece siempre a un mismo grupo no hace falta dividir el grupo: los estados
de dicho grupo son a la vez 1-equivalentes y 2-equivalentes. En caso contrario hay que generar
tantos grupos nuevos como comportamientos diferentes se observen.

III) Repetir el paso II para generar la partición pi+1 (grupos de estados i+1-
equivalentes) a partir de la pi (grupos de estados i-equivalentes) hasta obtener dos particiones
seguidas idénticas, momento en el que el proceso finaliza.

IV) La especificación mínima del sistema se obtiene particularizando la tabla de


verdad y/o el diagrama de estados inicial para un estado o representante de cada grupo de la
última partición.

Aunque aparentemente se trata de un método complejo, en realidad su aplicación resulta ser muy
sencilla, como puede comprobarse en el ejemplo 6.6.

Ejemplo 6.6

Sea un sistema cuya entrada recibe una secuencia de bits y que genera la salida "1" únicamente
cuando la secuencia recibida es "1,1,0".

0/0

S 1/0
00
0/0
S S
0 1/0 01
0/0 0/0
S in 1/0 0/0
1/0
1/0
0/0
S1 S
10
1/0
S 11 0/1

1/0

Figura 6.10 Diagrama de estados inicial del sistema del ejemplo 6.6

© los autores, 1998; © Edicions UPC, 1998.


228 Diseño digital
________________________________________________________________________________

Un posible diagrama de estados para este sistema es el de la figura 6.10, obtenido partiendo de un
estado inicial Sin desconocido, del cual se pasa a S0 o a S1 en función del valor recibido a la
entrada. Desde S0 y/o S1 este esquema se repite, de manera que, partiendo de Sin o de cualquier
otro estado, se llega a los estados Sij cuando los dos últimos valores de la entrada son "i" y "j"
respectivamente. La salida será "0" para todas las posibles transiciones, excepto cuando, siendo el
estado actual S11, se reciba la entrada "0", caso en que se habrá recibido la secuencia que produce
la salida "1".

Es obvio que puede proponerse un sinnúmero de conjuntos y diagramas de estados alternativos


que reconozcan la secuencia pedida; en este sentido nótese que el sistema que nos ocupa es
similar del ejemplo 6.5 y que, por tanto, su especificación mediante un conjunto menor de
estados es viable. Vamos a comprobar este último extremo aplicando el método de minimización
propuesto más arriba; para ello comencemos escribiendo la tabla de verdad de las funciones de
salida y de transición de estados (figura 6.11).

s x=0 x=1
S in S 0 ,0 S 1 ,0
S0 S 00 ,0 S 01 ,0
S1 S 10 ,0 S 11 ,0
S 00 S 00 ,0 S 01 ,0
S 01 S 10 ,0 S 11 ,0
S 10 S 00 ,0 S 01 ,0
S 11 S 10 ,1 S 11 ,0

Figura 6.11 Tabla de verdad inicial del sistema del ejemplo 6.6

Si atendemos a los valores de la función de salida obtenemos una primera partición en dos grupos
de los siete estados iniciales: sólo a partir de S11 se generan unas salidas diferentes a las
generadas a partir del resto de estados; por tanto

p1 = (Sin , S0 , S1 , S00 , S01 , S10 )(S11 )

Del estado S11 no hace falta ocuparse más puesto que ha quedado aislado y por tanto seguro que
no es equivalente a ningún otro. Ahora vamos a generar la segunda partición, para ello tomamos
la tabla de transición de estados para el primer grupo de p1

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 229
________________________________________________________________________________

s x=0 x=1
S in S0 S1
S0 S 00 S 01
S1 S 10 S 11
S 00 S 00 S 01
S 01 S 10 S 11
S 10 S 00 S 01

Observando la tabla vemos que los estados futuros correspondientes a Sin, S0, S00 y S01
pertenecen siempre al mismo grupo de p1 (en concreto se llega a S0, S1, S00, y S01), tanto para
x=1, como para x=0. En cambio los estados futuros correspondientes a S1, y S01 pertenecen al
mismo grupo anterior para x=0 y al otro grupo (el formado únicamente por S11) para x=0. Luego
la segunda partición del conjunto de estados será

p2 = (Sin ,S0 ,S00 , S10 )(S1 ,S01 )(S11 )

Ahora debemos reescribir la tabla de transición de estados para cada uno de los grupos de p2 con
el objetivo de analizar el comportamiento de sus estados futuros respecto de la nueva partición y
ver si se tiene que hacer o no divisiones adicionales.

s x=0 x=1
S in S0 S1 s x=0 x=1
S0 S 00 S 01 S1 S 10 S 11
S 00 S 00 S 01 S 01 S 10 S 11
S 10 S 00 S 01

En la tabla de la izquierda no es posible hacer más divisiones: sea cual sea el estado de partida
(Sin, S0 ,S00,ó S01) para x=0 el estado futuro pertenece al primer grupo de p2 y para x=1 el estado
futuro pertenece al segundo grupo de p2. Algo similar ocurre con la tabla de la derecha; por tanto,
la tercera partición del conjunto de estados será

p2 = (Sin ,S0 ,S00 , S10 )(S1 ,S01 )(S11 )

© los autores, 1998; © Edicions UPC, 1998.


230 Diseño digital
________________________________________________________________________________

Como las dos últimas particiones son iguales, el método ha finalizado y se puede especificar el
sistema inicial con solamente tres estados. Para ello basta con tomar un representante de cada
grupo de p3, por ejemplo A=Sin=S0=S00=S10, B=S1=S01 y C=S11, y reescribir en función de
estos tres estados la tabla del sistema y el diagrama de estados (figura 6.12).

1/0
s x=0 x=1
0/0 A B 1/0 C 1/0
A A, 0 B, 0
B A, 0 C, 0 0/0
C A, 1 C, 0
0/1

Figura 6.12 Especificación mínima del sistema del ejemplo 6.6

_________________________________________________________________________________

Ejercicio 6.5

Para un cierto sistema se ha propuesto la siguiente tabla de transición entre estados:

estado x=-1 x=0 x=1


S0 S3,1 S0,1 S4,0
S1 S0,1 S0,0 S3,1
S2 S4,1 S6,1 S3,0
S3 S4,1 S2,0 S1,1
S4 S2,1 S5,1 S0,0
S5 S2,1 S4,0 S1,1
S6 S2,1 S2,0 S1,1

Encuentre, para este sistema, un diagrama de estados equivalente mínimo.


_________________________________________________________________________________

6.2 Sincronización de sistemas secuenciales

Hasta aquí se ha mantenido, por omisión deliberada, una total ambigüedad respecto a los aspectos
temporales básicos de los circuitos secuenciales. En particular se podrían plantear las siguientes
preguntas: si el estado se actualiza en función del estado anterior y de la entrada, ¿en qué momento
concreto se lleva a cabo esta actualización? ¿A partir de cuándo el valor de la entrada, salida o estado
se considera que es el valor "siguiente"?

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 231
________________________________________________________________________________

Es evidente que la respuesta a este tipo de preguntas no es trivial y que, llegados a este punto, es
necesario introducir los aspectos temporales y/o de sincronización.

6.2.1 Sistemas secuenciales síncronos y asíncronos

Una primera clasificación de los sistemas secuenciales en función de su comportamiento temporal nos
llevará a dos grandes grupos o tipos: los sistemas síncronos y los asíncronos.

Un sistema secuencial es asíncrono cuando su funcionamiento temporal es libre, es decir, cuando la


variación de entradas, estados y salidas no está sometida a ninguna restricción externa. Las únicas
restricciones temporales existentes en un sistema asíncrono son de origen interno (e inevitable) y son
debidas a los retardos de los elementos físicos que lo componen.

El segundo grupo lo consituyen los sistemas síncronos, los cuales incluyen un control temporal de
tipo restrictivo (sincronización) en su funcionamiento: el estado y la salida del sistema pueden
cambiar únicamente cuando lo permite una señal externa de referencia llamada reloj (CLOCK). La
forma ideal de la señal de reloj es un tren periódico de impulsos, que indican los instantes de tiempo
en los que es posible el cambio de estado y de salida.

a)
clock

x(t)

S(t)

z(t)

b)
clock

x(t)

S(t)

z(t)

Figura 6.13 Evolución temporal de las señales en un sistema síncrono con la


entrada variando de forma libre (a) o sincronizada con el reloj del sistema (b)

© los autores, 1998; © Edicions UPC, 1998.


232 Diseño digital
________________________________________________________________________________

Es evidente que, a priori, un sistema secuencial asíncrono es más rapido que uno síncrono; esto es así
porque en el sistema síncrono los cambios siempre tienen que esperar a producirse en los instantes en
que ésto está permitido, con las consiguientes demoras. A su vez el comportamiento de un sistema
asíncrono es muy sensible al retardo de sus componentes, problema que se agrava notablemente
cuando aumenta su tamaño o su complejidad, razón que hace que los sistemas asíncronos sean muy
poco utilizados en la práctica. En este texto centraremos nuestra atención casi exclusivamente en los
sistemas secuenciales síncronos.

En la figura 6.13.a se muestra un ejemplo de evolución temporal de un sistema síncrono gobernado


por un reloj ideal. De acuerdo con esta señal, el estado y la salida cambian únicamente en los
instantes de tiempo coincidentes con los impulsos. Con ello se consigue que, como máximo, haya un
cambio por cada período de reloj. Se ha supuesto que los retardos del sistema son prácticamente
inapreciables.

Consideremos a efectos de exploración de posibilidades el caso particular de un sistema síncrono


donde también la entrada cambiase sólo en los instantes fijados por el reloj. Un ejemplo de
cronograma del comportamiento de este tipo de sistema sería el de la figura 6.13.b, donde el valor de
cada una de las señales se mantiene constante como mínimo el tiempo que transcurre entre dos
impulsos consecutivos del reloj (es decir, un período de reloj). En estas condiciones es muy sencillo
hacer una interpretación del comportamiento del sistema, no en función de la variable continua "t"
(tiempo) sino de la variable discreta "i" (instante de cambio, i=0,1,2,3,..), tal como se muestra en la
figura 6.14.

0 1 2 3 ...

x(0) x(1) x(2) x(3) ...

...
S(0) S(1) S(2) S(3)

...
z(0) z(1) z(2) z(3)

Figura 6.14 Discretización del tiempo en un sistema síncrono

En estas condiciones es posible realizar una especificación del funcionamiento de este tipo de sistema
donde entradas, salidas y estados se interpretan como secuencias discretas de valores (ver figura
6.15).

Nótese que en este tipo de sistema se trata de un caso opuesto al de un sistema asíncrono en cuanto a
dependencia del factor tiempo, y que es viable prescindir de éste como variable contínua: en cada
período de reloj (i) el sistema recibe una entrada x(i) y se mantiene en un estado s(i), que determinan
unívocamente tanto la salida en este mismo período z(i) como el valor siguiente (en el siguiente
período de reloj) del estado s(i+1). En otras palabras, el comportamiento de este tipo de sistema

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 233
________________________________________________________________________________

síncrono es más cercano al de los sistemas considerados al principio de este capítulo, en los que se
prescindía de los aspectos temporales.

Sistema
x(i) Secuencial z(i)
Síncrono

x(i) ∈ X, s(i) ∈ S, z(i) ∈ Z X= Conjunto finito de entradas


F: X, S Z S= Conjunto finito de estados
z(i) = f(x(i), s(i)) Z= Conjunto finito de salidas
F= Función de salida
G: X, S S G= Función de transición de estados
s(i+1) =g(x(i), s(i))

Figura 6.15 Especificación ideal de un sistema secuencial síncrono

Ejemplo 6.7

Sea el sistema síncrono especificado en la figura 6.16. Queremos conocer su respuesta a la serie
de entradas x(0)=a, x(1)=b, x(2)=c, x(3)=a, suponiendo que en el instante inicial (i=0) el estado
es S2.

X = {a,b,c} Z = {0,1}
x(i) Sistema z(i)
S = {S 0 ,S 1,S ,S
2 3
}

s(i) x(i)=a x(i)=b x(i)=c


S0 S 0 ,0 S 1 ,0 S 1 ,0
S1 S 2 ,1 S 0,1 S 1 ,1
S2 S 2 ,1 S 3,0 S 0 ,1 s(i+1), z(i)
S3 S 0 ,0 S 1,0 S 2 ,1

Figura 6.16 Especificación del sistema del ejemplo 6.7

i 0 1 2 3 4
x(i) a b c a
s(i) S2 S2 S3 S2 S2
z(i) 1 0 1 1

Figura 6.17 Secuencia de estados y salidas del ejemplo 6.7

© los autores, 1998; © Edicions UPC, 1998.


234 Diseño digital
________________________________________________________________________________

La especificación de la figura 6.16 contiene toda la información necesaria para obtener tanto la
secuencia de estados como de salidas resultantes a partir de la secuencia de entradas y el estado
inicial descritos en el enunciado. El resultado se recoge en la figura 6.17.
_________________________________________________________________________________

Ejercicio 6.6

Encuentre la secuencia de salida del sistema del ejercicio 6.5 entendido como un sistema
síncrono, a la secuencia de entrada periódica -1,0,1,0,-1,0,1,.. sabiendo que el estado inicial es S1.
¿En qué variaría la respuesta si el estado inicial fuera S0, S2 o S3?
_________________________________________________________________________________

6.2.2 Implementación canónica de un sistema secuencial síncrono

La especificación de sistemas secuenciales basada en el estado sugiere una posibilidad,


conceptualmente sencilla de realización de sistemas síncronos: la forma canónica. Dado que la salida
y el estado futuro son función de la entrada y el estado actual, podemos implementarlos mediante una
red combinacional. Por otra parte, el valor actual del estado debe ser memorizado durante los
intervalos de tiempo en que el reloj no le permite cambiar y actualizado cuando corresponda.

x(i) z(i)
Red
Combinacional

s(i) s(i+1)
Registro de
estado

CLOCK Reset

Figura 6.18 Implementación canónica de un sistema síncrono ideal

La figura 6.18 muestra el esquema de la implementación canónica de un sistema secuencial síncrono.


La red combinacional agrupa las realizaciones de las funciones de salida y transición de estados. El
bloque llamado registro de estado almacena el valor actual del estado, s(i), ignorando el valor que
tiene a su entrada hasta que le llega un impulso de reloj, momento en que el valor a su entrada o
estado siguiente, s(i+1), pasa a convertirse en actual. Desde ese instante y hasta el siguiente impulso
de reloj el registro vuelve a ignorar el valor presente a su entrada y a operar como memorizador.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 235
________________________________________________________________________________

Ha quedado dicho que el funcionamiento del circuito descrito es ambiguo si no se conoce su estado
inicial; para resolver esta dificultad el registro de estado suele disponer de una entrada adicional,
llamada de reinicialización o "reset", que de forma asíncrona (es decir no dependiente del reloj)
permite llevar al sistema a un estado inicial determinado.

La forma canónica es un instrumento muy útil para estudiar comportamientos temporales.


Recordemos que estamos considerando sistemas síncronos cuya entrada también está sincronizada,
cosa no inusual en la práctica (las entradas de un circuito secuencial sueden ser salidas de otros,
normalmente sincronizados con el mismo reloj), pero que ésta no es la situación más general posible.
Luego podemos plantearnos la siguiente pregunta: ¿qué ocurre cuando la señal de entrada no está
sincronizada, sino que puede variar de cualquier manera? Esta situación se refleja en la figura 6.19.a.

Red Red
x(t) z(t) z(i)
Combinacional Combinacional f(s)
f(x,s), g(x,s)
Red
x(t) Combinacional g(s,x)
s(i) s+ (t) s+ (t)
Registro de s(i)
Registro de
estado
a) b) estado

CLOCK Reset CLOCK Reset

Figura 6.19 Efectos de una entrada no síncrona a) en una máquina de Mealy, b) en una màquina de Moore

La red de la figura 6.19.a que realiza las funciones de salida y de transición de estados es
combinacional, donde el reloj no desempeña ningún papel. Luego si una de sus entradas tiene una
variación temporal x(t) no síncrona, sus salidas z(t) y s+(t) tampoco serán síncronas y únicamente la
variación del estado actual s(i) estará sincronizada. Nótese que este resultado implica que el sistema
no es síncrono.

Esta asincronía indeseada se debe a que la entrada del sistema influye directamente sobre su salida,
situación identificable con una máquina de Mealy, donde se tiene z=f(s,x). Ahora bien, tal como
muestra la figura 6.19.b, esto no ocurre en el caso de una máquina de Moore, donde la salida sí será
síncrona puesto que es una función del tipo z=f(s).

Como conclusión podemos decir que para asegurar que una máquina de Mealy se comporte de forma
síncrona es necesario que sus entradas hayan sido sincronizadas previamente, condición innecesaria
en el caso de una máquina de Moore. Por esta razón existe en la práctica una cierta preferencia a
trabajar con máquinas de este último tipo. El ejemplo 6.8 ilustra mediante un caso concreto esta
diferencia de comportamientos.

© los autores, 1998; © Edicions UPC, 1998.


236 Diseño digital
________________________________________________________________________________

Ejemplo 6.8

Obtener el cronograma de las señales de estado y las salidas de los sistemas 1 y 2 de la figura
6.20.a cuando se aplica a ambos las señales de entrada y de reloj indicadas en la figura 6.20.b. De
acuerdo con las especificaciones dadas en la figura, los sistemas 1 y 2 son respectivamente
máquinas de Mealy y de Moore.

Sistema 1
a) z1(t)
Sistema 1 s x=0 x=1
z2(t)
x(t) 0 0,11 1,01
1 1,11 0,10
Sistema 2 z(t)
s +,z1 z2
CLK Sistema 2
b) s1 s2 x=0 x=1 z
00 01 00 0
CLK
01 10 01 1
10 11 10 1
x(t)
11 00 11 0
s1+s2 +

Figura 6.20 Sistemas y señales de entrada considerados en el ejemplo 6.8

En el cronograma del sistema 1 (figura 6.21.a) puede observarse que, al no estar sincronizada la
entrada x(t), las salidas tampoco lo están, aunque sí el estado s(t). Esto no ocurre para el sistema 2
(figura 6.21.b), donde a pesar de que la entrada no es síncrona, tanto las señales de estado como
la salida sí lo son (nótese que el sistema sólo hace caso del valor de la entrada en los instantes de
tiempo coincidentes con los impulsos del reloj).

a) b)
CLK CLK
x(t) x(t)
s(t) s1(t)

z1(t) s2(t)

z2(t) z(t)

Figura 6.21 Cronogramas de l ejemplo 6.8 para el sistema 1 (a) y el sistema 2 (b)

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 237
________________________________________________________________________________

6.2.3 Sincronización con reloj no ideal

Hasta ahora hemos considerado siempre la señal de reloj como un tren periódico de impulsos de
duración despreciable frente a cualquier otra característica temporal del sistema. En la realidad esto
no es así y las señales de reloj son similares a la mostrada en la figura 6.22, que está caracterizada por
dos magnitudes: el ancho del pulso tw y su periodo TCLK. Se denomina ciclo de trabajo al porcentaje
de tiempo que el reloj esta a "1" en cada periodo, es decir, a la relación (tw/TCLK)x100.

CLK(t)
tw TCLK

Figura 6.22 Señal de reloj no ideal

Las señales de reloj ideales (con impulsos de duración prácticamente nula) definen con precisión
instantes de tiempo en los cuales tienen lugar los cambios del sistema. En cambio, pulsos de reloj de
duración apreciable dificultan una correcta sincronización.

El ejemplo 6.9 ilustra la relación que debe existir entre los retardos y la frecuencia de reloj para
asegurar la correcta sincronización de un sistema secuencial canónico.

Ejemplo 6.9

Considérese el sistema genérico de la figura 6.23, donde la red combinacional y el registro de


estado responden a una variación en sus entradas con retardos tC y tR respectivamente, y la señal
de reloj es como la de la figura 6.22. Deducir qué condiciones deben cumplirse para que el
sistema genere correctamente la secuencia de estados.

x Red z
Combinacional
+
s s
Registro de
estado

CLOCK

Figura 6.23 Sistema secuencial del ejemplo 6.9

© los autores, 1998; © Edicions UPC, 1998.


238 Diseño digital
________________________________________________________________________________

Una secuenciación de estados correcta implica que el sistema tiene que hacer una única
actualización del estado en cada período de reloj. Esto supone cumplir dos condiciones:

1) Que dentro de un período de reloj haya suficiente tiempo para actualizar el estado, 2) Que no
se haga más de una actualización por período de reloj.

La primera condición se traduce en que el tiempo que tarda el sistema en responder sea inferior a
TCLK, es decir, si tC es el retardo de la red combinacional y tR el del registro:

tC + t R < T CLK

Es habitual en la práctica hacer que esta desigualdad se cumpla claramente, por lo que se escoge
un período de reloj que sea , por lo menos,un número entero de veces mayor que la suma de
retardos (hay varios criterios para fijar este número, habitualmente igual o superior a 3).

La segunda condición se traduce en que el tiempo que tarda el sistema en responder debe ser
superior la duración del intervalo en que se permiten los cambios, es decir

tC + t R > tw

Si esta condición no se cumpliera podría haber más de 1 cambio por período de reloj, con lo que
el sistema dejaría de estar controlado.
_________________________________________________________________________________

Los resultados del ejemplo 6.9 conducen a dos conclusiones importantes; por un lado la frecuencia
máxima a la que un sistema síncrono puede funcionar sin problemas depende de los retardos de éste,
y por otro el lapso de tiempo en que está permitido el cambio de estado debe ser lo más corto posible,
objetivo, en principio, difícil de compatibilizar con la forma real de la señal de reloj. Existen dos
estrategias diferentes de sincronización de los sistemas secuenciales con reloj real:

a) Sincronización por nivel (alto): el valor del estado puede actualizarse sólo cuando el reloj
toma el valor lógico "1", en caso contrario el estado permanece inalterado. Esta estrategia es la
considerada en el ejemplo 6.9. Simétricamente podriamos hablar de sincronización por nivel bajo.

b) Sincronización por flanco: el valor del estado puede actualizarse sólo cuando la señal de
reloj realiza una transición dada. En concreto, cuando este cambio es un paso de "0" a "1" se habla de
sincronización por flanco ascendente, mientras que se habla de sincronización por flanco descendente
cuando el instante de referencia es el paso de "1" a "0". Es evidente que, al ser los instantes de cambio
más breves, la sincronización por flanco supone una aproximación mayor al caso ideal.

Para indicar el modo de sincronización de los circuitos secuenciales utilizaremos en lo sucesivo la


simbología especificada en la figura 6.24.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 239
________________________________________________________________________________

Instantes de cambio permitido


a) con sincronización por nivel

CLOCK

Instantes de cambio permitido Instantes de cambio permitido


con sincronización por flanco con sincronización por flanco
ascendente descendente

b) c) d)
Clock Clock Clock

Figura 6.24 Estrategias de sincronización de sistemas secuenciales (a) y símbolos


utilizados en sincronización por nivel (b), por flanco ascendente (c) y por flanco
descendente (d)

6.3 Biestables

La presencia del registro de estado implica que para poder diseñar sistemas secuenciales en forma
canónica son necesarios elementos capaces de almacenar información (en concreto el estado actual)
durante un cierto tiempo.

En concreto, para realizar en la práctica estos sistemas se tendrá que codificar previamente el estado
utilizando el número de bits necesarios en función del número de estados posibles (recuérdese que
con n bits se pueden codificar 2n estados). Por tanto, almacenar el valor del estado se traduce en
definitiva en almacenar un número fijo de bits. Podemos imaginar el registro de estado como una
agrupación de módulos iguales, almacenando cada uno de ellos un solo bit (ver figura 6.25).

s0 s 0+
Codificación Codificación
s1 s 1+ del estado
del estado . .
actual . . futuro
. . s+ (t)
s(t) sn s n+

Clock Reset

Figura 6.25 Composición del registro de estado

© los autores, 1998; © Edicions UPC, 1998.


240 Diseño digital
________________________________________________________________________________

Los módulos utilizados para la memorización y/o actualización de cada bit se denominan biestables.
A continuación se especifica el funcionamiento de los biestables más comúnmente utilizados. Para
ello se supondrá que la señal de reloj es ideal (en forma de tren de impulsos), y se dejan para más
adelante cuestiones como la realización circuital de biestables y/o la sincronización cuando el reloj es
no ideal.

6.3.1 Biestable D

El biestable D (delay) se ajusta precisamente a la descripción hecha en el apartado anterior. Dispone


de una entrada de datos (D), otra de reloj y una salida (Q); las versiones comerciales de cualquier
biestable ofrecen habitualmente la posibilidad de acceder al valor de la salida y a su negada, aspecto
que recoge el esquema de la figura 6.26.

D D Q Q
Clock Q Q

Figura 6.26 Esquema de un biestable D

Su funcionamiento es como sigue: en cada impulso de reloj la salida toma el valor de la entrada, con
lo que queda este valor invariante hasta que el reloj vuelva a permitir otro cambio. Se trata ,pues, de
un circuito secuencial y como tal puede ser descrito con las técnicas presentadas en este mismo
capítulo.

Tanto la entrada como la salida pueden tomar únicamente los valores "0" y "1". Parece razonable
asignar al sistema dos estados, uno correspondiente a las evoluciones de la entrada que hacen que la
salida valga "0" y otro que agrupa las evoluciones que hacen que la salida sea "1". El diagrama de
estados y la tabla de verdad correspondientes se muestran en la figura 6.27; nótese que se trata de una
màquina de Moore con una función de salida trivial (z=Q).

1 Q D=0 D=1
0/0 1/1 0 0,0 1,0 Q +,z
0 1
0 1 0,1 1,1

Figura 6.27 Diagrama de estados y tabla de verdad de un biestable D

Otra forma de describir la funcionalidad del biestable es la tabla de excitación, figura 6.28, que
contiene la misma información que la figura 6.27. La interpretación es como sigue: si el estado actual
toma el valor dado en la columna Q y se desea que el estado siguiente sea Q+, la entrada actual debe
tomar el valor indicado en la columna D.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 241
________________________________________________________________________________

Q Q+ D
0 0 0
0 1 1
1 0 0
1 1 1

Figura 6.28 Tabla de excitaciones de un biestable D

A partir de las figuras 6.27 o 6.28 es fácil escribir una expresión algebraica para la función de
+
transición de estados de este tipo de biestable: Q = D .

Ejemplo 6.10

Una aplicación adicional del biestable D es como retardador (el nombre D viene precisamente del
inglés delay). En este ejemplo se muestra un cronograma (ver figura 6.29) que pone en evidencia
este comportamiento.

CLK
D(t)

Q(t)

Figura 6.29 Respuesta temporal de un biestable D

_________________________________________________________________________________

6.3.2 Biestable JK

El biestable D no es el único elemento capaz de realizar la función de memorización de un bit.


Existen otros tipos de biestables, en especial los JK y T, en los cuales la relación entre salida (estado)
y entrada es menos sencilla, pero que en algunas ocasiones pueden tener un gran interés práctico.

J =0 J =0 J =1 J =1
Q K=0 K=1 K=0 K=1
J J Q Q
Clock 0 0,0 0,0 1,0 1,0 Q +,z
K K Q Q 1 1,1 0,1 1,1 0,1

Figura 6.30 Especificación del funcionamiento de un biestable JK

© los autores, 1998; © Edicions UPC, 1998.


242 Diseño digital
________________________________________________________________________________

Un biestable JK síncrono es un circuito secuencial elemental con dos entradas de datos (J y K), otra
de sincronización (reloj) y una salida (Q), donde el valor del estado coincide con el de la salida,
siendo su comportamiento el descrito en la tabla de la figura 6.30.

La interpretación de la funcionalidad del biestable JK es la siguiente: si introducimos la entrada actual


J=0, K=1, el estado siguiente será Q+=0 sea cual sea el actual. De forma simétrica la entrada opuesta
J=1, K=0 hace que el estado siguiente sea Q+=1. La combinación de entrada J=K=0 hace que no haya
cambio de estado, es decir Q+=Q. Finalmente la combinación J=K=1 hace que el estado siguiente sea
el opuesto al actual (Q+=1 si Q=0 o Q+=0 si Q=1).

El diagrama de estados del biestable JK se muestra en la figura 6.31, junto con la expresión algebraica
de la función de transición de estados.

10,11
00,01 0/0 1/1 00,10 Q+ = Q J + QK
01,11

Figura 6.31 Diagrama de estados de un biestable JK

Una reordenación de la información contenida en la figura 6.31 permite generar la tabla de


excitaciones para un biestable JK, que será la dada en la figura 6.32.

+
Q Q J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0

Figura 6.32 Tabla de excitaciones


de un biestable JK

Ejemplo 6.11

Realizar un biestable JK a partir de un D. Para ello basta con fijarnos en la ecuación característica
del biestable JK, y dado que en un biestable D el estado futuro es igual a la entrada, obtenemos
una posible implementación: Q + = D= JQ + QK

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 243
________________________________________________________________________________

J
D Q Q
Clock
Ck Q Q
K

Figura 6.33 Implementación de un biestable JK a partir de un D

_________________________________________________________________________________

Ejercicio 6.7

Proponga una realización para un biestable D partiendo de un biestable JK.


_________________________________________________________________________________

6.3.3 Biestable T

Un biestable T (toggle) síncrono es un circuito secuencial elemental con una entrada de datos (T),
otra de sincronización (reloj) y una salida (Q), donde el valor del estado coincide con el de la salida,
siendo su comportamiento el descrito en la figura 6.34.

Q T=0 T=1
T T Q Q 0 0,0 1,0 Q +,z
Clock Q Q 1 1,1 0,1

Figura 6.34 Especificación del funcionamiento de un biestable T

La descripción del funcionamiento del biestable es la siguiente: si la entrada toma el valor T=1, el
estado se actualizará cambiando de valor, es decir, si el valor actual de la variable de estado es Q=0,
el valor siguiente será Q+=1, y viceversa. En caso contrario, es decir, si la entrada toma el valor "0",
la variable de estado no cambia de valor al actualizarse (Q+=Q).

Q Q+ T
1 0 0 0
+
0 0/0 1/1 0 Q = Q⊕ T 0 1 1
1 0 1
1 1 1 0

Figura 6.35 Diagrama de estados, expresión algebraica de la función de transición de


estados y tabla de excitaciones de un biestable T

© los autores, 1998; © Edicions UPC, 1998.


244 Diseño digital
________________________________________________________________________________

El diagrama de estados del biestable T se muestra en la figura 6.35, junto con la expresión algebraica
de la función de transición de estados y la tabla de excitaciones.
_________________________________________________________________________________

6.4 Realización de biestables

Para finalizar el capítulo vamos a presentar algunas implementaciones circuitales de biestables, ya sea
a base de puertas lógicas genéricas o bien mediante transistores MOS. Para ello estudiaremos en
primer lugar una estructura básica de referencia, a la que llamaremos biestable SR, a partir de la cual
es posible construir en forma de mejoras o ampliaciones otros tipos de biestable, incluyendo diversas
modalidades de sincronización.

6.4.1 Biestable SR asíncrono

Consideremos el circuito de la figura 6.36.a, compuesto simplemente por dos puertas NOR. El
análisis de este circuito requiere tomar algunas precauciones: los lazos de realimentación hacen que
los valores a la salida, QA y QB, sean a su vez entradas, lo que genera una serie de recurrencias que,
mezcladas con los retardos de las puertas, conviene tener en cuenta.

a) b)
R R qA
QA QA

QB QB
S S qB

Figura 6.36 a) Circuito básico propuesto. b) Esquema propuesto para el análisis

Una forma de enfocar este análisis es la apuntada en la figura 6.36.b, donde se supone que la
respuesta de las puertas NOR es instantánea y que el retardo de dichas puertas se concentra en los
buffers puestos entre sus salidas y las del circuito. De esta manera podemos considerar qA y qB como
funciones lógicas de R, S, QA y QB, y que, después de un cierto retardo, qA y qB se convierten
respectivamente en los valores siguientes de QA y QB, que a su vez generan nuevos valores de qA y
qB, etc.

Si por ejemplo suponemos R=0, S=1 y aplicamos el tipo de análisis acabado de sugerir, llegaremos a
la conclusión de que, cualesquiera que fueran los valores iniciales de QA y QB, sus valores finales se
estabilizan en QA=1, QB=0. El resultado simétrico se obtiene para R=1, S=0: las salidas acaban

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 245
________________________________________________________________________________

estabilizándose en los valores QA=0, QB=1. Asimismo, para R=S=1 las salidas se estabilizan en los
valores QA=QB=0.

La situación más curiosa se produce para la combinación de entrada R=S=0, que conduce al resultado
intermedio q A = QB , q B = QA , resultado nada conflictivo si los valores iniciales de QA y QB son
diferentes (en este caso estos valores iniciales permanecen inalterados), pero que lleva a que las
salidas del circuito oscilen indefinidamente entre "0" y "1" si los valores iniciales de QA y QB son
iguales.

Una consecuencia de lo anterior es que la aplicación de la combinación de entrada R=S=0 tras haber
aplicado R=S=1 conduce irremisiblemente al circuito a la inestabilidad. Por esta razón la
combinación de entrada R=S=1 debe ser evitada cuando se pretenda utilizarlo.

R
Q S R Q+
R 0 0 Q
R Q Q
0 1 0
S S Q Q 1 0 1
Q 1 1 -
S

Figura 6.37 Biestable SR asíncrono, circuito equivalente y tabla de la función de


transición de estados

Aplicando la restricción sugerida es fácil interpretar el funcionamiento del circuito como el de un


biestable, denominado SR (ver figura 6.37) con dos entradas y una salida (directa y complementada)
que coincide con el estado. Al hacer R=0 y S=1 (orden de set o puesta a "1") la salida acaba tomando
el valor Q=1, valor que se conservará hasta que en la entrada aparezca la combinación R=1, S=0
(orden de reset). La combinación R=S=0 no modifica el valor de la salida. Recordemos finalmente
que la combinación R=S=1 debe ser evitada.

Ejercicio 6.8

La figura 6.38 presenta una alternativa de realización de un biestable asíncrono, esta vez a nivel
de layout. Se pide obtener los esquemas equivalentes a nivel de transistores y a nivel de puertas.
Estudiar su comportamiento como biestable, a imagen del desarrollo hecho para el RS, en

© los autores, 1998; © Edicions UPC, 1998.


246 Diseño digital
________________________________________________________________________________

función de las entradas A y B. ¿Existe alguna combinación que sea necesario prohibir? Compare
su funcionamiento con el de un biestable RS.

VDD

A B

Q Q

VSS

Figura 6.38 Layout de un biestable asíncrono

_________________________________________________________________________________

6.4.2 Biestables síncronizados por nivel

El biestable SR presentado en el apartado anterior es claramente un circuito asíncrono, puesto que una
variación en el valor de alguna de sus entradas provoca siempre la reacción de éste. Ahora bien, es
sencillo introducir una sincronización por nivel sin más que realizar el producto lógico de cada
entrada con una señal de reloj. El circuito resultante se muestra en la figura 6.39, donde resulta fácil
ver que cuando CLK=0, S ⋅ CLK = R ⋅ CLK = 0 , es decir, la estructura de puertas NOR tiene entradas
"0", por lo cual conserva el valor anterior de Q (memorización). En el caso contrario, es decir cuando
CLK=1, las entradas de la estructura NOR coinciden con S y R y el circuito actualizará sus salidas de
acuerdo con la tabla de la figura 6.37.

R Q
R R Q Q
CLK CLK
S S Q Q
S Q

Figura 6.39 Biestable SR sincronizado por nivel

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 247
________________________________________________________________________________

Ejemplo 6.12

Obtener, a partir de la estructura de un biestable SR activo por nivel, otro de tipo D. Observando
la tabla de funcionamiento del biestable SR (figura 6.37), para obtener un biestable D a partir de
un SR sólo hay que forzar que los valores de las entradas sean siempre contrarios, cosa que puede
hacerse utilizando un inversor (ver figura 6.40).

R S R Q+
Q
0 0 Q D Q+
0 1 0 0 0
1 0 1 1 1
D Q 1 1 -
CLK S

Figura 6.40 Biestable D sincronizado por nivel o latch obtenido a partir de un SR

Una aplicación habitual de este tipo de biestable D es "cazar" un bit (con CLK=1) y mantenerlo
después durante un tiempo arbitrario bloqueando el reloj (CLK=0), motivo por el que suele
denominársele latch (cerrojo).
_________________________________________________________________________________

Ejercicio 6.8

Compruebe que el esquema propuesto en la figura 6.41 muestra la realización de un biestable JK


a partir de un SR (sincronizados ambos por nivel).

R
K Q
CLK
J Q
S

Figura 6.41 Biestable JK sincronizado por nivel obtenido a partir de un SR

_________________________________________________________________________________

Es posible realizar con facilidad biestables utilizando transistores MOS. Así podemos traducir
directamente los logigramas presentados a puertas nMOS o CMOS; en la figura 6.42 se muestra un
ejemplo concreto de biestable D realizado con tecnología nMOS.

© los autores, 1998; © Edicions UPC, 1998.


248 Diseño digital
________________________________________________________________________________

Q Q

CLK
D CLK
D

Figura 6.42 Biestable D realizado mediante puertas nMOS

Otra posibilidad a contemplar en la realización de biestables, ésta de especial interés si se trabaja con
tecnología CMOS, es recurrir a estructuras hechas a base de puertas de transmisión e inversores. La
figura 6.43 muestra otro ejemplo de biestable sincronizado por nivel.

D Q

CLK Q

Figura 6.43 Biestable D realizado mediante tecnología CMOS

Digamos, para finalizar, que es frecuente la existencia de entradas asíncronas adicionales en


biestables síncronos. Estas entradas permiten cargar un valor determinado ("0" o "1") de forma
inmediata e independiente del reloj y de las entradas síncronas. Así, por ejemplo, el biestable D de la
figura 6.44 dispone de una entrada asíncrona de "puesta a 0" (clear), cuyo efecto se ilustra en el
cronograma adjunto: mientras esta señal está activada el biestable está bloqueado en el valor "0",
mientras que cuando se desactiva el biestable evoluciona de acuerdo con D y CLK (funcionamiento
síncrono).

CLK
D
Q Clear
CLK D
Q
Q

Clear
Intervalos de
funcionamiento asíncrono
Figura 6.44 Biestable D con entrada asíncrona de puesta a "0" y reloj ideal

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 249
________________________________________________________________________________

Ejercicio 6.9

Modifique la estructura de la figura 6.44 para añadir al biestable D una entrada asíncrona que
fuerce un "1" (preset) a la salida.

_________________________________________________________________________________

6.4.3 Biestables sincronizados por flanco

La realización de un biestable sincronizado por flanco es viable utilizando la estructura denominada


master-slave, que consta de dos etapas biestables conectadas en cascada y sincronizadas por nivel con
señales de reloj complementarias. La figura 6.45 muestra la implementación de un biestable D
sincronizado por flanco descendente, que consta de un biestable tipo D conectado a un biestable tipo
SR.

D D
Q S Q Q
D D Q Q
Q R Q Q
Clock Q Q
Clock

Figura 6.45 Ejemplo de estructura master-slave: biestable D sincronizado


por flanco descendente

Nótese que cuando el reloj está a "1" el primer biestable (master) actualiza su contenido de acuerdo
con el valor de la entrada D, maniobra que no afecta al segundo biestable (slave) hasta que el reloj
pase a "0", momento en el que éste también se actualizará, de forma que globalmente el circuito se
actualiza de acuerdo con el valor de D sólo cuando el reloj ha pasado de "1" a "0", es decir, cuando se
produce un flanco descendente.

La figura 6.46 muestra el cronograma de funcionamiento del circuito de la figura 6.45 para una
posible evolución de la entrada D a partir de los valores iniciales R=1 y Q=S=0. Allí puede
observarse el efecto recién comentado: el primer biestable actúa de acuerdo con la entrada cuando
CLK=1 y se inhibe para CLK=0, mientras que el segundo biestable actúa de acuerdo con la salida del
primero para CLK=0 y se inhibe para CLK=1. El efecto global (observando únicamente las señales
CLK, D y Q) es claramente el de un biestable D (Q+=D) sincronizado por flanco descendente.

© los autores, 1998; © Edicions UPC, 1998.


250 Diseño digital
________________________________________________________________________________

CLK

Figura 6.46 Cronograma de funcionamiento de la estructura master-slave de


la figura 6.45. La referencia de sincronización se ha indicado con una línea
vertical continua para el primer biestable y a trazos para el segundo

Cambiando el primer biestable sincronizado por nivel en la figura 6.45 por otro de un tipo distinto
(JK, T) podremos conseguir dicho biestable sincronizado por flanco de bajada. Si se desea
sincronismo por flanco de subida basta con invertir el reloj que controla ambos biestables.

6.5 Cuestiones y problemas

Cuestiones

C6.1 Proponga ejemplos de máquinas secuenciales con un número infinito de estados posibles.

C6.2 Considere la siguiente afirmación: "Dos estados de un sistema secuencial son (i+1)-equivalentes
si son 1-equivalentes y sus estados futuros, para cualquier combinación de variables de entrada, son i-
equivalentes". Justifíquela y relaciónela con el método de minimización del número de estados
propuesto.

C6.3 Compare una descripción de Moore con una de Mealy para el mismo sistema secuencial. ¿Cuál
de las dos debe tener más estados y por qué? Sugerencia: analice un sistema particular (detector de
secuencia binaria) y luego generalice el resultado.

C6.4 A partir de la respuesta a la cuestión anterior, esboce un método de transformación de máquinas


de Mealy en máquinas de Moore. (El caso contrario no tiene interés por ser la descripción de Moore
un caso particular de la de Mealy).

C6.5 Dibuje el cronograma de salida de los sistemas detectores de secuencia del ejemplo 6.5, cuando
la entrada es exactamente la secuencia a detectar. Relacione el hecho de que un sistema de Moore
"filtre" las variaciones de las entradas no síncronas con el reloj, con el retardo de un período de reloj
observado entre las salidas de ambos sistemas.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 251
________________________________________________________________________________

C6.6 Para que un registro de estado, en una implementación canónica de un sistema secuencial,
funcione correctamente, existen unas restricciones temporales, que se concretan en la necesidad de
mantener su entrada estable desde un cierto tiempo antes de la señal de reloj (tiempo de set-up) y
mantenerla estable durante un cierto tiempo depues de ésta (tiempo de hold), tal como se ve en la
figura.

Ck

t
S+

t
tSU tH

Discuta qué variaciones deberemos introducir en los razonamientos de temporización del ejemplo
6.9 para tener estos datos en cuenta.

C6.7 Implemente un biestable tipo T a partir de un JK y puertas lógicas. Repita la cuestión partiendo
de un biestable D.

C6.8 Implemente un biestable tipo JK a partir de un T y puertas lógicas. Repita la cuestión partiendo
de un biestable D.

C6.9 Imagine un biestable T asíncrono. Dibuje su respuesta temporal cuando la entrada T vale 1.
¿Sugiere esto alguna utilidad práctica?

C6.10 En un biestable RS asíncrono la combinación de entradas 11 es potencialmente peligrosa


cuando va seguida de la 00, según los razonamientos del apartado 6.4.1. Suponga que una de las dos
puertas NOR que lo componen tiene un retardo apreciablemente superior a la otra. Discuta si este
hecho resuelve la peligrosidad potencial de la combinación de entrada 11.

C6.11 Compruebe, realizando el cronograma, que el siguiente logigrama corresponde a un biestable


tipo D sincronizado por flanco de bajada. Repita el cronograma considerando que la señal Ck está
ligeramente retrasada respecto a Ck. ¿Afecta esto al funcionamiento del biestable?

D Q

Ck Ck
Ck Ck

© los autores, 1998; © Edicions UPC, 1998.


252 Diseño digital
________________________________________________________________________________

Problemas

P6.1 Describa a través de su diagrama de estados y su tabla de transiciones un sistema secuencial con
dos entradas, X e Y, una salida, Z, y 8 estados posibles.

S ∈{0,1, 2, 3, 4, 5, 6,7} S + = (S + X (1 − 2Y ))
MOD8
1 si ( X = 1,Y = 0, S = 7) o (X = 1, Y = 1, S = 0)
X,Y , Z ∈ {0,1} Z =
0 en otro caso

P6.2 Proponga un diagrama de estados para un sistema secuencial síncrono detector de secuencias
binarias de longitud 4 palindrómicas (es decir, simétrica respecto al centro de la secuencia).

P6.3 Dada la descripción a nivel de tabla de transiciones del siguiente sistema secuencial síncrono,
encuentre otra descripción equivalente con el mínimo número de estados posibles.

S+, z(x1x0)
S 00 01 10 11
A G,a F,b C,c D,a
B E,a H,b C,c G,a
C F,b C,a A,b E,c
D F,c C,c D,c E,b
E B,c C,c G,c D,b
F G,a H,b C,c E,a
G F,c C,c G,c D,b
H D,a F,b D,c G,a

P.6.4 El diagrama de estados de la figura siguiente corresponde a un sistema secuencial síncrono.


Describirlo a través de otro diagrama de estados equivalente, con el mínimo número de estados
posible.

0/0
A 1/0

B 1/0 C
0/0
1/0
0/0

1/1 1/1
D 1/1 E
0/0
F
0/0 0/0

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 253
________________________________________________________________________________

P6.5 Para el sistema del problema anterior, y supuesto un estado inicial E, encuentre la secuencia de
salidas cuando la de entrada es la indicada en el cronograma.

Ck

P6.6 Un sistema secuencial síncrono se describe mediante la siguiente tabla:

S+ (x1x0)
S 00 01 10 11 z
S0 S0 S3 S1 S2 0
S1 S0 S2 S0 S2 1
S2 S1 S2 S0 S0 1
S3 S2 S0 S3 S1 0

¿Se trata de una máquina de Mealy o de Moore?. Dibuje su diagrama de estados. Dibuje también
la respuesta temporal cuando las entradas son las del siguiente cronograma y el estado inicial es
S0.

Ck

x1

x0

P6.7 Encuentre la evolución temporal de los dos sistemas de la figura cuando su entrada CE vale 1,
interpretando su salida como un número codificado en binario (X=X2X1X0). Parta del estado en que
las salidas de los tres biestables valen 0. Suponga despreciables los retardos introducidos por los
propios biestables y las puertas. Repita el problema sin despreciar dichos retardos. Razone cuál de
ambos diseños es mejor. ¿Cuál es la evolución cuando CE=0? Dibuje un diagrama de estados para el
sistema.

V DD V DD
CE T T T CE T T T
Q Q Q Q Q Q
Q Q Q Ck Q Q Q
Ck
X0 X1 X2 X0 X1 X2

© los autores, 1998; © Edicions UPC, 1998.


254 Diseño digital
________________________________________________________________________________

P6.8 Analice el siguiente layout. Obtenga su esquema equivalente a nivel de transistores y a nivel de
puertas lógicas. Compruebe que se trata de un biestable de tipo RS sincronizado por nivel.

Clock

VDD

R S

VSS

Q Q

P6.9 El logigrama de la figura corresponde a un biestable JK sincronizado por flanco. Discuta si la


entrada "Asinc" es activa con valor alto o bajo y vea qué valor de salida fuerza cuando es activa.

J
Q

Ck

K Q

Asinc.

El principio de funcionamiento en que se basa la sincronización de este biestable es la diferencia


de retardos de la señal de reloj (Ck) entre los distintos caminos que la llevan a las puertas NOR.
Sabiendo que las puertas NAND recuadradas se diseñan para que tengan un retardo por lo menos
5 veces superior al de cualquier otra puerta del logigrama, vea que efectivamente se comporta
como un biestable JK y compruebe si es activo por flanco de subida o de bajada.

© los autores, 1998; © Edicions UPC, 1998.


Introducción a los sistemas secuenciales 255
________________________________________________________________________________

P6.10 Analice el funcionamiento del siguiente circuito como biestable. Obtenga un circuito
equivalente a nivel de puertas para CK=1 y después hágalo para CK=0. Identifique el tipo de
biestable así como el tipo de sincronización.

V DD

D Q

VSS

CK CK

P6.11 La siguiente implementación corresponde a un biestable activo por flanco. Dibuje el


cronograma de respuesta cuando las entradas tienen la evolución indicada. Nota: los retardos
asociados a las puertas son mucho menores que el período de reloj. ¿Se trata de algún tipo de
biestable conocido?

A Q
B

CLK

Ck

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 257
________________________________________________________________________________

Capítulo 7 Diseño de circuitos secuenciales síncronos

En este capítulo se describirán los métodos básicos de análisis y de diseño de circuitos secuenciales
síncronos. A continuación se presentarán las estructuras o módulos secuenciales de uso más
frecuente, incluyendo un breve inciso referido a las memorias de lectura y escritura.

El capítulo presenta en primer lugar un procedimiento sistemático que permite tanto el análisis como
la síntesis de sistemas secuenciales síncronos en formato canónico, es decir en forma de red
combinacional más biestables. De la misma forma que ocurría en el diseño combinacional, los
módulos secuenciales estándar surgen como respuesta a las necesidades más habituales, y al mismo
tiempo son herramientas que facilitan el diseño de sistemas más complejos; en este capítulo se
presentan los módulos secuenciales más comunes, concretamente los registros, los contadores y los
circuitos lógicos programables, estos últimos de utilización muy extendida en la actualidad.
Finalmente el capítulo realiza una breve incursión en las memorias de lectura/escritura y las
configuraciones de memorización básicas realizadas con transistores MOS.

7.1 Diseño canónico de sistemas secuenciales síncronos

Existen procedimientos sistemáticos y estandarizados para analizar y/o diseñar sistemas secuenciales
síncronos en forma canónica. Como se verá enseguida, estos métodos son utilizables manualmente
siempre que el número de variables no sea excesivo, situación en la cual es preferible recurrir o bien
al diseño no canónico (por ejemplo, el basado en estructuras o módulos estándar) o bien a la ayuda de
herramientas informáticas (diseño asistido por ordenador).

7.1.1 Método sistemático de análisis

Entendemos por análisis el procedimiento que, partiendo de una realización de un sistema lógico
(esquema circuital, logigrama, etc.), conduce al conocimiento de su funcionalidad; en otras palabras,
analizar un circuito lógico supone ser capaz de especificar de forma completa y normalizada su
funcionamiento.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento
informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su
distribución y venta fuera del ámbito de la Unión Europea.
258 Diseño digital
________________________________________________________________________________

n m
x Red z
Combinacional k

q f
r Registro de
estado

CLK Reset

Figura 7.1 Variables en un circuito secuencial síncrono canónico

En este apartado vamos a presentar un procedimiento de análisis aplicable a sistemas secuenciales


síncronos realizados en forma canónica, es decir, como una red combinacional más un conjunto de
biestables sincronizados mediante el mismo reloj (ver figura 7.1). Este método es totalmente
sistemático y se puede esquematizar en los pasos siguientes:

1- Identificación de las variables del sistema. Mediante inspección del circuito, identificar las
variables de entrada (x), de salida (z) y las que caracterizan el estado (q).

2- Identificación de la función (o funciones) de salida z(x,q). Esta función nos permite


conocer el valor de la salida en función de los valores actuales de las entradas y de las
variables de estado. Se puede obtener directamente mediante análisis de la parte combinacional
del circuito.

3- Obtención de las funciones de entrada a los biestables f(x,q). Las entradas a los biestables
del circuito también son función, en general, de las variables de entrada y de estado. Por tanto,
analizando la parte correspondiente del circuito combinacional es posible obtener sus
expresiones.

4- Construcción de las tablas de verdad de las funciones de entrada a los biestables. A partir
de las expresiones algebraicas obtenidas en el paso anterior es inmediato construirlas.

5- Construcción la tabla de verdad de la función de transición de estados q+(x,q). En el paso


anterior hemos obtenido en forma de tabla las funciones de entrada a los biestables. Esta tabla,
juntamente con la de transiciones de los biestables utilizados, permite obtener de forma
inmediata el próximo valor de las variables de estado, con lo que es posible obtener la tabla de
verdad de la función transición de estados.

6- Obtención del diagrama de estados. En el paso anterior se ha obtenido la tabla de la


función transición de estados, mientras que en el paso 2 se había obtenido la de la función de
salida. Con esta información es directa la obtención del diagrama de estados, así como de

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 259
________________________________________________________________________________

cronogramas, e incluso en algunas ocasiones realizar una interpretación de la utilidad del


circuito.

Los dos ejemplos que siguen a continuación ilustran la aplicación de este procedimiento de análisis a
dos casos concretos.

Ejemplo 7.1

Obtenga una especificación del funcionamiento del circuito secuencial de la figura 7.2.

x2

x1 J Q
z
K Q

Clock

Figura 7.2 Circuito secuencial del ejemplo 7.1

Es evidente que se trata de un circuito secuencial síncrono en forma canónica, puesto que consta
de un único biestable (tipo JK, sincronizado por flanco ascendente) y una red combinacional. Por
tanto, aplicaremos el procedimiento sistemático de análisis descrito.

1- Identificación de las variables: El circuito propuesto tiene dos entradas (x1 y x2) una salida
(z), y una variable de estado (la salida del biestable, Q). Luego son posibles cuatro
combinaciones de entrada, dos de salida y dos estados.

2- Identificación de la función de salida: Por inspección del circuito se obtiene que la salida es
función de una de las entradas y de la variable de estado. Una consecuencia de esto es que se trata
de una máquina de Mealy.

z= Q⋅ x 2 + Q ⋅ x 2 = Q ⊕ x 2

3- Obtención de las funciones de entrada a los biestables: Se observa que las funciones de
entrada a los biestables en este caso concreto dependen únicamente de las entradas del circuito y
no de la variable de estado.

J = x 2 x1 K = x 2 x1

4- Tabla de verdad de las funciones de entrada a los biestables: Es Inmediato obtenerla a partir
de las expresiones algebraicas del paso 3.

© los autores, 1998; © Edicions UPC, 1998.


260 Diseño digital
________________________________________________________________________________

J K
Q X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1
0 0 0 0 0 1 0 0 1
1 0 0 0 0 1 0 0 1

5- Tabla de verdad de la función transición de estados: Para escribirla es preciso recordar el


funcionamiento del biestable JK, que mostramos a continuación en forma de tabla de
excitaciones y expresión algebraica.

J K Q+
0 0 Q
Q + = Q J + QK
0 1 0
1 0 1
1 1 Q

Si se conocen los valores de las entradas a los biestables (J, K) en función de los valores de las
entradas (x1, x2) y de la variable de estado (Q) y si también se conoce el valor próximo de la
variable de estado (Q+) en función de Q, J, y K, es fácil obtener una tabla indicando el valor de
Q+ en función de x1, x2 y Q. Esta tabla corresponde a la función de transición de estados.
Podemos integrar en la misma tabla la función de salida, cuya expresión algebraica se obtuvo en
el paso 2.

Q+ , z
Q X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1
0 0, 0 0, 0 1, 1 0, 1
1 1, 1 1, 1 1, 0 0, 0

6- Diagrama de estados: La información contenida en la tabla del paso 5 constituye ya una


especificación completa del funcionamiento del circuito de la figura 7.2, por lo que estrictamente
el análisis puede darse por concluido. Ahora bien, a partir de ese resultado es inmediato obtener
el diagrama de estados del sistema, que se muestra en la figura 7.3.

00/0 10/1 00/1


01/0 0 1 01/1
11/1 10/0
11/0

Figura 7.3 Diagrama de estados del circuito del ejemplo 7.1

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 261
________________________________________________________________________________

Ejemplo 7.2

Obtenga una especificación del funcionamiento del circuito secuencial de la figura 7.4. Indíquese
una posible utilidad del circuito, si las entradas varían a un ritmo muy inferior al del reloj del
sistema.

J1 K1 J 0 K0 CLK
CLK
Q1 Q1 Q0 Q0
OUT
x
1
x z
0

Figura 7.4 Circuito del ejemplo 7.2

Una inspección preliminar de la figura 7.4 permite identificar la parte recuadrada como un
circuito síncrono canónico, por lo que podemos aplicarle el método sistemático de análisis y
realizar las interpretaciones globales a posteriori.

Identificación de las variables: El circuito tiene dos entradas (x1 y x0), una salida (z), y dos
variables de estado (Q1 y Q0). Luego son posibles cuatro combinaciones de entrada, dos de salida
y cuatro estados.

Obtención de la función de salida: Se trata de una máquina de Mealy: la salida es función de las
entradas y de las variables de estado.

z= x1x 0 + x1Q1Q0 + x1x 0 Q1Q0

Obtención de las funciones de entrada a los biestables: En este caso las funciones de entrada a
los biestables dependen únicamente de las variables de estado.

J1 = Q0 K 1 = Q0 J 0 = Q1 K0 = Q1

© los autores, 1998; © Edicions UPC, 1998.


262 Diseño digital
________________________________________________________________________________

Nótese que cada biestable tiene como entradas una misma variable directa y su negada, por lo que
funciona como si fuera de tipo D:

D1 = Q0 D0 = Q1

Tabla de verdad de las funciones de entrada a los biestables: Inmediata a partir de las
expresiones del paso anterior. Nótese que estas funciones son independientes de x1 y x0.

D1 D0
Q1 Q0 X1=X0=0 X1=0 X0=1 X1=1 X0=0 X1=X0=1
0 0 01 01 01 01
0 1 11 11 11 11
1 0 00 00 00 00
1 1 10 10 10 10

Tabla de verdad de la función transición de estados: Para escribirla basta recordar que en un
biestable D el estado siguiente coincide con la entrada actual (Q+=D), por lo que la tabla de
verdad de la función transición de estados será idéntica a la obtenida en el paso anterior, que
reproducimos a continuación añadiendo la función de salida.

(Q1 Q0)+, z
Q1 Q0 X1=X0=0 X1=0 X0=1 X1=1 X0=0 X1=X0=1
0 0 0 1, 0 0 1, 1 0 1, 1 0 1, 1
0 1 1 1, 0 1 1, 1 1 1, 0 1 1, 0
1 0 0 0, 0 0 0, 1 0 0, 0 0 0, 0
1 1 1 0, 0 1 0, 1 1 0, 1 1 0, 0

Diagrama de estados: Inmediato a partir de la tabla anterior. Nótese que la variación de estados
del sistema es automática con el reloj e independiente de las entradas.

00, 0 01 00, 0
01, 1 10, 1 10, 0 01, 1
11, 1 11, 0
00 11
10, 0 10, 1
00, 0 11, 0 11, 0 00, 0
01, 1 10 01, 1

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 263
________________________________________________________________________________

Interpretación: Dado que por una parte la salida OUT es el producto lógico de z y CLK y por
otra las entradas x1 y x0 tienen una variación lenta respecto a CLK, podemos pensar que la
misión del sistema es realizar algún tipo de manipulación de la señal de reloj. Podemos
comprobar esto mediante un cronograma como el de la figura 7.5.

CLK
x1

x0

Q1

Q0

OUT

Figura 7.5 Cronograma del circuito del ejemplo 7.2

El cronograma revela que, mientras la entrada está fija en los valores x1=1 x0=0, el circuito
elimina uno de cada dos pulsos de reloj, quedando la salida como un reloj cuya frecuencia y ciclo
de trabajo son la mitad de los de CLK. Asimismo cuando las entradas están fijas en x1=x0=1 el
circuito elimina tres de cada cuatro pulsos de reloj, siendo la frecuencia y el ciclo de trabajo de la
salida la cuarta parte de los de CLK.

Puede completarse esta interpretación comprobando que, de acuerdo con el diagrama de estados
o la tabla de verdad del circuito, se tiene OUT=0 (o sea z=0) para x1=x0=0 y OUT=CLK (o sea
z=1) para x1=0 x0=1. Con esto podemos concluir diciendo que el circuito puede utilizarse como
divisor de frecuencia programable.

_________________________________________________________________________________

Ejercicio 7.1

Analice el sistema secuencial de la figura 7.6. Obtenga su diagrama de estados e interprételo


como un detector de secuencia con 4 posibles entradas. Para la codificación de las entradas dada,
encuentre la secuencia a detectar.

© los autores, 1998; © Edicions UPC, 1998.


264 Diseño digital
________________________________________________________________________________

Q1
T Q Z
x1 Q
x0 x1 x Q0 Q1 S
Q0
T Q 0 0 a 0 0 S1
0 1 b 0 1 S2
Q c S3
x0 1 0 1 0
Clk 1 1 d 1 1 S4

Figura 7.6 Sistema y codificaciones del ejercicio 7.1

_________________________________________________________________________________

7.1.2 Método sistemático de síntesis

El método sistemático de síntesis de circuitos secuenciales síncronos que vamos a presentar es el


inverso del método de análisis descrito en el apartado anterior y, por tanto, permite obtener un
circuito síncrono que, mediante biestables y una red combinacional, implementa la especificación
propuesta.

El método consta de tres fases: I) obtención de una especificación normalizada, II) traducción de la
especificación a nivel binario (variables lógicas), y III) obtención y optimización de las funciones de
entrada a los biestables y de salida del sistema. A continuación se indican con detalle los pasos
concretos a seguir:

1- Identificar las entradas, las salidas y los estados del sistema. Dicha identificación debe
hacerse a partir de una primera especificación del funcionamiento del sistema. Con frecuencia
suele ocurrir que la especificación inicial sea verbal o, en general, no normalizada, por lo que
identificar los datos con los que tiene que trabajar el sistema no es siempre inmediato.

2- Construir la tabla de verdad de las funciones de salida y de transición de estados (o su


equivalente en forma de diagrama de estados). Una vez completado este paso se dispone de
una especificación normalizada (basada en el estado) del sistema. Si se desea realizar un
diseño compacto, es conveniente aplicar el método de minimización del número de estados
presentado en el capítulo 6.

3- Codificar las variables del sistema. Es decir, si no lo están ya, traducir a variables lógicas
los conjuntos de entradas, salidas y estados. En ausencia de restricciones concretas es
recomendable codificar utilizando el menor número posible de bits (recuérdese que para
codificar N informaciones son necesarios como mínimo n bits, cumpliéndose que 2n•N). Con
esto la especificación del sistema estará hecha a nivel binario.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 265
________________________________________________________________________________

4- Escoger el tipo de biestables a utilizar. Es evidente que la implementación circuital será


distinta en función del tipo de biestables utilizados.

5- Construir la tabla de verdad de las funciones de entrada a los biestables. Se trata de seguir
el mismo procedimiento que en el caso de análisis pero en sentido contrario: a partir de la
tabla de verdad de la función transición de estados q+(x,q) y de la tabla de excitaciones de los
biestables, obtener los valores f(q, x) que es necesario introducir en las entradas de éstos.

6- Una vez obtenida la tabla de verdad de las funciones de entrada a los biestables, es
interesante escribir sus expresiones algebraicas y, eventualmente, simplificarlas. Lo mismo
suele hacerse con las funciones de salida. En ambos casos son aplicables los métodos de
simplificación presentados en capítulos anteriores.

7- Finalmente, y de acuerdo con las expresiones obtenidas en el paso anterior, construir el


esquema lógico resultante.

Al igual que en el caso de análisis, es pertinente ilustrar este método de síntesis con la ayuda de
algunos ejemplos concretos.

Ejemplo 7.3

Diseñe un contador binario módulo 5 (capaz de dar a su salida valores entre 0 y 4, en código
binario) síncrono. El contador tiene dos posibles entradas, "C" (contar) y "NC" (no contar), de
manera que cuando la entrada es "C" el valor de la salida se incrementa con cada período de reloj
siguiendo el ciclo 0,1,2,3,4,0,1... y que cuando toma el valor "NC" la salida permanece fija en el
último valor alcanzado.

Evidentemente es posible utilizar el método de síntesis descrito. Además, como veremos en


seguida, en este caso es fácil obtener una especificación normalizada del funcionamiento del
sistema.

1- Identificación de variables: La entrada sólo puede tomar dos valores, concretamente


x ∈{C, NC}. Por su parte la salida puede tomar hasta 5 posibles valores z ∈{0,1,2,3,4}. En lo
que respecta a los estados internos, podemos optar por un conjunto de estados Si, siendo "i" el
valor hasta el cual ha llegado el sistema contando. Este criterio implica que habrá tantos estados
posibles como salidas: s ∈{s0 , s1 , s2 , s3 , s4 }.

2- Diagrama de estados: Podemos obtenerlo "traduciendo" el enunciado a términos de los


conjuntos de entradas, salidas y estados definidos en el paso anterior, tal como muestra la figura
7.7. El diagrama muestra claramente el funcionamiento del contador. Nótese que se trata de una
máquina de Moore en la que cada estado implica una salida diferente, por lo que su número, de
acuerdo con el método de minimización, ya es mínimo.

© los autores, 1998; © Edicions UPC, 1998.


266 Diseño digital
________________________________________________________________________________

NC NC NC NC NC

S 0 /0 C S 1/1 C S 2 /2 C S 3 /3 C S 4 /4

Figura 7.7 Diagrama de estados de un contador binario módulo 5

3- Codificación de las variables: Como sólo hay dos posibles entradas basta con una variable
lógica (x) para codificarlas. Para los estados Si podemos optar por codificar el valor "i" en
binario, para lo cual necesitaremos tres variables de estado (q2, q1, q0). Como hay tantos estados
como salidas, parece adecuado escoger la misma codificación para las salidas que para los
estados, por lo que harán falta tres variables (z2, z1, z0). Con esto las funciones de salida son
triviales: z2=q2, z1=q1, z0=q0.

Salida o z z z
2 1 0
estado q2 q 1 q 0
S 0 /0 0 0 0 Entrada x
S 1 /1 0 0 1
NC 0
S 2 /2 0 1 0
C 1
S 3 /3 0 1 1
S 4 /4 1 0 0

Figura 7.8 Codificación de las variables del contador

La codificación realizada permite escribir la tabla de funcionamiento del sistema (funciones de


salida y de transición de estados) en términos de variables lógicas. Obsérvese que, al tratarse de
un contador módulo 5, se supone que los tres últimos estados/salidas de la tabla no se darán
nunca y que, por tanto, las transiciones a partir de estos tres estados son indiferentes, aspecto que
se ha recogido en la tabla.

Q2+ Q1+ Q0+


Q2 Q1 Q0 x=0 x=1 z 2 z1 z0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 1 0 0 1 0 1 0 0 0 1
0 1 0 0 1 0 0 1 1 0 1 0
0 1 1 0 1 1 1 0 0 0 1 1
1 0 0 1 0 0 0 0 0 1 0 0
1 0 1 X X X X X X X X X
1 1 0 X X X X X X X X X
1 1 1 X X X X X X X X X

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 267
________________________________________________________________________________

4- Elección de los biestables: Escogemos de forma arbitraria biestables tipo T. Como tenemos
tres variables de estado hacen falta tres biestables. Dado que la salida del contador coincide con
su estado, el esquema básico del circuito será de la forma dada en la figura 7.9, donde sólo falta
realizar las funciones de entrada a los biestables T2, T1, y T0 para completarlo.

Q2
T2 T Q z2
Q
Q1
T1 T Q z1
Clock Q
Q0
T0 T Q z0
Q

Figura 7.9 Organización básica del contador binario módulo 5

5- Tabla de las funciones de entrada a los biestables: Conociendo la tabla de la función


transición de estados y el funcionamiento de un biestable T, es inmediato construir la tabla de las
funciones de entrada de los biestables: recuérdese que un biestable T cambia de estado con T=1
(Q+=QΗT); por tanto, si el valor futuro de una variable de estado debe modificarse con respecto
al actual es necesario un "1" a la entrada del biestable correspondiente. La tabla resultante se
muestra a continuación.

T2 T1 T0
Q2 Q1 Q0 x=0 x=1
0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 1 1
0 1 0 0 0 0 0 0 1
0 1 1 0 0 0 1 1 1
1 0 0 0 0 0 1 0 0
1 0 1 X X X X X X
1 1 0 X X X X X X
1 1 1 X X X X X X

6- Simplificación de las funciones: Se trata de 3 funciones incompletamente especificadas (T2,


T1, T0) de las mismas 4 variables (x, Q2, Q1, Q0). Buscando conseguir una implementación
compacta conviene simplificar dichas funciones. Al aplicar el método de Karnaugh se obtiene el
resultado indicado a continuación.

© los autores, 1998; © Edicions UPC, 1998.


268 Diseño digital
________________________________________________________________________________

T 2 = xQ2 + xQ1Q0 T1 = xQ0 T 0 = xQ2

7- Esquema lógico resultante: A partir de las expresiones algebraicas del paso anterior se obtiene

x T Q z2
Q

T Q z1
Q

T Q z0
Clock Q

Figura 7.10 Esquema lógico del contador binario módulo 5

Ejemplo 7.4

Un determinado sistema secuencial ha sido implementado mediante el circuito de la figura 7.11.


Hállese la especificación de dicho sistema en forma de diagrama de estados mínimo y, si ello es
posible, una implementación más sencilla hecha con biestables D y puertas lógicas.

q1
J Q

x K Q
CLK
z
J Q

K Q
q0

Figura 7.11 Circuito inicial del ejemplo 7.4

El circuito de la figura 7.11 es una máquina de Mealy con una entrada (x), una salida (z) y dos
variables de estado (q1 y q0). Un análisis de la parte combinacional permite obtener las siguientes
expresiones algebraicas.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 269
________________________________________________________________________________

J1 = xq1 J0 = x
z = x ⊕ q0
K1 = x K 0 = xq0

Las expresiones anteriores, junto con el conocimiento de la funcionalidad de los biestables JK,
permiten obtener sucesivamente las tablas de verdad de las funciones de entrada a los biestables y
de las funciones de salida y de transición de estados, que mostramos a continuación.

x=0 x=1 + +
q1 q0 , z
q1 q0 J1 K1 J0 K0 J1 K1 J0 K0 x=0 x=1
0 0 0 0 0 0 0 1 1 0 0 0, 0 0 1, 1
0 1 0 0 0 0 0 1 1 1 0 1, 1 0 0, 0
1 0 0 0 0 0 1 1 1 0 1 0, 0 0 1, 1
1 1 0 0 0 0 1 1 1 1 1 1, 1 0 0, 0

En la figura 7.12 se muestra la tabla de verdad y el diagrama de estados del circuito analizado,
tras hacer una decodificación de los estados para simplificar la notación.

1/1
S +, z
S A B
x=0 x=1 0/0 1/0 0/1
A A, 0 B,1
B B, 1 A,0
C C, 0 B,1
D D, 1 A,0 C 1/1 1/0 D
0/0 0/1

Figura 7.12 Tabla de verdad y diagrama de estados del circuito de la figura 7.11

Una forma de simplificar la implementación del sistema es ver si es viable hacerla con menos
biestables, es decir, ver si se puede reducir el número de estados. La aplicación del método de
minimización da lugar a la serie de particiones siguiente, que indica que en realidad basta con dos
estados para especificar el funcionamiento del sistema:

p0 = (A, B,C, D) 
 A ≡ C
p1 = (A,C) (B, D) ⇒  
 B ≡ D
p =p 
2 1

A partir de aquí podemos rediseñar el sistema aplicando el método sistemático de síntesis


utiizando un biestable tipo D. El circuito resultante, mucho más sencillo que el inicial, se muestra
en la figura 7.13.

© los autores, 1998; © Edicions UPC, 1998.


270 Diseño digital
________________________________________________________________________________

q+ , z q+ , z D
q x=0 x=1 q x=0 x=1 x=0 x=1
A A, 0 B,1 0 0, 0 1, 1 0 1
B B, 1 A,0 1 1, 1 0, 0 1 0

D=z =x q

D q
D Q
z
Clock Q
x

Figura 7.13 Tabla de verdad y circuito final del ejemplo 7.4

_________________________________________________________________________________

Ejercicio 7.2

Para el diagrama de estados de la figura 7.14, proponga un diseño con biestables JK.

1/0 1/0

0/1 A B C 1/1
0/0 0/0

Figura 7.14. Diagrama de estados del ejercicio 7.2

Si el diseño propuesto contempla estados que no se dan nunca, realice el análisis de dicho
sistema, y complete el diagrama de estados.
_________________________________________________________________________________

7.2 Módulos secuenciales

En el apartado anterior hemos presentado métodos que permiten analizar y diseñar sistemas
secuenciales síncronos cualesquiera. Sin embargo es evidente que dichos métodos son plenamente
operativos sólo cuando el número de estados y/o variables es reducido. Al igual que ocurría en el caso
de sistemas combinacionales, algunos circuitos de utilización más frecuente se han estandarizado y
existen como módulos específicos ya sea como circuitos integrados comerciales MSI, LSI o bien
formando parte de librerías para entornos de diseño custom VLSI. Los más característicos de entre
estos módulos secuenciales son los registros y los contadores, que serán el objetivo de los próximos
apartados.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 271
________________________________________________________________________________

Un aspecto adicional que conviene tener presente es que la existencia de estos bloques estandarizados
permite acometer diseños de mayor complejidad que los que serían abordables razonablemente
mediante el procedimiento de síntesis presentado en la sección anterior.

7.2.1 Registros

Un registro es un circuito secuencial cuya principal función es almacenar un vector de n bits durante
un tiempo indefinido. La figura 7.15 presenta el esquema genérico de un registro de n bits
sincronizado por flanco ascendente.

I
I n-1
... I 1 I0

CLK Registro
RESET
LOAD de n bits
...
Q n-1 Q1 Q0

Figura 7.15 Esquema de un registro de n bits

La descripción del funcionamiento de este registro gira en torno a la entrada LOAD (carga en
paralelo). Así, si LOAD=0 el registro mantiene inalterado su contenido tras el flanco ascendente de la
señal de reloj Qi+=Qi (con 0<i<n-1), mientras que para LOAD=1 tras el próximo flanco ascendente
del reloj los valores de las entradas Ii se cargan en el registro: Qi+=Ii. Una especificación de esta
funcionalidad "síncrona" sería:

 I(i) si LOAD(i) =1
Q + = Q(i + 1) = 
Q(i ) si LOAD(i )= 0

Por otro lado los registros suelen disponer de una entrada adicional de reinicialización (CLEAR o
RESET) que permite cargar de forma asíncrona, es decir, inmediata e independientemente del reloj,
un valor determinado (habitualmente Qi=0). En consecuencia, el funcionamiento síncrono antes
descrito debe entenderse como el que se produce para el valor de la señal RESET=0.

Una posible realización del registro de la figura 7.15, basada en la utilización de biestables D con
entrada asíncrona de reset y multiplexores de dos canales, se propone en la figura 7.16 para n=4 bits.
Con cada flanco ascendente del reloj el valor presente a la entrada Di de cada biestable se transfiere a
su salida; así, para LOAD=1 el valor que se transfiere es Qi+=Ii (carga en paralelo), mientras que para
LOAD=0 el valor transferido es Qi+=Qi (memorización).

© los autores, 1998; © Edicions UPC, 1998.


272 Diseño digital
________________________________________________________________________________

I3 I2 I1 I0

1 0 1 0 1 0 1 0
LOAD s MUX s MUX s MUX s MUX
y y y y

CLK
D D D D
RS RS RS RS
Q Q Q Q
RESET
Q3 Q2 Q1 Q0

Figura 7.16 Realización de un registro mediante biestables D

Ejemplo 7.5

Considere la alternativa de realización de un registro propuesta en la figura 7.17, y compárela con


la de la figura anterior.

I3 I2 I1 I0
CLK
LOAD
D D D D
RS RS RS RS
Q Q Q Q
RESET
Q3 Q2 Q1 Q0

Figura 7.17. Realización alternativa del registro de la figura 7.15

Un primer análisis indica que el funcionamiento del registro coincide con el del anterior. Es decir,
si LOAD=0 no hay flancos de subida a la entrada de reloj de los biestables, y estos mantienen su
estado. En el caso de que LOAD=1, cada flanco de reloj fuerza que el estado de cada biestable se
actualice al valor de la entrada correspondiente.

Es obvio que la circuitería implicada en la realización de este segundo diseño es mucho menor
que en el primero, siendo esta una clara ventaja. Por otro lado, un análisis más pormenorizado
nos permitirá apreciar las diferencias de comportamiento de ambas realizaciones. Si observamos
el cronograma de la figura 7.18

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 273
________________________________________________________________________________

CLK
t

LOAD
t
CLK .
LOAD Transición Transición no
sincronizada sincronizada t
Qi
t

Figura 7.18. Cronograma de la respuesta del registro de la figura 7.17

Podemos observar claramente en el cronograma que la señal de LOAD no se comporta


sincronizada por el flanco ascendente del reloj, sino por nivel alto. Este puede llevar, como es el
caso de la segunda mitad del cronograma, a una carga en paralelo indeseada (LOAD=0 en los dos
flancos de reloj de esta parte del cronograma). Hay que considerar también que incluso en el caso
de funcionamiento correcto, en la primera parte del cronograma, la puerta AND añade un retardo
a la señal de reloj que puede provocar problemas al conectar este registro a otros bloques
sincronizados con el mismo reloj.
_________________________________________________________________________________

Ejercicio 7.3

Proponga un diseño para un registro con una señal de carga LOAD y una de inicialización
RESET activa a nivel bajo, ambas síncronas. En el caso de que las dos señales sean activas, debe
predominar la de RESET.
_________________________________________________________________________________

7.2.2 Registros de desplazamiento

Existen registros en los cuales es posible no sólo cargar y memorizar la información, sino también
transferirla entre biestables vecinos. Estos registros son llamados de desplazamiento.

Existen distintas maneras de organizar la introducción y/o el acceso a la información almacenada en


dichos registros; concretamente es posible organizar la introducción de datos en serie (uno detrás de
otro por la misma línea) o en paralelo (n datos a la vez por n líneas diferentes), y otro tanto con su
acceso (salida en serie o en paralelo), con lo que tenemos hasta cuatro posibles variantes de formato
entrada/salida.

En la figura 7.19 se muestra, a título de ejemplo, la realización mediante biestables y puertas de un


registro de desplazamiento con entrada en serie y salida en paralelo. El análisis del funcionamiento de

© los autores, 1998; © Edicions UPC, 1998.


274 Diseño digital
________________________________________________________________________________

este circuito es inmediato: con cada flanco ascendente del reloj los bits se desplazan un lugar a la
derecha: (Q3+,Q2+,Q1+,Q0+)=(IN,Q3,Q2,Q1).

Q3 Q2 Q1 Q0

IN D D D D
Q Q Q Q
CLK RS RS RS RS
RESET

Figura 7.19 Realización mediante biestables D de un registro de desplazamiento


con entrada en serie y salida en paralelo

_________________________________________________________________________________

Ejercicio 7.4

Diseñe un detector de secuencia que active su única salida al haber recibido en su entrada la
secuencia 1011. Realízelo mediante el procedimiento general y proponga un diseño alternativo
utilizando un registro de desplazamiento. Compare ambas realizaciones.
_________________________________________________________________________________

Ejemplo 7.6

Analice las modalidades de funcionamiento del registro serie/paralelo de la figura 7.20. Proponga
un diseño alternativo que permita al registro, adicionalmente, realizar cargas síncronas en
paralelo o bloquear el desplazamiento. Proponga también una segunda variante que permita
realizar cargas paralelo asíncronas.

IR IL
1 0 1 0 1 0 1 0
R/L s MUX s MUX s MUX s MUX
y y y y

CLK
D D D D
Q Q Q Q

Q3 Q2 Q1 Q0

Figura 7.20 Registro de desplazamiento del ejemplo 7.6

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 275
________________________________________________________________________________

Salta a la vista el carácter modular del circuito (la misma estructura se repite cuatro veces), muy
similar al de la figura 7.16, por lo que su análisis se puede particularizar fácilmente para cada bit.
Así, podemos ver que para R / L = 1 el desplazamiento con cada flanco ascendente de reloj es
hacia la derecha (con entrada IR): (Q3+,Q2+,Q1+,Q0+)=(IR,Q3,Q2,Q1), mientras que para
R / L = 0 el desplazamiento es hacia la izquierda (con entrada IL): (Q3+,Q2+,Q1+,Q0+)=
(Q2,Q1,Q0,IL). Es decir, se trata de un registro de desplazamiento serie/paralelo bidireccional
sincronizado por flanco ascendente.

Para incluir más posibilidades síncronas de funcionamiento, como hacer entrada en paralelo o
detener el desplazamiento, podemos mantener la estructura básica compuesta por un multiplexor
más un biestable para cada bit, ampliando el tamaño del multiplexor de forma que admita estas
nuevas variantes (ver figura 7.21).

Qi-1Q i+1
Ii
+
C1 C0 Qi Función
C1 1 3 2 1 0
C0 MUX
0 y 0 0 Qi Parar desp.
0 1 Q i+1 Desp. derecha
CLK
1 0 Q i-1 Desp. izquierda
D
1 1 Ii Carga paralelo
Q

Qi

Figura 7.21 Célula básica de un registro de desplazamiento bidireccional con


carga paralelo síncrona

Finalmente, para obtener un registro que pueda cargar en paralelo de forma asíncrona podemos
utilizar biestables D con puesta a "1" (Preset) y a "0" (Reset) asíncrona y añadir la lógica
combinacional necesaria para evitar las órdenes contradictorias (ver figura 7.22).

Qi+1 Qi-1 Función


LOAD I i PR RS
1 0 0 X 0 0 Funcionamiento síncrono
R/L s MUX 1 1 1 0 Preset (salida a "1")
y
1 0 0 1 Reset (salida a "0")
CLK
D
LOAD RS PR LOAD
Ii Q Ii
Qi

Figura 7.22 Célula básica de un registro de desplazamiento bidireccional con carga paralelo asíncrona

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


276 Diseño digital
________________________________________________________________________________

Ejercicio 7.5

Diseñe, con la misma filosofía del ejemplo anterior, la célula básica para componer un registro de
desplazamiento con las prestaciones y señales de control descritas en la tabla que sigue.

CLR LD SH L/ R Función Modo


+
0 X X X Reset Qi = 0 asíncrono
+
1 1 X X Carga paralelo Qi = Ii asíncrono
+
1 0 1 X Mantener estado Qi = Qi síncrono
+
1 0 0 1 Desplazar izquierda Qi = Qi−1 síncrono
+
1 0 0 0 Desplazar derecha Qi = Qi+1 síncrono

_________________________________________________________________________________

7.2.3 Contadores

Un contador es un bloque secuencial cuya función básica es presentar, en un determinado código, el


número de impulsos de reloj que se han producido a su entrada.

0 0 0 0

1 1 1 ...
S 0/0 S 1/1 S 2 /2 S p-1/p-1

Figura 7.23 Diagrama de estados de un contador módulo p

La figura 7.23 muestra el diagrama de estados típico de un contador módulo p, donde podemos ver
que se trata de una máquina de Moore: la salida depende únicamente del estado actual (z=f[s]). El
funcionamiento es tal que, mientras la entrada (orden de contar) toma el valor "1", el sistema pasa de
un estado al siguiente a cada impulso de reloj, hasta que después de pasar por el estado "p-1" vuelve
al estado inicial "0". Cuando la entrada vale "0", el contaje se detiene y el sistema permanece en el
último estado alcanzado.

Existen diversas variantes de contador en función de cuál es el código de salida. Así, por ejemplo,
podemos encontrar contadores binarios con 2n estados y n salidas (correspondientes a los valores
entre 0 y 2n-1 codificados en binario), contadores decimales con 10 estados y 4 salidas
(correspondientes a la codificación BCD del estado), contadores en código Gray, etc. También es
usual encontrar distintas variantes de funcionamiento: contadores reversibles (es decir,
contadores/descontadores), contadores con carga en paralelo síncrona o asíncrona, etc.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 277
________________________________________________________________________________

I3 I2 I1 I0

CE Contador CLR
LD módulo 16
CLK TC

Q3 Q 2 Q 1 Q 0

Figura 7.24 Contador binario módulo 16

La figura 7.24 muestra un esquema típico de contador binario módulo 16. En dicho contador se puede
iniciar el contaje desde un estado determinado por el usuario, para ello se dispone de la señal LD
(carga en paralelo) y las entradas Ii; al activar la señal LD y producirse un flanco ascendente del reloj
se carga en las salidas Qi el valor presente en las entradas Ii, valor a partir del cual se continuará el
recuento cuando LD se desactive y se reciban nuevos impulsos de reloj. La entrada CE habilita la
acción de contar: si CE=0 se interrumpe el recuento y el circuito mantiene su último valor Qi+=Qi. La
entrada CLR (clear) permite cargar, de forma asíncrona, el estado Qi=0.

CLK

CE

CLR

Q0

Q1

Q2

Q3

TC

Figura 7.25 Cronograma de funcionamiento de un contador binario módulo 16

El cronograma de la figura 7.25 ilustra el funcionamiento del contador para LD=0 partiendo de una
inicialización producida mediante la activación de la entrada CLR. Nótese que la orden de detener el
recuento CE=0 es atendida únicamente si dura lo suficiente como para coincidir con un flanco
ascendente del reloj.

© los autores, 1998; © Edicions UPC, 1998.


278 Diseño digital
________________________________________________________________________________

Podemos generalizar este comportamiento para un contador binario módulo 2n en las siguientes
ecuaciones para el estado futuro:

 0 si CLR = 1 (asíncrono)
 I si CLR = 0 y LD = 1
S+ = 
 (S + 1)mod 2n si CLR = 0, LD = 0 y CE = 1
 S si CLR = 0, LD = 0 y CE = 0

La salida TC es una indicación de fin de cuenta, y toma el valor "1", como se observa en el
cronograma, sólo cuando Qi=CE=1. Esta salida permite encadenar contadores de forma sencilla, tal
como podemos ver en la figura 7.26, donde se muestra un contador módulo 256 hecho mediante la
conexión de dos contadores módulo 16.

I3 I2 I1 I0 I7 I6 I5 I4

I I I I I I I I
CE CE 3 2 1 0 C CE 3 2 1 0 C CLR
Contador Contador
LD LD módulo 16 LD módulo 16
CLK Q Q Q Q TC Q Q Q Q TC TC
3 2 1 0 3 2 1 0

Q3 Q 2 Q 1 Q 0 Q7 Q 6 Q 5 Q 4

Figura 7.26 Contador binario módulo 256

Obsérvese que al llegar por primera vez el contador de la izquierda (bits menos significativos) al
valor "15" y existir orden de seguir contando (CE=1), TC valdrá "1", con lo que en el siguiente flanco
de reloj el contador de la derecha (bits más significativos), se incrementará una unidad y permanecerá
detenido hasta que, dieciséis períodos de reloj después, el contador de la derecha vuelva a completar
su ciclo, momento en que volverá a incrementarse, y así sucesivamente.

CE
J K J K J K J K
RS RS RS RS CLR
Q Q Q Q
CLK
TC Q3 Q2 Q1 Q0

Figura 7.27 Contador binario módulo 16 realizado mediante biestables JK

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 279
________________________________________________________________________________

La realización de contadores con biestables y puertas lógicas no supone ninguna dificultad especial,
por lo que basta con aplicar el método sistemático de síntesis presentado en este mismo capítulo.
Como ejemplo, la figura 7.27 muestra una posible realización mediante biestables JK y puertas AND
de un contador hexadecimal (es decir, binario módulo 16) sin carga en paralelo. Se deja al lector la
reconstrucción de las etapas de su diseño, así como la comprobación del funcionamiento correcto del
circuito.

Nótese que la modularidad del circuito de la figura 7.27 es evidente y que se trata de una estructura
fácilmente ampliable: no hay más que añadir un biestable y una puerta AND por cada nuevo bit.

A su vez, la figura 7.28 muestra la implementación mediante biestables JK y puertas lógicas estándar
del contador binario módulo 16 descrito en la figura 7.24, manteniendo la filosofía modular de su
estructura.

I3 I2 I1 I0
LD

CE

J K J K J K J K
RS RS RS RS CLR
Q Q Q Q
CLK
TC Q3 Q2 Q1 Q0

Figura 7.28 Realización de un contador hexadecimal con carga en paralelo

A pesar de su aspecto aparentemente complejo, el análisis del circuito de la figura 7.28 es


relativamente sencillo. Para ello podemos evaluar las expresiones algebraicas de las entradas de los
biestables.

J 0 = CE ⋅ LD + I 0 ⋅ LD

K 0 = CE ⋅ LD + I 0 ⋅ LD 
 J = CE ⋅ LD⋅Qi ⋅...⋅Q0 + Ii ⋅ LD
J1 = CE ⋅ LD ⋅Q0 + I1 ⋅ LD  ⇒ i
K i = CE ⋅ LD⋅Qi ⋅...⋅Q0 + Ii ⋅ LD
K1 = CE ⋅ LD ⋅Q0 + I1 ⋅ LD

.... 

Podemos ver que para LD=0 el circuito se comporta exactamente igual que el de la figura 7.27,
mientras que para LD=1 las entradas Ji y Ki de cada biestable toman valores complementarios. En
estas condiciones los biestables JK se comportan como biestables D, que permiten la carga en
paralelo.

© los autores, 1998; © Edicions UPC, 1998.


280 Diseño digital
________________________________________________________________________________

 Ji = I i 
LD =1 ⇒   ⇒ Qi+ = Qi K i + Qi K i = (Qi + Qi )I i = I i
K =
 i i I

Ejemplo 7.7

Añada la lógica necesaria para usar el contador hexadecimal de la figura 7.24 como un contador
BCD (sin opción de carga en paralelo).

Para que el contador se comporte como BCD, después de la codificación del 9, debe venir la
correspondiente al cero. Podemos conseguirlo haciendo una carga en paralelo al alcanzar la
cuenta de 9, siempre que CE valga uno. Hay que tener en cuenta que los estados 10 a 15 no se
darán nunca, lo que nos permitirá simplificar el "detector de nueves". La implementación
propuesta en la figura 7.29 cumple estos requisitos.

TC
I3 I2 I1 I0
CE CE C CLR
Contador
LD módulo 16
CLK Q3 Q 2 Q 1 Q 0 TC

Figura 7.29 Realización de un contador BCD

Además, si queremos que el contador sea encadenable, debemos generar una nueva señal de TC,
dado que la interna no se activará nunca. Es sencillo razonar que la misma señal que activa LD
sirve como marcador de final de cuenta.
_________________________________________________________________________________

Ejercicio 7.6

Añada la lógica necesaria para usar el contador hexadecimal de la figura 7.24 como un contador
BCD exceso a 3, sin opción de carga en paralelo.
_________________________________________________________________________________

7.3 Dispositivos lógicos programables

En el capítulo 5 se mencionó la existencia de los módulos lógicos combinacionales programables


(PROM, PLA, PAL, etc). Estos módulos tienen en común el estar compuestos por matrices de puertas
cuyas conexiones pueden ser programadas por el usuario para implementar funciones lógicas.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 281
________________________________________________________________________________

De forma análoga existen estructuras compuestas por matrices de puertas lógicas que adicionalmente
disponen de biestables u otros elementos secuenciales, cuyas conexiones son también programables.
Este tipo de estructuras goza de una gran aceptación, y son utilizadas tanto para implementar diseños
secuenciales de una cierta complejidad como para realizar prototipos de sistemas que posteriormente
se implementan mediante otras estrategias.

Las variantes presentes en el mercado son numerosas, y dan lugar a un panorama algo confuso de
denominaciones (PLD, GAL, PAL, EPLD, FPGA, LCA, etc.) que en algunos casos se refieren a
estructuras diferentes y en otros a nombres comerciales dados a un mismo tipo de cicuito por distintos
fabricantes. Puesto que se trata de bloques que conceptualmente son similares, en este texto
utilizaremos para ellos el nombre genérico PLD (programmable logic device, dispositivo lógico
programable).

El diseño de sistemas secuenciales mediante PLD mantiene los rasgos distintivos apuntados en su
momento en el caso de los módulos programables combinacionales. Por un lado la existencia de
dispositivos programables por el fabricante y de dispositivos programables en campo (es decir, por el
usuario); éstos últimos pueden ser programables más de una vez, o no, en función de la tecnología
con la que hayan sido realizados. Por otra parte para trabajar con dispositivos programables en campo
es necesario el concurso de herramientas software de ayuda al diseño y de un grabador que, una vez
completado y simulado el diseño, realice la operación física de programación del PLD.

Ejemplo 7.8

El objetivo es realizar mediante un PLD un circuito que simule el lanzamiento de un dado y


presente el resultado en un display adecuado. Tal como se muestra en la figura 7.30.a, se trata de
un sistema secuencial síncrono con una entrada conectada a un pulsador manual (ON) y siete
salidas (A,B,C,D,E,F,G) conectadas a un visualizador compuesto por siete diodos
electroluminiscentes (LEDs) y la circuitería necesaria para activarlos.

Mientras se acciona el pulsador (ON=1) el circuito sigue la secuencia 1,2,3,4,5,6,1,... al ritmo


marcado por el reloj (lo bastante rápido como para no ser visible), mientras que al soltar el
pulsador (ON=0) la secuencia se detiene en el último valor alcanzado, valor que sí es posible
visualizar. Las seis visualizaciones posibles se muestran en la figura 7.30.b.

a) Circuito b)
Display
de control
A D
ON 7
PLD B G E
CLK A,B,C,..,G
C F
CLR

Figura 7.30 Simulador del lanzamiento de un dado

© los autores, 1998; © Edicions UPC, 1998.


282 Diseño digital
________________________________________________________________________________

El diseño de este circuito secuencial es sumamente sencillo, y se puede realizar en forma de


máquina de Moore utilizando tres biestables. Una posible tabla de estados futuros y salidas sería
la dada en la figura 7.31. Nótese que hay dos combinaciones de las variables de estado que dan
lugar a inespecificaciones.

ON=0 ON=1
Valor Q2 Q1 Q0 Q+ + +
2Q 1Q 0 Q+ + +
2Q 1Q 0 AB CDE FG
1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1
2 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0
3 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1
4 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0
5 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1
6 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0
- 1 1 0 XXX XXX XX XXX XX
- 1 1 1 XXX XXX XX XXX XX

Figura 7.31 Tabla de verdad del circuito del ejemplo 7.8

Aplicando los métodos habituales de simplificación se llega a las expresiones siguientes para las
funciones de salida y de transición de estados:

A = F = Q2 Q1 Q0
D2 = Q2+ = Q1Q0 ON + Q2 Q0 + Q2 ON
B = E = Q2 + Q0
D1 = Q1+ = Q2 Q1Q0 ON + Q1Q0 + Q1 ON
C = D = Q2 Q1 + Q2 Q0
D0 = Q0+ = Q0 ON + Q0 ON
G = Q0

Estas funciones se han implementado sobre el PLD mostrado en la figura 7.32, donde se dispone
de biestables tipo D incluidos en una estructura aparentemente compleja, pero que en realidad es
una versión muy reducida y simplificada de estructuras disponibles a nivel comercial. Podemos
ver que el PLD consta de una matriz de productos programable, otra de sumas fija, y módulos de
salida compuestos de un biestable más un multiplexor. Se dispone de un máximo de seis entradas,
seis productos adicionales de control de los multiplexores y hasta seis salidas.

Los multiplexores permiten escoger si la salida correspondiente es la dada por la matriz OR o la


dada por el biestable. Nótese que las tres primeras salidas coinciden con las de los biestables (es
decir, con las variables de estado del sistema), mientras que las tres restantes coinciden las
entradas de los tres últimos biestables (y dan lugar a las funciones A, B, C, D, E, y F), con lo
éstos que quedan sin utilizar.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 283
________________________________________________________________________________

D2 CLR
D 0
Mux
Q 1
S
RS Q2

ON
D1
D 0
Mux
Q 1
S
RS Q1

1
D0
D 0
Q 1
Mux G
S
RS Q0

D 0
Q 1
Mux A
S
RS

D 0
Q 1
Mux B
S
RS

D 0
Q 1
Mux C
S
RS

CLK

Figura 7.32 Circuito simulador del lanzamiento de un dado realizado con PLD

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


284 Diseño digital
________________________________________________________________________________

Ejercicio 7.7

Determine si es posible realizar un contador como el especificado en la figura 7.24 programando


adecuadamente el PLD de la figura 7.32.

_________________________________________________________________________________

7.4 Memorias RAM

Tradicionalmente se ha venido utilizando la discutible denominación RAM (Random Access Memory,


memoria de acceso aleatorio) para las memorias de lectura y escritura.

Dado que las memorias RAM son evidentemente sistemas secuenciales, es oportuno hablar de ellas
en este capítulo. Ahora bien, como veremos enseguida, se trata de módulos con unos objetivos,
configuraciones y características muy específicos y diferentes a los vistos en los apartados anteriores,
lo que justifica el tratamiento aparte aplicado.

7.4.1 Descripción genérica

Una memoria RAM es un módulo secuencial cuyo objetivo básico es el almacenamiento de


información, incluyendo la posibilidad de lectura y escritura de esta información. Desde un punto de
vista funcional podemos entender una memoria RAM como un conjunto de registros más la
circuitería de control necesaria para transferir al exterior la información almacenada en cualquiera de
los registros (lectura), así como para introducir en un registro concreto la información que se desee
(escritura).

La figura 7.33 muestra un esquema genérico para una memoria RAM de 2kx n bits de capacidad,
donde podemos observar k entradas de dirección (Ak-1,.., A1, A0), n entradas de datos (DIn-1,.., DI1,
DI0), n salidas de datos (DOn-1,.., DO1, DO0), y dos entradas de control: E (habilitación del módulo)
y R/W' (orden de lectura o escritura).

DI n-1 DI 1 DI 0
...

A k-1 E
2k x n
...

A1 RAM
A0 R/W'

...
DOn-1 DO1 DO0

Figura 7.33 Esquema genérico de una memoria RAM

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 285
________________________________________________________________________________

Si suponemos que la memoria RAM de la figura 7.33 está compuesta por 2k registros de n bits,
podemos comprender fácilmente su comportamiento. Para E=1 es posible efectuar una operación de
lectura y/o escritura, mientras que para E=0 la memoria se limita a almacenar la información
introducida anteriormente. Por otro lado, cuando el módulo es activo, la entrada R/W' controla el
modo de operación, en lectura o escritura. Si R/W'=0 se introduce en el registro señalado por la
dirección A (nótese que hay tantos registros como direcciones distintas) el vector (palabra) presente
en las entradas DI, mientras que para R/W'=1 se vuelca el contenido del registro señalado por A en las
salidas DO. La figura 7.34 muestra, a nivel de bloques, un estructura interna habitual para una
memoria RAM.

DI n-1 DI 1 DI 0
...
2k -1
Decodificador

A k-1
2k x n
binario

...
...

células R/W'
A1 1
A0 de memoria
0
...
E
Registro de palabra OE
...
DOn-1 DO1 DO0

Figura 7.34 Esquema de bloques de una memoria RAM

Nótese que una memoria RAM es, en principio, un sistema secuencial asíncrono: su funcionamiento
no está gobernado por ningún reloj externo. Además, en la práctica suele ser conveniente que los n
bits resultado de una operación de lectura estén disponibles en determinados instantes de tiempo (ello
se debe a que normalmente estos bits se introducen en una línea de comunicación en paralelo -BUS-
compartida por diferentes sistemas en diferentes instantes de tiempo); por ello se incluye en el
esquema de la figura 7.34 un registro de palabra: un registro tipo latch (cerrojo, nombre dado
frecuentemente a un registro sincronizado por nivel) con salidas tri-state, de manera que para OE=0
las salidas DO quedan en alta impedancia (dejando la memoria aislada), y que para OE=1 la palabra
leída se transmite al BUS. Este registro con salida tristate permite usar las mismas conexiones físicas
con el exterior del módulo para las entradas y salidas de datos. La señal OE puede ser una señal de
control accesible desde el exterior, o bien ser activa durante toda la operación de lectura, esto es,
OE=E.R/W'.

Ejemplo 7.9

El presente ejemplo ilustra la posibilidad de encadenar memorias RAM con el objetivo de obtener
memorias de mayor capacidad. Concretamente, vamos a obtener una memoria de 1Mx4 bits a
partir de los módulos RAM de 256kx1 bits (ver figura 7.35).

© los autores, 1998; © Edicions UPC, 1998.


286 Diseño digital
________________________________________________________________________________

DI 3 DI 1 DI 0
a) ... b) DI

A 19 20 E A 17
2 x4 218x 1 E

...

...
A1 RAM A1
R/W' RAM
A0 A0 R/W'
...
DO3 DO1 DO0 DO

Figura 7.35 Elementos del ejemplo 7.9

La solución se muestra en la figura 7.36. Nótese que para totalizar la capacidad requerida es
necesario utilizar 16 módulos de 256kx1, que se han dispuesto en cuatro columnas (tantas como
bits de salida) y cuatro filas, de modo que los dos bits más significativos de la dirección (A19 y
A18) son fijos para cada fila. El resto de la dirección (A17, ..,A0), así como la señal R/W', llega
por igual a todos los módulos. Las salidas de cada bloque pueden ser conectadas entre sí si
aseguramos que nunca será activa más de una a la vez, y se trata de salidas tristate.

DI 3 DI 2 DI 1 DI 0

218x n DI 218x n DI 218x n DI 218x n DI


E RAM DO RAM DO RAM DO RAM DO
Decodificador

E E E E
0
A 19 1 1
218x n DI 218x n DI 218x n DI 218x n DI
2
A 18 0 RAM DO RAM DO RAM DO RAM DO
3 E E E E

A 17 218x n DI 218x n DI 218x n DI 218x n DI

RAM RAM RAM RAM


...

DO DO DO DO
A1 E E E E

A
0
218x n DI 218x n DI 218x n DI 218x n DI

R/W' RAM DO RAM DO RAM DO RAM DO


E E E E

DO 3 DO 2 DO1 DO0

Figura 7.36 Ejemplo de encadenamiento de memorias

_________________________________________________________________________________

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 287
________________________________________________________________________________

Ejercicio 7.9

Modifique la estructura de encadenamiento del ejemplo anterior para el caso en que las salidas de
datos de las memorias no sean del tipo tristate, añadiendo la lógica necesaria.
_________________________________________________________________________________

7.4.2 Memorias MOS dinámicas y estáticas

La sugerencia anterior de que en una memoria RAM cada palabra se almacena en un registro es
funcionalmente correcta, pero irreal con respecto a su implementación. Si pensamos que un registro
utiliza un biestable para almacenar cada bit se llega a la conclusión de que las memorias RAM están
formadas por matrices de biestables; ahora bien, esto choca frontalmente con un requisito típico de
este tipo de módulos: maximizar la capacidad por unidad de superficie. Esto en la práctica ha llevado
al uso de estructuras de memorización de un bit de tamaño mucho menor que un biestable.

En función del tipo de memorizador unitario (o célula de memoria) existen dos tipos de memorias
RAM, las estáticas (SRAM) y las dinámicas (DRAM). Las memorias SRAM utilizan células que
permiten almacenar por un tiempo indefinido la información grabada. Por el contrario, las DRAM son
capaces de almacenar la información solamente durante un tiempo limitado.

Como veremos enseguida, una célula de memoria SRAM utiliza un mínimo de 6 transistores MOS
para almacenar un bit de información, número que puede reducirse hasta 2 o 3 en el caso de una
memoria DRAM. Por tanto es aparente que las memorias dinámicas permiten una mayor capacidad a
igual número de transistores.

En la figura 7.37 se muestra el esquema básico, a nivel circuital y físico, de una célula de memoria
dinámica: una capacidad de puerta más un transistor de paso que regula su carga/descarga. La
información se almacena en forma de carga introducida en la capacidad de puerta, carga que se
mantiene aislada (memorización) cuando se pone en corte el transistor de paso.

Vc Vx
Vc
...

... ...
... Vx n+ n+ n+ n+
p IS p
Cg

Figura 7.37 Célula dinámica de memorización

Sin embargo, existen caminos de fuga de la carga almacenada: nótese que existe una unión PN
polarizada en inversa entre el nodo Vx y el substrato del transistor de paso (conectado a masa); luego

© los autores, 1998; © Edicions UPC, 1998.


288 Diseño digital
________________________________________________________________________________

si se memoriza un "1" (Vx=VDD) la carga almacenada en Cg se irá perdiendo a través de la corriente


inversa de saturación, con lo que la tensión Vx disminuirá progresivamente. Por lo tanto, si queremos
mantener la información un tiempo indefinido deberemos regrabarla periódicamente, es decir, prever
mecanismos de refresco.

Ejemplo 7.10

Si en el circuito de la figura 7.37 se tiene Cg=1pF, VTN=1V y VDD=5V, hágase una estimación
del tiempo que tarda en descargarse totalmente la capacidad si la corriente inversa de saturación
de la unión drenador-substrato del transistor de paso es IS=1nA.

La carga almacenada en la capacidad Cg es

Q = Cg ⋅ (V DD − VTN ) =10 −12 F⋅ 4V = 4⋅10−12 C

En consecuencia, el tiempo que a razón de 10-9C/s tardará Cg en descargarse es

4 ⋅10−12 C
t= = 4 ms
10 −9 A
_________________________________________________________________________________

Las células estáticas de memorización se basan en la estructura elemental mostrada en la figura 7.38.
El almacenamiento de la información se realiza utilizando las capacidades de entrada de dos
inversores realimentados (la salida de cada uno de ellos conectada a la entrada del otro) a través de un
interruptor. Un primer análisis de la estructura revela que para el valor de la señal de control C1=1 se
tiene, tras la correspondiente carga/descarga de las capacidades por acción de los inversores, O'=I
(fase de grabado o carga de la información). Asimismo, para C1=0 se cierra el bucle de
realimentación y se tiene O'=x, siendo "x" el valor cargado en la capacidad de entrada del primer
inversor (fase de memorización). Por otro lado, la señal de control C2 controla la lectura del valor
almacenado en la célula, O=O' (fase de lectura).

x x O'
I O

C1 C2

C1

Figura 7.38 Célula estática de memorización

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 289
________________________________________________________________________________

Podemos notar además que la carga almacenada en las dos capacidades será estable, puesto que los
transistores de los inversores tienden a compensar las posibles fugas. A modo de ejemplo la figura
7.39 muestra el caso concreto de una realización CMOS en fase de memorización de un "1": el
transistor NMOS del primer inversor conduce y asegura la descarga de CI1, mientras que el transistor
PMOS del segundo inversor también conduce y asegura la estabilidad de la carga almacenada en C I2.

0 V DD
OUT

CI1 CI2

Figura 7.39 Célula de memorización estática CMOS almacenando un "1"

Ejemplo 7.11

En la figura 7.40 se muestra el esquema de una célula de memoria RAM dinámica realizada con
4 transistores nMOS.

SEL

T1 T2
T3 T4
B B'
Cg3 Cg4

Figura 7.40 Célula de memoria dinámica de 4 transistores

Procedimiento de escritura: Para escribir un "1", la línea B debe ponerse a "1" (VDD) y B' a "0".
En el caso contrario (escribir un "0"), debe ponerse B=0 y B'=1. Para centrar ideas veamos el
caso concreto de escribir un "1".

Una vez se tiene B=1 y B'=0 se tiene que habilitar, es decir, poner en conducción, los transistores
de paso T1 y T2. De esta forma los valores de tensión en B y B' se propagarán hasta cargar las
capacidades de puerta de T3 y T4; es decir, habrá un "1" en Cg4 y un "0" en Cg3. Por último hay

© los autores, 1998; © Edicions UPC, 1998.


290 Diseño digital
________________________________________________________________________________

que poner en corte los transistores T1 y T2, con ello la información queda almacenada en forma
de carga en Cg3 y Cg4, o si se prefiere, como valores de tensión en las puertas de T3 y T4.

Procedimiento de lectura: En primer lugar deben precargarse a "1" las dos líneas B y B'. A
continuación se ponen en conducción los transistores T1 y T2. En función de cuál de los dos
transistores T3 o T4 tenga un "1" en su puerta, se descargará una de las dos líneas.

Para fijar ideas, supongamos que se ha almacenado en la célula un "1" (por tanto, la puerta de T4
está a "1" y la de T3 a "0"). Al conducir simultáneamente los transistores T1 y T4 la linea B' se
descargará mientras que la linea B se mantendrá a "1". A continuación se vuelve a aislar la célula
cortando los transistores de paso T1 y T2. En función de los valores finales de tensión en la líneas
B y B' sabremos si hemos leído un "1" (caso de nuestro ejemplo) o un "0" (caso opuesto).
_________________________________________________________________________________

Ejercicio 7.9

La figura 7.41 muestra una célula de memoria RAM estática de 6 transistores. El funcionamiento
de dicha célula es, en líneas generales, análogo al descrito para la célula dinámica de la figura
7.41. La única diferencia estriba en que, en este caso, el mantenimiento de la información está
garantizado por los dos inversores. Analice detalladamente sus procedimientos de carga y
descarga. ¿Es necesaria una precarga de las líneas B y B' al hacer una lectura?

SEL

VDD

T1
T2

B Cg2 B'
Cg1

Figura 7.41 Célula de memoria estática de 6 transistores

_________________________________________________________________________________

Cuando, como en el caso de las células de memoria presentadas, la transmisión de la información


implica cargar y/o descargar capacidades, existe un factor que puede afectar decisivamente su
funcionamiento y que debe tenerse en cuenta: la compartición de carga.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 291
________________________________________________________________________________

Para ver en qué consiste consideremos la estructura de la figura 7.42, donde tenemos una pista
conductora con una capacidad Ca respecto del sustrato puesta a tensión Va y aislada del resto del
circuito. En un cierto momento conectamos la pista a un circuito (por ejemplo, con la intención de
"leer" la tensión Va), que modelamos como una capacidad Cb puesta inicialmente a tensión Vb.

Va Vb

Ca Cb

Figura 7.42 Fenómeno de la compartición de carga

Es evidente que la carga existente en la estructura después de la conexión es la misma que


almacenaban las capacidades Ca y Cb cuando inicialmente estaban aisladas, es decir

Qa = Ca Va Qb = Cb Vb

También es evidente que después de la conexión tenemos una estructura formada por dos capacidades
en paralelo, cuya capacidad y tensión globales serán

C T = C a + Cb  C aVa + C bV b
V a final = QT / CT  ⇒ a final = C + C
V
 a b

La conclusión a extraer de este resultado es obvia. Si queremos que la lectura no afecte al dato
(tensión) almacenado en Ca, hay que cumplir dos condiciones: CaVa<<CbVb y Ca<<Cb.

Nótese que este fenómeno afecta al funcionamiento de todas las células de memoria, dinámicas y
estáticas, presentadas, donde la lectura o escritura de un dato puede verse en términos de traslado de
carga de unas capacidades a otras.

7.5 Cuestiones y problemas

Cuestiones

C7.1 Resuelva el ejercicio 7.2 usando distintas codificaciones para los estados. Compare las
soluciones encontradas.

© los autores, 1998; © Edicions UPC, 1998.


292 Diseño digital
________________________________________________________________________________

C7.2 Una implementación para un sistema secuencial, llamada One-Hot, consiste en usar
codificaciones "1 entre n" (código redundante) para sistemas con n estados internos. Encuentre una
implementación One-Hot para el ejercicio 7.2, con biestables de tipo D.

C7.3 Usando las tablas intermedias de resultados de la cuestión anterior, escriba las ecuaciones que
relacionan el estado futuro de cada biestable con las entradas y el estado, esto es,
+
Qi = f ( Q0 ,..., Qn , x0 ,..., x m ) . Intente relacionar la ecuación de los estados futuros con las ramas que
llegan a cada estado en el diagrama de estados. ¿Puede proponer un método para encontrar una
implementación One-Hot directamente a partir del diagrama de estados?

C7.4 Considere el funcionamiento del siguiente sistema, cuya misión es encontrar la diferencia entre
dos valores consecutivos que toma una variable (sistema de interés a la hora de compactar la
información en señales que varian lentamente con respecto al reloj).

n
X
Paralelo 1
Registro

restador
Módulo
m
²X
Paralelo 2
Registro

Clk

Analice su funcionamiento en el caso de que el reloj que controla el registro 2 estuviera


apreciablemente retrasado (retraso comparable o superior al tiempo de respuesta de los registros)
con respecto al que controla el registro 1. Compare este funcionamiento con el ideal.

C7.5 Generalice, a partir de la respuesta de la cuestión anterior, el tipo de problemas que pueden
provocar retardos en el reloj dentro de sistemas con diversos bloques sincronizados.

i j k
Bloque 1

Bloque 2

X Z

Clk

C7.6 Disponiendo de un contador hexadecimal, sin posibilidad de carga en paralelo pero con un reset
asíncrono, proponga una realización de un contador BCD, y compárela a la del ejemplo 7.7.

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 293
________________________________________________________________________________

C7.7 Discuta el interés del esquema de encadenamiento de contadores propuesto en la siguiente


figura, y compárelo con el de la figura 7.26.

Contador Contador
módulo 16 módulo 16 Clk
Q Q Q Q Q Q Q Q
3 2 1 0 3 2 1 0

Q Q Q Q Q Q Q Q
7 6 5 4 3 2 1 0

C7.8 Modifique la implementación propuesta en el ejercicio 7.6 para para obtener un contador BCD
exceso 3 con posibilidad de carga en paralelo síncrona.

C7.9 Considere los dos esquemas de decodificación de la figura para una RAM de 1kbit (1024 bits).

A9 A8 A5
E
1023 E Decodificador
1022 012 31
Decodificador

A9
Decodificador

31
Celdas

A8 A4 30
A3
Celdas
A0 3 3
2 2
1 A0 1
0 0

a) Decodificación simple b) Decodificación doble

Compárelos en términos de los transitores necesarios para hacer una implementación CMOS de
los decodificadores. Si la complejidad añadida a cada célula unitaria de memoria en el esquema
de decodificación doble, o coincidente, respecto a la simple es de dos transistores, ¿cuál de ellos
es más ventajoso?

C7.10 ¿Cómo afectaría al resultado del ejemplo 7.10 que la puerta de transimisión que controla la
carga o descarga de la capacidad fuera CMOS, en vez de NMOS? ¿Y si se tratara un transistor de
paso PMOS?

Problemas

P7.1 Analice la red secuencial de la figura. Obtenga su diagrama de estados. Obtenga una
implementación alternativa con biestables de tipo D y puertas lógicas elementales.

© los autores, 1998; © Edicions UPC, 1998.


294 Diseño digital
________________________________________________________________________________

0 3
x

Mux
2
y 1 y J Q Q
1
xy 0
1 0 Q
K
3
QQ 1

Dec
1 0 2
z
0 1
x 3
0

Mux
1 2
y 1 y J Q Q
0
x 0
1 0 Q
K
QQ Clk
1 0

P7.2 Considere el siguiente sistema secuencial síncrono. Analícelo, y dé, si es posible, una
descripción de alto nivel. Discuta la necesidad de una entrada de reset para dicho sistema.

qa X0 qa
Multiplexor

X D
Q
x0 X1 z0
Dual

qb Y0
Y D qb
qa x1 Y1 Q
A0 z1
Comparador

S
qb A1
A>B D qc
x0 B0 Q
x1 B1

Clk

P7.3 Diseñe un sistema secuencial síncrono con la siguiente tabla de transición de estados.

s x=0 x=1
A B,a F,b
B C,a A,c
C D,a B,b
+
D E,b C,c s ,z
E F,b D,b
F G,c E,c

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 295
________________________________________________________________________________

P7.4 Diseñe un contador/descontador de 3 bits encadenable. Esto es, con salida de fin de cuenta TC y
entrada de habilitación CE. Considere una entrada adicional U / D que indique si el contador avanza,
U / D =1, o retrocede, U / D =0 cuando CE está activa. Nótese que la salida TC debe activarse
también cuando al descontar se pasa del estado "000" al "111".

P7.5 El siguiente circuito es llamado contador de Moebius o de doble secuencia, realizado, en este
caso, con un registro de desplazamiento. Obtenga su diagrama de estados. Proponga una
implementación con menos biestables del mismo sistema. La señal CLR del registro es asíncrona.

CE SH
RESET CLR Clk

Z3 Z2 Z1 Z0

P7.6 Implemente un contador en anillo de 8 estados. Este tipo de contador tiene 8 salidas, de las
cuales sólo una es activa en cada estado. Proponga una realización aplicando el método de diseño de
sistemas secuenciales síncronos, otra, a partir de registros de desplazamiento con capacidad de carga
en paralelo, y aun una tercera con un contador binario y un decodificador.

P7.7 Analice el funcionamiento del siguiente circuito asimilándolo al de algún bloque de los
presentados en este capítulo, en el caso en que las señales CLK1 y CLK2 nunca son activas a la vez,
es decir, CLK1.CLK2=0. ¿Con qué reloj observamos el sincronismo a la salida?

CLK1 CLK2 CLK1 CLK2

IN OUT

Proponga, con la misma filosofia de registro dinámico con puertas de transmisión e inversores y
dos fases de reloj, una realización de un registro de desplazamiento de 4 bits con capacidad de
carga en paralelo.

© los autores, 1998; © Edicions UPC, 1998.


296 Diseño digital
________________________________________________________________________________

P7.8 Usando un contador como el descrito en la figura 7.24, aquí repetida, consiga un módulo
contador con las siguientes secuencias:

I I I I
CE 3 2 1 0 C
Contador
LD módulo 16
Q Q Q Q TC
3 2 1 0

a) Contador módulo 13

b) Contador entre 4 y 11

c) Secuencia de salidas ...,0,1,2,3,4,5,8,9,10,11,14,15,0,...

P7.9 Utilizando un reloj de período 1 segundo, un contador binario de 5 bits con capacidad de carga
en paralelo y la lógica que sea necesaria, implemente un sistema secuencial síncrono para un
marcador de treinta segundos de un partido de baloncesto. El sistema debe tener 2 entradas: la
primera, R, debe inicializar el contador a 30 independientemente del valor de la otra; la segunda, D,
debe permitir al contador descontar, o no. Así, si D=1 el marcador quedará parado, mientras que si
D=0 el marcador deberá descontar segundos. El sistema tiene una sola salida que activa una bocina
cuando el marcador llega a cero. Nota: Un contador con salidas activas bajas se comporta como un
descontador.

P7.10 Considere el sistema secuencial de la figura siguiente, donde las señales CE del contador, y LD
del contador y del registro son síncronas y tienen su significado habitual, es decir, habilitación para
contar y carga en paralelo.
Address
REGISTER

8 8 4
X RAM Dout In 4-bit
P/P

256x4 COUNTER CLK


Din 4
CLK Out
LD R/W LD CE

LD1
M1 LD2
CNT
CLR W z
RESET

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 297
________________________________________________________________________________

a) Diseñe el módulo de control M1 para que sus salidas sigan el cronograma mostrado a
continuación, usando el método propuesto en este capítulo.

CLK

LD1

LD2

CNT

b) Explique el funcionamiento del sistema, analizando cómo varían los contenidos de cada
posición de memoria al cabo de un ciclo completo del módulo M1. ¿Qué indica la salida z?
Suponga que la entrada x varía mucho más lentamente que el reloj y dé una descripción de alto
nivel del sistema.

P7.11 Considere el circuito de la figura siguiente, donde la parte encerrada por la línea de puntos
corresponde a un único circuito integrado. El contenido de la memoria ROM está indicado en la tabla
de verdad incluida más abajo.

a3
Registro

a 2 ROM y1 2 2 q2
a 1 16x2 y 1 1 q1
0
a0 0 0 q0
LD
x0
x1
CLK

a3 a2 a1 a0 y1 y0 a3 a2 a1 a0 y1 y0
0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 1 0 1 1 0 0 1 1 1
0 0 1 0 0 0 1 0 1 0 1 0
0 0 1 1 0 0 1 0 1 1 1 0
0 1 0 0 0 1 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 0 0
0 1 1 0 0 1 1 1 1 0 1 1
0 1 1 1 0 1 1 1 1 1 1 1

© los autores, 1998; © Edicions UPC, 1998.


298 Diseño digital
________________________________________________________________________________

Se pide:

a) Analice el funcionamiento del circuito, obteniendo su diagrama de estados, si se hace la


suposición de que la entrada x1 está fija en el valor "1".

b) ¿Cómo se altera el funcionamiento del circuito si x1 puede variar? Obtenga el diagrama


de estados para esta situación modificando el obtenido en el apartado anterior.

c) Debido a un error en la fabricación del circuito integrado existe un cortocircuito


permanente entre la entrada y la salida del inversor, de forma que la señal x0 queda conectada
directamente a la entrada de menos peso del registro. Esta anomalía provoca un funcionamiento
incorrecto del circuito. Para corregir este defecto se sugiere insertar una red combinacional en las
líneas que van del registro a la ROM (que son externas al cicuito integrado). ¿Es viable esta
solución? Si la respuesta es afirmativa, diseñe el circuito corrector utilizando el menor número
posible de puertas NOR.

P7.12 El siguiente layout corresponde a una célula de memoria RAM. Determine si se trata de una
célula dinámica o estática. La línea de datos es la pista llamada BIT que, en el caso de una lectura,
deberemos precargar a V DD; mientras que en una escritura, forzamos en ella el valor a memorizar.
Explique su funcionamiento, sabiendo que las señales WR y RD nunca pueden estar activas en el
mismo instante.

WR RD

BIT

VSS

© los autores, 1998; © Edicions UPC, 1998.


Diseño de circuitos secuenciales síncronos 299
________________________________________________________________________________

P7.13 Pretendemos estudiar los problemas asociados al fenómeno de compartición de carga en el


circuito de la figura.

V
DD

Φ Φ V
DD
A
CA
t
IN OUT IN V
DD
T3 CO
B
Φ CB t1 t2 t3 t

Se pide:

a) ¿Qué función lógica realiza el circuito? Suponiendo un funcionamiento ideal, es decir sin
efectos resistivos, capacitivos y/o inductivos, obtenga el cronograma de la señal de salida OUT
correspondiente a la evolución de las entradas dada en la figura. (Nota): Suponga que el valor
inicial de OUT es 0 V.

b) Si ahora consideramos que las pistas de conexión son no ideales y que tienen las
capacidades indicadas en la figura (para simplificar, tómese CA=CB=CO), calcule el valor de la
tensión en los nodos A, B y OUT una vez alcanzado el régimen permanente dentro del intervalo
(t1,t2). Repita el cálculo para el intervalo (t2,t3).

c) Repita el cálculo del apartado anterior para el intervalo (t3,∞ ). Compare este resultado
con el obtenido en el apartado (a). Proponga algún cambio en el diseño del circuito que elimine,
si es posible, las diferencias con el caso ideal.

d) Suponga que la salida OUT se conecta a la entrada de otra puerta con VIH=0,7xVDD.
¿Cuál es el valor máximo de capacidad de entrada de dicha puerta que puede tolerarse sin que
haya problemas de niveles de tensión en el cronograma estudiado?

© los autores, 1998; © Edicions UPC, 1998.


Apéndices 301
________________________________________________________________________________

Apéndice A Aritmética binaria

En el capítulo 1 de este texto se han presentado algunos códigos para números enteros positivos, en
especial el binario y el BCD, pero no se ha hecho mención de las posibilidades de codificación de
números enteros y/o a la aritmética básica (en concreto operaciones de suma y resta) basada en estos
códigos. Como estos aspectos tienen incidencia sobre el diseño de algunos circuitos digitales, se
tratan brevemente y a título informativo en este apéndice.

Codificación de números enteros

Los tres formatos más utilizados son el de módulo y signo, el complemento a 1 y el complemento a 2,
que presentamos a continuación.

Módulo y signo (M/S):

Se genera añadiendo a la codificación binaria del valor absoluto del número un bit indicativo del
signo. Este bit adicional toma el valor "0" si el número es positivo y el valor "1" si el número es
negativo.

Ejemplos:
+12 = 0 1100 -12 = 1 1100

Normalmente la longitud de palabra, es decir, el número de bits empleados para codificar, es fija.
Luego el rango de números enteros representables en M/S utilizando n+1 bits tiene como extremos -
(2n-1) y +(2n-1). En consecuencia, el valor "0" tiene dos representaciones posibles (correspondientes
a +0 y -0).

Complemento a 1 (Ca1):

Como en el caso anterior, el bit de la izquierda indica el signo. Los números positivos se codifican
igual que en M/S. Los números negativos se codifican expresándolos inicialmente en un formato
binario de longitud fija y complementando bit a bit.

© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las
sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el
tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares
para su distribución y venta fuera del ámbito de la Unión Europea.
302 Diseño digital
________________________________________________________________________________

Ejemplos:

+12 = (01100)2 = (0 1100)Ca1

-12 = -(01100)2 = (1 0011)Ca1

(1 1100)Ca1 = - (00011)2 = -3
El rango de números enteros representables en Ca1 utilizando n+1 bits tiene como valores extremos -
(2n-1) y +(2n-1). El valor "0" sigue teniendo dos representaciones posibles.

Complemento a 2 (Ca2):

Como en los dos casos anteriores, el bit de la izquierda indica el signo. La codificación de los
números positivos es igual que en M/S y Ca1. La codificación de los números negativos se obtiene
tomando una codificación binaria de longitud fija, complementándola bit a bit y sumándole "1".
Ejemplos:

+13 = (01101)2 = (0 1101)Ca2

-13= -(01101)2 -> (10010) -> (1 0011)Ca2

-16 = -(10000)2 -> (01111) -> (1 0000)Ca2

(1 0110)Ca2 -> (10101) -> (0 1010) = -10

En Ca2 con n+1 bits se pueden codificar los enteros comprendidos entre -(2n) y +(2n-1). Nótese que
el cero tiene una única representación (+0) y que, por tanto, existe un valor negativo más.

Como ejemplo de lo anterior y tomando una longitud de palabra de 4 bits, veamos en la tabla
siguiente a qué número entero corresponde cada combinación en función de si se supone codificación
en módulo y signo, complemento a 1 o complemento a 2.

M/S Ca1 Ca2 M/S Ca1 Ca2


0000 0 0 0 1000 0 -7 -8
0001 +1 +1 +1 1001 -1 -6 -7
0010 +2 +2 +2 1010 -2 -5 -6
0011 +3 +3 +3 1011 -3 -4 -5
0100 +4 +4 +4 1100 -4 -3 -4
0101 +5 +5 +5 1101 -5 -2 -3
0110 +6 +6 +6 1110 -6 -1 -2
0111 +7 +7 +7 1111 -7 0 -1

© los autores, 1998; © Edicions UPC, 1998.


Apéndices 303
________________________________________________________________________________

Suma y resta binaria

El procedimiento es esencialmente el mismo que utilizamos al sumar y restar en base 10.

Ejemplos:
0 0 110 <---- acarreos 10111
10011 - 01110
+ 00110 0 10 0 0 <---- acarreos
11001 ----> 19+6=25 01001 ----> 23-14=9

Desde el punto de vista de la realización de operaciones aritméticas mediante circuitos digitales


resulta interesante disponer de un único algoritmo (es decir, circuito) para realizar tanto las sumas
como las restas. La solución es emplear únicamente el algoritmo de la suma con números que en su
codificación incluyan ya el signo. Esto puede hacerse utilizando el formato de complemento a 2.

Ejemplos:

Vamos a hacer las cuatro operaciones posibles con dos cantidades expresadas en Ca2 de 5 bits. Estas
son:

+7 = (0 0111)Ca2 -7 = (1 1001)Ca2
+5 = (0 0101)Ca2 -5 = (1 1011)Ca2

Las operaciones son:

7+5 = (+7) + (+5) ---> 00111


+ 00101
01100 ---> (0 1100)Ca2 = +12

7-5 = (+7) + (-5) ---> 00111


+ 11011
1 00010 ---> (0 0010)Ca2 = +2

5-7 = (-7) + (+5) ---> 11001


+ 00101
11110 ---> (1 1110)Ca2 = -2

-7-5= (-7) + (-5) ---> 11001


+ 11011
1 10100 ---> (1 0100)Ca2 = -12

© los autores, 1998; © Edicions UPC, 1998.


304 Diseño digital
________________________________________________________________________________

Sin embargo, es necesario recordar que existe un rango de valores representables con el formato
utilizado (en este ejemplo los extremos son -32 y +31); por tanto, hay que prever la posibilidad de que
se produzca un error por desbordamiento (overflow), es decir, que el resultado de la operación no
pueda codificarse con el número de bits utilizado.

Tomemos por ejemplo los números A=22 y B=15, y hagamos A+B utilizando un formato Ca2 de 6
bits:

010110
+ 001111
100101 ---> (1 00101)Ca2 = -27

El resultado obtenido es evidentemente incorrecto. Lo mismo ocurriría si hiciéramos la operación -A-


B. El motivo en ambos casos es el mismo: no se puede representar el resultado correcto (+37 o -37)
en Ca2 con sólo 6 bits (el rango de valores codificables va de -32 a +31).

Ya que no es posible corregir este tipo de errores, es recomendable disponer de medios para detectar
cuándo se producen. Un procedimiento es el siguiente: si llamamos Ca al acarreo que llega a la suma
de los bits de signo y Cb al acarreo resultante de la suma de los bits de signo, puede observarse que
tenemos desbordamiento cuando Ca • Cb. Por tanto es sencillo realizar un circuito auxiliar de
detección de desbordamiento: basta con una puerta XOR que realice la función C a ⊕ C b .

Suma y resta en BCD

Es preciso recordar que, como se vio en el primer capítulo, la codificación BCD coincide con la
binaria de 4 bits para los valores entre 0 y 9. Por tanto, la forma de operar en BCD es similar a la
binaria, pero con la salvedad de que cuando el resultado de la suma de dos dígitos sea un valor
superior a 9 será necesario efectuar una corrección. Esta corrección consiste en "saltar" las seis
combinaciones no válidas sumando el valor "0110".

Ejemplos:

(37)BCD + (20)BCD --> 0011 0111


+ 0010 0000
0101 0111 --> (57)BCD

(76)BCD + (52)BCD --> 0111 0110


+ 0101 0010
1100 1000 --> Mayor que 9 (izda) --> sumamos "6"
+ 0110
0001 0010 1000 --> (128)BCD

© los autores, 1998; © Edicions UPC, 1998.


Apéndices 305
________________________________________________________________________________

(57)BCD + (29)BCD --> 0101 0111


+ 0010 1001
1000 0000 --> Mayor que 9 (dcha) --> sumamos "6"
+ 0110
1000 0110 --> (86)BCD

Para codificar números negativos en BCD tenemos varios procedimientos: a) incluir un bit adicional
de signo, b) utilizar el formato de complemento a 9 (por ejemplo, -57 sería 1 0100 0010, donde el bit
de la izquierda corresponde al signo, el primer grupo de 4 bits al complemento a 9 del primer dígito
(9-5) y el segundo grupo al complemento a 9 de 7 (9-7)), c) utilizar el formato de complemento a 10
(el procedimiento de codificación es el mismo que en complemento a 9 con la salvedad de que se
suma "1" tras complementar).

La ventaja de utilizar estas codificaciones un tanto peculiares es, al igual que anteriormente,
posibilitar el uso de un algoritmo unificado de suma y resta.

Ejemplo:

Realizemos la operación 57-29 utilizando el formato de complemento a 9 y dos dígitos:

00101 0111
1 0111 0001
11100 1000 --> Mayor que 9 (izda) --> sumamos "6"
+ 0110
00010 1000 --> (+57)+(-29)=(+28)

Como es de esperar, en el caso de aritmética BCD también se presenta el problema del


desbordamiento, cuya detección debe tratarse de forma similar a lo planteado para la suma en
complemento a 2.

© los autores, 1998; © Edicions UPC, 1998.


Apéndices 307
________________________________________________________________________________

Apéndice B Familias lógicas bipolares

En el capítulo 3 se han presentado diversas estrategias conducentes a la realización de puertas lógicas


utilizando transistores MOS. En particular se han discutido en detalle dos variantes tecnológicas o
familias: nMOS con carga de vaciamiento y MOS complementaria (CMOS). Si bien las familias
MOS son las de mayor presencia en el mercado actual de circuitos integrados sobre silicio, y
prácticamente las únicas utilizadas en circuitos de muy alta escala de integración (VLSI), no son las
únicas. En particular, existen familias de circuitos digitales realizados mediante transistores bipolares,
las principales de las cuales son las denominadas TTL (Transistor-Transistor Logic) y ECL (Emitter
Coupled Logic).

En términos muy generales podemos decir que las principales diferencias, a nivel de características
eléctricas, de los circuitos digitales realizados mediante transistores bipolares, comparados a sus
equivalentes realizados mediante tecnologías MOS, son tres: 1) un mayor consumo de potencia, 2)
una escala de integración (número de puertas por unidad de área) mucho menor, 3) una mayor
corriente de salida, que se traduce en retardo menor.

Lógica de transistor a transistor (TTL)

La familia lógica TTL proviene de la evolución de familias anteriores y ya desaparecidas,


concretamente la RTL (Resistor-Transistor Logic) y la DTL (Diode-Transistor Logic). Su primera
aparición, propiciada por Texas Instruments, data de principios de la década de los 60, lo cual la
convierte en la más veterana de las familias lógicas con presencia significativa en el mercado actual.
Durante esta dilatada existencia han ido apareciendo versiones más evolucionadas de la misma, lo que
ha permitido mejorar algunas de sus prestaciones.

Esta familia es utilizada preferentemente en circuitos de pequeña y media escala de integración (SSI,
MSI).

La configuración estándar en que se basa la familia es el circuito de la figura B.1.a. Sin entrar en
ningún análisis detallado, digamos que para A o B igual a "0" el transistor de salida está en corte y se
tiene F=1, mientras que para A=B=1 el transistor de salida está saturado y se tiene F=0. Se trata, por
tanto, de una puerta NAND.

© los autores, 1998; © Edicions UPC, 1998.


308 Diseño digital
________________________________________________________________________________

a) VCC VCC b) VCC

F
A A
B B F

Figura B.1 Puerta lógica TTL con salida en colector abierto (a) y con salida totem-pole (b)

La configuración de salida utilizada en la puerta TTL básica de la figura B.1.a se denomina en


colector abierto (OC) y requiere, como se indica en el esquema, la conexión a la alimentación VCC a
través de una resistencia externa. Esta configuración permite realizar funciones AND cableadas si
conectamos entre sí dos (o más) salidas (ver figura B.2): cuando todos los transistores de salida están
cortados (F1=F2=1) tenemos una salida F=1; en cambio, basta con que cualquiera de los transistores
esté en saturación (F1 o F2 a "0") para forzar la salida global F=0.

F1
... VCC

F=F1.F2
F2
...

Figura B.2 Función AND cableada realizada mediante salidas OC

La configuración de salida alternativa de la puerta TTL de la figura B.1.b se denomina totem-pole y


se utiliza para acelerar la conmutación de subida de la puerta: cuando el transistor inferior de la salida
está en corte (F=1), la rama formada por el segundo transistor y el diodo conduce, permitiendo cargar
con rapidez la capacidad de salida. Existen otras posibles configuraciones de salida (tri-state, etc),
que no explicitaremos aquí.

Como se ha indicado más arriba, existen diversas variantes o evoluciones de la familia TTL estándar,
las más significativas de las cuales son la STTL (Schottky TTL), la ASTTL (Advanced Schottky TTL),
la LTTL (Low Power TTL), y la ALSTTL (Advanced Low Power Schottky TTL). Las versiones S y
AS introducen diodos Schottky en la circuitería básica de la puerta con la finalidad de evitar que
algunos transistores saturen, con lo que se obtiene una reducción del tiempo de retardo. La versión L

© los autores, 1998; © Edicions UPC, 1998.


Apéndices 309
________________________________________________________________________________

consigue reducir el consumo por puerta a través de un redimensionado de las resistencias del circuito,
aunque tiene el inconveniente de empeorar su retardo. Finalmente, la versión ALS combina un
consumo reducido con un retardo también reducido.

A título indicativo se listan a continuación algunos valores representativos de características eléctricas


de la familia TTL:
Tensión de alimentación: VCC=5 V.
Niveles lógicos: VOH=5 V, VOHmin=2.7 V, VOL=0 V, VOLmax=0.5 V, VIH=2 V, VIL=0.8 V.
Márgenes de ruido: NMH=0.7 V, NML=0.3 V.
Fan-out: 10 (AS), 100 (LS, ALS).
Consumo medio: 1 mW (ALS), 2 mW (LS), 20 mW (AS).
Retardo medio: 1.5 ns (AS), 4 ns (ALS), 7 ns (LS).

Como se deduce de estos datos, el aumentar la velocidad de conmutación de un circuito supone en


términos generales aumentar la corriente suministrada y por tanto la potencia consumida. Por tanto
existe un compromiso genérico entre la potencia consumida y el retraso introducido. Debido a ello
suele utilizarse como un factor de calidad de una puerta el producto entre su retardo y su consumo.

Lógica de emisores acoplados (ECL)

La familia lógica ECL es, de entre todas las bipolares, la que ofrece mejores prestaciones en cuanto a
velocidad, aunque sus muchos inconvenientes (alto consumo, baja densidad de integración, niveles
lógicos no compatibles con otras familias, etc.) hacen que su utilización se circunscriba a los circuitos
SSI y MSI donde la rapidez sea el objetivo primordial.

La configuración estándar de la familia ECL es la puerta OR mostrada en la figura B.3. El


funcionamiento de esta puerta implica que para A=B=0 el transistor de salida queda en corte y se
tiene F=0 (la tensión VEE es negativa), mientras que cualquier "1" (0 V) a la entrada provoca la salida
F=1. La evidente simetría de la estructura permite obtener una puerta NOR simplemente conectando
la base del transistor de salida a la rama opuesta, es decir, a los colectores de los transistores de
entrada.

La configuración de salida utilizada en la puerta ECL de la figura B.3 requiere la conexión a la


alimentación VEE a través de una resistencia externa. Esta configuración permite realizar funciones
OR cableadas si conectamos entre sí dos (o más) salidas: sólo cuando todos los transistores de salida
están cortados tenemos una salida F=0; en cambio, basta con que cualquiera de los transistores de
salida esté en conducción para forzar la salida F=1. Nótese la dualidad de esta situación con la que se
da en las puertas TTL con salida en colector abierto.

© los autores, 1998; © Edicions UPC, 1998.


310 Diseño digital
________________________________________________________________________________

B F

V EE
V EE

Figura B.3 Puerta lógica ECL básica

También existen diversas variantes de la familia ECL estándar, las más significativas de las cuales
son las denominadas 10K y 100K, con diferentes prestaciones respecto al compromiso entre retardo
introducido y consumo.

A título indicativo se listan a continuación algunos valores representativos de características eléctricas


de la familia ECL:
Tensión de alimentación: VEE=-5.2 V (10K), -4.5 V (100K).
Niveles lógicos: VOHmin=-0.9 V, VOLmax=-1.7 V, VIH=-1.2 V, VIL=-1.4 V.
Márgenes de ruido: NMH=0.3 V, NML=0.3 V.
Fan-out: 10.
Consumo medio: 25 mW (10K), 40 mW (100K).
Retardo medio: 0.9 ns (10K), 0.2 ns (100K).

© los autores, 1998; © Edicions UPC, 1998.


Bibliografía 311
________________________________________________________________________________

Bibliografía

PUCKNELL D. A. Fundamentals of digital logic design with VLSI circuit applications. Sydney,
Prentice Hall International 1990.

ERCEGOVAC M. D., LANG T. Digital systems and hardware/firmware algorithms. New York, John
Wiley & Sons. Inc. 1985.

WESTE N. H. E., ESHRAGHIAN K. Principles of CMOS VLSI design. A systems perspective. 2º Ed.
Addison-Wesley Publishing Company. 1993.

HAYES J. P. Introduction to digital logic design. Addison-Wesley Publishing Company. 1993.

MORRIS MANO M. Digital design. New Jersey, Prentice Hall International 1984.

LALA, P. K. Digital system design using programmable logic devices. New Jersey Prentice Hall Inc
1990.

DESCHAMPS J. P., ANGULO J. M. Diseño de sistemas digitales. Metodología moderna. 2º Ed.


Madrid, Paraninfo 1992.

TAVERNIER C. Circuitos lógicos programables. Madrid, Paraninfo 1994.

PRAT L. et al. Circuitos y dispositivos electrónicos. Fundamentos de electrónica. Barcelona,


Edicions UPC 1994.

© los autores, 1998; © Edicions UPC, 1998.

You might also like