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, microprocesador, un potente circuito digital de uso general cuya funcionalidad precisa se establece mediante programación. De esta forma un mismo circuito puede ser utilizado para diferentes aplicaciones sin más que modificar el programa que lo controla.
© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su distribución y venta fuera del ámbito de la Unión Europea.
8_________________________________________________________________________________ Diseño digital
Finalmente, desde hace algunos años es posible integrar decenas de miles de puertas en un único circuito integrado, lo que da lugar a la muy alta escala de integración (VLSI very large scale integration). Dentro del contexto VLSI han hecho su aparición nuevas posiblidades de diseño. Por ejemplo los circuitos integrados de aplicación específica (ASIC Application Specific Integrated Circuits), circuitos realizados a medida de un usuario y una aplicación concretos, concretos, cuya utilización es cada vez más general. Dentro del concepto genérico de ASIC existen comercialmente multitud de variantes, que podemos clasificar en dos grandes grupos:
1) Circuitos lógicos programables (PLD, programmable logic devices): El circuito integrado comercializado por el fabricante dispone de un conjunto de puertas y módulos lógicos estándar, cuya interconexión no está definida. Estas interconexiones pueden ser programadas a la medida de una funcionalidad concreta mediante la utilización de un equipo de desarrollo (software+hardware) adecuado. Dentro de este grupo podemos incluir multitud de estructuras comerciales: PROM ( programmable programmable read only memory memory), PAL ( programmable programmable array array logic), GAL (general array logic), FPGA ( field field programmabl programmablee gate array), etc.
2) Circuitos integrados fabricados a medida (custom): El usuario tiene la posibilidad de interaccionar directamente con el fabricante de circuitos integrados, de forma que el producto final realizado por éste último es, incluyendo una parte del proceso de fabricación, específico para un usuario y una aplicación concretos. Dentro de este grupo podemos distinguir dos modalidades. Por un lado los circuitos semi-custom, en los cuales sólo algunas etapas de su proceso de fabricación son diseñadas de forma específica, y por el otro los full-custom, donde el diseño y la fabricación son totalmente específicos para un usuario y una aplicación. A su vez, dentro del semi-custom hay diversas posibilidades, desde el gate array (circuito integrado con una disposición regular de puertas, donde quedan por realizar físicamente las pistas de interconexión y los contactos) hasta las standard cells (circuito integrado a realizar en su totalidad a partir de una librería de módulos predefinidos ofrecida por el fabricante más las interconexiones necesarias). En resumen, el abanico de soluciones posibles para llevar a término el diseño de un circuito digital es muy amplio: utilización de circuitos integrados estándar SSI y MSI, sistemas basados en microprocesadores, circuitos lógicos programables y circuitos tipo custom. Entre ellas el diseñador debe elegir en función de diversas variables: número de unidades a producir, coste por unidad, complejidad y coste del diseño, confidencialidad del diseño, urgencia, disponibilidad del equipo necesario para el desarrollo, experiencia previa, etc. En este contexto complejo se inscribe este libro, un objetivo del cual es ofrecer de forma clara y ordenada los conceptos abstractos del diseño digital, imprescindibles sea cual sea la alternativa finalmente escogida. Adicionalmente se introduce al lector en la realización, tanto a nivel eléctrico como físico, de circuitos digitales en las tecnologías nMOS y CMOS, proporcionándole con ello las herramientas básicas necesarias parar abordar el diseño de circuitos integrados VLSI CMOS.
© los autores, 1998; © Edicions UPC, 1998.
Introducció n 9 _________________________________________________________________________________
La inclusión en un mismo texto de aspectos lógicos, eléctricos y tecnológicos, más la interrelación entre ellos, es uno de los aspectos originales de este texto. Son numerosos los textos de diseño digital, muchos de ellos excelentes, enfocados tanto a los conceptos más abstractos como al uso de circuitos estándar. Asimismo es posible encontrar algunos excelentes textos enfocados al diseño de circuitos integrados CMOS. Sin embargo, son más bien escasos los libros que, como éste, combinan los dos aspectos. Este libro es el resultado de la experiencia acumulada durante varios años en la impartición de un curso introductorio de electrónica digital en la Universidad Politécnica de Catalunya a alumnos de primer curso en las titulaciones de Ingeniería de Telecomunicación e Ingeniería Electrónica. El material presentado se cubre en su práctica totalidad en un semestre de 60 horas de clase de teoría y problemas, en paralelo con un curso de laboratorio. Los autores han utilizado material generado por el colectivo de profesores que en uno u otro momento han impartido la asignatura y quieren hacer constar aquí su agradecimiento a todos ellos. Se ha hecho un esfuerzo para generar un texto autocontenido en el que los conocimientos previos requeridos son muy escasos (únicamente a partir del capítulo 3 es necesario el conocimiento de los conceptos más elementales de análisis de circuitos electrónicos). Se ha intentado que el libro sea una herramienta útil de estudio personal. También ha sido preocupación constante de los autores no elaborar un texto enciclopédico o exhaustivo, sino por el contrario conseguir un libro conciso que hiciera hincapié en los aspectos fundamentales. Se ha cuidado de forma especial la participación del lector en el proceso de aprendizaje, incluyendo diferentes elementos: ejemplos resueltos (incluidos en el texto), ejercicios propuestos (también incluidos en el texto), y cuestiones y problemas (al final de cada capítulo). Estos elementos no son complementarios, sino parte esencial del libro. En ellos no solamente se insiste en los aspectos mecánicos del diseño, sino que se intenta motivar al lector para reelaborar en profundidad los conceptos, al tiempo que se plantean cuestiones complementarias que facilitan una profundización en lo aprendido.
R. Alcubilla J. Pons D. Bardés Barcelona, junio de 1995.
© los autores, 1998; © Edicions UPC, 1998.
Índi ce 11 _________________________________________________________________________________
Índice
1
Primera aproximación a los sistemas digitales.....................................................15
1.1 1.2 1.3
1.5
Definiciones.............................................................................................................15 Sistemas digitales combinacionales y secuenciales...........................................................17 Codificación.............................................................................................................21 1.3.1 Codificación de números enteros ....... ....... ........ ....... ....... ........ ....... ....... ........ ......23 1.3.2 Códigos alfanuméricos... ....... ....... ........ ....... ........ ....... ....... ........ ....... ....... ........ .27 1.3.3 Códigos detectores de errores ........ ....... ....... ........ ....... ........ ....... ....... ........ ....... ...29 Cuestiones y problemas .............................................................................................30
2
Fundamentos abstractos del diseño digital ...........................................................33
2.1
Funciones lógicas .....................................................................................................33 2.1.1 Representación mediante tabla de verdad...............................................................34 2.1.2 Representación mediante tabla de Karnaugh......... ....... ........ ....... ....... ........ ....... .....34 2.1.3 Funciones lógicas de una y dos variables ....... ....... ....... ........ ....... ........ ....... ....... ...37 2.1.4 Funciones incompletamente especificadas ....... ....... ........ ....... ........ ....... ....... ........ .40 2.1.5 Composición de funciones lógicas......................................................................41 Algebra de Boole.......................................................................................................42 2.2.1 Postulados del Algebra de Boole.........................................................................42 2.2.2 Teoremas del Algebra de Boole ........ ....... ........ ....... ....... ........ ....... ....... ........ ......43 2.2.3 Simplificación algebraica .................................................................................45 Formas canónicas de una función lógica ....... ....... ........ ....... ....... ........ ....... ....... ........ ......48 2.3.1 Minterms y Maxterms .....................................................................................48 2.3.2 Teorema de Shannon........................................................................................49 2.3.3 Formas canónicas............................................................................................50 2.3.4 Grupo completo de funciones ....... ....... ........ ....... ....... ........ ....... ....... ........ ....... ...53 2.3.5 Realización de logigramas.................................................................................54 Minimización de funciones lógicas.. ........ ....... ....... ........ ....... ....... ........ ....... ....... ........ ...57 2.4.1 Consideraciones previas....................................................................................57
2.2
2.3
2.4
© los autores, 1998; © Edicions UPC, 1998.
1_________________________________________________________________________________ 2 Diseño digital
2.5
2.4.2 Método de Karnaugh........................................................................................59 2.4.3 Minimización en forma de producto de sumas....... ........ ....... ........ ....... ....... ........ ...61 2.4.4 Minimización de funciones incompletamente especificadas.. .... ... .... .... ... .... .... ... .... ...62 2.4.5 Limitaciones del método de Karnaugh ....... ....... ....... ........ ....... ....... ........ ....... .......63 Cuestiones y problemas .............................................................................................65
3
Fundamentos circuitales del diseño digital ...........................................................73
3.1
3.6
Características eléctricas de las puertas lógicas ....... ....... ........ ....... ....... ........ ....... ........ .....73 3.1.1 Curva de transferencia y niveles lógicos...............................................................74 3.1.2 Márgenes de ruido...........................................................................................75 3.1.3 Retardos de propagación ....... ....... ........ ....... ........ ....... ....... ........ ....... ....... ........ ..77 3.1.4 Potencia consumida.........................................................................................78 El transistor MOS.....................................................................................................79 3.2.1 Estructura y funcionamiento básico.....................................................................79 3.2.2 Efectos de segundo orden...................................................................................85 Puertas lógicas NMOS...............................................................................................85 3.3.1 Inversor NMOS con carga de vaciamiento....... ....... ........ ....... ........ ....... ....... ........ .85 3.3.2 Puertas básicas NMOS.....................................................................................91 Puertas de transmisión ...............................................................................................97 3.4.1 Transistor de paso NMOS.................................................................................98 3.4.2 Transistor de paso PMOS...............................................................................101 3.4.3 La puerta de transmisión CMOS...... ....... ....... ........ ....... ....... ........ ....... ........ ..... 101 Puertas lógicas CMOS.............................................................................................103 3.5.1 Inversor CMOS............................................................................................103 3.5.2 Puertas básicas CMOS...................................................................................110 3.5.3 Otras estructuras ...........................................................................................113 Cuestiones y problemas ...........................................................................................114
4
Fundamentos tecnológicos del diseño digital......................................................123
4.1
Etapas básicas de fabricación de circuitos integrados......... ........ ....... ....... ........ ....... ....... ..123 4.1.1 Deposición de capas.......................................................................................124 4.1.2 Oxidación térmica .........................................................................................125 4.1.3 Fotolitografía...............................................................................................126 4.1.4 Difusión de impurezas....................................................................................128 4.1.5 Implantación iónica.......................................................................................129 4.1.6 Fabricación de un transistor MOS con puerta de polisilicio ... ... .... ... .... ... ... .... ... ... .. 130 Procesos CMOS y layouts ........................................................................................132 4.2.1 Fabricación de un inversor CMOS.................................................................... 132 4.2.2 Layo uts .......................................................................................................136 4.2.3 Reglas de diseño de layouts .............................................................................142
3.2
3.3
3.4
3.5
4.2
© los autores, 1998; © Edicions UPC, 1998.
Índi ce 13 _________________________________________________________________________________
4.3
4.5
Caracterización eléctrica de circuitos integrados MOS... ....... ....... ........ ....... ....... ........ ...... 147 4.3.1 Estimación de resistencias...............................................................................147 4.3.2 Estimación de capacidades.. ....... ....... ........ ....... ....... ........ ....... ....... ........ ....... ....150 Cálculo simplificado de retardos de propagación ........ ....... ....... ........ ....... ....... ........ ....... .154 4.4.1 Retardos en un inversor..................................................................................155 4.4.2 Retardos en una cadena de inversores....... ........ ....... ....... ........ ....... ....... ........ ...... 157 4.4.3 Retardo en una cadena de interruptores......... ........ ....... ....... ........ ....... ....... ........ ..159 4.4.4 Retardos en puertas CMOS cualesquiera ........ ....... ....... ........ ....... ....... ........ ....... .161 Cuestiones y problemas ...........................................................................................163
5
Diseño de circuitos combinacionales ..................................................................169
5.1 5.2
5.6
¿Por qué la realización a dos niveles no resuelve el problema del diseño combinacional? .. .. .. . 169 Diseño con redes modulares.......................................................................................172 5.2.1 Construcción de redes modulares ....... ....... ........ ....... ....... ........ ....... ....... ........ .... 173 5.2.2 Análisis y síntesis de redes modulares ....... ....... ....... ........ ....... ....... ........ ....... ..... 176 Módulos combinacionales estándar ....... ....... ........ ....... ........ ....... ....... ........ ....... ....... ....179 5.3.1 Decodificadores......... ........ ....... ....... ........ ....... ........ ....... ....... ........ ....... ....... ...179 5.3.2 Codificadores................................................................................................182 5.3.3 Multiplexores...............................................................................................185 5.3.4 Demultiplexores ...........................................................................................188 5.3.5 Sumadores...................................................................................................190 5.3.6 Comparadores...............................................................................................194 5.3.7 Unidades aritmético-lógicas........ ........ ....... ....... ........ ....... ........ ....... ....... ........ ..197 Diseño combinacional basado en módulos universales.. ....... ....... ........ ....... ....... ........ ...... 198 5.4.1 Diseño combinacional con multiplexores...........................................................198 5.4.2 Diseño combinacional con decodificadores..........................................................202 Diseño combinacional con módulos programables.... ....... ....... ........ ....... ........ ....... ....... ..204 5.5.1 Diseño combinacional basado en ROM ....... ........ ....... ....... ........ ....... ....... ........ ..204 5.5.2 Diseño combinacional con PLA.......................................................................208 Cuestiones y problemas ...........................................................................................210
6
Introducción a los sistemas secuenciales.............................................................217
6.1
Especificación de sistemas secuenciales ........ ....... ........ ....... ....... ........ ....... ....... ........ .... 217 6.1.1 Concepto de estado........................................................................................218 6.1.2 Especificación basada en el estado.....................................................................220 6.1.3 Diagrama de estados.......................................................................................222 6.1.4 Equivalencia de estados...................................................................................226 Sincronización de sistemas secuenciales.......................................................................230 6.2.1 Sistemas secuenciales síncronos y asíncronos......... ....... ....... ........ ....... ....... ........ 231 6.2.2 Implementación canónica de un sistema secuencial síncrono. .... ... ... .... ... ... .... ... ... ... 234
4.4
5.3
5.4
5.5
6.2
© los autores, 1998; © Edicions UPC, 1998.
1_________________________________________________________________________________ 4 Diseño digital
6.5
6.2.3 Sincronización con reloj no ideal......................................................................237 Biestables..............................................................................................................239 6.3.1 Biestable D..................................................................................................240 6.3.2 Biestable JK.................................................................................................241 6.3.3 Biestable T ..................................................................................................243 Realización de biestables ..........................................................................................244 6.4.1 Biestable SR asíncrono ..................................................................................244 6.4.2 Biestables síncronizados por nivel ........ ....... ....... ........ ....... ....... ........ ....... ....... ..246 6.4.3 Biestables sincronizados por flanco........ ....... ........ ....... ....... ........ ....... ....... ........ 249 Cuestiones y problemas ...........................................................................................250
7
Diseño de circuitos secuenciales síncronos..........................................................257
7.1
Diseño canónico de circuitos secuenciales síncronos.......................................................257 7.1.1 Método sistemático de análisis.........................................................................257 7.1.2 Método sistemático de síntesis.........................................................................264 Módulos secuenciales...............................................................................................270 7.2.1 Registros.....................................................................................................271 7.2.2 Registros de desplazamiento ....... ........ ....... ........ ....... ....... ........ ....... ....... ........ ..273 7.2.3 Contadores...................................................................................................276 Dispositivos lógicos programables.............................................................................280 Memorias RAM .....................................................................................................284 7.4.1 Descripción genérica........ ....... ........ ....... ....... ........ ....... ....... ........ ....... ........ ....284 7.4.2 Memorias MOS dinámicas y estáticas.. ....... ........ ....... ....... ........ ....... ....... ........ ..287 Cuestiones y problemas ...........................................................................................291
6.3
6.4
7.2
7.3 7.4
7.5
Apéndice A
Aritmética binaria ...............................................................................301
Apéndice B
Familias lógicas bipolares ...................................................................307
Bibliografía .................................................................................................................311
© los autores, 1998; © Edicions UPC, 1998.
15
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
Cap’tulo 1 Primera aproximaci—n a los sistemas digitales
Este cap’tulo pretende situar al lector en el campo de los sistemas electr—nicos digitales, introduciendo algunos conceptos fundamentales de uso constante a lo largo de este texto. Para ello, el apartado 1.1 presenta un conjunto de definiciones que pemiten un uso preciso de la terminolog’a. El apartado 1.2 discute los conceptos de sistema combinacional y sistema secuencial. Por œltimo el apartado 1.3 introduce el concepto de codificaci—n.
1.1 Definiciones Un sistema electr—nico digital es aquel que procesa se–ales elŽctricas digitales. Para el lector novel en el ‡rea de ingenier’a es conveniente clarificar los significados precisos de cada uno de los tŽrminos de la frase anterior. Se entiende por sistema una entidad f’sica que recibe una serie de entradas o excitaciones y responde con un conjunto de salidas. La figura 1.1 muestra la representaci—n genŽrica de un sistema.
n
X
m Sistema
Y
Figura 1.1 Sistema genŽrico
La n minœscula indica la existencia de n entradas y la m minœscula indica la existencia de un nœmero m de salidas. Esta definici—n "a priori" no se limita a sistemas electr—nicos. Es igualmente aplicable a sistemas mec‡nicos, biol—gicos, econ—micos, etc. El comportamiento de un sistema estar‡ perfectamente determinado cuando se conozcan los valores de las salidas para cada posible combinaci—n de valores de las entradas. Entenderemos por se–al una magnitud f’sica variable con el tiempo que sirve de soporte a algœn tipo de informaci—n. Se invita al lector a reflexionar sobre el hecho de que solamente las magnitudes f’sicas
© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su distribución y venta fuera del ámbito de la Unión Europea.
16
Dise–o digital digital
_________________________________________________________________________________
variables pueden soportar/transmitir alguna informaci—n. En el campo de la ingenier’a electr—nica las se–ales habitualmente utilizadas son tensiones y corrientes. Las se–ales elŽctricas se pueden dividir en dos categor’as distintas, las se–ales anal—gicas y las digitales. Una se–al es anal—gica cuando puede tomar cualquier valor entre dos valores extremos. Una se–al es digital o discreta cuando s—lo puede tomar un nœmero finito de valores fijos entre dos valores extremos. En la figura 1.2 se muestran ejemplos de estos dos tipos de se–ales.
a)
b) s(t)
s(t)
t
t
Figura 1.2 a) Se–al anal—gica. b) Se–al digital
Veamos a continuaci—n un caso particular de sistema digital, el sistema l—gico. Un sistema l—gico procesa se–ales l—gicas. Una se–al l—gica o binaria es aquella que solamente puede tomar dos valores fijos. Las se–ales l—gicas son, por tanto, un caso particular de se–al digital as’ como el sistema l—gico lo es de los sistemas digitales. Un ejemplo de se–al l—gica se muestra en la figura 1.3.
s(t)
t
Figura 1.3 Se–al l—gica
En este texto trataremos de forma intensiva con se–ales y sistemas de este tipo. Uno de los motivos del interŽs particular en las se–ales y los sistemas l—gicos es la disponibilidad de dispositivos electr—nicos capaces de funcionar en dos estados n’tidamente diferenciados. En realidad resulta habitual, y as’ se har‡ en este texto, el emplear indistintamente los tŽrminos "digital" y "l—gico" aplicados ya sea a sistemas, circuitos o se–ales. El motivo es que la transformaci—n de se–ales digitales o discretas a se–ales l—gicas o binarias, y viceversa, es
© los autores, 1998; © Edicions UPC, 1998.
17
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
extraordinariamente sencilla. Estas transformaciones se denominan respectivamente codificaci—n y decodificaci—n. De estos aspectos nos ocuparemos con m‡s detalle en el apartado 1.3. La figura 1.4 muestra de forma esquem‡tica la relaci—n existente entre un sistema digital y uno l—gico.
Codificador
Sistema lógico
Decodificador
Sistema digital Figura 1.4 Relaci—n entre un sistema digital y un sistema l—gico
1.2 Sistemas digitales combinacionales y secuenciales Los sistemas digitales pueden dividirse en dos categor’as atendiendo a la influencia que tiene el factor tiempo en su funcionamiento. Sistemas digitales combinacio combinacionales nales son aquŽllos en los cuales las salidas en un instante de tiempo t i dependen œnicamente del valor de las entradas en ese mismo instante. Se entiende, por tanto, que los valores que hayan tomado las entradas y salidas con anterioridad, es decir, en t
n
X
Sistema Combinacional
m
Y
Figura 1.5 Sistema combinacional
Por tanto en dichos sistemas
[
y ( t i ) = F x (t i )
]
Como esta igualdad se cumple para cualquier valor de t i puede dejarse impl’cito el factor tiempo y escribirse simplemente y = F ( x )
© los autores, 1998; © Edicions UPC, 1998.
18
Dise–o digital
_________________________________________________________________________________
Ejemplo 1.1
Supongamos un dep—sito dividido en 6 niveles numerados del 0 al 5. Queremos implementar una alarma que se active cuando el nivel del l’quido que contiene sea o bien demasiado alto (>4) o bien demasiado bajo (<2). Evidentemente se trata de un sistema combinacional. La activaci—n o no de la alarma depende exclusivamente del nivel del l’quido en cada momento. Los valores que haya podido tomar el nivel con anterioridad no tienen influencia alguna en el resultado.
n X
m Alarma
Y
Figura 1.6 Esquema del ejemplo 1.1
La entrada del sistema es el nivel del l’quido en el dep—sito y por tanto existen 6 valores posibles de la entrada. An‡logamente s—lo pueden haber dos valores posibles de la salida: o bien la alarma est‡ activada o bien no lo est‡. X ∈{ 0,1,2,3,4,5}
Y ∈{ON , OFF }
La funci—n Y = F ( X ) , es decir, el valor de la salida para cada posible valor de la entrada, est‡ perfectamente determinada mediante la tabla siguiente
X Y 0 ON 1 ON 2 OFF 3 OFF 4 OFF 5 ON __________________________________________________________________________________ Un sistema combinacional siempre queda completamente determinado a travŽs de la definici—n de sus entradas, salidas y de una tabla que las relacione entre s’. Estas tablas reciben el nombre de tablas de verdad. Conviene ser consciente que este tipo de tablas, si bien dan toda la informaci—n necesaria sobre el comportamiento del sistema combinacional, cuando el nœmero de entradas y salidas crece llegan a ser pr‡cticamente imposibles de manipular.
© los autores, 1998; © Edicions UPC, 1998.
19
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
En los sistemas digitales secuenciales el valor de las salidas del sistema en un instante t i depende tanto del valor de las entradas en ese instante como de valores anteriores de las entradas.
n
X
Sistema
m
Secuencial
Y
Figura 1.7 Sistema secuencial
Por tanto se puede escribir y (t i ) = F[ x ( −∞ , t i )]
Esta es la definici—n general de sistema secuencial. Sin embargo, existe de hecho un inconveniente de orden pr‡ctico. El hecho de que la salida dependa de los distintos valores que toma la entrada durante un intervalo infinito de tiempo conlleva la necesidad de una capacidad de almacenaje de informaci—n infinita: esta capacidad es necesaria para memorizar los valores de la entrada durante el intervalo ( −∞ , t i ) . Es claro que una memoria infinita es algo poco pr‡ctico desde el punto de vista de la implementaci—n f’sica. En este texto nos ocuparemos de una clase particular de sistemas secuenciales llamados sistemas secuenciales de estados finitos; un nombre alternativo es el de m‡quinas de estados finitos. En estos sistemas todas las evoluciones hist—ricas posibles de las entradas pueden ser agrupadas en un nœmero finito de clases de equivalencia. Por tanto, el valor de la salida en un instante determinado depende del valor de las entradas en ese instante y de la clase de equivalencia a la que pertenezca la evoluci—n temporal anterior de las entradas. Esto elimina la necesidad de memoria infinita y permite implementar pr‡cticamente estos sistemas. Dicho de otra forma, para hallar y ( t ) en funci—n de x (t ) no necesitamos conocer x ( −∞ , t ) , sino solamente la clase de equivalencia a la que pertenece. Este conocimiento lo tendremos a travŽs de una variable nueva, s (t ) , que denominaremos estado del sistema. Por tanto la especificaci—n de una m‡quina de estados finitos pasa por la definici—n de un conjunto de entradas, un conjunto de salidas y otro de estados. Adicionalmente ser‡ necesario definir dos funciones y ( t ) = H ( x ( t ), s( t )) s ( t + ) = G( x ( t ), s( t ))
La funci—n H se denomina funci—n de salida e indica el valor de la salida para cada combinaci—n de entrada y estado del sistema. La funci—n G se denomina funci—n transici—n de estados y determina cu‡l ser‡ el estado pr—ximo del sistema, es decir, el valor pr—ximo de la variable de estado, para cada combinaci—n de valores de la entrada y estado actual del sistema.
© los autores, 1998; © Edicions UPC, 1998.
20
Dise–o digital
_________________________________________________________________________________
Ejemplo 1.2
Una comprensi—n intuitiva del concepto de sistema secuencial se puede obtener a travŽs del an‡lisis del funcionamiento de un ascensor. Para centrar ideas piŽnsese en el ascensor de un edificio con dos pisos y planta baja, dotado con un botonera con œnicamente tres botones: 0, 1, 2. Una primera reflexi—n nos conduce a que el sistema de control del ascensor no es un sistema combinacional. Si consideramos como entrada el hecho de pulsar un determinado bot—n, la salida, es decir, la acci—n realizada por el ascensor, no siempre es la misma, depende en realidad de en quŽ piso estuviera el ascensor cuando se produce la entrada. Dicho en otras palabras, la salida, la acci—n realizada por el ascensor, depende de la historia anterior del ascensor (el hecho de estar en un piso u otro en un momento dado depende de los desplazamientos anteriores del ascensor y por tanto de sus entradas anteriores). TambiŽn es evidente que no es necesario conocer toda la secuencia de las diferentes idas y venidas del ascensor para poder determinar el valor de la salida en un cierto momento. Nos basta con conocer en quŽ piso est‡. Todas las evoluciones de las entradas que conducen a que en un determinado instante el ascensor estŽ en un determinado piso son equivalentes. Por tanto, el piso en que estŽ el ascensor constituir‡ el estado del sistema. Vamos a ver lo mismo pero desde un punto de vista m‡s formal. Entradas al sistema: Bot—n pulsado por el usuario. Es decir: x ∈{ 0,1,2} . Salidas del sistema: Acciones realizadas por el ascensor: o bien sube 2 pisos, o sube 1, o no hace nada, o baja 1, o baja 2. Esto es: y ∈{ nada, +1,+2, −1,−2} . Estados del sistema: A partir de la discusi—n anterior deber’a ser claro que el nœmero de estados del sistema es tres: o bien el ascensor est‡ en planta baja o en el primero o en el segundo piso. Formalmente escribiremos: s ∈{ 0,1,2} .
s(t) 0 1 2 0 1 2 0 1 2
x(t) 0 0 0 1 1 1 2 2 2
y(t) nada -1 -2 +1 nada -1 +2 +1 nada
s(t+) 0 0 0 1 1 1 2 2 2
© los autores, 1998; © Edicions UPC, 1998.
21
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
Para especificar el sistema secuencial de forma completa necesitamos la funci—n de salida que depende de la entrada y el estado actual y la funci—n transici—n de estados, que da el estado pr—ximo en funcion de la entrada y el estado actual. Podemos especificar estas dos funciones mediante la tabla de verdad presentada. __________________________________________________________________________________
1.3 Codificaci—n Un concepto fundamental dentro de los sistemas digitales es el de codificaci—n. En el apartado 1.1 hac’amos una primera referencia diciendo que mediante la codificaci—n pod’amos pasar de una se–al discreta a una se–al l—gica, mientras la decodificaci—n realizaba el camino inverso. En este apartado vamos a definir estos conceptos con m‡s precisi—n. El problema de la codificaci—n en el ‡mbito de la electr—nica digital se traduce en representar un conjunto finito de elementos mediante vectores de n componentes donde cada uno de los componentes puede tomar solamente dos valores: 0 o 1. Antes de dar una definici—n formal vamos a ver un ejemplo de codificaci—n.
Ejemplo 1.3
Recordemos el ejemplo 1.1 referente a la alarma para un dep—sito. Ten’amos 6 entradas posibles y por tanto 6 elementos a codificar x ∈{ 0,1,2,3,4,5} . Si tenemos que representar estos valores mediante vectores de n elementos donde cada uno de ellos puede tomar los valores 0 o 1, podemos hacerlo de multitud de maneras. Una posibilidad ser’a
Elemento 0 1 2 3 4 5
C—digo asignado 000 100 101 001 010 011
Esta asignaci—n es totalmente arbitraria, caracter’stica propia de la codificaci—n. Vemos, por otra parte, que el nœmero n de elementos de los vectores, en este caso particular, tiene que ser de tres como m’nimo. Si hubiŽramos utilizado vectores de dos elementos no hubiŽramos tenido suficientes combinaciones distintas para asignarlas a todos los elementos a codificar. Es
© los autores, 1998; © Edicions UPC, 1998.
22
Dise–o digital
_________________________________________________________________________________
evidente que asignar dos codificaciones iguales a dos elementos distintos s—lo puede conducir a la pŽrdida o confusi—n de informaci—n. N—tese que en este ejemplo las combinaciones
111 y 110 no han sido utilizadas.
Igualmente podr’amos codificar las salidas. En el caso de la alarma s—lo ten’amos dos salidas posibles y ∈{ON , OFF } , por tanto podemos utilizar vectores de un solo elemento para codificarlas. Una posible codificaci—n, nuevamente arbitraria, de las salidas ser’a
C—digo asignado ON 1 OFF 0 __________________________________________________________________________________ Elemento
Una vez presentado de forma intuitiva el problema de la codificaci—n, vamos a formalizar la definici—n. Codificaci—n es una funci—n, al menos inyectiva, que asigna un vector binario de dimensi—n n a cada elemento de un conjunto finito.
{Conjunto} → {0,1}n Representamos mediante {0,1}n el conjunto de vectores de n elementos donde cada uno de ellos puede tomar o el valor 0 o el valor 1. A cada uno de los elementos que pueden tomar el valor 0 o 1 le llamamos d’gito binario o bit . Denominamos byte a un vector de 8 bits.
Ejercicio 1.1
ÀCu‡ntos elementos podemos codificar mediante vectores de n bits? ÀCu‡ntos c—digos distintos podemos formar con n bits? Soluci—n: ¥ n bits permiten codificar 2 n elementos. ¥ Podemos formar 2n! c—digos distintos con n bits. __________________________________________________________________________________ La codificaci—n, es decir, la elecci—n de una forma particular de asignaci—n de c—digos es en principio arbitraria. En cada caso concreto hay que elegir entre 2 n! codificaciones posibles. Ahora bien, el que cualquier codificaci—n sea en teor’a v‡lida no quiere decir que sea indiferente la elecci—n de una u otra.
© los autores, 1998; © Edicions UPC, 1998.
23
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
Criterios posibles que pueden determinar la elecci—n de un c—digo determinado podr’an ser la simplicidad, la compatibilidad entre sistemas, la posibilidad de detectar la aparici—n de algœn error, la posibilidad de corregir errores, etc. En los pr—ximos subapartados vamos a presentar brevemente algunos de los c—digos m‡s comœnmente utilizados.
1.3.1 Codificaci—n de nœmeros enteros
Ya que la codificaci—n finalmente representa los elementos a codificar mediante los d’gitos binarios 0 y 1, empezaremos este apartado presentando los sistemas de numeraci—n y en particular la numeraci—n en base 2 y en potencias de 2. Un nœmero representado en base r se escribe ( an−1 , an−2 ,......, a1 , a0 )r y su valor decimal se calcula simplemente desarroll‡ndolo en potencias de r , donde los s’mbolos ai se asocian a los r primeros nœmeros enteros (por tanto entre 0 y r-1)
( an
−1
, an−2 ,...., a1 , a0 )
r
=
an−1r n−1 +.... + a1r1 + a0 r 0
Ejemplo 1.4
Encontrar el equivalente decimal del nœmero en base 2 (11100001) 2. (11100001) 2=1.27+1.26+1.25+0.24+0.23+0.22+0.21+1.20=128+64+32+1=(225) 10 __________________________________________________________________________________
Ejercicio 1.2
Escribir los numeros decimales (101) 10 y (202)10 en base 2. ÀQuŽ relaci—n hay entre los dos resultados? Soluci—n:
(101)10=(1100101)2
(202)10=(11001010)2
El 202 en base 2 coincide con el 101, desplazado una cifra a la izquierda. Esto se cumple para cualquier nœmero que cumpla m =2 .n, y se puede demostrar f‡cilmente substituyendo r por 2 en la expresi—n de desarrollo en potencias, y multiplic‡ndola por 2. __________________________________________________________________________________ El cambio entre base 2 y base 10 es particularmente frecuente y por ello es conveniente recordar los valores de las potencias de 2.
© los autores, 1998; © Edicions UPC, 1998.
24
Dise–o digital
_________________________________________________________________________________
20=1
21=2
22=4
23=8
24=16
25=32
26=64
27=128
28=256
29=512
210=1024
...
En el contexto que nos ocupa tambiŽn son de interŽs los sistemas de numeraci—n cuya base es una potencia de 2, en particular base 8 y base 16, denominados octal y hexadecimal respectivamente. El paso de base 2 a base 2 k es particularmente sencillo. Se parte del nœmero escrito en base 2 y, empezando por la derecha, se agrupan los d’gitos que lo forman en grupos de k bits, a cada uno de los grupos se le asigna el d’gito correspondiente en base 2 k .
Ejemplo 1.5
(1010110001101011)2= ( 1 010 110 001 101 011)2= (1 2 6 1 5 3) 8 En base 16 este mismo nœmero quedar’a (1010 1100 0110 1011) 2= (A C 6 B) 16 Nota: En base 16 se utilizan los siguientes s’mbolos para los 16 d’gitos necesarios: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F __________________________________________________________________________________ Los cambios en sentido contrario, es decir, el paso de base 2 k a base 2 se realizan invertiendo el procedimiento anterior.
Ejercicio 1.3
Expresar el numero (3 7 0 1 2) 8 en base binaria y en base hexadecimal. Soluci—n: (3 7 0 1 2)8 = (11111000001010) 2= (3 E 0 A) 16 __________________________________________________________________________________
Codificaci—n en binario
Simplemente escribimos en binario, utilizando el nœmero de bits que sea necesario, el nœmero entero a codificar. Es claro que utilizando n bits podemos codificar un total de 2n nœmeros enteros, en concreto los que van desde el 0 al 2n-1.
© los autores, 1998; © Edicions UPC, 1998.
25
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
Ejemplo 1.6
Escribir el c—digo binario para n = 3 bits. Con 3 bits podemos codificar en binario natural los nœmeros que van desde el 0 hasta el 7.
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
__________________________________________________________________________________
Codificaci—n en BCD
El c—digo BCD, decimal codificado en binario, utiliza 4 bits para cada d’gito decimal, es decir
0 1 2 3 4
0000 0001 0010 0011 0100
5 6 7 8 9
0101 0110 0111 1000 1001
Por tanto quedan 6 combinaciones libres, las que van del 1010 al 1111. Cab’a esperar esto desde el principio ya que 4 bits permiten codificar hasta 16 elementos y en el sistema de numeraci—n decimal s—lo tenemos 10 d’gitos.
Ejemplo 1.7
Pasar a c—digo BCD el nœmero decimal 124. (124)10 = (0001 0010 0100)BCD __________________________________________________________________________________ El valor decimal de cada d’gito del nœmero codificado en BCD puede ser obtenido sumando el peso asignado a cada bit. Para el BCD natural los pesos son 8, 4, 2, 1. Estos pesos son coincidentes con los pesos de los d’gitos correspondientes en binario de 4 bits. Los c—digos en los que esta operaci—n es posible se denominan c—digos ponderados.
© los autores, 1998; © Edicions UPC, 1998.
26
Dise–o digital
_________________________________________________________________________________
Ejemplo 1.8
(0111)BCD = 0 .8+1 .4+ 1 .2+1 .1 = 7 (0010 0011)BCD = (1.2).101+ (1 .2+ 1.1).100 = 23 __________________________________________________________________________________ Existen distintas variantes del c—digo BCD. Algunas de ellas se diferencian en el peso (o ponderaci—n) de cada uno de los bits. Un ejemplo ser’a el BCD 2421. En dicho c—digo 2, 4, 2 y 1 son los pesos respectivos de cada uno de los bits. ObsŽrvese en este ejemplo concreto que " a priori " un mismo nœmero puede ser codificado de distintas maneras. Ser‡ necesaria, por tanto, una regla adicional que determine cu‡l de las posibles codificaciones es la correspondiente al c—digo. Otra variante de interŽs es el llamado BCD exceso 3. El c—digo es el siguiente
0 1 2 3 4
0011 0100 0101 0110 0111
5 6 7 8 9
1000 1001 1010 1011 1100
Como el lector habr‡ adivinado se obtiene a travŽs de sumar 3 al BCD natural. Parte del interŽs de este c—digo radica en que es autocomplementario, es decir, si en la combinaci—n correspondiente a un nœmero n cambiamos los ceros por unos y viceversa se obtiene la combinaci—n correspondiente a 9- n. Por ejemplo, el d’gito decimal 6 se codifica en BCD exceso 3 como 1001; si en esta combinaci—n cambiamos los ceros por unos y viceversa se obtiene 0110. Esta combinaci—n corresponde al 3, justamente 9-6. Por otra parte obsŽrvese que este c—digo no es ponderado.
C—digos de Gray
Este tipo de c—digo tambiŽn se conoce por los nombres de c—digo c’clico o reflejado. Su propiedad fundamental es que cada codificaci—n difiere de la codificaci—n del entero anterior o posterior en un solo bit. Empecemos construyendo el c—digo de Gray de un solo bit
Decimal 0 1
Gray 0 1
© los autores, 1998; © Edicions UPC, 1998.
27
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
Para obtener el c—digo de Gray de dos bits se procede de la siguiente manera: Se toma el c—digo de Gray de 1 bit, se refleja especularmente respecto al eje mostrado en la figura, y se completa a–adiendo un "0" a la izquierda para la primera mitad de combinaciones y un "1" para la otra mitad.
Decimal 0 1 2 3
C—digo de Gray 0 0 0 1 1 1 1 0 a–adido reflejado
El procedimiento se itera para obtener de forma sucesiva los c—digos de Gray de 3, 4 y m‡s bits. As’ por ejemplo el c—digo de Gray de 3 bits se obtiene del de 2 bits de la forma que se indica en el gr‡fico siguiente
Decimal 0 1 2 3 4 5 6 7
C—digo de Gray 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 a–adido reflejados
1.3.2 C—digos alfanumŽricos
Es muy habitual el tener que codificar textos compuestos por caracteres alfanumŽricos ( bajo esta denominaci—n incluimos letras, nœmeros, s’mbolos ortogr‡ficos, car‡cteres de control, etc.). El c—digo m‡s utilizado en este caso es el c—digo ASCII ( American Standard Code for Information Interchange ), del cual existen dos versiones, la que utiliza 7 bits y el ASCII extendido, que utiliza 8 bits. A t’tulo informativo la distribuci—n de combinaciones en el c—digo ASCII de 7 bits es la mostrada en la figura 1.8, donde las primeras 32 codificaciones corresponden a car‡cteres de control, que se
© los autores, 1998; © Edicions UPC, 1998.
28
Dise–o digital
_________________________________________________________________________________
especifican aparte. Estos car‡cteres pueden utilizarse para transmitir un texto entre sistemas y/o reconstruirlo sin ambigŸedades.
Bits de mayor peso A7A6A5 A4A3A2A1
000
001
010
011
100
101
110
111
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
NULL
DLE
SOH
DC1
STX
DC2
ETX
DC3
EOT
DC4
ENQ
NAK
ACK
SYNC
BELL
ETB
BS
CAN
HT
EM
LF
SUB
VT
ESC FS
CR
GS
SO
RS US
@ A B C D E F G H I J K L M N O
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
SI
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
P Q R S T U V W X Y Z [
FF
SP ! " # $ % & ' ( ) * + , . /
\ ] ^ _
DEL
NULL
Car‡cter nulo
DLE
Cambio de enlace de transmisi—n
SOH
Encabezamiento
DCi
Control del dispositivo i
STX
Principio de texto
NACK
No reconocimiento
ETX
Final de texto
SYNC
Transmisi—n s’ncrona
ENQ
Pregunta
ETB
Fin de transmisi—n de bloque
ACK
Reconocimiento
CAN
Cancelar
BELL
Timbre
EM
Fin de medio
BS
Retroceso
SUB
Sustituci—n
HT
Tabulador horizontal
ESC
Escape
LF
Salto de l’nea
FS
Separador de ficheros
VT
Tabulador vertical
GS
Separador de grupos
FF
Salto de p‡gina
RS
Separador de registros
CR
Retorno de carro
US
Separador de unidades
SO
Desplazamiento exterior
SP
Espacio en blanco
SI
Desplazamiento interior
DEL
Borrar
Figura 1.8 C—digo ASCII de 7 bits
© los autores, 1998; © Edicions UPC, 1998.
29
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
1.3.3 C—digos detectores de errores Las se–ales codificadas contienen informaci—n. Estas se–ales, y por tanto esta informaci—n, se transmiten de unos circuitos (sistemas) electr—nicos a otros. Existen formas de codificar que permiten detectar si se ha producido algœn error en la transmisi—n, estos c—digos reciben el nombre de c—digos detectores de error. Mencionaremos aqu’ a t’tulo de ejemplo los c—digos con paridad, que es la forma m‡s sencilla de c—digo detector de error. Para transformar un c—digo en un c—digo con paridad se a–ade un bit adicional de tal manera que la codificaci—n resultante (c—digo anterior y bit a–adido) tenga un nœmero par de bits de valor "1", en los c—digos de paridad par, o impar en los c—digos de paridad impar.
Ejemplo 1.9 Tenemos un c—digo de tres bits con todas las combinaciones utilizadas y queremos convertirlo en un c—digo de 4 bits con paridad par
X2 X1 X0
X2 X1 X0 Xp Paridad
C—digo previo
Bit a–adido
000 001 010 011 100 101 110 111
0 1 1 0 1 0 0 1
Figura 1.9 Sistema generador de bit de paridad
__________________________________________________________________________________ Los c—digos con paridad pueden detectar un nœmero impar de errores en la transmisi—n de la informaci—n pero no pueden detectar un nœmero par, ya que en este caso la paridad no se modifica. En el ejemplo anterior se observa que el hecho de intentar detectar errores nos lleva a utilizar m‡s bits de los estrictamente imprescindibles. Un c—digo que utiliza m‡s bits de los necesarios se denomina redundante. En efecto, si tenemos 8 elementos a codificar podemos hacerlo mediante 3 bits, a–adir un bit de paridad nos exige utilizar 4 bits para codificar el mismo nœmero de elementos. Cualquiera que sea el procedimiento que utilicemos para detectar errores, siempre utilizaremos m‡s bits de los imprescindibles. Esto es as’ por una raz—n muy simple: supongamos que codificamos 16 elementos mediante 4 bits. Si se produce un error en la transmisi—n de uno cualquiera de los bits, por ejemplo se
© los autores, 1998; © Edicions UPC, 1998.
30
Dise–o digital
_________________________________________________________________________________
env’a 0011 y se recibe el 0010, el receptor recibe una codificaci—n que corresponde a uno de los elementos a codificar y por tanto en ausencia de informaci—n adicional no puede determinar si ha ocurrido un error. Para que el receptor pueda saber que se ha producido un error es necesario que la codificaci—n que reciba no corresponda a ninguno de los elementos a codificar y esto no es posible a menos que se utilicen m‡s bits de los imprescindibles. Asimismo es posible generar c—digos que permitan, no s—lo detectar, sino corregir un cierto nœmero de errores. El precio a pagar siempre es el aumentar el nœmero de bits utilizados para codificar una determinada informaci—n, es decir, aumentar la redundancia del c—digo.
1.4 Cuestiones y problemas
Cuestiones
C1.1 Discuta si las magnitudes y los sistemas siguientes son anal—gicos o digitales: a) Temperatura b) Cron—metro c) Sem‡foro d) Corriente elŽctrica
C1.2 ÀCu‡les de los siguientes sistemas, donde cada entrada puede tomar dos valores x ∈{a, b} , son combinacionales y cu‡les secuenciales? Discuta si los secuenciales pueden describirse o no como m‡quinas de estados finitos. a) Un sistema con dos entradas que indique en cu‡l de ellas ha recibido m‡s veces el valor a . b) Un sistema con tres entradas que detecte si las tres son iguales. c) Un sistema con una sola entrada que indique si ha entrado un nœmero par o impar de b.
C1.3 Demuestre que para que una codificaci—n BCD ponderada sea autocomplementaria, la suma de todos los pesos de la ponderaci—n debe ser igual a 9. C1.4 Encuentre cu‡ntos c—digos BCD 2,4,2,1 diferentes se pueden formar y cu‡les de ellos son autocomplementarios.
© los autores, 1998; © Edicions UPC, 1998.
31
Primera aproximaci—n a los sistemas digitales
_________________________________________________________________________________
C1.5 Un c—digo "n entre m" es aquŽl en que todas las combinaciones v‡lidas contienen n unos y (m-n) ceros (por tanto m bits en total). ÀCu‡ntos elementos distintos se pueden codificar mediante un c—digo "2 entre 5"? Discuta quŽ tipo de errores permite detectar este c—digo.
C1.6 ÀEs œnico el c—digo de Gray? Proponga diferentes c—digos de tres bits con las mismas propiedades que el c—digo de Gray.
Problemas
P1.1 Identifique las entradas y salidas de un sistema combinacional que controla un motor de dos velocidades, con dos sensores de fin de recorrido, un mando de velocidad y otro de direcci—n. Escriba la tabla de verdad que permita mover el motor a un lado o al otro hasta su l’mite. P1.2 Determine las salidas y los estados de un sistema secuencial con una œnica entrada x ∈{ 0,1,2,3,4} , que indique si la suma de todas las entradas realizadas hasta el momento es un mœltiplo de tres. Escriba las tablas de sus funciones de salida y de transici—n de estados. P1.3 Proponga una codificaci—n que utilice 3 bits para los d’as de la semana. ÀEntre cu‡ntos c—digos distintos puede escogerse? P1.4 Proponga un c—digo BCD autocomplementario ponderado con pesos 8,4,-2,-1. ÀEs el œnico posible? P1.5 Complete la siguiente tabla:
Decimal 1256
Binario
Hexadecimal
Octal
1001110101 624 A03C
P1.6 Encuentre la codificaci—n BCD de los nœmeros de la tabla del problema anterior. P1.7 El c—digo llamado biquinario es un c—digo "2 entre 7" ponderado con pesos 5,0,4,3,2,1,0 para cifras decimales. Encuentre cu‡ntos c—digos distintos cumplen estos requisitos.
© los autores, 1998; © Edicions UPC, 1998.
33
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Cap’tulo 2 Fundamentos abstractos del dise–o digital
En este cap’tulo se presentan los fundamentos formales, o si se prefiere matem‡ticos, del dise–o digital. El hecho de que las se–ales procesadas por los sistemas l—gicos s—lo puedan tomar dos valores permite interpretar los sistemas combinacionales como un conjunto de funciones donde las entradas y las salidas son variables que toman œnicamente dos valores. Una consecuencia de esto es la posibilidad de utilizar superestructuras matem‡ticas espec’ficamente creadas para tratar con este tipo de variables. El ‡lgebra de Boole, desarrollada el siglo pasado como herramienta para tratar el c‡lculo de predicados en l—gica matem‡tica, se revela extremadamente œtil en el campo del dise–o digital. A pesar del marcado tono matem‡tico de este cap’tulo, es conveniente que el lector tenga en cuenta que su inclusi—n no obedece a un deseo de completitud formal sino, por el contrario, a una necesidad de orden pr‡ctico. Como comprobar‡ el lector, los conceptos introducidos en este cap’tulo son de uso continuado en el resto de este texto.
2.1 Funciones l—gicas Una funci—n l—gica o de conmutaci—n de n variables asigna un valor l—gico ("0" o "1") a cada combinaci—n de n valores l—gicos de entrada y = f ( x n−1 , x n−2 ,......, x1 , x 0 ) → {0,1}
donde
y, xi ∈{0,1}
De acuerdo con esto, un sistema l—gico combinacional de n entradas y m salidas como el representado en la figura 2.1 puede interpretarse como un conjunto de m funciones l—gicas de las mismas n variables.
Y = F(X) x x x
y
0 1
n-1
Sistema ....
Combinacional
y ....
0 1
y m-1
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 l—gicas
© los autores, 1998; © Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del "copyright", bajo las sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografía y el tratamiento informático, y la distribución de ejemplares de ella mediante alquiler o préstamo públicos, así como la exportación e importación de ejemplares para su distribución y venta fuera del ámbito de la Unión Europea.
34
Dise–o digital
_________________________________________________________________________________
Existen distintas maneras de especificar y/o representar una funci—n l—gica; entre ellas podemos destacar las siguientes: a) tabla de verdad, b) tabla de Karnaugh, c) expresiones algebraicas, d) logigramas. Veamos de momento las dos primeras, dejando para m‡s adelante dentro de este mismo cap’tulo las dos restantes.
2.1.1 Representaci—n mediante tabla de verdad Una tabla de verdad especifica el valor que toma la funci—n para cada posible combinaci—n de valores de sus variables. Es evidente que cualquier funci—n l—gica puede representarse mediante una tabla de verdad. La tabla de verdad de una funci—n l—gica de tres variables (formalmente equivalente a un sistema combinacional de tres entradas y una salida) se muestra a continuaci—n. Los valores de la funci—n f(x2,x1,x0) s—lo pueden ser o bien "0" o bien "1".
x2
x1
x0
f(x2,x1,x0)
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
f(0,0,0) f(0,0,1) f(0,1,0) f(0,1,1) f(1,0,0) f(1,0,1) f(1,1,0) f(1,1,1)
La extensi—n de este tipo de representaci—n a funciones de cualquier nœmero de variables es inmediata, aunque resulta poco pr‡ctica cuando este nœmero es elevado.
2.1.2 Representaci—n mediante tabla de Karnaugh La tabla de Karnaugh, tambiŽn llamada mapa de Karnaugh, da una informaci—n equivalente a la de una tabla de verdad. La diferencia estriba en la disposici—n topol—gica de la informaci—n. Se disponen los valores de la funci—n en una tabla de doble entrada donde unas variables est‡n en el eje horizontal y otras en el eje vertical. Las combinaciones de las variables de entrada en cada eje se ordenan siguiendo un c—digo de Gray. Ve‡moslo para el caso concreto de una funci—n de tres variables f(x2,x1,x0). En el eje vertical situamos x2 y en el eje horizontal x1 y x0.
© los autores, 1998; © Edicions UPC, 1998.
35
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
x2 \x1x0
00
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)
01
11
10
Como es natural, en una funci—n de 3 variables tenemos 8 combinaciones de entrada y por tanto una tabla de 8 casillas. Para el caso de 4 variables el procedimiento es el mismo, situando dos de las variables en el eje horizontal y las dos restantes en el eje vertical. Como antes, las combinaciones de las variables en cada eje se ordenan siguiendo un c—digo de Gray. Ve‡moslo para una funci—n genŽrica de 4 variables f(x3,x2,x1,x0).
x3x2 \x1x0
00
01
11
10
00
f(0,0,0,0)
f(0,0,0,1)
f(0,0,1,1)
f(0,0,1,0)
01
f(0,1,0,0)
f(0,1,0,1)
f(0,1,1,1)
f(0,1,1,0)
11
f(1,1,0,0)
f(1,1,0,1)
f(1,1,1,1)
f(1,1,1,0)
10
f(1,0,0,0)
f(1,0,0,1)
f(1,0,1,1)
f(1,0,1,0)
El hecho de ordenar las variables segœn un c—digo de Gray hace que en casillas vecinas se sitœen los valores de la funci—n correspondientes a combinaciones de las variables de entrada que difieren entre s’ en un s—lo bit. Si definimos como casillas l—gicamente adyacentes las correspondientes a combinaciones de entrada que difieren entre s’ en el valor de un solo bit, la fila superior resulta adyacente a la inferior y del mismo modo la columna de la derecha es adyacente a la columna de la izquierda. Por ejemplo, si observamos en la tabla anterior la casilla correspondiente a f(1,0,0,1) (sombreada de forma m‡s intensa) vemos que las casillas adyacentes segœn la definici—n anterior (marcadas en punteado claro) corresponden a f(1,0,0,0) donde s—lo var’a el valor de x 0, f(1,0,1,1) donde es x1 la variable que cambia de valor, f(1,1,0,1) donde es x2 la variable que cambia de valor, y por œltimo en f(0,0,0,1) x3 cambia de valor. Generalizando, podemos decir que cada casilla de una tabla de Karnaugh de n variables tiene n casillas l—gicamente adyacentes, es decir, correspondientes a combinaciones de entrada que difieren œnicamente en el valor de una variable. Para funciones de 5 variables el procedimiento es el siguiente: consideremos una funci—n genŽrica f(x4,x3,x2,x1,x0); se forman dos tablas de Karnaugh iguales (con la misma disposici—n de variables) de 4 variables, por ejemplo x3,x2,x1,x0, una referida a las combinaciones de entrada con x4=0 y otra con las combinaciones correspondientes a x4=1. La definici—n de adyacencia incluye las casillas vistas para la tabla de 4 variables m‡s la casilla que est‡ situada en el mismo lugar en la otra tabla, tal como se muestra en la figura que sigue.
© los autores, 1998; © Edicions UPC, 1998.
36
Diseño digital ________________________________________________________________________________
x4=0 x3x2 \x1x0
00
01
x4=1 11
10
x3x2 \x1x0
00
00
01
01
11
11
10
10
00
01
11
10
La representación mediante tabla de Karnaugh para funciones lógicas de 6 variables puede realizarse extendiendo la idea aplicada para 5 variables (cuatro tablas de 4 variables situadas una encima de la otra y ordenadas mediante combinaciones cíclicas de las 2 variables restantes), aunque se pierde la facilidad de identificación de las casillas adyacentes. Por ello en la práctica la tabla de Karnaugh no suele utilizarse para funciones de más de 5 variables.
Ejemplo 2.1
Supongamos un código de 4 bits con todas las combinaciones asignadas. Se desea generar un bit adicional de forma que el código de 5 bits resultante tenga una paridad par. Especificar la función lógica correspondiente mediante su tabla de verdad y su mapa de Karnaugh.
a b c d
Y
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
ab\cd
00 01
11 10
00
0
1
0
1
01
1
0
1
0
11
0
1
0
1
10
1
0
1
0
© los autores, 1998; © Edicions UPC, 1998.
37
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Se trata de un sistema combinacional con 4 entradas y una salida, cuyo valor ser‡ "1" cuando en las entradas tengamos un nœmero impar de valores "1", y "0" en caso contrario (nœmero par de "1"). Por tanto la tabla de verdad y mapa de Karnaugh ser‡n los dados en la figura. ObsŽrvese que el mapa de Karnaugh de una funci—n de paridad, dado que las variables de entrada est‡n ordenadas segœn el c—digo de Gray, tiene el aspecto de un tablero de ajedrez. Esto es, si en una casilla determinada hay un "1", en todas sus adyacentes hay un "0" y viceversa. __________________________________________________________________________________
Ejercicio 2.1 Describa, a travŽs de sus tablas de verdad y de Karnaugh, un sistema combinacional que compare 2 nœmeros enteros A y B codificados en binario. La salida valdr‡ "1" si A>B. A, B C—digo
A, B ∈{0,1,2,3}
Entradas
1 Y = 0
Salida
si
A > B
en otro caso
0
00
1
01
2
10
3
11
__________________________________________________________________________________
2.1.3 Funciones l—gicas de una y dos variables Al estar limitado a dos el nœmero de valores que pueden tomar tanto las distintas variables de entrada como la salida de una funci—n l—gica, resulta que el nœmero de funciones l—gicas distintas de n variables est‡ acotado. Por tanto, es posible realizar un inventario de todas las funciones l—gicas de un nœmero dado de variables.
Funciones l—gicas de una variable: Existen 4 y s—lo 4 funciones l—gicas de una variable, que presentamos en la tabla siguiente
x0
f 0(x0)
f 1(x0)
f 2(x0)
f 3(x0)
0 1
0 0
0 1
1 0
0 0
f 0(x0). Como se observa en la tabla, esta funci—n asigna el valor cero independientemente del valor de la variable. Se la denomina funci—n constante cero. Podemos asignar a esta funci—n la siguiente representaci—n en forma de expresi—n algebraica
© los autores, 1998; © Edicions UPC, 1998.
38
Dise–o digital
_________________________________________________________________________________
f 0 ( x 0 ) = 0
f 1(x0). El valor de la funci—n coincide con el de la variable de entrada. Por este motivo se la denomina funci—n identidad. La expresi—n algebraica de esta funci—n es f 1 ( x 0 ) = x 0
f 2(x0). En este caso el valor de la funci—n siempre es el contrario o complementario del que tiene la variable de entrada. Se la conoce como funci—n complemento, negaci—n o funci—n NOT. La expresi—n algebraica correspondiente es f 2 ( x 0 ) = x 0
f 3(x 0). Por œltimo, esta funci—n siempre devuelve el valor "1" independientemente del valor de la variable de entrada y por eso recibe el nombre de funci—n constante 1. Su expresi—n algebraica ser‡ f 3 ( x 0 ) = 1
Algunas funciones l—gicas cuentan con un s’mbolo propio para su representaci—n gr‡fica. Estos s’mb—los graficos se denominan logigramas o puertas y suponen una primera aproximaci—n a la estructura del circuito o elemento f’sico que las implementa. Las cuatro funciones de una variable pueden representarse mediante los logigramas que se muestran en la figura 2.2.
a)
b) 0
x
x
x
x
1 Figura 2.2 Logigramas para las funciones l—gicas de una variable. a) funci—n constante 0, b) funci—n identidad, c) funci—n constante 1, d) funci—n complemento
Funciones l—gicas de dos variables: Es posible obtener hasta 16 funciones l—gicas diferentes de 2 variables, que se muestran en la tabla siguiente
x1
x0
f 0
f 1
f 2
f 3
f 4
f 5
f 6
f 7
f 8
f 9
f 10 f 11 f 12 f 13 f 14 f 15
0 0 1 1
0 1 0 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
© los autores, 1998; © Edicions UPC, 1998.
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
39
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Algunas de estas 16 funciones se utilizan con mayor frecuencia y las presentamos a continuaci—n como funciones destacables. f 1 . La funci—n f 1 se denomina AN D o producto l—gico y s—lo toma el valor "1" cuando las dos variables de entrada toman el valor "1". La definici—n dada puede independizarse del nœmero de variables; por tanto, denominaremos funci—n AND de n variables a la funci—n l—gica que s—lo valdr‡ "1" cuando todas las variables de entrada valgan "1". La expresi—n algebraica y el logigrama para la funci—n AND de dos variables son los siguientes
f AND ( x1 , x 0 ) = x1 x 0
x1 x0
x 1 x 0
f 7. Esta funci—n toma el valor "1" cuando alguna de las entradas toma el valor "1" (eventualmente pueden ser las dos) o, de forma equivalente, s—lo toma el valor "0" cuando todas las variables de entrada toman el valor "0". Recibe el nombre de funci—n OR o suma l—gica. Como antes la definici—n es independiente del nœmero de variables y por tanto denominaremos funci—n OR de n variables a aquella que vale "1" cuando alguna (una o m‡s) de las entradas toma el valor "1". La expresi—n algebraica y el logigrama para esta funci—n son
f OR ( x1 , x 0 ) = x1 + x 0
x1 x0
x1 + x 0
f 6. A partir de los valores que toma para dos variables esta funci—n puede ser interpretada de diversas maneras: 1- La funci—n toma el valor "1" cuando las entradas son distintas y "0" cuando son iguales. 2- El valor de la funci—n es la suma m—dulo 2 de las entradas. 3- La funci—n vale "1" cuando el nœmero de "1" a su entrada es impar y "0" cuando no lo es. Las dos œltimas interpretaciones son directamente generalizables a n entradas. Esta funci—n recibe el nombre de XOR o tambiŽn OR exclusiva. La expresi—n algebraica y el logigrama para la funci—n XOR de dos variables son f XOR ( x1 , x 0 ) = x1 ⊕ x 0
x1 x0
x1 + x 0
Las complementarias de estas tres funciones tambiŽn son destacables. Entendemos por funciones complementarias aquŽllas que para los mismos valores de las variables toman valores opuestos: f 14. Recibe el nombre de NOT-AND, o abreviadamente, NAND. f NAND ( x1 , x 0 ) = x1 x 0
x1 x0
© los autores, 1998; © Edicions UPC, 1998.
x 1 x 0
40
Dise–o digital
_________________________________________________________________________________
f 8. Recibe el nombre de NOR (NOT-OR). x1
f NOR ( x1 , x 0 ) = x1 + x 0
x1 + x 0
x0
f 9. Recibe el nombre de XNOR (NOR-exclusiva). f XNOR ( x1 , x 0 ) = x1 ⊕ x 0
x1
x1 + x0
x0
2.1.4 Funciones incompletamente especificadas Son funciones l—gicas cuyo valor no est‡ definido, especificado, para alguna combinaci—n de variables de entrada. En lenguaje formal, podr’amos decir que su dominio es un subconjunto de las 2n posibles combinaciones de las variables de entrada.
Ejemplo 2.2 Supongamos un sistema combinacional tal que su entrada es una cifra codificada en BCD y su salida es "1" en caso de que la entrada sea mœltiplo de 3 y "0" en caso contrario. La tabla de verdad de este sistema ser’a
x
3
0 0 0 0 0 0 0 0
x
2
0 0 0 0 1 1 1 1
x
1
0 0 1 1 0 0 1 1
x
0
Y
0 1 0 1 0 1 0 1
1 0 0 1 0 0 1 0
x
3
1 1 1 1 1 1 1 1
x
2
0 0 0 0 1 1 1 1
x
1
0 0 1 1 0 0 1 1
x
0
Y
0 1 0 1 0 1 0 1
0 1 X X X X X X
N—tese que las combinaciones de entrada comprendidas entre 1010 y 1111 no pertenecen al c—digo BCD y por tanto no se van a presentar nunca; en consecuencia, es irrelevante el valor que tome la funci—n para dichas combinaciones de entrada. Usaremos la notaci—n "X" (salida indiferente) para el valor de la funci—n en dichos casos. __________________________________________________________________________________
© los autores, 1998; © Edicions UPC, 1998.
41
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Ejercicio 2.2 n
(2 )
DemuŽstrese que hay 2 funciones l—gicas diferentes de n variables. __________________________________________________________________________________
2.1.5 Composici—n de funciones l—gicas Los œnicos valores que puede tomar una funci—n l—gica son "0" o "1", es decir, valores que pueden corresponder a variables de una nueva funci—n l—gica. En consecuencia las funciones l—gicas se pueden componer entre s’, con lo que se generan otras funciones l—gicas m‡s complejas.
Ejemplo 2.3 La funci—n z es el resultado de aplicar la funci—n OR a la variable c y al resultado obtenido de aplicar la funci—n AND a las variables a, b y al complementario de d: z = f OR ( c, f AND ( a, b, f NOT ( d )))
La expresi—n algebraica correspondiente a esta composici—n es z = c + abd
TambiŽn es posible obtener el logigrama de la composici—n de funciones combinando adecuadamente los logigramas de cada una de las funciones involucradas, tal como se muestra en la figura 2.3. Este logigrama supone una primera aproximaci—n a un posible circuito electr—nico que realice la funci—n.
d
d
abd c + abd
a b c
Figura 2.3 Logigrama resultante de la composici—n de funciones
__________________________________________________________________________________
© los autores, 1998; © Edicions UPC, 1998.
42
Dise–o digital
_________________________________________________________________________________
Ejercicio 2.3 Obtener la tabla de verdad y el logigrama de la composici—n de funciones siguiente z = f NOR ( f 1 ( a, b, c, d ), f NOT ( f AND ( b, d )))
donde f 1 es la funci—n descrita en el ejemplo 2.3 __________________________________________________________________________________ Hasta ahora hemos visto cuatro formas equivalentes, aunque formalmente distintas, de representar una funci—n l—gica: 1-Tabla de verdad. 2-Tabla de Karnaugh. 3-Expresi—n algebraica. 4-Logigrama. Segœn las circunstancias, unas formas de representaci—n ser‡n m‡s convenientes que otras, pero no debe perderse de vista que la informaci—n aportada es la misma.
2.2 Algebra de Boole Recordemos que las variables l—gicas solamente pueden tomar dos valores. En el siglo XIX George Boole (1815-1864), trabajando en el c‡lculo de predicados en l—gica matem‡tica, cre— una superestructura matem‡tica particularmente œtil en los casos en que los valores posibles de las variables son solamente dos. El dise–o digital utiliza de forma extensiva estos resultados obtenidos hace m‡s de un siglo.
2.2.1 Postulados del Algebra de Boole Se denomina ‡lgebra de Boole a la estructura matem‡tica formada por un conjunto B de elementos y dos operaciones, denominadas genŽricamente " +" (suma) y " ." (producto), que cumple las siguientes propiedades 1- B es un conjunto cerrado respecto a las operaciones definidas, es decir
ì a × b Î B î a + b Î B
a, b Î B Þ í
2- Las dos operaciones son conmutativas
ìa + b = b + a î a×b = b×a
a, b Î B Þ í
3- Existe distributividad de una operaci—n respecto a la otra y viceversa
© los autores, 1998; © Edicions UPC, 1998.
43
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
ì a × (b + c) = a × b + a × c îa + ( b × c ) = ( a + b ) × ( a + c )
a, b, c Î B Þ í
4- Existe un elemento neutro para cada operaci—n. Es decir, si aÎ B, entonces existen dos elementos del conjunto B, llamados arbitrariamente "0" y "1", tales que a+0=a a ×1 = a
5- Existencia de elemento opuesto. Si a es un elemento del conjunto B entonces existe un œnico elemento a Î B tal que a + a =1 a×a = 0
6- El conjunto B tiene al menos dos elementos distintos. En el tratamiento de variables l—gicas podemos tomar el conjunto B = {0,1} y escoger las operaciones siguientes "+" o suma: Funci—n l—gica OR "." o producto: Funci—n l—gica AND _ " " u opuesto: Funci—n l—gica complemento o negaci—n (NOT) Es inmediato comprobar que el conjunto definido m‡s las operaciones suma y producto escogidas cumplen los postulados anteriores. Por tanto, constituyen un ‡lgebra de Boole de dos elementos (o valores).
2.2.2 Teoremas del Algebra de Boole Un ‡lgebra de Boole, en virtud de las propiedades que por definici—n se le exigen, cumple una serie de teoremas. Estos teoremas son de gran utilidad a la hora de transformar expresiones algebraicas de funciones l—gicas en otras equivalentes. Sean a, b, c Î B -Asociatividad:
a + (b + c) = ( a + b) + c a × (b × c) = ( a × b) × c
-Idempotencia:
a+a=a a×a = a
© los autores, 1998; © Edicions UPC, 1998.
44
Dise–o digital
_________________________________________________________________________________
-Absorci—n:
a + a×b = a + b
a + a×b = a
a × (a + b) = a × b
a( a + b ) = a
-Involuci—n:
( a) = a
-Inc—gnita:
x +1=1 x × 0 = 0
-Leyes de De Morgan:
a + b = a×b a×b = a + b
- Du alid ad : Cualquier expresi—n v‡lida en un ‡lgebra de Boole continœa siendo v‡lida si se intercambian entre s’ los elementos neutros ( 0 « 1 ) y las operaciones ( + « × ). La permutaci—n del teorema de dualidad conlleva cambiar cada variable por su complementaria. ObsŽrvese que todas las propiedades exigidas a un ‡lgebra de Boole cumplen esta condici—n, por tanto, cualquier expresi—n que se derive de ellas tambiŽn la cumplir‡. Adem‡s, algunos de estos teoremas son directamente generalizables a n variables, por ejemplo, las leyes de De Morgan: el complementario de una suma de variables es igual al producto de los complementarios de las variables, y el complementario de un producto de variables es igual a la suma de los complementarios de las variables.
å ai = Õ ai i
Õ ai = å ai
i
i
i
Ejemplo 2.4 Vamos a aplicar dualidad a la expresi—n algebraica obtenida en el ejemplo 2.3. La expresi—n de partida es z = c + abd
y la que aplicando dualidad se deriva de ella es
(
)
z = c a + b + d
Esto nos permite escribir una expresi—n algebraica equivalente para la funci—n z, aplicando el teorema de involuci—n
(
)
z = c a + b + d
© los autores, 1998; © Edicions UPC, 1998.
45
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Ejercicio 2.4 DemuŽstrese la identidad del ejemplo 2.4 usando las leyes de De Morgan. __________________________________________________________________________________ Las demostraciones de los teoremas presentados tambiŽn quedan como ejercicio para el lector. En cualquier caso, cuando se intenta demostrar cualquier igualdad entre dos expresiones algebraicas en un ‡lgebra de Boole, siempre se puede evaluar cada una de las expresiones en todos los casos posibles a travŽs de su tabla de verdad y realizar la comprobaci—n del resultado.
Ejemplo 2.5 Vamos a demostrar la primera igualdad del teorema de absorci—n. a + ab = a + b
Aplicando sucesivamente la distributividad de la suma con respecto al producto y las definiciones de elemento inverso y elemento neutro, nos queda a + ab = ( a + a )( a + b ) = 1× ( a + b ) = a + b
__________________________________________________________________________________
Ejercicio 2.5 Utilizando œnicamente los postulados del ‡lgebra de Boole, demuŽstrese la segunda igualdad del teorema de absorci—n: a + ab = a . __________________________________________________________________________________
2.2.3 Simplificaci—n algebraica Los postulados y teoremas del ‡lgebra de Boole traen como consecuencia que la expresi—n algebraica de una funci—n l—gica no es œnica. Por tanto es posible utilizar las propiedades anteriores para simplificar las expresiones algebraicas de funciones l—gicas. Ve‡moslo mediante algunos ejemplos.
Ejemplo 2.6 a) cd ( a + ab ) + bd ( ac + c ) = cd ( a(1 + b )) + bd ( c (1 + a )) = cda + cbd = cd ( a + b ) Donde se ha aplicado el postulado de distributividad, el teorema de inc—gnita, el postulado del elemento neutro y otra vez distributividad.
© los autores, 1998; © Edicions UPC, 1998.
46
Dise–o digital
_________________________________________________________________________________
b) a + b + c + d + abcd = ( a + b + c + d ) + ( a + b + c + d ) = 1 c) a + b + c + d + abcd = a(1 + bcd ) + b + c + d = a + b + c + d __________________________________________________________________________________
Ejercicio 2.6 Simplificar las expresiones siguientes: a) xyz + xy + xyz
b) a + b + c + abc
c) x ( z + xy ) + z y + xy x d) cad + b + c + abc __________________________________________________________________________________
Al final del apartado 2.1 resum’amos las cuatro formas vistas de representar una funci—n l—gica: tabla de verdad, tabla de Karnaugh, expresi—n algebraica y logigrama. Ahora se ha presentado un procedimiento para transformar unas expresiones algebraicas en otras. Vamos a analizar estas cuatro posibles representaciones de una funci—n l—gica a travŽs de un ejemplo.
Ejemplo 2.7 A partir del logigrama de la figura 2.4, obtener la tabla de verdad, la tabla de Karnaugh, y una expresi—n algebraica de la funci—n Y(a,b,c).
a
b
c
A
B
C
D
Y F
E
Figura 2.4 Logigrama del ejemplo 2.7
© los autores, 1998; © Edicions UPC, 1998.
47
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Es laborioso encontrar directamente la expresi—n algebraica de la funci—n completa, por lo que el procedimiento m‡s aconsejable es hallar primero las expresiones algebraicas de las variables intermedias A, B, C, D, E, y F se–aladas en la figura 2.4. A = a + b = ab
B = Ac = abc
C = abc
D = abc
E = abc
F= DE = ab c + abc
Por tanto, la expresi—n algebraica final para Y es Y = B + C + F = abc + abc + ab c + abc
La tabla de verdad puede obtenerse evaluando las variables intermedias y las expresiones anteriores para cada combinaci—n de valores de las variables de entrada. a
b
c
A
B
C
D
E
F
Y
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0
0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1
La tabla de Karnaugh quedar’a de la forma siguiente
a\bc
00
01
11
10
0
0
1
0
1
1
1
0
1
0
Un an‡lisis detallado de la tabla de verdad nos lleva a concluir que la funci—n l—gica Y vale "1" cuando el nœmero de entradas que toman el valor "1" es impar y asigna el valor "0" en caso contrario; por tanto, una expresi—n algebraica y un logigrama alternativos son
Y = a Å b Å c
a b c
Y
__________________________________________________________________________________
© los autores, 1998; © Edicions UPC, 1998.
48
Dise–o digital
_________________________________________________________________________________
2.3 Formas can—nicas de una funci—n l—gica A partir de lo visto en el apartado anterior, es claro que una misma funci—n l—gica admite una infinidad de expresiones algebraicas. Como consecuencia admitir‡ tambiŽn una infinidad de logigramas. Por el contrario, la tabla de verdad y la tabla de Karnaugh son œnicas para una funci—n l—gica dada. De entre esta infinidad de expresiones algebraicas equivalentes se puede encontrar formatos que sean de particular interŽs por ser aplicables a cualquier funci—n l—gica. Estos formatos o expresiones generalizables de las funciones l—gicas se denominan formas can—nicas. Sin embargo, antes de presentar las formas can—nicas de una funci—n l—gica es conveniente formalizar el concepto de minterm, el de maxterm y presentar el teorema de Shannon.
2.3.1 Minterms y Maxterms Sea f una funci—n l—gica de n variables; denominamos producto m’nimo o minterm de dicha funci—n al monomio formado por el producto l—gico de todas sus variables complementadas o no. Con n variables se pueden construir 2n minterms diferentes. Usaremos la notaci—n mi (con 0 £ i £ 2 n - 1 ) para referirnos al minterm i-Žsimo de una funci—n. Identificamos cada minterm mediante un sub’ndice nœmerico que corresponde a la combinaci—n binaria resultante de sustituir por "0" las variables complementadas y por "1" las que no lo est‡n. Otra forma de expresar lo mismo es diciendo que un minterm se identifica mediante un sub’ndice correspondiente al valor decimal de la combinaci—n de entradas que hace que el minterm en cuesti—n tome el valor "1". Veamos esto en detalle para una funci—n l—gica de tres variables. La generalizaci—n a n variables es inmediata.
M int erm
Sub. binario
Sub. decimal
x2 x1 x0
m000
m0
x2 x1 x0
m001
m1
x2 x1 x0
m010
m2
x2 x1 x0
m011
m3
x2 x1 x0
m100
m4
x2 x1 x0
m101
m5
x2 x1 x0
m110
m6
x2 x1 x0
m111
m7
© los autores, 1998; © Edicions UPC, 1998.
49
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Sea f una funci—n l—gica de n variables; denominamos suma m‡xima o maxterm de dicha funci—n al polinomio formado por la suma l—gica de todas sus variables complementadas o no. Con n variables se pueden construir 2n maxterms diferentes. Usaremos la notaci—n M i para referirnos al maxterm iŽsimo de una funci—n. Cada maxterm se identifica mediante un sub’ndice correspondiente a la combinaci—n binaria resultante de sustituir por unos las variables que est‡n complementadas y por ceros las que no lo est‡n. Otra forma de expresar lo mismo es diciendo que un maxterm se identifica mediante un d’gito correspondiente al valor decimal de la combinaci—n binaria de entradas que hace que el maxterm en cuesti—n tome el valor "0". Vamos a verlo en detalle para una funci—n l—gica de tres variables. La generalizaci—n a n variables es, otra vez, inmediata.
Maxterm
Sub. binario
Sub. decimal
x2 + x1 + x 0
M 111
M 7
x2 + x1 + x 0
M 110
M 6
x2 + x1 + x 0
M 101
M 5
x2 + x1 + x 0
M 100
M 4
x2 + x1 + x 0
M 011
M 3
x2 + x1 + x 0
M 010
M 2
x2 + x1 + x 0
M 001
M 1
x2 + x1 + x 0
M 000
M 0
2.3.2 Teorema de Shannon Si f es una funci—n l—gica de n variables, entonces es posible realizar la extracci—n de una de las variables, con lo que se generan dos funciones residuales de n-1 variables de acuerdo con la siguiente expresi—n f ( x n-1 , x n-2 ,..., x1 , x 0 ) = x n-1 f (0, x n-2 ,..., x1 , x 0 ) + x n-1 f (1, x n-2 ,..., x1 , x 0 )
Una formulaci—n dual del teorema puede hacerse mediante esta otra expresi—n f ( x n-1 , x n-2 ,..., x1 , x 0 ) = [ x n-1 + f (1, x n-2 ,..., x1 , x 0 )] × [ x n-1 + f (0, x n-2 ,..., x1 , x 0 )]
© los autores, 1998; © Edicions UPC, 1998.
50
Dise–o digital
_________________________________________________________________________________
La demostraci—n del teorema es inmediata a travŽs de la tabla de verdad. Para ello s—lo es necesario evaluar los tŽrminos a derecha e izquierda de la igualdad para cada uno de los dos valores posibles de la variable extra’da: xn-1=0 y xn-1=1.
Ejemplo 2.8 Extraer la variable c de la funci—n l—gica f ( a, b, c, d ) = ( a Å c ) + ac + bcd + abcd . De acuerdo con el teorema de Shannon es necesario obtener las funciones resultantes de particularizar c a los valores "1" y "0" en la funci—n f(a,b,c,d) inicial. f ( a, b,0, d ) = ( a Å 0) + a + bd = a + a + bd = a + bd f ( a, b,1, d ) = ( a Å 1) + ab d = a + ab d = a
Luego, recurriendo a la primera expresi—n del teorema f ( a, b, c, d ) = cf ( a, b,0, d ) + cf ( a, b,1, d ) = c ( a + bd ) + c ( a )
O bien, recurriendo a la segunda expresi—n f ( a, b, c, d ) = [ c + f ( a, b,1, d )] × [ c + f ( a, b,0, d )] = [ c + ( a )] × [ c + ( a + bd )]
__________________________________________________________________________________
2.3.3 Formas can—nicas Cualquier funci—n l—gica puede expresarse como suma l—gica de minterms. Asimismo, cualquier funci—n l—gica puede tambiŽn expresarse como producto l—gico de maxterms. Estas expresiones algebraicas se denominan formas can—nicas disyuntiva y conjuntiva respectivamente. La demostraci—n de la existencia de estas dos formas can—nicas es sencilla si bien un tanto farragosa en lo que respecta a la notaci—n. Se basa en la aplicaci—n reiterada del teorema de Shannon: partiendo de la primera de las expresiones propuestas por el teorema para una funci—n f de n variables y aplic‡ndola de nuevo a cada uno de los sumandos del tŽrmino de la derecha nos queda f (0, x n-2 ,..., x 0 ) = x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-2 f (0,1, x n-3 ,..., x 0 ) f (1, x n-2 ,..., x 0 ) = x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-2 f (1,1, x n-3 ,..., x 0 )
Y por tanto extraemos 2 de las n variables de la funci—n. f ( x n-1 , x n-2 ,..., x 0 ) = x n-1 x n-2 f (0,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (0,1, x n-3 ,..., x 0 ) +
+ x n-1 x n-2 f (1,0, x n-3 ,..., x 0 ) + x n-1 x n-2 f (1,1, x n-3 ,..., x 0 )
© los autores, 1998; © Edicions UPC, 1998.
51 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
Iterando la aplicaci—n del teorema de Shannon a las funciones residuales hasta extraer todas las variables, nos queda finalmente f ( x n-1 , x n-2 ,.., x1 , x 0 ) = x n-1 x n-2 .. x1 x 0 f (0,0,..,0,0) + x n-1 x n-2 .. x1 x 0 f (0,0,..,0,1) + n
2 -1
+ x n-1 x n-2 .. x1 x 0 f (0,0,...,1,0)+... + x n-1 x n-2 ... x1 x 0 f (1,1,..,1,1) =
å mi f (i )
i =0
Expresi—n que identificamos como la forma can—nica disyuntiva, es decir, en suma de minterms, donde las f(i) son las funciones residuales tras la extracci—n de todas las variables, es decir, funciones constantes, que solo pueden tomar dos valores "0" o "1". La existencia de la forma can—nica conjuntiva puede demostrarse a partir de la segunda expresi—n del teorema de Shannon. Su expresi—n compacta es n 2 -1
f ( x n-1 , x n-2 ,.., x1 , x 0 ) =
Õ ( M i + f (i )) i =0
Veamos a travŽs de un ejemplo c—mo obtener las formas can—nicas de una funci—n l—gica.
Ejemplo 2.9
Pretendemos obtener las formas can—nicas de la funci—n y = a + bc. Siguiendo paso a paso la demostraci—n anterior se llega a la siguiente expresi—n y = f ( a, b, c ) = abcf (0,0,0) + abcf (0,0,1) + abcf (0,1,0) + abcf (0,1,1) +
+ abcf (1,0,0) + abcf (1,0,1) + abcf (1,1,0) + abcf (1,1,1)
A partir de la tabla de verdad podemos evaluar el valor de la funci—n para cada combinaci—n de las variables de entrada
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
y 0 1 0 0 1 1 1 1
© los autores, 1998; © Edicions UPC, 1998.
52
Dise–o digital _________________________________________________________________________________
Sustituyendo los valores de la funci—n en la expresi—n anterior nos queda y = abc + ab c + abc + abc + abc = m1 + m4 + m5 + m6 + m7
Una notaci—n alternativa m‡s compacta es y =
å m(1,4,5,6,7) 3
donde el sub’ndice del sumatorio indica el nœmero de variables de la funci—n. Si nos fijamos en la expresi—n de la funci—n como suma de minterms (en ocasiones la denominaremos SoP) y, simult‡neamente en la tabla de verdad, vemos que aparecen en la expresi—n los minterms cuyo sub’ndice corresponde a combinaciones de las variables de entrada para las cuales la funci—n vale "1" (que hemos destacado sombre‡ndolas en la tabla de verdad). Para obtener la expresi—n de la funci—n como producto de maxterms el procedimiento es el siguiente: Si la funci—n y se escribe como y =
å m(1,4,5,6,7) 3
Entonces la expresi—n como suma de minterms de la funci—n complementada es y =
å m(0,2,3) 3
Si negamos ambos lados de esta œltima igualdad y operamos y = y =
å m(0,2,3) = m0 + m2 + m3 = ab c + abc + abc = 3
= ( a + b + c )( a + b + c )( a + b + c ) = M 0 M 2 M 3 = Õ M ( 0,2,3) 3
Es decir, los tŽrminos presentes en la expresi—n de la funci—n como producto de maxterms (en ocasiones denominada PoS) son M0, M 2, y M3, cuyos sub’ndices son precisamente los que no aparec’an en la forma can—nica en suma de minterms: a partir de la tabla de verdad se observa que los maxterms que aparecen en la forma can—nica conjuntiva son aquellos cuyo sub’ndice corresponde a las combinaciones de entrada que hacen "0" la funci—n. Esto es as’ en virtud de las distintas notaciones utilizadas para minterms y maxterms. Esta notaci—n, sin embargo, no es universal: en algunos textos se utilizan otros procedimientos para asignar sub’ndices a los minterms y a los maxterms, en cuyo caso el mŽtodo de paso de una a otra forma can—nica es menos inmediato que el aqu’ descrito. __________________________________________________________________________________
© los autores, 1998; © Edicions UPC, 1998.
53 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
Ejercicio 2.7
Obtener la forma can—nica alternativa de las funciones siguientes a)
F ( x , y, z ) =
å m(1,3,7)
b)
F ( x , y, z ) =
3
Õ M (0,3,6,7) 3
__________________________________________________________________________________
2.3.4 Grupo completo de funciones
Un conjunto de funciones l—gicas es completo cuando cualquier funci—n l—gica se puede expresar utilizando œnicamente las funciones del grupo. De lo visto en el apartado anterior se deduce que el conjunto formado por las funciones NOT, AND y OR es un grupo completo de funciones. En realidad las formas can—nicas son formas de escribir cualquier funci—n utilizando s—lo funciones AND, OR y NOT. Es de destacar el hecho que las funciones NAND y NOR constituyen, cada una de ellas por separado, un grupo completo de funciones. Esto se traduce en que cualquier funci—n l—gica puede expresarse utilizando œnicamente o bien funciones NAND o bien funciones NOR.
Ejemplo 2.10
Vamos a demostrar que la funci—n NAND constituye un grupo completo. Una forma de comprobarlo es viendo que utilizando œnicamente funciones NAND podemos realizar las funciones NOT, AND y OR. Al ser el grupo formado por estas tres funciones un grupo completo, quedar‡ demostrada la completitud de la funci—n NAND. Comencemos viendo que es posible obtener la funci—n NOT utilizando s—lo funciones NAND
x = x × x
Þ
Una vez vista la realizaci—n de la funci—n NOT mediante funciones NAND, resulta inmediato realizar una funci—n AND utilizando funciones NAND x1 x 2 = x 1 × x 2 = x 1 × x2 × x1 × x 2
Þ
Por œltimo, para realizar la funci—n OR podemos aplicar las leyes de De Morgan
© los autores, 1998; © Edicions UPC, 1998.
54
Dise–o digital _________________________________________________________________________________
x1 + x 2 = x1 × x 2 = x1 × x1 × x 2 × x2
Þ
__________________________________________________________________________________
Ejercicio 2.8
Demostrar que la funci—n NOR consituye, por s’ sola, un grupo completo. __________________________________________________________________________________
2.3.5 Realizaci—n de logigramas
Mediante algunos ejemplos vamos a presentar c—mo son los logigramas asociados a las expresiones algebraicas can—nicas de una funci—n l—gica.
Ejemplo 2.11
Dibujar el logigrama de la funci—n del ejemplo 2.7 partiendo de su expresi—n como SoP. A continuaci—n, realizar el logigrama s—lo mediante funciones NAND. De forma dual, proponer el logigrama correspondiente al producto de maxterms, y una realizaci—n solo con funciones NOR. La expresi—n de la funci—n en SoP es y = m1 + m4 + m5 + m6 + m7 = abc + ab c + abc + abc + abc , por lo que su implementaci—n utilizando funciones AND, OR y NOT es inmediata a
b
c
m1 m4 m5 m6 m 7
© los autores, 1998; © Edicions UPC, 1998.
y
55 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
Para realizar una implementaci—n usando s—lo funciones NAND el procedimiento es el siguiente: supongamos que sustituimos las puertas AND directamente por puertas NAND; para que el resultado global permanezca inalterado habr‡ que negar cada entrada de la puerta OR. Recordando las leyes de De Morgan, una puerta OR de variables negadas es equivalente a una puerta NAND de las mismas variables sin negar, es decir
Õ ai = å ai i
i
Luego la implementaci—n mediante puertas NAND se obtiene simplemente sustituyendo cada puerta OR y cada puerta AND por una NAND, sin que sea necesario alterar la topolog’a o las conexiones del logigrama original.
a
b
c
m1 m4 m5
y
m6 m7
Partamos ahora de la expresi—n algebraica en producto de maxterms y = M 0 × M 2 × M 3 = ( a + b + c )( a + b + c )( a + b + c )
La implementaci—n con puertas OR, AND y NOT requerida es, otra vez, inmediata a partir de la expresi—n algebraica
© los autores, 1998; © Edicions UPC, 1998.
56
Dise–o digital _________________________________________________________________________________
a
b
c
M0 M 2
y
M3
Para pasar a una implementaci—n s—lo con NOR el procedimiento es dual al anterior. Si sustituimos las puertas OR directamente por NOR, es evidente que hay que negar cada entrada de la puerta AND. En consecuencia, la puerta AND final tendr‡ todas sus entradas negadas. Recordando las leyes de De Morgan, una funci—n AND de variables negadas es equivalente a la funci—n NOR de las mismas variables sin negar. Luego el resultado ser‡
a
b
c
M0 M 2
y
M3
__________________________________________________________________________________
La primera conclusi—n que podemos extraer del ejemplo 2.11 es que las formas can—nicas conducen de una forma inmediata a logigramas con una estructura regular. As’ la forma can—nica en suma de minterms conduce a logigramas constituidos por dos etapas de puertas (una etapa de puertas AND y otra de puertas OR en el sentido entrada-salida), siendo las entradas de las puertas AND de la primera etapa las variables de la funci—n, directas o negadas (mediante puertas NOT). Este resultado es dual para la forma can—nica en producto de sumas.
© los autores, 1998; © Edicions UPC, 1998.
57 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
Adem‡s, un resultado complementario es que las formas can—nicas conducen tambiŽn de forma natural a la realizaci—n de cualquier funci—n l—gica mediante logigramas hechos œnicamente con dos etapas de puertas NAND (caso de partir de la forma can—nica SoP) o con dos etapas de puertas NOR (caso de partir de la forma can—nica PoS).
Ejercicio 2.9
Obtenga las formas can—nicas en SoP y PoS de la funci—n y ( a, b, c ) = abc + bc + abc . Obtener tambiŽn los logigramas de la funci—n en forma de redes de dos niveles de puertas AND-OR, ORAND, NAND y NOR. __________________________________________________________________________________
2.4 Minimizaci—n de funciones l—gicas
Minimizar una funci—n l—gica es encontrar una expresi—n algebraica que la describa y que incluya el m’nimo nœmero de variables y/o operaciones. Existe un interŽs evidente en poder minimizar funciones puesto que, en principio, una funci—n l—gica especificada mediante una expresi—n algebraica sencilla podr‡ implementarse mediante un logigrama (cicuito) m‡s sencillo, y por tanto de menor coste. Hemos visto en el apartado 2.3 que es posible simplificar la expresi—n algebraica de una funci—n l—gica mediante la aplicaci—n "adecuada" de las propiedades del ‡lgebra de Boole. Sin embargo dicho procedimiento tiene algunos inconvenientes: 1- No es sistem‡tico, dependiendo el resultado de la habilidad de quien lo utiliza. 2- No siempre es f‡cil determinar si se ha obtenido la expresi—n m‡s simplificada posible. 3- A diferencia de las formas can—nicas, la soluci—n no suele tener un formato regular, por lo que conduce a logigramas de estructura impredecible a priori. En este apartado se presenta un mŽtodo sistem‡tico, denominado mŽtodo de Karnaugh, que permite obtener la expresi—n m’nima de una funci—n l—gica manteniendo el formato de suma de productos y/o de producto de sumas.
2.4.1 Consideraciones previas
Recordemos que, al representar una funci—n mediante tabla de Karnaugh, en cada casilla se consigna el valor de la funci—n para una cierta combinaci—n de valores de las variables de entrada. La propiedad fundamental de la tabla de Karnaugh es que dos casillas adyacentes corresponden a combinaciones de las variables de entrada que difieren en un solo bit. Por otra parte, recordar‡ el lector que las combinaciones de entrada que dan lugar a "1" en la tabla de verdad indican los minterms presentes en la expresi—n can—nica de la funci—n.
© los autores, 1998; © Edicions UPC, 1998.
58
Diseño digital ________________________________________________________________________________
Consideremos a efectos de referencia la función y(a,b,c,d) siguiente y =
∑ m (0,2,4,6,9,13) 4
Cuya tabla de Karnaugh será
ab\cd
00 01
11 10
00
1
0
0
1
01
1
0
0
1
11
0
1
0
0
10
0
1
0
0
Cada "1" de la tabla corresponde a un minterm presente en la expresión canónica de la función como suma de minterms. Así por ejemplo el "1" correspondiente a la combinación de entrada (a,b,c,d)=(0,0,0,0) revela la presencia del minterm 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ón canónica de la función que difieren entre sí en una única variable; así en la columna de la izquierda los dos "1" adyacentes corresponden a los minterms m 0 = abc d y m 4 = abcd respectivamente, que difieren en el valor de la variable b. En general, si en la expresión como suma de minterms de una función lógica aparecen dos minterms que sólo difieren en una variable xi, es claro que aplicando distributividad nos quedarán expresiones del tipo siguiente x1 x 2 x 3.... x i−1 x i +1 ..... x n ( x i + xi )
El contenido del paréntesis es igual a la unidad y por tanto puede eliminarse. Es decir, la presencia de dos "1" adyacentes en la tabla de Karnaugh conduce a la eliminación de una variable. Este resultado es generalizable para 4, 8 y en general 2n casillas adyacentes. Vamos a clarificar esto mediante el análisis completo y detallado de la función anterior.
© los autores, 1998; © Edicions UPC, 1998.
59
Fundamentos abstractos del dise–o digital
_________________________________________________________________________________
Ejemplo 2.12 En la funci—n y(a,b,c,d) referida en el apartado 2.4.1 tenemos dos grupos de casillas adyacentes, uno formado por los "1" correspondientes a los minterms m 9 y m13 y otro formado por los correspondientes a los minterms m0 , m 2 , m 4 , y m 6 (recordemos que las casillas de la columna de la derecha se defin’an como l—gicamente adyacentes a las casillas de la columna de la izquierda, y que las casillas de la fila superior estaban definidas como l—gicamente adyacentes a las casillas de la fila inferior). Si observamos el grupo formado por m9 y m13 tenemos m9 = abcd m13 = abcd
m9 + m13 = abcd + abcd = acd ( b + b ) = acd
De la agrupaci—n de los dos minterms hemos eliminado una variable. Si analizamos ahora la agrupaci—n restante tenemos
m0 = abcd m2 = abcd
m0 + m2 = abd
m4 = abcd
m4 + m6 = abd
m6 = abcd Los dos tŽrminos resultantes tambiŽn difieren entre s’ en una sola variable (b) y, por tanto, al sumarlos tambiŽn se eliminar‡ esa variable m0 + m2 + m4 + m6 = ad
Podemos concluir diciendo que una expresi—n simplificada en forma (no can—nica) de suma de productos de la funci—n y(a,b,c,d) es y = ad + acd . __________________________________________________________________________________
2.4.2 MŽtodo de Karnaugh A continuaci—n, como recapitulaci—n y sistematizaci—n de lo visto hasta ahora, se ofrece, esquematizado, el procedimiento de minimizaci—n 1- Cada celda en un mapa de Karnaugh correspondiente a una funci—n de n variables tiene n celdas l—gicamente adyacentes, con las cuales difiere en el valor de una variable.
© los autores, 1998; © Edicions UPC, 1998.
60
Diseño digital ________________________________________________________________________________
2- La reunión (suma) de 2 p celdas lógicamente adyacentes entre sí que contienen "1" elimina p variables en la expresión de la función. 3- Al reunir celdas en un mapa de Karnaugh es aconsejable comenzar por las que presentan menor número de "1" en celdas adyacentes. 4- Hay que formar el menor número de grupos que recubra todos los "1" de la función. Cuantos menos grupos tengamos menos términos quedarán en la expresión final. 5- Es necesario agrupar tantos "1" como sea posible en cada grupo; recuérdese que grupos mayores eliminan mayor número de variables.
Ejemplo 2.13
Simplificar, utilizando el método de Karnaugh, la función siguiente f ( a, b, c , d ) =
∑ m (0,1,3,8,9,11,13,14) 4
Construyamos la tabla de Karnaugh y hagamos las reuniones de todos los "1" de la función
cd\ab
00 01
11 10
00
1
0
0
1
01
1
0
1
1
11
1
0
0
1
10
0
0
1
0
abcd
bc
bd acd
Para identificar las variables que aparecen en el producto asociado a cada grupo de "1", debemos fijarnos en cuáles de ellas no cambian su valor en todas las celdas del grupo. La expresión mínima como suma de productos nos queda f = abcd + acd + bc + bd
_________________________________________________________________________________
© los autores, 1998; © Edicions UPC, 1998.
61 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
Ejercicio 2.10
Obtener la expresi—n m’nima en suma de productos de las funciones siguientes a) F ( x , y, z , w ) = Õ M (0,1,2,3,4,10,11) 4
b) F ( a, b, c, d ) = å m (1,2,3,4,6,7,10,15) 4
__________________________________________________________________________________
2.4.3 Minimizaci—n en forma de producto de sumas
TambiŽn es posible obtener la expresi—n simplificada de una funci—n l—gica como producto de sumas. Podriamos usar un mŽtodo de Karnaugh dual, pero el procedimiento m‡s c—modo es el siguiente: Si los "1" de la tabla de Karnaugh representan los minterms de la funci—n, entonces los "0" representan los minterms de la funci—n negada. Aplicando el mŽtodo de minimizaci—n a los "0" en lugar de a los "1", se obtendr‡ la expresi—n m’nima en suma de productos de la funci—n negada. Complementando el resultado y aplicando las leyes de De Morgan, obtendremos la expresi—n m’nima como producto de sumas.
Ejemplo 2.14
Vamos a minimizar la funci—n del ejemplo 2.13 en forma de producto de sumas. Para ello comencemos construyendo la tabla de Karnaugh y hagamos las reuniones de todos los "0" de la funci—n en grupos de 2 p
cd\ab
00
01
11
10
00
1
0
0
1
01
1
0
1
1
11
1
0
0
1
10
0
0
1
0
bcd
bcd bcd
ab
Luego la expresi—n m’nima de la funci—n complementaria como suma de productos es
© los autores, 1998; © Edicions UPC, 1998.
62
Dise–o digital _________________________________________________________________________________
f = bcd + bcd + b cd + ab
Complementando ambos lados de la igualdad y aplicando las leyes de De Morgan, nos queda la expresi—n m’nima requerida f = f = ( b + c + d )( b + c + d )( b + c + d )( a + b )
__________________________________________________________________________________
Ejercicio 2.11
Obtener la expresi—n m’nima como producto de sumas de las funciones propuestas en el ejercicio 2.10 __________________________________________________________________________________
2.4.4 Minimizaci—n de funciones incompletamente especificadas
El mŽtodo de Karnaugh tambiŽn se puede aplicar en el caso de funciones incompletamente especificadas. En esencia se trata de que, para las combinaciones de entrada para las cuales la funci—n no est‡ especificada, supondremos que la funci—n toma el valor, "0" o "1", que sea m‡s conveniente para obtener la m‡xima simplificaci—n.
Ejemplo 2.15
Sea la funci—n f ( a, b, c, d ) =
å m(2,7,8,10,12,13,15) + å m(5,11,14) 4
x
Esta notaci—n expresa que para las combinaciones de las variables de entrada asociadas a los minterms 5,11, y 14 la funci—n no est‡ especificada. La minimizaci—n de esta funci—n en forma de suma de productos ser’a la correspondiente a la tabla de Karnaugh de la figura 2.5.a, con lo que resulta la expresi—n f = acd + b cd + bd . N—tese que para obtener esta simplificaci—n se ha asignado el valor "1" a uno de los tŽrminos no especificados (concretamente el correpondiente a m 5) y el valor "0" a los otros dos. Si quisiŽramos obtener la expresi—n m’nima como producto de sumas habr’a que agrupar los ceros de la funci—n tomando otra vez para las combinaciones no especificadas el valor m‡s conveniente para obtener la m‡xima simplificaci—n.
© los autores, 1998; © Edicions UPC, 1998.
63 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
a)
b)
ab\cd 00
01
00
0
0
01
0
X
11
1
1
10
1
0
11 0
ab\cd 00 10
01
100
0
0
001
0
X
1
X11
1
1
X
110
1
0
1
11
1
Figura 2.5 Mapas de Karnaugh del ejemplo 2.15
De acuerdo con la figura 2.5.b, la expresi—n m’nima como suma de productos de la funci—n negada y la expresi—n final como producto de sumas ser‡n f = abd + ac + b d f = f = ( a + b + d )( a + c )( b + d )
N—tese que en este œltimo caso se ha efectuado una asignaci—n de valores para los tŽrminos inespecificados diferente de la realizada para obtener una suma de productos m’nima, concretamente "1" para el correspondiente a m 14 y "0" para los otros dos. Ejercicio 2.12
Obtener las expresiones m’nimas como suma de productos y como producto de sumas de la funci—n incompletamente especificada siguiente: F =
å m(0,2,3,6,7) + å m(5,8,10,11,15) 4
x
__________________________________________________________________________________
2.4.5 Limitaciones del mŽtodo de Karnaugh
En este texto no hemos intentado presentar soluciones universales al problema de la minimizaci—n de funciones l—gicas. En concreto, el mŽtodo presentado deja dos lagunas importantes: 1- ÀquŽ hacer con funciones de muchas variables? 2- ÀquŽ hacer cuando se presentan varias funciones l—gicas de las mismas variables (multifunciones) y lo que interesa minimizar es el nœmero global de tŽrminos presentes en sus expresiones algebraicas?
© los autores, 1998; © Edicions UPC, 1998.
64
Dise–o digital _________________________________________________________________________________
Respecto al primer problema hay que indicar que existen herramientas inform‡ticas de ayuda al dise–o digital que permiten resolverlo con comodidad: es evidente que el mŽtodo de simplificaci—n de Karnaugh pierde su manejabilidad cuando el nœmero de variables de la funci—n es igual o superior a seis, pero tambiŽn es evidente que el algoritmo que se aplica no depende de este nœmero, siendo posible implementarlo inform‡ticamente. Admitiendo como entrada la tabla de verdad, una expresi—n algebraica, e incluso en algunos casos un logigrama de la funci—n, estas herramientas inform‡ticas proporcionan una expresi—n simplificada de la funci—n. Esta expresi—n suele ser m’nima cuando el nœmero de variables es inferior a una cierta cota, y muy simplificada (pero no m’nima) cuando el nœmero de variables supera esta, caso en el que suelen emplearse algoritmos no estrictamente de minimizaci—n. En cuanto a la simplificaci—n de multifunciones, no es evidente que se obtenga un resultado —ptimo (con el menor nœmero global de tŽrminos) a base de minimizar cada funci—n por separado. Veamos esto mediante un ejemplo.
Ejemplo 2.16
Implementar las funciones F 1 (a,b,c) y F2 (a,b,c) mediante una red AND-OR de dos niveles m’nima, es decir con el menor nœmero total posible de puertas. F 1 ( a, b, c ) =
å m(0,1,2,3,7)
F 2 ( a, b, c ) =
3
å m(0,2,7) 3
Una opci—n es minimizar cada funci—n por separado, con lo que se obtienen los mapas y el logigrama de la figura 2.6.
a\bc
00
01
11
10
0
1
1
1
1
1
0
0
1
0
F 1 = a + bc
00
01
11
10
0
1
0
0
1
1
0
0
1
0
F2 = abc + ac
a b c
F1
a b c a c
F2
Figura 2.6 Primera soluci—n del ejemplo 2.16
Observando el resultado obtenido vemos que es posible realizar las funciones utilizando una puerta menos si se aprovecha el tŽrmino comœn m 7, tal como indica la figura 2.7, con lo que se llega al resultado, esta vez s’, m’nimo.
© los autores, 1998; © Edicions UPC, 1998.
65 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
a\bc
00
0
1
1
0
01 1 0
11 1 1
00
10 1 0
F 1 = a + abc
0
1
1
0
01 0
11 0
10
a
1
a b
c
0
1
0
F2 = abc + ac
a c
F1 F2
Figura 2.7 Segunda soluci—n del ejemplo 2.16
__________________________________________________________________________________ A la luz de lo mostrado en el ejemplo 2.16, el mŽtodo de simplificaci—n de multifunciones deber’a considerar el reutilizar puertas en m‡s de una funci—n o, lo que es lo mismo, buscar tŽrminos o grupos comunes a diversas funciones. El mŽtodo de Quine-McCluskey, que no presentaremos en este texto, es un mŽtodo tabular basado en la misma idea que el de Karnaugh, es decir, en simplificar expresiones del tipo suma de productos o producto de sumas, aplicando la equivalencia booleana a( b + b ) = a o su dual, a + ( bb ) = a , que permite minimizar multifunciones. Ahora bien, incluso para pocas variables, en este mŽtodo se pierden las "facilidades visuales" que posee el de Karnaugh, ya que es engorroso de usar, pero su implementaci—n inform‡tica es directa y sencilla.
2.5 Cuestiones y problemas
Cuestiones
C2.1 ÀCu‡ntas funciones incompletamente especificadas distintas de n variables pueden encontrarse? C2.2 Plantee las diferencias entre suma l—gica y suma aritmŽtica. ÀCon quŽ funciones l—gicas puede identificarse cada una de ellas? C2.3 Escriba las definiciones de minterm y maxterm. C.2.4 ÀQuŽ importancia tiene el orden de las variables en la notaci—n de minterms y maxterms? Expl’quelo con un ejemplo. C2.5 Explore en detalle las consecuencias de utilizar la misma notaci—n, referente a los sub’ndices, para los minterms que para los maxterms, y no la dual, tal como se comenta en el apartado 2.3.1.
© los autores, 1998; © Edicions UPC, 1998.
66
Dise–o digital _________________________________________________________________________________
C2.6 ÀQuŽ ventajas de orden pr‡ctico se derivan de la existencia de grupos completos de funciones? C2.7 ÀTiene alguna importancia el orden de las variables en un mapa de Karnaugh al aplicar el mŽtodo de minimizaci—n? C2.8 ConsidŽrese la posibilidad de usar distintos c—digos de Gray para ordenar las variables en un mapa de Karnaugh. ÀAfectar’a al mŽtodo de simplificaci—n y/o al resultado? C2.9 Escriba la expresi—n algebraica como suma de minterms y como producto de maxterms de las funciones XOR de dos y tres variables. Escriba a continuaci—n la expresi—n obtenida al aplicar el mŽtodo de simplificaci—n de Karnaugh, y compare los resultados. C2.10 ÀPor quŽ, al simplificar una funci—n mediante el mŽtodo de Karnaugh, los "1" del mapa de Karnaugh deben reunirse en grupos de 2 p? C2.11 ÀEs œnica la expresi—n m’nima como suma de productos asociada a una funci—n l—gica? Ilustre su respuesta con la funci—n: f ( x , y, z, w ) =
å m(3,5,6,7,9,11,13) 4
C2.12 Enuncie de forma sistem‡tica el mŽtodo dual de minimizaci—n de Karnaugh para obtener directamente expresiones en forma de producto de sumas. C2.13 Piense en c—mo debe aplicarse el mŽtodo de simplificaci—n de Karnaugh para funciones de 5 variables. Apl’quelo a la funci—n siguiente f ( a, b, c, d , e ) =
å m(1,2,4,6,10,11,12,18,20,21,22,28,29,30,31) 5
Problemas
P2.1 Realice las funciones l—gicas NOR y NAND de dos variables utilizando œnicamente un m—dulo como el indicado a continuaci—n. ÀSer’a posible realizar tambiŽn la funci—n XOR de dos variables solamente con este m—dulo?
© los autores, 1998; © Edicions UPC, 1998.
67 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
P2.2 La composici—n de funciones l—gicas es otra funci—n l—gica. Si consideramos el caso de funciones l—gicas incompletamente especificadas, determine c—mo ser‡ la funci—n f tal que f ( x n-1 ,..., x1 , x 0 ) = g[ h ( x n-1 ,..., x1 , x 0 )]
considerando los siguientes casos: a) h est‡ especificada incompletamente y g completamente. b) h est‡ especificada completamente y g incompletamente. c) h y g est‡n especificadas incompletamente. Se sugiere analizar primero algœn caso con funciones concretas y despuŽs generalizar el resultado. P2.3 H‡llense las expresiones algebraicas de las funciones y 1 e y 2. Escrib‡nse tambiŽn sus tablas de verdad y sus mapas de Karnaugh. a)
a b c
y
d
b
b)
a b c y d
b
P2.4 Demostrar que si a, b, c
, entonces
Î {0,1}
a) ab = ac Þ / b = c ì ab = ac ü b) í ý Þ b = c î a + b = a + c þ
c) a Å b = c Û a Å c = b Û b Å c = a
© los autores, 1998; © Edicions UPC, 1998.
2
1
68
Dise–o digital _________________________________________________________________________________
P2.5 Obtenga una expresi—n algebraica y una tabla de verdad de cada una de las funciones realizadas por el logigrama siguiente
a f1 b f2
P2.6 Demuestre las igualdades siguientes: aÅb= a Åb a( b Å c ) = ab Å ac
P2.7 Cualquier funci—n l—gica de dos variables f(x,y) puede expresarse en funci—n de una combinaci—n de cuatro par‡metros ai Î {0,1} , de la siguiente manera f ( x , y ) = a0 xy + a1 xy + a2 xy + a3 xy
que corresponde a la forma can—nica en suma de productos. Demuestre que tambiŽn es posible escribir f(x,y) en funci—n de otros cuatro par‡metros bi Î {0,1} , as’ f ( x , y ) = b0 Å b1 y Å b2 x Å b3 xy
P2.8 Una funci—n l—gica f es completa si cualquier otra funci—n l—gica g puede ser expresada œnicamente en tŽrminos de f . Suponiendo que es posible utilizar como entradas dos variables l—gicas y los valores constantes "0" y "1", Àcu‡les de las 16 funciones diferentes de dos variables son por s’ mismas completas? Justificar la respuesta. Util’zese como dato conocido (que no hace falta demostrar) que las funciones NOR y NAND son completas. P2.13 Considere el logigrama de la figura, respecto del cual se pide: a) Obtener la tabla de verdad de la funci—n f(a,b,c,d). b) Expresar f mediante las formas can—nicas SoP y PoS.
© los autores, 1998; © Edicions UPC, 1998.
69 _________________________________________________________________________________
Fundamentos abstractos del dise–o digital
c) Realizar f utilizando el menor nœmero posible de puertas NOR de tres entradas. d) Repetir el apartado anterior utilitzando puertas NAND de tres entradas.
a c a
d
f
c
d b
d
P2.9 Dada la funci—n l—gica f ( x , y, z ) = x × y + x × y + y × z , se pide implementarla a) Mediante puertas AND, OR y NOT. b) Mediante puertas OR y NOT. c) Mediante puertas AND y NOT. d) Mediante puertas AND y XOR. P2.10 Simplifique la funci—n f = f 1 f 2 + f 3 utilizando el mŽtodo de Karnaugh. f 1 =
å m(1,2,3,5,7)
f 2 =
3
å m(0,1,5)
f 3 =
Õ M (2,3,5,7)
3
3
P2.11 Dise–e un logigrama que corresponda a un conversor de c—digo binario de 3 bits a Gray de 3 bits. ÀEs posible hacerlo utilizando solamente puertas XOR de 2 entradas? P2.12 Dise–e un sistema combinacional como el especificado utilizando una red de puertas {AND, OR, NOT} de dos etapas. (Nota): en este caso el s’mbolo S indica suma aritmŽtica.
X
3
SISTEMA A DISE AR
2
Z
X Î{0,1} Z Î{0,1}
© los autores, 1998; © Edicions UPC, 1998.
3
2
2
Z =
å X i
i=0
70
Dise–o digital _________________________________________________________________________________
P2.13 El objetivo es dise–ar un comparador y detector de igualdad que opere con nœmeros codificados en binario de dos bits, segœn la siguiente especificaci—n:
2
a
SISTEMA A DISE„AR
2
b
ì1 si a = b î0 si a ¹ b
z0 = í
3
ì1 si a > b î0 si a £ b
z1 = í
z
ì1 si a < b î0 si a ³ b
z2 = í
Se pide realizar una implementaci—n m’nima del comparador utilizando œnicamente puertas NOR. Nota: ObsŽrvese que las funciones son mutuamente excluyentes y que es posible obtener cualquiera de ellas a partir de las otras dos. P2.14 Considere la funci—n F(h8,h4,h2,h1) realizada mediante el logigrama siguiente h2 h1
F
h8
h4
donde las entradas corresponden a las horas de un reloj codificadas en binario: F vale "1" para ciertas combinaciones de entrada (horas). Se pide realizar un logigrama m’nimo que dŽ el valor l—gico "1" para las mismas combinaciones de entrada v‡lidas que el anterior. P2.15 Simplifique la funci—n f = f 1 + f 2 f 3 utilizando el mŽtodo de Karnaugh. f 1 =
å m(1,7) + å m(6) 3
f 2 =
å m(3,5,6) 3
x
f 3 =
Õ M (5,6,7) 3
P2.16 Implemente la funci—n f(a,b,c) especificada por la siguiente evoluci—n temporal de los valores de la salida en funci—n de los valores de las variables de entrada, donde el nivel alto corresponde al valor l—gico "1" y el bajo al valor "0". a) Utilizando solamente puertas NAND.
© los autores, 1998; © Edicions UPC, 1998.
________________________________________________________________________________71
Fundamentos abstractos del diseño digital
b) Utilizando solamente puertas XOR de dos entradas.
a b c f
P2.17 Se quiere diseñar un subsistema que forma parte un calendario. El objetivo es obtener una salida que nos indique los dias que tiene cada mes (30, 31 o bien <30), a partir de una entrada que es el número del mes codificado en binario. Se pide realizar una implementación mínima del subsistema usando solamente puertas NOR de tres entradas e inversores.
M8 M4 M2 M1
SISTEMA A DISEÑAR
D31 D30 D<30
P2.18 Diseñe un sistema combinacional que determine si una combinación codificada en ASCII corresponde o no a un dígito decimal. Utilizar solamente puertas NAND y/o NOR de tres entradas. P2.19 El logigrama de la izquierda, Y 0 corresponde a una posible implementación de la función incompletamente especificada Y .
X 3 X 2 X1 X 0
X 3 X 2 X1 X 0
Y0
© los autores, 1998; © Edicions UPC, 1998.
Y1