Sie sind auf Seite 1von 64

_________________________________________________________________________________7

Introduccin

Introduccin

En las ltimas dcadas hemos asistido a un rpido desarrollo de los sistemas electrnicos digitales,
origen y consecuencia del crecimiento de las redes de comunicaciones, de los sistemas de control y, en
particular, de la aparicin y la utilizacin 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 aos atrs. En particular, el nmero de
transistores en un circuito integrado ha crecido de forma espectacular en los ltimos 30 aos, por lo
que resulta arriesgado realizar previsiones sobre la evolucin a largo plazo.
Simultneamente con los avances tecnolgicos, existe una creciente oferta de nuevas posibilidades que
obligan al diseador de sistemas digitales a adaptar progresivamente sus estrategias de diseo a dichas
novedades.
En una primera poca, sobre los aos 60, los ingenieros utilizaban en sus diseos circuitos integrados
digitales sencillos, fabricados masivamente, que deban ser interconectados sobre una placa de forma
adecuada para lograr la funcionalidad requerida. Estos circuitos incluan un pequeo nmero de puertas
lgicas (del orden de 10) y constituyen lo que hoy da se denominan circuitos de pequea escala de
integracin (SSI, small scale integration).
Los circuitos integrados digitales disponibles comercialmente fueron sofisticndose a medida que era
posible integrar un mayor de nmero de transistores, y por tanto de puertas lgicas, sobre un mismo
sustrato, incluyendo una serie de bloques o mdulos lgicos estndar de cierta complejidad. Se habla
entonces de circuitos de escala de integracin 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 integracin (LSI large scale integration), y la aparicin de
circuitos de aplicacin general cuya funcionalidad concreta depende de una programacin por parte del
usuario obligaron a un cambio del modo de abordar el diseo de los sistemas digitales complejos. Un
ejemplo de estructura de este tipo es el microprocesador, un potente circuito digital de uso general cuya
funcionalidad precisa se establece mediante programacin. De esta forma un mismo circuito puede ser
utilizado para diferentes aplicaciones sin ms que modificar el programa que lo controla.

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las sanciones
establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el tratamiento
informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares para su
distribucin y venta fuera del mbito de la Unin Europea.

Diseo digital
_________________________________________________________________________________

Finalmente, desde hace algunos aos es posible integrar decenas de miles de puertas en un nico
circuito integrado, lo que da lugar a la muy alta escala de integracin (VLSI very large scale
integration).
Dentro del contexto VLSI han hecho su aparicin nuevas posiblidades de diseo. Por ejemplo los
circuitos integrados de aplicacin especfica (ASIC Application Specific Integrated Circuits), circuitos
realizados a medida de un usuario y una aplicacin concretos, cuya utilizacin es cada vez ms general.
Dentro del concepto genrico de ASIC existen comercialmente multitud de variantes, que podemos
clasificar en dos grandes grupos:
1) Circuitos lgicos programables (PLD, programmable logic devices): El circuito integrado
comercializado por el fabricante dispone de un conjunto de puertas y mdulos lgicos estndar,
cuya interconexin no est definida. Estas interconexiones pueden ser programadas a la medida de
una funcionalidad concreta mediante la utilizacin de un equipo de desarrollo (software+hardware)
adecuado. Dentro de este grupo podemos incluir multitud de estructuras comerciales: PROM
(programmable read only memory), PAL (programmable array logic), GAL (general array logic),
FPGA (field programmable gate array), etc.
2) Circuitos integrados fabricados a medida (custom): El usuario tiene la posibilidad de
interaccionar directamente con el fabricante de circuitos integrados, de forma que el producto final
realizado por ste ltimo es, incluyendo una parte del proceso de fabricacin, especfico para un
usuario y una aplicacin concretos. Dentro de este grupo podemos distinguir dos modalidades. Por
un lado los circuitos semi-custom, en los cuales slo algunas etapas de su proceso de fabricacin
son diseadas de forma especfica, y por el otro los full-custom, donde el diseo y la fabricacin
son totalmente especficos para un usuario y una aplicacin. A su vez, dentro del semi-custom hay
diversas posibilidades, desde el gate array (circuito integrado con una disposicin regular de
puertas, donde quedan por realizar fsicamente las pistas de interconexin y los contactos) hasta las
standard cells (circuito integrado a realizar en su totalidad a partir de una librera de mdulos
predefinidos ofrecida por el fabricante ms las interconexiones necesarias).
En resumen, el abanico de soluciones posibles para llevar a trmino el diseo de un circuito digital es
muy amplio: utilizacin de circuitos integrados estndar SSI y MSI, sistemas basados en
microprocesadores, circuitos lgicos programables y circuitos tipo custom. Entre ellas el diseador
debe elegir en funcin de diversas variables: nmero de unidades a producir, coste por unidad,
complejidad y coste del diseo, confidencialidad del diseo, 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 diseo digital, imprescindibles sea cual sea la alternativa
finalmente escogida. Adicionalmente se introduce al lector en la realizacin, tanto a nivel elctrico
como fsico, de circuitos digitales en las tecnologas nMOS y CMOS, proporcionndole con ello las
herramientas bsicas necesarias parar abordar el diseo de circuitos integrados VLSI CMOS.

los autores, 1998; Edicions UPC, 1998.

_________________________________________________________________________________9

Introduccin

La inclusin en un mismo texto de aspectos lgicos, elctricos y tecnolgicos, ms la interrelacin


entre ellos, es uno de los aspectos originales de este texto. Son numerosos los textos de diseo digital,
muchos de ellos excelentes, enfocados tanto a los conceptos ms abstractos como al uso de circuitos
estndar. Asimismo es posible encontrar algunos excelentes textos enfocados al diseo de circuitos
integrados CMOS. Sin embargo, son ms bien escasos los libros que, como ste, combinan los dos
aspectos.
Este libro es el resultado de la experiencia acumulada durante varios aos en la imparticin de un curso
introductorio de electrnica digital en la Universidad Politcnica de Catalunya a alumnos de primer
curso en las titulaciones de Ingeniera de Telecomunicacin e Ingeniera Electrnica. El material
presentado se cubre en su prctica totalidad en un semestre de 60 horas de clase de teora 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 captulo 3 es necesario el conocimiento de los
conceptos ms elementales de anlisis de circuitos electrnicos). Se ha intentado que el libro sea una
herramienta til de estudio personal. Tambin ha sido preocupacin constante de los autores no
elaborar un texto enciclopdico o exhaustivo, sino por el contrario conseguir un libro conciso que
hiciera hincapi en los aspectos fundamentales.
Se ha cuidado de forma especial la participacin del lector en el proceso de aprendizaje, incluyendo
diferentes elementos: ejemplos resueltos (incluidos en el texto), ejercicios propuestos (tambin
incluidos en el texto), y cuestiones y problemas (al final de cada captulo). Estos elementos no son
complementarios, sino parte esencial del libro. En ellos no solamente se insiste en los aspectos
mecnicos del diseo, sino que se intenta motivar al lector para reelaborar en profundidad los
conceptos, al tiempo que se plantean cuestiones complementarias que facilitan una profundizacin en
lo aprendido.

R. Alcubilla
J. Pons
D. Bards
Barcelona, junio de 1995.

los autores, 1998; Edicions UPC, 1998.

11
_________________________________________________________________________________

ndice

ndice

Primera aproximacin a los sistemas digitales.....................................................15

1.1
1.2
1.3

1.5

Definiciones.............................................................................................................15
Sistemas digitales combinacionales y secuenciales...........................................................17
Codificacin.............................................................................................................21
1.3.1 Codificacin de nmeros enteros ........................................................................23
1.3.2 Cdigos alfanumricos.....................................................................................27
1.3.3 Cdigos detectores de errores .............................................................................29
Cuestiones y problemas .............................................................................................30

Fundamentos abstractos del diseo digital ...........................................................33

2.1

Funciones lgicas .....................................................................................................33


2.1.1 Representacin mediante tabla de verdad...............................................................34
2.1.2 Representacin mediante tabla de Karnaugh..........................................................34
2.1.3 Funciones lgicas de una y dos variables .............................................................37
2.1.4 Funciones incompletamente especificadas ............................................................40
2.1.5 Composicin de funciones lgicas......................................................................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 Simplificacin algebraica .................................................................................45
Formas cannicas de una funcin lgica ........................................................................48
2.3.1 Minterms y Maxterms .....................................................................................48
2.3.2 Teorema de Shannon........................................................................................49
2.3.3 Formas cannicas............................................................................................50
2.3.4 Grupo completo de funciones ............................................................................53
2.3.5 Realizacin de logigramas.................................................................................54
Minimizacin de funciones lgicas ...............................................................................57
2.4.1 Consideraciones previas....................................................................................57

2.2

2.3

2.4

los autores, 1998; Edicions UPC, 1998.

12

Diseo digital
_________________________________________________________________________________

2.5

2.4.2 Mtodo de Karnaugh........................................................................................59


2.4.3 Minimizacin en forma de producto de sumas .......................................................61
2.4.4 Minimizacin de funciones incompletamente especificadas......................................62
2.4.5 Limitaciones del mtodo de Karnaugh .................................................................63
Cuestiones y problemas .............................................................................................65

Fundamentos circuitales del diseo digital ...........................................................73

3.1

3.6

Caractersticas elctricas de las puertas lgicas ................................................................73


3.1.1 Curva de transferencia y niveles lgicos............................................................... 74
3.1.2 Mrgenes de ruido ...........................................................................................75
3.1.3 Retardos de propagacin ...................................................................................77
3.1.4 Potencia consumida.........................................................................................78
El transistor MOS.....................................................................................................79
3.2.1 Estructura y funcionamiento bsico.....................................................................79
3.2.2 Efectos de segundo orden...................................................................................85
Puertas lgicas NMOS...............................................................................................85
3.3.1 Inversor NMOS con carga de vaciamiento............................................................85
3.3.2 Puertas bsicas NMOS.....................................................................................91
Puertas de transmisin ...............................................................................................97
3.4.1 Transistor de paso NMOS.................................................................................98
3.4.2 Transistor de paso PMOS............................................................................... 101
3.4.3 La puerta de transmisin CMOS ...................................................................... 101
Puertas lgicas CMOS............................................................................................. 103
3.5.1 Inversor CMOS............................................................................................ 103
3.5.2 Puertas bsicas CMOS................................................................................... 110
3.5.3 Otras estructuras ........................................................................................... 113
Cuestiones y problemas ........................................................................................... 114

Fundamentos tecnolgicos del diseo digital ...................................................... 123

4.1

Etapas bsicas de fabricacin de circuitos integrados....................................................... 123


4.1.1 Deposicin de capas....................................................................................... 124
4.1.2 Oxidacin trmica ......................................................................................... 125
4.1.3 Fotolitografa............................................................................................... 126
4.1.4 Difusin de impurezas.................................................................................... 128
4.1.5 Implantacin inica ....................................................................................... 129
4.1.6 Fabricacin de un transistor MOS con puerta de polisilicio ................................... 130
Procesos CMOS y layouts........................................................................................ 132
4.2.1 Fabricacin de un inversor CMOS.................................................................... 132
4.2.2 Layouts....................................................................................................... 136
4.2.3 Reglas de diseo de layouts............................................................................. 142

3.2

3.3

3.4

3.5

4.2

los autores, 1998; Edicions UPC, 1998.

13
_________________________________________________________________________________

ndice

4.3

4.5

Caracterizacin elctrica de circuitos integrados MOS..................................................... 147


4.3.1 Estimacin de resistencias............................................................................... 147
4.3.2 Estimacin de capacidades ............................................................................... 150
Clculo simplificado de retardos de propagacin ............................................................ 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

Diseo de circuitos combinacionales .................................................................. 169

5.1
5.2

5.6

Por qu la realizacin a dos niveles no resuelve el problema del diseo combinacional? ....... 169
Diseo con redes modulares....................................................................................... 172
5.2.1 Construccin de redes modulares ...................................................................... 173
5.2.2 Anlisis y sntesis de redes modulares ............................................................... 176
Mdulos combinacionales estndar ............................................................................. 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 aritmtico-lgicas............................................................................. 197
Diseo combinacional basado en mdulos universales .................................................... 198
5.4.1 Diseo combinacional con multiplexores........................................................... 198
5.4.2 Diseo combinacional con decodificadores.......................................................... 202
Diseo combinacional con mdulos programables......................................................... 204
5.5.1 Diseo combinacional basado en ROM ............................................................. 204
5.5.2 Diseo combinacional con PLA....................................................................... 208
Cuestiones y problemas ........................................................................................... 210

Introduccin a los sistemas secuenciales ............................................................. 217

6.1

Especificacin de sistemas secuenciales ....................................................................... 217


6.1.1 Concepto de estado ........................................................................................ 218
6.1.2 Especificacin basada en el estado..................................................................... 220
6.1.3 Diagrama de estados....................................................................................... 222
6.1.4 Equivalencia de estados................................................................................... 226
Sincronizacin de sistemas secuenciales....................................................................... 230
6.2.1 Sistemas secuenciales sncronos y asncronos..................................................... 231
6.2.2 Implementacin cannica de un sistema secuencial sncrono.................................. 234

4.4

5.3

5.4

5.5

6.2

los autores, 1998; Edicions UPC, 1998.

14

Diseo digital
_________________________________________________________________________________

6.5

6.2.3 Sincronizacin 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
Realizacin de biestables .......................................................................................... 244
6.4.1 Biestable SR asncrono .................................................................................. 244
6.4.2 Biestables sncronizados por nivel .................................................................... 246
6.4.3 Biestables sincronizados por flanco................................................................... 249
Cuestiones y problemas ........................................................................................... 250

Diseo de circuitos secuenciales sncronos .......................................................... 257

7.1

Diseo cannico de circuitos secuenciales sncronos....................................................... 257


7.1.1 Mtodo sistemtico de anlisis......................................................................... 257
7.1.2 Mtodo sistemtico de sntesis......................................................................... 264
Mdulos secuenciales............................................................................................... 270
7.2.1 Registros..................................................................................................... 271
7.2.2 Registros de desplazamiento ............................................................................ 273
7.2.3 Contadores................................................................................................... 276
Dispositivos lgicos programables ............................................................................. 280
Memorias RAM ..................................................................................................... 284
7.4.1 Descripcin genrica...................................................................................... 284
7.4.2 Memorias MOS dinmicas y estticas ............................................................... 287
Cuestiones y problemas ........................................................................................... 291

6.3

6.4

7.2

7.3
7.4

7.5

Apndice A

Aritmtica binaria ............................................................................... 301

Apndice B

Familias lgicas bipolares ................................................................... 307

Bibliografa ................................................................................................................. 311

los autores, 1998; Edicions UPC, 1998.

15
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

Captulo 1 Primera aproximacin a los sistemas digitales

Este captulo pretende situar al lector en el campo de los sistemas electrnicos 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 terminologa. El apartado 1.2
discute los conceptos de sistema combinacional y sistema secuencial. Por ltimo el apartado 1.3
introduce el concepto de codificacin.

1.1 Definiciones
Un sistema electrnico digital es aquel que procesa seales elctricas digitales. Para el lector novel en
el rea de ingeniera es conveniente clarificar los significados precisos de cada uno de los trminos de la
frase anterior.
Se entiende por sistema una entidad fsica que recibe una serie de entradas o excitaciones y responde con
un conjunto de salidas. La figura 1.1 muestra la representacin genrica de un sistema.

Sistema

Figura 1.1 Sistema genrico

La n minscula indica la existencia de n entradas y la m minscula indica la existencia de un nmero


m de salidas. Esta definicin "a priori" no se limita a sistemas electrnicos. Es igualmente aplicable a
sistemas mecnicos, biolgicos, econmicos, etc.
El comportamiento de un sistema estar perfectamente determinado cuando se conozcan los valores de
las salidas para cada posible combinacin de valores de las entradas.
Entenderemos por seal una magnitud fsica variable con el tiempo que sirve de soporte a algn tipo de
informacin. Se invita al lector a reflexionar sobre el hecho de que solamente las magnitudes fsicas

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las
sanciones establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el
tratamiento informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de ejemplares
para su distribucin y venta fuera del mbito de la Unin Europea.

16

Diseo digital
_________________________________________________________________________________

variables pueden soportar/transmitir alguna informacin. En el campo de la ingeniera electrnica las


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

a)

b)
s(t)

s(t)

Figura 1.2 a) Seal analgica. b) Seal digital

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

s(t)

Figura 1.3 Seal lgica

En este texto trataremos de forma intensiva con seales y sistemas de este tipo. Uno de los motivos
del inters particular en las seales y los sistemas lgicos es la disponibilidad de dispositivos
electrnicos capaces de funcionar en dos estados ntidamente diferenciados.
En realidad resulta habitual, y as se har en este texto, el emplear indistintamente los trminos
"digital" y "lgico" aplicados ya sea a sistemas, circuitos o seales. El motivo es que la
transformacin de seales digitales o discretas a seales lgicas o binarias, y viceversa, es

los autores, 1998; Edicions UPC, 1998.

17
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

extraordinariamente sencilla. Estas transformaciones se denominan respectivamente codificacin y


decodificacin. De estos aspectos nos ocuparemos con ms detalle en el apartado 1.3. La figura 1.4
muestra de forma esquemtica la relacin existente entre un sistema digital y uno lgico.

Codificador

Sistema
lgico

Decodificador

Sistema digital
Figura 1.4 Relacin entre un sistema digital y un sistema lgico

1.2 Sistemas digitales combinacionales y secuenciales


Los sistemas digitales pueden dividirse en dos categoras atendiendo a la influencia que tiene el factor
tiempo en su funcionamiento.
Sistemas digitales combinacionales son aqullos en los cuales las salidas en un instante de tiempo ti
dependen nicamente del valor de las entradas en ese mismo instante. Se entiende, por tanto, que los
valores que hayan tomado las entradas y salidas con anterioridad, es decir, en t<ti, no ejercen ninguna
influencia sobre el valor de las salidas en ti.

Sistema
Combinacional

Figura 1.5 Sistema combinacional

Por tanto en dichos sistemas

y(ti ) = F x ( ti )

Como esta igualdad se cumple para cualquier valor de ti puede dejarse implcito el factor tiempo y
escribirse simplemente
y = F(x)

los autores, 1998; Edicions UPC, 1998.

18

Diseo digital
_________________________________________________________________________________

Ejemplo 1.1
Supongamos un depsito dividido en 6 niveles numerados del 0 al 5. Queremos implementar una
alarma que se active cuando el nivel del lquido que contiene sea o bien demasiado alto (>4) o bien
demasiado bajo (<2).
Evidentemente se trata de un sistema combinacional. La activacin o no de la alarma depende
exclusivamente del nivel del lquido en cada momento. Los valores que haya podido tomar el nivel
con anterioridad no tienen influencia alguna en el resultado.

Alarma

Figura 1.6 Esquema del ejemplo 1.1

La entrada del sistema es el nivel del lquido en el depsito y por tanto existen 6 valores posibles
de la entrada. Anlogamente slo 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 funcin 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 travs de la definicin 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 informacin necesaria sobre
el comportamiento del sistema combinacional, cuando el nmero de entradas y salidas crece llegan a ser
prcticamente imposibles de manipular.

los autores, 1998; Edicions UPC, 1998.

19
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

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

Sistema
Secuencial

Figura 1.7 Sistema secuencial

Por tanto se puede escribir


y(ti ) = F[ x(,ti )]
Esta es la definicin general de sistema secuencial. Sin embargo, existe de hecho un inconveniente de
orden prctico. 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 informacin
infinita: esta capacidad es necesaria para memorizar los valores de la entrada durante el intervalo
(,ti ) . Es claro que una memoria infinita es algo poco prctico desde el punto de vista de la
implementacin fsica.
En este texto nos ocuparemos de una clase particular de sistemas secuenciales llamados sistemas
secuenciales de estados finitos; un nombre alternativo es el de mquinas de estados finitos. En estos
sistemas todas las evoluciones histricas posibles de las entradas pueden ser agrupadas en un nmero
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 evolucin
temporal anterior de las entradas. Esto elimina la necesidad de memoria infinita y permite implementar
prcticamente estos sistemas.
Dicho de otra forma, para hallar y(t) en funcin de x(t) no necesitamos conocer x(,t) , sino
solamente la clase de equivalencia a la que pertenece. Este conocimiento lo tendremos a travs de una
variable nueva, s(t) , que denominaremos estado del sistema.
Por tanto la especificacin de una mquina de estados finitos pasa por la definicin de un conjunto 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 funcin H se denomina funcin de salida e indica el valor de la salida para cada combinacin de
entrada y estado del sistema. La funcin G se denomina funcin transicin de estados y determina cul
ser el estado prximo del sistema, es decir, el valor prximo de la variable de estado, para cada
combinacin de valores de la entrada y estado actual del sistema.

los autores, 1998; Edicions UPC, 1998.

20

Diseo digital
_________________________________________________________________________________

Ejemplo 1.2
Una comprensin intuitiva del concepto de sistema secuencial se puede obtener a travs del anlisis
del funcionamiento de un ascensor. Para centrar ideas pinsese 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 reflexin 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 botn, la salida,
es decir, la accin 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 accin 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).
Tambin 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 ms formal.
Entradas al sistema: Botn pulsado por el usuario. Es decir: x {0,1,2} .
Salidas del sistema: Acciones realizadas por el ascensor: o bien sube 2 pisos, o sube 1, o no hace
nada, o baja 1, o baja 2. Esto es: y {nada,+1,+2,1,2} .
Estados del sistema: A partir de la discusin anterior debera ser claro que el nmero de estados 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 aproximacin a los sistemas digitales

Para especificar el sistema secuencial de forma completa necesitamos la funcin de salida que
depende de la entrada y el estado actual y la funcin transicin de estados, que da el estado prximo
en funcion de la entrada y el estado actual. Podemos especificar estas dos funciones mediante la
tabla de verdad presentada.
__________________________________________________________________________________

1.3 Codificacin
Un concepto fundamental dentro de los sistemas digitales es el de codificacin. En el apartado 1.1
hacamos una primera referencia diciendo que mediante la codificacin podamos pasar de una seal
discreta a una seal lgica, mientras la decodificacin realizaba el camino inverso. En este apartado
vamos a definir estos conceptos con ms precisin.
El problema de la codificacin en el mbito de la electrnica 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 definicin formal vamos a ver un ejemplo de codificacin.

Ejemplo 1.3
Recordemos el ejemplo 1.1 referente a la alarma para un depsito. Tenamos 6 entradas posibles 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 sera

Elemento
0
1
2
3
4
5

Cdigo
asignado
000
100
101
001
010
011

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


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

los autores, 1998; Edicions UPC, 1998.

22

Diseo digital
_________________________________________________________________________________

evidente que asignar dos codificaciones iguales a dos elementos distintos slo puede conducir a la
prdida o confusin de informacin.
Ntese que en este ejemplo las combinaciones 111 y 110 no han sido utilizadas.
Igualmente podramos codificar las salidas. En el caso de la alarma slo tenamos dos salidas
posibles y {ON,OFF} , por tanto podemos utilizar vectores de un solo elemento para
codificarlas. Una posible codificacin, nuevamente arbitraria, de las salidas sera

Cdigo
asignado
ON
1
OFF
0
__________________________________________________________________________________
Elemento

Una vez presentado de forma intuitiva el problema de la codificacin, vamos a formalizar la definicin.
Codificacin es una funcin, al menos inyectiva, que asigna un vector binario de dimensin n a 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 dgito binario o bit. Denominamos byte a un vector de 8 bits.

Ejercicio 1.1
Cuntos elementos podemos codificar mediante vectores de n bits? Cuntos cdigos distintos
podemos formar con n bits?
Solucin:
n bits permiten codificar 2n elementos.
Podemos formar 2n! cdigos distintos con n bits.
__________________________________________________________________________________
La codificacin, es decir, la eleccin de una forma particular de asignacin de cdigos es en principio
arbitraria. En cada caso concreto hay que elegir entre 2n! codificaciones posibles. Ahora bien, el que
cualquier codificacin sea en teora vlida no quiere decir que sea indiferente la eleccin de una u otra.

los autores, 1998; Edicions UPC, 1998.

23
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

Criterios posibles que pueden determinar la eleccin de un cdigo determinado podran ser la
simplicidad, la compatibilidad entre sistemas, la posibilidad de detectar la aparicin de algn error, la
posibilidad de corregir errores, etc.
En los prximos subapartados vamos a presentar brevemente algunos de los cdigos ms comnmente
utilizados.

1.3.1 Codificacin de nmeros enteros


Ya que la codificacin finalmente representa los elementos a codificar mediante los dgitos binarios 0 y
1, empezaremos este apartado presentando los sistemas de numeracin y en particular la numeracin en
base 2 y en potencias de 2.
Un nmero representado en base r se escribe ( an1 ,an2 ,......,a1 ,a0 )r y su valor decimal se calcula
simplemente desarrollndolo en potencias de r , donde los smbolos ai se asocian a los r primeros
nmeros enteros (por tanto entre 0 y r-1)

( an1 ,an2 ,....,a1 ,a0 )r = an1r n1 +....+a1r1 + a0 r 0


Ejemplo 1.4
Encontrar el equivalente decimal del nmero en base 2 (11100001)2.
(11100001)2=1.27+1.26+1.25+0.24+0.23+0.22+0.21+1.20=128+64+32+1=(225)10
__________________________________________________________________________________

Ejercicio 1.2
Escribir los numeros decimales (101)10 y (202)10 en base 2. Qu relacin hay entre los dos
resultados?
Solucin:

(101)10=(1100101)2

(202)10=(11001010)2

El 202 en base 2 coincide con el 101, desplazado una cifra a la izquierda. Esto se cumple para
cualquier nmero que cumpla m =2.n, y se puede demostrar fcilmente substituyendo r por 2 en la
expresin de desarrollo en potencias, y multiplicndola por 2.
__________________________________________________________________________________
El cambio entre base 2 y base 10 es particularmente frecuente y por ello es conveniente recordar los
valores de las potencias de 2.

los autores, 1998; Edicions UPC, 1998.

24

Diseo digital
_________________________________________________________________________________

20=1

21=2

22=4

23=8

24=16

25=32

26=64

27=128

28=256

29=512

210=1024

...

En el contexto que nos ocupa tambin son de inters los sistemas de numeracin cuya base es una
potencia de 2, en particular base 8 y base 16, denominados octal y hexadecimal respectivamente.
El paso de base 2 a base 2k es particularmente sencillo. Se parte del nmero escrito en base 2 y,
empezando por la derecha, se agrupan los dgitos que lo forman en grupos de k bits, a cada uno de los
grupos se le asigna el dgito correspondiente en base 2k .

Ejemplo 1.5
(1010110001101011)2= ( 1 010 110 001 101 011)2= (1 2 6 1 5 3)8
En base 16 este mismo nmero quedara
(1010 1100 0110 1011)2= (A C 6 B)16
Nota: En base 16 se utilizan los siguientes smbolos para los 16 dgitos necesarios:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
__________________________________________________________________________________
Los cambios en sentido contrario, es decir, el paso de base 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.
Solucin:
(3 7 0 1 2)8 = (11111000001010)2= (3 E 0 A)16
__________________________________________________________________________________

Codificacin en binario
Simplemente escribimos en binario, utilizando el nmero de bits que sea necesario, el nmero entero a
codificar.
Es claro que utilizando n bits podemos codificar un total de 2n nmeros enteros, en concreto los que
van desde el 0 al 2n-1.

los autores, 1998; Edicions UPC, 1998.

25
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

Ejemplo 1.6
Escribir el cdigo binario para n = 3 bits.
Con 3 bits podemos codificar en binario natural los nmeros que van desde el 0 hasta el 7.

0
000

1
001

2
010

3
011

4
100

5
101

6
110

7
111

__________________________________________________________________________________

Codificacin en BCD
El cdigo BCD, decimal codificado en binario, utiliza 4 bits para cada dgito 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. Caba esperar esto desde el
principio ya que 4 bits permiten codificar hasta 16 elementos y en el sistema de numeracin decimal
slo tenemos 10 dgitos.

Ejemplo 1.7
Pasar a cdigo BCD el nmero decimal 124.
(124)10 = (0001 0010 0100)BCD
__________________________________________________________________________________
El valor decimal de cada dgito del nmero codificado en BCD puede ser obtenido sumando el 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 dgitos correspondientes en binario de 4 bits. Los cdigos en los que esta operacin es
posible se denominan cdigos ponderados.

los autores, 1998; Edicions UPC, 1998.

26

Diseo digital
_________________________________________________________________________________

Ejemplo 1.8
(0111)BCD = 0.8+1.4+ 1.2+1.1 = 7
(0010 0011)BCD = (1.2).101+ (1.2+ 1.1).100 = 23
__________________________________________________________________________________
Existen distintas variantes del cdigo BCD. Algunas de ellas se diferencian en el peso (o ponderacin)
de cada uno de los bits. Un ejemplo sera el BCD 2421. En dicho cdigo 2, 4, 2 y 1 son los pesos
respectivos de cada uno de los bits. Obsrvese en este ejemplo concreto que " a priori " un mismo
nmero puede ser codificado de distintas maneras. Ser necesaria, por tanto, una regla adicional que
determine cul de las posibles codificaciones es la correspondiente al cdigo.
Otra variante de inters es el llamado BCD exceso 3. El cdigo es el siguiente

0
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 travs de sumar 3 al BCD natural.


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

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

Decimal
0
1

Gray
0
1

los autores, 1998; Edicions UPC, 1998.

27
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

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

Decimal
0
1
2
3

Cdigo de Gray
0
0
0
1
1
1
1
0
aadido reflejado

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

Decimal
0
1
2
3
4
5
6
7

Cdigo 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
aadido
reflejados

1.3.2 Cdigos alfanumricos


Es muy habitual el tener que codificar textos compuestos por caracteres alfanumricos ( bajo esta
denominacin incluimos letras, nmeros, smbolos ortogrficos, carcteres de control, etc.).
El cdigo ms utilizado en este caso es el cdigo 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 ttulo informativo la distribucin de combinaciones en el cdigo ASCII de 7 bits es la mostrada en
la figura 1.8, donde las primeras 32 codificaciones corresponden a carcteres de control, que se

los autores, 1998; Edicions UPC, 1998.

28

Diseo digital
_________________________________________________________________________________

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

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

SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/

0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

@
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
[
\
]
^
_

`
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
{
|
}
~

NULL
SOH
STX
ETX
ENQ
ACK
BELL
BS
HT
LF
VT
FF
CR
SO
SI

ENQ

NAK

ACK

SYNC

BELL

ETB

BS

CAN

HT

EM

LF

SUB

VT

ESC

FF

FS

CR

GS

SO

RS

SI

US

Carcter nulo
Encabezamiento
Principio de texto
Final de texto
Pregunta
Reconocimiento
Timbre
Retroceso
Tabulador horizontal
Salto de lnea
Tabulador vertical
Salto de pgina
Retorno de carro
Desplazamiento exterior
Desplazamiento interior

DLE
DCi
NACK
SYNC
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
DEL

DEL

Cambio de enlace de transmisin


Control del dispositivo i
No reconocimiento
Transmisin sncrona
Fin de transmisin de bloque
Cancelar
Fin de medio
Sustitucin
Escape
Separador de ficheros
Separador de grupos
Separador de registros
Separador de unidades
Espacio en blanco
Borrar

Figura 1.8 Cdigo ASCII de 7 bits

los autores, 1998; Edicions UPC, 1998.

29
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

1.3.3 Cdigos detectores de errores


Las seales codificadas contienen informacin. Estas seales, y por tanto esta informacin, se
transmiten de unos circuitos (sistemas) electrnicos a otros. Existen formas de codificar que permiten
detectar si se ha producido algn error en la transmisin, estos cdigos reciben el nombre de cdigos
detectores de error. Mencionaremos aqu a ttulo de ejemplo los cdigos con paridad, que es la forma
ms sencilla de cdigo detector de error.
Para transformar un cdigo en un cdigo con paridad se aade un bit adicional de tal manera que la
codificacin resultante (cdigo anterior y bit aadido) tenga un nmero par de bits de valor "1", en los
cdigos de paridad par, o impar en los cdigos de paridad impar.

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

X2
X1
X0

X2
X1
X0
Xp
Paridad

Cdigo
previo

Bit
aadido

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 cdigos con paridad pueden detectar un nmero impar de errores en la transmisin de la
informacin pero no pueden detectar un nmero par, ya que en este caso la paridad no se modifica.
En el ejemplo anterior se observa que el hecho de intentar detectar errores nos lleva a utilizar ms bits
de los estrictamente imprescindibles. Un cdigo que utiliza ms bits de los necesarios se denomina
redundante. En efecto, si tenemos 8 elementos a codificar podemos hacerlo mediante 3 bits, aadir un
bit de paridad nos exige utilizar 4 bits para codificar el mismo nmero de elementos. Cualquiera que
sea el procedimiento que utilicemos para detectar errores, siempre utilizaremos ms bits de los
imprescindibles. Esto es as por una razn muy simple: supongamos que codificamos 16 elementos
mediante 4 bits. Si se produce un error en la transmisin de uno cualquiera de los bits, por ejemplo se

los autores, 1998; Edicions UPC, 1998.

30

Diseo digital
_________________________________________________________________________________

enva 0011 y se recibe el 0010, el receptor recibe una codificacin que corresponde a uno de los
elementos a codificar y por tanto en ausencia de informacin 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
codificacin que reciba no corresponda a ninguno de los elementos a codificar y esto no es posible a
menos que se utilicen ms bits de los imprescindibles.
Asimismo es posible generar cdigos que permitan, no slo detectar, sino corregir un cierto nmero de
errores. El precio a pagar siempre es el aumentar el nmero de bits utilizados para codificar una
determinada informacin, es decir, aumentar la redundancia del cdigo.

1.4 Cuestiones y problemas

Cuestiones
C1.1 Discuta si las magnitudes y los sistemas siguientes son analgicos o digitales:
a) Temperatura
b) Cronmetro
c) Semforo
d) Corriente elctrica

C1.2 Cules de los siguientes sistemas, donde cada entrada puede tomar dos valores x {a,b} , son
combinacionales y cules secuenciales? Discuta si los secuenciales pueden describirse o no como
mquinas de estados finitos.
a) Un sistema con dos entradas que indique en cul de ellas ha recibido ms veces el valor a .
b) Un sistema con tres entradas que detecte si las tres son iguales.
c) Un sistema con una sola entrada que indique si ha entrado un nmero par o impar de b.

C1.3 Demuestre que para que una codificacin BCD ponderada sea autocomplementaria, la suma de
todos los pesos de la ponderacin debe ser igual a 9.
C1.4 Encuentre cuntos cdigos BCD 2,4,2,1 diferentes se pueden formar y cules de ellos son
autocomplementarios.

los autores, 1998; Edicions UPC, 1998.

31
_________________________________________________________________________________

Primera aproximacin a los sistemas digitales

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

C1.6 Es nico el cdigo de Gray? Proponga diferentes cdigos de tres bits con las mismas propiedades
que el cdigo 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 direccin. Escriba la
tabla de verdad que permita mover el motor a un lado o al otro hasta su lmite.
P1.2 Determine las salidas y los estados de un sistema secuencial con una nica entrada
x {0,1,2,3,4} , que indique si la suma de todas las entradas realizadas hasta el momento es un
mltiplo de tres. Escriba las tablas de sus funciones de salida y de transicin de estados.
P1.3 Proponga una codificacin que utilice 3 bits para los das de la semana. Entre cuntos cdigos
distintos puede escogerse?
P1.4 Proponga un cdigo 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 codificacin BCD de los nmeros de la tabla del problema anterior.
P1.7 El cdigo llamado biquinario es un cdigo "2 entre 7" ponderado con pesos 5,0,4,3,2,1,0 para
cifras decimales. Encuentre cuntos cdigos distintos cumplen estos requisitos.

los autores, 1998; Edicions UPC, 1998.

33
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Captulo 2 Fundamentos abstractos del diseo digital

En este captulo se presentan los fundamentos formales, o si se prefiere matemticos, del diseo
digital. El hecho de que las seales procesadas por los sistemas lgicos slo 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 matemticas especficamente creadas para tratar con este tipo de variables.
El lgebra de Boole, desarrollada el siglo pasado como herramienta para tratar el clculo de predicados
en lgica matemtica, se revela extremadamente til en el campo del diseo digital. A pesar del
marcado tono matemtico de este captulo, es conveniente que el lector tenga en cuenta que su
inclusin no obedece a un deseo de completitud formal sino, por el contrario, a una necesidad de orden
prctico. Como comprobar el lector, los conceptos introducidos en este captulo son de uso
continuado en el resto de este texto.

2.1 Funciones lgicas


Una funcin lgica o de conmutacin de n variables asigna un valor lgico ("0" o "1") a cada
combinacin de n valores lgicos de entrada
y = f (x n1 , x n2 ,......, x1 , x 0 ) {0,1} donde y, xi {0,1}
De acuerdo con esto, un sistema lgico combinacional de n entradas y m salidas como el representado
en la figura 2.1 puede interpretarse como un conjunto de m funciones lgicas de las mismas n
variables.

x
x
x

0
1

n-1

Sistema
....

Combinacional

....

y0
y1
y m-1

Y = F( X)
X = (xn1 ,...,x1 ,x0 ) Y = (ym1 ,...,y1 ,y0 )
yi = f i (xn1 ,...,x1 ,x0 ) 0 i m 1

Figura 2.1 Sistema combinacional visto como un conjunto de funciones lgicas

los autores, 1998; Edicions UPC, 1998. Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del "copyright", bajo las
sanciones establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, comprendidos la reprografa y el
tratamiento informtico, y la distribucin de ejemplares de ella mediante alquiler o prstamo pblicos, as como la exportacin e importacin de
ejemplares para su distribucin y venta fuera del mbito de la Unin Europea.

34

Diseo digital
_________________________________________________________________________________

Existen distintas maneras de especificar y/o representar una funcin lgica; 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 ms adelante dentro de este mismo
captulo las dos restantes.

2.1.1 Representacin mediante tabla de verdad


Una tabla de verdad especifica el valor que toma la funcin para cada posible combinacin de valores de
sus variables. Es evidente que cualquier funcin lgica puede representarse mediante una tabla de
verdad.
La tabla de verdad de una funcin lgica de tres variables (formalmente equivalente a un sistema
combinacional de tres entradas y una salida) se muestra a continuacin. Los valores de la funcin
f(x2,x1,x0) slo 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 extensin de este tipo de representacin a funciones de cualquier nmero de variables es inmediata,


aunque resulta poco prctica cuando este nmero es elevado.

2.1.2 Representacin mediante tabla de Karnaugh


La tabla de Karnaugh, tambin llamada mapa de Karnaugh, da una informacin equivalente a la de una
tabla de verdad. La diferencia estriba en la disposicin topolgica de la informacin. Se disponen los
valores de la funcin en una tabla de doble entrada donde unas variables estn en el eje horizontal y
otras en el eje vertical. Las combinaciones de las variables de entrada en cada eje se ordenan siguiendo
un cdigo de Gray.
Vemoslo para el caso concreto de una funcin 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 diseo digital

x2\x1x0

00

f(0,0,0)

f(0,0,1) f(0,1,1)

f(0,1,0)

f(1,0,0)

f(1,0,1) f(1,1,1)

f(1,1,0)

01

11

10

Como es natural, en una funcin 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 cdigo de Gray. Vemoslo para una funcin genrica
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 segn un cdigo de Gray hace que en casillas vecinas se siten los
valores de la funcin correspondientes a combinaciones de las variables de entrada que difieren entre s
en un slo bit. Si definimos como casillas lgicamente 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 ms intensa) vemos que las casillas adyacentes segn la definicin anterior (marcadas en
punteado claro) corresponden a f(1,0,0,0) donde slo vara el valor de x0, f(1,0,1,1) donde es x1 la
variable que cambia de valor, f(1,1,0,1) donde es x2 la variable que cambia de valor, y por ltimo en
f(0,0,0,1) x3 cambia de valor.
Generalizando, podemos decir que cada casilla de una tabla de Karnaugh de n variables tiene n casillas
lgicamente 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 funcin genrica
f(x4,x3,x2,x1,x0); se forman dos tablas de Karnaugh iguales (con la misma disposicin 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 definicin de adyacencia incluye las casillas vistas para
la tabla de 4 variables ms 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

Diseo 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 representacin mediante tabla de Karnaugh para funciones lgicas 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 cclicas de las 2 variables restantes), aunque se pierde la
facilidad de identificacin de las casillas adyacentes. Por ello en la prctica la tabla de Karnaugh no
suele utilizarse para funciones de ms de 5 variables.

Ejemplo 2.1
Supongamos un cdigo de 4 bits con todas las combinaciones asignadas. Se desea generar un bit
adicional de forma que el cdigo de 5 bits resultante tenga una paridad par. Especificar la funcin
lgica correspondiente mediante su tabla de verdad y su mapa de Karnaugh.

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

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

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

ab\cd

00

01

11

10

00

01

11

10

los autores, 1998; Edicions UPC, 1998.

37
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Se trata de un sistema combinacional con 4 entradas y una salida, cuyo valor ser "1" cuando en
las entradas tengamos un nmero impar de valores "1", y "0" en caso contrario (nmero par de
"1"). Por tanto la tabla de verdad y mapa de Karnaugh sern los dados en la figura.
Obsrvese que el mapa de Karnaugh de una funcin de paridad, dado que las variables de entrada
estn ordenadas segn el cdigo 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 travs de sus tablas de verdad y de Karnaugh, un sistema combinacional que compare 2
nmeros enteros A y B codificados en binario. La salida valdr "1" si A>B.
A, B Cdigo
0
00
1
01
si A > B
1
Salida
Y =
2
10
en otro caso
0
3
11
__________________________________________________________________________________
A, B {0,1,2,3}

Entradas

2.1.3 Funciones lgicas de una y dos variables


Al estar limitado a dos el nmero de valores que pueden tomar tanto las distintas variables de entrada
como la salida de una funcin lgica, resulta que el nmero de funciones lgicas distintas de n
variables est acotado. Por tanto, es posible realizar un inventario de todas las funciones lgicas de un
nmero dado de variables.
Funciones lgicas de una variable: Existen 4 y slo 4 funciones lgicas de una variable, que
presentamos en la tabla siguiente

x0

f0(x0)

f1(x0)

f2(x0)

f3(x0)

0
1

0
0

0
1

1
0

0
0

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

los autores, 1998; Edicions UPC, 1998.

38

Diseo digital
_________________________________________________________________________________

f 0 (x 0 ) = 0
f1(x0). El valor de la funcin coincide con el de la variable de entrada. Por este motivo se la denomina
funcin identidad. La expresin algebraica de esta funcin es
f 1 (x 0 ) = x 0
f2(x0). En este caso el valor de la funcin siempre es el contrario o complementario del que tiene la
variable de entrada. Se la conoce como funcin complemento, negacin o funcin NOT. La expresin
algebraica correspondiente es
f 2 (x 0 ) = x 0
f3(x0). Por ltimo, esta funcin siempre devuelve el valor "1" independientemente del valor de la
variable de entrada y por eso recibe el nombre de funcin constante 1. Su expresin algebraica ser
f 3 (x 0 ) =1
Algunas funciones lgicas cuentan con un smbolo propio para su representacin grfica. Estos
smblos graficos se denominan logigramas o puertas y suponen una primera aproximacin a la
estructura del circuito o elemento fsico 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

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

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

x1
0
0
1
1

x0
0
1
0
1

f0
0
0
0
0

f1
0
0
0
1

f2
0
0
1
0

f3
0
0
1
1

f4
0
1
0
0

f5
0
1
0
1

f6
0
1
1
0

f7
0
1
1
1

f8
1
0
0
0

f9
1
0
0
1

los autores, 1998; Edicions UPC, 1998.

f10 f11 f12 f13 f14 f15


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

39
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Algunas de estas 16 funciones se utilizan con mayor frecuencia y las presentamos a continuacin
como funciones destacables.
f 1 . La funcin f 1 se denomina AND o producto lgico y slo toma el valor "1" cuando las dos
variables de entrada toman el valor "1". La definicin dada puede independizarse del nmero de
variables; por tanto, denominaremos funcin AND de n variables a la funcin lgica que slo valdr
"1" cuando todas las variables de entrada valgan "1". La expresin algebraica y el logigrama para la
funcin AND de dos variables son los siguientes
f AND (x1 , x 0 ) = x1 x 0

x1
x0

x1 x0

f7. Esta funcin toma el valor "1" cuando alguna de las entradas toma el valor "1" (eventualmente
pueden ser las dos) o, de forma equivalente, slo toma el valor "0" cuando todas las variables de entrada
toman el valor "0". Recibe el nombre de funcin OR o suma lgica. Como antes la definicin es
independiente del nmero de variables y por tanto denominaremos funcin OR de n variables a aquella
que vale "1" cuando alguna (una o ms) de las entradas toma el valor "1". La expresin algebraica y el
logigrama para esta funcin son
f OR (x1 , x 0 ) = x1 + x 0

x1
x0

x1 + x 0

f6. A partir de los valores que toma para dos variables esta funcin puede ser interpretada de diversas
maneras: 1- La funcin toma el valor "1" cuando las entradas son distintas y "0" cuando son iguales.
2- El valor de la funcin es la suma mdulo 2 de las entradas. 3- La funcin vale "1" cuando el nmero
de "1" a su entrada es impar y "0" cuando no lo es. Las dos ltimas interpretaciones son directamente
generalizables a n entradas. Esta funcin recibe el nombre de XOR o tambin OR exclusiva. La
expresin algebraica y el logigrama para la funcin XOR de dos variables son
f XOR (x1 , x 0 ) = x1 x 0

x1
x0

x1 + x 0

Las complementarias de estas tres funciones tambin son destacables. Entendemos por funciones
complementarias aqullas que para los mismos valores de las variables toman valores opuestos:
f14. Recibe el nombre de NOT-AND, o abreviadamente, NAND.
f NAND (x1 , x 0 ) = x1 x 0

x1
x0

los autores, 1998; Edicions UPC, 1998.

x1x0

40

Diseo digital
_________________________________________________________________________________

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


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

x1
x0

x1 + x 0

x1
x0

x1 + x0

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


f XNOR (x1 , x 0 ) = x1 x 0

2.1.4 Funciones incompletamente especificadas


Son funciones lgicas cuyo valor no est definido, especificado, para alguna combinacin de variables
de entrada. En lenguaje formal, podramos 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 mltiplo de 3 y "0" en caso contrario. La tabla de verdad
de este sistema sera

x3

x2

x1

x0

x3

x2

x1

x0

0
0
0
0
0
0
0
0

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
0
0
1
0
0
1
0

1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
X
X
X
X
X
X

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

los autores, 1998; Edicions UPC, 1998.

41
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Ejercicio 2.2
n

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


__________________________________________________________________________________

2.1.5 Composicin de funciones lgicas


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

Ejemplo 2.3
La funcin z es el resultado de aplicar la funcin OR a la variable c y al resultado obtenido de
aplicar la funcin AND a las variables a, b y al complementario de d:
z = f OR (c, f AND (a,b, f NOT (d)))
La expresin algebraica correspondiente a esta composicin es
z = c + abd
Tambin es posible obtener el logigrama de la composicin de funciones 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 aproximacin a un posible circuito electrnico que
realice la funcin.

abd
c + abd

a
b
c

Figura 2.3 Logigrama resultante de la composicin de funciones

__________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

42

Diseo digital
_________________________________________________________________________________

Ejercicio 2.3
Obtener la tabla de verdad y el logigrama de la composicin de funciones siguiente
z = f NOR ( f 1 (a,b,c,d), f NOT ( f AND (b,d)))
donde f1 es la funcin descrita en el ejemplo 2.3
__________________________________________________________________________________
Hasta ahora hemos visto cuatro formas equivalentes, aunque formalmente distintas, de representar una
funcin lgica: 1-Tabla de verdad. 2-Tabla de Karnaugh. 3-Expresin algebraica. 4-Logigrama. Segn
las circunstancias, unas formas de representacin sern ms convenientes que otras, pero no debe
perderse de vista que la informacin aportada es la misma.

2.2 Algebra de Boole


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

2.2.1 Postulados del Algebra de Boole


Se denomina lgebra de Boole a la estructura matemtica formada por un conjunto B de elementos y
dos operaciones, denominadas genricamente " +" (suma) y "." (producto), que cumple las siguientes
propiedades
1- B es un conjunto cerrado respecto a las operaciones definidas, es decir
a b B
a,b B
a + b B
2- Las dos operaciones son conmutativas
a + b = b + a
a,b B
a b = b a
3- Existe distributividad de una operacin respecto a la otra y viceversa

los autores, 1998; Edicions UPC, 1998.

43
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

a (b + c) = a b + a c
a,b,c B
a + (b c) = (a + b)(a + c)
4- Existe un elemento neutro para cada operacin. 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
aa = 0
6- El conjunto B tiene al menos dos elementos distintos.
En el tratamiento de variables lgicas podemos tomar el conjunto B = {0,1} y escoger las operaciones
siguientes
"+" o suma: Funcin lgica OR
"." o producto: Funcin lgica AND
_
" " u opuesto: Funcin lgica complemento o negacin (NOT)
Es inmediato comprobar que el conjunto definido ms las operaciones suma y producto 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 definicin se le exigen, cumple una serie de
teoremas. Estos teoremas son de gran utilidad a la hora de transformar expresiones algebraicas de
funciones lgicas en otras equivalentes.
Sean a,b,c B
-Asociatividad:

a + (b + c) = (a + b) + c
a (b c) = (a b)c

-Idempotencia:

a+a=a
aa = a

los autores, 1998; Edicions UPC, 1998.

44

Diseo digital
_________________________________________________________________________________

-Absorcin:

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

-Involucin:

(a) = a

-Incgnita:

x +1=1
x 0 = 0

-Leyes de De Morgan: a + b = a b
a b = a + b
- Dualidad:
Cualquier expresin vlida en un lgebra de Boole contina siendo vlida si
se intercambian entre s los elementos neutros ( 0 1) y las operaciones ( + ).
La permutacin del teorema de dualidad conlleva cambiar cada variable por su complementaria.
Obsrvese que todas las propiedades exigidas a un lgebra de Boole cumplen esta condicin, por tanto,
cualquier expresin que se derive de ellas tambin la cumplir.
Adems, algunos de estos teoremas son directamente generalizables a n variables, por ejemplo, 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

Ejemplo 2.4
Vamos a aplicar dualidad a la expresin algebraica obtenida en el ejemplo 2.3. La expresin 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 expresin algebraica equivalente para la funcin z, aplicando el
teorema de involucin

z=c a +b +d

los autores, 1998; Edicions UPC, 1998.

45
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Ejercicio 2.4
Demustrese la identidad del ejemplo 2.4 usando las leyes de De Morgan.
__________________________________________________________________________________
Las demostraciones de los teoremas presentados tambin quedan como ejercicio para el lector. 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
travs de su tabla de verdad y realizar la comprobacin del resultado.

Ejemplo 2.5
Vamos a demostrar la primera igualdad del teorema de absorcin.
a + ab = a + b
Aplicando sucesivamente la distributividad de la suma con respecto al producto y las 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, demustrese la segunda igualdad del
teorema de absorcin: a + ab = a .
__________________________________________________________________________________

2.2.3 Simplificacin algebraica


Los postulados y teoremas del lgebra de Boole traen como consecuencia que la expresin algebraica de
una funcin lgica no es nica. Por tanto es posible utilizar las propiedades anteriores para simplificar
las expresiones algebraicas de funciones lgicas. Vemoslo mediante algunos ejemplos.

Ejemplo 2.6
a) cd(a + ab) + bd(ac + c) = cd(a(1+ b)) + bd(c(1+ a)) = cda + cbd = cd(a + b)
Donde se ha aplicado el postulado de distributividad, el teorema de incgnita, el postulado del
elemento neutro y otra vez distributividad.

los autores, 1998; Edicions UPC, 1998.

46

Diseo digital
_________________________________________________________________________________

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

Ejercicio 2.6
Simplificar las expresiones siguientes:
a) xyz + xy + xyz

b) a + b + c + abc

c) x(z + xy) + z y + xy x
d) cad + b + c + abc
__________________________________________________________________________________
Al final del apartado 2.1 resumamos las cuatro formas vistas de representar una funcin lgica: tabla
de verdad, tabla de Karnaugh, expresin 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 funcin lgica a travs de un ejemplo.

Ejemplo 2.7
A partir del logigrama de la figura 2.4, obtener la tabla de verdad, la tabla de Karnaugh, y una
expresin algebraica de la funcin Y(a,b,c).

C
Y
D

Figura 2.4 Logigrama del ejemplo 2.7

los autores, 1998; Edicions UPC, 1998.

47
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Es laborioso encontrar directamente la expresin algebraica de la funcin completa, por lo que el


procedimiento ms aconsejable es hallar primero las expresiones algebraicas de las variables
intermedias A, B, C, D, E, y F sealadas en la figura 2.4.
A = a + b = ab
D = abc

B = Ac = abc
C = abc
E = abc
F = DE = abc + abc

Por tanto, la expresin algebraica final para Y es


Y = B + C + F = abc + abc + abc + abc
La tabla de verdad puede obtenerse evaluando las variables intermedias y las expresiones anteriores
para cada combinacin de valores de las variables de entrada.
a

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 quedara de la forma siguiente

a\bc

00

01

11

10

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

Y = abc

a
b
c

__________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

48

Diseo digital
_________________________________________________________________________________

2.3 Formas cannicas de una funcin lgica


A partir de lo visto en el apartado anterior, es claro que una misma funcin lgica admite una infinidad
de expresiones algebraicas. Como consecuencia admitir tambin una infinidad de logigramas. Por el
contrario, la tabla de verdad y la tabla de Karnaugh son nicas para una funcin lgica dada.
De entre esta infinidad de expresiones algebraicas equivalentes se puede encontrar formatos que sean de
particular inters por ser aplicables a cualquier funcin lgica. Estos formatos o expresiones
generalizables de las funciones lgicas se denominan formas cannicas. Sin embargo, antes de
presentar las formas cannicas de una funcin lgica 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 funcin lgica de n variables; denominamos producto mnimo o minterm de dicha funcin al
monomio formado por el producto lgico de todas sus variables complementadas o no. Con n
variables se pueden construir 2n minterms diferentes. Usaremos la notacin mi (con 0 i 2 n - 1 )
para referirnos al minterm i-simo de una funcin.
Identificamos cada minterm mediante un subndice nmerico que corresponde a la combinacin binaria
resultante de sustituir por "0" las variables complementadas y por "1" las que no lo estn. Otra forma
de expresar lo mismo es diciendo que un minterm se identifica mediante un subndice correspondiente
al valor decimal de la combinacin de entradas que hace que el minterm en cuestin tome el valor "1".
Veamos esto en detalle para una funcin lgica de tres variables. La generalizacin a n variables 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 diseo digital

Sea f una funcin lgica de n variables; denominamos suma mxima o maxterm de dicha funcin al
polinomio formado por la suma lgica de todas sus variables complementadas o no. Con n variables
se pueden construir 2n maxterms diferentes. Usaremos la notacin Mi para referirnos al maxterm isimo de una funcin.
Cada maxterm se identifica mediante un subndice correspondiente a la combinacin binaria resultante
de sustituir por unos las variables que estn complementadas y por ceros las que no lo estn. Otra
forma de expresar lo mismo es diciendo que un maxterm se identifica mediante un dgito
correspondiente al valor decimal de la combinacin binaria de entradas que hace que el maxterm en
cuestin tome el valor "0".
Vamos a verlo en detalle para una funcin lgica de tres variables. La generalizacin a n variables es,
otra vez, inmediata.

Maxterm

Sub. binario

Sub. decimal

x2 + x1 + x0

M111

M7

x2 + x1 + x0

M110

M6

x2 + x1 + x0

M101

M5

x2 + x1 + x0

M100

M4

x2 + x1 + x0

M011

M3

x2 + x1 + x0

M010

M2

x2 + x1 + x0

M001

M1

x2 + x1 + x0

M000

M0

2.3.2 Teorema de Shannon


Si f es una funcin lgica de n variables, entonces es posible realizar la extraccin de una de las
variables, con lo que se generan dos funciones residuales de n-1 variables de acuerdo con la siguiente
expresin
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 formulacin dual del teorema puede hacerse mediante esta otra expresin
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

Diseo digital
_________________________________________________________________________________

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

Ejemplo 2.8
Extraer la variable c de la funcin lgica f (a,b,c,d) = (a c) + ac + bcd + ab cd .
De acuerdo con el teorema de Shannon es necesario obtener las funciones resultantes de
particularizar c a los valores "1" y "0" en la funcin f(a,b,c,d) inicial.
f (a,b,0,d) = (a 0) + a + bd = a + a + bd = a + bd
f (a,b,1,d) = (a 1) + ab d = a + ab d = a
Luego, recurriendo a la primera expresin del teorema
f (a,b,c,d) = cf (a,b,0,d) + cf (a,b,1,d) = c (a + bd) + c(a )
O bien, recurriendo a la segunda expresin
f (a,b,c,d) = [ c + f (a,b,1,d)] [ c + f (a,b,0,d)] = [ c + ( a )] [ c + ( a + bd )]
__________________________________________________________________________________

2.3.3 Formas cannicas


Cualquier funcin lgica puede expresarse como suma lgica de minterms. Asimismo, cualquier
funcin lgica puede tambin expresarse como producto lgico de maxterms. Estas expresiones
algebraicas se denominan formas cannicas disyuntiva y conjuntiva respectivamente.
La demostracin de la existencia de estas dos formas cannicas es sencilla si bien un tanto farragosa en
lo que respecta a la notacin. Se basa en la aplicacin reiterada del teorema de Shannon: partiendo de la
primera de las expresiones propuestas por el teorema para una funcin f de n variables y aplicndola de
nuevo a cada uno de los sumandos del trmino 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 funcin.
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 diseo digital

Iterando la aplicacin 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) +
+ 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) =

2n -1

mi f (i)

i=0

Expresin que identificamos como la forma cannica disyuntiva, es decir, en suma de minterms, donde
las f(i) son las funciones residuales tras la extraccin de todas las variables, es decir, funciones
constantes, que solo pueden tomar dos valores "0" o "1".
La existencia de la forma cannica conjuntiva puede demostrarse a partir de la segunda expresin del
teorema de Shannon. Su expresin compacta es
f (x n-1 , x n-2 ,.., x1 , x 0 ) =

2n -1

(Mi + f (i))
i=0

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

Ejemplo 2.9
Pretendemos obtener las formas cannicas de la funcin y = a + bc. Siguiendo paso a paso la
demostracin anterior se llega a la siguiente expresin
y = f (a,b,c) = abc f (0,0,0) + abcf (0,0,1) + abc f (0,1,0) + abcf (0,1,1) +
+abc f (1,0,0) + abcf (1,0,1) + abc f (1,1,0) + abcf (1,1,1)
A partir de la tabla de verdad podemos evaluar el valor de la funcin para cada combinacin de las
variables de entrada

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
0
0
1
1
1
1

los autores, 1998; Edicions UPC, 1998.

52

Diseo digital
_________________________________________________________________________________

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


y = abc + abc + abc + abc + abc = m1 + m4 + m5 + m6 + m7
Una notacin alternativa ms compacta es
y = m(1,4,5,6,7)
3

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


Si nos fijamos en la expresin de la funcin como suma de minterms (en ocasiones la
denominaremos SoP) y, simultneamente en la tabla de verdad, vemos que aparecen en la
expresin los minterms cuyo subndice corresponde a combinaciones de las variables de entrada
para las cuales la funcin vale "1" (que hemos destacado sombrendolas en la tabla de verdad).
Para obtener la expresin de la funcin como producto de maxterms el procedimiento es el
siguiente: Si la funcin y se escribe como
y = m(1,4,5,6,7)
3

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


y = m(0,2,3)
3

Si negamos ambos lados de esta ltima igualdad y operamos


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

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


3

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

los autores, 1998; Edicions UPC, 1998.

53
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Ejercicio 2.7
Obtener la forma cannica alternativa de las funciones siguientes
a) F(x, y,z) = m(1,3,7)
3

b) F(x, y,z) = M(0,3,6,7)


3

__________________________________________________________________________________

2.3.4 Grupo completo de funciones


Un conjunto de funciones lgicas es completo cuando cualquier funcin lgica 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 cannicas son formas de escribir cualquier funcin utilizando slo 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 funcin lgica puede expresarse
utilizando nicamente o bien funciones NAND o bien funciones NOR.

Ejemplo 2.10
Vamos a demostrar que la funcin NAND constituye un grupo completo. Una forma 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 funcin NAND. Comencemos viendo que es posible obtener la
funcin NOT utilizando slo funciones NAND

x = xx

Una vez vista la realizacin de la funcin NOT mediante funciones NAND, resulta inmediato
realizar una funcin AND utilizando funciones NAND
x1 x2 = x1 x2 = x1 x2 x1 x2

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

los autores, 1998; Edicions UPC, 1998.

54

Diseo digital
_________________________________________________________________________________

x1 + x2 = x1 x2 = x1 x1 x2 x2

__________________________________________________________________________________

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

2.3.5 Realizacin de logigramas


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

Ejemplo 2.11
Dibujar el logigrama de la funcin del ejemplo 2.7 partiendo de su expresin como SoP. A
continuacin, realizar el logigrama slo mediante funciones NAND. De forma dual, proponer el
logigrama correspondiente al producto de maxterms, y una realizacin solo con funciones NOR.
La expresin de la funcin en SoP es y = m1 + m4 + m5 + m6 + m7 = abc + abc + abc + abc + abc ,
por lo que su implementacin utilizando funciones AND, OR y NOT es inmediata

m1
m4
m5
m6
m

los autores, 1998; Edicions UPC, 1998.

55
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Para realizar una implementacin usando slo funciones NAND el procedimiento es el siguiente:
supongamos que sustituimos las puertas AND directamente por puertas NAND; para que 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

Luego la implementacin mediante puertas NAND se obtiene simplemente sustituyendo cada


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

m1
m4
m5

m6
m7

Partamos ahora de la expresin algebraica en producto de maxterms


y = M0 M2 M3 = (a + b + c)(a + b + c)(a + b + c)
La implementacin con puertas OR, AND y NOT requerida es, otra vez, inmediata a partir de la
expresin algebraica

los autores, 1998; Edicions UPC, 1998.

56

Diseo digital
_________________________________________________________________________________

M0
M

M3

Para pasar a una implementacin slo 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 funcin AND de variables negadas es equivalente a la funcin NOR
de las mismas variables sin negar. Luego el resultado ser

M0
M

M3

__________________________________________________________________________________

La primera conclusin que podemos extraer del ejemplo 2.11 es que las formas cannicas conducen de
una forma inmediata a logigramas con una estructura regular. As la forma cannica 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 funcin, directas o negadas (mediante puertas NOT). Este resultado es dual para
la forma cannica en producto de sumas.

los autores, 1998; Edicions UPC, 1998.

57
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

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

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

2.4 Minimizacin de funciones lgicas


Minimizar una funcin lgica es encontrar una expresin algebraica que la describa y que incluya el
mnimo nmero de variables y/o operaciones. Existe un inters evidente en poder minimizar funciones
puesto que, en principio, una funcin lgica especificada mediante una expresin algebraica sencilla
podr implementarse mediante un logigrama (cicuito) ms sencillo, y por tanto de menor coste.
Hemos visto en el apartado 2.3 que es posible simplificar la expresin algebraica de una funcin lgica
mediante la aplicacin "adecuada" de las propiedades del lgebra de Boole. Sin embargo dicho
procedimiento tiene algunos inconvenientes: 1- No es sistemtico, dependiendo el resultado de la
habilidad de quien lo utiliza. 2- No siempre es fcil determinar si se ha obtenido la expresin ms
simplificada posible. 3- A diferencia de las formas cannicas, la solucin no suele tener un formato
regular, por lo que conduce a logigramas de estructura impredecible a priori.
En este apartado se presenta un mtodo sistemtico, denominado mtodo de Karnaugh, que permite
obtener la expresin mnima de una funcin lgica manteniendo el formato de suma de productos y/o
de producto de sumas.

2.4.1 Consideraciones previas


Recordemos que, al representar una funcin mediante tabla de Karnaugh, en cada casilla se consigna el
valor de la funcin para una cierta combinacin 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 expresin
cannica de la funcin.

los autores, 1998; Edicions UPC, 1998.

58

Diseo digital
________________________________________________________________________________

Consideremos a efectos de referencia la funcin 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

01

11

10

Cada "1" de la tabla corresponde a un minterm presente en la expresin cannica de la funcin como
suma de minterms. As por ejemplo el "1" correspondiente a la combinacin de entrada
(a,b,c,d)=(0,0,0,0) revela la presencia del minterm a bcd en la expresin cannica de la funcin.
Dos "1" en celdas adyacentes de la tabla de Karnaugh corresponden a dos minterms en la expresin
cannica de la funcin 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 expresin como suma de minterms de una funcin lgica aparecen dos minterms
que slo difieren en una variable xi, es claro que aplicando distributividad nos quedarn expresiones
del tipo siguiente

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


El contenido del parntesis 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 eliminacin de una variable. Este resultado
es generalizable para 4, 8 y en general 2n casillas adyacentes.
Vamos a clarificar esto mediante el anlisis completo y detallado de la funcin anterior.

los autores, 1998; Edicions UPC, 1998.

59
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Ejemplo 2.12
En la funcin y(a,b,c,d) referida en el apartado 2.4.1 tenemos dos grupos de casillas adyacentes,
uno formado por los "1" correspondientes a los minterms m9 y m13 y otro formado por los
correspondientes a los minterms m0 , m2 , m4 , y m6 (recordemos que las casillas de la columna
de la derecha se definan como lgicamente adyacentes a las casillas de la columna de la izquierda,
y que las casillas de la fila superior estaban definidas como lgicamente adyacentes a las casillas 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 agrupacin de los dos minterms hemos eliminado una variable. Si analizamos ahora la
agrupacin restante tenemos

m0 = abcd
m2 = abcd

m0 + m2 = abd

m4 = abcd

m4 + m6 = abd

m6 = abcd
Los dos trminos resultantes tambin difieren entre s en una sola variable (b) y, por tanto, al
sumarlos tambin se eliminar esa variable
m0 + m2 + m4 + m6 = ad
Podemos concluir diciendo que una expresin simplificada en forma (no cannica) de suma de
productos de la funcin y(a,b,c,d) es y = ad + acd .
__________________________________________________________________________________

2.4.2 Mtodo de Karnaugh


A continuacin, como recapitulacin y sistematizacin de lo visto hasta ahora, se ofrece,
esquematizado, el procedimiento de minimizacin
1- Cada celda en un mapa de Karnaugh correspondiente a una funcin de n variables
tiene n celdas lgicamente adyacentes, con las cuales difiere en el valor de una variable.

los autores, 1998; Edicions UPC, 1998.

60

Diseo digital
________________________________________________________________________________

2- La reunin (suma) de 2p celdas lgicamente adyacentes entre s que contienen "1" elimina
p variables en la expresin de la funcin.
3- Al reunir celdas en un mapa de Karnaugh es aconsejable comenzar por las que presentan
menor nmero de "1" en celdas adyacentes.
4- Hay que formar el menor nmero de grupos que recubra todos los "1" de la funcin.
Cuantos menos grupos tengamos menos trminos quedarn en la expresin final.
5- Es necesario agrupar tantos "1" como sea posible en cada grupo; recurdese que grupos
mayores eliminan mayor nmero de variables.

Ejemplo 2.13

Simplificar, utilizando el mtodo de Karnaugh, la funcin 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 funcin

cd\ab

00

01

11

10

00

01

11

10

abcd

bc

bd
acd

Para identificar las variables que aparecen en el producto asociado a cada grupo de "1", debemos
fijarnos en cules de ellas no cambian su valor en todas las celdas del grupo. La expresin
mnima como suma de productos nos queda

f = abcd + acd + bc + bd
_________________________________________________________________________________

los autores, 1998; Edicions UPC, 1998.

61
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

Ejercicio 2.10
Obtener la expresin mnima en suma de productos de las funciones siguientes
a) F(x, y,z,w) = M(0,1,2,3,4,10,11)
4

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

__________________________________________________________________________________

2.4.3 Minimizacin en forma de producto de sumas


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

Ejemplo 2.14
Vamos a minimizar la funcin 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
funcin en grupos de 2p

cd\ab

00

01

11

10

00

01

11

10

bcd

bcd

bcd

ab

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

los autores, 1998; Edicions UPC, 1998.

62

Diseo digital
_________________________________________________________________________________

f = bcd + bcd + b cd + ab
Complementando ambos lados de la igualdad y aplicando las leyes de De Morgan, nos queda la
expresin mnima requerida
f = f = (b + c + d )(b + c + d)(b + c + d)(a + b )
__________________________________________________________________________________

Ejercicio 2.11
Obtener la expresin mnima como producto de sumas de las funciones propuestas en el ejercicio
2.10
__________________________________________________________________________________

2.4.4 Minimizacin de funciones incompletamente especificadas


El mtodo de Karnaugh tambin 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 funcin
no est especificada, supondremos que la funcin toma el valor, "0" o "1", que sea ms conveniente
para obtener la mxima simplificacin.

Ejemplo 2.15
Sea la funcin
f (a,b,c,d) = m(2,7,8,10,12,13,15) + m(5,11,14)
4

Esta notacin expresa que para las combinaciones de las variables de entrada asociadas a los
minterms 5,11, y 14 la funcin no est especificada.
La minimizacin de esta funcin en forma de suma de productos sera la correspondiente a la tabla
de Karnaugh de la figura 2.5.a, con lo que resulta la expresin f = acd + b cd + bd . Ntese que
para obtener esta simplificacin se ha asignado el valor "1" a uno de los trminos no especificados
(concretamente el correpondiente a m5) y el valor "0" a los otros dos.
Si quisiramos obtener la expresin mnima como producto de sumas habra que agrupar los ceros
de la funcin tomando otra vez para las combinaciones no especificadas el valor ms conveniente
para obtener la mxima simplificacin.

los autores, 1998; Edicions UPC, 1998.

63
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

a)

b)

ab\cd 00

01

00

01

11

10

11
0

ab\cd 00
10

01

11

100

001

X11

110

0
1

Figura 2.5 Mapas de Karnaugh del ejemplo 2.15

De acuerdo con la figura 2.5.b, la expresin mnima como suma de productos de la funcin negada
y la expresin final como producto de sumas sern
f = abd + ac + b d
f = f = (a + b + d)(a + c)(b + d )
Ntese que en este ltimo caso se ha efectuado una asignacin de valores para los trminos
inespecificados diferente de la realizada para obtener una suma de productos mnima, concretamente
"1" para el correspondiente a m14 y "0" para los otros dos.

Ejercicio 2.12
Obtener las expresiones mnimas como suma de productos y como producto de sumas de la
funcin incompletamente especificada siguiente:
F = m(0,2,3,6,7) + m(5,8,10,11,15)
4

__________________________________________________________________________________

2.4.5 Limitaciones del mtodo de Karnaugh


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

los autores, 1998; Edicions UPC, 1998.

64

Diseo digital
_________________________________________________________________________________

Respecto al primer problema hay que indicar que existen herramientas informticas de ayuda al diseo
digital que permiten resolverlo con comodidad: es evidente que el mtodo de simplificacin de
Karnaugh pierde su manejabilidad cuando el nmero de variables de la funcin es igual o superior a
seis, pero tambin es evidente que el algoritmo que se aplica no depende de este nmero, siendo
posible implementarlo informticamente.
Admitiendo como entrada la tabla de verdad, una expresin algebraica, e incluso en algunos casos un
logigrama de la funcin, estas herramientas informticas proporcionan una expresin simplificada de la
funcin. Esta expresin suele ser mnima cuando el nmero de variables es inferior a una cierta cota, y
muy simplificada (pero no mnima) cuando el nmero de variables supera esta, caso en el que suelen
emplearse algoritmos no estrictamente de minimizacin.
En cuanto a la simplificacin de multifunciones, no es evidente que se obtenga un resultado ptimo
(con el menor nmero global de trminos) a base de minimizar cada funcin por separado. Veamos
esto mediante un ejemplo.

Ejemplo 2.16
Implementar las funciones F1 (a,b,c) y F2 (a,b,c) mediante una red AND-OR de dos niveles
mnima, es decir con el menor nmero total posible de puertas.
F1 (a,b,c) = m(0,1,2,3,7)

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

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

a\bc

00

01

11

10

F 1 = a + bc

00

01

11

10

F2 = abc + ac

a
b
c
a
b
c
a
c

F1

F2

Figura 2.6 Primera solucin del ejemplo 2.16

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

los autores, 1998; Edicions UPC, 1998.

65
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

a\bc

00

01

11

10

00

01

11

10

F 1 = a + abc

F2 = abc + ac

a
a
b
c
a
c

F1
F2

Figura 2.7 Segunda solucin del ejemplo 2.16

__________________________________________________________________________________
A la luz de lo mostrado en el ejemplo 2.16, el mtodo de simplificacin de multifunciones debera
considerar el reutilizar puertas en ms de una funcin o, lo que es lo mismo, buscar trminos o grupos
comunes a diversas funciones.
El mtodo de Quine-McCluskey, que no presentaremos en este texto, es un mtodo 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 mtodo se
pierden las "facilidades visuales" que posee el de Karnaugh, ya que es engorroso de usar, pero su
implementacin informtica es directa y sencilla.

2.5 Cuestiones y problemas

Cuestiones
C2.1 Cuntas funciones incompletamente especificadas distintas de n variables pueden encontrarse?
C2.2 Plantee las diferencias entre suma lgica y suma aritmtica. Con qu funciones lgicas 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 notacin de minterms y maxterms?
Explquelo con un ejemplo.
C2.5 Explore en detalle las consecuencias de utilizar la misma notacin, referente a los subndices,
para los minterms que para los maxterms, y no la dual, tal como se comenta en el apartado 2.3.1.

los autores, 1998; Edicions UPC, 1998.

66

Diseo digital
_________________________________________________________________________________

C2.6 Qu ventajas de orden prctico se derivan de la existencia de grupos completos de funciones?


C2.7 Tiene alguna importancia el orden de las variables en un mapa de Karnaugh al aplicar el mtodo
de minimizacin?
C2.8 Considrese la posibilidad de usar distintos cdigos de Gray para ordenar las variables en un mapa
de Karnaugh. Afectara al mtodo de simplificacin y/o al resultado?
C2.9 Escriba la expresin algebraica como suma de minterms y como producto de maxterms de las
funciones XOR de dos y tres variables. Escriba a continuacin la expresin obtenida al aplicar el
mtodo de simplificacin de Karnaugh, y compare los resultados.
C2.10 Por qu, al simplificar una funcin mediante el mtodo de Karnaugh, los "1" del mapa de
Karnaugh deben reunirse en grupos de 2p?
C2.11 Es nica la expresin mnima como suma de productos asociada a una funcin lgica? Ilustre
su respuesta con la funcin:
f (x, y,z,w) = m(3,5,6,7,9,11,13)
4

C2.12 Enuncie de forma sistemtica el mtodo dual de minimizacin de Karnaugh para obtener
directamente expresiones en forma de producto de sumas.
C2.13 Piense en cmo debe aplicarse el mtodo de simplificacin de Karnaugh para funciones de 5
variables. Aplquelo a la funcin siguiente
f (a,b,c,d,e) = m(1,2,4,6,10,11,12,18,20,21,22,28,29,30,31)
5

Problemas
P2.1 Realice las funciones lgicas NOR y NAND de dos variables utilizando nicamente un mdulo
como el indicado a continuacin. Sera posible realizar tambin la funcin XOR de dos variables
solamente con este mdulo?

los autores, 1998; Edicions UPC, 1998.

67
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

P2.2 La composicin de funciones lgicas es otra funcin lgica. Si consideramos el caso de


funciones lgicas incompletamente especificadas, determine cmo ser la funcin 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 estn especificadas incompletamente.
Se sugiere analizar primero algn caso con funciones concretas y despus generalizar el resultado.
P2.3 Hllense las expresiones algebraicas de las funciones y1 e y2. Escribnse tambin sus tablas de
verdad y sus mapas de Karnaugh.
a)

a
b
c

y1

d
b

b)

a
b
c
y2

d
b

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


a) ab = ac
/ b=c
ab = ac
b)
b =c
a + b = a + c
c) a b = c a c = b b c = a

los autores, 1998; Edicions UPC, 1998.

68

Diseo digital
_________________________________________________________________________________

P2.5 Obtenga una expresin 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:


ab= a b
a(b c) = ab ac
P2.7 Cualquier funcin lgica de dos variables f(x,y) puede expresarse en funcin de una combinacin
de cuatro parmetros ai {0,1}, de la siguiente manera
f (x, y) = a0 xy + a1 xy + a2 xy + a3 xy
que corresponde a la forma cannica en suma de productos. Demuestre que tambin es posible escribir
f(x,y) en funcin de otros cuatro parmetros bi {0,1}, as
f (x, y) = b0 b1 y b2 x b3 xy
P2.8 Una funcin lgica f es completa si cualquier otra funcin lgica g puede ser expresada
nicamente en trminos de f. Suponiendo que es posible utilizar como entradas dos variables lgicas y
los valores constantes "0" y "1", cules de las 16 funciones diferentes de dos variables son por s
mismas completas? Justificar la respuesta. Utilzese como dato conocido (que no hace falta demostrar)
que las funciones NOR y NAND son completas.
P2.13 Considere el logigrama de la figura, respecto del cual se pide:
a) Obtener la tabla de verdad de la funcin f(a,b,c,d).
b) Expresar f mediante las formas cannicas SoP y PoS.

los autores, 1998; Edicions UPC, 1998.

69
_________________________________________________________________________________

Fundamentos abstractos del diseo digital

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


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

a
c
a
d
f
c
d
b
d

P2.9 Dada la funcin lgica f (x, y,z) = x y + x y + y z , se pide implementarla


a) Mediante puertas AND, OR y NOT.
b) Mediante puertas OR y NOT.
c) Mediante puertas AND y NOT.
d) Mediante puertas AND y XOR.
P2.10 Simplifique la funcin f = f1 f2 + f3 utilizando el mtodo de Karnaugh.
f 1 = m(1,2,3,5,7)
3

f 2 = m(0,1,5)
3

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

P2.11 Disee un logigrama que corresponda a un conversor de cdigo binario de 3 bits a Gray de 3
bits. Es posible hacerlo utilizando solamente puertas XOR de 2 entradas?
P2.12 Disee un sistema combinacional como el especificado utilizando una red de puertas {AND,
OR, NOT} de dos etapas. (Nota): en este caso el smbolo S indica suma aritmtica.

SISTEMA
A
DISE AR

X {0,1}

Z {0,1}

los autores, 1998; Edicions UPC, 1998.

Z = Xi
i=0

70

Diseo digital
_________________________________________________________________________________

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

SISTEMA
A
DISEAR

1 si a = b
z0 =
0 si a b

1 si a > b
z1 =
0 si a b

1 si a < b
z2 =
0 si a b

Se pide realizar una implementacin mnima del comparador utilizando nicamente puertas NOR.
Nota: Obsrvese que las funciones son mutuamente excluyentes y que es posible obtener
cualquiera de ellas a partir de las otras dos.
P2.14 Considere la funcin F(h8,h4,h2,h1) realizada mediante el logigrama siguiente

h2
h1

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 mnimo que d el valor
lgico "1" para las mismas combinaciones de entrada vlidas que el anterior.
P2.15 Simplifique la funcin f = f1 + f2 f3 utilizando el mtodo de Karnaugh.
f 1 = m(1,7) + m(6)
3

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

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

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

los autores, 1998; Edicions UPC, 1998.

71
________________________________________________________________________________

Fundamentos abstractos del diseo digital

b) Utilizando solamente puertas XOR de dos entradas.

a
b
c
f

P2.17 Se quiere disear 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 nmero del mes codificado en binario. Se pide realizar una implementacin mnima del subsistema
usando solamente puertas NOR de tres entradas e inversores.

M8
M4
M2
M1

SISTEMA
A
DISEAR

D31
D30
D<30

P2.18 Disee un sistema combinacional que determine si una combinacin codificada en ASCII
corresponde o no a un dgito decimal. Utilizar solamente puertas NAND y/o NOR de tres entradas.
P2.19 El logigrama de la izquierda, Y0 corresponde a una posible implementacin de la funcin
incompletamente especificada Y.

X 3 X 2 X1

X0

X 3 X 2 X1

Y0

los autores, 1998; Edicions UPC, 1998.

X0

Y1

72

Diseo digital
_________________________________________________________________________________

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


b) Construya su mapa de Karnaugh y encuentre la expresin mnima de Y0 como producto de
sumas.
c) Si Y 1, en la figura de la derecha, es otra posible implementacin para Y, cules de las
combinaciones de entrada X 3 X2 X1 X0 deben ser inespecificadas y por qu? Razone si sera
posible que hubiera ms inespecificaciones.
d) Encuentre el mapa de Karnaugh de Y. Proponga una implementacin mnima de Y hecha con
dos niveles de puertas NAND.
P2.20 Se pide hacer la implementacin mnima del sistema combinacional siguiente teniendo en
cuenta que para realizarla se dispone solamente de 3 puertas OR de 3 entradas, 6 puertas AND de 3
entradas y tantos inversores como sean necesarios.
4

SISTEMA
A
DISEAR

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

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

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

los autores, 1998; Edicions UPC, 1998.

Das könnte Ihnen auch gefallen