[ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

299
Introducción 7 _________________________________________________________________________________ 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.

Transcript of [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Page 1: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción 7_________________________________________________________________________________

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, enparticular, 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 desarrollode sistemas con unas potencialidades impensables unos años atrás. En particular, el número detransistores en un circuito integrado ha crecido de forma espectacular en los últimos 30 años, por loque 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 queobligan al diseñador de sistemas digitales a adaptar progresivamente sus estrategias de diseño a dichasnovedades.

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

Los circuitos integrados digitales disponibles comercialmente fueron sofisticándose a medida que eraposible integrar un mayor de número de transistores, y por tanto de puertas lógicas, sobre un mismosustrato, incluyendo una serie de bloques o módulos lógicos estándar de cierta complejidad. Se hablaentonces 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 quese ha dado en denominar alta escala de integración (LSI large scale integration), y la aparición decircuitos de aplicación general cuya funcionalidad concreta depende de una programación por parte delusuario obligaron a un cambio del modo de abordar el diseño de los sistemas digitales complejos. Unejemplo de estructura de este tipo es el microprocesador, un potente circuito digital de uso general cuyafuncionalidad precisa se establece mediante programación. De esta forma un mismo circuito puede serutilizado para diferentes aplicaciones sin más que modificar el programa que lo controla.

Page 2: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 Diseño digital_________________________________________________________________________________

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

Dentro del contexto VLSI han hecho su aparición nuevas posiblidades de diseño. Por ejemplo loscircuitos integrados de aplicación específica (ASIC Application Specific Integrated Circuits), circuitosrealizados 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 podemosclasificar en dos grandes grupos:

1) Circuitos lógicos programables (PLD, programmable logic devices): El circuito integradocomercializado 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 deuna 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 deinteraccionar directamente con el fabricante de circuitos integrados, de forma que el producto finalrealizado por éste último es, incluyendo una parte del proceso de fabricación, específico para unusuario y una aplicación concretos. Dentro de este grupo podemos distinguir dos modalidades. Porun lado los circuitos semi-custom, en los cuales sólo algunas etapas de su proceso de fabricaciónson diseñadas de forma específica, y por el otro los full-custom, donde el diseño y la fabricaciónson totalmente específicos para un usuario y una aplicación. A su vez, dentro del semi-custom haydiversas posibilidades, desde el gate array (circuito integrado con una disposición regular depuertas, donde quedan por realizar físicamente las pistas de interconexión y los contactos) hasta lasstandard cells (circuito integrado a realizar en su totalidad a partir de una librería de módulospredefinidos 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 esmuy amplio: utilización de circuitos integrados estándar SSI y MSI, sistemas basados enmicroprocesadores, circuitos lógicos programables y circuitos tipo custom. Entre ellas el diseñadordebe 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 equiponecesario para el desarrollo, experiencia previa, etc.

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

Page 3: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción 9_________________________________________________________________________________

La inclusión en un mismo texto de aspectos lógicos, eléctricos y tecnológicos, más la interrelaciónentre 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 circuitosestándar. Asimismo es posible encontrar algunos excelentes textos enfocados al diseño de circuitosintegrados CMOS. Sin embargo, son más bien escasos los libros que, como éste, combinan los dosaspectos.

Este libro es el resultado de la experiencia acumulada durante varios años en la impartición de un cursointroductorio de electrónica digital en la Universidad Politécnica de Catalunya a alumnos de primercurso en las titulaciones de Ingeniería de Telecomunicación e Ingeniería Electrónica. El materialpresentado 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 deprofesores que en uno u otro momento han impartido la asignatura y quieren hacer constar aquí suagradecimiento a todos ellos.

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

Se ha cuidado de forma especial la participación del lector en el proceso de aprendizaje, incluyendodiferentes elementos: ejemplos resueltos (incluidos en el texto), ejercicios propuestos (tambiénincluidos en el texto), y cuestiones y problemas (al final de cada capítulo). Estos elementos no soncomplementarios, sino parte esencial del libro. En ellos no solamente se insiste en los aspectosmecánicos del diseño, sino que se intenta motivar al lector para reelaborar en profundidad losconceptos, al tiempo que se plantean cuestiones complementarias que facilitan una profundización enlo aprendido.

R. Alcubilla

J. Pons

D. Bardés

Barcelona, junio de 1995.

Page 4: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Índice 1 1_________________________________________________________________________________

Índice

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

1.1 Definiciones............................................................................................................. 151.2 Sistemas digitales combinacionales y secuenciales........................................................... 171.3 Codificación............................................................................................................. 21

1.3.1 Codificación de números enteros ........................................................................ 231.3.2 Códigos alfanuméricos..................................................................................... 271.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 ..................................................................................................... 332.1.1 Representación mediante tabla de verdad............................................................... 342.1.2 Representación mediante tabla de Karnaugh.......................................................... 342.1.3 Funciones lógicas de una y dos variables ............................................................. 372.1.4 Funciones incompletamente especificadas ............................................................ 402.1.5 Composición de funciones lógicas...................................................................... 41

2.2 Algebra de Boole....................................................................................................... 422.2.1 Postulados del Algebra de Boole......................................................................... 422.2.2 Teoremas del Algebra de Boole ......................................................................... 432.2.3 Simplificación algebraica ................................................................................. 45

2.3 Formas canónicas de una función lógica ........................................................................ 482.3.1 Minterms y Maxterms ..................................................................................... 482.3.2 Teorema de Shannon........................................................................................ 492.3.3 Formas canónicas............................................................................................ 502.3.4 Grupo completo de funciones ............................................................................ 532.3.5 Realización de logigramas................................................................................. 54

2.4 Minimización de funciones lógicas ............................................................................... 572.4.1 Consideraciones previas.................................................................................... 57

Page 5: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 2 Diseño digital_________________________________________________________________________________

2.4.2 Método de Karnaugh........................................................................................ 592.4.3 Minimización en forma de producto de sumas....................................................... 612.4.4 Minimización de funciones incompletamente especificadas...................................... 622.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 ................................................................ 733.1.1 Curva de transferencia y niveles lógicos............................................................... 743.1.2 Márgenes de ruido ........................................................................................... 753.1.3 Retardos de propagación ................................................................................... 773.1.4 Potencia consumida......................................................................................... 78

3.2 El transistor MOS..................................................................................................... 793.2.1 Estructura y funcionamiento básico..................................................................... 793.2.2 Efectos de segundo orden................................................................................... 85

3.3 Puertas lógicas NMOS............................................................................................... 853.3.1 Inversor NMOS con carga de vaciamiento............................................................ 853.3.2 Puertas básicas NMOS..................................................................................... 91

3.4 Puertas de transmisión ............................................................................................... 973.4.1 Transistor de paso NMOS................................................................................. 983.4.2 Transistor de paso PMOS............................................................................... 1013.4.3 La puerta de transmisión CMOS...................................................................... 101

3.5 Puertas lógicas CMOS............................................................................................. 1033.5.1 Inversor CMOS............................................................................................ 1033.5.2 Puertas básicas CMOS................................................................................... 1103.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....................................................... 1234.1.1 Deposición de capas....................................................................................... 1244.1.2 Oxidación térmica ......................................................................................... 1254.1.3 Fotolitografía ............................................................................................... 1264.1.4 Difusión de impurezas.................................................................................... 1284.1.5 Implantación iónica....................................................................................... 1294.1.6 Fabricación de un transistor MOS con puerta de polisilicio ................................... 130

4.2 Procesos CMOS y layouts........................................................................................ 1324.2.1 Fabricación de un inversor CMOS.................................................................... 1324.2.2 Layouts ....................................................................................................... 1364.2.3 Reglas de diseño de layouts ............................................................................. 142

Page 6: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Índice 1 3_________________________________________________________________________________

4.3 Caracterización eléctrica de circuitos integrados MOS..................................................... 1474.3.1 Estimación de resistencias............................................................................... 1474.3.2 Estimación de capacidades ............................................................................... 150

4.4 Cálculo simplificado de retardos de propagación ............................................................ 1544.4.1 Retardos en un inversor .................................................................................. 1554.4.2 Retardos en una cadena de inversores ................................................................. 1574.4.3 Retardo en una cadena de interruptores............................................................... 1594.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? ....... 1695.2 Diseño con redes modulares....................................................................................... 172

5.2.1 Construcción de redes modulares ...................................................................... 1735.2.2 Análisis y síntesis de redes modulares ............................................................... 176

5.3 Módulos combinacionales estándar ............................................................................. 1795.3.1 Decodificadores............................................................................................. 1795.3.2 Codificadores................................................................................................ 1825.3.3 Multiplexores............................................................................................... 1855.3.4 Demultiplexores ........................................................................................... 1885.3.5 Sumadores ................................................................................................... 1905.3.6 Comparadores............................................................................................... 1945.3.7 Unidades aritmético-lógicas............................................................................. 197

5.4 Diseño combinacional basado en módulos universales .................................................... 1985.4.1 Diseño combinacional con multiplexores........................................................... 1985.4.2 Diseño combinacional con decodificadores.......................................................... 202

5.5 Diseño combinacional con módulos programables......................................................... 2045.5.1 Diseño combinacional basado en ROM ............................................................. 2045.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 ....................................................................... 2176.1.1 Concepto de estado........................................................................................ 2186.1.2 Especificación basada en el estado..................................................................... 2206.1.3 Diagrama de estados....................................................................................... 2226.1.4 Equivalencia de estados................................................................................... 226

6.2 Sincronización de sistemas secuenciales....................................................................... 2306.2.1 Sistemas secuenciales síncronos y asíncronos..................................................... 2316.2.2 Implementación canónica de un sistema secuencial síncrono.................................. 234

Page 7: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 4 Diseño digital_________________________________________________________________________________

6.2.3 Sincronización con reloj no ideal...................................................................... 2376.3 Biestables .............................................................................................................. 239

6.3.1 Biestable D.................................................................................................. 2406.3.2 Biestable JK................................................................................................. 2416.3.3 Biestable T .................................................................................................. 243

6.4 Realización de biestables .......................................................................................... 2446.4.1 Biestable SR asíncrono .................................................................................. 2446.4.2 Biestables síncronizados por nivel .................................................................... 2466.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....................................................... 2577.1.1 Método sistemático de análisis......................................................................... 2577.1.2 Método sistemático de síntesis......................................................................... 264

7.2 Módulos secuenciales............................................................................................... 2707.2.1 Registros ..................................................................................................... 2717.2.2 Registros de desplazamiento ............................................................................ 2737.2.3 Contadores................................................................................................... 276

7.3 Dispositivos lógicos programables ............................................................................. 2807.4 Memorias RAM ..................................................................................................... 284

7.4.1 Descripción genérica...................................................................................... 2847.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

Page 8: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 1 5_________________________________________________________________________________

Captulo 1 Primera aproximacin a los sistemas digitales

Este captulo pretende situar al lector en el campo de los sistemas electrnicos digitales, introduciendoalgunos conceptos fundamentales de uso constante a lo largo de este texto. Para ello, el apartado 1.1presenta un conjunto de definiciones que pemiten un uso preciso de la terminologa. El apartado 1.2discute los conceptos de sistema combinacional y sistema secuencial. Por ltimo el apartado 1.3introduce el concepto de codificacin.

1.1 Definiciones

Un sistema electrnico digital es aquel que procesa seales elctricas digitales. Para el lector novel enel rea de ingeniera es conveniente clarificar los significados precisos de cada uno de los trminos de lafrase anterior.

Se entiende por sistema una entidad fsica que recibe una serie de entradas o excitaciones y responde conun conjunto de salidas. La figura 1.1 muestra la representacin genrica de un sistema.

SistemaX Yn m

Figura 1.1 Sistema genrico

La n minscula indica la existencia de n entradas y la m minscula indica la existencia de un nmerom de salidas. Esta definicin "a priori" no se limita a sistemas electrnicos. Es igualmente aplicable asistemas mecnicos, biolgicos, econmicos, etc.

El comportamiento de un sistema estar perfectamente determinado cuando se conozcan los valores delas salidas para cada posible combinacin de valores de las entradas.

Entenderemos por seal una magnitud fsica variable con el tiempo que sirve de soporte a algn tipo deinformacin. Se invita al lector a reflexionar sobre el hecho de que solamente las magnitudes fsicas

Page 9: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 6 Diseo digital_________________________________________________________________________________

variables pueden soportar/transmitir alguna informacin. En el campo de la ingeniera electrnica lasseales habitualmente utilizadas son tensiones y corrientes.

Las seales elctricas se pueden dividir en dos categoras distintas, las seales analgicas y lasdigitales. Una seal es analgica cuando puede tomar cualquier valor entre dos valores extremos. Unaseal es digital o discreta cuando slo puede tomar un nmero finito de valores fijos entre dos valoresextremos. En la figura 1.2 se muestran ejemplos de estos dos tipos de seales.

s(t)

t

a)s(t)

t

b)

Figura 1.2 a) Seal analgica. b) Seal digital

Veamos a continuacin un caso particular de sistema digital, el sistema lgico. Un sistema lgicoprocesa seales lgicas. Una seal lgica o binaria es aquella que solamente puede tomar dos valoresfijos. Las seales lgicas son, por tanto, un caso particular de seal digital as como el sistema lgicolo es de los sistemas digitales. Un ejemplo de seal lgica se muestra en la figura 1.3.

s(t)

t

Figura 1.3 Seal lgica

En este texto trataremos de forma intensiva con seales y sistemas de este tipo. Uno de los motivosdel inters particular en las seales y los sistemas lgicos es la disponibilidad de dispositivoselectrnicos capaces de funcionar en dos estados ntidamente diferenciados.

En realidad resulta habitual, y as se har en este texto, el emplear indistintamente los trminos"digital" y "lgico" aplicados ya sea a sistemas, circuitos o seales. El motivo es que latransformacin de seales digitales o discretas a seales lgicas o binarias, y viceversa, es

Page 10: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 1 7_________________________________________________________________________________

extraordinariamente sencilla. Estas transformaciones se denominan respectivamente codificacin ydecodificacin. De estos aspectos nos ocuparemos con ms detalle en el apartado 1.3. La figura 1.4muestra de forma esquemtica la relacin existente entre un sistema digital y uno lgico.

Codificador Sistema lógico Decodificador

Sistema digital

Figura 1.4 Relacin entre un sistema digital y un sistema lgico

1.2 Sistemas digitales combinacionales y secuenciales

Los sistemas digitales pueden dividirse en dos categoras atendiendo a la influencia que tiene el factortiempo en su funcionamiento.

Sistemas digitales combinacionales son aqullos en los cuales las salidas en un instante de tiempo tidependen nicamente del valor de las entradas en ese mismo instante. Se entiende, por tanto, que losvalores que hayan tomado las entradas y salidas con anterioridad, es decir, en t<ti, no ejercen ningunainfluencia sobre el valor de las salidas en ti.

SistemaCombinacionalX Y

n m

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 implcito el factor tiempo yescribirse simplemente

y = F(x)

Page 11: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 8 Diseo digital_________________________________________________________________________________

Ejemplo 1.1

Supongamos un depsito dividido en 6 niveles numerados del 0 al 5. Queremos implementar unaalarma que se active cuando el nivel del lquido que contiene sea o bien demasiado alto (>4) o biendemasiado bajo (<2).

Evidentemente se trata de un sistema combinacional. La activacin o no de la alarma dependeexclusivamente del nivel del lquido en cada momento. Los valores que haya podido tomar el nivelcon anterioridad no tienen influencia alguna en el resultado.

AlarmaX Yn m

Figura 1.6 Esquema del ejemplo 1.1

La entrada del sistema es el nivel del lquido en el depsito y por tanto existen 6 valores posiblesde la entrada. Anlogamente slo pueden haber dos valores posibles de la salida: o bien la alarmaest activada o bien no lo est.

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

La funcin Y = F(X), es decir, el valor de la salida para cada posible valor de la entrada, estperfectamente determinada mediante la tabla siguiente

X Y

0 ON1 ON2 OFF3 OFF4 OFF5 ON

__________________________________________________________________________________

Un sistema combinacional siempre queda completamente determinado a travs de la definicin de susentradas, salidas y de una tabla que las relacione entre s. Estas tablas reciben el nombre de tablas deverdad. Conviene ser consciente que este tipo de tablas, si bien dan toda la informacin necesaria sobreel comportamiento del sistema combinacional, cuando el nmero de entradas y salidas crece llegan a serprcticamente imposibles de manipular.

Page 12: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 1 9_________________________________________________________________________________

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

SistemaSecuencialX Y

n m

Figura 1.7 Sistema secuencial

Por tanto se puede escribir

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

Esta es la definicin general de sistema secuencial. Sin embargo, existe de hecho un inconveniente deorden prctico. El hecho de que la salida dependa de los distintos valores que toma la entrada durante unintervalo infinito de tiempo conlleva la necesidad de una capacidad de almacenaje de informacininfinita: esta capacidad es necesaria para memorizar los valores de la entrada durante el intervalo(−∞,ti ) . Es claro que una memoria infinita es algo poco prctico desde el punto de vista de laimplementacin fsica.

En este texto nos ocuparemos de una clase particular de sistemas secuenciales llamados sistemassecuenciales de estados finitos; un nombre alternativo es el de mquinas de estados finitos. En estossistemas todas las evoluciones histricas posibles de las entradas pueden ser agrupadas en un nmerofinito de clases de equivalencia. Por tanto, el valor de la salida en un instante determinado depende delvalor de las entradas en ese instante y de la clase de equivalencia a la que pertenezca la evolucintemporal anterior de las entradas. Esto elimina la necesidad de memoria infinita y permite implementarprcticamente estos sistemas.

Dicho de otra forma, para hallar y(t) en funcin de x(t) no necesitamos conocer x(−∞,t) , sinosolamente la clase de equivalencia a la que pertenece. Este conocimiento lo tendremos a travs de unavariable nueva, s(t) , que denominaremos estado del sistema.

Por tanto la especificacin de una mquina de estados finitos pasa por la definicin de un conjunto deentradas, 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 funcin H se denomina funcin de salida e indica el valor de la salida para cada combinacin deentrada y estado del sistema. La funcin G se denomina funcin transicin de estados y determina culser el estado prximo del sistema, es decir, el valor prximo de la variable de estado, para cadacombinacin de valores de la entrada y estado actual del sistema.

Page 13: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

2 0 Diseo digital_________________________________________________________________________________

Ejemplo 1.2

Una comprensin intuitiva del concepto de sistema secuencial se puede obtener a travs del anlisisdel funcionamiento de un ascensor. Para centrar ideas pinsese en el ascensor de un edificio con dospisos y planta baja, dotado con un botonera con nicamente tres botones: 0, 1, 2.

Una primera reflexin nos conduce a que el sistema de control del ascensor no es un sistemacombinacional. Si consideramos como entrada el hecho de pulsar un determinado botn, la salida,es decir, la accin realizada por el ascensor, no siempre es la misma, depende en realidad de en qupiso estuviera el ascensor cuando se produce la entrada.

Dicho en otras palabras, la salida, la accin realizada por el ascensor, depende de la historia anteriordel ascensor (el hecho de estar en un piso u otro en un momento dado depende de losdesplazamientos anteriores del ascensor y por tanto de sus entradas anteriores).

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

Vamos a ver lo mismo pero desde un punto de vista ms formal.

Entradas al sistema: Botn 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 hacenada, o baja 1, o baja 2. Esto es: y ∈ nada,+1,+2,−1,−2 .

Estados del sistema: A partir de la discusin anterior debera ser claro que el nmero de estados delsistema 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 01 0 -1 02 0 -2 00 1 +1 11 1 nada 12 1 -1 10 2 +2 21 2 +1 22 2 nada 2

Page 14: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 2 1_________________________________________________________________________________

Para especificar el sistema secuencial de forma completa necesitamos la funcin de salida quedepende de la entrada y el estado actual y la funcin transicin de estados, que da el estado prximoen funcion de la entrada y el estado actual. Podemos especificar estas dos funciones mediante latabla de verdad presentada.

__________________________________________________________________________________

1.3 Codificacin

Un concepto fundamental dentro de los sistemas digitales es el de codificacin. En el apartado 1.1hacamos una primera referencia diciendo que mediante la codificacin podamos pasar de una sealdiscreta a una seal lgica, mientras la decodificacin realizaba el camino inverso. En este apartadovamos a definir estos conceptos con ms precisin.

El problema de la codificacin en el mbito de la electrnica digital se traduce en representar unconjunto finito de elementos mediante vectores de n componentes donde cada uno de los componentespuede tomar solamente dos valores: 0 o 1.

Antes de dar una definicin formal vamos a ver un ejemplo de codificacin.

Ejemplo 1.3

Recordemos el ejemplo 1.1 referente a la alarma para un depsito. Tenamos 6 entradas posibles ypor tanto 6 elementos a codificar x ∈ 0,1,2,3,4,5 . Si tenemos que representar estos valoresmediante vectores de n elementos donde cada uno de ellos puede tomar los valores 0 o 1, podemoshacerlo de multitud de maneras. Una posibilidad sera

Elemento Cdigoasignado

0 0001 1002 1013 0014 0105 011

Esta asignacin es totalmente arbitraria, caracterstica propia de la codificacin.

Vemos, por otra parte, que el nmero n de elementos de los vectores, en este caso particular, tieneque ser de tres como mnimo. Si hubiramos utilizado vectores de dos elementos no hubiramostenido suficientes combinaciones distintas para asignarlas a todos los elementos a codificar. Es

Page 15: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

2 2 Diseo digital_________________________________________________________________________________

evidente que asignar dos codificaciones iguales a dos elementos distintos slo puede conducir a laprdida o confusin de informacin.

Ntese que en este ejemplo las combinaciones 111 y 110 no han sido utilizadas.

Igualmente podramos codificar las salidas. En el caso de la alarma slo tenamos dos salidasposibles y ∈ ON,OFF , por tanto podemos utilizar vectores de un solo elemento paracodificarlas. Una posible codificacin, nuevamente arbitraria, de las salidas sera

Elemento Cdigoasignado

ON 1OFF 0

__________________________________________________________________________________

Una vez presentado de forma intuitiva el problema de la codificacin, vamos a formalizar la definicin.

Codificacin es una funcin, al menos inyectiva, que asigna un vector binario de dimensin n a cadaelemento 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 puedetomar o el valor 0 o el valor 1. A cada uno de los elementos que pueden tomar el valor 0 o 1 lellamamos dgito binario o bit. Denominamos byte a un vector de 8 bits.

Ejercicio 1.1

ÀCuntos elementos podemos codificar mediante vectores de n bits? ÀCuntos cdigos distintospodemos formar con n bits?

Solucin:

¥ n bits permiten codificar 2n elementos.

¥ Podemos formar 2n! cdigos distintos con n bits.__________________________________________________________________________________

La codificacin, es decir, la eleccin de una forma particular de asignacin de cdigos es en principioarbitraria. En cada caso concreto hay que elegir entre 2n! codificaciones posibles. Ahora bien, el quecualquier codificacin sea en teora vlida no quiere decir que sea indiferente la eleccin de una u otra.

Page 16: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 2 3_________________________________________________________________________________

Criterios posibles que pueden determinar la eleccin de un cdigo determinado podran ser lasimplicidad, la compatibilidad entre sistemas, la posibilidad de detectar la aparicin de algn error, laposibilidad de corregir errores, etc.

En los prximos subapartados vamos a presentar brevemente algunos de los cdigos ms comnmenteutilizados.

1.3.1 Codificacin de nmeros enteros

Ya que la codificacin finalmente representa los elementos a codificar mediante los dgitos binarios 0 y1, empezaremos este apartado presentando los sistemas de numeracin y en particular la numeracin enbase 2 y en potencias de 2.

Un nmero representado en base r se escribe an−1,an−2 ,......,a1,a0( )r y su valor decimal se calcula

simplemente desarrollndolo en potencias de r , donde los smbolos ai se asocian a los r primerosnmeros enteros (por tanto entre 0 y r-1)

an−1,an−2 ,....,a1,a0( )r= an−1r

n−1+....+a1r1 + a0r

0

Ejemplo 1.4

Encontrar el equivalente decimal del nmero 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 relacin hay entre los dosresultados?

Solucin: (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 paracualquier nmero que cumpla m =2.n, y se puede demostrar fcilmente substituyendo r por 2 en laexpresin de desarrollo en potencias, y multiplicndola por 2.

__________________________________________________________________________________

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

Page 17: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

2 4 Diseo 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 tambin son de inters los sistemas de numeracin cuya base es unapotencia 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 nmero escrito en base 2 y,empezando por la derecha, se agrupan los dgitos que lo forman en grupos de k bits, a cada uno de losgrupos se le asigna el dgito 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 nmero quedara

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

Nota: En base 16 se utilizan los siguientes smbolos para los 16 dgitos 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 2k a base 2 se realizan invertiendo elprocedimiento anterior.

Ejercicio 1.3

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

Solucin: (3 7 0 1 2)8 = (11111000001010)2= (3 E 0 A)16__________________________________________________________________________________

Codificacin en binario

Simplemente escribimos en binario, utilizando el nmero de bits que sea necesario, el nmero entero acodificar.

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

Page 18: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 2 5_________________________________________________________________________________

Ejemplo 1.6

Escribir el cdigo binario para n = 3 bits.

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

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

__________________________________________________________________________________

Codificacin en BCD

El cdigo BCD, decimal codificado en binario, utiliza 4 bits para cada dgito decimal, es decir

0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001

Por tanto quedan 6 combinaciones libres, las que van del 1010 al 1111. Caba esperar esto desde elprincipio ya que 4 bits permiten codificar hasta 16 elementos y en el sistema de numeracin decimalslo tenemos 10 dgitos.

Ejemplo 1.7

Pasar a cdigo BCD el nmero decimal 124.

(124)10 = (0001 0010 0100)BCD__________________________________________________________________________________

El valor decimal de cada dgito del nmero codificado en BCD puede ser obtenido sumando el pesoasignado a cada bit. Para el BCD natural los pesos son 8, 4, 2, 1. Estos pesos son coincidentes con lospesos de los dgitos correspondientes en binario de 4 bits. Los cdigos en los que esta operacin esposible se denominan cdigos ponderados.

Page 19: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

2 6 Diseo 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 cdigo BCD. Algunas de ellas se diferencian en el peso (o ponderacin)de cada uno de los bits. Un ejemplo sera el BCD 2421. En dicho cdigo 2, 4, 2 y 1 son los pesosrespectivos de cada uno de los bits. Obsrvese en este ejemplo concreto que " a priori " un mismonmero puede ser codificado de distintas maneras. Ser necesaria, por tanto, una regla adicional quedetermine cul de las posibles codificaciones es la correspondiente al cdigo.

Otra variante de inters es el llamado BCD exceso 3. El cdigo es el siguiente

0 0011 5 10001 0100 6 10012 0101 7 10103 0110 8 10114 0111 9 1100

Como el lector habr adivinado se obtiene a travs de sumar 3 al BCD natural.

Parte del inters de este cdigo radica en que es autocomplementario, es decir, si en la combinacincorrespondiente a un nmero n cambiamos los ceros por unos y viceversa se obtiene la combinacincorrespondiente a 9-n. Por ejemplo, el dgito decimal 6 se codifica en BCD exceso 3 como 1001; si enesta combinacin cambiamos los ceros por unos y viceversa se obtiene 0110. Esta combinacincorresponde al 3, justamente 9-6. Por otra parte obsrvese que este cdigo no es ponderado.

Cdigos de Gray

Este tipo de cdigo tambin se conoce por los nombres de cdigo cclico o reflejado. Su propiedadfundamental es que cada codificacin difiere de la codificacin del entero anterior o posterior en un solobit. Empecemos construyendo el cdigo de Gray de un solo bit

Decimal Gray

0 01 1

Page 20: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 2 7_________________________________________________________________________________

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

Decimal Cdigo de Gray

0 0 01 0 1

2 1 13 1 0

aadido reflejado

El procedimiento se itera para obtener de forma sucesiva los cdigos de Gray de 3, 4 y ms bits. Aspor ejemplo el cdigo de Gray de 3 bits se obtiene del de 2 bits de la forma que se indica en el grficosiguiente

Decimal Cdigo de Gray

0 0 0 01 0 0 12 0 1 13 0 1 0

4 1 1 05 1 1 16 1 0 17 1 0 0

aadido reflejados

1.3.2 Cdigos alfanumricos

Es muy habitual el tener que codificar textos compuestos por caracteres alfanumricos ( bajo estadenominacin incluimos letras, nmeros, smbolos ortogrficos, carcteres de control, etc.).

El cdigo ms utilizado en este caso es el cdigo ASCII (American Standard Code for InformationInterchange), del cual existen dos versiones, la que utiliza 7 bits y el ASCII extendido, que utiliza 8bits.

A ttulo informativo la distribucin de combinaciones en el cdigo ASCII de 7 bits es la mostrada enla figura 1.8, donde las primeras 32 codificaciones corresponden a carcteres de control, que se

Page 21: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

2 8 Diseo digital_________________________________________________________________________________

especifican aparte. Estos carcteres pueden utilizarse para transmitir un texto entre sistemas y/oreconstruirlo sin ambigedades.

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 Carcter nulo DLE Cambio de enlace de transmisin

SOH Encabezamiento DCi Control del dispositivo i

STX Principio de texto NACK No reconocimiento

ETX Final de texto SYNC Transmisin sncrona

ENQ Pregunta ETB Fin de transmisin de bloque

ACK Reconocimiento CAN Cancelar

BELL Timbre EM Fin de medio

BS Retroceso SUB Sustitucin

HT Tabulador horizontal ESC Escape

LF Salto de lnea FS Separador de ficheros

VT Tabulador vertical GS Separador de grupos

FF Salto de pgina 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 Cdigo ASCII de 7 bits

Page 22: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 2 9_________________________________________________________________________________

1.3.3 Cdigos detectores de errores

Las seales codificadas contienen informacin. Estas seales, y por tanto esta informacin, setransmiten de unos circuitos (sistemas) electrnicos a otros. Existen formas de codificar que permitendetectar si se ha producido algn error en la transmisin, estos cdigos reciben el nombre de cdigosdetectores de error. Mencionaremos aqu a ttulo de ejemplo los cdigos con paridad, que es la formams sencilla de cdigo detector de error.

Para transformar un cdigo en un cdigo con paridad se aade un bit adicional de tal manera que lacodificacin resultante (cdigo anterior y bit aadido) tenga un nmero par de bits de valor "1", en loscdigos de paridad par, o impar en los cdigos de paridad impar.

Ejemplo 1.9

Tenemos un cdigo de tres bits con todas las combinaciones utilizadas y queremos convertirlo enun cdigo de 4 bits con paridad par

Cdigoprevio

Bitaadido

000001010011100101110111

01101001

XpParidad

X 2X 1X 0

X2X1X0

Figura 1.9 Sistema generador de bit de paridad

__________________________________________________________________________________

Los cdigos con paridad pueden detectar un nmero impar de errores en la transmisin de lainformacin pero no pueden detectar un nmero 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 ms bitsde los estrictamente imprescindibles. Un cdigo que utiliza ms bits de los necesarios se denominaredundante. En efecto, si tenemos 8 elementos a codificar podemos hacerlo mediante 3 bits, aadir unbit de paridad nos exige utilizar 4 bits para codificar el mismo nmero de elementos. Cualquiera quesea el procedimiento que utilicemos para detectar errores, siempre utilizaremos ms bits de losimprescindibles. Esto es as por una razn muy simple: supongamos que codificamos 16 elementosmediante 4 bits. Si se produce un error en la transmisin de uno cualquiera de los bits, por ejemplo se

Page 23: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

3 0 Diseo digital_________________________________________________________________________________

enva 0011 y se recibe el 0010, el receptor recibe una codificacin que corresponde a uno de loselementos a codificar y por tanto en ausencia de informacin adicional no puede determinar si haocurrido un error. Para que el receptor pueda saber que se ha producido un error es necesario que lacodificacin que reciba no corresponda a ninguno de los elementos a codificar y esto no es posible amenos que se utilicen ms bits de los imprescindibles.

Asimismo es posible generar cdigos que permitan, no slo detectar, sino corregir un cierto nmero deerrores. El precio a pagar siempre es el aumentar el nmero de bits utilizados para codificar unadeterminada informacin, es decir, aumentar la redundancia del cdigo.

1.4 Cuestiones y problemas

Cuestiones

C1.1 Discuta si las magnitudes y los sistemas siguientes son analgicos o digitales:

a) Temperatura

b) Cronmetro

c) Semforo

d) Corriente elctrica

C1.2 ÀCules de los siguientes sistemas, donde cada entrada puede tomar dos valores x ∈ a,b , soncombinacionales y cules secuenciales? Discuta si los secuenciales pueden describirse o no comomquinas de estados finitos.

a) Un sistema con dos entradas que indique en cul de ellas ha recibido ms 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 nmero par o impar de b.

C1.3 Demuestre que para que una codificacin BCD ponderada sea autocomplementaria, la suma detodos los pesos de la ponderacin debe ser igual a 9.

C1.4 Encuentre cuntos cdigos BCD 2,4,2,1 diferentes se pueden formar y cules de ellos sonautocomplementarios.

Page 24: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Primera aproximacin a los sistemas digitales 3 1_________________________________________________________________________________

C1.5 Un cdigo "n entre m" es aqul en que todas las combinaciones vlidas contienen n unos y (m-n)ceros (por tanto m bits en total). ÀCuntos elementos distintos se pueden codificar mediante un cdigo"2 entre 5"? Discuta qu tipo de errores permite detectar este cdigo.

C1.6 ÀEs nico el cdigo de Gray? Proponga diferentes cdigos de tres bits con las mismas propiedadesque el cdigo de Gray.

Problemas

P1.1 Identifique las entradas y salidas de un sistema combinacional que controla un motor de dosvelocidades, con dos sensores de fin de recorrido, un mando de velocidad y otro de direccin. Escriba latabla de verdad que permita mover el motor a un lado o al otro hasta su lmite.

P1.2 Determine las salidas y los estados de un sistema secuencial con una nica entradax ∈ 0,1,2,3,4 , que indique si la suma de todas las entradas realizadas hasta el momento es unmltiplo de tres. Escriba las tablas de sus funciones de salida y de transicin de estados.

P1.3 Proponga una codificacin que utilice 3 bits para los das de la semana. ÀEntre cuntos cdigosdistintos puede escogerse?

P1.4 Proponga un cdigo BCD autocomplementario ponderado con pesos 8,4,-2,-1. ÀEs el nicoposible?

P1.5 Complete la siguiente tabla:

Decimal Binario Hexadecimal Octal

1256

1001110101

624

A03C

P1.6 Encuentre la codificacin BCD de los nmeros de la tabla del problema anterior.

P1.7 El cdigo llamado biquinario es un cdigo "2 entre 7" ponderado con pesos 5,0,4,3,2,1,0 paracifras decimales. Encuentre cuntos cdigos distintos cumplen estos requisitos.

Page 25: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 3 3_________________________________________________________________________________

Captulo 2 Fundamentos abstractos del diseo digital

En este captulo se presentan los fundamentos formales, o si se prefiere matemticos, del diseodigital. El hecho de que las seales procesadas por los sistemas lgicos slo puedan tomar dos valorespermite interpretar los sistemas combinacionales como un conjunto de funciones donde las entradas ylas salidas son variables que toman nicamente dos valores. Una consecuencia de esto es la posibilidadde utilizar superestructuras matemticas especficamente creadas para tratar con este tipo de variables.El lgebra de Boole, desarrollada el siglo pasado como herramienta para tratar el clculo de predicadosen lgica matemtica, se revela extremadamente til en el campo del diseo digital. A pesar delmarcado tono matemtico de este captulo, es conveniente que el lector tenga en cuenta que suinclusin no obedece a un deseo de completitud formal sino, por el contrario, a una necesidad de ordenprctico. Como comprobar el lector, los conceptos introducidos en este captulo son de usocontinuado en el resto de este texto.

2.1 Funciones lgicas

Una funcin lgica o de conmutacin de n variables asigna un valor lgico ("0" o "1") a cadacombinacin de n valores lgicos de entrada

y = f (xn−1,xn−2 ,......,x1,x0 )→ 0,1 donde y,xi ∈ 0,1

De acuerdo con esto, un sistema lgico combinacional de n entradas y m salidas como el representadoen la figura 2.1 puede interpretarse como un conjunto de m funciones lgicas de las mismas nvariables.

Sistema

Combinacionaln-1x

0x

1x

m-1y

0y

1y

.... ....

Y = F(X)

X = (xn−1,...,x1,x0 ) Y = (ym−1,...,y1,y0 )

yi = f i (xn−1,...,x1,x0 ) 0 ≤ i ≤ m −1

Figura 2.1 Sistema combinacional visto como un conjunto de funciones lgicas

Page 26: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

3 4 Diseo digital_________________________________________________________________________________

Existen distintas maneras de especificar y/o representar una funcin lgica; entre ellas podemosdestacar las siguientes: a) tabla de verdad, b) tabla de Karnaugh, c) expresiones algebraicas, d)logigramas. Veamos de momento las dos primeras, dejando para ms adelante dentro de este mismocaptulo las dos restantes.

2.1.1 Representacin mediante tabla de verdad

Una tabla de verdad especifica el valor que toma la funcin para cada posible combinacin de valores desus variables. Es evidente que cualquier funcin lgica puede representarse mediante una tabla deverdad.

La tabla de verdad de una funcin lgica de tres variables (formalmente equivalente a un sistemacombinacional de tres entradas y una salida) se muestra a continuacin. Los valores de la funcinf(x2,x1,x0) slo 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 extensin de este tipo de representacin a funciones de cualquier nmero de variables es inmediata,aunque resulta poco prctica cuando este nmero es elevado.

2.1.2 Representacin mediante tabla de Karnaugh

La tabla de Karnaugh, tambin llamada mapa de Karnaugh, da una informacin equivalente a la de unatabla de verdad. La diferencia estriba en la disposicin topolgica de la informacin. Se disponen losvalores de la funcin en una tabla de doble entrada donde unas variables estn en el eje horizontal yotras en el eje vertical. Las combinaciones de las variables de entrada en cada eje se ordenan siguiendoun cdigo de Gray.

Vemoslo para el caso concreto de una funcin de tres variables f(x2,x1,x0). En el eje vertical situamosx2 y en el eje horizontal x1 y x0.

Page 27: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 3 5_________________________________________________________________________________

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 funcin de 3 variables tenemos 8 combinaciones de entrada y por tanto unatabla de 8 casillas. Para el caso de 4 variables el procedimiento es el mismo, situando dos de lasvariables en el eje horizontal y las dos restantes en el eje vertical. Como antes, las combinaciones delas variables en cada eje se ordenan siguiendo un cdigo de Gray. Vemoslo para una funcin genricade 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 segn un cdigo de Gray hace que en casillas vecinas se siten losvalores de la funcin correspondientes a combinaciones de las variables de entrada que difieren entre sen un slo bit. Si definimos como casillas lgicamente adyacentes las correspondientes acombinaciones de entrada que difieren entre s en el valor de un solo bit, la fila superior resultaadyacente a la inferior y del mismo modo la columna de la derecha es adyacente a la columna de laizquierda.

Por ejemplo, si observamos en la tabla anterior la casilla correspondiente a f(1,0,0,1) (sombreada deforma ms intensa) vemos que las casillas adyacentes segn la definicin anterior (marcadas enpunteado claro) corresponden a f(1,0,0,0) donde slo vara el valor de x0, f(1,0,1,1) donde es x1 lavariable que cambia de valor, f(1,1,0,1) donde es x2 la variable que cambia de valor, y por ltimo enf(0,0,0,1) x3 cambia de valor.

Generalizando, podemos decir que cada casilla de una tabla de Karnaugh de n variables tiene n casillaslgicamente adyacentes, es decir, correspondientes a combinaciones de entrada que difieren nicamenteen el valor de una variable.

Para funciones de 5 variables el procedimiento es el siguiente: consideremos una funcin genricaf(x4,x3,x2,x1,x0); se forman dos tablas de Karnaugh iguales (con la misma disposicin de variables) de4 variables, por ejemplo x3,x2,x1,x0, una referida a las combinaciones de entrada con x4=0 y otra conlas combinaciones correspondientes a x4=1. La definicin de adyacencia incluye las casillas vistas parala tabla de 4 variables ms la casilla que est situada en el mismo lugar en la otra tabla, tal como semuestra en la figura que sigue.

Page 28: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 realizarseextendiendo la idea aplicada para 5 variables (cuatro tablas de 4 variables situadas una encima de laotra y ordenadas mediante combinaciones cíclicas de las 2 variables restantes), aunque se pierde lafacilidad de identificación de las casillas adyacentes. Por ello en la práctica la tabla de Karnaugh nosuele 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 bitadicional de forma que el código de 5 bits resultante tenga una paridad par. Especificar la funciónlógica correspondiente mediante su tabla de verdad y su mapa de Karnaugh.

0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1

00 01 11 10

00

01

11

10

ab\cd

0 1 0 1

1 0 1 0

0 1 0 1

1 0 1 0

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

a b c d Y

Page 29: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 3 7_________________________________________________________________________________

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

Obsrvese que el mapa de Karnaugh de una funcin de paridad, dado que las variables de entradaestn ordenadas segn el cdigo de Gray, tiene el aspecto de un tablero de ajedrez. Esto es, si enuna casilla determinada hay un "1", en todas sus adyacentes hay un "0" y viceversa.

__________________________________________________________________________________

Ejercicio 2.1

Describa, a travs de sus tablas de verdad y de Karnaugh, un sistema combinacional que compare 2nmeros enteros A y B codificados en binario. La salida valdr "1" si A>B.

Entradas A,B ∈ 0,1,2,3

Salida Y =1 si A > B

0 en otro caso

A,B Cdigo

0 00

1 01

2 10

3 11__________________________________________________________________________________

2.1.3 Funciones lgicas de una y dos variables

Al estar limitado a dos el nmero de valores que pueden tomar tanto las distintas variables de entradacomo la salida de una funcin lgica, resulta que el nmero de funciones lgicas distintas de nvariables est acotado. Por tanto, es posible realizar un inventario de todas las funciones lgicas de unnmero dado de variables.

Funciones lgicas de una variable: Existen 4 y slo 4 funciones lgicas de una variable, quepresentamos en la tabla siguiente

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

0 0 0 1 01 0 1 0 0

f0(x0). Como se observa en la tabla, esta funcin asigna el valor cero independientemente del valor dela variable. Se la denomina funcin constante cero. Podemos asignar a esta funcin la siguienterepresentacin en forma de expresin algebraica

Page 30: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

3 8 Diseo digital_________________________________________________________________________________

f 0 (x0 )= 0

f1(x0). El valor de la funcin coincide con el de la variable de entrada. Por este motivo se la denominafuncin identidad. La expresin algebraica de esta funcin es

f1(x0 )= x0

f2(x0). En este caso el valor de la funcin siempre es el contrario o complementario del que tiene lavariable de entrada. Se la conoce como funcin complemento, negacin o funcin NOT. La expresinalgebraica correspondiente es

f 2 (x0 )= x0

f3(x0). Por ltimo, esta funcin siempre devuelve el valor "1" independientemente del valor de lavariable de entrada y por eso recibe el nombre de funcin constante 1. Su expresin algebraica ser

f3(x0 )=1

Algunas funciones lgicas cuentan con un smbolo propio para su representacin grfica. Estossmblos graficos se denominan logigramas o puertas y suponen una primera aproximacin a laestructura del circuito o elemento fsico que las implementa. Las cuatro funciones de una variablepueden representarse mediante los logigramas que se muestran en la figura 2.2.

0x x x x

a) b)

1

Figura 2.2 Logigramas para las funciones lgicas de una variable. a) funcin constante 0,b) funcin identidad, c) funcin constante 1, d) funcin complemento

Funciones lgicas de dos variables: Es posible obtener hasta 16 funciones lgicas diferentesde 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 10 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Page 31: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 3 9_________________________________________________________________________________

Algunas de estas 16 funciones se utilizan con mayor frecuencia y las presentamos a continuacincomo funciones destacables.

f1. La funcin f1 se denomina AND o producto lgico y slo toma el valor "1" cuando las dosvariables de entrada toman el valor "1". La definicin dada puede independizarse del nmero devariables; por tanto, denominaremos funcin AND de n variables a la funcin lgica que slo valdr"1" cuando todas las variables de entrada valgan "1". La expresin algebraica y el logigrama para lafuncin AND de dos variables son los siguientes

f AND (x1,x0 )= x1x0 xx0

x1 x 1 0

f7. Esta funcin toma el valor "1" cuando alguna de las entradas toma el valor "1" (eventualmentepueden ser las dos) o, de forma equivalente, slo toma el valor "0" cuando todas las variables de entradatoman el valor "0". Recibe el nombre de funcin OR o suma lgica. Como antes la definicin esindependiente del nmero de variables y por tanto denominaremos funcin OR de n variables a aquellaque vale "1" cuando alguna (una o ms) de las entradas toma el valor "1". La expresin algebraica y ellogigrama para esta funcin son

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

x1 + x 0x1

f6. A partir de los valores que toma para dos variables esta funcin puede ser interpretada de diversasmaneras: 1- La funcin toma el valor "1" cuando las entradas son distintas y "0" cuando son iguales.2- El valor de la funcin es la suma mdulo 2 de las entradas. 3- La funcin vale "1" cuando el nmerode "1" a su entrada es impar y "0" cuando no lo es. Las dos ltimas interpretaciones son directamentegeneralizables a n entradas. Esta funcin recibe el nombre de XOR o tambin OR exclusiva. Laexpresin algebraica y el logigrama para la funcin XOR de dos variables son

f XOR (x1,x0 )= x1⊕ x0x0

x1 + x 0x1

Las complementarias de estas tres funciones tambin son destacables. Entendemos por funcionescomplementarias aqullas que para los mismos valores de las variables toman valores opuestos:

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

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

x1x 1

Page 32: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

4 0 Diseo digital_________________________________________________________________________________

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

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

x1 + x 0x1

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

f XNOR (x1,x0 )= x1⊕ x0 x0

x1+ x0x1

2.1.4 Funciones incompletamente especificadas

Son funciones lgicas cuyo valor no est definido, especificado, para alguna combinacin de variablesde entrada. En lenguaje formal, podramos decir que su dominio es un subconjunto de las 2n posiblescombinaciones de las variables de entrada.

Ejemplo 2.2

Supongamos un sistema combinacional tal que su entrada es una cifra codificada en BCD y susalida es "1" en caso de que la entrada sea mltiplo de 3 y "0" en caso contrario. La tabla de verdadde este sistema sera

x3

x2

x1

x0 Y x

3x

2x

1x

0 Y

0 0 0 0 1 1 0 0 0 00 0 0 1 0 1 0 0 1 10 0 1 0 0 1 0 1 0 X0 0 1 1 1 1 0 1 1 X0 1 0 0 0 1 1 0 0 X0 1 0 1 0 1 1 0 1 X0 1 1 0 1 1 1 1 0 X0 1 1 1 0 1 1 1 1 X

Ntese que las combinaciones de entrada comprendidas entre 1010 y 1111 no pertenecen al cdigoBCD y por tanto no se van a presentar nunca; en consecuencia, es irrelevante el valor que tome lafuncin para dichas combinaciones de entrada. Usaremos la notacin "X" (salida indiferente) para elvalor de la funcin en dichos casos.

__________________________________________________________________________________

Page 33: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 4 1_________________________________________________________________________________

Ejercicio 2.2

Demustrese que hay 2(2n ) funciones lgicas diferentes de n variables.

__________________________________________________________________________________

2.1.5 Composicin de funciones lgicas

Los nicos valores que puede tomar una funcin lgica son "0" o "1", es decir, valores que puedencorresponder a variables de una nueva funcin lgica. En consecuencia las funciones lgicas se puedencomponer entre s, con lo que se generan otras funciones lgicas ms complejas.

Ejemplo 2.3

La funcin z es el resultado de aplicar la funcin OR a la variable c y al resultado obtenido deaplicar la funcin AND a las variables a, b y al complementario de d:

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

La expresin algebraica correspondiente a esta composicin es

z = c + abd

Tambin es posible obtener el logigrama de la composicin de funciones combinandoadecuadamente los logigramas de cada una de las funciones involucradas, tal como se muestra en lafigura 2.3. Este logigrama supone una primera aproximacin a un posible circuito electrnico querealice la funcin.

d abd

c + abdd

a

b

c

Figura 2.3 Logigrama resultante de la composicin de funciones

__________________________________________________________________________________

Page 34: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

4 2 Diseo digital_________________________________________________________________________________

Ejercicio 2.3

Obtener la tabla de verdad y el logigrama de la composicin de funciones siguiente

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

donde f1 es la funcin descrita en el ejemplo 2.3__________________________________________________________________________________

Hasta ahora hemos visto cuatro formas equivalentes, aunque formalmente distintas, de representar unafuncin lgica: 1-Tabla de verdad. 2-Tabla de Karnaugh. 3-Expresin algebraica. 4-Logigrama. Segnlas circunstancias, unas formas de representacin sern ms convenientes que otras, pero no debeperderse de vista que la informacin aportada es la misma.

2.2 Algebra de Boole

Recordemos que las variables lgicas solamente pueden tomar dos valores. En el siglo XIX GeorgeBoole (1815-1864), trabajando en el clculo de predicados en lgica matemtica, cre unasuperestructura matemtica particularmente til en los casos en que los valores posibles de lasvariables son solamente dos. El diseo digital utiliza de forma extensiva estos resultados obtenidoshace ms de un siglo.

2.2.1 Postulados del Algebra de Boole

Se denomina lgebra de Boole a la estructura matemtica formada por un conjunto B de elementos ydos operaciones, denominadas genricamente " +" (suma) y "." (producto), que cumple las siguientespropiedades

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

a,bÎBÞa ×b

a+ bìíî

ÎB

ÎB

2- Las dos operaciones son conmutativas

a,bÎBÞa+ b = b + a

a ×b = b ×aìíî

3- Existe distributividad de una operacin respecto a la otra y viceversa

Page 35: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 4 3_________________________________________________________________________________

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

a+ (b ×c)= (a+ b) ×(a+ c)ìíî

4- Existe un elemento neutro para cada operacin. Es decir, si aÎB, entonces existen doselementos 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 unnico 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 lgicas podemos tomar el conjunto B= 0,1 y escoger las operacionessiguientes

"+" o suma: Funcin lgica OR

"." o producto: Funcin lgica AND

"_" u opuesto: Funcin lgica complemento o negacin (NOT)

Es inmediato comprobar que el conjunto definido ms las operaciones suma y producto escogidascumplen los postulados anteriores. Por tanto, constituyen un lgebra de Boole de dos elementos (ovalores).

2.2.2 Teoremas del Algebra de Boole

Un lgebra de Boole, en virtud de las propiedades que por definicin se le exigen, cumple una serie deteoremas. Estos teoremas son de gran utilidad a la hora de transformar expresiones algebraicas defunciones lgicas 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

Page 36: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

4 4 Diseo digital_________________________________________________________________________________

-Absorcin: a+ a ×b = a+ b a+ a ×b = a

a ×(a+ b)= a ×b a(a+ b)= a

-Involucin: (a)= a

-Incgnita: x +1=1

x ×0 = 0

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

a ×b = a+ b

- Dualidad: Cualquier expresin vlida en un lgebra de Boole contina siendo vlida sise intercambian entre s los elementos neutros ( 0«1) y las operaciones ( +«×).

La permutacin del teorema de dualidad conlleva cambiar cada variable por su complementaria.Obsrvese que todas las propiedades exigidas a un lgebra de Boole cumplen esta condicin, por tanto,cualquier expresin que se derive de ellas tambin la cumplir.

Adems, algunos de estos teoremas son directamente generalizables a n variables, por ejemplo, lasleyes de De Morgan: el complementario de una suma de variables es igual al producto de loscomplementarios de las variables, y el complementario de un producto de variables es igual a la sumade los complementarios de las variables.

aiiå = ai

aiiÕ = ai

Ejemplo 2.4

Vamos a aplicar dualidad a la expresin algebraica obtenida en el ejemplo 2.3. La expresin departida es

z = c + abd

y la que aplicando dualidad se deriva de ella es

z = c a + b + d( )

Esto nos permite escribir una expresin algebraica equivalente para la funcin z, aplicando elteorema de involucin

z = c a + b + d( )

Page 37: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 4 5_________________________________________________________________________________

Ejercicio 2.4

Demustrese la identidad del ejemplo 2.4 usando las leyes de De Morgan.__________________________________________________________________________________

Las demostraciones de los teoremas presentados tambin quedan como ejercicio para el lector. Encualquier caso, cuando se intenta demostrar cualquier igualdad entre dos expresiones algebraicas en unlgebra de Boole, siempre se puede evaluar cada una de las expresiones en todos los casos posibles atravs de su tabla de verdad y realizar la comprobacin del resultado.

Ejemplo 2.5

Vamos a demostrar la primera igualdad del teorema de absorcin.

a+ ab = a+ b

Aplicando sucesivamente la distributividad de la suma con respecto al producto y las definicionesde 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, demustrese la segunda igualdad delteorema de absorcin: a+ ab = a .

__________________________________________________________________________________

2.2.3 Simplificacin algebraica

Los postulados y teoremas del lgebra de Boole traen como consecuencia que la expresin algebraica deuna funcin lgica no es nica. Por tanto es posible utilizar las propiedades anteriores para simplificarlas expresiones algebraicas de funciones lgicas. Vemoslo 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 incgnita, el postulado delelemento neutro y otra vez distributividad.

Page 38: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

4 6 Diseo 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)+ zy + xyx d) cad + b + c + abc__________________________________________________________________________________

Al final del apartado 2.1 resumamos las cuatro formas vistas de representar una funcin lgica: tablade verdad, tabla de Karnaugh, expresin algebraica y logigrama. Ahora se ha presentado unprocedimiento para transformar unas expresiones algebraicas en otras. Vamos a analizar estas cuatroposibles representaciones de una funcin lgica a travs 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 unaexpresin algebraica de la funcin Y(a,b,c).

a b c

A

D

Y

B

E

C

F

Figura 2.4 Logigrama del ejemplo 2.7

Page 39: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 4 7_________________________________________________________________________________

Es laborioso encontrar directamente la expresin algebraica de la funcin completa, por lo que elprocedimiento ms aconsejable es hallar primero las expresiones algebraicas de las variablesintermedias A, B, C, D, E, y F sealadas 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 expresin 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 anteriorespara cada combinacin 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 00 0 1 1 1 0 1 1 0 10 1 0 0 0 1 1 1 0 10 1 1 0 0 0 1 1 0 01 0 0 0 0 0 0 1 1 11 0 1 0 0 0 1 1 0 01 1 0 0 0 0 1 1 0 01 1 1 0 0 0 1 0 1 1

La tabla de Karnaugh quedara de la forma siguiente

00 01 11 10

0

1

a\bc

0 1 0 1

1 0 1 0

Un anlisis detallado de la tabla de verdad nos lleva a concluir que la funcin lgica Y vale "1"cuando el nmero de entradas que toman el valor "1" es impar y asigna el valor "0" en casocontrario; por tanto, una expresin algebraica y un logigrama alternativos son

Y = aÅbÅca

Ycb

__________________________________________________________________________________

Page 40: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

4 8 Diseo digital_________________________________________________________________________________

2.3 Formas cannicas de una funcin lgica

A partir de lo visto en el apartado anterior, es claro que una misma funcin lgica admite una infinidadde expresiones algebraicas. Como consecuencia admitir tambin una infinidad de logigramas. Por elcontrario, la tabla de verdad y la tabla de Karnaugh son nicas para una funcin lgica dada.

De entre esta infinidad de expresiones algebraicas equivalentes se puede encontrar formatos que sean departicular inters por ser aplicables a cualquier funcin lgica. Estos formatos o expresionesgeneralizables de las funciones lgicas se denominan formas cannicas. Sin embargo, antes depresentar las formas cannicas de una funcin lgica es conveniente formalizar el concepto deminterm, el de maxterm y presentar el teorema de Shannon.

2.3.1 Minterms y Maxterms

Sea f una funcin lgica de n variables; denominamos producto mnimo o minterm de dicha funcin almonomio formado por el producto lgico de todas sus variables complementadas o no. Con nvariables se pueden construir 2n minterms diferentes. Usaremos la notacin mi (con 0 £ i £ 2n -1 )para referirnos al minterm i-simo de una funcin.

Identificamos cada minterm mediante un subndice nmerico que corresponde a la combinacin binariaresultante de sustituir por "0" las variables complementadas y por "1" las que no lo estn. Otra formade expresar lo mismo es diciendo que un minterm se identifica mediante un subndice correspondienteal valor decimal de la combinacin de entradas que hace que el minterm en cuestin tome el valor "1".

Veamos esto en detalle para una funcin lgica de tres variables. La generalizacin a n variables esinmediata.

M int erm Sub.binario Sub.decimal

x2x1x0 m000 m0

x2x1x0 m001 m1

x2x1x0 m010 m2

x2x1x0 m011 m3

x2x1x0 m100 m4

x2x1x0 m101 m5

x2x1x0 m110 m6

x2x1x0 m111 m7

Page 41: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 4 9_________________________________________________________________________________

Sea f una funcin lgica de n variables; denominamos suma mxima o maxterm de dicha funcin alpolinomio formado por la suma lgica de todas sus variables complementadas o no. Con n variablesse pueden construir 2n maxterms diferentes. Usaremos la notacin Mi para referirnos al maxterm i-simo de una funcin.

Cada maxterm se identifica mediante un subndice correspondiente a la combinacin binaria resultantede sustituir por unos las variables que estn complementadas y por ceros las que no lo estn. Otraforma de expresar lo mismo es diciendo que un maxterm se identifica mediante un dgitocorrespondiente al valor decimal de la combinacin binaria de entradas que hace que el maxterm encuestin tome el valor "0".

Vamos a verlo en detalle para una funcin lgica de tres variables. La generalizacin 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 funcin lgica de n variables, entonces es posible realizar la extraccin de una de lasvariables, con lo que se generan dos funciones residuales de n-1 variables de acuerdo con la siguienteexpresin

f (xn-1,xn-2 ,...,x1,x0 )= xn-1 f (0,xn-2 ,...,x1,x0 )+ xn-1 f (1,xn-2 ,...,x1,x0 )

Una formulacin dual del teorema puede hacerse mediante esta otra expresin

f (xn-1,xn-2 ,...,x1,x0 )= xn-1 + f (1,xn-2 ,...,x1,x0 )[ ]× xn-1 + f (0,xn-2 ,...,x1,x0 )[ ]

Page 42: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

5 0 Diseo digital_________________________________________________________________________________

La demostracin del teorema es inmediata a travs de la tabla de verdad. Para ello slo es necesarioevaluar los trminos a derecha e izquierda de la igualdad para cada uno de los dos valores posibles de lavariable extrada: xn-1=0 y xn-1=1.

Ejemplo 2.8

Extraer la variable c de la funcin lgica f (a,b,c,d)= (aÅc)+ ac + bcd + abcd .

De acuerdo con el teorema de Shannon es necesario obtener las funciones resultantes departicularizar c a los valores "1" y "0" en la funcin 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)+ abd = a + abd = a

Luego, recurriendo a la primera expresin 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 expresin

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 cannicas

Cualquier funcin lgica puede expresarse como suma lgica de minterms. Asimismo, cualquierfuncin lgica puede tambin expresarse como producto lgico de maxterms. Estas expresionesalgebraicas se denominan formas cannicas disyuntiva y conjuntiva respectivamente.

La demostracin de la existencia de estas dos formas cannicas es sencilla si bien un tanto farragosa enlo que respecta a la notacin. Se basa en la aplicacin reiterada del teorema de Shannon: partiendo de laprimera de las expresiones propuestas por el teorema para una funcin f de n variables y aplicndola denuevo a cada uno de los sumandos del trmino de la derecha nos queda

f (0,xn-2 ,...,x0 )= xn-2 f (0,0,xn-3,...,x0 )+ xn-2 f (0,1,xn-3,...,x0 )

f (1,xn-2 ,...,x0 )= xn-2 f (1,0,xn-3,...,x0 )+ xn-2 f (1,1,xn-3,...,x0 )

Y por tanto extraemos 2 de las n variables de la funcin.

f (xn-1,xn-2 ,...,x0 )= xn-1xn-2 f (0,0,xn-3,...,x0 )+ xn-1xn-2 f (0,1,xn-3,...,x0 )+

+xn-1xn-2 f (1,0,xn-3,...,x0 )+ xn-1xn-2 f (1,1,xn-3,...,x0 )

Page 43: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 5 1_________________________________________________________________________________

Iterando la aplicacin del teorema de Shannon a las funciones residuales hasta extraer todas lasvariables, nos queda finalmente

f (xn-1, xn-2 ,.., x1, x0 ) = xn-1xn-2 ..x1x0 f (0,0,..,0,0) + xn-1xn-2 ..x1x0 f (0,0,..,0,1) +

+xn-1xn-2 ..x1x0 f (0,0,...,1,0)+...+xn-1xn-2 ...x1x0 f (1,1,..,1,1) = mi f (i)i=0

2n-1

å

Expresin que identificamos como la forma cannica disyuntiva, es decir, en suma de minterms, dondelas f(i) son las funciones residuales tras la extraccin de todas las variables, es decir, funcionesconstantes, que solo pueden tomar dos valores "0" o "1".

La existencia de la forma cannica conjuntiva puede demostrarse a partir de la segunda expresin delteorema de Shannon. Su expresin compacta es

f (xn-1, xn-2 ,.., x1, x0 ) = (Mi + f (i))i=0

2n-1

Õ

Veamos a travs de un ejemplo cmo obtener las formas cannicas de una funcin lgica.

Ejemplo 2.9

Pretendemos obtener las formas cannicas de la funcin y = a + bc . Siguiendo paso a paso lademostracin anterior se llega a la siguiente expresin

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 funcin para cada combinacin de lasvariables de entrada

a b c y

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 11 1 1 1

Page 44: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

5 2 Diseo digital_________________________________________________________________________________

Sustituyendo los valores de la funcin en la expresin anterior nos queda

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

Una notacin alternativa ms compacta es

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

donde el subndice del sumatorio indica el nmero de variables de la funcin.

Si nos fijamos en la expresin de la funcin como suma de minterms (en ocasiones ladenominaremos SoP) y, simultneamente en la tabla de verdad, vemos que aparecen en laexpresin los minterms cuyo subndice corresponde a combinaciones de las variables de entradapara las cuales la funcin vale "1" (que hemos destacado sombrendolas en la tabla de verdad).

Para obtener la expresin de la funcin como producto de maxterms el procedimiento es elsiguiente: Si la funcin y se escribe como

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

Entonces la expresin como suma de minterms de la funcin complementada es

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

Si negamos ambos lados de esta ltima igualdad y operamos

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

= (a + b + c)(a + b + c)(a + b + c ) = M0M2M3 = M(0,2,3)3

Õ

Es decir, los trminos presentes en la expresin de la funcin como producto de maxterms (enocasiones denominada PoS) son M0, M2, y M3, cuyos subndices son precisamente los que noaparecan en la forma cannica en suma de minterms: a partir de la tabla de verdad se observa quelos maxterms que aparecen en la forma cannica conjuntiva son aquellos cuyo subndicecorresponde a las combinaciones de entrada que hacen "0" la funcin. Esto es as en virtud de lasdistintas notaciones utilizadas para minterms y maxterms. Esta notacin, sin embargo, no esuniversal: en algunos textos se utilizan otros procedimientos para asignar subndices a losminterms y a los maxterms, en cuyo caso el mtodo de paso de una a otra forma cannica esmenos inmediato que el aqu descrito.

__________________________________________________________________________________

Page 45: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 5 3_________________________________________________________________________________

Ejercicio 2.7

Obtener la forma cannica alternativa de las funciones siguientes

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

__________________________________________________________________________________

2.3.4 Grupo completo de funciones

Un conjunto de funciones lgicas es completo cuando cualquier funcin lgica se puede expresarutilizando nicamente las funciones del grupo. De lo visto en el apartado anterior se deduce que elconjunto formado por las funciones NOT, AND y OR es un grupo completo de funciones. En realidadlas formas cannicas son formas de escribir cualquier funcin utilizando slo funciones AND, OR yNOT.

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 funcin lgica puede expresarseutilizando nicamente o bien funciones NAND o bien funciones NOR.

Ejemplo 2.10

Vamos a demostrar que la funcin NAND constituye un grupo completo. Una forma decomprobarlo es viendo que utilizando nicamente funciones NAND podemos realizar las funcionesNOT, AND y OR. Al ser el grupo formado por estas tres funciones un grupo completo, quedardemostrada la completitud de la funcin NAND. Comencemos viendo que es posible obtener lafuncin NOT utilizando slo funciones NAND

x = x × x Þ

Una vez vista la realizacin de la funcin NOT mediante funciones NAND, resulta inmediato

realizar una funcin AND utilizando funciones NAND

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

Por ltimo, para realizar la funcin OR podemos aplicar las leyes de De Morgan

Page 46: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

5 4 Diseo digital_________________________________________________________________________________

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

__________________________________________________________________________________

Ejercicio 2.8

Demostrar que la funcin NOR consituye, por s sola, un grupo completo.__________________________________________________________________________________

2.3.5 Realizacin de logigramas

Mediante algunos ejemplos vamos a presentar cmo son los logigramas asociados a las expresionesalgebraicas cannicas de una funcin lgica.

Ejemplo 2.11

Dibujar el logigrama de la funcin del ejemplo 2.7 partiendo de su expresin como SoP. Acontinuacin, realizar el logigrama slo mediante funciones NAND. De forma dual, proponer ellogigrama correspondiente al producto de maxterms, y una realizacin solo con funciones NOR.

La expresin de la funcin en SoP es y = m1 + m4 + m5 + m6 + m7 = abc + abc + abc + abc + abc ,por lo que su implementacin utilizando funciones AND, OR y NOT es inmediata

a b c

y

m 7

m 1

m 4

m 6

m 5

Page 47: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 5 5_________________________________________________________________________________

Para realizar una implementacin usando slo funciones NAND el procedimiento es el siguiente:supongamos que sustituimos las puertas AND directamente por puertas NAND; para que elresultado global permanezca inalterado habr que negar cada entrada de la puerta OR. Recordandolas leyes de De Morgan, una puerta OR de variables negadas es equivalente a una puerta NAND delas mismas variables sin negar, es decir

aii

Õ = aii

å

Luego la implementacin mediante puertas NAND se obtiene simplemente sustituyendo cadapuerta OR y cada puerta AND por una NAND, sin que sea necesario alterar la topologa o lasconexiones del logigrama original.

y

a b c

m 7

m1

m4

m6

m5

Partamos ahora de la expresin algebraica en producto de maxterms

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

La implementacin con puertas OR, AND y NOT requerida es, otra vez, inmediata a partir de laexpresin algebraica

Page 48: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

5 6 Diseo digital_________________________________________________________________________________

y

a b c

M 2

M 0

M 3

Para pasar a una implementacin slo con NOR el procedimiento es dual al anterior. Sisustituimos las puertas OR directamente por NOR, es evidente que hay que negar cada entrada de lapuerta AND. En consecuencia, la puerta AND final tendr todas sus entradas negadas. Recordandolas leyes de De Morgan, una funcin AND de variables negadas es equivalente a la funcin NORde las mismas variables sin negar. Luego el resultado ser

a b c

yM 2

M0

M3

__________________________________________________________________________________

La primera conclusin que podemos extraer del ejemplo 2.11 es que las formas cannicas conducen deuna forma inmediata a logigramas con una estructura regular. As la forma cannica en suma deminterms conduce a logigramas constituidos por dos etapas de puertas (una etapa de puertas AND yotra de puertas OR en el sentido entrada-salida), siendo las entradas de las puertas AND de la primeraetapa las variables de la funcin, directas o negadas (mediante puertas NOT). Este resultado es dual parala forma cannica en producto de sumas.

Page 49: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 5 7_________________________________________________________________________________

Adems, un resultado complementario es que las formas cannicas conducen tambin de forma naturala la realizacin de cualquier funcin lgica mediante logigramas hechos nicamente con dos etapas depuertas NAND (caso de partir de la forma cannica SoP) o con dos etapas de puertas NOR (caso departir de la forma cannica PoS).

Ejercicio 2.9

Obtenga las formas cannicas en SoP y PoS de la funcin y(a,b,c) = abc + bc + abc . Obtenertambin los logigramas de la funcin en forma de redes de dos niveles de puertas AND-OR, OR-AND, NAND y NOR.

__________________________________________________________________________________

2.4 Minimizacin de funciones lgicas

Minimizar una funcin lgica es encontrar una expresin algebraica que la describa y que incluya elmnimo nmero de variables y/o operaciones. Existe un inters evidente en poder minimizar funcionespuesto que, en principio, una funcin lgica especificada mediante una expresin algebraica sencillapodr implementarse mediante un logigrama (cicuito) ms sencillo, y por tanto de menor coste.

Hemos visto en el apartado 2.3 que es posible simplificar la expresin algebraica de una funcin lgicamediante la aplicacin "adecuada" de las propiedades del lgebra de Boole. Sin embargo dichoprocedimiento tiene algunos inconvenientes: 1- No es sistemtico, dependiendo el resultado de lahabilidad de quien lo utiliza. 2- No siempre es fcil determinar si se ha obtenido la expresin mssimplificada posible. 3- A diferencia de las formas cannicas, la solucin no suele tener un formatoregular, por lo que conduce a logigramas de estructura impredecible a priori.

En este apartado se presenta un mtodo sistemtico, denominado mtodo de Karnaugh, que permiteobtener la expresin mnima de una funcin lgica manteniendo el formato de suma de productos y/ode producto de sumas.

2.4.1 Consideraciones previas

Recordemos que, al representar una funcin mediante tabla de Karnaugh, en cada casilla se consigna elvalor de la funcin para una cierta combinacin de valores de las variables de entrada. La propiedadfundamental de la tabla de Karnaugh es que dos casillas adyacentes corresponden a combinaciones de lasvariables de entrada que difieren en un solo bit. Por otra parte, recordar el lector que las combinacionesde entrada que dan lugar a "1" en la tabla de verdad indican los minterms presentes en la expresincannica de la funcin.

Page 50: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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á

00 01 11 10

00

01

11

10

ab\cd

1 0 0 1

1 0 0 1

0 1 0 0

0 1 0 0

Cada "1" de la tabla corresponde a un minterm presente en la expresión canónica de la función comosuma 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 abcd 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óncanónica de la función que difieren entre sí en una única variable; así en la columna de la izquierdalos dos "1" adyacentes corresponden a los minterms m0 = abc d y m4 = abcd respectivamente, quedifieren 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 mintermsque sólo difieren en una variable xi, es claro que aplicando distributividad nos quedarán expresionesdel tipo siguiente

x1x2x3....xi−1xi +1.....xn(xi + xi )

El contenido del paréntesis es igual a la unidad y por tanto puede eliminarse. Es decir, la presencia dedos "1" adyacentes en la tabla de Karnaugh conduce a la eliminación de una variable. Este resultadoes 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.

Page 51: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 5 9_________________________________________________________________________________

Ejemplo 2.12

En la funcin 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 loscorrespondientes a los minterms m0 , m2 , m4 , y m6 (recordemos que las casillas de la columnade la derecha se definan como lgicamente adyacentes a las casillas de la columna de la izquierda,y que las casillas de la fila superior estaban definidas como lgicamente adyacentes a las casillas dela fila inferior).

Si observamos el grupo formado por m9 y m13 tenemos

m9 = abcd

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

De la agrupacin de los dos minterms hemos eliminado una variable. Si analizamos ahora laagrupacin restante tenemos

m0 = abcd

m2 = abcd m0 + m2 = abd

m4 = abcd m4 + m6 = abd

m6 = abcd

Los dos trminos resultantes tambin difieren entre s en una sola variable (b) y, por tanto, alsumarlos tambin se eliminar esa variable

m0 + m2 + m4 + m6 = ad

Podemos concluir diciendo que una expresin simplificada en forma (no cannica) de suma deproductos de la funcin y(a,b,c,d) es y = ad + acd .

__________________________________________________________________________________

2.4.2 Mtodo de Karnaugh

A continuacin, como recapitulacin y sistematizacin de lo visto hasta ahora, se ofrece,esquematizado, el procedimiento de minimizacin

1- Cada celda en un mapa de Karnaugh correspondiente a una funcin de n variablestiene n celdas lgicamente adyacentes, con las cuales difiere en el valor de una variable.

Page 52: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

60 Diseño digital________________________________________________________________________________

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

3- Al reunir celdas en un mapa de Karnaugh es aconsejable comenzar por las que presentanmenor 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 gruposmayores 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

00

01

11

10

1 0 1 1

1 0 0 1bc

bd

acdabcd

00 01 11 10cd\ab

1 0 0 1

0 0 1 0

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

f = abcd+ acd + bc+ bd

_________________________________________________________________________________

Page 53: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 6 1_________________________________________________________________________________

Ejercicio 2.10

Obtener la expresin mnima 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 Minimizacin en forma de producto de sumas

Tambin es posible obtener la expresin simplificada de una funcin lgica como producto de sumas.Podriamos usar un mtodo de Karnaugh dual, pero el procedimiento ms cmodo es el siguiente: Silos "1" de la tabla de Karnaugh representan los minterms de la funcin, entonces los "0" representanlos minterms de la funcin negada. Aplicando el mtodo de minimizacin a los "0" en lugar de a los"1", se obtendr la expresin mnima en suma de productos de la funcin negada. Complementando elresultado y aplicando las leyes de De Morgan, obtendremos la expresin mnima como producto desumas.

Ejemplo 2.14

Vamos a minimizar la funcin del ejemplo 2.13 en forma de producto de sumas. Para ellocomencemos construyendo la tabla de Karnaugh y hagamos las reuniones de todos los "0" de lafuncin en grupos de 2p

1 0 0 1

1 0 1 1

1 0 0 1

0 0 1 0

ab

00 01 11 10

00

01

11

10

cd\ab

bcd

bcd

bcd

Luego la expresin mnima de la funcin complementaria como suma de productos es

Page 54: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

6 2 Diseo digital_________________________________________________________________________________

f = bcd + bcd + bcd + ab

Complementando ambos lados de la igualdad y aplicando las leyes de De Morgan, nos queda laexpresin mnima requerida

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

__________________________________________________________________________________

Ejercicio 2.11

Obtener la expresin mnima como producto de sumas de las funciones propuestas en el ejercicio2.10

__________________________________________________________________________________

2.4.4 Minimizacin de funciones incompletamente especificadas

El mtodo de Karnaugh tambin se puede aplicar en el caso de funciones incompletamenteespecificadas. En esencia se trata de que, para las combinaciones de entrada para las cuales la funcinno est especificada, supondremos que la funcin toma el valor, "0" o "1", que sea ms convenientepara obtener la mxima simplificacin.

Ejemplo 2.15

Sea la funcin

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

Esta notacin expresa que para las combinaciones de las variables de entrada asociadas a losminterms 5,11, y 14 la funcin no est especificada.

La minimizacin de esta funcin en forma de suma de productos sera la correspondiente a la tablade Karnaugh de la figura 2.5.a, con lo que resulta la expresin f = acd + bcd + bd . Ntese quepara obtener esta simplificacin se ha asignado el valor "1" a uno de los trminos no especificados(concretamente el correpondiente a m5) y el valor "0" a los otros dos.

Si quisiramos obtener la expresin mnima como producto de sumas habra que agrupar los cerosde la funcin tomando otra vez para las combinaciones no especificadas el valor ms convenientepara obtener la mxima simplificacin.

Page 55: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 6 3_________________________________________________________________________________

ab\cd 00 01 11 10

00

01

11

10

0 0 0 1

0 X 1 0

1 1 1 X

1 0 X 1

ab\cdb)a)

00 01 11

00

01

11

10

0 0 0

0 X 1

1 1 1

1 0 X

Figura 2.5 Mapas de Karnaugh del ejemplo 2.15

De acuerdo con la figura 2.5.b, la expresin mnima como suma de productos de la funcin negaday la expresin final como producto de sumas sern

f = abd + ac + bd

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

Ntese que en este ltimo caso se ha efectuado una asignacin de valores para los trminosinespecificados diferente de la realizada para obtener una suma de productos mnima, concretamente"1" para el correspondiente a m14 y "0" para los otros dos.

Ejercicio 2.12

Obtener las expresiones mnimas como suma de productos y como producto de sumas de lafuncin incompletamente especificada siguiente:

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

__________________________________________________________________________________

2.4.5 Limitaciones del mtodo de Karnaugh

En este texto no hemos intentado presentar soluciones universales al problema de la minimizacin defunciones lgicas. En concreto, el mtodo presentado deja dos lagunas importantes: 1- Àqu hacer confunciones de muchas variables? 2- Àqu hacer cuando se presentan varias funciones lgicas de lasmismas variables (multifunciones) y lo que interesa minimizar es el nmero global de trminospresentes en sus expresiones algebraicas?

Page 56: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

6 4 Diseo digital_________________________________________________________________________________

Respecto al primer problema hay que indicar que existen herramientas informticas de ayuda al diseodigital que permiten resolverlo con comodidad: es evidente que el mtodo de simplificacin deKarnaugh pierde su manejabilidad cuando el nmero de variables de la funcin es igual o superior aseis, pero tambin es evidente que el algoritmo que se aplica no depende de este nmero, siendoposible implementarlo informticamente.

Admitiendo como entrada la tabla de verdad, una expresin algebraica, e incluso en algunos casos unlogigrama de la funcin, estas herramientas informticas proporcionan una expresin simplificada de lafuncin. Esta expresin suele ser mnima cuando el nmero de variables es inferior a una cierta cota, ymuy simplificada (pero no mnima) cuando el nmero de variables supera esta, caso en el que suelenemplearse algoritmos no estrictamente de minimizacin.

En cuanto a la simplificacin de multifunciones, no es evidente que se obtenga un resultado ptimo(con el menor nmero global de trminos) a base de minimizar cada funcin por separado. Veamosesto 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 nivelesmnima, es decir con el menor nmero total posible de puertas.

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

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

å

Una opcin es minimizar cada funcin por separado, con lo que se obtienen los mapas y ellogigrama de la figura 2.6.

b

a

a

c

c

2

1c

a

F

Fb00 01 11 10

0

1

a\bc

1 1 1 1

0 0 1 0

F = a + bc1

00 01 11 10

0

1

1 0 0 1

0 0 1 0

F = abc + ac2

Figura 2.6 Primera solucin del ejemplo 2.16

Observando el resultado obtenido vemos que es posible realizar las funciones utilizando una puertamenos si se aprovecha el trmino comn m7, tal como indica la figura 2.7, con lo que se llega alresultado, esta vez s, mnimo.

Page 57: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 6 5_________________________________________________________________________________

c

a

F2

F1

ac

ab

00 01 11 10

0

1

1 0 0 1

0 0 1 0

F = abc + ac2

00 01 11 10

0

1

1 1 1 1

0 0 1 0

F = a + abc1

a\bc

Figura 2.7 Segunda solucin del ejemplo 2.16

__________________________________________________________________________________

A la luz de lo mostrado en el ejemplo 2.16, el mtodo de simplificacin de multifunciones deberaconsiderar el reutilizar puertas en ms de una funcin o, lo que es lo mismo, buscar trminos o gruposcomunes a diversas funciones.

El mtodo de Quine-McCluskey, que no presentaremos en este texto, es un mtodo tabular basado enla misma idea que el de Karnaugh, es decir, en simplificar expresiones del tipo suma de productos oproducto de sumas, aplicando la equivalencia booleana a(b + b ) = a o su dual, a + (bb ) = a , quepermite minimizar multifunciones. Ahora bien, incluso para pocas variables, en este mtodo sepierden las "facilidades visuales" que posee el de Karnaugh, ya que es engorroso de usar, pero suimplementacin informtica es directa y sencilla.

2.5 Cuestiones y problemas

Cuestiones

C2.1 ÀCuntas funciones incompletamente especificadas distintas de n variables pueden encontrarse?

C2.2 Plantee las diferencias entre suma lgica y suma aritmtica. ÀCon qu funciones lgicas puedeidentificarse 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 notacin de minterms y maxterms?Explquelo con un ejemplo.

C2.5 Explore en detalle las consecuencias de utilizar la misma notacin, referente a los subndices,para los minterms que para los maxterms, y no la dual, tal como se comenta en el apartado 2.3.1.

Page 58: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

6 6 Diseo digital_________________________________________________________________________________

C2.6 ÀQu ventajas de orden prctico 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 mtodode minimizacin?

C2.8 Considrese la posibilidad de usar distintos cdigos de Gray para ordenar las variables en un mapade Karnaugh. ÀAfectara al mtodo de simplificacin y/o al resultado?

C2.9 Escriba la expresin algebraica como suma de minterms y como producto de maxterms de lasfunciones XOR de dos y tres variables. Escriba a continuacin la expresin obtenida al aplicar elmtodo de simplificacin de Karnaugh, y compare los resultados.

C2.10 ÀPor qu, al simplificar una funcin mediante el mtodo de Karnaugh, los "1" del mapa deKarnaugh deben reunirse en grupos de 2p?

C2.11 ÀEs nica la expresin mnima como suma de productos asociada a una funcin lgica? Ilustresu respuesta con la funcin:

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

C2.12 Enuncie de forma sistemtica el mtodo dual de minimizacin de Karnaugh para obtenerdirectamente expresiones en forma de producto de sumas.

C2.13 Piense en cmo debe aplicarse el mtodo de simplificacin de Karnaugh para funciones de 5variables. Aplquelo a la funcin 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 lgicas NOR y NAND de dos variables utilizando nicamente un mdulocomo el indicado a continuacin. ÀSera posible realizar tambin la funcin XOR de dos variablessolamente con este mdulo?

Page 59: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 6 7_________________________________________________________________________________

P2.2 La composicin de funciones lgicas es otra funcin lgica. Si consideramos el caso defunciones lgicas incompletamente especificadas, determine cmo ser la funcin f tal que

f (xn-1,..., x1, x0 ) = g h(xn-1,..., x1, x0 )[ ]

considerando los siguientes casos:

a) h est especificada incompletamente y g completamente.

b) h est especificada completamente y g incompletamente.

c) h y g estn especificadas incompletamente.

Se sugiere analizar primero algn caso con funciones concretas y despus generalizar el resultado.

P2.3 Hllense las expresiones algebraicas de las funciones y1 e y2. Escribnse tambin sus tablas deverdad y sus mapas de Karnaugh.

a)

d

a

y

b

c1

b

b)

yd

ab

c

2

b

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

a) ab = ac /Þ b = c

b) ab = ac

a + b = a + cìíî

üýþ

Þ b = c

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

Page 60: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

6 8 Diseo digital_________________________________________________________________________________

P2.5 Obtenga una expresin algebraica y una tabla de verdad de cada una de las funciones realizadas porel logigrama siguiente

a

bf2

f1

P2.6 Demuestre las igualdades siguientes:

a Å b = a Å b

a(b Å c) = ab Å ac

P2.7 Cualquier funcin lgica de dos variables f(x,y) puede expresarse en funcin de una combinacinde cuatro parmetros ai Î 0,1, de la siguiente manera

f (x,y) = a0xy + a1xy + a2xy + a3xy

que corresponde a la forma cannica en suma de productos. Demuestre que tambin es posible escribirf(x,y) en funcin de otros cuatro parmetros bi Î 0,1, as

f (x,y) = b0 Å b1y Å b2x Å b3xy

P2.8 Una funcin lgica f es completa si cualquier otra funcin lgica g puede ser expresadanicamente en trminos de f. Suponiendo que es posible utilizar como entradas dos variables lgicas ylos valores constantes "0" y "1", Àcules de las 16 funciones diferentes de dos variables son por smismas completas? Justificar la respuesta. Utilzese 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 funcin f(a,b,c,d).

b) Expresar f mediante las formas cannicas SoP y PoS.

Page 61: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseo digital 6 9_________________________________________________________________________________

c) Realizar f utilizando el menor nmero posible de puertas NOR de tres entradas.

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

a

a

b

c

c

d

d

d

f

P2.9 Dada la funcin lgica 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 funcin f = f1 f2 + f3 utilizando el mtodo de Karnaugh.

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

3å f 3 = M(2,3,5,7)

P2.11 Disee un logigrama que corresponda a un conversor de cdigo binario de 3 bits a Gray de 3bits. ÀEs posible hacerlo utilizando solamente puertas XOR de 2 entradas?

P2.12 Disee un sistema combinacional como el especificado utilizando una red de puertas AND,OR, NOT de dos etapas. (Nota): en este caso el smbolo S indica suma aritmtica.

SISTEMA A

DISE ARX Z

3 2 X Î 0,1 3

Z Î 0,1 2Z = Xi

i=0

2

å

Page 62: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

7 0 Diseo digital_________________________________________________________________________________

P2.13 El objetivo es disear un comparador y detector de igualdad que opere con nmeros codificadosen binario de dos bits, segn la siguiente especificacin:

az

23

b2

SISTEMA A

DISEAR

z0 =1 si

0 siìíî

a = b

a ¹ b z1 =

1 si

0 siìíî

a > b

a £ b z2 =

1 si

0 siìíî

a < b

a ³ b

Se pide realizar una implementacin mnima del comparador utilizando nicamente puertas NOR.Nota: Obsrvese que las funciones son mutuamente excluyentes y que es posible obtenercualquiera de ellas a partir de las otras dos.

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

h8

h 1

h 4

h 2F

donde las entradas corresponden a las horas de un reloj codificadas en binario: F vale "1" paraciertas combinaciones de entrada (horas). Se pide realizar un logigrama mnimo que d el valorlgico "1" para las mismas combinaciones de entrada vlidas que el anterior.

P2.15 Simplifique la funcin f = f1 + f2 f3 utilizando el mtodo de Karnaugh.

f1 = m(1,7)3å + m(6)

xå f 2 = m(3,5,6)

3å f 3 = M(5,6,7)

P2.16 Implemente la funcin f(a,b,c) especificada por la siguiente evolucin temporal de los valores dela salida en funcin de los valores de las variables de entrada, donde el nivel alto corresponde al valorlgico "1" y el bajo al valor "0".

a) Utilizando solamente puertas NAND.

Page 63: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos abstractos del diseño digital 71________________________________________________________________________________

b) Utilizando solamente puertas XOR de dos entradas.

f

a

c

b

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

SISTEMA A

DISEÑAR

MMMM

D

D

D8

4

2

1

31

30

<30

P2.18 Diseñe un sistema combinacional que determine si una combinación codificada en ASCIIcorresponde 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ónincompletamente especificada Y.

Y

XXXX 3 2 1 0

0Y

XXXX 3 2 1 0

1

Page 64: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

7 2 Diseo digital_________________________________________________________________________________

a) Analice la funcin lgica Y0 y escriba su forma cannica como producto de sumas.

b) Construya su mapa de Karnaugh y encuentre la expresin mnima de Y0 como producto desumas.

c) Si Y1, en la figura de la derecha, es otra posible implementacin para Y, Àcules de lascombinaciones de entrada X3 X2 X1 X0 deben ser inespecificadas y por qu? Razone si seraposible que hubiera ms inespecificaciones.

d) Encuentre el mapa de Karnaugh de Y. Proponga una implementacin mnima de Y hecha condos niveles de puertas NAND.

P2.20 Se pide hacer la implementacin mnima del sistema combinacional siguiente teniendo encuenta que para realizarla se dispone solamente de 3 puertas OR de 3 entradas, 6 puertas AND de 3entradas y tantos inversores como sean necesarios.

x f4 3SISTEMA

ADISEAR

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

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

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

Õ4

Õ

Page 65: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 7 3_________________________________________________________________________________

Captulo 3 Fundamentos circuitales del diseo digital

En el captulo anterior se han presentado las bases formales necesarias para el tratamiento de funcioneslgicas. El lector en este punto debera sentirse capacitado para disear, a nivel de logigrama, sistemascombinacionales sencillos, especificar las funciones lgicas que los definen y obtener expresionessimplificadas de estas funciones. En este captulo se presentan estructuras circuitales que permitenrealizar fsicamente dichas funciones lgicas.

Los elementos bsicos de los circuitos digitales son los transistores, ya sean bipolares o de efecto decampo. Sea cual sea el tipo de transistor utilizado, diversas estructuras topolgicas son posibles, ycada una de ellas da lugar a una determinada familia de puertas lgicas. Este captulo se centra en lafamilia denominada CMOS (MOS complementaria), por ser en la actualidad la preponderante en elmercado de circuitos integrados digitales.

Como se observar, en este captulo, a diferencia de los anteriores, el nfasis est puesto en losaspectos elctricos, valores de corrientes y tensiones y su evolucin temporal. Posiblemente estosorprenda al lector, el cual deber realizar un cierto esfuerzo de adaptacin.

3.1 Caractersticas elctricas de las puertas lgicas

Una puerta lgica es un circuito electrnico cuyas entradas y salidas trabajan en conmutacin entre dosestados claramente diferenciados. En este texto utilizaremos como componente bsico de las puertaslgicas el transistor MOS y, en particular, nos centraremos en la llamada tecnologa CMOS. Antespresentaremos las caractersticas elctricas ms relevantes de una puerta lgica. Estas caractersticas songenricas y aplicables a puertas realizadas mediante cualquier tecnologa.

Vamos a centrar la descripcin de las caractersticas elctricas para una de las puertas lgicas mssencillas: el inversor. En cualquier caso, lo que aqu presentaremos es directamente extrapolable a lasentradas y salidas de cualquier otro tipo de puerta.

Page 66: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

7 4 Diseo digital_________________________________________________________________________________

3.1.1 Curva de transferencia y niveles lgicos

Si en una puerta lgica se utilizan dos valores de tensin claramente diferenciados tanto en las entradascomo en las salidas, es natural establecer una correspondencia, en principio arbitraria, entre estos dosvalores y los valores posibles de una variable lgica, "0" y "1". Restringido al caso de un inversor,cuando la entrada tome el valor de tensin asignado al valor lgico"0", la salida debe tomar el valor detensin correspondiente al valor lgico "1" y viceversa.

La curva de transferencia de un inversor relaciona las tensiones de salida y de entrada. Esta curva sueletener la forma genrica presentada en la figura 3.1.

iVDD

VO

V

VOH

VOL

VIHVIL

VOHmin

VOLmax

VDD

VOVi

Figura 3.1 Curva de transferencia de un inversor

Para un funcionamiento correcto del inversor es preciso asegurar que en rgimen esttico el punto detrabajo del circuito (Vi,VO) se site en las zonas extremas de entradas y salidas. Estas zonas se definende la manera siguiente: la tensin de entrada al inversor Vi es considerada valor lgico alto si es mayorque cierta tensin VIH; con lo que se genera, de acuerdo con la curva de transferencia, una tensin desalida baja (inferior a VOLmax), que corresponder a su valor lgico complementario. En cambio, Vi seconsidera valor lgico bajo cuando es inferior a la tensin VIL, lo que da lugar a una tensin de salidaalta (superior a VOHmin), que corresponder a su valor lgico complementario.

VOL es el valor de tensin que toma la salida cuando la tensin a la entrada corresponde al mejor valorlgico alto posible (Vi=VDD). Simtricamente, VOH es el valor de tensin en la salida cuando latensin en la entrada corresponde al mejor valor lgico bajo posible (Vi=0). Por otro lado, VIL es el

Page 67: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 7 5_________________________________________________________________________________

mnimo valor de Vi tal que en dicho punto la derivada de la curva de transferencia toma el valor -1.Anlogamente VIH es el mximo valor de Vi para el cual la derivada de la curva de transferencia tomael valor -1. Estos lmites se corresponden con los peores niveles lgicos aceptables a la entrada.Subsidiariamente se define VOHmin como el valor que toma la salida cuando Vi=VIL y VOLmax comoel 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 lgicoasociado. Tambin puede observarse que un circuito con una curva de transferencia como la de la figura3.1 polarizado en la zona VIL<Vi<VIH se comportara como un amplificador: a pequeas variacionesde la tensin de entrada, superpuestas a la tensin de polarizacin o de rgimen permanente, responderacon variaciones mayores de la tensin de salida.

En resumen, para un correcto funcionamiento de una puerta inversora, los valores de tensin en laentrada deben estar comprendidos, cuando la entrada toma el valor lgico alto, entre VIH y la tensin dealimentacin VDD (habitualmente asignado al "1" lgico). Simtricamente cuando la entrada toma elvalor lgico bajo, los valores de tensin en la misma deben estar comprendidos entre VIL y 0 V(tensin asignada al "0" lgico). En estas condiciones los valores de tensin en la salida estncomprendidos entre VOL y VOLmax en el primer caso y entre VOHmin y VOH en el segundo. Se recogeun resumen esquematizado de todo esto en la figura 3.2.

"1"

"0"

VDD

VOVi

VOL

VOLmax

VOH

VOHmin

VDD

VIH

VIL

0

"1"

"0"

iV VO

Figura 3.2 Resumen esquemtico de los niveles lgicos en un inversor

3.1.2 Mrgenes de ruido

Cuando dos puertas lgicas se conectan en serie es preciso que haya una concordancia entre los niveleslgicos de salida de la primera de ellas y los de entrada de la siguiente, es decir, que la salida alta de laprimera puerta sea reconocida como entrada alta por la puerta siguiente, y que la salida baja de laprimera puerta sea reconocida como tal por la siguiente. Vamos a estudiar el caso de la conexin de dosinversores mostrado en la figura 3.3.

Page 68: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

7 6 Diseo digital_________________________________________________________________________________

A partir de la figura es evidente que la concordancia requerida de valores lgicos implica que secumplan dos condiciones: que VIH<VOHmin y adicionalmente que VIL>VOLmax.

VOL

VOLmax

VOH

VOHmin

VO1

VDD

VIH

VIL

0

i2V

1 2

NMH

NML

Figura 3.3 Conexin en cascada de inversores

Cuanto mayores sean las diferencias VOHmin-V IH y VIL-V OLmax , ms resistente ser elfuncionamiento del circuito a pequeas variaciones incontroladas del valor de la tensin VO1 atransmitir. Dado que el valor de la tensin de salida de un inversor est afectado de pequeasfluctuaciones espreas e indeseadas (comnmente llamadas ruido), nos cuestionamos cul es el valormximo 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 tensin a su entrada.

La figura 3.3 permite definir, ya formalmente, los mrgenes de ruido alto (NMH) y bajo (NML) de uninversor como

NMH = VOH min - VIH

NML = VIL - VOL max

Es conveniente darse cuenta de que en realidad el margen de ruido til es el menor de los dos: como lasseales espreas son incontroladas por naturaleza, pueden aparecer en cualquiera de los estados de lapuerta; por tanto, slo el menor de los dos mrgenes indica la proteccin real que tenemos frente alruido.

Page 69: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 7 7_________________________________________________________________________________

3.1.3 Retardos de propagacin

Una puerta lgica, como cualquier otro circuito electrnico, es incapaz de responder instantneamente(en un tiempo nulo) a un cambio de valor de sus entradas. Esto se debe a la existencia de efectoscapacitivos parsitos. As, por ejemplo, cuando la puerta tiene que dar a su salida un "1", tras haberdado un "0", suministra corriente a una capacidad de carga hasta que la tensin en bornas de sta alcanzaun valor alto (normalmente VOH). Simtricamente cuando la salida debe dar un "0" tras haber dado un"1", la puerta extrae corriente de la capacidad hasta que la tensin disminuye a un valor bajo(normalmente VOL).

Los efectos capacitivos parsitos siempre estn presentes en un circuito integrado, por lo que laexistencia de retrasos asociados con su carga y descarga es inevitable.

Cuando estudiemos el funcionamiento en rgimen transitorio, o conmutacin, de una puerta lgica lasupondremos cargada con un condensador CL, correspondiente a la capacidad parsita vista desde elnodo de salida. En rgimen permanente o esttico CL no tiene ninguna influencia; luego no afecta aparmetros elctricos "estticos" como son los niveles lgicos o los mrgenes de ruido.

La figura 3.4 muestra un ejemplo de evolucin temporal de las entradas y salidas de un inversor.

V DD

VOVi

C L

Vi

t

VO

t

t LHt HL

t PLHt PHL

50%90%

10%

Figura 3.4 Tiempos de conmutacin y retardos en un inversor

Se puede cuantificar el retraso producido por las conmutaciones mediante diversos parmetros: 1.-Tiempos de conmutacin alto-bajo y bajo-alto, tHL y tLH son los tiempos transcurridos desde que seproduce la conmutacin a la entrada hasta que la salida alcanza el 90% del valor final (caso tLH) o el10% del valor inicial (caso tHL). 2.- Retardos de propagacin alto-bajo (tPHL) y bajo-alto (tPLH)definidos hasta el 50% del valor inicial o final respectivamente. Es evidente que estos dos tipos detiempos no son independientes entre s.

Page 70: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

7 8 Diseo digital_________________________________________________________________________________

Por razones de orden prctico, en este texto trabajaremos casi exclusivamente con los retardos depropagacin: como se ver en el captulo 4, es posible obtener estimaciones de tPHL y tPLH utilizandomtodos aproximados muy sencillos. En cambio, la obtencin de los tiempos de conmutacin exigeclculos farragosos; por ello normalmente no se aborda este clculo manualmente sino mediantesimulacin del circuito. El lector interesado en el clculo manual encontrar ejemplos concretos en elvolumen de esta misma coleccin indicado en la bibliografa.

3.1.4 Potencia consumida

Una puerta lgica es un circuito que conmuta entre dos estados estables y, por tanto, la potenciaconsumida ser, en principio, distinta cuando la salida est en estado alto que cuando est en estadobajo o bien cuando est conmutando de un estado al otro.

Razonando en trminos de rgimen permanente, podemos definir la potencia esttica consumida por uninversor como la media aritmtica entre la potencia disipada cuando la salida es alta y la potenciadisipada cuando la salida es baja

PD =POH + POL

2 con

POH = VDD IDD HPOL = VDD IDD L

ìíï

îï

siendo VDD e IDD la tensin y la corriente suministradas por la alimentacin al circuito. Estadefinicin supone implcitamente que la salida del inversor pasa aproximadamente la mitad del tiempoen nivel alto y la otra mitad en nivel bajo.

Por otra parte, en cuanto a la potencia consumida durante los transitorios, podemos definir la potenciadinmica consumida por un inversor como la necesaria para poder conmutar el valor de la tensin en elnodo de salida en un cierto perodo de tiempo. As, tomando como referencia una seal de entradaperidica, se tiene

V DD

VOVi

C LT

T/2

® Pdin =1T

CLTò VO (t)

dVO (t)

dtdt

Figura 3.5 Potencia dinmica consumida por un inversor

En general una puerta lgica pasa ms tiempo en rgimen esttico que conmutando, por lo que elconsumo de potencia ms notable suele ser el esttico. No obstante, en algunas familias lgicas, comola CMOS, el consumo esttico es prcticamente nulo, siendo el consumo dinmico el nicosignificativo.

Page 71: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 7 9_________________________________________________________________________________

3.2 El transistor MOS

Dado que todos los circuitos cuya presentacin y estudio es el objetivo del presente captulo estnformados por transistores MOS (Metal îxido Semiconductor), resulta imprescindible introducir laestructura fsica y el funcionamiento bsico del transistor MOS, presentando tambin los tipos ovariantes de mayor inters.

3.2.1 Estructura y funcionamiento bsico

El transistor MOS es un dispositivo de tres terminales en el cual el flujo de corriente entre dos deellos, denominados drenador y surtidor, es controlado fundamentalmente a travs de la tensin aplicadaal tercer terminal, llamado puerta.

La estructura fsica de un transistor MOS se muestra en la figura 3.6. El sustrato puede ser silicio detipo P o de tipo N. Drenador y surtidor (D y S) son zonas muy dopadas con impurezas de tipocontrario a las del sustrato. La puerta (G) est formada por una capa de polisilicio muy dopada (de tipoN), existiendo entre sta y el sustrato una capa de xido de silicio SiO2, material de excelentespropiedades aislantes. En funcin de si el sustrato es tipo P o tipo N hablaremos respectivamente detransistores MOS de canal N (NMOS) o de canal P (PMOS).

Zona muy dopada (D/S)

Zona muy dopada (S/D)

Puerta (G)

Sustrato (B)

Oxido de puerta

Zona delcanal

W

L

Figura 3.6 Estructura fsica de un transistor MOS

Si se observa su estructura es evidente que el transistor MOS es un dispositivo simtrico: drenador ysurtidor son fsicamente indistinguibles. En realidad cada uno de los terminales S/D y D/S actuarcomo drenador o como surtidor en funcin de las tensiones que se apliquen al transistor.

Para fijar ideas veamos de forma cualitativa el funcionamiento de un transistor NMOS. Como semuestra en la figura 3.7, el sustrato ser de tipo P y tanto drenador como surtidor sern 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 sern VGS=VG y VDS=VD. Esta

Page 72: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 0 Diseo digital_________________________________________________________________________________

terminologa indica que el drenador de un transistor NMOS es el terminal simtrico al que se aplica latensin ms alta. Dada su escasa influencia, en primera aproximacin, sobre el funcionamiento deltransistor, obviaremos de momento el efecto de una tensin de sustrato distinta de la de surtidor.Supondremos, por tanto, una tensin VSB=0.

D (+)

G

S (-)B ID

D (+)S (-)

B

G

p

nn ++

Figura 3.7 Seccin vertical y smbolo circuital de un transistor NMOS

Una primera conclusin que puede obtenerse a la vista de la estructura del transistor es que, encondiciones estticas, la corriente que fluye por el terminal de puerta siempre es nula, puesto que estconectado a un material aislante. En consecuencia, en estas condiciones slo puede fluir una corrienteno nula (ID) entre los dos terminales simtricos.

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

Si por el contrario aplicamos una tensin VGS positiva, por analoga a un condensador, se acumularncargas negativas (electrones) en la zona de substrato debajo de la puerta. Si la tensin VGS essuficientemente grande, estas cargas negativas formarn un "canal" conductor que permitir lacirculacin de corriente entre los dos terminales extremos. Si simultneamente la tensin VDS espositiva, los electrones fluirn del terminal de la izquierda (llamado por ese motivo surtidor) alterminal de la derecha (llamado por este motivo drenador). Como se define la corriente elctrica comoun 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 tambin mayor.Asimismo tambin parece razonable pensar que, atendiendo a la sencilla descripcin del mecanismofsico involucrado, la corriente ID aumentar tambin al aumentar la tensin VDS. Esto es cierto parapequeos valores de VDS; sin embargo, al aumentar VDS ms all de un cierto valor, la corriente dejade aumentar (es decir, satura), situacin en que se dice que el canal est estrangulado. La razn es lasiguiente: si la tensin de puerta es fija, al aumentar progresivamente la tensin en el drenador, llegaun momento en el que la diferencia de potencial entre la puerta y los puntos prximos al drenador es

Page 73: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 8 1_________________________________________________________________________________

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

A continuacin se presentan expresiones analticas sencillas que relacionan la corriente en un transistorNMOS con las tensiones aplicadas en terminales. Para ello seguiremos utilizando la terminologadefinida en los prrafos anteriores y supondremos que existe un cortocircuito entre el sustrato y elsurtidor del transistor (es decir, VSB=0).

Llamaremos tensin umbral VT a la tensin de puerta VGS mnima necesaria para formar canal yposibilitar por tanto la circulacin de corriente entre drenador y surtidor. Valores tpicos de la tensinumbral en transistores NMOS se sitan en el rango 0.7-1V. Para valores de VGS menores que VT lacorriente circulante entre drenador y surtidor es prcticamente nula, situacin que define la llamada zonade corte del transistor.

La corriente que circula entre drenador y surtidor, para VGS>VT y valores pequeos de VDS, viene dadapor la expresin siguiente

ID = K (VGS - VT )VDS -VDS

2

2

é

ëêê

ù

ûúú

con K = mnCoxW

L

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

El margen de validez de la expresin anterior es VDS < VGS - VT . Este margen define la zona hmicade funcionamiento del transistor. En efecto, a partir de la expresin anterior de ID es fcil observar que,para un valor fijo de VGS y valores pequeos de VDS, la corriente muestra un comportamiento hmico

VDS ® 0 Þ ID » K(VGS - VT )VDS

que permite definir la resistencia equivalente de conduccin del transistor Ron como

Ron =dVDS

dID VDS ®0

=1

K(VGS - VT )

Para valores de VDS superiores, es decir, en el margen VDS > VGS - VT , el transistor entra en la zonade saturacin. La expresin analtica de la corriente de saturacin es

ID =K

2(VGS - VT )2

Page 74: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 2 Diseo digital_________________________________________________________________________________

donde podemos observar la no dependencia de ID con VDS.

Corriente Margen de validez Zona

ID = 0 VGS £ VT Corte (OFF)

ID = K (VGS - VT )VDS -VDS

2

2

é

ëêê

ù

ûúú

VGS > VT , VDS < VGS - VT Ohmica (W)

ID =K

2(VGS - VT )2 VGS > VT , VDS > VGS - VT Saturacin (SAT)

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 zonasde funcionamiento en rgimen permanente o esttico. Ntese que la corriente es siempre proporcional ala constante K y por tanto a la relacin de aspecto W/L, es decir la corriente que puede conducir eltransistor es mayor cuando W aumenta y/o L disminuye.

La figura 3.9 muestra en forma grfica las caractersticas ID(VDS) para distintas tensiones de puerta(0<VT<VGS1<VGS2<VGS3). La figura muestra tambin la frontera entre las zonas de saturacin yhmica, dada por la expresin VDS=VGS-VT.

ID

VDS

VGS1

VGS2

VGS3

V < VGS T

V =V - VGS TDS

Figura 3.9 Curvas caractersticas de un transistor NMOS

Existe un tipo de transistor NMOS que conduce corriente entre drenador y surtidor incluso cuando latensin VGS es nula, que recibe el nombre de transistor NMOS de vaciamiento o deplexin (en

Page 75: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 8 3_________________________________________________________________________________

contraposicin a los transistores de acumulacin, que es el nombre que reciben los descritos en losprrafos anteriores). En un transistor NMOS de vaciamiento el canal ya est formado para VGS=0,situacin equivalente a decir que en este tipo de transistor el valor de la tensin umbral es negativo yque para trabajar en corte precisa una tensin de puerta VGS an ms negativa (VGS<VT). Lasexpresiones que describen el funcionamiento de estos transistores son las mismas que para los deacumulacin utilizando el valor correspondiente para la tensin umbral.

Un transistor PMOS presenta un funcionamiento cualitativamente idntico al de un NMOS, aunquecon diferencias debidas al distinto signo de los portadores que soportan la corriente, que en el caso deun PMOS son los huecos (cargas positivas) frente a los electrones (cargas negativas) en el caso de unNMOS.

En la figura 3.10 se detallan la seccin fsica y el smbolo circuital de un transistor PMOS. Elsustrato es de tipo N, mientras que el drenador y el surtidor son de tipo P. Definiremos como surtidorel terminal simtrico donde se aplica la tensin ms alta y tomaremos all la referencia de tensiones(VS=0). Otra vez obviaremos el efecto de la tensin de sustrato, que consideraremos cortocircuitado conel surtidor (VSB=0).

G

D (-) S (+)B ID

S (+)D (-)

B

n

pp

G

++

Figura 3.10 Seccin vertical y smbolo circuital de un transistor PMOS

En situacin de conduccin el canal de un transistor PMOS debe formarse mediante cargas positivas.Para ello es necesario aplicar una tensin VGS suficientemente negativa. La tensin umbral VT es portanto negativa (un valor tpico es -1V). Si la tensin VGS es inferior a VT, la aplicacin de unatensin VDS negativa provoca el flujo de huecos desde el terminal ms positivo (que actuar comosurtidor) hacia el terminal menos positivo (que realizar el papel de drenador). Ntese que, salvo lasinversiones de signo, este funcionamiento coincide con el descrito para un transistor NMOS.

Las expresiones de la corriente en un transistor PMOS son formalmente idnticas a las de un transistorNMOS 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 direccin de sta como los mrgenes deaplicabilidad se invierten, quedando las indicadas en la figura 3.11.

Page 76: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 4 Diseo digital_________________________________________________________________________________

Corriente Margen de validez Zona

ID = 0 VGS ³ VT Corte (OFF)

ID = K (VGS - VT )VDS -VDS

2

2

é

ëêê

ù

ûúú

VGS < VT , VDS > VGS - VT Ohmica (W)

ID =K

2(VGS - VT )2 VGS < VT , VDS < VGS - VT Saturacin (SAT)

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

La figura 3.12 muestra en forma grfica las caractersticas ID(VDS) para distintas tensiones de puerta(0>VT>VGS1>VGS2>VGS3) en un transistor PMOS. La figura tambin muestra la frontera entre laszonas de saturacin y hmica.

ID

-V DS

VGS1

VGS2

VGS3

V > VGS T

V =V - VGS TDS

Figura 3.12 Curvas caractersticas de un transistor PMOS

a) b) c)

Figura 3.13 Smbolos usados para distintos tipos de transistores MOS.a) NMOS de acumulacin; b) PMOS de acumulacin; c) NMOS de vaciamiento

Page 77: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 8 5_________________________________________________________________________________

Los smbolos que en adelante utilizaremos para los tres tipos de transistores MOS presentados semuestran en la figura 3.13, donde se supone por defecto que el sustrato est conectado a la tensin msbaja del circuito en el caso de los NMOS y a la tensin ms alta en el caso del PMOS.

3.2.2 Efectos de segundo orden

El modelo de funcionamiento en rgimen esttico del transistor MOS dado en los prrafos anteriores esel ms simple posible, aunque suficiente para realizar clculos de primer orden y orientar diseos.Clculos ms detallados o bien clculos en circuitos con un cierto nmero de componentes necesitande la utilizacin de simuladores circuitales. Entre ellos el ms difundido y convertido en referencia esSPICE. Dicho simulador es capaz de asumir distintos modelos, de complejidad y precisin crecientes,para el transistor MOS. Estos modelos se identifican mediante un parmetro llamado LEVEL. Elmodelo de LEVEL 1 recoge las expresiones presentadas anteriormente junto con algunos efectos desegundo orden importantes: el efecto de una tensin no nula entre sustrato y fuente sobre el valor de latensin umbral (denominado efecto sustrato), la modulacin de la longitud del canal debido a la tensindrenador-surtidor y la variacin de la movilidad con el campo elctrico. Una presentacin del modeloSPICE del transistor MOS a LEVEL 1 puede encontrarse en el volumen de esta misma coleccinrefernciado anteriormente. Por otra parte la descripcin del transistor MOS hecha aqu es meramentefenomenolgica, una justificacin sencilla pero desde un punto de vista ms fsico puede ser encontradaen el texto mencionado.

3.3 Puertas lgicas NMOS

Este captulo se centra en el anlisis de las puertas lgicas realizadas mediante tecnologa CMOS. Sinembargo este apartado se dedicar al estudio de la tecnologa NMOS, histricamente predecesora de laCMOS y poco utilizada en la actualidad. Este estudio se justifica, ms que por su incidencia en laprctica, por servir de introduccin conceptual y metodolgica al estudio de la tecnologa CMOS.

3.3.1 Inversor NMOS con carga de vaciamiento

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

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

Page 78: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 6 Diseo digital_________________________________________________________________________________

-En el transistor de carga el drenador es el terminal conectado a VDD, y en eltransistor inversor el surtidor es el terminal conectado a masa; recordar que en un transistorNMOS el terminal conectado a tensin ms positiva es el drenador; esto unido a que en elcircuito de la figura no puede haber en rgimen permanente tensiones mayores que VDD niinferiores a 0V, permite identificar los terminales.

MOSL

MOSI

VDD

VO

Vi

Figura 3.14 Inversor NMOS con carga de vaciamiento

-La corriente que atraviesa el transistor de carga IDL coincide con la que atraviesa eltransistor inversor IDI (recordar que en rgimen permanente la corriente de puerta es nula), esdecir

IDL = IDI = ID

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

Vi = VGSI

Vo = VDSI

-En el transistor de carga la tensin puerta-surtidor siempre es nula, mientras que latensin drenador-surtidor se relaciona con la de salida del inversor

VGSL = 0

VDSL = VDD - V0

Adems es preciso tener en cuenta que la tensin umbral del transistor inversor VTI es positiva (es unNMOS de acumulacin) mientras que para el transistor de carga la tensin umbral VTL es negativa.

En la figura 3.15 vemos las curvas caractersticas de cada uno de los dos transistores. Ntese que comoel transistor de carga tiene cortocircuitada la puerta con el surtidor slo tenemos que considerar la curvacorrespondiente a VGSL=0.

Page 79: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 8 7_________________________________________________________________________________

V

TI

ID

VDSIV < VGSI

VGSI1

VGSI2

GSI3

DSL

V >0

ID

V

GSL

V = 0GSL

V <0GSL

Figura 3.15 Curvas caractersticas del transistor inversor y del transistor de carga

Las curvas caractersticas son representaciones grficas de las ecuaciones del transistor. Por tanto esposible plantearse una solucin grfica de dichas ecuaciones que permita por lo menos de formacualitativa entender el funcionamiento del inversor. Para ello tenemos que representar las curvascaractersticas de ambos transistores sobre los mismos ejes. Si utilizamos los ejes VDSI o VO (recordarque VDSI=VO) e ID, las curvas caractersticas del transistor inversor se ven inalteradas (sus ejes no seven modificados); en cambio, la curva caracterstica del transistor de carga debe ser invertida ydesplazada a la derecha una cantidad VDD, puesto que VO=VDD-VDSL. Resolver la ecuacin resultantede igualar las dos corrientes para una tensin de entrada dada significa encontrar la interseccin entre lasdos curvas correspondientes a esa tensin. La figura 3.16 muestra el resultado de esta superposicinsobre los mismos ejes.

Oi TI DDOL

V =VDD

ID

V

Vi1

V

V < V

i2

i

VV

Figura 3.16 Curvas caractersticas de los dos transistoressobre los ejes ID(VO)

Page 80: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

8 8 Diseo digital_________________________________________________________________________________

Para cada valor de Vi los valores de VO e ID se encuentran en la interseccin de la curva caractersticadel transistor inversor para Vi con la curva VGSL=0, correspondiente al transistor de carga. Vamosaplicar la solucin grfica para obtener los niveles lgicos VOH y VOL.

Cuando Vi=VGSI=0 tenemos que VGSI<VTI y por tanto el transistor inversor estar en corte.Observando la figura 3.16, la curva caracterstica correspondiente coincide con el eje de abscisas (ID=0)y por tanto la interseccin con la curva caracterstica del transistor de carga se sita en el punto(VO=VDD, ID=0). En consecuencia, el valor de tensin a la salida correspondiente al estado alto serVOH=VDD.

Anlogamente cuando Vi=VGSI=VDD la curva correspondiente del transistor inversor ser VGSI=VDD,cuya interseccin con la caracterstica del transistor de carga nos fijar el valor VO=VOL, que ser elvalor de tensin a la salida correspondiente al estado bajo. Desde el punto de vista cualitativo, vemosque para este tipo de inversor VOL es siempre mayor que cero; asimismo, cuando la salida tome estevalor circular una corriente no nula a travs de los dos transistores.

Ejemplo 3.1

Encontrar la expresin analtica de VOL en un inversor NMOS con carga de vaciamiento. Calcularel valor de esta tensin 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 expresin pedida, suponer una zona de trabajo para cadatransistor e igualar las expresiones de la corriente. De la ecuacin resultante se obtiene, tras lasmanipulaciones necesarias, dicha expresin. En caso de disponer de valores numricos siempredebemos comprobar a posteriori que los resultados obtenidos son consistentes con las hiptesishechas. En caso de inconsistencia las hiptesis deben ser modificadas y el clculo repetido.

En principio la hiptesis ms razonable es que en estado bajo, VO=VOL, el transistor inversor esten zona hmica y el de carga en saturacin. En estas condiciones

IDI = KI (VGSI - VTI )VDSI -VDSI

2

2

é

ëêê

ù

ûúú

= IDL =KL

2(VGSL - VTL )2

Sustituyendo las variables por sus valores concretos en el circuito queda

VGSI = Vi = VDD

VDSI = VO = VOL

VGSL = 0

ü

ýï

þï

Þ KI (VDD - VTI )VOL -VOL

2

2

é

ëêê

ù

ûúú

= KLVTL

2

2

Que conduce a la siguiente expresin final

Page 81: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 8 9_________________________________________________________________________________

KR =KI

KL=

(W / L)I

(W / L)L=

VTL2

2(VDD - VTI )VOL - VOL2

Llamaremos relacin de aspecto del inversor KR al cociente de relaciones de aspecto. La expresinencontrada permite determinar el cociente entre relaciones de aspecto necesario para obtener unapuerta inversora NMOS con un nivel lgico VOL dado. Es evidente que cuanto ms conductor seael MOSI menor ser VOL y, viceversa, cuanto ms conductor sea el MOSL mayor ser el valor deVOL.

Aplicando los valores numricos del enunciado a la expresin obtenida se llega a una ecuacincuadrtica cuyas soluciones son

2VOL2 - 16VOL + 9 = 0 Þ VOL »

7,39 V

0,61 Vìíî

donde slo la segunda solucin tiene sentido fsico, pues se corresponde con la parte de la parbolaque modela la curva caracterstica del MOS.

Finalmente, es necesario comprobar la bondad de las suposiciones realizadas para obtener elresultado antes de darlo definitivamente por vlido; en concreto se ha supuesto que el MOSLtrabaja en saturacin y que el MOSI lo hace en hmica. Vamos ver si esto es cierto

VGSI = VDD = 5 V

VDSI = VOL = 0,61 Vìíî

üýþ

Þ VDSI < VGSI - VTI Þ MOSI en W

VGSL = 0 V

VDSL = VDD - VOL = 4,39 Vìíî

üýþ

Þ VDSL > VGSL - VTL Þ MOSL en SAT

Podemos considerar aceptable un valor de VOL que aplicado a la entrada de otro inversor seainterpretado correctamente, es decir, como un "0" lgico. Para ello es necesario verificar lacondicin VOL<VTI, condicin que cumple, aunque no muy holgadamente, el inversor de nuestroejemplo.

__________________________________________________________________________________

Ejercicio 3.1

ÀCul es el valor de la corriente que circula por el inversor del ejemplo 3.1 cuando la entrada valeVDD? Calcule el valor que deberia tener KL manteniendo igual el resto de datos para obtener unatensin de salida en estado bajo VOL=0.2 V en dicho inversor NMOS. Calcular el valor de lacorriente ID para esta nueva situacin.

__________________________________________________________________________________

Page 82: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

9 0 Diseo digital_________________________________________________________________________________

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

MOSI OFF si VGSI £ VTI Þ Vi £ VTI

MOSI en W si VDSI < VGSI - VTI Þ VO < Vi - VTI

MOSI SAT si VO > Vi - VTI

MOSL en W si VDSL < VGSL - VTL Þ VO > VDD + VTL

MOSL SAT si VO < VDD + VTL

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

V +V

VDD

VO

Vi

VTI

VDD

VOL

DD TL V -V i TI

I

II

III

IV

Zona

MOSI

MOSL

I

OFF

W

II

SAT

W

III

SAT

SAT

IV

W

SAT

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 posicin de las rectas frontera entre saturacin y hmica para cada transistor,podemos ver que, en funcin de los valores de VTL y VTI, la sucesin de estados puede ser diferente.

Ejemplo 3.2

Calcular la potencia consumida en rgimen esttico por un inversor NMOS con carga devaciamiento. Aplicarlo al caso concreto del inversor del ejemplo 3.1.

Page 83: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 9 1_________________________________________________________________________________

Atendiendo a la definicin dada, la potencia consumida se calcula como el promedio entre lapotencia consumida cuando la salida toma el valor alto y la consumida cuando la salida toma elvalor bajo.

PDH = VDDID VI =0= 0

PDL = VDDID VI =VDD= VDDKL

VTL2

2

ü

ýï

þï

Þ PD =14

VDDKLVTL2 = 225 mW

__________________________________________________________________________________

En los prrafos anteriores hemos visto que tanto VOL como la potencia disipada dependen deldimensionado de los transistores (de KL para el caso de la potencia disipada y de KR para el valor detensin cuando la salida es baja). En el captulo prximo veremos que las dimensiones serndeterminantes tambin de los retardos de propagacin. Esta es una caracterstica no slo de latecnologa NMOS sino tambin de la CMOS. Por tanto, el dimensionado de los transistores es laprincipal variable de diseo de que dispone el diseador de circuitos integrados para conseguir que uncircuito cumpla las especificaciones elctricas deseadas.

3.3.2 Puertas bsicas NMOS

Este subapartado presenta en primer lugar la estructura de dos puertas lgicas bsicas (NOR y NAND)realizadas en tecnologa NMOS con carga de vaciamiento. A continuacin se presentan ejemplos depuertas arbitrarias, mostrando el procedimiento general de anlisis y diseo de este tipo de circuitos.

Puerta NOR: El esquema de una puerta NOR de dos entradas realizada en tecnologa NMOS concarga de vaciamento se presenta en la figura 3.18.

F

A B

V DD

A B F

0 00 11 01 1

1000

Figura 3.18 Puerta NOR NMOS

La salida F tomar el valor alto slo cuando los dos transistores de entradas A y B estn cortados, esdecir, cuando ambos tengan una tensin de puerta inferior a VT. En este caso la situacin ser idnticaa la del inversor NMOS visto anteriormente cuando el transistor inversor estaba cortado.

Page 84: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

9 2 Diseo digital_________________________________________________________________________________

En el caso de que uno cualquiera de los dos transistores de acumulacin en paralelo conduzca (tenga unvalor alto de tensin a su entrada) y con mayor motivo si los dos conducen simultneamente, el valorde la tensin en la salida ser bajo y por tanto el valor lgico asignado ser "0".

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

F

A

B

V DD

A B F

0 00 11 01 1

1110

Figura 3.19 Puerta NAND NMOS

Slo tendremos un valor bajo ("0" lgico) en la salida cuando los dos transistores en serie que formanel camino entre la salida y masa conduzcan, y por tanto el valor de las tensiones aplicadas a susentradas, A y B, sea alto. Para todas las dems combinaciones de valores lgicos en A y B alguno delos dos transistores de acumulacin estar cortado y la salida estar en valor alto.

Las estructuras presentadas en la figura 3.18 y 3.19 son fcilmente generalizables: para obtener puertasNAND/NOR de mayor nmero de entradas slo es necesario aadir ms transistores NMOS enserie/paralelo respectivamente.

Ejemplo 3.3

Obtnganse los niveles lgicos VOH y VOL de las puertas NOR y NAND de las figuras 3.18 y3.19 y comprense con los de un inversor NMOS. Considerar VTL=-4V y (W/L)=1/4 para todoslos transistores de vaciamiento, VT=1V y (W/L)=2 para todos los de acumulacin, y VDD=5V.

Inversor NMOS. Se trata de clculos ya realizados anteriormente, que para los valores del

ejemplo conducen a los resultados siguientes:

VOH = 5 V VOL = 0,258 V

Page 85: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 9 3_________________________________________________________________________________

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

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

VOL1 = VF V A =VDD

VB =0 VOL2 = VF VB =VDD

V A =0 VOL3 = VF V A =VB =VDD

Est claro que las dos primeras situaciones son idnticas al caso de un inversor (un transistor deacumulacin 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 figura3.20.a. En esta situacin la corriente suministrada por el transistor de carga se reparte por igualentre los dos transistores de acumulacin, es decir IL=I1+I2. Haciendo la suposicin de que eltransistor de carga trabaja en saturacin y que los de acumulacin lo hacen en hmica y aplicandolas expresiones correspondientes, se llega el resultado final VOL3 = 0,127 V , valor inferior al delinversor de referencia.

V DD

IL

I1

I2

VOL

VDD

VDD

VDD

IL

I1I2VDD VDD

VOL3

b)a)

Figura 3.20 Situaciones de clculo de VOL del ejemplo 3.3

Puerta NAND. El valor de VOH lo encontramos siguiendo razonamientos hechos anteriormente,VOH=VDD=5V. Adems en esta puerta tenemos una sola combinacin que genera salida baja,luego la definicin de VOL es:

VOL = VF V A =VB =VDD

En esta situacin los transistores en serie conducen, tal como indica la figura 3.20.b. LuegoIL=I1=I2. Haciendo la suposicin de que el transistor de carga trabaja en saturacin y de que los de

Page 86: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

9 4 Diseo digital_________________________________________________________________________________

acumulacion lo hacen en hmica y aplicando las expresiones correspondientes, se llega el resultadoVOL = 0,516 V , valor superior al del inversor de referencia.

Este ejemplo permite concluir que en los circuitos NMOS la asociacin de transistores en paralelono perjudica los niveles lgicos de la puerta, mientras que la asociacin en serie perjudica el valorlgico bajo (VOL aumenta), efecto que slo puede paliarse aumentando la relacin de aspecto delos transistores de acumulacin y/o reduciendo la del transistor de carga ms de lo que suele hacerseen un simple inversor.

__________________________________________________________________________________

Ejercicio 3.2

Generalice los niveles lgicos de puertas NAND y NOR encontrados en el ejemplo anterior para elcaso de puertas de n entradas.

__________________________________________________________________________________

Tiene inters, por otro lado, un anlisis no a nivel elctrico sino a nivel lgico de una implementacinNMOS. Este anlisis resulta extremadamente sencillo, como se muestra en el ejemplo 3.4, puesto queslo hay que considerar para qu combinaciones de variables de entrada conduce, o est en corte, cadatransistor de acumulacin. Se deduce del citado ejemplo que diseando adecuadamente la red detransistores de acumulacin se puede implementar cualquier funcin lgica.

Ejemplo 3.4

Analizar desde el punto de vista de funcionalidad lgica el circuito de la figura 3.21.

F

A

B

C

D E

V DD

Figura 3.21 Funcin lgica F(A,B,C,D,E) en tecnologa NMOS

Page 87: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 9 5_________________________________________________________________________________

Tendremos un valor bajo a la salida (F=0) cuando alguno de los caminos que unen este nodo conmasa tenga todos los transistores en estado de conduccin, 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 lgica el circuito de la figura 3.22.

D

F

B

V DD

E

VDD

C

A B

VDD

Figura 3.22 Funcin lgica F(A,B,C,D,E) en tecnologa NMOS

__________________________________________________________________________________

De los anlisis realizados en el ejemplo y ejercicio anteriores podemos intuir una tcnica de diseo defunciones cualquiera con tecnologa NMOS. Si somos capaces de obtener una expresin algebraicapara el inverso de la funcin se puede proponer directamente una topologa para la red NMOS. Talcomo podemos observar en la figura 3.21, el producto de dos trminos se corresponder con dosbloques en serie, mientras que la suma lgica lo har con bloques en paralelo.

Podemos notar que cada literal de la expresin escogida se traducir en un transistor de acumulacin;por tanto, si el criterio de diseo es minimizar el nmero de transistores deberemos obtenerexpresiones lo ms compactas posibles. Si algn literal aparece complementado en la expresin delinverso de la funcin necesitaremos, adems, un inversor. En el ejemplo siguiente podemos verdistintas implementaciones NMOS para una funcin.

Page 88: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

9 6 Diseo digital_________________________________________________________________________________

Ejemplo 3.5

Implementar la funcin lgica siguiente mediante tecnologa NMOS con el mnimo nmero detransistores posible.

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

Expresamos primeramente la funcin complementada como PoS y como SoP de forma mnima.

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

Expresin con 15 literales, donde tres de las variables aparecen negadas; es sencillo razonar quenecesitar 18 transistores NMOS de acumulacin y 4 de vaciamiento.

f SOP = AB + ACD + BCD + ABD

Esta propuesta contiene slo 11 literales y sigue necesitando tres inversores, con lo cual usar 14transistores NMOS de acumulacin y 4 de vaciamiento. Es posible proponer expresiones que nosean producto de sumas o suma de productos, si esto nos reduce el nmero de literales. En estecaso, a partir de la forma SOP obtenemos fcilmente

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

donde tenemos dos literales, y por tanto dos NMOS de vaciamiento, menos. Finalmente podemosimplementar la funcin como cascada de bloques NMOS, usando un total de 10 transistores deacumulacin y 2 de vaciamiento, como se observa en la figura 3.23.

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

f

C

VDD

D

B

B

AA

X

A B

VDD

C

Figura 3.23 Funcin lgica del ejemplo 3.5.

Page 89: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 9 7_________________________________________________________________________________

Ejercicio 3.4

Proponer diferentes implementaciones NMOS para la funcin f.

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

Õ

__________________________________________________________________________________

3.4 Puertas de transmisin

Una puerta de transmisin es un circuito que acta como un interruptor lgico, permitiendo o no elpaso de informacin entre dos puntos distintos de un circuito digital de acuerdo con el valor de unavariable de control.

El esquema de la figura 3.24 modeliza un interruptor lgico a cuyo nodo de entrada se aplica unatensin Vi procedente de una etapa anterior, siendo VO la tensin 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.

VOVi

VC

CL

Fig 3.24 Puerta de transmisin o interruptor lgico.

El funcionamiento cualitativo de este interruptor es el siguiente: para un valor de VC, por ejemplo 0V("0" lgico), el interruptor est abierto y consecuentemente las tensiones Vi y VO son independientes,mientras que para VC=VDD ("1" lgico) el interruptor est cerrado y se produce la transmisin delvalor de la entrada a la salida (VO=Vi), ya sea cargando la capacidad (transmisin de un "1") odescargndola (transmisin de un "0").

La anterior explicacin sugiere la utilizacin de un transistor MOS como puerta de transmisin.Mediante la tensin en la puerta es posible independizar o no drenador y surtidor, con lo que eltransistor se comporta aproximadamente como un interruptor abierto o cerrado. Cuando el transistoracte de esta forma le llamaremos transistor de paso.

A continuacin vamos a detallar el funcionamiento a nivel elctrico de un transistor de paso NMOS,discutiendo sus ventajas y/o inconvenientes. Ms adelante lo compararemos con su dual, el transistorde paso PMOS, e introduciremos la puerta de transmisin CMOS.

Page 90: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

9 8 Diseo 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 eltransistor estar cortado (recordemos que en rgimen permanente no puede haber tensiones negativas)por lo que estas dos tensiones sern independientes.

VOVi

VC

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 porseparado.

Transmisin del "0": Supongamos Vi=0 y que en un cierto instante de tiempo la puerta conmutade "0" a "1", es decir, de VC=0 a VC=VDD. Veamos cul ser el valor de VO en rgimen permanente.

V OVDD

VDD

C L

SD

I

VO

VDD

C L

S D

I

0

a) b)

Figura 3.26 Funcionamiento del transistor de paso NMOS.a) Transmisin del "0"; b) transmisin del "1"

En estas condiciones el terminal de la derecha ser el drenador y el de la izquierda el surtidor (elterminal de la izquierda est a la tensin ms baja posible, es decir, a 0 voltios). Como se tieneVGS=VDD>VT el transistor empezar a conducir y la capacidad de salida se ir descargando mediante lacorriente que fluir en el sentido condensador-surtidor (ver figura 3.26.a). En consecuencia la tensinentre los terminales de CL disminuir progresivamente. A medida que el condensador se vadescargando, el transistor pasar sucesivamente de saturacin a zona hmica. Veamos cundo entra eltransistor en zona hmica

VDS = VO - Vi = VO < VGS - VT = VDD - VT

Page 91: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 9 9_________________________________________________________________________________

En esta situacin la corriente que fluye a travs del transistor vendr expresada por

ID = K((VGS - VT )VDS -VDS

2

2) = K((VDD - VT )VO -

VO2

2)

En rgimen permanente la corriente deber ser cero. Igualando la ecuacin anterior a cero se obtienendos soluciones para la tensin de salida Vo:

Vo = 0

Vo = 2(VDD - VT )

La segunda solucin debe ser rechazada por carecer de significado fsico: no es posible que la tensinfinal sea mayor que VDD o, si se prefiere, implicara que el transistor est en saturacin, cosa quecontradice el razonamiento efectuado. En consecuencia la tensin final en el nodo de salida ser nula(CL se descargar completamente), con lo que podemos decir que el transistor de paso NMOS habrtransmitido correctamente el "0" lgico.

Transmisin del "1": Se trata del caso complementario, es decir, supondremos Vi=VDD y que enun cierto instante la tensin en la puerta conmuta de cero a VDD.

En este caso el nodo de entrada ser el drenador, por ser donde se aplica la tensin ms elevada (VDD).En consecuencia se tendr VDS=VGS, lo que implica VDS>VGS-VT y por tanto el transistor siempretrabajar en saturacin. La corriente que atravesar el transistor vendr expresada por

IDS =K

2(VGS - VT )2

Como en rgimen permanente la corriente debe ser nula, la tensin VGS final ser VT y por tanto elvalor final de VO ser VDD-VT, tensin prxima pero no igual a un "1" lgico.

Podemos resumir los dos resultados anteriores diciendo que un transistor de paso NMOS transmiteperfectamente el valor lgico "0" (Vi=0 Þ VO=0) pero que degrada la transmisin del valor lgico "1"(Vi=VDD Þ VO=VDD-VT).

Ejemplo 3.5

Vamos a ver qu ocurre con la transmisin del "1" lgico en una cadena formada por dostransistores de paso NMOS. Para ello tomaremos como referencia el esquema de la figura 3.27,suponiendo que se parte de una situacin previa en la que los dos transistores estaban cortados ylas capacidades descargadas (Vx=VO=0).

Page 92: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 0 0 Diseo digital_________________________________________________________________________________

En la situacin descrita los dos transistores de paso entrarn en conduccin, cargando lascapacidades CL1 y CL2 y haciendo aumentar las tensiones Vx y VO, hasta que una vez llegados alrgimen esttico, deje de fluir corriente y las tensiones se estabilicen.

VDD VO

CL2

Vx

VDD VDD

CL1

Figura 3.27 Transmisin del "1"en una cadena detransistores de paso NMOS

Si nos fijamos inicialmente en el transistor de la izquierda, vemos que ste dejar de conducircuando se llegue a Vx=VDD-VT. Para este valor de Vx el transistor de la derecha estar en lafrontera entre hmica y saturacin (VDS=VGS-VT) y tanto si consideramos uno como otro estadola anulacin de la corriente conduce a la solucin VO=VDD-VT. Este resultado es generalizable:una cadena de transistores de paso degrada la transmisin del "1" lgico con independencia delnmero de transistores que la forman.

__________________________________________________________________________________

Ejercicio 3.4

Analizar el circuito de la figura 3.28, en el que la tensin de control del transistor de paso de laderecha proviene, a su vez, de otro transistor de paso. ÀCul ser el valor final de la tensin desalida?

V VO

CL2

DDVDD

V

VDD

CL1

x

Figura 3.28 Circuito con transistores de paso NMOS

__________________________________________________________________________________

Page 93: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 0 1_________________________________________________________________________________

3.4.2 Transistor de paso PMOS

Tambin puede utilizarse como transistor de paso un PMOS, aunque su comportamiento esexactamente el opuesto al de un NMOS: cuando VC=0 ("0" lgico) el transistor conduce, mientras quecuando VC=VDD el transistor est cortado. Una vez hecha esta salvedad el funcionamiento del transistorde paso PMOS es anlogo al ya visto: cuando el transistor est cortado los valores de tensin endrenador y surtidor son independientes entre s; por el contrario, cuando el transistor conduce, secomporta aproximadamente como un interruptor cerrado y en consecuencia la tensin en drenador ysurtidor es "similar" (como en el caso del NMOS esto no es estrictamente cierto pero sirve comoprimera descripcin intuitiva).

V OVi

VC

C L

Figura 3.29 Transistor de paso PMOS

Los dos casos que deben ser analizados cuando el transistor conduce son, otra vez, los correspondientesa Vi=VDD y Vi=0.

Para Vi=VDD el valor final de la tensin de salida es VO=VDD; por tanto, se dice que el transistor depaso PMOS transmite bien los "1" lgicos. Cuando Vi=0 y la capacidad CL est cargada inicialmente auna cierta tensin distinta de cero (en rigor mayor que -VTP), el valor final de la tensin de salida esVO=-VTP. Por tanto diremos que el transistor de paso PMOS transmite mal los "0" lgicos.

La obtencin de estos dos resultados es paralela a la realizada para transistores de paso NMOS y quedacomo ejercicio para el lector.

3.4.3 La puerta de transmisin CMOS

La puerta de transmisin CMOS combina dos transistores de paso, un NMOS y un PMOS,conectados en paralelo, de forma que se transmitan fielmente ambos valores lgicos. Su estructuracircuital se muestra en la figura 3.30.

El anlisis del funcionamiento de la puerta de transmisin CMOS es sencillo una vez visto el de lostransistores de paso NMOS y PMOS: cuando VC =0 los dos transistores estn cortados y las tensionesVi y VO son independientes. Por el contrario, cuando VC=VDD los dos transistores conducen. En esteltimo caso, tanto si tenemos Vi=0 como Vi=VDD, ambos transistores contribuyen en principio a laconduccin, hasta que uno de los dos entra en corte; a partir de ese momento slo uno de los dos

Page 94: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 0 2 Diseo digital_________________________________________________________________________________

proporciona el camino de corriente necesario para completar la carga o descarga de la capacidad desalida.

V i

VC

VC

VO OV

VC

VC

Vi

Figura 3.30 Esquema y smbolo circuital de la puerta de transmisin CMOS

En concreto si Vi=0 la tensin 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 serealiza nicamente a travs del NMOS, que sigue conduciendo hasta que VO=0. Por tanto, la puerta detransmisin CMOS transmite correctamente el "0" lgico. El razonamiento acerca de la correctatransmisin del "1" es simtrico y se deja como ejercicio para el lector.

Con puertas de transmisin, en combinacin con inversores, pueden proponerse distintasimplementaciones de funciones lgicas, tal como se muestra en el ejemplo 3.6.

Ejemplo 3.6

Implementar una puerta or-exclusiva de dos entradas mediante puertas de transmisin CMOS einversores.

Para ello escogemos una de las variables de entrada como variable de control, y evaluamos lafuncin 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 trminos de conexiones de la salida F con la entrada A osu inversa, en funcin de una variable de control, B. El siguiente paso hacia la implementacinya es trivial y se muestra en la figura 3.31.

Page 95: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 0 3_________________________________________________________________________________

A

B F

Figura 3.31 Implementacin con puertas de transmisin

__________________________________________________________________________________

Ejercicio 3.5

Proponer una implementacin con inversores y puertas de transmisin para la funcin f de tresvariables descrita a travs de su forma cannica como producto de sumas.

f = M(1, 4,5, 7)3

Õ

__________________________________________________________________________________

3.5 Puertas lgicas CMOS

La tecnologa CMOS es en la actualidad la ms utilizada en la realizacin de circuitos integradosdigitales. Los motivos son bsicamente tres: 1- el bajo valor de la potencia consumida, que posibilitagrandes densidades de integracin, 2- una buena inmunidad frente al ruido, y 3- la particularidad de que,en rgimen permanente, los valores de tensin a la salida no dependen de las dimensiones de lostransistores. Estos factores la convierten en una tecnologa robusta y de utilizacin fcil 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, conectadostal como indica la figura 3.32. El anlisis de este circuito es paralelo al realizado para el inversorNMOS. Entenderemos tambin aqu por analizar obtener expresiones que permitan definir la curva detransferencia y calcular las caractersticas elctricas principales.

Page 96: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 0 4 Diseo digital_________________________________________________________________________________

PMOS

NMOS

VDD

VOVi

Figura 3.32 Inversor CMOS

A partir del esquema elctrico varias conclusiones son inmediatas:

-Los terminales simtricos del transistor PMOS estn definidos de la siguientemanera: el superior es el surtidor y el inferior es el drenador; en efecto, como hemos vistoanteriormente en un PMOS, el surtidor es el terminal conectado a la tensin ms alta. En eltransistor NMOS, por el contrario, el surtidor es el terminal inferior (el conectado a masa, esdecir a la tensin ms baja).

-La corriente que circula por los dos transistores es la misma:

IDN = IDP = ID

-Las tensiones puerta-surtidor y drenador-surtidor de los dos transistores se relacionandirectamente con las de entrada y salida del inversor:

VGSN = Vi

VDSN = VO

VGSP = Vi - VDD

VDSP = Vo - VDD

Tambin hay que recordar que en el transistor NMOS la tensin umbral es positiva (VTN>0), mientrasque en el PMOS es negativa (VTP<0).

Desde un punto de vista grfico los puntos (ID,VO) de funcionamiento del circuito se sitanforzosamente en la interseccin de las curvas caractersticas del transistor NMOS y del PMOS. Comoya se vio anteriormente en el caso el inversor NMOS, este punto de vista permite conocer detallesimportantes sobre el funcionamiento del circuito.

Vamos a dibujar sobre los mismos ejes las curvas caractersticas de ambos transistores. Si tomamoscomo ejes de referencia ID y Vo, las curvas caractersticas del transistor NMOS no se ven modificadas,mientras que las del transistor PMOS deben ser invertidas y desplazadas hacia la derecha una cantidadVDD, tal como muestra la figura 3.33.

Page 97: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 0 5_________________________________________________________________________________

DD

=V

Oi TN

Vi DD

ID

V

Vi1

Vi2

V < V ODD+V

V =0

ID

V

Vi2

V

V > ViV

i

TP

i1

Figura 3.33 Curvas caractersticas de los transistores NMOS y PMOS. Las curvas del transistorPMOS han sido transformadas para adaptarse a los mismos ejes que las del transistor NMOS

Obsrvese que la respuesta de cada transistor ante un aumento de la tensin de entrada Vi es contraria:un aumento en Vi es un aumento en VGSN y por tanto la corriente de drenador del transistor NMOStiende a aumentar; por el contrario, el mismo aumento en Vi hace que la tensin VGSP sea menosnegativa, lo cual provoca una disminucin de la corriente de drenador del transistor PMOS.

Para encontrar los puntos de funcionamiento hay que hallar la interseccin de las curvas caractersticasde los dos transistores correspondientes a cada valor concreto de Vi. Vamos a aplicar esto a laobtencin de los niveles lgicos VOH y VOL.

ID

VO

NMOS

PMOS Vi

Vi

Figura 3.34 Superposicin de las curvas caractersticas de lostransistores NMOS y PMOS sobre los ejes ID,VO

Page 98: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 0 6 Diseo digital_________________________________________________________________________________

Cuando Vi=0 tenemos VGSN=0 y por tanto VGSN<VTN, luego el transistor NMOS est cortado ytenemos que el punto de funcionamiento estar sobre la curva caracterstica que coincide con el eje deabscisas (ID=0). La interseccin con la curva correspondiente del transistor PMOS (en concreto paraVGSP=Vi-VDD=-VDD) sita el punto de funcionamiento en Vo=VDD e ID=0. Por tanto, en un inversorCMOS se tiene VOH=VDD.

Anlogamente, cuando Vi=VDD se tiene VGSP=0 y por tanto VGSP>VTP, luego el transistor PMOSestar cortado y su curva caracterstica correspondiente coincide con el eje de abscisas. La interseccincon la curva correspondiente del NMOS (en concreto para VGSN=Vi=VDD) sita el punto defuncionamiento 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 tienesalida baja, la corriente ID circulante es nula. Por tanto, en rgimen esttico la potencia disipada por elinversor CMOS es nula. Esta caracterstica, junto con el hecho de disponer de los mejores niveleslgicos VOH y VOL posibles, es una de las ventajas principales de la tecnologa CMOS frente a suscompetidoras.

Vamos a analizar ahora otros aspectos relevantes de la curva de transferencia del inversor. En la tablasiguiente vemos los mrgenes de tensin que definen las distintas zonas de funcionamiento de cada unode los transistores expresados en funcin de las tensiones relevantes del inversor:

PMOS OFF Þ Vi ³ VTP + VDD

NMOS OFF Þ Vi £ VTN

PMOS en W Þ Vo > Vi - VTP

NMOS en W Þ Vo < Vi - VTN

PMOS SAT Þ Vo < Vi - VTP

NMOS SAT Þ Vo > Vi - VTN

Si trasladamos estas condiciones a la curva de transferencia Vo(Vi) quedarn definidas las cinco zonas defuncionamiento (I, II, III, IV, y V) mostradas en la figura 3.35.

Cuando se desea hacer cualquier clculo referente a la curva de transferencia en rgimen permanente, laecuacin a resolver siempre es la resultante de plantear la igualdad entre las corrientes que atraviesanlos dos transistores. Por tanto, es necesario conocer previamente la zona de funcionamiento de cadatransistor.

Page 99: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 0 7_________________________________________________________________________________

DD

VDD

VO

ViVTN V

V -V i TN

I

II

III

IV

V -V i TP

VTP V +V DD TP

V

Zona

NMOS

PMOS

I

OFF

W

III

SAT

W

V

SAT

SAT

IV

W

SAT

II

W

OFF

Figura 3.35 Curva de transferencia de un inversor CMOS

Ejemplo 3.7

Calcular la tensin de inversin Vinv (tensin de entrada para la cual Vo=Vi=Vinv).

La tensin de inversin se sita en el punto de interseccin de la recta Vo=Vi con la curva detransferencia. En esta situacin es posible conocer el estado de los transistores sin plantearhiptesis sujetas a posterior comprobacin; as, para el NMOS

VO = Vi = Vinv Þ VGSN = Vinv

VDSN = Vinv

ìíî

üýþ

Þ VDSN > VGSN - VTN

Y para el PMOS

VO = Vi = Vinv Þ VGSP = VDD - Vinv

VDSP = VDD - Vinv

ìíî

üýþ

Þ VDSP < VGSP - VTP

Es decir, ambos transistores estarn saturados, por lo que la corriente conducida ser

IDN =KN

2(VGSN - VTN )2 =

KN

2(Vinv - VTN )2

IDP =KP

2(VGSP - VTP )2 =

KP

2(Vinv - VDD - VTP )2

Como IDN=IDP, entonces podemos obtener Vinv

Page 100: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 0 8 Diseo digital_________________________________________________________________________________

Vinv =a VTN + VDD + VTP

a + 1 ; a =

KN

KP=

m N (W / L)N

mP (W / L)P

Las constantes KN y KP determinan la situacin de la tensin de inversin. Si por analoga con elinversor NMOS llamamos a a relacin de aspecto del inversor tenemos para VTN=-VTP

Si a = 1 Þ Vinv = VDD / 2

Si a > 1 Þ Vinv < VDD / 2

Si a < 1 Þ Vinv > VDD / 2

Desde un punto de vista de diseo este resultado indica que modificando las dimensiones relativasde los transistores se puede ajustar el valor de la tensin de inversin y, consecuentemente, sepuede asimetrizar segn convenga la curva de transferencia.

__________________________________________________________________________________

Ejercicio 3.6

Encontrar expresiones analticas para la funcin ID(Vi) en las diversas zonas de trabajo de uninversor CMOS. Encontrar la tensin de entrada para la cual la corriente es mxima. Para el casoparticular de VTN=-VTP y KN=KP, representarla grficamente.

__________________________________________________________________________________

Ejemplo 3.8

Calcular los mrgenes de ruido para un inversor CMOS. En aras de una mayor simplicidad,considerar un inversor simtrico (KN=KP), tensiones umbral iguales en valor absoluto (VT=VTN=-VTP=1,1V) y VDD=5V.

Como se recordar los mrgenes de ruido se definen como

NMH = VOH min - VIH NML = VIL - VOL max

siendo

VIL = min Vi dVo

dVi=-1

VIH = max Vi dVo

dVi=-1

VOH min = Vo Vi =VILVOL max = Vo Vi =VIH

Page 101: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 0 9_________________________________________________________________________________

Vamos a efectuar a continuacin el clculo de VIH y de VOLmax, quedando el clculo de VIL yVOHmin como ejercicio para el lector.

A partir de la inspeccin de la curva de transferencia parece lgico suponer que el transistor NMOStrabaja en zona hmica y que el transistor PMOS est en saturacin:

IDN = KN ((Vi - VTN )VO -VO

2

2)

IDP =KP

2(Vi - VDD - VTP )2

Para Vi=VIH, tensin en principio alta, tenemos VO=VOLmax, tensin en principio baja, por lo

que podemos suponer VO2 << 2(Vi - VTN )VO , pudiendo despreciar el trmino cuadrtico

IDN » KN (Vi - VTN )VO

Igualando las corrientes IDN e IDP y despejando VO queda

2(Vi - VT )VO = (Vi - VDD + VT )2 Þ VO =(Vi - VDD + VT )2

2(Vi - VT )

que, derivando y aplicando la definicin de VIH, conduce a

dVO

dVi=

12

(2(VIH - VDD + VT )

VIH - VT-

(VIH - VDD + VT )2

(VIH - VT )2 ) = -1

Esta es una ecuacin cuadrtica del tipo 2x - x2 = -2 , cuyas soluciones son

x = 1 ± 3 Þ VIH - VDD + VT

VIH - VT= 1 ± 3

Slo la solucin con signo negativo da lugar a un signo positivo de VIH. El resultado final quedapor tanto

VIH =VDD - (2 - 3)VT

3» 2,83 V VOL max =

(VIH - VDD + VT )2

2(VIH - VT )» 0,33 V

Llegados a este punto, es imprescindible comprobar a posteriori la validez de las suposiciones y/oaproximaciones realizadas, en concreto verificar el estado de los transistores y la aproximacinhecha para eliminar el trmino cuadrtico en IDN.

Page 102: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 1 0 Diseo digital_________________________________________________________________________________

VOL max = 0,33 V

2(VIH - VT ) = 3, 46 Vìíî

üýþ

Þ VOL max << 2(VIH - VT )

VDSN = VOL max = 0,33 V

VGSN = VIH = 2,83 Vìíî

üýþ

Þ VDSN < VGSN - VT Þ NMOS en W

VDSP = VOL max - VDD

VGSP = VIH - VDD

ìíî

üýþ

Þ VDSP < VGSP + VT Þ PMOS en SAT

__________________________________________________________________________________

Ejercicio 3.7

Resuelva el ejemplo anterior sin hacer ninguna aproximacin en la expresin de la corriente parala zona hmica. Calcule el error cometido al despreciar el trmino cuadrtico.

__________________________________________________________________________________

3.5.2 Puertas bsicas CMOS

El inversor CMOS se basa en la utilizacin de transistores con comportamientos opuestos. Eltransistor NMOS se comporta como un interruptor cerrado que transmite una tensin nula cuando VGStoma un valor lgico alto y como un interruptor abierto cuando VGS toma un valor lgico bajo. Deforma simtrica podemos considerar el transistor PMOS: como un interruptor cerrado que transmiteuna tensin VDD cuando VGS toma un valor lgico bajo y como interruptor abierto cuando VGS tomaun valor lgico alto. La figura 3.36 ilustra esta interpretacin del funcionamiento del inversor CMOS.

VDD

VOVi

VDD

VDD

a) VDD

0

b)

Figura 3.36 Interpretacin mediante interruptores del funcionamiento delinversor CMOS: a) caso de Vi=0; b) caso de Vi=VDD

Esta idea puede utilizarse para implementar cualquier funcin lgica combinacional. Una puerta lgicatoma el valor "1" a su salida para ciertas combinaciones de valores de las variables de entrada; para

Page 103: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 1 1_________________________________________________________________________________

todas las dems tomar el valor "0". Por tanto es necesario disear una red de transistores PMOS queuna la salida a la alimentacin y que sea equivalente a un interruptor cerrado para las combinaciones deentrada que hacen la salida igual a "1". Por otra parte, para asegurar el valor cero en la salida para lasdems combinaciones de entrada, es necesario disear una red de transistores NMOS que se comportecomo un interruptor cerrado para las combinaciones de entrada restantes, es decir, aqullas que dan lugara salida baja.

Un esquema que ilustra esta forma de disear se presenta en la figura 3.37.

PMOS

F

F

n

VDD

VOVi

NMOS

Figura 3.37 Implementacin de una funcin lgica F den variables mediante tecnologa CMOS

Como ejemplo concreto, en la figura 3.38 se muestra la realizacin de una funcin NOR y unafuncin NAND de dos variables en tecnologa CMOS.

F

A B

VDD

A

B F

A

B

VDD

A B

a) b)

Figura 3.38 Puertas NOR (a) y NAND (b) en tecnologa CMOS

Page 104: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 1 2 Diseo digital_________________________________________________________________________________

Observando la puerta NOR de la figura 3.38.a, vemos que la red NMOS conduce, llevando un "0"lgico a la salida cuando alguno de los dos transistores en paralelo lo hace y que est en corte cuandoambos transistores estn cortados, luego podemos escribir

F = A + B

Centrndonos ahora en la red PMOS de la figura 3.38.a, podemos ver que sta conduce cuando los dostransistores en serie lo hacen, llevando un "1" lgico a la salida, y que est en corte cuando uno de losdos transistores est cortado, luego podemos escribir

F = A × B

El resultado neto en ambas redes es una funcin lgica NOR de dos variables. Un anlisis simtrico esposible para la puerta NAND y se deja como ejercicio para el lector.

Ejemplo 3.9

Implementar mediante tecnologa CMOS la funcin f, descrita de forma cannica.

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 expresin para elinverso de la funcin. Por el mtodo de Karnaugh podemos encontrar una suma de productos ysimplificarla para reducir el nmero de literales. Obtendremos

f = ab + ac + bc = a (b + c ) + bc

Necesitaremos tres inversores para controlar correctamente los transistores NMOS. Por otro lado,si la implementamos a travs de la funcin negada, tendremos que usar un solo inversor.

f = x x = a(b + c) + bc

Hasta aqu hemos resuelto la red NMOS. Deberamos hacer lo mismo para la PMOS, recordandoque debemos encontrar ahora una expresin para la funcin sin invertir, y que los PMOS conducencuando su entrada es baja. Esta expresin la podemos hallar por dualidad.

f = x x = a + (bc )[ ](b + c )

La topologa correspondiente a las funciones escogidas necesita de 6 transistores NMOS y 6PMOS, como se aprecia en la figura 3.39.

Page 105: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 1 3_________________________________________________________________________________

a b

c

c

c

ca

b

b

bx

f

Figura 3.39 Funcin del ejemplo 3.9

__________________________________________________________________________________

Ejercicio 3.8

Proponer una implementacin CMOS para un sistema que permita hacer la suma aritmtica de tresbits de entrada. La salida deber tener dos bits, z1 z0.

Comparar la solucin propuesta con la que se deriva de las siguientes expresiones para el inversode 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 realizacin de puertas lgicas comentadas hasta aqu (NMOS con carga devaciamiento y CMOS) son, especialmente en el segundo caso, utilizadas mayoritariamente. Sinembargo existe multitud de variantes de ambas tecnologas cuyo uso no es tan general pero si msadecuado en determinadas situaciones. De entre estas variantes mencionaremos brevemente tres a travsde su inversor representativo: la lgica NMOS con carga saturada, la lgica pseudo-NMOS y laspuertas CMOS tri-state.

Page 106: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 1 4 Diseo digital_________________________________________________________________________________

Lgica NMOS con carga saturada. Se basa en la utilizacin como carga de un transistorNMOS de acumulacin donde por construccin 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 slo tipo de transistor, requiere unproceso de fabricacin ms sencillo que la tecnologa NMOS con carga de vaciamiento o la CMOS.Su principal problema estriba en que parmetros elctricos como los niveles lgicos sonsensiblemente peores. As, por ejemplo, no es difcil deducir que VOH=VDD-VT.

Lgica pseudo-NMOS. Conceptualmente tambin se basa en la tecnologa NMOS con carga devaciamiento, utilizando como transistor de carga un PMOS con VGS=-VDD (ver figura 3.41). Elfuncionamiento es cualitativamente idntico al de un inversor NMOS con carga de vaciamiento: eltransistor PMOS trabaja sobre una nica curva caracterstica, con lo que es fcil determinar VOH, VOL,etc.

i TI DDOL

V =VDD

ID

V

Vi1

V

V < V

i2

i

VV

VDD

VO

Vi

Figura 3.41 Inversor pseudo-NMOS

Page 107: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 1 5_________________________________________________________________________________

A nivel tecnolgico esta estructura es compatible con la CMOS, aunque sus prestaciones a nivelelctrico son inferiores y similares (aunque un poco mejores) a las de un inversor NMOS con carga devaciamiento. Suele emplearse en estructuras CMOS regulares y grandes, como las PLA y/o ROM (vercaptulo 5), que pueden tener un tamao reducido a base de evitar el desdoblamiento en dos redes dualespropio de las puertas CMOS tpicas.

Lgica CMOS tri-state. Se trata de una variante de la puerta CMOS clsica donde existe laposibilidad de desconectar la salida mediante una variable de control (ver figura 3.42).

V DD

VOViE

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 inversorCMOS. Para E=0, los dos transistores controlados por E estn cortados y el valor de VO es elcorrespondiente 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 propagacin estn definidos entre el 50% de lastransiciones de entrada y salida de la puerta que caracterizan. Razone cmo se relaciona el retardo totalde diversos bloques conectados en cascada con los retardos particulares de cada uno. ÀY si los bloquesse encuentran en paralelo?

C3.2 Dibuje unas curvas ID(VGS) con VDS como parmetro para un transistor NMOS de acumulaciny para uno de vaciamiento.

Page 108: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 1 6 Diseo digital_________________________________________________________________________________

C3.3 Razone qu ocurre en un transistor MOS cuando la relacin entre VDS y VGS-VT es de igualdad.ÀEst en hmica o en saturacin?

C3.4 Una notacin alternativa a la de la figura 3.11 para las corrientes en un transistor PMOS seria lasiguente:

Corriente Margen de validez Zona

ID = 0 VSG £ VT Corte (OFF)

ID = K (VSG - VT )VSD -VSD

2

2

é

ëêê

ù

ûúú

VSG > VT , VSD < VSG - VT Ohmica (W)

ID =K

2(VSG - VT )2 VSG > VT , VSD > VSG - VT Saturacin (SAT)

Compruebe que son expresiones equivalentes y razonar las ventajas de una y otra, comparndolascon las del transistor NMOS.

C3.5 En un modelo menos simplificado para transistores MOS que el presentado en este captulo, laecuacin de la zona de saturacin se corrige aadiendo un trmino, tal como se ve a continuacin, paratener en cuenta una ligera dependencia con VDS.

IDsat =K

2(VGS - VT )2 (1 + lVDS )

ÀCmo cambia esto las curvas ID(VDS)? Mustrelo grficamente para unos valores tpicos deVT=1V y l=0.05V-1. Vea cmo cambiara, de forma cualitativa, la curva de transferencia de uninversor CMOS, mostrada en la figura 3.35.

C3.6 ÀCmo afectara, cualitativamente, a los niveles lgicos VOH y VOL de un inversor NMOS unacarga resistiva entre la salida y tierra?ÀY si la carga est entre la salida y VDD? Razone la variacin deestos niveles lgicos 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 lgicas corresponderan las implementaciones CMOS propuestas para lasfunciones NOR y NAND de la figura 3.38 si intercambiamos la asignacin entre niveles de tensin yestados lgicos (1Ûtensin baja y 0Ûtensin alta)?

C3.9 El ejemplo 3.9 muestra cmo obtener, aplicando dualidad a las expresiones algebraicas, latopologa de la red PMOS una vez conocida la de la NMOS en la realizacin CMOS de cualquierfuncion. Enuncie un mtodo que sea aplicable directamente a la topologa de las redes, sin pasar por lasexpresiones algebraicas, en trminos de bloques, o transistores, en serie o en paralelo.

Page 109: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 1 7_________________________________________________________________________________

Problemas

P3.1 Considere los siguientes circuitos inversores:

VDD

VO

Vi

VDD

VO

Vi

VDD

VO

Vi

VDD

VO

ViTi

Tv TpTs R

Ti Ti Ti

a) Compare los niveles lgicos VOH y VOL de cada puerta.

b) ÀQu variaciones podriamos introducir en los datos de cada uno de los inversores para mejorarestos 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 deTally. Se propone analizar su comportamiento a nivel lgico.

VDD

X1X1

X1X1

X0X0

X0X0

X0X0

Z 0

Z 1

Z 2

a) Encuentre la tabla de verdad de cada una de las salidas. Proponga una especificacin de alto nivelpara estas salidas.

Page 110: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 1 8 Diseo digital_________________________________________________________________________________

b) Calcule VOLyVOH en la salida Z1. ÀSon estos niveles generalizables a las dems salidas?

c) Razone cmo podran mejorarse estos niveles lgicos.

P3.3 La figura siguiente muestra una implementacin de una funcin lgica de dos variables

A

B

X

Construya su tabla de verdad. Proponga una implementacin NMOS y otra CMOS para la mismafuncin. ÀCuntos transistores, incluyendo los de los inversores usados, necesita cada una?

P3.4 Proponga distintas implementaciones NMOS y CMOS para la funcin

F(A, B,C, D) = m(1,3, 4,5, 7,11,15)4å

P3.5 Considere el siguiente inversor.

VDD

VT

= 5V

(W/L) = 1/2

(W/L) = 2

T2

T1

desconocida

VDD

VO

Vi T1

T2

a) Determine la regin de funcionamento de T2.

b) Si tenemos VO=VI=VA, Àen qu estado se encuentra T1? ÀEs posible obtener VT en funcin deVA y VDD en esta situacin? Si es as, calcule el valor de VT per VA = 2V.

(Nota): Suponga que VA>VT.

Page 111: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 1 9_________________________________________________________________________________

P3.6 Para un inversor pseudo-NMOS, como el de la figura 3.41, calcule:

a) La tensin de inversin, Vinv, tensin a la cual Vi=VO.

b) Los mrgenes de ruido, NMH y NML.

c) Los niveles de tensin 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 O

VBVA

VDD

a) ÀCul es su tabla de verdad y qu funcin lgica 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 idnticas de valorVDD.

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 ciertosperodos de tiempo.

a) Para F=10 V, Àen qu regin de funcionamiento trabajan los transistores T3 y T4? ÀDegradan latransmisin del "1" lgico (VDD )? Razone la respuesta.

b) Si en F encontramos pulsos de 10V, Àen qu regin o regiones de funcionamiento trabaja eltransistor TL? Explique el funcionamiento del circuito a nivel lgico.

c) Calcule las tensiones del nivel de salida alto (VOH) y bajo (VOL).

Page 112: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

1 2 0 Diseo digital_________________________________________________________________________________

VOA

B

F

T2T4

TL

T3T1

VDD

Datos: VDD=5V, VT=1V, KR=kI/kL=20, con kI=kT1=kT2

P3.9 Obtenga la tabla de verdad de la funcin lgica F segn la figura. Obtenga sus niveles lgicos desalida alto y bajo, VOH = VO½VA=VB=VDD y VOL = VO½VA=VB=0. Razone por qu no se usa este tipode estructura.

F

A B

VDD

A

B

P3.10 La siguiente figura muestra una implementacin CMOS para una puerta AND. Un error en elproceso de fabricacin ha provocado un cortocircuito entre el drenador y el surtidor del transistorNMOS controlado por la entrada B.

a) Razone a qu combinaciones de entrada afectar este defecto.

b) Calcule el valor de la tensin en el nodo intermedio X para estas combinaciones de variables deentrada.

c) Calcule el valor de tensin a la salida en este mismo caso.

d) ÀCul ser la potencia media disipada en esttica? (Suponga que en ambas entradas los unos ylos ceros son equiprobables).

Page 113: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos circuitales del diseo digital 1 2 1_________________________________________________________________________________

VDD

F

A

B

VDD

A B

X

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 histresis. Encontrar la zonade funcionamiento de cada transistor cuando la entrada vale 0 y cuando vale VDD.

V

VDD

VDDin Vout

T1

T2

T4

T5

T3

T6

Partiendo de la situacin estable Vin=0, calcular cunto debe aumentar Vin para descargar el nodoVout, es decir, para que T4 y T5 conduzcan. Hacer los clculos partiendo de Vin=VDD, paraencontrar a qu tensin de entrada empezarn a conducir a la vez T1 y T2.

Page 114: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 enlas tecnologías MOS. No se ha hecho mención, sin embargo, a que de hecho los diversos transistoresintegrantes de una puerta lógica no suelen ser componentes discretos sino que normalmente formanparte 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 desu fabricación, poniendo en evidencia la posibilidad de un lenguaje común entre el diseñador decircuitos digitales y el fabricante de circuitos integrados. Este lenguaje común, basado en unaherramienta geométrica denominada "layout", ha supuesto una innovación en el mercado de loscircuitos integrados digitales, permitiendo diseñar y producir circuitos a medida de un usuario y unaaplicación concretos (es decir circuitos específicos o "custom").

El capítulo presenta en primer lugar, mediante un tratamiento descriptivo e introductorio, una brevepanorámica de las etapas básicas en la fabricación de circuitos integrados sobre silicio, orientadadesde una perspectiva CMOS. Los lectores que tengan un conocimiento previo de este tema puedenpasar directamente al apartado 4.2, donde se presenta con cierto detalle un proceso de fabricaciónCMOS 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 efectoseléctricos presentes en un circuito integrado MOS y su relación con la tecnología. Por último, elcapí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 últimasdécadas hasta alcanzar un gran nivel de sofisticación. Su objetivo, sin embargo, puede presentarse deforma sencilla: partiendo de una oblea de silicio cristalino ser capaces de fabricar sobre ellatransistores (cuantos más y más pequeños mejor) mediante la adecuada situación de zonas dopadastipo N (con impurezas donadoras), de zonas dopadas tipo P (con impurezas aceptoras), y de susinterconexiones.

Page 115: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

124 Diseño digital________________________________________________________________________________

Mediante técnicas de crecimiento cristalino se obtienen lingotes cilíndricos de silicio monocristalinocon una concentración de impurezas (tipo N o tipo P) controlada y uniforme. Estos lingotesposteriormente son aserrados y pulidos hasta obtener unos discos u obleas (en inglés "wafers") de ungrosor comprendido habitualmente entre 300 µm y 1 mm, y diámetro variable. A lo largo de los añosel 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. Lasoperaciones o etapas tecnológicas cuya aplicación en orden adecuado conduce a un circuito integradoMOS son básicamente cuatro: la deposición de capas, la oxidación térmica del silicio, lafotolitografí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 seconsigue mediante deposición química en fase vapor (CVD Chemical Vapor Deposition). En esenciaeste procedimiento consiste en introducir en un horno el sustrato sobre el que se desea realizar eldepósito juntamente con un gas portador del material a depositar (en el caso del polisilicio el gas encuestión es SiH4 o Cl3HSi); a temperaturas del orden de 1000ºC y presiones del gas portadoradecuadas se consigue que átomos de silicio presentes en el gas precipiten sobre el sustrato. Enfunción de las condiciones precisas de presión y temperatura el silicio depositado puede ser amorfo opolicristalino (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, sustituyendoa la antigua puerta metálica. Su ventaja principal es, como veremos más adelante, que puede utilizarsepara realizar el drenador y el surtidor, de forma que por construcción estas dos zonas quedendirectamente alineadas con la puerta. Este procedimiento, utilizado en todas las tecnologías MOSactuales, se denomina autoalineado.

Page 116: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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. Unprocedimiento sencillo para depositar metales consiste en evaporar de forma brusca metal por efectoJoule (calentamiento mediante una resistencia) en un ambiente de vacio; el material evaporado secondensa sobre la superficie de la oblea.

Otros materiales utilizados comúnmente en procesos MOS y susceptibles de ser depositados son elSi3N4 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 dedesarrollo debido a las particulares propiedades del dióxido de silicio (SiO2). El SiO2 se utiliza comoaislante (es el caso del óxido de puerta de los transistores MOS) y también para delimitar las zonasdonde se va a proceder a un cambio en el tipo de dopado del silicio (de P a N o viceversa).

a)

Si

Si O2

Si

O2

b)

Si

O2

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 enoxígeno. Para ello pueden utilizarse dos tipos de ambientes: el oxígeno seco (oxidación seca), o unamezcla 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ónhúmeda a igual temperatura (el grosor del óxido obtenido en el mismo tiempo es mucho menor). Porsu parte, la oxidación húmeda es la utilizada habitualmente para obtener espesores de óxidoimportantes.

Page 117: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

126 Diseño digital________________________________________________________________________________

Los procesos de oxidación se realizan a temperaturas próximas a los 1000ºC. Un aspecto queconviene tener presente es que la oxidación consume silicio (esto es así en la oxidación de cualquierelemento), luego la capa de óxido que se va formando crece en ambas direcciones según el ejevertical (ver figura 4.2.a). La figura 4.2.b muestra la cinética de un proceso de oxidación sobre unaestructura donde parte de la superficie ya estaba cubierta inicialmente por una capa de SiO2: la nuevacapa de óxido crece más rápidamente donde el silicio está en contacto directo con el ambienteoxidante.

4.1.3 Fotolitografía

La fotolitografía permite realizar operaciones delimitadas espacialmente sobre la superficie de laoblea. Supongamos, por ejemplo, que tras una oxidación queremos eliminar el óxido en determinadaspartes de la oblea; esto puede hacerse mediante un ataque químico de la oblea protegiendo la fracciónde superficie donde queremos que el óxido permanezca.

Vamos a detallar un poco más este ejemplo. Para ello podemos tomar como referencia o punto departida 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.

Page 118: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 127________________________________________________________________________________

Si O2

Si O2

Máscara

Si O2

Resina

Si O2

Si O2

Si O2

I)

II)

III)

IV)

V)

VI)

Si

Si

Si

Si

Si

Si

- Situación inicial

- Deposición de resina

- Iluminación con luz UV a través de la máscara

- Revelado

- Grabado del óxido

- Eliminación de la resina restante

Figura 4.3 Representación esquemática de una etapa de fotolitografía

Page 119: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 elproceso es como sigue: a temperatura elevada (entre 900 y 1100ºC) se pone en contacto la oblea conalgú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. Estapenetració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 esdecreciente con la distancia a la superficie, normalmente siguiendo una variación del tipo función deerror complementario (ver figura 4.4).

La rapidez en la penetración de las impurezas viene determinada por un parámetro, llamado constantede difusión, dependiente del tipo concreto de impureza, del material en donde la difusión se producey de la temperatura.

N(x)

x

t1 t2 t3< <

Fuente de impurezas

Zona dopada

Sustrato

x

Oxido

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 oviceversa) en zonas localizadas de la oblea suele utilizarse el SiO2 para enmascarar la difusión. Enefecto 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 formahabitual 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 sedesea realizar la difusión, manteniéndolo en las restantes.

c) Se realiza el proceso de difusión.

d) Eventualmente se elimina el óxido.

Page 120: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 paraconseguir zonas localizadas de tipo P o N. En esencia el procedimiento consiste en bombardear elsustrato 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, ychocan 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 sutamaño) y de la energía con que han sido aceleradas (que determina la velocidad a la que incidensobre la oblea). Como los choques son aleatorios, el perfil de dopado resultante corresponde conbuena aproximación a una distribución gaussiana (ver figura 4.5).

N(x)

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 granprecisión el perfil de dopado resultante a través de dos parámetros: la cantidad de impurezasintroducidas (que influye sobre todo en el valor del máximo y la anchura del perfil) y la energía deimplantació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úntipo de protección o enmascaramiento de las zonas que no deben ser afectadas. Los materialeshabitualmente utilizados para ello son el SiO2 (crecido o depositado), el Si3N4 depositado, elpolisilicio depositado y, en ocasiones, la fotoresina.

Es preciso tener en cuenta que después de la implantación la estructura cristalina del silicio quedadañada como consecuencia de las colisiones de los átomos de impureza con los del sustrato. Espreciso, por tanto, regenerar la estructura cristalina original mediante un breve tratamiento térmicoposterior a la implantación. Este tratamiento térmico implica una cierta difusión de las impurezasimplantadas y, con ella, una modificación del perfil de dopado (éste se ensancha); este paso obligadotras una etapa de implantación se denomina "annealing", o recocido.

Page 121: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 circuitosintegrados sobre silicio, vamos a ver un ejemplo de concatenación de estas etapas que permitefabricar un transistor NMOS a partir de una oblea de silicio tipo P. La secuencia de operaciones seilustra en la figura 4.6.

El proceso se inicia con el crecimiento de un óxido grueso, llamado de campo, cuyo espesor típico esde 1µm. A continuación se delimita la zona donde situaremos el transistor (zona activa) mediante unpaso de litografía, cuyo resultado es que el óxido de campo recubrirá toda la oblea salvo la zona aocupar 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 eldispositivo acabado, y cuyo espesor indicativo es de 300 Å. El paso siguiente es el depósito de

Page 122: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 lazona de puerta y dejando el silicio al descubierto en las zonas de drenador y surtidor (ver figura4.6.e).

Sobre la estructura resultante se implantan impurezas tipo N. Los iones de impureza llegarán al siliciosolamente en las zonas en que éste está descubierto (ver figura 4.6.g). Seguidamente se recubre todomediante una capa de óxido (en esta ocasión depositado) en la cual se practican mediante ataqueselectivo aperturas en las zonas en que se quiere hacer los contactos de drenador y surtidor. La últimaetapa 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 cuatrooperaciones que requieren litografía, es decir, cuatro máscaras diferentes (delimitación de la zonaactiva, de la zona de puerta, de los agujeros de contacto, y de las pistas de metal).

Page 123: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 uncircuito CMOS. Téngase en cuenta que cualquier circuito CMOS por complicado que sea essimplemente una interconexión de transistores PMOS y NMOS, por tanto, un proceso CMOS es lasecuencia 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 etapasque necesitan de uso de máscara) son las mismas y su secuenciación también, con independencia delfabricante. Es por este motivo que es posible a partir del conocimiento de un proceso genérico diseñarcircuitos integrados con una cierta independencia del fabricante que los vaya a realizar. A lo largo delos 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 CMOSsimplificado. Puesto que las máscaras utilizadas en este proceso son básicamente las mismas que enprocesos CMOS más sofisticados o realistas, la comprensión del proceso aquí presentado es suficientedesde el punto de vista del diseñador de circuitos integrados. Como ejemplo de referencia tomaremosel caso de la fabricación de un inversor, aunque, como veremos, las conclusiones que se obtendránson perfectamente generalizables a cualquier circuito CMOS.

El primer inconveniente a remarcar para fabricar transistores PMOS y NMOS de forma conjuntareside en que los transistores NMOS necesitan de un sustrato de tipo P mientras que los transistoresPMOS lo necesitan de tipo N. Luego si por ejemplo el sustrato es de tipo P la primera operación en unproceso CMOS es crear una zona suficientemente grande de tipo N (denominada pozo) donde alojarlos transistores PMOS. La solución simétrica también es posible: comenzar con un sustrato tipo N ycrear un pozo de zona de tipo P donde alojar los transistores NMOS. En el primer caso diremos queutilizamos tecnología CMOS de pozo N y en el segundo diremos que utilizamos tecnología CMOS depozo P.

np

Transistores PMOSTransistores NMOS

a)

pn

Transistores NMOSTransistores PMOS

b)

Figura 4.7 Tecnologías CMOS de pozo N (a) y de pozo P (b)

Page 124: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 pozoN 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ásdegradada en el canal de un transistor situado dentro del pozo que en el que no lo está. Así en el casode pozo N los transistores PMOS están dentro del pozo, luego la movilidad de los huecos se verá másreducida por efecto del dopado que la movilidad de los electrones en los transistores NMOS. Como lamovilidad de los electrones, a igual dopado, es mayor que la de los huecos la consecuencia global esque esta diferencia de movilidades se ve incrementada. Un razonamiento parecido conduce a que enel caso de utilizar tecnología de pozo P la diferencia de movilidades entre electrones y huecosdisminuye.

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 deldispositivo conforme avanza el proceso. Simultáneamente se presenta a la derecha de la figura la vistasuperior de las máscaras utilizadas. Cada máscara está descrita mediante un entramado concreto quepermite su reconocimiento posterior (ver tabla 4.1). Por último, encima de cada sección deldispositivo se muestra una sección de la máscara con sus zonas opacas y transparentes. La figura 4.8es de gran importancia y conviene comprenderla suficientemente antes de abordar la lectura de losapartados siguientes de este capítulo.

El primer paso del proceso es, como se ha indicado más arriba, crear el pozo N. Esto suele hacersemediante implantación seguida de difusión (ver figura 4.8.a). Para ello es necesaria una máscara quedelimite 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 sedenomina de zona activa o "thinox" (ver figura 4.8.b). Tras delimitar la zona activa, medianteoxidació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, sedelimitan las puertas de los transistores atacando el polisilicio y el óxido fino subyacente en todaspartes menos en las ubicaciones indicadas por la mencionada máscara. La situación tras este ataque sepuede observar en la figura 4.8.d.

En este punto del proceso se procede a crear mediante implantación los surtidores y drenadores detodos los transistores (tanto NMOS como PMOS). Para ello basta con una sola máscara, denominadade implantación. Utilizando esta máscara se implanta de tipo N+ realizando así los drenadores ysurtidores de los transistores NMOS y utilizando su complementaria, o bien la misma con la resinacontraria, se implantan los drenadores y surtidores de los transistores PMOS (ver figuras 4.8.e y4.8.f). Procesos CMOS más complejos utilizan dos máscaras diferentes (una para cada tipo deimplantación).

Page 125: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

134 Diseño digital________________________________________________________________________________

a) Creación del pozo N mediante implantación/difusión.

b) Crecimiento del óxido de campo y delimitación de la zona activa.

c) Crecimiento del óxido de puerta y deposición del polisilicio.

d) Grabado del polisilicio y del óxido de puerta.

Máscara 1: Pozo N.

Máscara 2: Area activa.

Máscara 3: Polisilicio

Figura 4.8 Etapas de un proceso CMOS simplificado

Page 126: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 135________________________________________________________________________________

n n

n n p p

e) Creación de drenadores y surtidores en los NMOS.

f) Creación de drenadores y surtidores en los PMOS.

g) Deposición de óxido y grabado de los contactos.

h) Deposición de metal y grabado de las pistas.

Máscara 4: Implantación n .

Máscara 4-bis: Implantación p .

Máscara 5: Contactos

Máscara 6: Metal

n n

n n

p p

p p

+ +

+

+ + + +

+

+ + + +

+ + + +

Figura 4.8 Etapas de un proceso CMOS simplificado

Page 127: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

136 Diseño digital________________________________________________________________________________

Se denomina óhmico al contacto entre metal y semiconductor que permite el paso de la corriente enlos dos sentidos sin provocar caídas resistivas (el caso opuesto se denomina contacto Schottky orectificador y es una situación a evitar aquí). En general la condición para que el contacto sea óhmicoes que el semiconductor esté fuertemente dopado, como es el caso de los drenadores y surtidores deun transistor MOS. Las etapas finales del proceso consisten en, tras recubrir todo con óxidodepositado, abrir agujeros en éste para poder realizar contactos, es decir, delimitar las zonas donde elmetal debe establecer contacto con el silicio. Para ello se utiliza una nueva máscara denominada decontactos (ver figura 4.8.g).

Un aspecto complementario que merece ser comentado es el siguiente: los drenadores y surtidores delos transistores NMOS son zonas N+ sobre sustrato tipo P; si la implantación N+ tiene lugar sobre elpozo N, lo que se consigue es una zona fuertemente dopada sobre la que es posible establecercontactos óhmicos con el pozo. Análogamente si la implantación P+ tiene lugar sobre el pozo N segeneran los drenadores y surtidores de los transistores PMOS y si dicha implantación se realiza sobreel sustrato P lo que se consigue es tener una zona fuertemente dopada a través de la cual es posibleestablecer un contacto óhmico con el sustrato.

Por último el metal es depositado sobre toda la oblea y eliminado mediante grabado en donde no esnecesario. 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 metalseparadas por óxido y contactarlas donde sea necesario; así, cuando se desea realizar un conexionadocomplejo 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 circuitointegrado recibe el nombre de "layout". El hecho de que tanto el proceso CMOS como el conjunto demáscaras que éste utiliza sean básicamente fijos permite desligar el diseño a nivel transistor de uncircuito integrado de su proceso de fabricación. Por tanto es perfectamente posible separarfísicamente dos etapas: I) el diseñador de circuitos integrados especifica la forma geométrica de lasdistintas 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" elfabricante posteriormente puede fabricar completamente el circuito integrado.

La importancia del layout como herramienta primordial en el diseño y fabricación de circuitosintegrados CMOS es evidente. Nótese que, como iremos comprobando, éste contiene toda lainformación necesaria sobre el circuito, tanto de orden eléctrico (de qué componentes consta elcircuito y cómo están conectados) como de orden físico (aspecto del circuito una vez fabricado).

Page 128: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 137________________________________________________________________________________

Especificaciones a nivel eléctrico y/o

abstracto

Circuito integrado CMOS

Layout

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 esel caso de este libro, mediante distintos entramados en blanco y negro. Los entramados queutilizaremos como referencia se listan en la tabla 4.1.

Máscara Color ObservacionesEntramado

Pozo Marrón

Area activa Verde

Polisilicio Rojo

Implantación Amarillo

Metal Azul

Contacto Negro

Discrimina P y N

Discrimina P y N + +

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 elproceso de fabricación, es pertinente hacer una serie de observaciones generales sobre suinterpretación.

VDDVSS VIN

VOUT

VDDVSS VIN

VOUT

L

W = 1 L

W = 2

Figura 4.10 Layout de un inversor CMOS y circuito eléctrico equivalente

Page 129: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

138 Diseño digital________________________________________________________________________________

a) La intersección de las máscaras de zona activa y polisilicio define el canal de untransistor. En efecto, justamente donde el polisilicio cruza la zona activa enmascara la implantación ypor tanto ésta sólo llega al sustrato en las partes de zona activa no recubiertas por el polisilicio, lascuales pasan a constituir los drenadores y surtidores de los transistores. Esta intersección define, portanto, las dimensiones físicas del canal de los transistores fabricados: como muestra la figura 4.11, Les la distancia entre drenador y surtidor (que coincide con la anchura de la máscara de polisilicio), yW la dimensión transversal del canal (que coincide con la anchura de la máscara de zona activa).

Zona activa

Polisilicio

Canal

W

L

n n

Oxido de puerta

p

a)

b)

+ +

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 lade polisilicio, es o bien de tipo N+ o bien de tipo P+: recordar que las máscaras de implantación P+ yN+ son complementarias; por tanto, definiendo simplemente las zonas P+ como las situadas dentro delas máscaras de zona activa e implantación P+, las zonas N+ quedan definidas automáticamente porexclusión (ver figura 4.12).

c) Los transistores PMOS se encuentran dentro de la máscara correspondiente al pozo N y dela máscara correspondiente a la implantación P+. Simétricamente los transistores NMOS son lossituados 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 elproceso de fabricación, antes del metal se deposita un óxido que recubre toda la oblea, aislando entresí el metal y el polisilicio, que por tanto pueden cruzarse sin provocar un cortocircuito. Si se deseacontactar las pistas de metal y polisilicio hay que indicarlo explícitamente utilizando la máscara decontactos.

Page 130: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 139________________________________________________________________________________

Sustrato P Pozo N

Zona N+

Zona P+

Zona N+

Zona P+

Figura 4.12 Zonas N+ y P+ de acuerdo con las máscaras de pozo, zonaactiva, 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.

S S'

A

B

V

V

F

DD

SS

Figura 4.13 Layout CMOS del ejemplo 4.1

Page 131: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 laalimentación VDD; dado que éstos deben ser PMOS podemos decir que los situados dentro delpozo son los NMOS y que el layout corresponde a tecnología CMOS de pozo P. Además laszonas activas situadas dentro de la máscara de implantación son de tipo p+ y, simétricamente, detipo n+ las situadas fuera.

A

B

S

S'

F

A

BA

B

S S'

V

V

F

DD

SS

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 terminanen puertas de transistor), mientras que F es la salida. En la figura 4.14 se realiza la extracción delesquema eléctrico que, tras una ligera manipulación, es fácil de identificar con una puerta lógicaNAND seguida de una puerta de transmisión.

El conocimiento genérico del proceso permite tener una idea aproximada de la estructura físicadel circuito una vez fabricado. Así, por ejemplo, podemos realizar secciones verticales a partir dellayout. 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 apartadosanteriores: 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 loscontactos, c) metal y polisilicio están separados por el óxido depositado, d) al no haber contactointermedio, 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

Page 132: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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. Estosintoniza con lo dicho en el capítulo 3, donde se suponía el sustrato de los transistores NMOSconectado a la tensión baja de referencia. Como podemos ver aquí, esta conexión se realiza cadacierta área y no individualmente para cada transistor. La situación dual para el sustrato de losPMOS 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 ejedel 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 usala tecnología asociada a este layout.

-Construir la tabla de verdad de la función lógica realizada por el circuito. ¿Qué puerta oconjunto de puertas implementa?

-Dibujar el aspecto de un corte vertical según los ejes M-M' y N-N'.

Page 133: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

142 Diseño digital________________________________________________________________________________

A

B

S

M M'

N

N'

A

B

S

VSS

VDD

VSS

VDD

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 dereglas cuyo objeto es optimizar la cantidad de circuitos fabricados en una misma serie que funcionancorrectamente (este porcentaje suele denominarse "yield").

Un proceso de fabricación tiene siempre limitaciones de orden tecnológico que hacen que existandiferencias entre la estructura que se espera obtener a partir de un determinado layout y la querealmente resulta tras el proceso de fabricación. Estas limitaciones son debidas básicamente a doscausas: a) no idealidad de las etapas de fabricación, b) posibles desajustes (desalineamientos) en eluso 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 precioy, como veremos más adelante, en muchas de las prestaciones eléctricas del circuito), objetivo que

Page 134: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 143________________________________________________________________________________

choca frontalmente con las limitaciones tecnológicas del proceso: ¿hasta qué punto puede reducirse eltamaño de un motivo en el layout (la anchura de una pista, la puerta de un transistor, etc.) estando almismo tiempo razonablemante seguro de que éste efectivamente existirá? ¿hasta qué punto se puedencolocar próximas dos pistas sin correr el riesgo de que se produzca un cortocircuito no deseado?

Reglas relativas a pozo y área activa

2λ3λ

3λ 3λ 3λ 3λ 4λ 3λ

Area activa

Separación Polisilicio-difusión

Lineas de metal primer nivel

Lineas de metal segundo nivel (si existe)

Definición de canal en un transistor

Implantación a zona activa

Agujeros de contacto-metal

Separación entre contactos

2λ2λ

Líneas de polisilicio

10λ

(Excepto contactos de pozo i sustrato)

Figura 4.18 Juego elemental de reglas de diseño para proceso CMOS de pozo N

Page 135: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

144 Diseño digital________________________________________________________________________________

La solución a este problema es considerar la existencia de tolerancias en el proceso de diseño dellayout. Estas tolerancias se traducen en una serie de reglas de diseño que fijan distancias y grosoresmínimos, de forma que si éstas se respetan la probabilidad de que el circuito resultante sea correcto esrazonablemente alta.

Las reglas de diseño están ligadas a la calidad del proceso tecnológico y por tanto dependen delfabricante. Al mismo tiempo la evolución constante de la tecnología conduce a una progresivareducció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 delproceso.

Las reglas de diseño basadas en λ son menos utilizadas en la industria, pero más sencillas y útiles anivel pedagógico. Además son, en cierta medida, independientes del progreso tecnológico, que setraduce en disminuciones del valor efectivo de λ (a título de ejemplo, entre mediados de los añosochenta y principios de la década de los noventa el valor típico de λ en procesos CMOS comercialesha 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 pozoN como el que estamos usando como referencia en este texto. El supuesto básico aplicado es que ladistancia mínima (grosor o separación) que se puede fabricar con garantías es 2λ. En algunassituaciones, cuando el posible desajuste no es catastrófico, la separación mínima entre máscaras serelaja 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ónde posibles desalineamientos de las máscaras implicadas. En la figura 4.19 se reproducen tanto laregla de diseño como el resultado esperable a nivel de sección vertical si no se producen errores.

λ2

Eje Sección

N o P

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áximotolerable) , y b) una desviación de 3λ.

Page 136: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 hadesaparecido, 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 queel transistor estará cortocircuitado, problema que podemos calificar de catastrófico. (Como semuestra en el problema 3.10)

_________________________________________________________________________________

Ejemplo 4.3

Vamos a construir un layout correspondiente a una función OR de dos variables en tecnologíaCMOS de pozo N, utilizando el menor número posible de transistores y respetando las reglas dediseño dadas en la figura 4.18. El tamaño de los transistores NMOS será 2λx2λ, y para los PMOSla anchura será el doble.

De entre las opciones CMOS que permiten realizar una puerta OR la que más se ajusta a nuestrasnecesidades 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 seamá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 unmismo semiplano y los NMOS también próximos entre si y en el semiplano contrario, b) alinearlos transistores que tengan la misma variable de entrada, de forma que ésta pueda introducirsemediante 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 conestas directrices.

Page 137: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

146 Diseño digital________________________________________________________________________________

VO

VA

VA VB

VB VO

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-áreaactiva), las pistas de interconexión y los contactos, escogiendo el grosor de pistas y transistoresde acuerdo con las prestaciones eléctricas deseadas para el circuito, todo ello respetando lasreglas de diseño del fabricante. El resultado es un layout como el de la figura 4.22, cuyasdimensiones son múltiplos enteros de λ.

VA VB VO

V

V

DD

SS

Figura 4.22 Layout del ejemplo 4.3

Page 138: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 formaartesanal o manual, tal como este ejemplo parece indicar, sino que normalmente se utilizanentornos software muy completos que permiten tanto editar layouts como verificar si éstoscumplen las reglas de diseño e incluso extraer el circuito equivalente a nivel eléctrico y, enocasiones, simular su funcionamiento.

_________________________________________________________________________________

Ejercicio 4.2

Construir un layout que corresponda a una función NAND de cuatro variables en tecnologíaCMOS de pozo N, utilizando el menor número posible de transistores y respetando las reglas dediseño dadas en la figura 4.18. El tamaño de los transistores NMOS debe ser 2λx2λ, y para losPMOS 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 dediversos materiales sobre la oblea, y por otra, de zonas con distinto tipo de conductividad dentro delmismo silicio. Cada una de estas capas y zonas semiconductoras presenta una resistencia al paso decorriente, 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 delas 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.23puede 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). Elvalor de la resistencia viene dado en ohmios.

Page 139: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

148 Diseño digital________________________________________________________________________________

ρρ=

L

W

tI

S W tR

L=

L

Figura 4.23 Resistencia de una pista conductora

Una forma alternativa, muy útil, de reescribir la expresión dada consiste en relacionar R con losparámetros L y W (directamente observables en un layout) a través de una constante, que incluya ρ yt. Por otro lado, podemos interpretar la relación L/W como el número de cuadrados de lado Wcontenidos en la pista de longitud L. Por tanto, podemos calcular la resistencia de esa pistamultiplicando el número de cuadrados por la constante ρ/t , que es la resistencia de una pista cuadraday se la denomina resistencia de cuadro

R=ρt

L

W= Rs (

L

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 laresistencia de cuadro de una determinada capa (polisilicio, metal, difusión, etc.) es un dato asuministrar por el fabricante. En cambio L y W son dimensiones presentes en el layout, siendo portanto 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 yW son las variables a través de las cuales puede modificarse el valor de la resistencia. La figura 4.24ilustra este método de cálculo mediante algunos ejemplos.

L

W

L

W

II

R=3RS

R= RS32

Figura 4.24 Layout y cálculo de resistencias

Page 140: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 149________________________________________________________________________________

La tabla 4.2 muestra valores característicos para las resistencias de cuadro de distintos materialesutilizados 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 deinterconexión. Tomemos como referencia la situación mostrada en la figura 4.25, donde una pista deun 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 pistasde poca longitud y/o muy anchas.

I = -VO

Vi

IRS

L

W

LW

V i VO

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 dospuntos alejados de un circuito debe realizarse mediante una pista metálica. Por otra parte, es necesarioser muy cuidadoso con la longitud excesiva de las pistas de polisilicio y/o difusión debido al elevadovalor de resistencia de cuadro que presentan. Adicionalmente este problema empeora cuanto mayorsea la corriente transportada por la pista.

En principio el concepto de resistencia de cuadro presentado solamente es útil para pistasrectangulares. Obtener la resistencia cuando la forma de la pista es otra necesita de cálculoscomplejos, aunque para las formas más corrientes el resultado está tabulado. Como ejemplo la figura4.26 muestra dos formas habituales, el ángulo y el cambio de anchura, junto con el valor deresistencia correspondiente.

Page 141: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

150 Diseño digital________________________________________________________________________________

W / W

W /

1 2.5

2 2.6

3 2.75

W1 2

2W

2W

2W

2W

1W

1W

1W

1W

R

SR

SR

SR

21 R

SR2 2.25

3 2.5

4 2.65SR

SR

Figura 4.26 Resistencia de pistas no rectangulares

Aunque los transistores MOS tengan una característica no lineal y por tanto en rigor no puedanasimilarse a una resistencia (la cual tiene por definición un comportamiento lineal), es útil en algunasocasiones asignar a los transistores una resistencia media equivalente cuando el transistor no estácortado. Una expresión habitualmente utilizada es

RMOS= RsL

W=

3

2CoxµVDD

L

W

siendo L y W la longitud y la anchura del canal respectivamente, Cox=εox/tox la capacidad por unidadde superficie del condensador de puerta y µ la movilidad de los electrones o huecos (en función de sise 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 laspuertas de los transistores. Vamos a comentar estos tres tipos por separado.

a) Capacidades relacionadas con las pistas de polisilicio y metal: cualquier par deconductores separados por un aislante presenta una capacidad, siendo éste el caso de la multitud depistas existentes en un circuito integrado MOS, en general próximas entre sí y separadas por óxido desilicio. Una evaluación precisa de estas capacidades no es tarea sencilla ya que podemos considerarpara cada pista una capacidad con respecto al substrato y las capacidades entre esta pista y las demás(ver figura 4.27).

Page 142: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 151________________________________________________________________________________

a)

SiSi

b)

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 puedenevaluarse aproximándolas a un condensador de placas paralelas, de acuerdo con la expresiónsiguiente

C = C' WL

donde C' es la capacidad específica de la pista (F/µm2), valor dependiente del proceso, y WL es lasuperficie de la pista (µm2), dato fácilmente extraíble del layout.

b) Capacidades asociadas a las difusiones: en un circuito CMOS los surtidores y drenadoresde los distintos transistores son zonas N+ o P+ creadas sobre zonas P o N (en función de si se trata detransistores NMOS o PMOS respectivamente); esto implica uniones P+/N y N+/P que siempre estánpolarizadas en inversa. Como se vio en el volumen I de esta misma serie, una unión polarizada eninversa presenta la denominada capacidad de transición. Para calcular el valor de esta capacidad espreciso tener en cuenta las superficies frontal y perimetral de la zona difundida; así, si tomamos comoreferencia la difusión n+ de la figura 4.28 podemos calcular su capacidad de transición como

Cj = Cja (ab+ t (2a + 2b)) = Cjaab+ Cjp(2a+ 2b)

donde a y b son las dimensiones horizontales de la difusión (medibles sobre el layout), y Cja y Cjp lascapacidades por unidad de superficie y de longitud respectivamente (valores otra vez dependientesdel proceso, es decir, del fabricante).

P

a

b

tN+

Figura 4.28 Referencia para el cálculo de la capacidad de transición.

Page 143: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

152 Diseño digital________________________________________________________________________________

c) Capacidades asociadas a las puertas de los transistores MOS: se debe recordar que lapuerta ejerce su influencia sobre el canal de forma capacitiva, luego existe siempre una capacidadentre 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 deconducción del canal, es decir de las tensiones aplicadas al transistor. Si se toma un criterio pesimistase puede suponer que la capacidad de puerta toma el mayor valor posible, es decir

CG = CoxLW

donde L y W son las dimensiones del canal y Cox es la capacidad específica de la puerta. Comoveremos al final de este mismo capítulo, esta estimación por exceso de la capacidad de puertaconduce 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 untransistor MOS: las de cada difusión desde los terminales de drenador y surtidor, y la de puerta desdeel terminal de puerta.

CG

Cj1 Cj2

Figura 4.29 Principales capacidades en untransistor 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 equivalentepara el transistor NMOS en conducción, según la expresión del apartado 4.3.1, si el valor de VDDes 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.

Page 144: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 153________________________________________________________________________________

VDD

VSS

VIN

VOUT

Tenemos que encontrar la relación L/W del transistor NMOS. Observando directamente dellayout obtenemos 2λ/2λ = 1. Entonces:

RNMOS=3

2CoxµnVDD

L

W=1.7 kΩ

Calcular la longitud que debería tener la pista metálica conectada a VSS para que el efecto de laresistencia 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, lasresistencias estarán en serie, y la resistencia resultante será la suma de ambas. Para que laresistencia de la pista sea relevante podemos considerar que debe valer, como mínimo, el 10% dela del transistor.

Rpista = RSmetalL

W Lmin = 4λ

RminRSmetal

= 14.3 mm (≈ 11500λ !!)

Calcular también la capacidad con el sustrato de cada uno de los nodos del circuito. La capacidadde un nodo del circuito respecto del sustrato (que suponemos conectado a tensión nula) puedecalcularse sumando las capacidades respecto del sustrato de cada una de las pistas conectadas adicho nodo, que estarán en paralelo. Así, por ejemplo, para calcular la capacidad vista desde elnodo VDD, hay que considerar la del trozo de pista visible de metal más la del surtidor deltransistor PMOS, teniendo presente que en los contactos la capacidad de la pista de metal con elsustrato queda enmascarada por el surtidor y por tanto no cuenta

CVDD= Cmetal + Csurtidor

PMOS= Cms40λ2 + Cja20λ2 + Cjp18λ = 0,034pF

Igual puede procederse para obtener las capacidades vistas desde los nodos VSS y OUT

CVSS= Cms40λ2 + Cja18λ2 + Cjp18λ = 0,033pF

COUT = Cms44λ2 + Cja38λ2 + Cjp36λ = 0,056pF

Page 145: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

154 Diseño digital________________________________________________________________________________

Finalmente la capacidad vista desde el nodo IN constará de la capacidad de la pista de polisiliciomás las capacidades de puerta de los transistores

CIN = Cpoly + CGPMOS+ CGNMOS= Cps82λ2 + Cox12λ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 laresistencia que presenta la pista de polisilicio de cualquiera de las entradas a ser recorrida deextremo 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 susretardos de propagación. Un análisis preciso de los retardos requiere de la simulación por ordenadordel comportamiento eléctrico del circuito. En este apartado se presenta un método sumamentesencillo de estimar retardos por exceso, estimación que no puede en ningún caso sustituir a lamencionada 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 lanecesidad de modificar los valores de tensión en sus nodos. En este mismo capítulo se ha visto queestos nodos presentan siempre una cierta capacidad parásita, y, por tanto, son imposibles los cambiosinstantáneos de tensión: es necesario un cierto tiempo para efectuar su carga o descarga. Esta carga odescarga de capacidades se realiza siempre mediante corrientes circulando a través de caminos encierta medida resistivos.

El procedimiento de estimación de retardos que aquí se propone se basa en identificar el circuito conuna 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 necesarioasignar un valor de resistencia a cada transistor; b) suponer que las distintas células RC sonindependientes entre sí y que por tanto el retardo de varias células en cascada es la suma de cada unode 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).

Page 146: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 155________________________________________________________________________________

VDD

VOV i

C

V i

tVO

t

0,63

R

VDDVDD

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 lacapacidad vista en el nodo de salida. Esta capacidad incluye las capacidades de puerta de lostransistores allí conectados, la de las zonas difundidas (drenadores de los transistores del inversor) yla de las pistas de conexión.

VDD

VOV i

CL

pLH

pHL

t

t

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 delos cuales corresponde al tránsito ascendente de la tensión de salida, mientras que el segundo serefiere al tránsito descendente. Cuando la tensión de salida pasa de 0 a VDD es porque la entrada haconmutado de VDD a 0, pasando el transistor NMOS a corte y el PMOS a conducción. Luego la cargadel nodo de salida se realiza desde la alimentación a través de la resistencia equivalente del transistorPMOS. Un razonamiento simétrico puede hacerse para la transición de la tensión del nodo de salidade VDD a 0. Aplicando el procedimiento descrito más arriba los tiempos de propagación se calculancomo

Page 147: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

156 Diseño digital________________________________________________________________________________

t pLH ≈ RPMOSCL = RSPL

W

PCL

t pHL ≈ RNMOSCL = RSNL

W

NCL

Ejemplo 4.5

Calcular los tiempos de retardo del inversor cuyo layout se indica en la figura 4.10 obteniendopreviamente la resistencia equivalente de cada transistor y la capacidad a la salida del circuito silo cargamos con otro inversor idéntico, como se muestra en el esquema que sigue. Utilizar losdatos del ejemplo 4.4, y RSP=2.5xRSN.

El cálculo de la resistencia de cada transistor resulta inmediato conociendo sus dimensiones

RNMOS= RSNL

W

N= RSN

2λ2λ

= 1.7kΩ RPMOS= RSPL

W

P= 2.5RSN

2λ4λ

= 2.1kΩ

La capacidad vista a la salida del circuito constará en principio de tres componentes, dos de ellasya calculadas en el ejemplo 4.4: la capacidad de salida del inversor (COUT) más la de entrada delinversor de carga (CIN) y la de las pistas que se añadan para conectarlos. Observamos que esto sehace con un contacto de metal a polisilicio de 4λx4λ, tenemos

CL = COUT + CIN + Ccontacto= 0,056pF+ 0,091pF+ Cps16λ2 = 0,15pF

En consecuencia los retardos de propagación serán

t pHL ≈ RNMOSCL = 0,26ns t pLH ≈ RPMOSCL = 0,32ns

_________________________________________________________________________________

Page 148: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 elnodo intermedio (Entre la NOR y el inversor) y el nodo de sustrato. Calcular la resistenciaequivalente de cada uno de los transistores. Calcular, finalmente, el tiempo de propagación hastaeste 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 desalida CL1 y CL2. El cálculo de los retardos de propagación en este caso es fácil puesto que las dosetapas 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 delsegundo inversor; luego el retardo de toda la cadena puede obtenerse como la suma de los retardos decada etapa.

V DD

VOV i

CL1

V DD

CL2

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 nodointermedio; por tanto, dicho nodo se descargará a través del transistor NMOS del primer inversor. Latransición en el nodo intermedio provoca a su vez una transición ascendente en la salida del segundoinversor (el nodo de salida se cargará a traves del transistor PMOS del segundo inversor). Unrazonamiento simétrico puede hacerse para la transición contraria. Los retardos de propagación serán:

tpLH = tpHL1 + tpLH2 ≈ RMOSN1CL1 + RMOSP2CL 2 = RSN1(L

W)N 1CL1 + RSP2(

L

W)P2CL2

tpHL = tpLH1 + tpHL2 ≈ RMOSP1CL1 + RMOSN2CL 2 = RSP1(L

W)P1CL1 + RSN2(

L

W)N 2CL 2

Este procedimiento es directamente generalizable a cadenas de más inversores.

Page 149: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

158 Diseño digital________________________________________________________________________________

Ejemplo 4.6

Llamamos anillo de inversores a una cadena de inversores cerrada. El de la figura 4.33 es unanillo formado por tres inversores CMOS iguales.

C =C =C = 0.3 pF

Inversores iguales, con:

(W/L) = 2λ/2λN

(W/L) = 4λ/2λP

R =2R =5 k•SP SN

1 2 3C2C1

VDD

V3

V DD DDV

C3

V2V1

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 instantedeterminado 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 nodo2, pero no instantáneamente, sino con un cierto retardo, tpHL del inversor. Igualmente, el tercerinversor forzará una variación de tensión de 0 a VDD a su salida, el nodo 3, con su retardocorrespondiente tpLH. Este cambio excita una transición en la entrada del primer inversor queresulta en una conmutación del nodo 1 de VDD a 0; esta conmutación se produce 2tpHL + tpLHdespues de la primera transición considerada. El análisis que sigue ahora es el inverso del yarealizado, para volver al punto de partida. La conclusión es que las tensiones en los nodososcilan.

b) Calculése la frecuencia de oscilación.

Siguiendo el razonamiento del apartado anterior podemos calcular el período de oscilación

Tosc= t pHL2 + t pLH3 + t pHL1 + t pLH2 + t pHL3 + t pLH1

Tosc= 3 t pHL + t pLH( )= 3 RSNL

W

NCL + RSP

L

W

PCL

= 3.6 ns

Y, a partir de aquí, la frecuencia de oscilación

f osc=1

Tosc≈ 280 MHz

_________________________________________________________________________________

Page 150: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 alresto 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:

WN (i) = k ⋅ WN(i −1) WP(i ) = k ⋅WP(i −1) LN(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 dek para CL = 50 pF. Encuentre el valor de k que minimiza el retardo y el valor de éste.

t p =1

2t pLH + t pHL( )

C1 C2 C3 CL

0 1 2 3 (W/L) = (W/L) = 2λ/2λN0 P0

R =2R =5 k•SP SN

C =0

C1

k=

C2

k2= 0.2 pF=

C3

k3

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 detransmisión que está conduciendo podemos asociar ésta a una serie de etapas RC conectadas encascada, tal como muestra la figura 4.35.

TNT1 T2 T3

RNR1 R2 R3

CNC1 C2 C3

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 paraobtener el retardo global puesto que la carga o descarga de cada capacidad no se realiza individualmente. Por ejemplo, una corrienteentrante contribuye a cargar todas las capacidades.

Page 151: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

160 Diseño digital________________________________________________________________________________

Una posibilidad de estimar el retardo en la carga o descarga de cada nodo es asociarlo a una constanteRC donde el valor de la resistencia corresponde a la asociación serie de los transistores que debeatravesar 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 )CN

Luego el retardo global de la cadena será

t p = tpii=1

N

∑ ≈ Rjj=1

i

Ci

i =1

N

Un caso particular de interés es aquél en que las etapas son idénticas, es decir, cuando resistencias ycapacidades son iguales entre sí (llamémoslas R y C). En esta situación el retardo global sería

t p ≈ Rj =1

i

C

i=1

N

∑ = RC ii =1

N

∑ = RCN( N+ 1)

2

Otro caso de interés, éste bastante más realista, es aquél en que las etapas son idénticas (transistoresiguales) y la capacidad vista en el nodo de salida es muy superior a las de los nodos intermedios, esdecir R1=R2=..=RN=R y C1=C2=..=CN-1<<CN. En esta situación el retardo global sería

t p ≈ RiCNi=1

N

∑ = NRCN

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

VOV i

Vx

VC

VC

Cx CO

Figura 4.36 Circuito del ejemplo 4.7

Page 152: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 161________________________________________________________________________________

Es razonable suponer que la capacidad del nodo intermedio Cx, que corresponderá a difusiones ypistas de escasa longitud, es muy inferior a la del nodo de salida (ésta sí de valor apreciable segúnel enunciado); por tanto, los retardos de propagación serán debidos básicamente a la carga ydescarga de CO. Por otra parte, es evidente que estas cargas y descargas se realizarán siempre através de uno de los transistores del inversor y de los dos de la puerta de transmisión, por lo quepodemos escribir directamente

tpHL ≈ RNMOS + RPMOS RNMOS( )CO = L / W( )N +2 L / W( )P L / W( )N

2 L / W( )P

+ L / W( )N

RSNCO = 3 ns

tpLH ≈ RPMOS + RPMOS RNMOS( )CO = 2 L / W( )P+

2 L / W( )P

L / W( )N

2 L / W( )P + L / W( )N

RSNCO = 3 ns

_________________________________________________________________________________

Ejercicio 4.6

Calcular el retardo de propagación tpHL del circuito del ejemplo 4.1, cuyo layout se explicita en lafigura 4.13, si la carga capacitiva en el nodo F es de 2.5 pF, para las mismas resistencias decuadro 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 cualquierpuerta CMOS. En una puerta de n entradas podemos definir distintos retardos de propagaciónrelacionados con distintas conmutaciones en las entradas. Si la capacidad parásita en el nodo de salidaes, con mucho, la mayor de la puerta, entonces los retardos tipo LH pueden calcularse considerandoesta capacidad y la resistencia equivalente de los transistores que conducen entre la salida y laalimentación (VDD). Simétricamente, los retardos tipo HL se calcularán considerando la capacidaddel 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 losmismos datos que en el ejemplo 4.7.

Page 153: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

162 Diseño digital________________________________________________________________________________

V DD

V O

VA VB

VB

VA CO

Figura 4.37 Circuito del ejemplo 4.8

Si la capacidad del nodo intermedio de los transistores NMOS es muy inferior a CO, los retardosde propagación serán debidos a la carga y descarga de CO. Además es evidente que la descargade 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

t pHL ≈ RNMOS+ RNMOS( )CO = 2L

W

NRSNCO = 4ns

En cambio hay tres combinaciones de entrada que hacen conducir a la red PMOS, que paratransistores iguales generan dos retardos de propagación bajo-alto diferentes, según conduzca unsolo transistor PMOS, o ambos:

t pLH min≈ RPMOS RPMOS( )CO =

1

2RPMOSCO =1 ns

t pLH max≈ RPMOSCO = 2 ns

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 enla figura 4.13, si la carga capacitiva en el nodo F es de 2.5 pF, para las mismas resistencias decuadro para los del ejemplo anterior.

_________________________________________________________________________________

Page 154: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 deelectrones, razone qué tipo de pozo es mejor para equilibrar esta diferencia, y por tanto el tamaño delos transistores correspondientes.

C4.2 Describa detalladamente el proceso CMOS simplificado presentado en este capítulo, a nivel deetapas 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 reglade diseño de la figura 4.18, referida a la distancia mínima entre una pista de polisilicio y otra de zonaactiva.

λ

C4.4 Responda a la cuestión anterior suponiendo que existe un desalineamiento de las tres máscarasinvolucradas 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 distintosmateriales involucrados en un proceso CMOS, según los datos de la tabla 4.2, cumpliendo las reglasde 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 unfactor 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 factork1, 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

Page 155: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

164 Diseño digital________________________________________________________________________________

RNMOS= VDS

ID VGS=VDD

encuentre una expresión para la resistencia de cuadro de un NMOS para VDS=VDD, para VDStendiendo a 0, y el valor medio de los anteriores. Compare los resultados obtenidos con laexpresión propuesta en el punto 4.3.1.

C4.9 Si en un circuito CMOS las únicas resistencias relevantes fueran las de los transistores enconducción, y las únicas capacidades las de puerta de los transistores, razone cuál sería ladependencia 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 laserie de máscaras del proceso. Encuentre el esquema eléctrico equivalente. Identifique entradas ysalidas, obteniendo la tabla de verdad de la función lógica que implementa.

1

1

2

2

C

0C1C2C3C

S

S

S

S

Page 156: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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

VSSVi Vo

CLK

Vi

CLK

Obtenga el esquema eléctrico equivalente. Identifique, si es posible, puertas o combinaciones depuertas conocidas. Suponiendo el nodo Vo cargado con una capacidad, razone cuál será laevolución temporal de la tensión en el nodo de salida a partir de la información del cronogramaadjunto.

P4.3 Al siguiente layout, correspondiente a una implementación CMOS en tecnología de pozo P, lefalta la información del interior del pozo.

Page 157: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

166 Diseño digital________________________________________________________________________________

Obtenga el esquema eléctrico equivalente de la parte visible del layout, identificando claramentelas señales de alimentación, entrada y salida. Realice la tabla de verdad de la función queimplementa. Complete el esquema eléctrico y dibuje la parte del layout que falta, cumpliendo lasreglas 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

F

V

A B

V

DD

SS

P4.5 Estudie el siguiente layout. Encuentre el esquema eléctrico equivalente y calcule la resistencia dela pista conectada a Φ, si la resistencia de cuadro del polisilicio es de 50 •. La capacidad parásita totalvista desde el nodo VO es de 10 pF; calcule los retardos de propagación si esta es la única capacidadsignificativa 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.

Page 158: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Fundamentos tecnológicos del diseño digital 167________________________________________________________________________________

Vi

Vo

VDD

VSS

Φ Φ

P4.6 Encuentre el esquema eléctrico y la tabla de verdad del circuito implementado por el siguientelayout. ¿Qué reglas de diseño de entre las dadas en la figura 4.18 se incumplen en este layout?

VDD

VSS

F

A B C

Page 159: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

168 Diseño digital________________________________________________________________________________

P4.7 La salida del circuito del problema anterior está conectada a un inversor, siendo las dimensionesde sus transistores función de un parámetro adimensional ß: Wpinv=3βλ, Lpinv=2λ, Wninv=βλ, yLninv=2λ.

C =1pFL

a b c

La capacidad parásita entre el nodo de entrada al inversor y masa es la de las puertas detransistores conectadas al nodo. En el instante to, la entrada c conmuta entre 1 y 0, mientras a=0 yb=1. Calcule el tiempo de propagación (en función de ß) hasta que se actualiza la salida delinversor. Calcule también el peor tiempo de propagación. Encuentre el valor de ß que minimizael 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 unacadena de inversores CMOS, en los cuales Wp=Wn=W y Lp=Ln=L=2λ. Las únicas resistenciasrelevantes son las de los transistores en conducción, y las únicas capacidades las de las puertas de lostransistores. Calcule la dimensión W del último inversor para que su retardo de propagación seainferior a 5 ns para los mismos datos de proceso que en el problema anterior. Haga una estimación delvalor de la capacidad de entrada de este inversor en función de la que tendría otro de dimensionesmínimas (transistores de 2λx2λ).

C L

V OV i

i+11 2 i N

VDD VDD VDD VDD VDD

Evalue el retardo total de la cadena de inversores, sabiendo que las anchuras de los transistoresson geométricamente crecientes con un factor f (Wi+1=fxWi). Encuentre el resultado en funciónde las resistencias de cuadro y capacidades específicas involucradas, para un número genérico deinversores N. Nota: considere que la anchura del inversor N-ésimo es tal que la capacidadparásita a su entrada cumple CinvN = f-1 CL.

Page 160: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 169________________________________________________________________________________

Capítulo 5 Diseño de circuitos combinacionales

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

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

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

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

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

Page 161: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

170 Diseño digital________________________________________________________________________________

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

Ejemplo 5.1

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

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

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

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

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

Page 162: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 171________________________________________________________________________________

a a1 0 b1 b0

S1

S 0

S2

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

ba +1

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

a 1a

1 b

0+

0b

1b

0+ a

1a

0b

1b

0

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

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

C2

M

M

a 1

a 0

b 1

b 0

S1

S0

S2

C0

C1a 1

b 1a 0

b 0+

S1 S0S2

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

a i b i Ci S iC

i+1c)a) b)

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

Page 163: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

172 Diseño digital________________________________________________________________________________

ibia

i+1C

iSiC

Si = ai ⊕ bi ⊕ Ci

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

Figura 5.3 Realización de un sumador elemental

_________________________________________________________________________________

Ejercicio 5.1

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

2Circuito Restador

A R

B2

O = 1 si B > A

R =(A-B) si B ≤ A2

O

Figura 5.4 Circuito del ejercicio 5.1

_________________________________________________________________________________

5.2 Diseño con redes modulares

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

Page 164: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 173________________________________________________________________________________

5.2.1 Construcción de redes modulares

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

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

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

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

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

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

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

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

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

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

Page 165: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

174 Diseño digital________________________________________________________________________________

M3M1

M2

M3M1

M2

b)a)

Figura 5.5 a) Red modular correcta, b) incorrecta

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

F = f f

M2

M1f1

f2

F = f + f1 2

M2

M1f1

f2

1 2

Figura 5.6 Puertas AND y OR cableadas

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

Ejemplo 5.2

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

Page 166: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 175________________________________________________________________________________

E1

E2

M1f1

f2

F = f E + f E1 2

M2

E

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

_________________________________________________________________________________

Ejercicio 5.2

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

A B C E

E

Vdd

Vss

F

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

_________________________________________________________________________________

Page 167: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

176 Diseño digital________________________________________________________________________________

5.2.2 Análisis y síntesis de redes modulares

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

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

Ejemplo 5.3

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

A

B

x y

zM14

4 x y

zM14

4

x y

zM24

4x y

zM24

4

m n

pM34

44 DC

Q

zM1 =x si x≥ y

y si x< y

zM 2 =x si x≤ y

y si x> y

p M3 =m+ n si Q= 0

m− n si Q=1

Figura 5.9 Red modular del ejemplo 5.3

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

Page 168: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 177________________________________________________________________________________

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

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

_________________________________________________________________________________

Ejemplo 5.4

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

Circuito Comparador

AF

B

4

4

F = 1 si A > B

F = 0 si A ≤ B

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

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

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

p

0c1p

2p

3p3

3

ab

2

2

ab

1

1

ab

0ab

3c

2c

1c

0

1

F

M

M

M

M0

Figura 5.11 Comparador del ejemplo 5.4

Page 169: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

178 Diseño digital________________________________________________________________________________

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

ib

ia

ic

ip

i+1p

ci = pi +1aib i

pi = pi+1ai ⊕ bi =

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

_________________________________________________________________________________

Ejercicio 5.3

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

3a 3b

Comp. 4 bits

2a 2b1a 1b0a 0b

4c 3cM1

3a 3b

Comp. 3 bits

2a 2b1a 1b0a 0b

4c

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

3cM1

3a 3b2a 2b1a 1b0a 0b

4c2cM1

1cM1M11

_________________________________________________________________________________

Page 170: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 179________________________________________________________________________________

5.3 Módulos combinacionales estándar

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

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

5.3.1 Decodificadores

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

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

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

01

2

nn-1

1

0

E

De

cod

ifica

do

r

2 -1

...

...

x

n-1

1

0x

01

2

n2 -1

yyy

yx

yi =1 si i = x y E=1

0 si i ≠ x o E = 0

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

j =0

n−1∑

Figura 5.12 Decodificador binario de n entradas

Page 171: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

180 Diseño digital________________________________________________________________________________

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

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

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

0

1

y

y

E

2

3

y

y

0

1

x

x

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

x 1 x 0E y1

y0

y3

y2

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

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

x

x

0

1

y

y

E1

2

3

y

y

0

1

x

x

E2

0

1

2

1

0

E2

De

cod

ifica

do

r

1

0

0

1

2

y

yy

3 3y

E1

Figura 5.14 Decodificador binario 2:4 con salidas activas bajas

Page 172: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 181________________________________________________________________________________

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

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

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

x 1 x 0y1

y0

y3

y2E1 E2

Figura 5.15 Tabla de verdad del circuito de la figura 5.14

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

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

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

Page 173: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

182 Diseño digital________________________________________________________________________________

76543210

012

E

De

cod

ifica

do

r

76543210

012

E

De

cod

ifica

do

r0x1x2x

3x

0y

15y

8y

7y

15y3

21

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

321

01 D

ecod

0

E

12y

11y

8y

7y

4y

3y

0y

E

0x1x

2x3x

a) b)

Figura 5.16 Ejemplos de encadenamiento de decodificadores

Ejercicio 5.4

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

_________________________________________________________________________________

5.3.2 Codificadores

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

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

Page 174: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 183________________________________________________________________________________

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

01

2

n

n-1

1

0E

Co

difi

cad

or

2 -1

...

...

y

n-1

1

0y

y

01

2

n2 -1

xxx

x A

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

0 si E = 0 o xi = 0 ∀ i

con y = yj 2 j

j =0

n−1

Figura 5.17 Codificador binario de 2n entradas

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

y1

A

y0

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

0 1 1 1 1 1

X 0 0 0 0 1

0 0 0 1 0 1

0 0 0 0 1 1

0 0 1 1 1 1

X 0 1 X X X

X 0 0 1 X X

X 0 0 0 1 X

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

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

Ejemplo 5.5

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

Page 175: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

184 Diseño digital________________________________________________________________________________

Co

difi

cad

or

Z0Z1

A1

X3 X2 X1 X0

A2E

E X0 X1 X2 X3 A1 A2 Z1 Z0

1 0 0 0 0 0

X 1 X X X 0

X 1 X X 0 1

X 1 X 0 1 1

X 1 0 1 1 1

1 0 1 1 1 1

1 1 0 0 0 0

1 1 0 0 1 1

1 1 0 1 0 1

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

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

Cod.3210E

10

A1A2

Cod.3210E

10

A1A2

3x

0x

4x

7x

yy y A2

EI

A110 2

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

_________________________________________________________________________________

Ejercicio 5.5

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

_________________________________________________________________________________

Page 176: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 185________________________________________________________________________________

5.3.3 Multiplexores

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

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

2

01

2

n

n-1 1 0E

Mu

ltip

lexo

r

2 -1

... y

n-1 1 0ss

01

n2 -1

xxx

x

s...

y=xi

0

si E=1

si E = 0

siendo i = sj 2j

j =0

n−1

Figura 5.21 Multiplexor de 2n canales

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

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

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

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

i=0

2n−1∑

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

Page 177: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

186 Diseño digital________________________________________________________________________________

x1

x0

s

y y

x1

x0

s

s

s

b)

x0

s

y

x1

E

a)

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

Ejemplo 5.6

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

1 0

x 1

x0

x 3

x 2

s s

y

E

x 3

s1 s0s1 s0

x 1

x0

x 2y

a)b)

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

_________________________________________________________________________________

Ejercicio 5.6

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

Page 178: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 187________________________________________________________________________________

Circuito a diseñar

4

44A

B

s

YY=A si s=0

Y=B si s=1

Figura 5.24 Multiplexor de 2 vectores de 4 bits

_________________________________________________________________________________

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

x3

x

3

0x

4x

7x

8x

11x

12x

E

0s1s

2ss

Mux

012310

E

y

Mux

012310

E

Mux

012310

E

Mux

012310

E

Mux

012310

E

0 0 0 015

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

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

Page 179: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

188 Diseño digital________________________________________________________________________________

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

Ejercicio 5.7

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

Decodificador

3x

3

x4

x7

x8

x11

x12

x15

x

0s1s

2ss

Mux

012310

E

y

Mux

012310

E

Mux

012310

E

Mux

012310

E

3 2 1 0E0

1E

0

Figura 5.26 Multiplexor de 16 canales realizado con decodificadores ymultiplexores

_________________________________________________________________________________

5.3.4 Demultiplexores

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

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

Page 180: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 189________________________________________________________________________________

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

2

01

2

n

n-1 1 0

E De

mu

ltip

lexo

r

2 -1

...

x

n-1 1 0ss

01

n2 -1

yyy

y

s...

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

Si E =1 →ys = x

yi≠s = 0

con s= sj 2j

j=0

n−1

Figura 5.27 Demultiplexor de 2n canales

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

76543210

012

EI

De

cod

ifica

do

r

0y

7y

10

ss

2s

Ex

Figura 5.28 Decodificador 3:8 utilizado comodemultiplexor de 8 canales

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

Page 181: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

190 Diseño digital________________________________________________________________________________

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

5.3.5 Sumadores

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

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

n

Su

ma

do

r

de

n b

its

n

n

A

B

inC outC

S

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

Cout = 1

2n A+ B+ Cin − S( )

Figura 5.29 Sumador de n bits

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

Sumador de 1 bit

bn-1

an-1

sn-1

Cn-1C

n

Sumador de 1 bit

b0

a0

s0

C0

C1

Sumador de 1 bit

b1

a1

s1

C2

.... Cin

Cout

Figura 5.30 Sumador de n bits

Page 182: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 191________________________________________________________________________________

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

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

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

Sumador de 1 bit

bn-1

an-1

sn-1

Cn-1

Sumador de 1 bit

b0

a0

s0

C0

C1

Sumador de 1 bit

b1a

1

s1

Cin

Cout

bn-1

an-1 b

0a

0b1

a1

Generador de acarreos

....

....

....

Figura 5.31 Sumador de n bits con acarreo anticipado

Page 183: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

192 Diseño digital________________________________________________________________________________

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

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

1)

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

si = ai ⊕ bi ⊕ Ci = Pi ⊕ Ci

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

C0 = Cin

C1= G0 + C0P0

C2 = G1 + C1P1 = G1 + G0P1 + C0P0P1

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

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

Ge

ne

rad

or

de

aca

rre

os

G0

P0

G1P1

G3

P3

G2P

2

C0

C1

C2

C3

Cout

Cin

P0

P1

P2

P3

s0

s1

s2

s3

a0

b0

a1b

1

a3

b3

a2b

2

M

M

M

M

a)

b)

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

Page 184: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 193________________________________________________________________________________

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

G0P0

C0

G1P1

Cin

C1

C2

C3

Cout

G3P3

G2P2

Figura 5.33 Generador de acarreos

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

Ejemplo 5.7

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

Page 185: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

194 Diseño digital________________________________________________________________________________

Sumador de 1 bit

Sumador de 1 bit

Sumador de 1 bit

Sumador de 1 bit

b0

a0

a1

b1

a2

a3

p1

p2

p3

p4

p5

p0

1b

0

b0

b1

p1

p2

p3

p4

p5

p0

a0

aa2

a3

b00

a0

a1

a2

a3

x

bb0

+ 1b

1a

0aa

2a

3b

11bb

1

Figura 5.34 Multiplicador de 4x2 bits y algoritmo utilizado

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

5.3.6 Comparadores

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

A>B A<B

A=B

X X 1 0 0

X X 0 1 0

X X 0 0 1

1 0 1 0 0

0 0 0 1 0

0 1 0 0 1

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

Co

mp

ara

do

r

A>B

A<BA=B

An

Bn

EEE> = <

Figura 5.35 Comparador de n bits

Page 186: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 195________________________________________________________________________________

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

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

0

0

B 3 B...

A 3 A...

Co

mp

ara

do

r

A>B

A<BA=B

4

4

> = <

> = <

Co

mp

ara

do

r

4

4

> = <

> = <

a b

a b

"1"

4

4

B 7 B...

A7 A...

Figura 5.36 Comparador de 8 bits

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

Ejemplo 5.8

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

Page 187: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

196 Diseño digital________________________________________________________________________________

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

Co

mp

ara

do

r

4

4

> = <

> = <

a b

"1"

BA

Σ

"9"

ba

s

Cout inC

4 4

Σba

s

Cout inC

4

4

A+B

inC

Cout

Figura 5.37 Sumador de dos cifras BCD

_________________________________________________________________________________

Ejercicio 5.8

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

Page 188: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 197________________________________________________________________________________

A>B A<BA=B

Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<= Comp."1"

4

> = <

a b

4

>

<=

A A...0B3 B...

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

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

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

1115

> = <

"1"

> = <

Comparador

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

Figura 5.38 Comparador de dos números de 16 bits

_________________________________________________________________________________

5.3.7 Unidades aritmético-lógicas

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

S

n

Función u Operación 1

BA

n

n

n

Función u Operación 2

n

n

n

Función u Operación 2

n

n

...

Multiplexor0

S m-1

S1

n

R

m

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

Page 189: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

198 Diseño digital________________________________________________________________________________

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

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

5.4 Diseño combinacional basado en módulos universales

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

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

5.4.1 Diseño combinacional con multiplexores

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

y= ximi (s)i=0

2n−1

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

Page 190: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 199________________________________________________________________________________

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

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

2n−1

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

Ejemplo 5.9

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

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

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

0 0 0 0 1 1 1 1

x 1 x0 f x 2

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 0 0 1 1 0 2

2 1 0

Mu

ltip

lexo

r

f

01 xxx

0 1 2 3 4 5 6 7

0

1

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

Page 191: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

200 Diseño digital________________________________________________________________________________

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

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

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

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

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

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

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

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

Mu

ltip

lexo

r

0

1 0

f

12 xx

x

0

1

2

3

00 0 0 0 1 1 1 1

x 1 x0 f x 2

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 0 0 1 1 0

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

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

Page 192: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 201________________________________________________________________________________

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

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

Mu

ltip

lexo

r

f

1

2

x

x0

0x

1

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

_________________________________________________________________________________

Ejercicio 5.9

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

_________________________________________________________________________________

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

0

1

p

p-1 1 0

Mu

ltip

lexo

r

2 -1

...

p-1 1 0xx

p2 -1

x...

pxn-1x ...( )

f

0f

pxn-1x ...( )1f

pxn-1x ...( )

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

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

canales

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

Page 193: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

202 Diseño digital________________________________________________________________________________

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

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

x2 x1x2 x1

x0

f

a)b)

x0

x0

0

x2 x1x2 x1

x0

x0

0

f

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

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

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

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

5.4.2 Diseño combinacional con decodificadores

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

Page 194: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 203________________________________________________________________________________

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

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

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

0 0 0 0 1 1 1 1

b c f a

0 0 1 1 0 0 1 1

0 1 1 0 1 0 0 1

0 1 0 1 0 1 0 1

00 01 11 10

0

1

a\bc

0 1 0 1

1 0 1 0

Figura 5.45 Función de paridad par para tres bits

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

E

De

cod

ifica

do

r

f

0 1 2 3 4 5 6 7

b)a)

0 1 2

c b a

E

De

cod

ifica

do

r

f

0 1 2 3 4 5 6 7

0 1 2

c b a

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

Page 195: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

204 Diseño digital________________________________________________________________________________

5.5 Diseño combinacional con módulos programables

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

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

5.5.1 Diseño combinacional basado en ROM

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

ROM 2 x kn

kz

nx

E

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

2n−1

0 ≤i ≤ k− 1

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

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

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

Page 196: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 205________________________________________________________________________________

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

01

2

nn-1

1

0

E

De

cod

ifica

do

r

2 -1

... ..

.

x

n-1

1

0x

Matriz OR

x

...

z

k-1

1

0z

z

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

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

Ejemplo 5.10

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

0

1

21

0

De

cod

ifica

do

r

x

1

0x

0 1 2z z z

3

3z

0

1

21

0

De

cod

ifica

do

r

x

1

0x

0 1 2z z z

3

3z

b)a)

Figura 5.49 ROM de 4x4 bits realizada con puertas

Page 197: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

206 Diseño digital________________________________________________________________________________

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

X1 X0 Z0 Z1 Z2 Z3

0011

0101

1010

1110

0110

1001

PalabrasDirecciones

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

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

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

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

Figura 5.50 Funciones implementadas por el circuito del ejemplo 5.10

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

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

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

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

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

C = x 1 + x0 = x1x 0 = m2

D= x 1 + x 0 = x1x0 = m3

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

Page 198: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 207________________________________________________________________________________

V DD

A

B

C

D

0 1 2z z z

3zx1 0x

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

_________________________________________________________________________________

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

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

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

Page 199: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

208 Diseño digital________________________________________________________________________________

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

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

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

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

5.5.2 Diseño combinacional con PLA

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

kz

nx

2n Matriz AND

r Matriz OR

Figura 5.52 Esquema genérico de una PLA

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

Page 200: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 209________________________________________________________________________________

Ejemplo 5.11

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

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

p3 = a1a0b1b0

p2 = a1b1b 0 + a1a 0b1b0

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

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

a0

a1

b0

b1

p0

p3

p2

p1

Figura 5.53 Esquema de la PLA del ejemplo 5.11

_________________________________________________________________________________

Ejercicio 5.10

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

_________________________________________________________________________________

Page 201: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

210 Diseño digital________________________________________________________________________________

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

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

Descripción y edición

del diseño

Compilación y optimización

Mezcla

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

Elección del dispositivo

Librerías o catálogos de los

fabricantes

Generación del conexionado

óptimo

Tablas de verdad, expresiones algebraicas,

cronogramas, etc.

Otros diseños

Grabador

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

Page 202: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 211________________________________________________________________________________

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

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

5.6 Cuestiones y problemas

Cuestiones

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

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

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

x2

Co

difi

cad

or

x1x0

E

x3 y1

y02

y

y

3y

Dec

odifi

cado

r

1y0

E

x1

x0

Page 203: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

212 Diseño digital________________________________________________________________________________

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

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

y= E ximi (s)i =0

2n−1

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

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

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

a b

cBloques o

n

n n

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

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

o = 1 si existe desbordamiento

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

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

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

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

Page 204: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 213________________________________________________________________________________

Problemas

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

M1 M1 M1M1

3a 3b2a 2b1a 1b0a 0b

A< BA= BA> BE <

E >

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

4 4 4

A n-1 A 1 A 0

D 2

D 5

D 4

D 3Bloque a diseñar

...

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

0 en otro caso

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

yyyyyyyy

7

6

5

4

3

2

1

0

x 0x 1x 2

De

cod

ifica

do

r

E

z1

x 00x 01

x 10x 11

x 20

x 21

x 30

x 31

s

z0

z2

z3

E

Cu

ad

. M

ulti

ple

xora

b

c

d

o

a

b

c

z

x 0

x 1x 2x 3x 4

x 5x 6

x 7

s0s1s2

E

Mu

ltip

lexo

r

e f g

"0"

Page 205: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

214 Diseño digital________________________________________________________________________________

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

32

a 0

aa

a 1

z 0

z 1

b 1

b 0

2

3

bb

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

yyyyyyyy

0

1

2

3

4

5

5

7

x 0x 1

x 2

De

cod

ifica

do

r

E

x 0

x 1x 2x 3

x 4

x 5x 6

x 7

E

Co

difi

cad

or

Bin

.

y 0y 1y 2

"0" "1"

A

B

S

Co

Ci

Su

ma

do

r

"1"

D0D1D2

D0

D1D2

R0R1R2

Page 206: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos combinacionales 215________________________________________________________________________________

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

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

a) Un multiplexor de 8 canales.

b) Un multiplexor de 4 canales y puertas NOR.

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

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

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

Z1 Z2 Z3 Z4 Z5 Z6BA

VDDVDD

Page 207: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

216 Diseño digital________________________________________________________________________________

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

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

Page 208: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 serecomienda llegados a este punto. En un sistema secuencial el valor de la salida en un cierto instantede tiempo depende no solamente del valor de la entrada en dicho instante sino de los valoresanteriores que ésta ha tomado. Por ello es intuitivo pensar que el estudio y comprensión de lossistemas 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 desistemas secuenciales. En primer lugar se presenta el concepto de estado y su utilización en laespecificació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 últimose presentan los biestables, vistos como ejemplos sencillos de circuito secuencial y también comoelementos 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 herramientasque permitan describir (especificar) de forma normalizada y, a ser posible, cómoda el funcionamientode un sistema secuencial. Por este motivo se trabajará a nivel funcional, siendo el sistemabásicamente una "caja negra" con sus entradas y salidas, y dejando para apartados posterioresaspectos como las estrategias de temporización y las posibles implementaciones circuitales delsistema

Así, se presenta el concepto de estado del sistema para describir la secuencia temporal de entradas, yel uso de éste en la especificación de dicho sistema. El punto 6.1.4, referido a la minimización delnú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 estudiopuede posponerse a una segunda lectura del capítulo, cuando los conceptos fundamentales sobresistemas secuenciales hayan sido asimilados.

Page 209: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 delvalor de la entrada en ese instante, x(t0), como de valores anteriores, x(t<t0), luego podemos escribir

Sistema Digital

x z

z(t0 ) = F x −∞,t0( )( )

Es evidente que un sistema así necesita recordar un número en principio ilimitado de entradas paragenerar cada salida, es decir, implica una capacidad de memorización infinita, cosa que impide surealizabilidad a nivel práctico. Por este motivo introduciremos una restricción importante:trabajaremos solamente con aquellos sistemas secuenciales en los cuales las posibles evolucionestemporales 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 mismoestado son equivalentes.

Con la finalidad de simplificar la notación, en adelante llamaremos por defecto sistemas secuencialesa aquéllos cuyo funcionamiento puede describirse mediante un número finito de estados, que conmayor 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 valoresenteros entre 0 y 3, tomando su salida el valor "a" cuando la suma de los valores recibidos a laentrada sea múltiplo de 2, y el valor "b" cuando no lo sea. Es claro que este sistema es secuencialpuesto que el valor de la salida en un instante dado depende de todas las entradas recibidas hastaese instante y no sólo de la última de ellas.

Sistema Digital

x zx ∈ 0, 1, 2, 3

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 estadosfinitos. 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 quetampoco es necesario que almacene el valor de la suma de las entradas (que puede hacerseprácticamente infinito), sino que le basta con saber si esta suma es par (múltiplo de 2) o no.

Page 210: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 siguesiendo 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 lasalida 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 enambos 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 elcomportamiento 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 valoresde la entrada (x) y del estado (s) determinan unívocamente tanto el valor de la salida (z) como elvalor del estado siguiente (llamémoslo s(t+∆t) o, simplemente, s+).

parimpar

parimparimpar

parimpar

par

parparparpar

imparimparimparimpar

01230123

ababbaba

b)a)

xsz

0para

3parb

2impar

b

1impar

a

...impar

...

3parb

tiempo

s x s z+

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 ciertasecuencia de entradas (0,3,2,1,3,..) a partir de un estado inicial s=par. La figura 6.2.b muestra porsu parte la tabla de verdad de la salida del sistema (z) y del estado futuro (s+) en función de laentrada (x) y del estado (s) del sistema.

La tabla de la figura 6.2.b permite concluir que es posible describir completamente elfuncionamiento de un sistema secuencial especificando mediante tabla de verdad, expresionesalgebraicas u otros métodos ya conocidos y utilizados anteriormente para los sistemascombinacionales, dos funciones de las mismas variables, z=f(s,x) y s+=g(s,x), a las cualesllamaremos respectivamente función de salida y función de transición de estados.

_________________________________________________________________________________

Page 211: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

220 Diseño digital________________________________________________________________________________

Ejercicio 6.1

Un sistema secuencial tiene dos posibles valores de entrada, A y B. Queremos que el sistemadetecte secuencias de tres entradas iguales. Decida los estados posibles, y describa elfuncionamiento 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 valiosaayuda a la hora de especificar (describir) el funcionamiento de un sistema secuencial. En dichoejemplo la variable toma un número finito de valores (en concreto, dos); sin embargo, es fácilimaginar sistemas cuya variable de estado tendría que tomar infinitos valores: sea un sistemadigital con una entrada y una salida en que ambas pueden tomar dos valores, "0" y "1". La salidatoma el valor "1" cuando la entrada haya tomado el mismo número de veces el valor "0" que elvalor "1", y "0" en los demás casos.

Sistema Digital

x zx ∈ 0, 1z ∈ 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 unvalor que otro. Esto se podría hacer mediante una variable de estado, que por ejemplo podríaindicar cuántas veces más toma la entrada el valor "1" que el "0". Sin embargo, en ausencia deotras restricciones el número de estados no está limitado: imaginemos por ejemplo que en laentrada se recibe una secuencia indefinida de "1", necesitaríamos que la variable de estadopudiera tomar un número ilimitado de valores. Diremos entonces que este sistema no esrealizable 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 implicaindicar 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) puedehacerse de forma sistemática si se conocen los conjuntos de posibles entradas, salidas y estados, más

Page 212: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 detransición de estados. La figura 6.4 muestra este tipo de especificación utilizando un lenguaje másformal.

Sistema Secuencialx z

[s]

F: X, S Z

G: X, S

S

z = f(x, s)

s =g(x, s)+

Z= Conjunto finito de salidasF= Función de salidaG= Función de transición de estados

X= Conjunto finito de entradasS= Conjunto finito de estados

x ∈ X, s ∈ S, z ∈ Z

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 comodatos generados por el mismo sistema y utilizados internamente por éste (por tanto no accesiblesdesde el exterior), y las salidas como los resultados transmitidos al exterior. Las funciones de salida yde 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 unamoneda al aire, el número de veces que ha salido "cruz" es par o impar. Se trata obviamente deun sistema secuencial, para el que se puede suponer que tanto el conjunto de entradas como el desalidas 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 loslanzamientos efectuados (anteriores al último) en dos grupos o estados, el primero de los cualescomprendería, por ejemplo, las evoluciones en que el número de veces que se ha recibido laentrada "cruz" sea par, mientras que el otro grupo reuniría las secuencias que conducen a unnú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 cadaposible valor de la entrada y del estado (función de salida) y cómo se actualiza el estado enfunción de su valor anterior y del de la entrada (función de transición de estados). Si por ejemplo

Page 213: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

222 Diseño digital________________________________________________________________________________

asignamos la salida "1" cuando el número de cruces aparecidas sea impar, la tabla de verdad paraambas funciones será la de la figura 6.5.a.

s x s z

parimparimpar

par

parpar

imparimpar

caracruzcaracruz

0110

b)a)cara cruz

par,0impar,1

impar,1par,0

parimpar

estado actual (s)

entrada actual (x)

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 dobleentrada, 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 estesegundo tipo de tabla en lo sucesivo.

_________________________________________________________________________________

Ejercicio 6.2

Especifique el sistema propuesto en el problema P1.2 usando los dos tipos de tablas presentadasen el ejemplo anterior.

_________________________________________________________________________________

6.1.3 Diagrama de estados

Una forma alternativa y posiblemente más intuitiva de especificar el funcionamiento de un sistemasecuencial es el diagrama de estados. El diagrama de estados es una forma gráfica, equivalente a lastablas anteriormente mencionadas, de representar la información relativa a la función de salida y a lafunció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 unposible 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 medianteflechas). Así la interpretación del esquema de la figura 6.6 es la siguiente: si el estado actual delsistema es s=A y la entrada es x, la salida toma el valor z y el sistema pasará al estado s+=B. Nóteseque de cada nodo del diagrama salen tantos arcos como combinaciones de entrada diferentes seanposibles.

Page 214: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 223________________________________________________________________________________

A Bx/z z= f (A,x)

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 diagramade estados, puede hacerse tanto a nivel discreto (tal como se hace en la mayoría de los ejemplos deeste capítulo) como, mediante codificación de las entradas, estados y salidas, a nivel binario o devariables lógicas.

Ejemplo 6.4

Vamos a construir el diagrama de estados del sistema del ejemplo 6.3. Su generación a partir dela tabla de verdad de la figura 6.5.b es inmediata: sólo hay que dibujar tantos nodos como estadostiene 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 ocruz).

Cara/0

Par Impar

Cruz/1

Cruz/0Cara/1

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 puedetomar cinco valores distintos (X=a,b,c,d,e), correspondientes a las cinco opciones entre las queel 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

Page 215: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

224 Diseño digital________________________________________________________________________________

tal que, si se pulsan consecutivamente las teclas "a","d" y "b", se habilita el acceso (z=s), mientrasque 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 separecen a la secuencia clave: esta información más la última entrada (tercer componente de lasecuencia) 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 nadacoincide con la clave.

S1 Se ha recibido una secuencia tipo "-, a", que coincidecon el principio de la clave.

S2 Se ha recibido una secuencia "a, d", que coincidecon la clave.

Que a su vez permite confeccionar la tabla de verdad y/o el diagrama de estados del sistema (verfigura 6.8).

S0 S1

S2

a/n

a/n

a/nd/n

b/s

b,c,d,e/n b,c,e/n

c,d,e/n0 0

b

S ,n

S ,n

S ,s

a

S ,n

S ,n

S ,n

1 0

1 0

1 0

d

S ,n

S ,n

S ,n

c

S ,n

S ,n

S ,n

0 0

0 2

e

S ,n

S ,n

S ,n

0

0

S

S

S

0

1

2 0

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 especificacionesdiferentes para el mismo sistema; por ejemplo podríamos definir un conjunto de cuatro estadosS=S0,S1,S2,S3 en base a que el sistema sea capaz de recordar las tres últimas entradasrecibidas:

Page 216: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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, lasalida depende únicamente del estado y no directamente de la entrada. Esta situación permiteespecificar el funcionamiento del sistema mediante una tabla de verdad algo más sencilla (verfigura 6.9), donde podemos indicar la salida en una columna aparte. En el diagrama de estadospodemos indicar la salida en los nodos (ver figura 6.9).

S /n0

S /n1

S /n2

S /s3

b

a

b,c,e

aa

a

d

b,c,d,e

c,d,e

b,c,d,e

S

S

S

S

s

0

xa

S

S

S

S

b

S

S

S

S

c

S

S

S

S

d

S

S

S

S

e

S

S

S

S

0 0

1 0

1 0

1 3

0 0

0 2

0

0

01

2

0 01 0 03

z

n

n

n

s

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 realizacionescircuitales características.

_________________________________________________________________________________

Page 217: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

226 Diseño digital________________________________________________________________________________

Ejercicio 6.4

Proponga un diagrama de estados de tipo Mealy para un sistema igual que el descrito en elejemplo 6.5, que detecte la secuencia de entrada de 4 carácteres "a,a,d,e". Repita el ejercicio parala 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 sistemasecuencial. En realidad se puede ir aún más lejos: un mismo sistema, es decir, un mismocomportamiento entrada-salida, puede especificarse de innumerables maneras sin más que utilizardiferentes conjuntos de estados.

Por tanto dado un sistema secuencial tiene su interés, si más no por sencillez, poder trabajar con laespecificación mínima de dicho sistema, entendiendo como tal aquélla que utiliza el menor númeroposible de estados. En el capítulo 7 veremos que esto tiene implicaciones directas sobre lacomplejidad de implementación del sistema.

Vamos, pues, a introducir un método sistemático que permite obtener la especificación mínima apartir de otra cualquiera de un sistema secuencial. Este método se basa en eliminar sucesivamente losestados que son redundantes o equivalentes entre sí.

Concretando más, diremos que dos estados son equivalentes cuando el sistema genera la mismasecuencia de salidas para cualquier secuencia de entradas dada, partiendo de cada uno de ellos, siendoimposible 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 secuenciade n entradas (es decir, cuando a partir de ellos se genera siempre la misma secuencia de n salidas alaplicar 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 llamaremospartició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) cuyassalidas sean idénticas.

II) Tomando como referencia la partición p1 (estados 1-equivalentes), obtener lapartición p2 (estados 2-equivalentes). Esto es fácil de hacer si se repara en que dos estados son2-equivalentes cuando sus estados futuros son 1-equivalentes, luego hay que particularizar la

Page 218: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 elestado futuro pertenece siempre a un mismo grupo no hace falta dividir el grupo: los estadosde dicho grupo son a la vez 1-equivalentes y 2-equivalentes. En caso contrario hay que generartantos 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 particionesseguidas idénticas, momento en el que el proceso finaliza.

IV) La especificación mínima del sistema se obtiene particularizando la tabla deverdad 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 muysencilla, 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" únicamentecuando la secuencia recibida es "1,1,0".

0/0

0/0

1/0

0/0

0/0

0/0

0/0

1/0

1/0

1/0

1/0

1/0

0/1

1/0

S00

S01

S10

S11

S0

S1

Sin

Figura 6.10 Diagrama de estados inicial del sistema del ejemplo 6.6

Page 219: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

228 Diseño digital________________________________________________________________________________

Un posible diagrama de estados para este sistema es el de la figura 6.10, obtenido partiendo de unestado inicial Sin desconocido, del cual se pasa a S0 o a S1 en función del valor recibido a laentrada. Desde S0 y/o S1 este esquema se repite, de manera que, partiendo de Sin o de cualquierotro 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 elestado actual S11, se reciba la entrada "0", caso en que se habrá recibido la secuencia que producela salida "1".

Es obvio que puede proponerse un sinnúmero de conjuntos y diagramas de estados alternativosque reconozcan la secuencia pedida; en este sentido nótese que el sistema que nos ocupa essimilar del ejemplo 6.5 y que, por tanto, su especificación mediante un conjunto menor deestados es viable. Vamos a comprobar este último extremo aplicando el método de minimizaciónpropuesto más arriba; para ello comencemos escribiendo la tabla de verdad de las funciones desalida y de transición de estados (figura 6.11).

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

S

,0

,0

,0

,0

,0

,0

,0

x=0 x=1s

in

0

1

00

01

10

11

0

00

10

00

10

00

10

1

01

11

01

11

01

11

,0

,0

,0

,0

,0

,0

,1

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 gruposde los siete estados iniciales: sólo a partir de S11 se generan unas salidas diferentes a lasgeneradas 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 queno es equivalente a ningún otro. Ahora vamos a generar la segunda partición, para ello tomamosla tabla de transición de estados para el primer grupo de p1

Page 220: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 229________________________________________________________________________________

S

S

S

S

S

S

x=0 x=1s

S

S

S

S

S

S

in

0

1

00

01

10

0

00

10

00

10

00

S

S

S

S

S

S

1

01

11

01

11

01

Observando la tabla vemos que los estados futuros correspondientes a Sin, S0, S00 y S01pertenecen siempre al mismo grupo de p1 (en concreto se llega a S0, S1, S00, y S01), tanto parax=1, como para x=0. En cambio los estados futuros correspondientes a S1, y S01 pertenecen almismo grupo anterior para x=0 y al otro grupo (el formado únicamente por S11) para x=0. Luegola 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 conel objetivo de analizar el comportamiento de sus estados futuros respecto de la nueva partición yver si se tiene que hacer o no divisiones adicionales.

x=0 x=1s

01

01

00

00

00

S

S

S

S

S

S

S

S

in

0

00

0

S

S

S

S

1

10 01

x=0 x=1s

S

S

S

S

1

01

10

10

S

S

11

11

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 estadofuturo 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( )

Page 221: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

230 Diseño digital________________________________________________________________________________

Como las dos últimas particiones son iguales, el método ha finalizado y se puede especificar elsistema inicial con solamente tres estados. Para ello basta con tomar un representante de cadagrupo de p3, por ejemplo A=Sin=S0=S00=S10, B=S1=S01 y C=S11, y reescribir en función deestos tres estados la tabla del sistema y el diagrama de estados (figura 6.12).

A, 0 A, 0 A, 1

A B C

B, 0 C, 0 C, 0

x=0 x=1s0/0

0/0

0/1

1/01/0

1/0A B C

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=1S0 S3,1 S0,1 S4,0S1 S0,1 S0,0 S3,1S2 S4,1 S6,1 S3,0S3 S4,1 S2,0 S1,1S4 S2,1 S5,1 S0,0S5 S2,1 S4,0 S1,1S6 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 aspectostemporales básicos de los circuitos secuenciales. En particular se podrían plantear las siguientespreguntas: si el estado se actualiza en función del estado anterior y de la entrada, ¿en qué momentoconcreto se lleva a cabo esta actualización? ¿A partir de cuándo el valor de la entrada, salida o estadose considera que es el valor "siguiente"?

Page 222: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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, esnecesario 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 nosllevará 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 lavariación de entradas, estados y salidas no está sometida a ninguna restricción externa. Las únicasrestricciones temporales existentes en un sistema asíncrono son de origen interno (e inevitable) y sondebidas 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 detipo restrictivo (sincronización) en su funcionamiento: el estado y la salida del sistema puedencambiar únicamente cuando lo permite una señal externa de referencia llamada reloj (CLOCK). Laforma ideal de la señal de reloj es un tren periódico de impulsos, que indican los instantes de tiempoen los que es posible el cambio de estado y de salida.

clock

x(t)

S(t)

z(t)

clock

x(t)

S(t)

z(t)

a)

b)

Figura 6.13 Evolución temporal de las señales en un sistema síncrono con laentrada variando de forma libre (a) o sincronizada con el reloj del sistema (b)

Page 223: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 enque ésto está permitido, con las consiguientes demoras. A su vez el comportamiento de un sistemaasíncrono es muy sensible al retardo de sus componentes, problema que se agrava notablementecuando aumenta su tamaño o su complejidad, razón que hace que los sistemas asíncronos sean muypoco utilizados en la práctica. En este texto centraremos nuestra atención casi exclusivamente en lossistemas secuenciales síncronos.

En la figura 6.13.a se muestra un ejemplo de evolución temporal de un sistema síncrono gobernadopor un reloj ideal. De acuerdo con esta señal, el estado y la salida cambian únicamente en losinstantes de tiempo coincidentes con los impulsos. Con ello se consigue que, como máximo, haya uncambio por cada período de reloj. Se ha supuesto que los retardos del sistema son prácticamenteinapreciables.

Consideremos a efectos de exploración de posibilidades el caso particular de un sistema síncronodonde también la entrada cambiase sólo en los instantes fijados por el reloj. Un ejemplo decronograma del comportamiento de este tipo de sistema sería el de la figura 6.13.b, donde el valor decada una de las señales se mantiene constante como mínimo el tiempo que transcurre entre dosimpulsos consecutivos del reloj (es decir, un período de reloj). En estas condiciones es muy sencillohacer 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 lafigura 6.14.

x(0)

S(0)

x(3)

...

...

...

...

0 31 2

x(1) x(2)

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 sistemadonde entradas, salidas y estados se interpretan como secuencias discretas de valores (ver figura6.15).

Nótese que en este tipo de sistema se trata de un caso opuesto al de un sistema asíncrono en cuanto adependencia del factor tiempo, y que es viable prescindir de éste como variable contínua: en cadaperíodo de reloj (i) el sistema recibe una entrada x(i) y se mantiene en un estado s(i), que determinanunívocamente tanto la salida en este mismo período z(i) como el valor siguiente (en el siguienteperíodo de reloj) del estado s(i+1). En otras palabras, el comportamiento de este tipo de sistema

Page 224: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 seprescindía de los aspectos temporales.

z(i) = f(x(i), s(i))

x(i) ∈ X, s(i) ∈ S, z(i) ∈ Z

s(i+1) =g(x(i), s(i))

Sistema Secuencial Síncrono

x(i) z(i)

S= Conjunto finito de estados

F= Función de salidaG= Función de transición de estados

X= Conjunto finito de entradas

Z= Conjunto finito de salidasF: X, S Z

G: X, S S

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 seriede entradas x(0)=a, x(1)=b, x(2)=c, x(3)=a, suponiendo que en el instante inicial (i=0) el estadoes S2.

Sistemax(i) z(i)X = a,b,c Z = 0,1

S = S ,S ,S ,S 0 1 32

0

3

S

S

S

S

S

S

S

S

,0

,1

,1

,1

,0

,1

,1

,0

,0

,1

,0

,0

x(i)=c

S

S

S

S

S

S

S

S

x(i)=bx(i)=as(i)

0

1

2

3

0

2

2

0

1

1

1

1

0

2

s(i+1), z(i)

Figura 6.16 Especificación del sistema del ejemplo 6.7

2 2 3 2 2

0 31 2 4

a ab c

1 10 1

S

S

S

S

S s(i)

i

z(i)

x(i)

Figura 6.17 Secuencia de estados y salidas del ejemplo 6.7

Page 225: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

234 Diseño digital________________________________________________________________________________

La especificación de la figura 6.16 contiene toda la información necesaria para obtener tanto lasecuencia de estados como de salidas resultantes a partir de la secuencia de entradas y el estadoinicial 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 sistemasí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 saliday el estado futuro son función de la entrada y el estado actual, podemos implementarlos mediante unared combinacional. Por otra parte, el valor actual del estado debe ser memorizado durante losintervalos de tiempo en que el reloj no le permite cambiar y actualizado cuando corresponda.

Red Combinacional

x(i) z(i)

ResetCLOCK

s(i) s(i+1)Registro de

estado

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. Elbloque llamado registro de estado almacena el valor actual del estado, s(i), ignorando el valor quetiene a su entrada hasta que le llega un impulso de reloj, momento en que el valor a su entrada oestado siguiente, s(i+1), pasa a convertirse en actual. Desde ese instante y hasta el siguiente impulsode reloj el registro vuelve a ignorar el valor presente a su entrada y a operar como memorizador.

Page 226: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 235________________________________________________________________________________

Ha quedado dicho que el funcionamiento del circuito descrito es ambiguo si no se conoce su estadoinicial; 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 Combinacional f(x,s), g(x,s)

x(t) z(t)

ResetCLOCK

s(i) s (t)Registro de

estado

Red Combinacional f(s)

x(t)

z(i)

ResetCLOCK

s(i)s (t)

Registro de estado

Red Combinacional g(s,x)

a) b)

+ +

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 escombinacional, donde el reloj no desempeña ningún papel. Luego si una de sus entradas tiene unavariación temporal x(t) no síncrona, sus salidas z(t) y s+(t) tampoco serán síncronas y únicamente lavariación del estado actual s(i) estará sincronizada. Nótese que este resultado implica que el sistemano 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 comomuestra 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 formasíncrona es necesario que sus entradas hayan sido sincronizadas previamente, condición innecesariaen el caso de una máquina de Moore. Por esta razón existe en la práctica una cierta preferencia atrabajar con máquinas de este último tipo. El ejemplo 6.8 ilustra mediante un caso concreto estadiferencia de comportamientos.

Page 227: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 figura6.20.a cuando se aplica a ambos las señales de entrada y de reloj indicadas en la figura 6.20.b. Deacuerdo con las especificaciones dadas en la figura, los sistemas 1 y 2 son respectivamentemáquinas de Mealy y de Moore.

Sistema 1z1(t)z2(t)

Sistema 2

x(t)

z(t)

CLK

a)

CLK

x(t)

b)

s1 s2

z 0 1

1 0

x=0s1 s2 01 10 11 00

00 01 10 11

00 01 10 11

x=1

+ +

Sistema 2

Sistema 1s

0,11 1,11

0 1

1,01 0,10

x=0 x=1

s ,z1 z2+

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 laentrada 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 comola salida sí lo son (nótese que el sistema sólo hace caso del valor de la entrada en los instantes detiempo coincidentes con los impulsos del reloj).

CLK

x(t)

s(t)

z1(t)

z2(t)

a)CLK

x(t)

z(t)

s1(t)

s2(t)

b)

Figura 6.21 Cronogramas de l ejemplo 6.8 para el sistema 1 (a) y el sistema 2 (b)

_________________________________________________________________________________

Page 228: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 deduración despreciable frente a cualquier otra característica temporal del sistema. En la realidad estono es así y las señales de reloj son similares a la mostrada en la figura 6.22, que está caracterizada pordos magnitudes: el ancho del pulso tw y su periodo TCLK. Se denomina ciclo de trabajo al porcentajede tiempo que el reloj esta a "1" en cada periodo, es decir, a la relación (tw/TCLK)x100.

CLK(t)

TCLKtw

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óninstantes de tiempo en los cuales tienen lugar los cambios del sistema. En cambio, pulsos de reloj deduració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 paraasegurar 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 deestado responden a una variación en sus entradas con retardos tC y tR respectivamente, y la señalde reloj es como la de la figura 6.22. Deducir qué condiciones deben cumplirse para que elsistema genere correctamente la secuencia de estados.

Red Combinacional

x z

CLOCK

s s

Registro de estado

+

Figura 6.23 Sistema secuencial del ejemplo 6.9

Page 229: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

238 Diseño digital________________________________________________________________________________

Una secuenciación de estados correcta implica que el sistema tiene que hacer una únicaactualizació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 nose 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 aTCLK, es decir, si tC es el retardo de la red combinacional y tR el del registro:

tC + t R< TCLK

Es habitual en la práctica hacer que esta desigualdad se cumpla claramente, por lo que se escogeun período de reloj que sea , por lo menos,un número entero de veces mayor que la suma deretardos (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 sersuperior 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 queel sistema dejaría de estar controlado.

_________________________________________________________________________________

Los resultados del ejemplo 6.9 conducen a dos conclusiones importantes; por un lado la frecuenciamá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 dosestrategias 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 relojtoma el valor lógico "1", en caso contrario el estado permanece inalterado. Esta estrategia es laconsiderada 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 dereloj realiza una transición dada. En concreto, cuando este cambio es un paso de "0" a "1" se habla desincronización por flanco ascendente, mientras que se habla de sincronización por flanco descendentecuando el instante de referencia es el paso de "1" a "0". Es evidente que, al ser los instantes de cambiomá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 lasimbología especificada en la figura 6.24.

Page 230: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 239________________________________________________________________________________

CLOCK

Instantes de cambio permitido con sincronización por nivel

Instantes de cambio permitido con sincronización por flanco

ascendente

Instantes de cambio permitido con sincronización por flanco

descendente

a)

ClockClock Clock

b) c) d)

Figura 6.24 Estrategias de sincronización de sistemas secuenciales (a) y símbolosutilizados 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 formacanó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 estadoutilizando el número de bits necesarios en función del número de estados posibles (recuérdese quecon n bits se pueden codificar 2n estados). Por tanto, almacenar el valor del estado se traduce endefinitiva en almacenar un número fijo de bits. Podemos imaginar el registro de estado como unaagrupación de módulos iguales, almacenando cada uno de ellos un solo bit (ver figura 6.25).

ResetClock

Codificación del estado

futuro s (t)

.

.

.

.

.

.

s +0

s +1

s +n

s 0

s 1

s n

Codificación del estado

actual s(t)

+

Figura 6.25 Composición del registro de estado

Page 231: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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. Paraello se supondrá que la señal de reloj es ideal (en forma de tren de impulsos), y se dejan para másadelante cuestiones como la realización circuital de biestables y/o la sincronización cuando el reloj esno ideal.

6.3.1 Biestable D

El biestable D (delay) se ajusta precisamente a la descripción hecha en el apartado anterior. Disponede una entrada de datos (D), otra de reloj y una salida (Q); las versiones comerciales de cualquierbiestable ofrecen habitualmente la posibilidad de acceder al valor de la salida y a su negada, aspectoque recoge el esquema de la figura 6.26.

D Q

Q

D Q

QClock

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, conlo que queda este valor invariante hasta que el reloj vuelva a permitir otro cambio. Se trata ,pues, deun circuito secuencial y como tal puede ser descrito con las técnicas presentadas en este mismocapítulo.

Tanto la entrada como la salida pueden tomar únicamente los valores "0" y "1". Parece razonableasignar al sistema dos estados, uno correspondiente a las evoluciones de la entrada que hacen que lasalida valga "0" y otro que agrupa las evoluciones que hacen que la salida sea "1". El diagrama deestados y la tabla de verdad correspondientes se muestran en la figura 6.27; nótese que se trata de unamàquina de Moore con una función de salida trivial (z=Q).

0

0/0 1/10 1

1 D=0

1,0

1,1

D=1

Q ,z

Q

0,0

0,1

0

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, quecontiene la misma información que la figura 6.27. La interpretación es como sigue: si el estado actualtoma el valor dado en la columna Q y se desea que el estado siguiente sea Q+, la entrada actual debetomar el valor indicado en la columna D.

Page 232: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 241________________________________________________________________________________

0 1 0 1

DQ Q+

0 0 0 1 1 0 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 detransició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 delinglés delay). En este ejemplo se muestra un cronograma (ver figura 6.29) que pone en evidenciaeste 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 Q

Q

J Q

QClock

KK

0,0

1,1

0,0

0,1

1,0

1,1

1,0

0,1

0

1

J =0K=0Q

Q ,z+

J =0K=1

J =1K=0

J =1K=1

Figura 6.30 Especificación del funcionamiento de un biestable JK

Page 233: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

242 Diseño digital________________________________________________________________________________

Un biestable JK síncrono es un circuito secuencial elemental con dos entradas de datos (J y K), otrade 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 actualJ=0, K=1, el estado siguiente será Q+=0 sea cual sea el actual. De forma simétrica la entrada opuestaJ=1, K=0 hace que el estado siguiente sea Q+=1. La combinación de entrada J=K=0 hace que no hayacambio de estado, es decir Q+=Q. Finalmente la combinación J=K=1 hace que el estado siguiente seael 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 algebraicade la función de transición de estados.

01,11

0/0 1/1

10,11

00,1000,01

Q+ = Q J + QK

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 deexcitaciones para un biestable JK, que será la dada en la figura 6.32.

0 0 0 1 1 0 1 1

0 X 1 X X 1 X 0

J KQ Q+

Figura 6.32 Tabla de excitacionesde 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ísticadel biestable JK, y dado que en un biestable D el estado futuro es igual a la entrada, obtenemosuna posible implementación:Q+ = D= JQ + QK

Page 234: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 243________________________________________________________________________________

Q

QJ

K

ClockD

Ck

Q

Q

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.

1,0

0,1

T=0Q

Clock

0,0

1,1

0

1

T=1

Q ,z+Q

Q

T Q

Q

T

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, elestado 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).

1

0/0 1/10 0

1

Q+ = Q⊕ T

0 0 0 1 1 0 1 1

0 1 1 0

TQ Q+

Figura 6.35 Diagrama de estados, expresión algebraica de la función de transición deestados y tabla de excitaciones de un biestable T

Page 235: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

244 Diseño digital________________________________________________________________________________

El diagrama de estados del biestable T se muestra en la figura 6.35, junto con la expresión algebraicade 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 seaa base de puertas lógicas genéricas o bien mediante transistores MOS. Para ello estudiaremos enprimer lugar una estructura básica de referencia, a la que llamaremos biestable SR, a partir de la cuales posible construir en forma de mejoras o ampliaciones otros tipos de biestable, incluyendo diversasmodalidades 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. Elanálisis de este circuito requiere tomar algunas precauciones: los lazos de realimentación hacen quelos 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)

QAR

SQ B

B

b)

QAR

SQ B

qA

q

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 larespuesta de las puertas NOR es instantánea y que el retardo de dichas puertas se concentra en losbuffers puestos entre sus salidas y las del circuito. De esta manera podemos considerar qA y qB comofunciones lógicas de R, S, QA y QB, y que, después de un cierto retardo, qA y qB se conviertenrespectivamente en los valores siguientes de QA y QB, que a su vez generan nuevos valores de qA yqB, etc.

Si por ejemplo suponemos R=0, S=1 y aplicamos el tipo de análisis acabado de sugerir, llegaremos ala conclusión de que, cualesquiera que fueran los valores iniciales de QA y QB, sus valores finales seestabilizan en QA=1, QB=0. El resultado simétrico se obtiene para R=1, S=0: las salidas acaban

Page 236: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 losvalores QA=QB=0.

La situación más curiosa se produce para la combinación de entrada R=S=0, que conduce al resultadointermedio qA = Q B , qB = Q A , resultado nada conflictivo si los valores iniciales de QA y QB sondiferentes (en este caso estos valores iniciales permanecen inalterados), pero que lleva a que lassalidas del circuito oscilen indefinidamente entre "0" y "1" si los valores iniciales de QA y QB soniguales.

Una consecuencia de lo anterior es que la aplicación de la combinación de entrada R=S=0 tras haberaplicado R=S=1 conduce irremisiblemente al circuito a la inestabilidad. Por esta razón lacombinación de entrada R=S=1 debe ser evitada cuando se pretenda utilizarlo.

0 0 0 1 1 0 1 1

Q 0 1 -

S R Q+

R Q

Q

R

SS

Q

Q

QR

SQ

Figura 6.37 Biestable SR asíncrono, circuito equivalente y tabla de la función detransición de estados

Aplicando la restricción sugerida es fácil interpretar el funcionamiento del circuito como el de unbiestable, 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 tomandoel 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 finalmenteque 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 nivelde 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

Page 237: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

246 Diseño digital________________________________________________________________________________

función de las entradas A y B. ¿Existe alguna combinación que sea necesario prohibir? Comparesu funcionamiento con el de un biestable RS.

V

V

A B

Q Q

SS

DD

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 unavariación en el valor de alguna de sus entradas provoca siempre la reacción de éste. Ahora bien, essencillo introducir una sincronización por nivel sin más que realizar el producto lógico de cadaentrada con una señal de reloj. El circuito resultante se muestra en la figura 6.39, donde resulta fácilver 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 cuandoCLK=1, las entradas de la estructura NOR coinciden con S y R y el circuito actualizará sus salidas deacuerdo con la tabla de la figura 6.37.

R

S

Q

Q

CLKR Q

Q

R

SS

Q

QCLK

Figura 6.39 Biestable SR sincronizado por nivel

Page 238: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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. Observandola tabla de funcionamiento del biestable SR (figura 6.37), para obtener un biestable D a partir deun SR sólo hay que forzar que los valores de las entradas sean siempre contrarios, cosa que puedehacerse utilizando un inversor (ver figura 6.40).

0 0 0 1 1 0 1 1

Q 0 1 -

S R Q+

0 1

D Q+

0 1

S

RQ

QCLKD

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 mantenerlodespués durante un tiempo arbitrario bloqueando el reloj (CLK=0), motivo por el que sueledenominársele latch (cerrojo).

_________________________________________________________________________________

Ejercicio 6.8

Compruebe que el esquema propuesto en la figura 6.41 muestra la realización de un biestable JKa partir de un SR (sincronizados ambos por nivel).

R

S

Q

Q

CLK

K

J

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 traducirdirectamente los logigramas presentados a puertas nMOS o CMOS; en la figura 6.42 se muestra unejemplo concreto de biestable D realizado con tecnología nMOS.

Page 239: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

248 Diseño digital________________________________________________________________________________

D

QQ

CLKCLK

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 contecnología CMOS, es recurrir a estructuras hechas a base de puertas de transmisión e inversores. Lafigura 6.43 muestra otro ejemplo de biestable sincronizado por nivel.

Q

QD

CLK

Figura 6.43 Biestable D realizado mediante tecnología CMOS

Digamos, para finalizar, que es frecuente la existencia de entradas asíncronas adicionales enbiestables síncronos. Estas entradas permiten cargar un valor determinado ("0" o "1") de formainmediata e independiente del reloj y de las entradas síncronas. Así, por ejemplo, el biestable D de lafigura 6.44 dispone de una entrada asíncrona de "puesta a 0" (clear), cuyo efecto se ilustra en elcronograma 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 (funcionamientosíncrono).

Clear

DQ

Q

CLK

CLK

Q

D

Clear

Intervalos de funcionamiento asíncrono

Figura 6.44 Biestable D con entrada asíncrona de puesta a "0" y reloj ideal

Page 240: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 quefuerce 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 denominadamaster-slave, que consta de dos etapas biestables conectadas en cascada y sincronizadas por nivel conseñales de reloj complementarias. La figura 6.45 muestra la implementación de un biestable Dsincronizado por flanco descendente, que consta de un biestable tipo D conectado a un biestable tipoSR.

SD

Q

Q

D

R

Q

Q

Clock

Q

Q Clock

Q

Q

D Q

Q

D

Figura 6.45 Ejemplo de estructura master-slave: biestable D sincronizadopor flanco descendente

Nótese que cuando el reloj está a "1" el primer biestable (master) actualiza su contenido de acuerdocon el valor de la entrada D, maniobra que no afecta al segundo biestable (slave) hasta que el relojpase a "0", momento en el que éste también se actualizará, de forma que globalmente el circuito seactualiza de acuerdo con el valor de D sólo cuando el reloj ha pasado de "1" a "0", es decir, cuando seproduce un flanco descendente.

La figura 6.46 muestra el cronograma de funcionamiento del circuito de la figura 6.45 para unaposible evolución de la entrada D a partir de los valores iniciales R=1 y Q=S=0. Allí puedeobservarse el efecto recién comentado: el primer biestable actúa de acuerdo con la entrada cuandoCLK=1 y se inhibe para CLK=0, mientras que el segundo biestable actúa de acuerdo con la salida delprimero para CLK=0 y se inhibe para CLK=1. El efecto global (observando únicamente las señalesCLK, D y Q) es claramente el de un biestable D (Q+=D) sincronizado por flanco descendente.

Page 241: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

250 Diseño digital________________________________________________________________________________

CLK

R

S

Q

D

Figura 6.46 Cronograma de funcionamiento de la estructura master-slave dela 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 deseasincronismo 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)-equivalentessi 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 estadospropuesto.

C6.3 Compare una descripción de Moore con una de Mealy para el mismo sistema secuencial. ¿Cuálde las dos debe tener más estados y por qué? Sugerencia: analice un sistema particular (detector desecuencia 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áquinasde Mealy en máquinas de Moore. (El caso contrario no tiene interés por ser la descripción de Mooreun caso particular de la de Mealy).

C6.5 Dibuje el cronograma de salida de los sistemas detectores de secuencia del ejemplo 6.5, cuandola 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 relojobservado entre las salidas de ambos sistemas.

Page 242: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 demantener su entrada estable desde un cierto tiempo antes de la señal de reloj (tiempo de set-up) ymantenerla estable durante un cierto tiempo depues de ésta (tiempo de hold), tal como se ve en lafigura.

t tSU H

t

t

Ck

S+

Discuta qué variaciones deberemos introducir en los razonamientos de temporización del ejemplo6.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 partiendode un biestable D.

C6.8 Implemente un biestable tipo JK a partir de un T y puertas lógicas. Repita la cuestión partiendode 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 peligrosacuando va seguida de la 00, según los razonamientos del apartado 6.4.1. Suponga que una de las dospuertas NOR que lo componen tiene un retardo apreciablemente superior a la otra. Discuta si estehecho resuelve la peligrosidad potencial de la combinación de entrada 11.

C6.11 Compruebe, realizando el cronograma, que el siguiente logigrama corresponde a un biestabletipo 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

CkCk

Ck

Page 243: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

252 Diseño digital________________________________________________________________________________

Problemas

P6.1 Describa a través de su diagrama de estados y su tabla de transiciones un sistema secuencial condos 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

X,Y,Z ∈ 0,1 Z =1 si X = 1,Y = 0,S = 7( ) o X = 1,Y = 1,S = 0( )0 en otro caso

P6.2 Proponga un diagrama de estados para un sistema secuencial síncrono detector de secuenciasbinarias 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 11A G,a F,b C,c D,aB E,a H,b C,c G,aC F,b C,a A,b E,cD F,c C,c D,c E,bE B,c C,c G,c D,bF G,a H,b C,c E,aG F,c C,c G,c D,bH 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 estadosposible.

0/0

1/00/0

1/1

A

B C

D

F

E

0/0

0/0

0/0

0/0

1/1

1/1

1/0

1/0

Page 244: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 253________________________________________________________________________________

P6.5 Para el sistema del problema anterior, y supuesto un estado inicial E, encuentre la secuencia desalidas cuando la de entrada es la indicada en el cronograma.

Ck

x

P6.6 Un sistema secuencial síncrono se describe mediante la siguiente tabla:

S+ (x1x0)S 00 01 10 11 zS0 S0 S3 S1 S2 0S1 S0 S2 S0 S2 1S2 S1 S2 S0 S0 1S3 S2 S0 S3 S1 0

¿Se trata de una máquina de Mealy o de Moore?. Dibuje su diagrama de estados. Dibuje tambiénla respuesta temporal cuando las entradas son las del siguiente cronograma y el estado inicial esS0.

Ck

x

x 0

1

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 quelas salidas de los tres biestables valen 0. Suponga despreciables los retardos introducidos por lospropios biestables y las puertas. Repita el problema sin despreciar dichos retardos. Razone cuál deambos diseños es mejor. ¿Cuál es la evolución cuando CE=0? Dibuje un diagrama de estados para elsistema.

TQ

Q

TQ

Q

TQ

Q

V DD VDDCE

X0 X1 X2

Ck

TQ

Q

TQ

Q

TQ

Q

CE

X0 X1 X2

Ck

Page 245: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

254 Diseño digital________________________________________________________________________________

P6.8 Analice el siguiente layout. Obtenga su esquema equivalente a nivel de transistores y a nivel depuertas lógicas. Compruebe que se trata de un biestable de tipo RS sincronizado por nivel.

V

V

R S

Q Q

Clock

DD

SS

P6.9 El logigrama de la figura corresponde a un biestable JK sincronizado por flanco. Discuta si laentrada "Asinc" es activa con valor alto o bajo y vea qué valor de salida fuerza cuando es activa.

J

K

Ck

Q

Q

Asinc.

El principio de funcionamiento en que se basa la sincronización de este biestable es la diferenciade 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 menos5 veces superior al de cualquier otra puerta del logigrama, vea que efectivamente se comportacomo un biestable JK y compruebe si es activo por flanco de subida o de bajada.

Page 246: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Introducción a los sistemas secuenciales 255________________________________________________________________________________

P6.10 Analice el funcionamiento del siguiente circuito como biestable. Obtenga un circuitoequivalente a nivel de puertas para CK=1 y después hágalo para CK=0. Identifique el tipo debiestable así como el tipo de sincronización.

D Q

CK CK

DD

SS

V

V

P6.11 La siguiente implementación corresponde a un biestable activo por flanco. Dibuje elcronograma de respuesta cuando las entradas tienen la evolución indicada. Nota: los retardosasociados a las puertas son mucho menores que el período de reloj. ¿Se trata de algún tipo debiestable conocido?

Ck

A

B

CLK

Q

Q

B

A

Page 247: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 secuencialessíncronos. A continuación se presentarán las estructuras o módulos secuenciales de uso másfrecuente, 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 comola síntesis de sistemas secuenciales síncronos en formato canónico, es decir en forma de redcombinacional más biestables. De la misma forma que ocurría en el diseño combinacional, losmódulos secuenciales estándar surgen como respuesta a las necesidades más habituales, y al mismotiempo son herramientas que facilitan el diseño de sistemas más complejos; en este capítulo sepresentan los módulos secuenciales más comunes, concretamente los registros, los contadores y loscircuitos 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 lasconfiguraciones 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 secuencialessíncronos en forma canónica. Como se verá enseguida, estos métodos son utilizables manualmentesiempre que el número de variables no sea excesivo, situación en la cual es preferible recurrir o bienal diseño no canónico (por ejemplo, el basado en estructuras o módulos estándar) o bien a la ayuda deherramientas 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 sufuncionamiento.

Page 248: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

258 Diseño digital________________________________________________________________________________

Red Combinacional

x z

ResetCLK

q fRegistro de

estado

n

r

k

m

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 secuencialessíncronos realizados en forma canónica, es decir, como una red combinacional más un conjunto debiestables sincronizados mediante el mismo reloj (ver figura 7.1). Este método es totalmentesistemático y se puede esquematizar en los pasos siguientes:

1- Identificación de las variables del sistema. Mediante inspección del circuito, identificar lasvariables 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 permiteconocer el valor de la salida en función de los valores actuales de las entradas y de lasvariables de estado. Se puede obtener directamente mediante análisis de la parte combinacionaldel circuito.

3- Obtención de las funciones de entrada a los biestables f(x,q). Las entradas a los biestablesdel 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 susexpresiones.

4- Construcción de las tablas de verdad de las funciones de entrada a los biestables. A partirde 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 pasoanterior 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 formainmediata el próximo valor de las variables de estado, con lo que es posible obtener la tabla deverdad 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 lafunción transición de estados, mientras que en el paso 2 se había obtenido la de la función desalida. Con esta información es directa la obtención del diagrama de estados, así como de

Page 249: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 259________________________________________________________________________________

cronogramas, e incluso en algunas ocasiones realizar una interpretación de la utilidad delcircuito.

Los dos ejemplos que siguen a continuación ilustran la aplicación de este procedimiento de análisis ados casos concretos.

Ejemplo 7.1

Obtenga una especificación del funcionamiento del circuito secuencial de la figura 7.2.

xz

Clock

J Q

QK

1

x2

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 constade un único biestable (tipo JK, sincronizado por flanco ascendente) y una red combinacional. Portanto, 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 cuatrocombinaciones 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 esfunción de una de las entradas y de la variable de estado. Una consecuencia de esto es que se tratade una máquina de Mealy.

z= Q⋅ x 2 + Q ⋅ x2 = Q⊕x2

3- Obtención de las funciones de entrada a los biestables: Se observa que las funciones deentrada a los biestables en este caso concreto dependen únicamente de las entradas del circuito yno de la variable de estado.

J = x2x 1 K = x2x1

4- Tabla de verdad de las funciones de entrada a los biestables: Es Inmediato obtenerla a partirde las expresiones algebraicas del paso 3.

Page 250: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

260 Diseño digital________________________________________________________________________________

J KQ X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1

0 0 0 0 0 1 0 0 11 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 elfuncionamiento del biestable JK, que mostramos a continuación en forma de tabla deexcitaciones y expresión algebraica.

Q

0 1

J K Q+

0 0 0 1 1 0 1 1

Q

Q+ = Q J+ QK

Si se conocen los valores de las entradas a los biestables (J, K) en función de los valores de lasentradas (x1, x2) y de la variable de estado (Q) y si también se conoce el valor próximo de lavariable de estado (Q+) en función de Q, J, y K, es fácil obtener una tabla indicando el valor deQ+ 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 enel paso 2.

Q+, zQ X2=X1=0 X2=0 X1=1 X2=1 X1=0 X2=X1=1

0 0, 0 0, 0 1, 1 0, 11 1, 1 1, 1 1, 0 0, 0

6- Diagrama de estados: La información contenida en la tabla del paso 5 constituye ya unaespecificación completa del funcionamiento del circuito de la figura 7.2, por lo que estrictamenteel análisis puede darse por concluido. Ahora bien, a partir de ese resultado es inmediato obtenerel diagrama de estados del sistema, que se muestra en la figura 7.3.

11/0

0 1

10/1 00/1 01/1 10/0

00/0 01/0 11/1

Figura 7.3 Diagrama de estados del circuito del ejemplo 7.1

_________________________________________________________________________________

Page 251: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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íqueseuna posible utilidad del circuito, si las entradas varían a un ritmo muy inferior al del reloj delsistema.

x1

z

CLKJ1 K1

Q1 Q1

J 0 K0

Q0 Q0

CLK

x0

OUT

Figura 7.4 Circuito del ejemplo 7.2

Una inspección preliminar de la figura 7.4 permite identificar la parte recuadrada como uncircuito síncrono canónico, por lo que podemos aplicarle el método sistemático de análisis yrealizar las interpretaciones globales a posteriori.

Identificación de las variables: El circuito tiene dos entradas (x1 y x0), una salida (z), y dosvariables de estado (Q1 y Q0). Luego son posibles cuatro combinaciones de entrada, dos de saliday cuatro estados.

Obtención de la función de salida: Se trata de una máquina de Mealy: la salida es función de lasentradas y de las variables de estado.

z= x 1x0 + x1Q 1Q 0 + x1x 0Q1Q0

Obtención de las funciones de entrada a los biestables: En este caso las funciones de entrada alos biestables dependen únicamente de las variables de estado.

J1 = Q0 K1 = Q 0 J0 = Q 1 K0 = Q1

Page 252: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

262 Diseño digital________________________________________________________________________________

Nótese que cada biestable tiene como entradas una misma variable directa y su negada, por lo quefunciona como si fuera de tipo D:

D1 = Q0 D0 = Q 1

Tabla de verdad de las funciones de entrada a los biestables: Inmediata a partir de lasexpresiones 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 0 1 0 1 0 1 0 10 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 01 1 1 0 1 0 1 0 1 0

Tabla de verdad de la función transición de estados: Para escribirla basta recordar que en unbiestable D el estado siguiente coincide con la entrada actual (Q+=D), por lo que la tabla deverdad de la función transición de estados será idéntica a la obtenida en el paso anterior, quereproducimos 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, 10 1 1 1, 0 1 1, 1 1 1, 0 1 1, 01 0 0 0, 0 0 0, 1 0 0, 0 0 0, 01 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 estadosdel sistema es automática con el reloj e independiente de las entradas.

10

00

01

11

10, 0 11, 0

10, 1 11, 1

10, 0 11, 0

10, 1 11, 0 00, 0

01, 100, 0 01, 1

00, 0 01, 1

00, 0 01, 1

Page 253: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 porotra las entradas x1 y x0 tienen una variación lenta respecto a CLK, podemos pensar que lamisión del sistema es realizar algún tipo de manipulación de la señal de reloj. Podemoscomprobar esto mediante un cronograma como el de la figura 7.5.

x1

z

Q0

0

CLK

x

Q1

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 circuitoelimina uno de cada dos pulsos de reloj, quedando la salida como un reloj cuya frecuencia y ciclode trabajo son la mitad de los de CLK. Asimismo cuando las entradas están fijas en x1=x0=1 elcircuito elimina tres de cada cuatro pulsos de reloj, siendo la frecuencia y el ciclo de trabajo de lasalida la cuarta parte de los de CLK.

Puede completarse esta interpretación comprobando que, de acuerdo con el diagrama de estadoso la tabla de verdad del circuito, se tiene OUT=0 (o sea z=0) para x1=x0=0 y OUT=CLK (o seaz=1) para x1=0 x0=1. Con esto podemos concluir diciendo que el circuito puede utilizarse comodivisor de frecuencia programable.

_________________________________________________________________________________

Ejercicio 7.1

Analice el sistema secuencial de la figura 7.6. Obtenga su diagrama de estados e interprételocomo un detector de secuencia con 4 posibles entradas. Para la codificación de las entradas dada,encuentre la secuencia a detectar.

Page 254: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

264 Diseño digital________________________________________________________________________________

0

T Q

Q

T Q

Q

Clk

Z

x 1

x 0

Q1

Qa b c d

0 0 0 1 1 0 1 1

xx0

x1

0 0 0 1 1 0 1 1

SS S S

SQ0Q

1

1

2

3

4

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 elinverso del método de análisis descrito en el apartado anterior y, por tanto, permite obtener uncircuito síncrono que, mediante biestables y una red combinacional, implementa la especificaciónpropuesta.

El método consta de tres fases: I) obtención de una especificación normalizada, II) traducción de laespecificación a nivel binario (variables lógicas), y III) obtención y optimización de las funciones deentrada a los biestables y de salida del sistema. A continuación se indican con detalle los pasosconcretos a seguir:

1- Identificar las entradas, las salidas y los estados del sistema. Dicha identificación debehacerse a partir de una primera especificación del funcionamiento del sistema. Con frecuenciasuele ocurrir que la especificación inicial sea verbal o, en general, no normalizada, por lo queidentificar 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 suequivalente en forma de diagrama de estados). Una vez completado este paso se dispone deuna especificación normalizada (basada en el estado) del sistema. Si se desea realizar undiseño compacto, es conveniente aplicar el método de minimización del número de estadospresentado en el capítulo 6.

3- Codificar las variables del sistema. Es decir, si no lo están ya, traducir a variables lógicaslos conjuntos de entradas, salidas y estados. En ausencia de restricciones concretas esrecomendable codificar utilizando el menor número posible de bits (recuérdese que paracodificar N informaciones son necesarios como mínimo n bits, cumpliéndose que 2n•N). Conesto la especificación del sistema estará hecha a nivel binario.

Page 255: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 seguirel mismo procedimiento que en el caso de análisis pero en sentido contrario: a partir de latabla de verdad de la función transición de estados q+(x,q) y de la tabla de excitaciones de losbiestables, 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, esinteresante escribir sus expresiones algebraicas y, eventualmente, simplificarlas. Lo mismosuele hacerse con las funciones de salida. En ambos casos son aplicables los métodos desimplificación presentados en capítulos anteriores.

7- Finalmente, y de acuerdo con las expresiones obtenidas en el paso anterior, construir elesquema lógico resultante.

Al igual que en el caso de análisis, es pertinente ilustrar este método de síntesis con la ayuda dealgunos 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ódigobinario) síncrono. El contador tiene dos posibles entradas, "C" (contar) y "NC" (no contar), demanera que cuando la entrada es "C" el valor de la salida se incrementa con cada período de relojsiguiendo 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 enseguida, en este caso es fácil obtener una especificación normalizada del funcionamiento delsistema.

1- Identificación de variables: La entrada sólo puede tomar dos valores, concretamentex∈ C,NC . Por su parte la salida puede tomar hasta 5 posibles valores z∈ 0,1,2,3,4 . En loque respecta a los estados internos, podemos optar por un conjunto de estados Si, siendo "i" elvalor hasta el cual ha llegado el sistema contando. Este criterio implica que habrá tantos estadosposibles como salidas: s∈ s0,s1,s2,s3,s4 .

2- Diagrama de estados: Podemos obtenerlo "traduciendo" el enunciado a términos de losconjuntos de entradas, salidas y estados definidos en el paso anterior, tal como muestra la figura7.7. El diagrama muestra claramente el funcionamiento del contador. Nótese que se trata de unamáquina de Moore en la que cada estado implica una salida diferente, por lo que su número, deacuerdo con el método de minimización, ya es mínimo.

Page 256: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

266 Diseño digital________________________________________________________________________________

S /00 S /11 S /22 S /33 S /44

NC NC NC NC NC

C C C C

C

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 variablelógica (x) para codificarlas. Para los estados Si podemos optar por codificar el valor "i" enbinario, para lo cual necesitaremos tres variables de estado (q2, q1, q0). Como hay tantos estadoscomo salidas, parece adecuado escoger la misma codificación para las salidas que para losestados, por lo que harán falta tres variables (z2, z1, z0). Con esto las funciones de salida sontriviales: z2=q2, z1=q1, z0=q0.

Salida o estadoS /0 S /1 S /2 S /3 S /4

0

1

2

3

4

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

z z z q q q

012012

Entrada x

NC C

0 1

Figura 7.8 Codificación de las variables del contador

La codificación realizada permite escribir la tabla de funcionamiento del sistema (funciones desalida y de transición de estados) en términos de variables lógicas. Obsérvese que, al tratarse deun contador módulo 5, se supone que los tres últimos estados/salidas de la tabla no se daránnunca y que, por tanto, las transiciones a partir de estos tres estados son indiferentes, aspecto quese ha recogido en la tabla.

Q2+Q1

+Q0+

Q2 Q1 Q0 x=0 x=1 z2 z1 z0

0 0 0 0 0 0 0 0 1 0 0 00 0 1 0 0 1 0 1 0 0 0 10 1 0 0 1 0 0 1 1 0 1 00 1 1 0 1 1 1 0 0 0 1 11 0 0 1 0 0 0 0 0 1 0 01 0 1 X X X X X X X X X1 1 0 X X X X X X X X X1 1 1 X X X X X X X X X

Page 257: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 267________________________________________________________________________________

4- Elección de los biestables: Escogemos de forma arbitraria biestables tipo T. Como tenemostres variables de estado hacen falta tres biestables. Dado que la salida del contador coincide consu estado, el esquema básico del circuito será de la forma dada en la figura 7.9, donde sólo faltarealizar las funciones de entrada a los biestables T2, T1, y T0 para completarlo.

T T Q

Q

z

Clock

2 2

T T Q

Q

z1 1

T T Q

Q

z0 0

Q 2

Q 1

Q 0

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óntransición de estados y el funcionamiento de un biestable T, es inmediato construir la tabla de lasfunciones 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 respectoal actual es necesario un "1" a la entrada del biestable correspondiente. La tabla resultante semuestra a continuación.

T2 T1 T0

Q2 Q1 Q0 x=0 x=10 0 0 0 0 0 0 0 10 0 1 0 0 0 0 1 10 1 0 0 0 0 0 0 10 1 1 0 0 0 1 1 11 0 0 0 0 0 1 0 01 0 1 X X X X X X1 1 0 X X X X X X1 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óncompacta conviene simplificar dichas funciones. Al aplicar el método de Karnaugh se obtiene elresultado indicado a continuación.

Page 258: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

268 Diseño digital________________________________________________________________________________

T2 = xQ2 + xQ1Q0 T1 = xQ0 T0 = xQ 2

7- Esquema lógico resultante: A partir de las expresiones algebraicas del paso anterior se obtiene

T Q

Q

z

Clock

2

T Q

Q

z 1

T Q

Q

z 0

x

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 esposible, una implementación más sencilla hecha con biestables D y puertas lógicas.

zCLK

J Q

QKx

J Q

QK

q 1

q 0

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 dosvariables de estado (q1 y q0). Un análisis de la parte combinacional permite obtener las siguientesexpresiones algebraicas.

Page 259: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 269________________________________________________________________________________

J1 = xq1 J0 = x

K1 = x K0 = xq0 z = x ⊕ q0

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 yde las funciones de salida y de transición de estados, que mostramos a continuación.

x=0 x=1 q1+q0

+ ,zq1 q0 J1 K1 J0 K0 J1 K1 J0 K0 x=0 x=10 0 0 0 0 0 0 1 1 0 0 0, 0 0 1, 10 1 0 0 0 0 0 1 1 1 0 1, 1 0 0, 01 0 0 0 0 0 1 1 1 0 1 0, 0 0 1, 11 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.

A, 0 B,1 B, 1 A,0 C, 0 B,1 D, 1 A,0

SS , z+

A B C D D

A B

C

0/0

1/0

x=0 x=1

1/1

0/1

0/0

1/0

1/1

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 menosbiestables, es decir, ver si se puede reducir el número de estados. La aplicación del método deminimización da lugar a la serie de particiones siguiente, que indica que en realidad basta con dosestados para especificar el funcionamiento del sistema:

p0 = (A, B,C, D)

p1 = (A,C) (B, D)

p2 = p1

A ≡ C

B ≡ D

A partir de aquí podemos rediseñar el sistema aplicando el método sistemático de síntesisutiizando un biestable tipo D. El circuito resultante, mucho más sencillo que el inicial, se muestraen la figura 7.13.

Page 260: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

270 Diseño digital________________________________________________________________________________

A, 0 B,1

B, 1 A,0

qq , z+

A

B

x=0 x=1

0, 0 1, 1

1, 1 0, 0

qq , z+

0

1

x=0 x=1

0 1

1 0

Dx=0 x=1

D Q

Q

D q

Clock

x

z

D = z = x q

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.

A B0/1 0/0

1/0

C 1/10/0

1/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 dichosistema, 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 sistemassecuenciales síncronos cualesquiera. Sin embargo es evidente que dichos métodos son plenamenteoperativos sólo cuando el número de estados y/o variables es reducido. Al igual que ocurría en el casode sistemas combinacionales, algunos circuitos de utilización más frecuente se han estandarizado yexisten como módulos específicos ya sea como circuitos integrados comerciales MSI, LSI o bienformando parte de librerías para entornos de diseño custom VLSI. Los más característicos de entreestos módulos secuenciales son los registros y los contadores, que serán el objetivo de los próximosapartados.

Page 261: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 271________________________________________________________________________________

Un aspecto adicional que conviene tener presente es que la existencia de estos bloques estandarizadospermite acometer diseños de mayor complejidad que los que serían abordables razonablementemediante 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 duranteun tiempo indefinido. La figura 7.15 presenta el esquema genérico de un registro de n bitssincronizado por flanco ascendente.

Q0Q Q1

I0I n-1 I 1

Registro de n bits

n-1

...

...

CLK

LOADRESET

Q

I

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 enparalelo). Así, si LOAD=0 el registro mantiene inalterado su contenido tras el flanco ascendente de laseñal de reloj Qi+=Qi (con 0<i<n-1), mientras que para LOAD=1 tras el próximo flanco ascendentedel reloj los valores de las entradas Ii se cargan en el registro: Qi

+=Ii. Una especificación de estafuncionalidad "síncrona" sería:

Q+ = Q(i + 1)=I (i) si LOAD( i) =1

Q(i ) si LOAD(i )= 0

Por otro lado los registros suelen disponer de una entrada adicional de reinicialización (CLEAR oRESET) 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 antesdescrito 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 conentrada 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 asu salida; así, para LOAD=1 el valor que se transfiere es Qi

+=Ii (carga en paralelo), mientras que paraLOAD=0 el valor transferido es Qi+=Qi (memorización).

Page 262: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

272 Diseño digital________________________________________________________________________________

I 3

Q3 Q2 Q1 Q0

ys MUX

01

CLK

LOAD

I 2 I 1 I 0

ys MUX

01

ys MUX

01

ys MUX

01

D

QRS

D

QRS

D

QRS

D

QRS

RESET

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 conla de la figura anterior.

Q0

CLKLOAD

RESET

Q3 Q2 Q1

I0I3 I 2 I 1

DRS

Q

DRS

Q

DRS

Q

DRS

Q

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 suestado. En el caso de que LOAD=1, cada flanco de reloj fuerza que el estado de cada biestable seactualice al valor de la entrada correspondiente.

Es obvio que la circuitería implicada en la realización de este segundo diseño es mucho menorque en el primero, siendo esta una clara ventaja. Por otro lado, un análisis más pormenorizadonos permitirá apreciar las diferencias de comportamiento de ambas realizaciones. Si observamosel cronograma de la figura 7.18

Page 263: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 273________________________________________________________________________________

Transición sincronizada

t

t

t

t

CLK

LOAD

CLK LOAD

Q

.

i

Transición no sincronizada

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 comportasincronizada por el flanco ascendente del reloj, sino por nivel alto. Este puede llevar, como es elcaso de la segunda mitad del cronograma, a una carga en paralelo indeseada (LOAD=0 en los dosflancos de reloj de esta parte del cronograma). Hay que considerar también que incluso en el casode funcionamiento correcto, en la primera parte del cronograma, la puerta AND añade un retardoa la señal de reloj que puede provocar problemas al conectar este registro a otros bloquessincronizados 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ónRESET activa a nivel bajo, ambas síncronas. En el caso de que las dos señales sean activas, debepredominar 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éntransferirla 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 endichos registros; concretamente es posible organizar la introducción de datos en serie (uno detrás deotro por la misma línea) o en paralelo (n datos a la vez por n líneas diferentes), y otro tanto con suacceso (salida en serie o en paralelo), con lo que tenemos hasta cuatro posibles variantes de formatoentrada/salida.

En la figura 7.19 se muestra, a título de ejemplo, la realización mediante biestables y puertas de unregistro de desplazamiento con entrada en serie y salida en paralelo. El análisis del funcionamiento de

Page 264: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

274 Diseño digital________________________________________________________________________________

este circuito es inmediato: con cada flanco ascendente del reloj los bits se desplazan un lugar a laderecha: (Q3+,Q2

+,Q1+,Q0

+)=(IN,Q3,Q2,Q1).

CLK

RESET

IN

Q0Q3 Q2 Q1

DQ

RS

DQ

RS

DQ

RS

DQ

RS

Figura 7.19 Realización mediante biestables D de un registro de desplazamientocon 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 lasecuencia 1011. Realízelo mediante el procedimiento general y proponga un diseño alternativoutilizando un registro de desplazamiento. Compare ambas realizaciones.

_________________________________________________________________________________

Ejemplo 7.6

Analice las modalidades de funcionamiento del registro serie/paralelo de la figura 7.20. Propongaun diseño alternativo que permita al registro, adicionalmente, realizar cargas síncronas enparalelo o bloquear el desplazamiento. Proponga también una segunda variante que permitarealizar cargas paralelo asíncronas.

CLK

Q3 Q2 Q1 Q0

ILIR

R/L

D

Q

MUXy

s01

D

Q

D

Q

D

Q

MUXy

s01

MUXy

s01

MUXy

s01

Figura 7.20 Registro de desplazamiento del ejemplo 7.6

Page 265: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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), muysimilar 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 eshacia 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 bidireccionalsincronizado por flanco ascendente.

Para incluir más posibilidades síncronas de funcionamiento, como hacer entrada en paralelo odetener el desplazamiento, podemos mantener la estructura básica compuesta por un multiplexormás un biestable para cada bit, ampliando el tamaño del multiplexor de forma que admita estasnuevas variantes (ver figura 7.21).

C0C1 Qi+

Función

0 0 0 1 1 0 1 1

Qi+1

I i

Qi-1

Qi Parar desp. Desp. derecha Desp. izquierda Carga paralelo

i

Qi

CLKD

Q

01MUX

I

23

01

Qi-1Qi+1

C0

C1

y

Figura 7.21 Célula básica de un registro de desplazamiento bidireccional concarga paralelo síncrona

Finalmente, para obtener un registro que pueda cargar en paralelo de forma asíncrona podemosutilizar biestables D con puesta a "1" (Preset) y a "0" (Reset) asíncrona y añadir la lógicacombinacional necesaria para evitar las órdenes contradictorias (ver figura 7.22).

LOAD I RSPR Función

0 0 1 0 0 1

Funcionamiento síncrono Preset (salida a "1") Reset (salida a "0")

i

0 X 1 1 1 0

y

PRRSD

Q iLOAD

Qi

CLK

Qi+1 Qi-1

I

R/L

LOADI i

MUXs01

Figura 7.22 Célula básica de un registro de desplazamiento bidireccional con carga paralelo asíncrona

_________________________________________________________________________________

Page 266: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 dedesplazamiento con las prestaciones y señales de control descritas en la tabla que sigue.

CLR LD SH L / R Función Modo0 X X X Reset Qi

+ = 0 asíncrono1 1 X X Carga paralelo Qi

+ = Ii asíncrono1 0 1 X Mantener estado Qi

+ = Qi síncrono1 0 0 1 Desplazar izquierda Qi

+ = Qi−1 síncrono1 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, elnúmero de impulsos de reloj que se han producido a su entrada.

S /00 S /11 S /22 S /p-1p-1

0 0 0 0

1 1 1

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 verque se trata de una máquina de Moore: la salida depende únicamente del estado actual (z=f[s]). Elfuncionamiento es tal que, mientras la entrada (orden de contar) toma el valor "1", el sistema pasa deun estado al siguiente a cada impulso de reloj, hasta que después de pasar por el estado "p-1" vuelveal 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 valoresentre 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 esusual encontrar distintas variantes de funcionamiento: contadores reversibles (es decir,contadores/descontadores), contadores con carga en paralelo síncrona o asíncrona, etc.

Page 267: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 277________________________________________________________________________________

TC

Contador módulo 16

I0I2 I1I3

Q0

Q2

Q1

Q3

CE

CLK

CLRLD

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 puedeiniciar 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 relojse carga en las salidas Qi el valor presente en las entradas Ii, valor a partir del cual se continuará elrecuento cuando LD se desactive y se reciban nuevos impulsos de reloj. La entrada CE habilita laacción de contar: si CE=0 se interrumpe el recuento y el circuito mantiene su último valor Qi

+=Qi. Laentrada CLR (clear) permite cargar, de forma asíncrona, el estado Qi=0.

CE

Q

CLK

Q

CLR

TC

Q

Q

3

2

1

0

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 unainicialización producida mediante la activación de la entrada CLR. Nótese que la orden de detener elrecuento CE=0 es atendida únicamente si dura lo suficiente como para coincidir con un flancoascendente del reloj.

Page 268: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

278 Diseño digital________________________________________________________________________________

Podemos generalizar este comportamiento para un contador binario módulo 2n en las siguientesecuaciones para el estado futuro:

S+ =

0 si CLR= 1 (asíncrono)

I si CLR= 0 y LD = 1

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 elcronograma, sólo cuando Qi=CE=1. Esta salida permite encadenar contadores de forma sencilla, talcomo podemos ver en la figura 7.26, donde se muestra un contador módulo 256 hecho mediante laconexión de dos contadores módulo 16.

I4I6 I5I7

Q4Q6 Q5Q7

I0I2 I1I3

Q0Q2 Q1Q3

CELD

CLR

TCCLK

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

Figura 7.26 Contador binario módulo 256

Obsérvese que al llegar por primera vez el contador de la izquierda (bits menos significativos) alvalor "15" y existir orden de seguir contando (CE=1), TC valdrá "1", con lo que en el siguiente flancode 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 completarsu ciclo, momento en que volverá a incrementarse, y así sucesivamente.

J K

Q RSJ K

Q RSJ K

Q RSJ K

Q RS

CE

CLK

TC Q0Q2 Q1Q3

CLR

Figura 7.27 Contador binario módulo 16 realizado mediante biestables JK

Page 269: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 ANDde un contador hexadecimal (es decir, binario módulo 16) sin carga en paralelo. Se deja al lector lareconstrucción de las etapas de su diseño, así como la comprobación del funcionamiento correcto delcircuito.

Nótese que la modularidad del circuito de la figura 7.27 es evidente y que se trata de una estructurafá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ándardel contador binario módulo 16 descrito en la figura 7.24, manteniendo la filosofía modular de suestructura.

CE

CLK

TC Q0Q2 Q1Q3

CLRJ K

QRS

J K

QRS

J K

QRS

J K

QRS

LD

I 0I 2 I 1I 3

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 esrelativamente sencillo. Para ello podemos evaluar las expresiones algebraicas de las entradas de losbiestables.

J0 = CE⋅ LD+ I0 ⋅ LD

K0 = CE⋅ LD+ I 0 ⋅ LD

J1 = CE⋅ LD ⋅Q0 + I1⋅ LD

K1 = CE⋅ LD ⋅Q0 + I 1⋅ LD

....

⇒ Ji = CE⋅ LD⋅Qi ⋅...⋅Q0 + Ii ⋅ LD

Ki = CE⋅ LD⋅Qi ⋅...⋅Q0 + I i ⋅ 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. Enestas condiciones los biestables JK se comportan como biestables D, que permiten la carga enparalelo.

Page 270: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

280 Diseño digital________________________________________________________________________________

LD=1 ⇒ Ji = I i

Ki = I i

⇒ Qi+ = QiK i + Q iKi = (Qi + Q i )I i = I i

Ejemplo 7.7

Añada la lógica necesaria para usar el contador hexadecimal de la figura 7.24 como un contadorBCD (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 lacorrespondiente al cero. Podemos conseguirlo haciendo una carga en paralelo al alcanzar lacuenta de 9, siempre que CE valga uno. Hay que tener en cuenta que los estados 10 a 15 no sedarán nunca, lo que nos permitirá simplificar el "detector de nueves". La implementaciónpropuesta en la figura 7.29 cumple estos requisitos.

CLR

TCI0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LDCLK

CE

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 LDsirve 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 contadorBCD 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 puertascuyas conexiones pueden ser programadas por el usuario para implementar funciones lógicas.

Page 271: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 281________________________________________________________________________________

De forma análoga existen estructuras compuestas por matrices de puertas lógicas que adicionalmentedisponen 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ñossecuenciales de una cierta complejidad como para realizar prototipos de sistemas que posteriormentese implementan mediante otras estrategias.

Las variantes presentes en el mercado son numerosas, y dan lugar a un panorama algo confuso dedenominaciones (PLD, GAL, PAL, EPLD, FPGA, LCA, etc.) que en algunos casos se refieren aestructuras diferentes y en otros a nombres comerciales dados a un mismo tipo de cicuito por distintosfabricantes. Puesto que se trata de bloques que conceptualmente son similares, en este textoutilizaremos para ellos el nombre genérico PLD (programmable logic device, dispositivo lógicoprogramable).

El diseño de sistemas secuenciales mediante PLD mantiene los rasgos distintivos apuntados en sumomento en el caso de los módulos programables combinacionales. Por un lado la existencia dedispositivos programables por el fabricante y de dispositivos programables en campo (es decir, por elusuario); éstos últimos pueden ser programables más de una vez, o no, en función de la tecnologíacon la que hayan sido realizados. Por otra parte para trabajar con dispositivos programables en campoes necesario el concurso de herramientas software de ayuda al diseño y de un grabador que, una vezcompletado 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 ypresente el resultado en un display adecuado. Tal como se muestra en la figura 7.30.a, se trata deun sistema secuencial síncrono con una entrada conectada a un pulsador manual (ON) y sietesalidas (A,B,C,D,E,F,G) conectadas a un visualizador compuesto por siete diodoselectroluminiscentes (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 ritmomarcado por el reloj (lo bastante rápido como para no ser visible), mientras que al soltar elpulsador (ON=0) la secuencia se detiene en el último valor alcanzado, valor que sí es posiblevisualizar. Las seis visualizaciones posibles se muestran en la figura 7.30.b.

7

A,B,C,..,GPLDON

CLK

Display

CLR

A

B

D

C F

EG

Circuito de control

a) b)

Figura 7.30 Simulador del lanzamiento de un dado

Page 272: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

282 Diseño digital________________________________________________________________________________

El diseño de este circuito secuencial es sumamente sencillo, y se puede realizar en forma demáquina de Moore utilizando tres biestables. Una posible tabla de estados futuros y salidas seríala dada en la figura 7.31. Nótese que hay dos combinaciones de las variables de estado que danlugar a inespecificaciones.

ON=0 ON=1Valor Q2 Q1 Q0 Q+

2 Q+1 Q+

0 Q+2 Q+

1 Q+0 A B C D E F G

1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 12 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 03 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 14 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 05 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 16 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0- 1 1 0 X X X X X X X X X X X X X- 1 1 1 X X X X X X X X X X X X X

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 lasfunciones de salida y de transición de estados:

A = F = Q 2Q 1Q 0

B = E = Q 2 + Q 0

C = D = Q 2Q 1 + Q 2Q 0

G = Q0

D2 = Q2+ = Q1Q0ON + Q2Q 0 + Q2ON

D1 = Q1+ = Q 2Q 1Q0ON + Q1Q 0 + Q1ON

D0 = Q0+ = Q 0ON + Q0ON

Estas funciones se han implementado sobre el PLD mostrado en la figura 7.32, donde se disponede biestables tipo D incluidos en una estructura aparentemente compleja, pero que en realidad esuna versión muy reducida y simplificada de estructuras disponibles a nivel comercial. Podemosver que el PLD consta de una matriz de productos programable, otra de sumas fija, y módulos desalida 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 ladada por el biestable. Nótese que las tres primeras salidas coinciden con las de los biestables (esdecir, con las variables de estado del sistema), mientras que las tres restantes coinciden lasentradas 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.

Page 273: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 283________________________________________________________________________________

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

CLR

G

A

B

C

CLK

ON

1

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

DQ

Mux1

S

0

RS

D2

D1

D0

Q2

Q1

Q0

Figura 7.32 Circuito simulador del lanzamiento de un dado realizado con PLD

_________________________________________________________________________________

Page 274: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

284 Diseño digital________________________________________________________________________________

Ejercicio 7.7

Determine si es posible realizar un contador como el especificado en la figura 7.24 programandoadecuadamente 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 ellasen 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 deinformación, incluyendo la posibilidad de lectura y escritura de esta información. Desde un punto devista funcional podemos entender una memoria RAM como un conjunto de registros más lacircuitería de control necesaria para transferir al exterior la información almacenada en cualquiera delos 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).

2 x n RAM

kA k-1

A 1A 0

...

...

R/W'

E

DIn-1 DI1DI0

DOn-1 1 0

...

DODO

Figura 7.33 Esquema genérico de una memoria RAM

Page 275: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 delectura y/o escritura, mientras que para E=0 la memoria se limita a almacenar la informaciónintroducida anteriormente. Por otro lado, cuando el módulo es activo, la entrada R/W' controla elmodo de operación, en lectura o escritura. Si R/W'=0 se introduce en el registro señalado por ladirección A (nótese que hay tantos registros como direcciones distintas) el vector (palabra) presenteen las entradas DI, mientras que para R/W'=1 se vuelca el contenido del registro señalado por A en lassalidas DO. La figura 7.34 muestra, a nivel de bloques, un estructura interna habitual para unamemoria RAM.

A k-1

A 1A 0

...

2 x n células

de memoria

k

...

R/W'

DIn-1 DI1DI0

DOn-1 1 0

...

DODO

E

De

cod

ifica

do

r b

ina

rio

2 -1

1

0

...

k

Registro de palabra

...

OE

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 funcionamientono está gobernado por ningún reloj externo. Además, en la práctica suele ser conveniente que los nbits resultado de una operación de lectura estén disponibles en determinados instantes de tiempo (ellose 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 elesquema de la figura 7.34 un registro de palabra: un registro tipo latch (cerrojo, nombre dadofrecuentemente a un registro sincronizado por nivel) con salidas tri-state, de manera que para OE=0las salidas DO quedan en alta impedancia (dejando la memoria aislada), y que para OE=1 la palabraleída se transmite al BUS. Este registro con salida tristate permite usar las mismas conexiones físicascon el exterior del módulo para las entradas y salidas de datos. La señal OE puede ser una señal decontrol 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 obtenermemorias de mayor capacidad. Concretamente, vamos a obtener una memoria de 1Mx4 bits apartir de los módulos RAM de 256kx1 bits (ver figura 7.35).

Page 276: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

286 Diseño digital________________________________________________________________________________

2 x 4 RAM

20A 19

A 1A 0

...

...R/W'

E

DI3 DI1 DI0

DO3 1 0

...

DODO

a)

2 x 1 RAM

18A 17

A 1A 0

...

R/W'

E

DI

DO

b)

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 esnecesario utilizar 16 módulos de 256kx1, que se han dispuesto en cuatro columnas (tantas comobits de salida) y cuatro filas, de modo que los dos bits más significativos de la dirección (A19 yA18) son fijos para cada fila. El resto de la dirección (A17, ..,A0), así como la señal R/W', llegapor igual a todos los módulos. Las salidas de cada bloque pueden ser conectadas entre sí siaseguramos que nunca será activa más de una a la vez, y se trata de salidas tristate.

DO3 1 0DODO

DI3 DI1 DI0

R/W'

E

De

cod

ifica

do

r

1

0

A 19

A 17

A 1A

0

...

A 18 3

0

2

12 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2 x n RAM

18 DI

DOE

2DO

DI2

Figura 7.36 Ejemplo de encadenamiento de memorias

_________________________________________________________________________________

Page 277: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 dedatos 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 esfuncionalmente correcta, pero irreal con respecto a su implementación. Si pensamos que un registroutiliza un biestable para almacenar cada bit se llega a la conclusión de que las memorias RAM estánformadas por matrices de biestables; ahora bien, esto choca frontalmente con un requisito típico deeste tipo de módulos: maximizar la capacidad por unidad de superficie. Esto en la práctica ha llevadoal 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 memoriasRAM, las estáticas (SRAM) y las dinámicas (DRAM). Las memorias SRAM utilizan células quepermiten almacenar por un tiempo indefinido la información grabada. Por el contrario, las DRAM soncapaces 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 MOSpara almacenar un bit de información, número que puede reducirse hasta 2 o 3 en el caso de unamemoria DRAM. Por tanto es aparente que las memorias dinámicas permiten una mayor capacidad aigual 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 memoriadinámica: una capacidad de puerta más un transistor de paso que regula su carga/descarga. Lainformación se almacena en forma de carga introducida en la capacidad de puerta, carga que semantiene aislada (memorización) cuando se pone en corte el transistor de paso.

p

n

p

Vx

IS

n n

...

Vx

Cg

...

...

Vc

Vc

+ + +n+

...

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 PNpolarizada en inversa entre el nodo Vx y el substrato del transistor de paso (conectado a masa); luego

Page 278: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

288 Diseño digital________________________________________________________________________________

si se memoriza un "1" (Vx=VDD) la carga almacenada en Cg se irá perdiendo a través de la corrienteinversa de saturación, con lo que la tensión Vx disminuirá progresivamente. Por lo tanto, si queremosmantener la información un tiempo indefinido deberemos regrabarla periódicamente, es decir, prevermecanismos 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óndel tiempo que tarda en descargarse totalmente la capacidad si la corriente inversa de saturaciónde la unión drenador-substrato del transistor de paso es IS=1nA.

La carga almacenada en la capacidad Cg es

Q= Cg ⋅ VDD − VTN( )=10−12F ⋅ 4V = 4⋅10−12C

En consecuencia, el tiempo que a razón de 10-9C/s tardará Cg en descargarse es

t =4⋅10−12C

10−9 A= 4 ms

_________________________________________________________________________________

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 dosinversores realimentados (la salida de cada uno de ellos conectada a la entrada del otro) a través de uninterruptor. Un primer análisis de la estructura revela que para el valor de la señal de control C1=1 setiene, 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 derealimentación y se tiene O'=x, siendo "x" el valor cargado en la capacidad de entrada del primerinversor (fase de memorización). Por otro lado, la señal de control C2 controla la lectura del valoralmacenado en la célula, O=O' (fase de lectura).

C1

C1

x x OI

C2

O'

Figura 7.38 Célula estática de memorización

Page 279: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 289________________________________________________________________________________

Podemos notar además que la carga almacenada en las dos capacidades será estable, puesto que lostransistores de los inversores tienden a compensar las posibles fugas. A modo de ejemplo la figura7.39 muestra el caso concreto de una realización CMOS en fase de memorización de un "1": eltransistor NMOS del primer inversor conduce y asegura la descarga de CI1, mientras que el transistorPMOS del segundo inversor también conduce y asegura la estabilidad de la carga almacenada en CI2.

0 VDDOUT

CI2CI1

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 con4 transistores nMOS.

g3 g4C

T2T1

T4T3

B B'

SEL

C

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 elcaso 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 transistoresde paso T1 y T2. De esta forma los valores de tensión en B y B' se propagarán hasta cargar lascapacidades de puerta de T3 y T4; es decir, habrá un "1" en Cg4 y un "0" en Cg3. Por último hay

Page 280: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

290 Diseño digital________________________________________________________________________________

que poner en corte los transistores T1 y T2, con ello la información queda almacenada en formade 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'. Acontinuación se ponen en conducción los transistores T1 y T2. En función de cuál de los dostransistores 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 T4está a "1" y la de T3 a "0"). Al conducir simultáneamente los transistores T1 y T4 la linea B' sedescargará mientras que la linea B se mantendrá a "1". A continuación se vuelve a aislar la célulacortando los transistores de paso T1 y T2. En función de los valores finales de tensión en la líneasB 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 funcionamientode dicha célula es, en líneas generales, análogo al descrito para la célula dinámica de la figura7.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 ydescarga. ¿Es necesaria una precarga de las líneas B y B' al hacer una lectura?

g2 C

VDD

T2T1

B B'

SEL

C g1

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ónimplica cargar y/o descargar capacidades, existe un factor que puede afectar decisivamente sufuncionamiento y que debe tenerse en cuenta: la compartición de carga.

Page 281: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 291________________________________________________________________________________

Para ver en qué consiste consideremos la estructura de la figura 7.42, donde tenemos una pistaconductora con una capacidad Ca respecto del sustrato puesta a tensión Va y aislada del resto delcircuito. 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.

CbCa

Va Vb

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 quealmacenaban las capacidades Ca y Cb cuando inicialmente estaban aisladas, es decir

Qa = CaVa Qb = CbVb

También es evidente que después de la conexión tenemos una estructura formada por dos capacidadesen paralelo, cuya capacidad y tensión globales serán

CT = Ca + Cb

Va final = QT / CT

⇒ Va final =CaVa + CbVb

Ca + Cb

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 yestáticas, presentadas, donde la lectura o escritura de un dato puede verse en términos de traslado decarga 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 lassoluciones encontradas.

Page 282: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

292 Diseño digital________________________________________________________________________________

C7.2 Una implementación para un sistema secuencial, llamada One-Hot, consiste en usarcodificaciones "1 entre n" (código redundante) para sistemas con n estados internos. Encuentre unaimplementació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 querelacionan el estado futuro de cada biestable con las entradas y el estado, esto es,Qi

+ = f (Q0,...,Qn,x0,...,xm) . Intente relacionar la ecuación de los estados futuros con las ramas quellegan a cada estado en el diagrama de estados. ¿Puede proponer un método para encontrar unaimplementació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 entredos valores consecutivos que toma una variable (sistema de interés a la hora de compactar lainformación en señales que varian lentamente con respecto al reloj).

Registro

Pa

rale

lo 1

n

n

Registro

Pa

rale

lo 2

n

X

Clk

du

lo

resta

do

r

²Xm

Analice su funcionamiento en el caso de que el reloj que controla el registro 2 estuvieraapreciablemente 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 puedenprovocar retardos en el reloj dentro de sistemas con diversos bloques sincronizados.

Blo

qu

e 1

i jX

Clk

Blo

qu

e 2

kZ

C7.6 Disponiendo de un contador hexadecimal, sin posibilidad de carga en paralelo pero con un resetasíncrono, proponga una realización de un contador BCD, y compárela a la del ejemplo 7.7.

Page 283: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 293________________________________________________________________________________

C7.7 Discuta el interés del esquema de encadenamiento de contadores propuesto en la siguientefigura, y compárelo con el de la figura 7.26.

Contador módulo 16

Q3

Q2

Q1

Q0

Contador módulo 16

Q3

Q2

Q1

Q0

Clk

Q3

Q2

Q1

Q0

Q7

Q6

Q5

Q4

C7.8 Modifique la implementación propuesta en el ejercicio 7.6 para para obtener un contador BCDexceso 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).

10231022

3210

De

cod

ificad

or

A 9A 8

A 0

Celdas

E

a) Decodificación simple b) Decodificación doble

3130

3210

De

cod

ificad

or

A 4A 3

A 0

Celdas

31210

Decodificador

A 8A 9 A 5

E

Compárelos en términos de los transitores necesarios para hacer una implementación CMOS delos decodificadores. Si la complejidad añadida a cada célula unitaria de memoria en el esquemade decodificación doble, o coincidente, respecto a la simple es de dos transistores, ¿cuál de elloses más ventajoso?

C7.10 ¿Cómo afectaría al resultado del ejemplo 7.10 que la puerta de transimisión que controla lacarga o descarga de la capacidad fuera CMOS, en vez de NMOS? ¿Y si se tratara un transistor depaso PMOS?

Problemas

P7.1 Analice la red secuencial de la figura. Obtenga su diagrama de estados. Obtenga unaimplementación alternativa con biestables de tipo D y puertas lógicas elementales.

Page 284: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

294 Diseño digital________________________________________________________________________________

J Q

Q

01

Mu

x

23

01

y

01

Mu

x

23

01

y

J Q

Q

x

z

0

1Q

0

y

x

y

xy

x

Q0

Q0

Q1

Q1

Q1 Clk

K

K

012

De

c

3

0

1

P7.2 Considere el siguiente sistema secuencial síncrono. Analícelo, y dé, si es posible, unadescripción de alto nivel. Discuta la necesidad de una entrada de reset para dicho sistema.

xD

Q

DQ

DQ

Y

X0

X1

Y0

Y1

Mu

ltiple

xor

Dual

X

SA0

A1

B0

B1

Co

mp

ara

do

r

qa qa

qa

qb

qb

qb

x1

x1

0

x0

z0

z1

Clk

qcA>B

P7.3 Diseñe un sistema secuencial síncrono con la siguiente tabla de transición de estados.

s x=0 x=1A B,a F,bB C,a A,cC D,a B,bD E,b C,c s+,zE F,b D,bF G,c E,c

Page 285: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 yentrada 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 activarsetambié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 estecaso, con un registro de desplazamiento. Obtenga su diagrama de estados. Proponga unaimplementación con menos biestables del mismo sistema. La señal CLR del registro es asíncrona.

SHCLR

CERESET Clk

Z3 Z2 Z1 Z0

P7.6 Implemente un contador en anillo de 8 estados. Este tipo de contador tiene 8 salidas, de lascuales sólo una es activa en cada estado. Proponga una realización aplicando el método de diseño desistemas secuenciales síncronos, otra, a partir de registros de desplazamiento con capacidad de cargaen 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 lospresentados 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?

IN OUT

CLK1CLK2CLK1 CLK2

Proponga, con la misma filosofia de registro dinámico con puertas de transmisión e inversores ydos fases de reloj, una realización de un registro de desplazamiento de 4 bits con capacidad decarga en paralelo.

Page 286: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

296 Diseño digital________________________________________________________________________________

P7.8 Usando un contador como el descrito en la figura 7.24, aquí repetida, consiga un módulocontador con las siguientes secuencias:

I0I2 I1I3

Q0Q2 Q1Q3TC

Contador módulo 16

CE C

LD

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 cargaen paralelo y la lógica que sea necesaria, implemente un sistema secuencial síncrono para unmarcador de treinta segundos de un partido de baloncesto. El sistema debe tener 2 entradas: laprimera, 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 siD=0 el marcador deberá descontar segundos. El sistema tiene una sola salida que activa una bocinacuando el marcador llega a cero. Nota: Un contador con salidas activas bajas se comporta como undescontador.

P7.10 Considere el sistema secuencial de la figura siguiente, donde las señales CE del contador, y LDdel contador y del registro son síncronas y tienen su significado habitual, es decir, habilitación paracontar y carga en paralelo.

RAM 256x4A

dd

ress

Din

Dout

R/W

4-bit COUNTER

In

OutCELD

LD1 LD2 CNT

W

M1

CLR

P/P

R

EG

IST

ER

LD

CLKX

CLK

z

8 8 4

4

RESET

Page 287: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 acontinuación, usando el método propuesto en este capítulo.

W

LD2

CLK

LD1

CNT

b) Explique el funcionamiento del sistema, analizando cómo varían los contenidos de cadaposició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 altonivel del sistema.

P7.11 Considere el circuito de la figura siguiente, donde la parte encerrada por la línea de puntoscorresponde a un único circuito integrado. El contenido de la memoria ROM está indicado en la tablade verdad incluida más abajo.

ROM 16x2a1

a2

a3y1

y0a0

q1

q2

q0

12

0

1

2

0Reg

istr

o

LD

1

x0

xCLK

a3 a2 a1 a0 y1 y0 a3 a2 a1 a0 y1 y0

0 0 0 0 0 0 1 0 0 0 1 00 0 0 1 0 1 1 0 0 1 1 10 0 1 0 0 0 1 0 1 0 1 00 0 1 1 0 0 1 0 1 1 1 00 1 0 0 0 1 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 0 00 1 1 0 0 1 1 1 1 0 1 10 1 1 1 0 1 1 1 1 1 1 1

Page 288: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

298 Diseño digital________________________________________________________________________________

Se pide:

a) Analice el funcionamiento del circuito, obteniendo su diagrama de estados, si se hace lasuposició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 diagramade 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 cortocircuitopermanente entre la entrada y la salida del inversor, de forma que la señal x0 queda conectadadirectamente a la entrada de menos peso del registro. Esta anomalía provoca un funcionamientoincorrecto del circuito. Para corregir este defecto se sugiere insertar una red combinacional en laslíneas que van del registro a la ROM (que son externas al cicuito integrado). ¿Es viable estasolución? Si la respuesta es afirmativa, diseñe el circuito corrector utilizando el menor númeroposible de puertas NOR.

P7.12 El siguiente layout corresponde a una célula de memoria RAM. Determine si se trata de unacé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 VDD; 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 elmismo instante.

BIT

RDWR

VSS

Page 289: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Diseño de circuitos secuenciales síncronos 299________________________________________________________________________________

P7.13 Pretendemos estudiar los problemas asociados al fenómeno de compartición de carga en elcircuito de la figura.

IN OUT

T3

B

A

Φ

Φ

CO

CA

C B

VDD

Φ

IN

t

t

t 1 t 2 t 3

VDD

VDD

Se pide:

a) ¿Qué función lógica realiza el circuito? Suponiendo un funcionamiento ideal, es decir sinefectos resistivos, capacitivos y/o inductivos, obtenga el cronograma de la señal de salida OUTcorrespondiente a la evolución de las entradas dada en la figura. (Nota): Suponga que el valorinicial de OUT es 0 V.

b) Si ahora consideramos que las pistas de conexión son no ideales y que tienen lascapacidades indicadas en la figura (para simplificar, tómese CA=CB=CO), calcule el valor de latensió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 resultadocon 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 quehaya problemas de niveles de tensión en el cronograma estudiado?

Page 290: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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, enespecial el binario y el BCD, pero no se ha hecho mención de las posibilidades de codificación denúmeros enteros y/o a la aritmética básica (en concreto operaciones de suma y resta) basada en estoscódigos. Como estos aspectos tienen incidencia sobre el diseño de algunos circuitos digitales, setratan 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 delsigno. Este bit adicional toma el valor "0" si el número es positivo y el valor "1" si el número esnegativo.

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 (correspondientesa +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 codificanigual que en M/S. Los números negativos se codifican expresándolos inicialmente en un formatobinario de longitud fija y complementando bit a bit.

Page 291: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 losnúmeros positivos es igual que en M/S y Ca1. La codificación de los números negativos se obtienetomando 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 queel 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 tablasiguiente a qué número entero corresponde cada combinación en función de si se supone codificaciónen módulo y signo, complemento a 1 o complemento a 2.

M/S Ca1 Ca2 M/S Ca1 Ca20000 0 0 0 1000 0 -7 -80001 +1 +1 +1 1001 -1 -6 -70010 +2 +2 +2 1010 -2 -5 -60011 +3 +3 +3 1011 -3 -4 -50100 +4 +4 +4 1100 -4 -3 -40101 +5 +5 +5 1101 -5 -2 -30110 +6 +6 +6 1110 -6 -1 -20111 +7 +7 +7 1111 -7 0 -1

Page 292: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 1011110011 - 01110

+ 00110 0 10 0 0 <---- acarreos11001 ----> 19+6=25 01001 ----> 23-14=9

Desde el punto de vista de la realización de operaciones aritméticas mediante circuitos digitalesresulta interesante disponer de un único algoritmo (es decir, circuito) para realizar tanto las sumascomo las restas. La solución es emplear únicamente el algoritmo de la suma con números que en sucodificació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. Estasson:

+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

Page 293: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

304 Diseño digital________________________________________________________________________________

Sin embargo, es necesario recordar que existe un rango de valores representables con el formatoutilizado (en este ejemplo los extremos son -32 y +31); por tanto, hay que prever la posibilidad de quese produzca un error por desbordamiento (overflow), es decir, que el resultado de la operación nopueda 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 6bits:

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 detectarcuándo se producen. Un procedimiento es el siguiente: si llamamos Ca al acarreo que llega a la sumade los bits de signo y Cb al acarreo resultante de la suma de los bits de signo, puede observarse quetenemos desbordamiento cuando Ca • Cb. Por tanto es sencillo realizar un circuito auxiliar dedetección de desbordamiento: basta con una puerta XOR que realice la función Ca ⊕ Cb.

Suma y resta en BCD

Es preciso recordar que, como se vio en el primer capítulo, la codificación BCD coincide con labinaria de 4 bits para los valores entre 0 y 9. Por tanto, la forma de operar en BCD es similar a labinaria, pero con la salvedad de que cuando el resultado de la suma de dos dígitos sea un valorsuperior a 9 será necesario efectuar una corrección. Esta corrección consiste en "saltar" las seiscombinaciones 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

Page 294: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

Apéndices 305________________________________________________________________________________

(57)BCD + (29)BCD --> 0101 0111 + 0010 1001

1000 0000 --> Mayor que 9 (dcha) --> sumamos "6" + 01101000 0110 --> (86)BCD

Para codificar números negativos en BCD tenemos varios procedimientos: a) incluir un bit adicionalde signo, b) utilizar el formato de complemento a 9 (por ejemplo, -57 sería 1 0100 0010, donde el bitde 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 sesuma "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 deldesbordamiento, cuya detección debe tratarse de forma similar a lo planteado para la suma encomplemento a 2.

Page 295: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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ógicasutilizando transistores MOS. En particular se han discutido en detalle dos variantes tecnológicas ofamilias: nMOS con carga de vaciamiento y MOS complementaria (CMOS). Si bien las familiasMOS son las de mayor presencia en el mercado actual de circuitos integrados sobre silicio, yprá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 (EmitterCoupled Logic).

En términos muy generales podemos decir que las principales diferencias, a nivel de característicaseléctricas, de los circuitos digitales realizados mediante transistores bipolares, comparados a susequivalentes 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 mayorcorriente 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 primeraaparición, propiciada por Texas Instruments, data de principios de la década de los 60, lo cual laconvierte 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 queha 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 enningún análisis detallado, digamos que para A o B igual a "0" el transistor de salida está en corte y setiene F=1, mientras que para A=B=1 el transistor de salida está saturado y se tiene F=0. Se trata, portanto, de una puerta NAND.

Page 296: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

308 Diseño digital________________________________________________________________________________

VCCVCC

A

B

F

VCC

A

B F

a) b)

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 encolector abierto (OC) y requiere, como se indica en el esquema, la conexión a la alimentación VCC através de una resistencia externa. Esta configuración permite realizar funciones AND cableadas siconectamos entre sí dos (o más) salidas (ver figura B.2): cuando todos los transistores de salida estáncortados (F1=F2=1) tenemos una salida F=1; en cambio, basta con que cualquiera de los transistoresesté en saturación (F1 o F2 a "0") para forzar la salida global F=0.

VCC

F1...

F2...

F=F1.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 yse utiliza para acelerar la conmutación de subida de la puerta: cuando el transistor inferior de la salidaestá en corte (F=1), la rama formada por el segundo transistor y el diodo conduce, permitiendo cargarcon 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 yAS introducen diodos Schottky en la circuitería básica de la puerta con la finalidad de evitar quealgunos transistores saturen, con lo que se obtiene una reducción del tiempo de retardo. La versión L

Page 297: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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 unconsumo reducido con un retardo también reducido.

A título indicativo se listan a continuación algunos valores representativos de características eléctricasde 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 entérminos generales aumentar la corriente suministrada y por tanto la potencia consumida. Por tantoexiste un compromiso genérico entre la potencia consumida y el retraso introducido. Debido a ellosuele 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 avelocidad, aunque sus muchos inconvenientes (alto consumo, baja densidad de integración, niveleslógicos no compatibles con otras familias, etc.) hacen que su utilización se circunscriba a los circuitosSSI 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. Elfuncionamiento de esta puerta implica que para A=B=0 el transistor de salida queda en corte y setiene F=0 (la tensión VEE es negativa), mientras que cualquier "1" (0 V) a la entrada provoca la salidaF=1. La evidente simetría de la estructura permite obtener una puerta NOR simplemente conectandola base del transistor de salida a la rama opuesta, es decir, a los colectores de los transistores deentrada.

La configuración de salida utilizada en la puerta ECL de la figura B.3 requiere la conexión a laalimentación VEE a través de una resistencia externa. Esta configuración permite realizar funcionesOR cableadas si conectamos entre sí dos (o más) salidas: sólo cuando todos los transistores de salidaestán cortados tenemos una salida F=0; en cambio, basta con que cualquiera de los transistores desalida esté en conducción para forzar la salida F=1. Nótese la dualidad de esta situación con la que seda en las puertas TTL con salida en colector abierto.

Page 298: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

310 Diseño digital________________________________________________________________________________

V EE

VEE

A

B F

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 cualesson las denominadas 10K y 100K, con diferentes prestaciones respecto al compromiso entre retardointroducido y consumo.

A título indicativo se listan a continuación algunos valores representativos de características eléctricasde 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).

Page 299: [ebook] Edicions UPC - Diseño digital Una perspectiva VLSI-CMOS - Spanish Español

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, JohnWiley & 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 Inc1990.

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.