Você está na página 1de 159

NDICE.

UNIDAD I
1.1

INTRODUCCIN.

MARCO HISTRICO.

1.1.1 Desarrollo histrico de la Electrnica digital.


1.1.1.1 Inicios de la electrnica.
1.1.1.2 De las vlvulas al transistor.
1.1.1.3 Aparicin de los circuitos integrados.
1.2
1.3

SISTEMAS ANALGICOS VS DIGITALES.


DISPOSITIVOS DIGITALES.

1.3.1 Lgica Positiva.


1.3.2 Lgica Negativa.
1.3.3 Compuertas Lgicas.
1.4
1.5

CIRCUITOS INTEGRADOS.
DISPOSITIVOS PROGRAMABLES.

1.5.1 Herramientas CAD para el diseo de hardware.


1.6

NIVELES EN EL DISEO DIGITAL.

1.6.1 Herramientas de diseo.


1.6.2 Diseo Buttom-Up.
1.6.3 Diseo Top-Down.

UNIDAD 2

SISTEMAS NUMRICOS.

2.1

REPRESENTACIN DE NMEROS.

2.2

SISTEMAS: BINARIO, OCTAL Y HEXADECIMAL.

2.1.1 Sistemas numricos posicinales.


2.2.1 Sistema de numeracin binario.
2.2.2 Nmeros octales y hexadecimales.
2.3

ARITMTICA BINARIA.

2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9

Suma y resta de nmeros no decimales.


Representacin de nmeros negativos.
Representacin de magnitud y signo.
Sistema numrico en complemento.
Representacin en complemento a la base.
Representacin en complemento a dos.
Representacin de complemento a la base disminuida.
Representacin en complemento a uno.
Suma y resta en complemento a dos.
2.3.9.1 Reglas de la suma.

5
5
5
5
5
7
8
12
13
14
14
16
18
18
20
20
23
24

26
26
26
28
28
29
31
31
33
33
34
34
35
37
37
38
38

2.3.9.2 Desborde.
2.3.9.3 Reglas de la resta.
2.4

CONVERSIN.

2.4.1 Conversiones entre sistemas numricos posicinales.

UNIDAD 3
3.1

FAMILIAS LGICAS.

SEALES LGICAS Y COMPUERTAS.

3.1.1 Compuertas Lgicas.


3.1.2 Encapsulados.
3.2

LGICA BIPOLAR Y TTL.

3.2.1 Diodos.
3.2.2 Transistor de unin bipolar.
3.3

FAMILIA TTL.

3.4

TECNOLOGIA Y FAMILIAS CMOS.

3.3.1 Caractersticas Elctricas TTL.


3.4.1 Caractersticas de la familia N MOS.
3.4.2 Caractersticas de la familia CMOS.
3.4.3 Familia BICMOS.

UNIDAD 4
4.1

PRINCIPIOS DE DISEO LGICO


COMBINACIONAL.

ALGEBRA BOOLEANA.

4.1.1 Propiedades del lgebra booleana.


4.1.2 Funciones lgicas.
4.2

REPRESENTACIN DE LAS FUNCIONES LOGICAS.

4.2.1 Forma cannica.


4.2.1.1 Suma de minitrminos.
4.2.1.2 Producto de los maxitrminos.
4.2.1.3 Conversin entre formas cannicas.

4.2.2 Compuertas lgicas.


4.3
4.4

LOGICA MEZCLADA.
MINIMIZACION DE FUNCIONES LOGICAS.

4.4.1 Mapas de Karnaugh.


4.4.2 Procedimiento para Minimizar una funcin por mapas de
Karnaugh.
4.4.2.1 Mapas de Karnaugh para 5 y 6 variables.

4.4.3 Mtodo tabular de Quine McCluskey.


4.5

PROCESO DE DISEO DE UN CIRCUITO COMBINACIONAL.

39
39
39
39

43
43
44
45
48
49
52
53
54
60
61
62
64

66

66
67
68
69
69
69
70
70
72
73
76
77
77
81
83
88
3

4.5.1 Metodologa del Diseo Combinacional.

UNIDAD 5
5.1

LENGUAJE DE DESCRIPCIN DE
HARDWARE, UNA INTRODUCCIN.

LENGUAJES DE DESCRIPCIN DE ARDWARE.

5.1.1 Ventajas de los HDLS.


5.2

ESTRUCTURA DE LENGUAJE VHDL.

5.2.1 Como se declara una Entidad.


5.2.2 Como se declara una Arquitectura.
5.3

FUNCIONES.

5.3.1 Procedimientos.
5.3.2 Bibliotecas.
5.3.3 Paquetes.
5.4

DISEO ESTRUCTURAL.

5.4.1 Diseo comportamental.


5.4.2 Diseo de flujo de datos.
5.5

SIMULACIN Y SINTESIS.

UNIDAD 6

CIRCUITOS COMBINACIONALES
PRCTICOS.

89

94

94
95
96
98
100
102
103
105
105
109
109
112
113
122

6.9 MULTIPLICACIN BINARIA.

122
122
125
130
130
133
133
133
137
140
142
144
144
146
149
150

BIBLIOGRAFA.

153

6.1

EL TIEMPO EN LOS CIRCUITOS.

6.1.1 Diagramas de tiempo.


6.2
6.3

DISPOSITIVOS PROGRAMABLES COMBINACIONALES.


CODIFICADOR.

6.4

DECODIFICADOR.

6.3.1 Codificador binario de 8 a 3 con prioridad.


6.4.1 Decodificador de BCD a 7 segmentos.
6.4.1.1

Cdigo BCD.

6.5 MULTIPLEXOR.
6.6 DEMULTIPLEXOR.
6.7 COMPARADOR.
6.8 SUMADORES Y RESTADORES.

6.8.1 Medio sumador y sumador completo.


6.8.2 Restador.
6.8.3 Sumadores en VHDL.

VOLVER A NDICE

INTRODUCCIN.

1.1 MARCO HISTRICO.


1.1.1 Desarrollo histrico de la Electrnica digital.
La electrnica digital ha sido una de las revoluciones tecnolgicas ms importantes y
decisivas de la humanidad, sus principios los podemos resumir en:

1.1.1.1 Inicios de la electrnica.


En trminos generales la electrnica y la electricidad nacen con los trabajos de varios
destacados fsicos, tales como Coulomb, Ampre, Gauss, Faraday, Henry y Maxwell. Tales
trabajos quedaron recogidos, en 1865, en el marco formal de la teora del electromagnetismo,
formulada por Maxwell; teora que, sin embargo, debi esperar hasta 1888 para su
demostracin.
La mencionada demostracin la realiz Hertz con la generacin, en el laboratorio, de
ondas electromagnticas. Ms tarde, en 1896, Marconi logr transmitir y detectar estas ondas
(llamadas hertzianas) y abri el camino a posteriores avances tan importantes como la
televisin y las telecomunicaciones.
En trminos ms concretos, el nacimiento de la electrnica, como rama de la ciencia,
puede situarse en 1895, ao en el que Lorentz postul la existencia de partculas cargadas
llamadas electrones, lo cual fue demostrado, experimentalmente, por Thompson dos aos
ms tarde. Braun, en 1897, hizo pblica su invencin del primer tubo electrnico,
rudimentario antecesor de los tubos de rayos catdicos que forman parte de los televisores.

1.1.1.2 De las vlvulas al transistor.


La electrnica no asumi las connotaciones tecnolgicas que la caracterizan hasta los
inicios del siglo XX, con la invencin de los primeros componentes y, en particular en 1904,
con la creacin de la vlvula termoinica o diodo, por parte del fsico britnico John
Ambrose Fleming.
El diodo, de ese momento, estaba compuesto esencialmente por dos electrodos
metlicos contenidos en un tubo vaco, uno de los cuales (el ctodo) es calentado por un
filamento. Debido a este calentamiento, el ctodo emite electrones (efecto termo-inico), que
son acelerados hacia el otro electrodo (el nodo) cuando este ltimo se mantiene positivo
respecto al ctodo. De tal forma que, intercalado en un circuito, el diodo muestra la
5

VOLVER A NDICE

importante propiedad de conducir corriente nicamente cuando la tensin que se le aplica


tiene un determinado sentido. De esta manera, permite la rectificacin de una corriente
alterna.
La corriente que se obtiene conectando un electrodomstico a una de las tomas que
hay en las paredes de las casas (corriente de red), tiene la caracterstica de invertir
continuamente el sentido con que circula por un circuito, y por tanto se llama corriente
alterna (la corriente de red es alterna debido a la tcnica de su produccin), lo cual no
compete a la electrnica. De todas maneras, en muchos casos, es necesario disponer de una
corriente continua; es decir, que nunca invierta su sentido de circulacin. Para esto se
emplean unos determinados dispositivos que rectifican la corriente, transformndola de
alterna a continua.
En 1905, el fsico estadounidense Lee De Forest, perfeccionando el invento de
Fleming, cre el trodo. El aporte de Forest consisti en la introduccin de un tercer elemento
(la rejilla), cerca del ctodo. La proximidad entre el ctodo y la rejilla hace que, si a esta
ltima se le aplica una pequea tensin, influya sustancialmente sobre el flujo de electrones
en el interior del tubo. Por tanto, el trodo acta como amplificador (el nombre de audin,
que originalmente dio De Forest a su invento, traduce el intento de aplicar esta caracterstica
a las seales de sonido).
Con el invento de los dispositivos mencionados se aporto la base tecnolgica para el
rpido desarrollo de las radiocomunicaciones. Para 1912 en los Estados Unidos se constituy
una asociacin de radiotcnicos. All mismo tambin se construy, en 1920, la primera
emisora de radio comercial.
En las dcadas de 1920 y 1930 se introdujeron mejoras a los tubos electrnicos
originarios (que culminaron con la introduccin del pentodo), aumentando su flexibilidad y
su campo de aplicaciones. Entre otras cosas, se hizo posible la invencin de la televisin
(1930) y de la radio de modulacin de frecuencia (1933).
Los tubos de vaco dieron paso a una importante aplicacin, como fue la realizacin
de los primeros calculadores electrnicos en los aos siguientes de la Segunda Guerra
Mundial. Mientras tanto, fsicos como Block, Schottky, Sommerfeld, Winger y otros
realizaban excelentes progresos en el estudio de una importante clase de sustancias slidas:
los semiconductores, con el propsito de hacer ms eficientes tales calculadoras.
En 1945 se cre un grupo de trabajo, compuesto por fsicos tericos y experimentales,
un qumico y un ingeniero electrnico, en los Bell Telephone Laboratories, para encontrar
una alternativa al empleo de los tubos electrnicos en las telecomunicaciones. Ciertamente
los tubos presentan inconvenientes, entre los cuales se cuenta una escasa fiabilidad debida a
sus elevadas temperaturas de funcionamiento. En 1947 los fsicos John Bardeen, Walter
Brattain y William Schockley obtuvieron un efecto de amplificacin en un dispositivo
compuesto por dos sondas de oro prensadas sobre un cristal de germanio: naca as el
transistor, que actualmente es el elemento fundamental de todo dispositivo electrnico.
Ms tarde, gracias a los progresos efectuados por los laboratorios Bell en la
obtencin de materiales de base (germanio y silicio) con un elevado grado de pureza, el
6

VOLVER A NDICE

primer ejemplar fue perfeccionado por Schockley con la introduccin del transistor de unin,
totalmente de material semiconductor.
La comercializacin del transistor en 1951 sent las bases para el desarrollo
cualitativo y cuantitativo de la tecnologa electrnica en la segunda mitad del siglo. El
transistor proporcion las mismas funcionalidades del trodo, siendo ms pequeo, eficiente,
fiable, econmico y duradero. Esto permiti la existencia de una gama de aplicaciones antes
impensables y la reduccin de costos y del tamao de los dispositivos electrnicos de uso
comn, abrindose as el camino hacia el fenmeno de la electrnica de consumo.
La aparicin del transistor tambin proporcion un gran impulso al desarrollo de los
ordenadores. En 1959 la IBM present el primer ordenador (el 7090) de estado slido, es
decir, con transistores.
En la actualidad, los componentes con semiconductor como el transistor, han
sustituido por completo a los tubos de vaco.
Con esto las condiciones para el desarrollo de la electrnica digital quedan dadas y
con los siguientes hechos se formaliza como alternativa en el diseo de dispositivos
electrnicos a todo nivel:

1.1.1.3 Aparicin de los circuitos integrados.


A finales de los aos cincuenta con la introduccin del circuito integrado por parte de
Kilby, de la Texas Instrument, y de Noyce y Moore, de la Fairchild Semiconductor Company
se da el salto cualitativo ms importante en el desarrollo de la electrnica y en particular de la
electrnica digital. La idea fue incluir un circuito completo en una sola pastilla de
semiconductor: el Chip, y hacer de las conexiones entre los dispositivos parte integrante de
su proceso de produccin, reduciendo as las dimensiones, peso y el costo con relacin al
nmero de elementos activos.
El desarrollo de la microelectrnica, como se denomina la electrnica de los circuitos
integrados es impresionante. A partir de su comercializacin (1961), el nmero mximo de
componentes integrados en un chip se duplic cada ao desde los 100 iniciales. En la
segunda mitad de los aos setenta, al introducirse la integracin a gran escala (VLSI) y
superar los 10.000 componentes, se ingres en la poca actual, en la que es normal encontrar
varios millones de componentes integrados en un chip muy pequeo.

VOLVER A NDICE

1.2 SISTEMAS ANALGICOS VS DIGITALES.


Los circuitos electrnicos se dividen, segn la naturaleza de los valores que toman las
seales o magnitudes que intervienen en el sistema, en dos categoras: analgicos y digitales.
La electrnica analgica utiliza magnitudes con valores continuos, mientras que la
electrnica digital emplea magnitudes con valores discretos.
Una seal analgica es aquella cuya magnitud, en cada instante de tiempo puede
tomar cualquiera de los infinitos valores del rango donde este definida, pudiendo cambiar el
valor en cantidades arbitrariamente pequeas. La mayora de las magnitudes que se pude
medir cuantitativamente se presenta en la naturaleza en forma analgica. En la figura 1.2.1 se
muestra la representacin de una seal analgica en tiempo continuo.

Figura 1.2.1 Representacin de una seal analgica en tiempo continuo.


Ejemplo de las magnitudes analgicas son: presin, humedad, temperatura, tensin
elctrica, etc. En este caso la magnitud se presentada es la humedad relativa del aire en fusin
del tiempo. Se aprecia como, a lo largo de un periodo de tiempo, la humedad relativa vara de
forma continua en un rango de valores, es decir entre dos puntos cualesquiera, como por
ejemplo 25% y 50%, no lo hace de forma instantnea, sino que va tomando los infinitos
valores que hay en ese rango o intervalo.
Las seales digitales son aquellas cuya magnitud, en cada instante de tiempo, solo
pueden tomar un valor de entre un conjunto finito de q valores discretos. En el paso de un
valor a otro se produce una discontinuidad al no existir valores intermedios (Figura 1.2.2)

VOLVER A NDICE

Figura 1.1 Representacin de una seal senoidal muestreada digitalmente.


Si q =2 la magnitud presenta dos estados bien diferenciado: cerrado o abierto, alto
(High) y bajo (Low), nivel de tensin alto (VH) o bajo (VL), valor numrico 1 o 0, etc.
A las seales digitales con dos estados se las denomina binaria, y constituyen la base
de la electrnica digital.
Los sistemas y dispositivo analgicos procesan las seales variantes en el tiempo que
pueden adquirir cualquier valor a lo largo de un intervalo continuo de voltaje, corriente u otra
medida. Una seal digital se modela para tomar, en cualquier instante, solamente uno de dos
valores discretos, que denominamos 0 y1 (o BAJO y ALTO, FALSO y VERDADERO,
negacin y afirmacin, Samuel y Pedro, o cosas por el estilo).
Las computadoras digitales han estado presente desde los aos cuarentas y se han
extendido su uso comercial desde los sesentas. Apenas en estos ltimos 10 a 20 aos la
revolucin digital se ha extendido a muchos otros aspectos de la vida. Ejemplos de
aquellos sistemas analgicos que ahora se han vuelto digitales:
.Fotografas. La mayora de las cmaras todava hacen usos de pelculas que tienen
recubrimiento de haluros de plata para grabar imgenes. Sin embargo, el incremento en la
densidad de los microcircuitos o chips de memoria digital ha permitido el desarrollo de
cmaras digitales que graban una imagen como una matriz de 640X480, o incluso arreglo
ms extensos de pxeles donde cada pxel almacena las intensidades de sus componentes de
color rojo, verde y azul, de 8 bits cada uno. Estn gran cantidad de datos, alrededor de siete
millones de bits en este ejemplo. Puede ser procesada y comprimida en un formato
denominando JEPG y deducirse a un tamao tan pequeo como el equivalente al 5% del
tamao original de almacenamiento, dependiendo de la cantidad de detalle de la imagen. De
este modo, las cmaras digitales dependen del almacenamiento como el procesamiento
digital.

VOLVER A NDICE

. Grabaciones de videos. Un disco verstil digital, de mltiples usos (DVD, por las
siglas de digital verstil disc) almacena videos en un formato digital altamente comprimido
denominando MPEG-2. Este estndar codifica una pequea fraccin de los cuadros
individuales de video en un formato comprimido semejante al JPEG, y codifica cada uno de
los otros cuadros como la diferencia entre este y el anterior. La capacidad de un DVD de una
sola capa y un solo lado es de aproximadamente 35 mil millones de bits, suficiente para
grabar casi 2 horas de video de alta calidad, y un disco de doble capa y doble lado tiene
cuatro veces esta capacidad.
. Grabacin de audio. Alguna vez se fabricaron exclusivamente mediante la
impresin de formas de ondas analgica sobre cinta magntica o un acetato (LP), las
grabaciones de audio utilizan en la actualidad de manera ordinaria discos compactos
digitales (CD, Compact Disc). Un CD almacena la msica como una serie de nmeros de 16
bits que corresponde a muestra de las formas de la onda analgica original. Se realiza una
muestra por canal estereofnico cada 22.7 microsegundos. Una grabacin en CD a toda su
capacidad (73minutos) contiene hasta seis mil millones de bits de informacin.
. Carburadores de automviles. Algunas vez controlados estrictamente por
conexiones mecnicas (incluyendo dispositivos mecnicos analgicos inteligentes que
monitorean la temperatura, presin, etc.), en la actualidad los motores de los automviles
estn controlados por microprocesadores integrados. Diversos sensores elctricos y
electromecnicos convierten las condiciones de la maquina en numero que el
microprocesador pueden examinar para determinar como controlar el flujo de gasolina y
oxigeno hacia el motor. La salida de microprocesador es una serie de nmeros variantes en
el tiempo, que activa a traductores electromecnicos que, a su vez, controlan la maquina.
. El sistema telefnico. Comenz hace un siglo con micrfonos y receptores
analgicos que se conectaban en los extremos de un par de alambres de cobre (o, era una
cuerda?). Incluso en la actualidad en la mayor parte de los hogares todava se emplean
telfonos analgicos, los cuales transmiten seales analgicas hacia la oficina central (CO)
de la compaa telefnica. No obstante, en la mayora de las oficinas centrales, estas seales
analgicas se convierten a un formato digital antes que sean enviadas a sus destinos, ya sea
que se encuentre en la misma oficina central o en cualquier punto del planeta. Durante
muchos aos los sistemas telefnicos de conmutacin privados (PBX, private branch
exchanges) que se utilizan en los negocios han transportado el formato digital todo el camino
hacia los escritorios. En la actualidad, negocios, oficinas centrales y los proveedores
tradicionales de servicios telefnico, estn combinado a sistema integrados que combina la
voz digital con el trafico digital de datos sobre una sola red de Protocolo de Internet IP (por
la siglas en ingles de Protocolo de Internet).
. Semforos. Para controlar los semforos
se utilizan temporizadores
electromecnicos que habilitaban la luz verde para cada una de las direcciones de la
circulacin durante un intervalo predeterminado de tiempo. Posteriormente, se utilizaron
reveladores en modulo controladores que podan activar los semforos de acuerdo con el
patrn del trafico detectado mediante censores que se incrustan en el pavimento. Los
controladores de hoy en da hace uso de microprocesadores y pueden controlar los
semforos de modo que maximicen el flujo vehicular o como sucede en algunas ciudades de
10

VOLVER A NDICE

California, sean un motivo de frustracin para los automovilista en un sin nmero de


creativas maneras.
. Efectos cinematogrficos. Los efectos especiales creados exclusivamente para ser
utilizado con modelos miniaturizados de arcilla, escenas de accin, trucos de fotografa y
numerosos traslapes de pelculas cuadro por cuadro. En la actualidad naves espaciales,
insectos, otras escenas mundanas e incluso bebes (en la produccin animada de Pixar, Tin
Toy) se sintetizan por completo haciendo uso de computadoras digitales.
La revolucin Electrnica ha estado vigente bastante tiempo; la revolucin del
estado slido comenz en dispositivos analgicos y aplicaciones como transistores y los
radios transistorizados.
. Reproducibilidad de los resultados. Dado el mismo conjunto de entradas (tanto en
valor como en serie de tiempo), cualquier circuito digital que hubiera diseado en la forma
adecuada, siempre producir exactamente los mismo resultados.
Las salidas de un circuito analgico varan con la temperatura, el voltaje de la fuente de
alimentacin, la antigedad de los componentes y otros factores.
. Facilidad de diseo. El diseo digital, a menudo denominado diseo lgico, es
lgico. No se necesita habilidades matemticas especiales y en el comportamiento de los
pequeos circuitos lgicos pude visualizarse mentalmente sin tener alguna idea especial
acerca del funcionamiento de capacitores, transistores u otros dispositivos que quieren el
clculo para moldearse.
. Flexibilidad y funcionalidad. Una vez que un problema se ha reducido a su forma
digital, podr resolverse utilizando un conjunto de pasos lgicos en el espacio y el tiempo.
Por ejemplo, se pude disear un circuito digital que mezcle o codifique su voz grabada de
manera que sea absolutamente indescifrable para cualquiera que no tenga su clave
(contrasea), pero esta podr ser escuchada virtualmente sin distorsin por cualquier
persona que posea la clave. Intente hacer lo mismo con un circuito analgico.
. Programabilidad. Usted probablemente ya este familiarizado con la computadoras
digitales y la facilidad con la que se puede disear, escribir y depurara programas para la
misma. Pues bien, adivine que? Una gran parte del diseo digital se lleva a cabo en la
actualidad al escribir programas tambin, en los lenguajes de descripcin de hardware
(HDLs, por siglas en ingles). Estos lenguajes le permiten especificar o moldear tanto la
estructura como la funcin de un circuito digital. Adems de incluir un copilador, un HDL
tpico tambin tiene programas de simulacin y sntesis. Estas herramientas de
programacin (software) se utilizan para verificar el comportamiento del modelo de
hardware antes que sea construido, para posteriormente realizar la sntesis del modelo en un
circuito, aplicando una tecnologa de componente en particular.

11

VOLVER A NDICE

Velocidad. Los dispositivos digitales de la actualidad son muy veloces. Los


transistores individuales en los circuitos integrados mas rpidos pueden conmutarse en
menos de 10 picosegundos, un dispositivo completo y complejo construido a partir de
estos transistores pueden examinar sus enteradas y producir una salida en menos de 2
nanosegundos. Esto significa que un dispositivo de esta naturaleza pude producir 500
millones o mas resultados por segundo.
Economa. Los circuitos digitales pueden proporcionar mucha funcionalidad en un
espacio pequeo. Los circuitos que se emplean de manera repetitiva pude integrarse en
un solo chip y fabricase en masas a costo muy bajo, haciendo posible la fabricacin de
productos desechables como son las calculadoras, relojes digitales y tarjetas musicales de
felicitacin.
. Avance tecnolgico constante. Cuando se disea un sistema digital, casi siempre
se sabe que habr una tecnologa ms rpida, ms econmica o en todo caso, una tecnologa
superior para el mismo caso poco tiempo. Los diseadores inteligentes pueden adaptarse
estos avances futuros durante el diseo inicial de un sistema, para anticiparse ala
adolescencia del sistema y para ofrecer un valor agregado a los consumidores. Por ejemplo,
la computadora porttil a menudo tiene ranuras de expansin para adaptar procesadores
ms rpidos o memorias ms grandes las que se encuentran disponibles en el momento de
su presentacin en el mercado. De este modo, esto es suficiente para una matriz de
mercadotecnia acerca del diseo digital.

1.3 DISPOSITIVOS DIGITALES.


La Electrnica Digital estudia las seales elctricas, pero en este caso son seales
discretas, es decir, estn bien identificadas, razn por la cual a un determinado nivel de
tensin se lo llama estado alto (High) o Uno lgico; y a otro, estado bajo (Low) o Cero
lgico.
Los circuitos digitales no son precisamente ceros y unos pequeos flotando entorno a
los circuitos. Los circuitos digitales manejan voltajes y corrientes analgicos y se fabrican a
partir de corrientes analgicos. Las abstraccin digital permite que el comportamiento
analgico se ignorado en la mayora de los casos, de manera que los circuitos pueden ser
modelados como si en realidad procesaran ceros y unos.
Un aspecto importante de la abstraccin digital es la asociacin de un intervalo de
valores analgicos para cada valor lgico (cero o uno).
Se garantiza que una compuerta tpica tenga un nivel de voltaje preciso para una
salida que corresponde al cero lgico. En lugar de ello, puede producir un voltaje en algn
sitio de un intervalo, este intervalo se conoce como margen ruido: en un circuito real, la

12

VOLVER A NDICE

salida de una compuerta puede corromperse debido a este ruido excesivo, de cualquier forma
su valor ser interpretado correctamente en las entradas de otra compuerta. Este
comportamiento es similar para las salidas que corresponden al un lgico.
La labor de un diseador de circuitos electrnicos consiste en asegurarse que las
compuertas lgicas produzcan y reconozcan las seales lgicas que se encuentran dentro los
intervalos apropiados.
Supongamos que las seales elctricas con que trabaja un sistema digital son 0V y
5V. Es obvio que 5V ser el estado alto o uno lgico, pero bueno, habr que tener en cuenta
que existe la Lgica Positiva y la Lgica Negativa, veamos cada una de ellas.

1.3.1 Lgica Positiva.


En esta notacin al 1 lgico le corresponde el nivel ms alto de tensin (positivo, si
quieres llamarlo as) y al 0 lgico el nivel mas bajo (que bien podra ser negativo), pero que
ocurre cuando la seal no est bien definida...?. Entonces habr que conocer cuales son los
lmites para cada tipo de seal, en este grfico (Figura 1.3.1) se puede ver con mayor claridad
cada estado lgico y su nivel de tensin.

5
4

V+

5
4

1 Logico (H)

3.5
2.5
1 0
0

V+

3.5
2.5
1

Logico (L)
O bien

Figura 1.3.1 Lgica positiva.

13

VOLVER A NDICE

1.3.2 Lgica Negativa.


Aqu ocurre todo lo contrario, es decir, se representa al estado "1" con los niveles
ms bajos de tensin y al "0" con los niveles ms altos ( Figura 1.3.2).

5
4

V+

5
4

0 Logico (L)

3.5
2.5
1 1

V+

2.5
1

Logico (H)
O bien

3.5

Figura 1.3.2 Lgica negativa.

1.3.3 Compuertas Lgicas.


Las compuertas lgicas son dispositivos que operan con aquellos estados lgicos
mencionados anteriormente, su funcin es: de un lado ingresas los datos, sta realiza una
operacin, y finalmente, te muestra el resultado (Figura 1.3.3).

Figura 1.3.3 Compuertas lgicas.

Cada una de las compuertas lgicas se representan mediante un Smbolo, y la


operacin que realiza (Operacin lgica) con una tabla, llamada Tabla de Verdad.
Compuerta NOT.
Se trata de un inversor, es decir, invierte el dato de entrada, por ejemplo; si pones su
entrada a 1 (nivel alto) obtendrs en su salida un 0 (o nivel bajo), y viceversa. Esta compuerta
dispone de una sola entrada. Su operacin lgica es invertir la seal lgica (Figura 1.3.4).

14

VOLVER A NDICE

a
0
1

b
1
0

Figura 1.3.4 Compuerta lgica not.

Compuerta AND.
Una compuerta AND tiene dos entradas como mnimo y su operacin lgica es un
producto entre ambas, no es un producto aritmtico, aunque en este caso coincidan (Figura
1.3.5)

a
0
0
1
1

b
0
1
0
1

c
0
0
0
1

Figura 1.3.5 Compuerta lgica and.

Compuerta OR.
Al igual que la anterior posee dos entradas como mnimo y la operacin lgica, ser
una suma entre ambas (Figura 1.3.6)

a
0
0
1
1

b
0
1
0
1

c
0
1
1
1

Figura 1.3.6 Compuerta lgica or.

15

VOLVER A NDICE

1.4 CIRCUITOS INTEGRADOS.


A la coleccin de una o ms compuertas en un solo chip se le conocen como
circuitos integrados. La mayora de los circuitos integrados son pequeos trozos, o chips,
de silicio, de entre 2 y 4 mm2, sobre los que se fabrican los transistores. La fotolitografa
permite al diseador crear centenares de miles de transistores en un solo chip situando de
forma adecuada las numerosas regiones tipo n y p. Durante la fabricacin, estas regiones
son interconectadas mediante conductores minsculos, a fin de producir circuitos
especializados complejos. Estos circuitos integrados son llamados monolticos por estar
fabricados sobre un nico cristal de silicio. Los chips requieren mucho menos espacio y
potencia, y su fabricacin es ms barata que la de un circuito equivalente compuesto por
transistores individuales (Figura 1.4.1)

Figura 1.4.1 Fotografa tomada a una tarjeta Electrnica con varios chips.
Sin tener en cuenta su tamao, un circuito integrado forma parte en un principio de
una oblea de silicio mucho mas grande, hasta de diez pulgadas de dimetro
aproximadamente, que contienen docenas de replicas del mismo CI. Todos los chips del
circuito integrado en la oblea se fabrican al mismo tiempo como si fueran pizzas que se
fueran a vender como rebanadas excepto que en este caso, cada pedazo se conoce como un
cuadro.
Despus de que se fabrica la oblea, los cuadros se prueban directamente sobre la
oblea y se marcan las que presentan defectos. Posteriormente la oblea se rebana para
producir cuadros individuales y se descartan los que estn marcados como defectuosos.
Cada cuadro sin marcar se monta en un encapsulado y sus circuitos de entrada salida se
conectan a las terminales del encapsulado, se somete a una prueba final y se enva al
cliente.

16

VOLVER A NDICE

Los CI de integracin a pequea escala que se utilizan en las prcticas de laboratorio


vienen en un encapsulado de 14 terminales en doble lnea, como se ilustra en la figura
1.4.2. La separacin entre las terminales en una columna es de 0.1 pulgadas y el espacio
entre columnas es de 0.3 pulgadas.

Figura 1.4.1 Circuito integrado DIP con 14 terminales.


La construccin de estos dispositivos es posible gracias a las tecnologas de
fabricacin que han venido surgiendo como son la GaAs, BiCMOS, Bipolar y CMOS. En
la figura 1.4.2 se muestran las principales tecnologas de circuitos integrados (IC) y
familias de circuitos lgicos que se encuentran en uso hoy da(1997). Los elementos de
cada familia estn hechos de la misma tecnologa, tienen estructuras de circuitos
semejantes, y exhiben las mismas funciones bsicas.
Tecnologa de IC y familias de Circuitos Lgicos

CMOS

CMOS
Complementarios

Pseudo
NMOS

Bipolar

Circuitos lgicos Circuitos


de transistor
lgicos
de paso
dinmicos

TTL

BiCMOS

GaAs

ECL

Figura 1.4.2 Familia de circuitos digitales.


17

VOLVER A NDICE

Cada familia de circuitos lgicos ofrece un conjunto particular de ventajas y


desventajas. En el estilo convencional del diseo de sistemas, se selecciona una familia
apropiada, por ejemplo la TTL, CMOS o ECL (circuito de emisor acoplado) y se intenta
poner en prctica tanto como sea posible en el sistema, usando para ello mdulos de
circuito que pertenezcan a esta familia. En esta forma, la interconexin de los diversos
paquetes es relativamente fcil. Si por otra parte, se utilizan paquetes de ms de una
familia, se tienen que disear circuitos de interfaz apropiados.
La seleccin de una familia lgica esta basada en consideraciones como son; la
flexibilidad, velocidad de operacin, disponibilidad de funciones complejas, inmunidad al
ruido, escala de temperatura de operacin, disipacin de potencia y el costo.
Con mucho la tecnologa que ms se prefiere ahora en da, para la ejecucin de
sistemas digitales es la tecnologa MOS. El pequeo tamao, la facilidad de fabricacin y la
baja disipacin de potencia de los MOSFET hace posible niveles sumamente altos de
integracin de circuitos lgicos y de memoria.

1.5 DISPOSITIVOS PROGRAMABLES.


El diseo digital tradicional no necesita involucrar a ninguna de las herramientas de
software. Sin embargo, en la actualidad, las herramientas de software son una parte esencial
del diseo digital. En efecto, la disponibilidad y la factibilidad de los lenguajes de
descripcin de hardware (HDL, por sus siglas en ingls) y las herramientas de sntesis y
simulacin de circuitos que los acompaan han cambiado el panorama del diseo digital
durante estos ltimos aos.
En el diseo asistido por computadora (CAD, por sus siglas en ingls) varias
herramientas de software mejoran la productividad del diseador y le ayudan a perfeccionar
la exactitud y calidad de los diseos. El impacto de las herramientas CAD sobre el proceso
de diseo de circuitos electrnicos y sistemas es fundamental. No slo por la adicin de
interfaces grficas para facilitar la descripcin de esquemas, sino para la inclusin de
herramientas, como los simuladores, que facilitan el proceso de diseo y la conclusin con
xito de los proyectos.

1.5.1 Herramientas CAD para el diseo de hardware:


Lenguajes de descripcin de circuitos. Son lenguajes mediante los cuales es posible
describir un circuito electrnico o digital. La descripcin puede ser de bloques,
donde se muestra la arquitectura del diseo, o de comportamiento, donde se
describe el comportamiento del circuito en ves de los elementos de los que esta
compuesto.

18

VOLVER A NDICE

Captura de esquemas. Es la forma clsica de describir un diseo electrnico y la ms


extendida ya que era la nica usada antes de la aparicin de las herramientas de
CAD. La descripcin esta basada en un diagrama donde se muestran los diferentes
componentes de un circuito.
Grafos y diagramas de flujo. Es posible describir un circuito o sistema mediante
diagramas de flujo, maquinas de estados, etc. En este caso seda una descripcin
grfica pero, al contrario que la captura de esquemas, la descripcin seda
comportamental en vez de una descripcin de componentes.
Simulacin de sistemas. Estas herramientas se usan sobre todo para la simulacin de
sistemas. Los componentes de la simulacin son elementos, de alto nivel como
discos duros, buses de comunicaciones, etc. Se aplica la teora de colas para la
simulacin.
Simulacin funcional. Bajando al nivel de circuitos digitales se puede realizar una
simulacin funcional. Este tipo de simulacin comprueba el funcionamiento de
circuitos digitales de forma funcional, es decir, a partir del comportamiento lgico
de sus elementos (sin tener en cuenta problemas electrnicos como retrasos, etc.) se
genera el comportamiento del circuito frente a unos estmulos dados.
Simulacin digital. Esta simulacin, tambin exclusiva de los circuitos digitales, es como
la anterior con la diferencia de que se tienen en cuenta retrasos en la propagacin de
las seales digitales. Es una simulacin muy cercana al comportamiento real del
circuito y prcticamente garantiza el funcionamiento correcto del circuito a realizar.
Simulacin elctrica. Es la simulacin de ms bajo nivel donde las respuestas se elaboran
a nivel del transistor. Sirven tanto para circuitos analgicos como digitales y su
respuesta es prcticamente idntica a la realidad.
Realizacin de PCBs. Con estas herramientas es posible realizar el trazado de pistas
para la posterior fabricacin de una placa de circuito impreso.
Realizacin de circuitos integrados. Son herramientas de CAD que sirven para la
realizacin de circuitos integrados. Las capacidades graficas de estas herramientas
permiten la realizacin de las diferentes mascaras que intervienen en la realizacin
de circuitos integrados.
Realizacin de dispositivos programables. Con estas herramientas se facilita la
programacin de este tipo de dispositivos, desde las simples PALs (Programmable
And Logic) hasta las ms complejas FPGAs (Field Programmable Gate Arrays)(
Figura 1.5.1), pasando por las PLDs (Programmable Logic Devices)

19

VOLVER A NDICE

Figura 1.5.1 Estructura bsica de un FPGA..

1.6 NIVELES EN EL DISEO DIGITAL.

1.6.1 Herramientas de diseo.


En su sentido ms moderno, CAD(diseo asistido por ordenador, del ingles
Computer Aided Desing) que significa proceso de diseo que emplea sofisticadas tcnicas
graficas de ordenador, apoyadas en paquetes de software, para la ayuda de problemas
analticos, de desarrollo, de coste, y ergonmicos; asociados con el trabajo de diseo.
CAD podra decirse que es un termino que es asociado con el diseo del dibujo, sin
embargo dado que el diseo incluye otras fases, el trmino CAD se emplea tanto para el
dibujo como para el resto de herramientas que ayudan al diseo (por ejemplo la
comprobacin de funcionamiento, anlisis de costes, etc.)
El impacto de las herramientas CAD sobre el diseo de circuitos electrnicos es
fundamental. No solo por la adicin de interfaces graficas para facilitar la descripcin de
esquemas, si no por la inclusin de herramientas, como los simuladores, que facilitan el
proceso de diseo y de conclusin con xito los proyectos.
20

VOLVER A NDICE

EDA (Electronic Desing Automation) es el nombre que se le da a todas las


herramientas (tanto hardware como software) que sirven como ayuda en el diseo de
sistemas electrnicos. Dentro del EDA las herramientas de CAD juegan un importante
papel.
En el diseo de hardware se tiene un problema fundamental, que no existe, por
ejemplo en la produccin de software. Este problema es el alto coste del ciclo diseoprototipacin, testeo, vuelta a empezar, ya que el coste del prototipo suele ser en general
bastante elevado.
Por esta razn se impone la necesidad de reducir este ciclo de diseo para no incluir
la fase de prototipacin ms que al final del proceso, para evitar as la implementacin de
varios prototipos errneos que encarezcan el producto. Se incluye la fase de simulacin y
comprobacin de circuitos utilizando las herramientas de CAD, de manera que no es
necesario realizar un prototipo, para comprobar el funcionamiento del circuito,
economizando as el ciclo de trabajo. Este ciclo de diseo hardware se muestra con detalle
en la figura 1.6.1

21

VOLVER A NDICE

no

si
idea

descripcion
del modelado

testeo y
simulacion

correcto?

sintesis
mapeado
tecnologico

no

extraccion
de
propiedades

no

si
simulacion

correcto?

si
fabricacion

testeo
depurado

funciona?

producto
acabado

Figura 1.6.1 Flujo de diseo para sistemas electrnicos y digitales.

22

VOLVER A NDICE

En el ciclo de diseo hardware las herramientas de CAD estn presentes en todos


los pasos. Estas herramientas permiten la realizacin de microchips, as como la realizacin
y programacin de dispositivos programables.

1.6.2 Diseo Buttom-Up.

El diseo button-up (diseo de abajo hacia arriba) se aplica al mtodo de diseo


mediante el cual se realiza la descripcin del circuito o sistema que se pretende realizar,
empezando por describir los componentes mas pequeos del sistema para mas tarde
agruparlos en diferentes mdulos, y estos a su vez en otros mdulos hasta llegar a uno solo
que represente el sistema completo que se pretende realizar. En la figura se muestra la
metodologa de diseo.

3
2

LF412A

SISTEMA
Figura 1.6.2 Metodologa del diseo Buttom-Up.
Esta metodologa de diseo no implica una estructuracin jerrquica de los
elementos del sistema, si no que esta estructuracin, al contrario de lo que ocurre en el
diseo top-down se realiza despus de la descripcin del circuito, y por tanto, no resulta
necesaria.
En un diseo Buttom Up, se empieza por crear una descripcin, con esquemas, por
ejemplo de los componentes que forman parte del circuito. Estos componentes
normalmente pertenecen a una librera que contiene chips, resistencias, condensadores, y
otros elementos que representan unidades funcionales con significado propio dentro del
diseo.

23

VOLVER A NDICE

En general esta forma de disear no es muy buena, ya que es un flujo de diseo


bastante ineficiente. Para diseos muy grandes como los actuales no se pueden esperar unir
miles de componentes a bajo nivel y pretender que el diseo funcione adecuadamente. El
hecho de unir un numero elevado de componentes entre si sin tener una estructura mas
elevada que permita separarlos en bloques hace que sea complejo el anlisis del circuito, lo
que provoca dificultades a la hora de detectar fallos en el circuito, anomalas de
funcionamiento etc. Con esto la probabilidad de cometer errores de diseo se hace ms
elevada.
Esta metodologa es la que se vena utilizando en los primeros tiempos de
automatizacin del proceso del diseo. Esto es as por que esta parte se haba conseguido
automatizar completamente. Para empezar las herramientas de diseo permitan una
descripcin sencilla a bajo nivel (captura de esquemas) y a partir de ah, mediante otras
herramientas integradas en el proceso era posible su implementacin.

1.6.3 Diseo Top-Down.


El diseo top-down es, en su mas pura forma el proceso de captura de una idea en
alto nivel de abstraccin, e implementarla partiendo de esa descripcin abstracta, despus ir
hacia abajo incrementando el nivel de detalle segn sea necesario. Esta forma de disear se
muestra prcticamente en la figura 1.6.3 donde el sistema inicial se ha dividido en
diferentes mdulos, cada uno de los cuales se encuentra a su vez subdividido hasta llegar a
los elementos primarios de la descripcin.

nivel
alto

SISTEMA

LF412A
4

nivel
bajo

Figura 1.6.3 Metodologa del diseo Top Down.

24

VOLVER A NDICE

Los aos 80 trajeron una revolucin en las herramientas para el diseo por
ordenador. Aunque esto no modifico la forma de disear si que mejoro la facilidad de
hacerlo. As mediante el software disponible por ordenador, se podan disear circuitos
mas complejos en, comparativamente, cortos periodos de tiempo (aunque siguiera
utilizando el diseo button-up).
Pero hoy en da, nos encontramos en un marco en que es necesario hacer diseos
ms y ms complicados en menos tiempo. As, se puede descubrir que el flujo de diseo
buttom-up es bastante eficiente. El problema bsico de diseo buttom-up es que no permite
acometer con xito diseos que contenga muchos elementos puesto que es fcil conectarlos
de forma errnea. No se puede esperar unir miles de componente de bajo nivel, o
primitivas, y confiar en que el disee funcione adecuadamente.
Para esto existe la metodologa top-down que sigue un poco el lema de divide y
vencers, de manera que un problema, en principio muy complejo es dividido en varios
subproblemas que a su vez pueden ser divididos en otros problemas mucho ms sencillos a
tratar. En el caso de un circuito esto se traducir en la divisin del sistema completo, en
mdulos, cada uno de los cuales con una funcionalidad determinada. A su vez estos
mdulos, dependiendo siempre de la complejidad del circuito inicial o de los mdulos se
pueden dividir en otros mdulos hasta llegar a los componentes bsicos del circuito o
primitivas

25

VOLVER A NDICE

SISTEMAS NUMRICOS.

2.1 REPRESENTACIN DE NMEROS.


Los sistemas digitales tratan informacin binaria, siendo importante conocer los
fundamentos de los sistemas de numeracin y en especial en base dos.
La mayora de sistemas de numeracin utilizados son del tipo polinomial. En este
sistema un nmero viene definido por una cadena de dgitos, estando afectados cada uno de
ellos por un factor de escala que depende la posicin que ocupa en la cadena. Un sistema de
posicin polinomial tiene las siguientes caractersticas:

Un nmero o cantidad se representa por una sucesin ordenada de smbolos,


llamados dgitos o cifras, situados de izquierda a derecha de un unto de referencia.

Cada uno de estos dgitos tiene un valor fijo y diferente de los dems.

El nmero de posibles dgitos distintos a utilizar en un determinado sistema de


numeracin constituye la base. As, el sistema ms empleado, llamado sistema
decimal, tiene diez dgitos. En la tabla 2.1 se muestra algunos ejemplos de los
sistemas de numeracin mas empleados.

SISTEMA
Decimal
Binario
Octal
Hexadecimal

BASE
10
2
8
16

DIGITOS
0,1,2,3,4,5,6,7,8 y 9
0y1
0,1,2,3,4,5,6 y 7
0,1,2,3,4,5,6,78,9,A,B,C,D,E Y F

Tabla 2.1 Ejemplos de sistemas de numeracin.

2.1.1 Sistemas numricos posicinales.


El sistema numrico tradicional que se aprende en la escuela y se usa todos los das,
se conoce como sistema numrico posicional. En tal sistema, un nmero se representa por
una cadena de dgitos, donde cada posicin de dgito tiene un peso asociado. El valor de un
nmero es una suma ponderada de los dgitos, por ejemplo:
1734 = 11000 + 7100 + 310 + 41

26

VOLVER A NDICE

Cada peso es una potencia de 10 correspondiente a la posicin del dgito. Un punto


decimal permite el uso de potencias de 10 tanto positivas como negativas:
5185.68 = 51000 + 1100 + 810 + 5-1 +60.1 + 80.01
En general, un nmero D de la forma d3 d2d1d0, d -1 d-2 . tiene el valor
D = d1 101 + d0 100 + d-1 10-1 + d-2 10-2
Aqu, la cifra 10 se conoce como la base o raz del sistema numrico. En los
sistemas posicinales, la raz debe ser un entero r, por lo que un dgito en la posicin i tiene
peso ri. La forma general de un nmero en tal sistema numrico es:
dp- 1 dp-2 . . . d1d0 d-1 d--2 d-n
Existen p dgitos a la izquierda del punto y n dgitos a la derecha del punto
conocido como punto decimal en el sistema con base 10. Si se omite el punto, se supone
que est a la derecha del dgito de la extrema derecha. El valor del nmero es la suma de
cada dgito multiplicado por la correspondiente potencia de la raz:

Si se exceptan los posibles ceros anteriores y posteriores, la representacin de un


nmero en un sistema numrico posicional es nica. El dgito que est ms a la izquierda de
tal nmero se llama dgito de orden superior o ms significativo; el de ms a la derecha es
el dgito de orden inferior o menos significativo.
Los circuitos digitales tienen seales que normalmente estn en una de dos
condiciones: alto o bajo, cargado o descargado, desactivado o activado. Las seales en estos
circuitos representan dgitos binarios (o bits) que tienen uno de dos valores: 0 1. De ah
que la base 2 a menudo se use para representar nmeros en un sistema digital. La forma
general de un nmero binario es:
bp-1 bp-2...b1b0 b-1 b--2 b-n

y su valor es:

B =

p 1

i= n

2i

27

VOLVER A NDICE

En un nmero binario, el punto se llamar punto binario. Cuando se trate con punto
binario nmeros binarios u otros no decimales, se usar un subndice para indicar la base de
cada nmero, a menos que sta sea obvia por el contexto. Algunos ejemplos de nmeros
binarios y sus equivalentes decimales son:
100112 = 116 + 08 + 04 + 12 + 11 = 1910
1000102 = 132 + 016 + 08 + 04 + 12 + 01 = 3410
101.0012 = 14 + 02 + 11 + 00.5 + 00.25 + 10.125 = 5.12510
El bit ubicado ms a la izquierda de un nmero binario se llama bit de orden
superior o ms significativo (MSB, siglas en ingls de most significant bit); el
localizado MSB ms a la derecha es el bit de orden inferior o menos significativo (LSB, de
least significant bit).

2.2 SISTEMAS: BINARIO, OCTAL Y HEXADECIMAL.


En los sistemas digitales la informacin numrica est generalmente representada en
el sistema numrico binario. Sin embargo, tambin son importantes otros sistemas
numricos, principalmente el OCTAL, HEXADECIMAL.

2.2.1 Sistema de numeracin binario.


El sistema binario es un sistema de numeracin en base dos, esta basado en la
utilizacin exclusiva, de cada digito binario denominado bit, de dos smbolos distintos , el
0 y el 1, para expresar cualquier magnitud numrica.
La importancia de este sistema radica en la sencillez de sus reglas aritmticas y en
que los componentes electrnicos que se emplean para la realizacin de los circuitos
digitales presentan dos estados estables perfectamente diferenciados, que hacen que sea el
sistema idneo para su uso en Electrnica digital.
El bit de menor peso o menos significativo se denomina LSB (Least Significant
Bit) y el bit de mayor peso o ms significativo MSB (Most Significant Bit).

28

VOLVER A NDICE

Binario

Decimal

O
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111

O
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Tabla 2.2 Nmeros binarios de 4 bits.

2.2.2 Nmeros octales y hexadecimales.


La base 10 es importante debido a que se usa en la vida diaria, ya que los nmeros
binarios pueden procesarse directamente mediante circuitos digitales. Los nmeros en otras
bases no se procesan a menudo directamente, pero pueden ser esenciales para
documentacin u otros propsitos. En particular las bases 8 y 16 proporcionan
representaciones breves que son convenientes para nmeros con mltiples bits en un
sistema digital.
El sistema numrico octal usa base 8, mientras que el sistema numrico
hexadecimal emplea la base 16. La Tabla 2.3 muestra los enteros binarios desde 0 hasta
1111 y sus equivalentes en numeracin octal, decimal y hexadecimal. El sistema octal
necesita 8 dgitos, as que utiliza los dgitos del 0 al 7 del sistema decimal. El sistema
hexadecimal necesita 16 dgitos, as que complementa los dgitos decimales 0-9 con las
letras A-F.

29

VOLVER A NDICE

Binario

Decimal

Octal

Hexadecimal

O
1
10
11
100
101
110
111
1000
1001
1010
1011

O
1
2
3
4
5
6
7
8
9
10
11

O
1
2
3
4
5
6
7
10
11
12
13

O
1
2
3
4
5
6
7
8
9
A
B

1100
1101
1110
1111

12
13
14
15

14
15
16
17

C
D
E
F

Tabla 2.2 Nmeros binarios de 4 bits.


Los sistemas octal y hexadecimal son tiles para representar nmeros de muchos
bits debido a que sus bases son potencias de 2. Como una cadena de tres bits puede tener
ocho combinaciones diferentes, cada cadena de tres bits puede representar de manera nica
a un dgito octal, de acuerdo con la tercera y cuarta columnas de la. De manera semejante,
una cadena de 4 bits puede representar a un dgito hexadecimal de acuerdo con la quinta y
sexta columnas de la tabla.
En consecuencia, es muy sencillo convertir un nmero binario a octal. Si se empieza
con el punto binario y se contina a la izquierda, simplemente se separan los bits en grupos
de tres y se reemplaza cada grupo con el correspondiente dgito octal:
1000110011102 = 100 011 001 1102 = 43168
111011011101010012 = 011 101 101 110 101 0012 = 3556518
El procedimiento para la conversin de binario a hexadecimal es similar, excepto
que se usan grupos de cuatro bits:
1000110011102 = 1000 1100 1110 2 = 8CE16
111011011101010012 = 0001 1101 1011 1010 1001 2 = lDBA916
En estos ejemplos se han agregado libremente ceros a la izquierda para que el
nmero total de bits sea un mltiplo de 3 o 4, segn se requiera.

30

VOLVER A NDICE

Si un nmero binario contiene dgitos a la derecha del punto binario, se puede


convertir a octal o hexadecimal comenzando en el punto y siguiendo hacia la derecha.
Tanto en el lado izquierdo como en el derecho pueden agregarse ceros para obtener
mltiplos de tres o cuatro bits, como se muestra en el ejemplo siguiente.
10.10110010112 = 0l0.l0l l00 l0l l00 2 = 2.54548

= 0010.1011 0010 1100 2 = 2.B2C16

Conversin octal. La conversin en la direccin contraria (de octal a hexadecimal


a binario) es muy sencilla. Simplemente se reemplaza cada dgito octal o hexadecimal con
la binario correspondiente cadena de 3 o 4 bits, como se ilustra a continuacin:
13578 = 001 011 101 1112
2046.178 = 010000100110.0011 112
BEAD16 = 10111110101011012
9F.46C16 = 10011111.0100011011002
En el sistema hexadecimal, dos dgitos representan un byte de 8 bits y 2n dgitos
representan una palabra de n bytes; cada par de dgitos constituye exactamente un byte. Por
ejemplo, el nmero hexadecimal de 32 bits 5678ABCD16 consiste de cuatro bits con
valores 5616, 7816, AB16 y CD16. En este contexto, a un dgito hexadecimal de cuatro bits
algunas veces se le llama semibit (nibble).

2.3 ARITMTICA BINARIA.


2.3.1 Suma y resta de nmeros no decimales.
La suma y resta manual de los nmeros no decimales usa la misma tcnica
aprendida para los nmeros decimales, slo que las tablas de suma y resta son diferentes.
Para la suma y resta de dgitos binarios. Al sumar los dos nmeros binarios X y Y,
sumamos los bits menos significativos con un acarreo inicial (Cin) de 0, lo que produce los
bits de acarreo (Cout) y de suma (S) de acuerdo con la tabla. Se continan procesando los
bits de derecha a izquierda, incluyendo el acarreo de la columna anterior en la suma de la
siguiente columna.

31

VOLVER A NDICE

SUMANDO
X

SUMANDO
Y

ACARREO
C0

SUMA
S

0
0
1
1

0
1
0
1

0
0
0
1

0
1
1
0

Tabla 2.3 Reglas de la suma.


A continuacin se muestran ejemplos de sumas decimales y las correspondientes
sumas binarias, los acarreos se muestran como una cadena C de bits.

Sumas binarias

La resta o sustraccin binaria es otra de las operaciones aritmticas comnmente


realizadas en las computadoras digitales La resta binaria se realiza de manera similar,
usando prstamos (P0) en vez de acarreos entre cada paso y produciendo un bit de
diferencia d. muestra dos ejemplos de restas decimales y las correspondientes restas
binarias. Al igual que en la resta decimal, los valores minuendo binarios en las columnas se
modifican cuando ocurre un prstamo. Las reglas se muestran en la siguiente tabla:

MINUENDO
x
0
0
1
1

SUBSTRAENDO
y
0
1
0
1

RESTA
d
0
1
1
0

PRSTAMO
P0
0
1
0
0

Tabla 2.4 Reglas de la resta.

32

VOLVER A NDICE

Un uso muy comn de la resta en las computadoras es el de la comparacin de dos


de nmeros. Por ejemplo, si la operacin X - Y produce un prstamo en la posicin del
nmeros bit ms significativo, entonces X es menor que Y; de lo contrario X es mayor que
o igual que Y.

2.3.2 Representacin de nmeros negativos.


Hasta ahora slo se ha hablado de nmeros positivos, pero hay muchas formas de
representar a los nmeros negativos. En la vida diaria, usamos el sistema de magnitud y
signo. Sin embargo, la mayora de las computadoras usan uno de los sistemas de nmeros
complementados que se presentara a continuacin.

2.3.3 Representacin de magnitud y signo.


En el sistema de magnitud y signo, un nmero consiste de una magnitud y de un
smbolo que indica si la magnitud es positiva o negativa. Por lo que los nmeros +98, -57,
+ 123.5 y - 13 los interpretamos de la manera usual; tambin suponemos que el signo es " +
" si no se escribe ningn smbolo. Hay dos posibles representaciones del cero, "+0" y "- 0",
pero ambas tienen el mismo valor. El sistema de magnitud y signo se aplica a los nmeros
binarios por medio de bit de signo una posicin de bit extra para representar el signo (el bit
de signo). De manera tradicional, el bit ms significativo (MSB) de la cadena de bits se usa
como el bit de signo (0 = ms, 1 = menos) y los bits de orden inferior contienen la
magnitud. As que escribamos varios enteros en magnitud y signo, de 8 bits y sus
equivalentes decimales:
010101012 = +8510
011111112 = +12710
000000002 = +010
110101012 = -8510
111111112 = -12710
100000002 = -010

El sistema de magnitud y signo contiene un nmero igual de enteros positivos y


negativos. Un entero en magnitud y signo de n bits est en el rango de -(2n-1 - 1) a + (2n-1 1), con dos posibles representaciones del cero.

33

VOLVER A NDICE

Ahora suponiendo que se quiere construir un circuito de lgica digital para que
sume nmeros en magnitud y signo. El circuito debe examinar los signos de los sumandos
para determinar qu hacer con las magnitudes. Si los signos son los mismos, ste debe
sumar las magnitudes y dar el mismo signo al resultado. Si los signos son diferentes, ste
debe comparar las magnitudes, restar la ms pequea a la ms grande y dar al resultado el
signo de la ms grande. Todos estos "si", "sumas", "restas" y "comparaciones" se traducen
en circuitos lgicos bastante complejos. Los sumadores para sistemas de nmeros
complementados son mucho ms simples.

2.3.4 Sistema numrico en complemento.


Mientras que los sistemas de magnitud y signo niegan un nmero al cambiar su
signo, un sistema numrico en complemento niega un nmero al tomar su complemento
definido por el sistema. Tomar el complemento es ms difcil que cambiar el signo, pero los
dos nmeros en un sistema en complemento pueden sumarse o restarse directamente sin
verificar la magnitud y signo, cmo lo requiere el sistema de magnitud y signo. Se
describirn dos sistemas en complemento llamados "el complemento a la base" y el
complemento a la base disminuida.

En cualquier sistema numrico en complemento, normalmente se trabaja con un


nmero fijo de dgitos, digamos n. (Sin embargo, puede incrementarse el nmero de dgitos
mediante la "extensin del signo": agregar ceros a la izquierda si es positivo o unos si es
negativo)

D = dn-1dn-2d1d0
Si un nmero D se complementa dos veces, el resultado es D.

2.3.5 Representacin en complemento a la base.


En un sistema en complemento a la base, el complemento de un nmero de n dgitos
se obtiene al restarlo de rn. En el sistema decimal, el complemento a la base se llama el
complemento a 10.
Numero

Complemento a 10

1849
2067
100
7
8151
0

8151
7933
9900
9993
1849
10000 (= 0)

Tabla 2.5 Complemento a 10.

34

VOLVER A NDICE

Por definicin, parece necesaria una operacin de resta para calcular el


complemento a la base de D. Sin embargo, esta resta puede evitarse al rescribir rn como (rn
- 1) + 1 y rn - D como ((rn - 1) - D) + 1. El nmero rn - 1 tiene la forma mm---mm, donde
m = r - 1 y tiene n dgitos m. Por ejemplo, 10,000 es igual a 9,999 + 1. Si definimos el
complemento de un dgito d como r - 1 - d, luego (rn - 1) - D se obtiene al complementar
los dgitos de D. Por lo que el complemento a la base de un nmero D se obtiene al
complementar los dgitos individuales de D y sumndole 1. Por ejemplo, el complemento a
10 de 1849 es 8150 + 1 o sea 8151.

Complementos de dgitos
Dgito Binario Octal Decimal Hexadecimal
0

3
4

4
3

6
5

C
B

D
E

2
1

Tabla 2.6 Complementos de dgitos.

2.3.6 Representacin en complemento a dos.


Para los nmeros binarios, el complemento a la base se llama complemento a dos.
El MSB de un nmero en este sistema sirve como el bit de signo; un nmero es negativo si
y slo si su MSB es 1. El equivalente decimal para un nmero binario en complemento a
dos se calcula de la misma manera que para un nmero sin signo, excepto que el peso del
MSB es -2n-1 en vez de +2n-1. El rango de nmeros representables peso de MSB comprende
desde -(2n-1) hasta + (2n-1 - 1). Algunos ejemplos de 8 bits se muestran en seguida.

35

VOLVER A NDICE

Ejemplo a 8 bits:

En un caso ocurre un acarreo fuera de la posicin del MSB, como se muestra en el


ltimo ejemplo. En todas las operaciones en complemento a dos se ignora este bit y slo se
usan los n bits de orden inferior del resultado.
En el sistema numrico en complemento a dos, el cero se considera positivo debido
a que su bit de signo es 0. Ya que el complemento a dos tiene una nica representacin del
cero, se tiene un nmero negativo extra, -2n-1, el cual no tiene una contraparte positiva.
Podemos convertir un nmero X en complemento a dos de n bits en uno de m bits,
pero hay que tener cuidado. Si m > n debemos agregar m - n copias del bit de signo de X a
la izquierda de X. Esto es, se agregan ceros a los nmeros positivos y unos a los nmeros
negativos; esto se conoce como extensin de signo. Si m < n, se descartan los n - m bits de
ms a la izquierda de X; sin embargo, el resultado el vlido slo si todos los bits
descartados son iguales al bit de signo del resultado.
La mayora de las computadoras y otros sistemas digitales usan el sistema de
complemento a dos para representar nmeros negativos. Sin embargo, para ser completos,
tambin se describir el complemento a la base disminuida y los sistemas en complemento
a 1.

36

VOLVER A NDICE

2.3.7 Representacin de complemento a la base disminuida.


En un sistema de complemento a la base disminuida, el complemento de un nmero
D de n dgitos se obtiene al restarlo de bn - 1. Esto puede hacerse complementando los
dgitos individuales de D, sin sumarle 1 como en el sistema complemento a la base. En
decimal esto se conoce como complemento a 9.

Numero

Complemento a 9

1849
2067
100
7
8151
0

8150
7932
9899
9992
1848
9999

Tabla 2.7 Complementos a 9.

2.3.8 Representacin en complemento a uno.


El sistema de complemento a la base disminuida para los nmeros binarios se llama
complemento a uno. Al igual que en complemento a dos, el bit ms significativo es el de
signo (0 si es positivo, 1 si es negativo). Por tanto, hay dos representaciones del cero, el
cero positivo (0000) y el cero negativo (1111). Las representaciones de los nmeros
positivos son iguales tanto en complemento a uno como a dos. Sin embargo, las
representaciones de los nmeros negativos difieren en 1. Se da un peso de -(2n-1 - 1), en vez
de -2n-1, al bit ms significativo cuando se calcula el equivalente decimal de un nmero en
complemento a uno. El rango de nmeros representable va desde -(2n-1 - 1) hasta + (2n-1 1). A continuacin se muestran algunos nmeros de 8 bits y sus complementos a uno.
1710 = 000100012

==> 111011102

= -1710

11910 =011101112 ==> 100010002 = -11910


-9910 = 100111012 ==> 011000102 = 9910
-12710 = 10000000 ==> 011111112 = 12710
010 = 000000002 (cero positivo) ==> 111111112 = 010 (cero negativo)

37

VOLVER A NDICE

La principal ventaja del sistema de complemento a uno es su simetra y su fcil


complementacin. Sin embargo, un sumador para nmeros en "complemento a uno es ms
artificioso que un sumador en complemento a dos. Asimismo, los circuitos para la
deteccin del cero en un sistema en complemento a uno debe verificar ambas
representaciones del cero, o bien siempre debe convertir 1111 a 0000..

2.3.9 Suma y resta en complemento a dos.


2.3.9.1 Reglas de la suma.
Si se comienza con 10002 (-810) y se sigue contando, vemos que cada nmero
sucesivo en complemento a dos hasta 01112 (+710 ), puede obtenerse al sumar 1 al nmero
previo, ignorando los acarreos ms all de la cuarta posicin. No puede decirse lo mismo de
los nmeros en magnitud y signo y de los en complemento a uno. Debido a que la suma
ordinaria es slo una extensin del conteo, los nmeros en complemento a dos pueden
sumarse mediante la suma binaria ordinaria, ignorando los acarreos ms all del MSB. El
resultado en todos los casos ser la suma correcta, siempre que no se exceda el rango del
sistema numrico.
Suma en complemento a dos:

38

VOLVER A NDICE

2.3.9.2 Desborde.
Si una operacin de suma produce un resultado que excede el rango del sistema
numrico, se dice que ocurre un desborde. En la representacin de conteo modular de
desborde la figura 1-3, el desborde ocurre durante la suma de nmeros positivos cuando
contamos ms all de + 7. La suma de dos nmeros con signo diferente nunca produce un
desborde, pero la suma de dos nmeros de igual signo puede provocarlo.
Afortunadamente, existe una regla simple para detectar el desborde en la suma: una
suma se desborda si los signos de los sumandos son iguales y el signo de la suma es
diferente al signo de los sumandos. Algunas veces la regla de desborde se establece en
trminos de acarreos generados durante la operacin de suma: una suma se desborda si los
bits de acarreo Cin y Cout en la posicin del signo son diferentes.

2.3.9.3 Reglas de la resta.


Los nmeros en complemento a dos pueden restarse como si fuesen nmeros
binarios ordinarios sin signo, y pueden formularse reglas apropiadas para detectar el
desborde. Sin embargo, la mayora de los circuitos para resta de nmeros en complemento a
dos no realizan la resta en forma directa. Ms bien niegan el sustraendo al tomar su
complemento a dos y luego lo suman al minuendo con las reglas normales de la suma.
Negar el sustraendo y sumar el minuendo puede realizarse con una sola operacin
de suma como sigue: hgase el complemento bit a bit del sustraendo, luego smese al
minuendo con un acarreo inicial (c ) de 1 en vez de 0.
El desborde en la resta puede detectarse al examinar los signos del minuendo y el
sustraendo complementado, usando las mismas reglas de la suma; o bien al usar la tcnica
de los ejemplos precedentes, los acarreos entrantes y salientes en la posicin del bit de
signo pueden observarse, y as detectar el desborde independientemente de los signos de
entrada y salida, al emplear de nuevo la misma regla que en la suma.

2.4 CONVERSIN.
2.4.1 Conversiones entre sistemas numricos posicinales.
De manera genrica, la conversin entre dos bases no puede hacerse por simple
sustitucin; se requiere hacer operaciones aritmticas. Se mostrar cmo convertir un
nmero en cualquier base a base 10 y viceversa, usando aritmtica de base 10.

39

VOLVER A NDICE

Conversin de nmeros:

Donde r es la base del nmero y hay p dgitos a la izquierda del punto y n a la


derecha. Por lo que el valor del nmero puede calcularse al convertir cada dgito del
nmero a su equivalente en base 10 y expandiendo la frmula mediante la aritmtica en
base 10. Ejemplos:
lCE816 = 1163+12162+14161 +8160 = 740010
FlA316 = 15163+1162+10161+3160 = 6185910
436.58 = 482+381+680+58-1 = 286.62510
132.34 = 1.42+341+240+34-1 = 30.7510

Una forma corta para convertir nmeros enteros a base 10 se obtiene al rescribir la
expansin de la frmula como sigue:
D = (( ((dp-1) r + dp-2) r + ...) r + d1) r + d0

Es decir, comenzando con una suma de 0, se inicia con el dgito de la extrema


izquierda, se multiplica la suma por r y se agrega el siguiente dgito a la suma, repitiendo
esto hasta que todos los dgitos se hayan procesado. Por ejemplo, puede escribirse:
FlAC16 = (((15) 16+1) 16+10) 16+12
Aunque la frmula no es muy interesante en s misma, constituye la base para un
mtodo muy conveniente de convertir un nmero decimal D a una base r. Considere lo que
pasa si dividimos la frmula por r. Ya que la parte de la frmula que est en parntesis es
divisible por r, el cociente ser:
Q=(( ((dp-1) r + dp-2) r + ...) r + d1) r + d1

40

VOLVER A NDICE

Y el residuo ser d0. Por lo que d0 puede calcularse como el residuo de la divisin
larga de D entre r. Adems, el cociente Q tiene la misma estructura que la frmula original.
Por consiguiente, las divisiones sucesivas por r darn dgitos sucesivos de D de derecha a
izquierda, hasta que se hayan obtenido todos los dgitos de D. A continuacin se dan
algunos ejemplos.

Conversin

Mtodo

Ejemplo

Binario a:
Octal

Sustitucin 101110110012 = 101 110 110 012 = 27318

Hexadecimal Sustitucin 101110110012 = 101 1101 10012 = 5D916


Decimal

Suma

101110110012 = 11024+0512+1256+1128+1-64 +
032+116+18+04+11 = 149710

Octal a:
Binario

Sustitucin 12348 = 001 010 011 1002

Hexadecimal Sustitucin 12348 = 0010100111002 = 0010 1001 11002 = 29C16


Decimal

Suma

12348 = 1512+264+38+41 = 66810

Hexadecimal
a
Binario

Sustitucin C0DE16 = 1100 0000 1101 11102

Octal

Sustitucin C0DE16 = 11000000110111102 = 1 100 000 011 011 1102 =


14033610

Decimal

Suma

C0DE16 = 124096+0256+1316+14.1 = 49374 10

Divisin

10810= 11011002

Decimal a
Binario

108 / 2 = 54 residuo 0 (LSB)


54 / 2 residuo O
27 / 2= 13 residuo 1
13 / 2=6 residuo 1
6 / 2 = 3 residuo 0
3 / 2 = 1 residuo 1
1 / 2=0 residuo I (MSB)

41

VOLVER A NDICE

Octal

Divisin

10810 = 1548
108 / 8 = 13 residuo 4 (LSB)
13 / 8=1 residuo 5
1 /8=0 residuo 1 (el dgito ms significativo)

Hexadecimal Divisin

10810 = 6C16
108 / 16 = 6 residuo 12 (LSB)
6 / 16 = 0 residuo 6 (el dgito ms significativo)

Tabla 2.8 Mtodos para conversin de bases comunes.

42

VOLVER A NDICE

FAMILIAS LGICAS.

3.1 SEALES LGICAS Y COMPUERTAS.


Gracias a los circuitos lgicos digitales, se pueden implementar diseos de
computadores satisfactoriamente, solo usando la lgica de conmutacin (1s y 0s), tablas
de verdad y una serie de factores que hacen funcionar un circuito digital.
Los valores lgicos de 0 y 1 son conocidos como dgitos binarios de un bit
cada uno, de manera que si tenemos una combinacin de 011 diremos que se tiene un
valor binario de tres bits; Para una aplicacin practica hacia un problema de digital nosotros
podemos ocupar los bits que sean necesarios dependiendo a las entradas de nuestro
sistema, si tenemos n entradas en nuestro circuito, habr 2 n posibles combinaciones en las
que podemos manipular las entradas para hallar la salida deseada de acuerdo al diseo que
se pide.
Por ejemplo si tenemos el caso de realizar un sumador de 2 bits con entradas Xn,
Yn, y salida Sn (donde n representa l numero de bits de nuestro sistema en este caso n =
2), el modelo que se debe seguir para el diseo se muestra en los bloques de la figura 3.1.1.
La forma de obtener la implementacin y reduccin de tablas de verdad del circuito que
hace a dicho sumador se tratara posteriormente en l capitulo de diseo lgico
combinacional.

Y2
ENTRADAS

X2

Y1

X1

SALIDAS

X1
X2
Y1
Y2

CIRCUITO
LOGICO
SUMADOR

S1

SUMADOR
COMPLETO

MEDIO
SUMADOR

S2
CARRY
CARRY

S2

C1 S1

Figura 3.1.1 Bloques de un circuito lgico sumador de dos bits con acarreo.

Un circuito lgico el cual depende nicamente de sus entradas actuales como es el


caso del sumador se le conoce como circuito combinacional, su funcionamiento se describe
completamente en una tabla de verdad donde se enumeran todas las combinaciones de
valores de entrada como de salida. En la figura 3.1.2 se muestra la tabla de verdad del
sumador.
43

VOLVER A NDICE

X1
0
0
1
1

Y1
0
1
0
1

C1
0
0
0
1

X2
0
0
0
0
1
1
1
1

S1
0
1
1
0

Medio sumador

Y2
0
0
1
1
0
0
1
1

C1
0
1
0
1
0
1
0
1

Carry S1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1

Sumador completo
Figura 3.1.2 Tablas de verdad de un circuito lgico sumador de dos bits con acarreo.

Cuando se trabaja con circuitos digitales es muy comn que los diseadores utilicen
trminos como Low (Bajo) y High (Alto), quiere decir que se estn refiriendo al termino 0
y 1 respectivamente. Esta forma de designar dichos trminos se le conoce como lgica
positiva, suele ser la ms correcta sin embargo la forma de asignacin puede ser arbitraria
segn se le facilite al diseador, ya que tambin se puede designar 1- Bajo y 0 - Alto,
conocido como lgica negativa.

3.1.1 Compuertas Lgicas.


La implementacin de circuitos lgicos digitales se realiza con dispositivos
denominados compuertas lgicas cuyos smbolos lgicos y tablas de verdad se describen en
la figura 3.1.1.1

ENTRADA
A

ENTRADA
B

SALIDA
Y

1
3
2

0
0
1
1

0
1
0
1

0
1
1
1

COMPUERTA OR. F(A,B)= A+B

ENTRAD
A

ENTRADA
B

SALIDA
Y

0
0
1
1

0
1
0
1

0
0
0
1

COMPUERTA AND. F(A,B)= AB

44

VOLVER A NDICE
ENTRADA
A

ENTRADA
B

SALIDA
Y

0
0
1
1

0
1
0
1

1
0
0
0

1
3
2

COMPUERTA NAND. F(A,B)= A+ B

ENTRADA
A

ENTRADA
B

SALIDA
Y

0
0
1
1

0
1
0
1

0
1
1
1

2
1
3

COMPUERTA NOR. F(A,B)= AB

ENTRADA
A

SALIDA
Y

1
1

COMPUERTA NOT. F(A)=Y

Figura 3.1.1.1 Smbolos y tablas de verdad de las principales compuertas lgicas.


Las compuertas lgicas descritas anteriormente s podra decir que son las comunes
y principales, existen una gran variedad de compuertas las cuales dependen de ciertas
caractersticas como; El tipo de encapsulado, l numero de entradas y la tecnologa con la
que estn desarrolladas.
Cabe mencionar que las compaas que desarrollan circuitos integrados, emplean
su propia tecnologa desarrollando no nicamente compuertas lgicas, sino una gran
variedad de dispositivos electrnicos como: moduladores, amplificadores, temporizadores,
decodificadores etc.

3.1.2 Encapsulados.
Generalmente los circuitos integrados vienen en una presentacin de encapsulados,
existen diferentes formas de encapsulados que difieren en su tamao fsico, l numero de
terminales y el circuito que contiene en el interior.

45

VOLVER A NDICE

El primer tipo de encapsulado es conocido como DIP, es el ms comn y ha estado


disponible durante varios aos. Se les conoce como encapsulado de doble lnea debido a
que es de forma rectangular y sus terminales se encuentran en los lados ms largos del
rectngulo. En la figura 3.1.2.1 se muestra una encapsulado tipo DIP de 14 pines.

Figura 3.1.2.1 Forma del encapsulado DIP de 14 terminales con puertas nand.
Se puede notar que la mayora de los integrados presentan una muesca la cual nos
representa que la numeracin de pines inicia comenzando con 1.
En muchas ocasiones los fabricantes ponen a disposicin al usuario las hojas de
especificaciones del circuito integrado, donde se presenta informacin tcnica del
integrado como son: pines de entrada, salida, voltajes mximos - mnimos, pines de
alimentacin, dimensiones del encapsulado y algunas veces incorpora posibles
aplicaciones. De dichos trminos hablaremos mas adelante.
Los encapsulados DIP en la actualidad son los ms populares para los prototipos y
experimentacin educacional ya que su tamao se presta para su fcil manipulacin. Los
nuevos mtodos de manufactura que se utilizan recientemente han dejado un poco olvidado
el encapsulado tipo DIP, estamos hablando de la tecnologa de montado de superficie en la
cual se coloca un circuito integrado en cojinetes conductores en la superficie de la tarjeta,
mantenindose fijas en una pasta de soldadura en donde toda la tarjeta se calienta para crear
una conexin slida.
De esta tecnologa se desprende el encapsulado tipo SOIC (Circuito integrado de
Perfil) conocido tambin como alas de gaviota que es un encapsulado de dimensiones
pequeas y alcanza a medir 1.27cm de largo, en la Figura 3.1.2.2 se muestra el diagrama de
este tipo de encapsulado

46

VOLVER A NDICE

Figura 3.1.2.2 Forma del encapsulado SOIC de 14 terminales.

La necesidad de ms y ms conexiones en un circuito integrado complejo ha


resultado en otro encapsulado muy popular que tiene pines en los cuatro lados del chip. El
PLCC (Portador de chip de plstico con terminales) en forma de J que rota debajo de
circuito integrado como se muestra en la Figura 3.1.2.3. Estos dispositivos se pueden
montar en un receptculo o montaje especial de PLCC.

Figura 3.1.2.3 Forma del encapsulado PLCC de 28 terminales.

Otro tipo de encapsulados son los QFP (Encapsulado plano cudruple y TQFP
(Encapsulado plano cudruple delgado) los cuales tienen pines en los cuatro lados, son de
superficie y la diferencia con los PLCC es que tiene terminales en forma alas de gaviota.
Existe un encapsulado el cual es presentado en un arreglo de rejillas de bolas BGA (Matriz
47

VOLVER A NDICE

de red de bolas de paso fino y perfil bajo) el cual es un encapsulado de montaje de


superficie que ofrece una densidad aun mayor. El arreglo de rejillas de pines (PGA figura
3.1.2.4) es un encapsulado similar que se usa cuando los componentes deben estar en un
encapsulado para su fcil remocin.

Figura 3.1.2.4. Forma del encapsulado PGA (matriz de red de bolas de paso fino y
perfil bajo).
Existen otros tipos de encapsulados de manera que los mencionados aqu, son los
ms comunes encontrar en tarjetas electrnicas como microcontroladores, memorias,
FPGAs, PALs, GALs etc.

3.2 LGICA BIPOLAR Y TTL.


La tecnologa de los circuitos integrados se ha desarrollado drsticamente, desde
hace ya varios aos debido a la escala de integracin. La primera comienza con la
integracin a pequea escala (SSI) donde se podan implementar hasta 12 compuertas por
chip, la integracin a gran escala (MSI), con 12 a 99 compuertas por chip, la integracin a
gran escala y de muy grande escala (LSI y VLSI) con las cuales se pueden obtener decenas
de miles de compuertas por chip y recientemente la integracin de giga escala (GSI) con un
milln, o ms de compuertas por chip. A continuacin se describe lo mencionado
anteriormente.

48

VOLVER A NDICE

Debido a esta razn en la actualidad tenemos encapsulados tan pequeos, de bajo


consumo de energa y de muy bajo costo con millones de compuertas dentro de ellos. Los
circuitos integrados han hecho a los sistemas digitales sean ms confiables, debido a que en
su interior no existen uniones mediante soldadura defectuosa, si no que es un circuito
compacto que tiene uniones compactas y bien definidas. Sin embargo tienen una
desventaja, nosotros no podemos utilizar directamente grandes valores de voltaje en los
circuitos, debido al calentamiento de la placa conductora, de manera que si queremos
trabajar con altos voltajes necesitamos aislar nuestro circuito por medio de optoacopladores y enseguida conectar relevadores, SCRs, TRIACs, etc.
De esta manera se hace necesario conocer la arquitectura interna as como
comprender las caractersticas elctricas de la mayora de las familias lgicas y el tipo de
tecnologa que utiliza de cada familia.
Comenzaremos por definir la Familia Lgica Bipolar basada en transistores de
unin conocida tambin como la lgica de transistor-transistor (TTL transistor transistor
logia.) Presentada por primera vez en la dcada de 1960, es la familia de familias la cual es
compatible con cada una de las otras las cuales difieren nicamente en la velocidad,
consumo de energa y costo.
Las familias lgicas bipolares para su funcionamiento estn conformadas por
diodos, resistencias y transistores. Los elementos bipolares ms simples hacen el uso de
diodos y resistores posteriormente el transistor para elementos un poco mas sofisticados a
continuacin describiremos el principal funcionamiento de estos dispositivos.

3.2.1 Diodos.
Es un dispositivo semiconductor el cual esta compuesto por dos tipos de materiales
semiconductores llamados tipo p y tipo n el cual es fabricado a partir de un cristal
monoltico en la cual las dos mitades son dopadas o se les asigna diferentes impurezas para
darles propiedades tipo p y tipo n. El diodo es un dispositivo de dos terminales y cuyo
smbolo se muestra en la figura 3.2.1.1

49

VOLVER A NDICE

Figura 3.2.1.1 Smbolo del Diodo.


Si un voltaje negativo en relacin con la direccin de referencia indicada en la
figura 3.2.1 se aplica al diodo, no circula corriente y el diodo se comporta como un circuito
abierto como se muestra en la figura 3.2.1.2 Se dice que los diodos que operan de este
modo estn inversamente polarizados, o que operan en direccin inversa.
Un diodo ideal tiene corriente cero cuando opera en direccin inversa y se dice que
esta en corte. La terminal positiva se denomina nodo y la terminal negativa se conoce con
el nombre de ctodo.
i
--->

v<0=>i=0

Figura 3.2.1.2 Diodo polarizado inversamente.


Por otra parte, si una corriente positiva se aplica al diodo ideal, en sus terminales
aparece una cada de voltaje igual a cero. En otras palabras el diodo ideal se comporta
como un corto circuito en la direccin positiva as que pasa cualquier corriente con cada de
voltaje cero. Se dice que un diodo que conduce en direccin positiva esta conduciendo o
simplemente conduce. Este hecho se muestra a continuacin en la Figura 3.2.1.3.
i
--->

i>0=>v=0

Figura 3.2.1.3 Diodo polarizado directamente.

50

VOLVER A NDICE

De esta forma definido su funcionamiento, a continuacin se describe su operacin


para realizar operaciones lgicas, para ello es necesario mostrar las caractersticas de
niveles lgicos que se muestran en la tabla 3.2.1.1

Nivel de seal
0-2 volts
2-3 volts
3-5 volts

Denominacin
BAJO
margen de ruido
ALTO

Valor lgico binario


0
indefinido
1

Tabla 3.2.1.1 Niveles lgicos en un diodo.

Con estas definiciones una compuerta AND se puede construir como se muestra en
el diagrama de la figura 3.2.1.4.
5v

D1

Z
D2

Figura 3.2.1.4 Compuerta AND con diodos.

Como podemos ver el anlisis del circuito es sencillo ya que cualquier valor bajo en
la entrada X, Y hace que la salida se aterrice a tierra teniendo como salida un valor de
voltaje bajo de 0 volts. De esta manera la nica forma en que Z cambie el valor de 1 es que
las entradas tengan una entrada en alto.

51

VOLVER A NDICE

3.2.2 Transistor de unin bipolar.


Los transistores se pueden clasificar en dos tipos, segn las uniones
semiconductoras: npn y pnp. En la figura 3.2.2.1 se muestran las uniones, smbolos y su
representacin como diodos. De estos dos tipos de transistores, los ms empleados son los
transistores npn ya que presentan una ganancia mayor, y por lo tanto sern los ms rpidos.
Est basada en el transistor multi-emisor. Este transistor es un transistor con varios
emisores, una sola base y un solo colector.
Debido a la aparicin de dos diodos en cada transistor, estos transistores muestran
cuatro zonas de operacin las combinaciones de las diferentes zonas de cada diodo. En la
figura 3.2.2.2 se muestran dichas zonas y sus principales propiedades.
Zona de corte. El transistor se comporta como un circuito abierto, por lo que no circula
intensidad por ninguno de sus terminales. En esta zona los dos diodos se encuentran
cortados.
Zona activa directa, u zona hmica. El transistor se comporta como un amplificador de
intensidad desde la base hasta el colector. En este caso, el diodo base-emisor est
conduciendo, mientras que el base-colector est cortado.

B
E

E
C

B
E

E
Figura 3.2.2.1. Uniones, smbolos y representacin con diodos de transistores bipolares.
Zona activa inversa. Es una zona parecida a la anterior, pero cambiando los terminales de
emisor y colector. La principal diferencia (aparte de la anterior) es que la amplificacin es
sustancialmente menor.

52

VOLVER A NDICE

Zona de saturacin. El transistor se comporta como un cortocircuito entre colector y


emisor, que debido a las diferencias geomtricas de ambas uniones mantiene una pequea
tensin. En esta zona los dos diodos se encuentran conduciendo.

Figura 3.2.2.2. Zonas de operacin de los transistores bipolares.

3.3 FAMILIA TTL.


Esta familia lgica es la ms comn y es la que ha sido durante mucho tiempo la
ms socorrida debido a su fcil adquisicin. La identificacin de la familia se hace con los
dos primeros dgitos del nmero del dispositivo; por ejemplo 74XX indica que se trata de
un circuito integrado TTL estndar, comercial y que tiene un intervalo de operacin de 0
a 70 C. La serie 54XX (tambin TTL estndar) es utilizada para trabajar en circunstancias
ms severas y es utilizada para especificaciones militares, debido a que sus rangos van de
55 C a +125 C.
De la familia TTL estndar se desprenden una serie de subfamilias las cuales
dependen del tipo de dispositivos utilizados para la construccin de circuitos integrados. La
forma de reconocer los dispositivos con los que esta implementado dicho CI es con letras
despus de 54XX o 74XX.

53

VOLVER A NDICE

Las subfamilias TTL son las siguientes:


Ninguna letra
LS
S
L
ALS
AS
F

TTL estndar
Schottky de bajo consumo de potencia
Schottky
Bajo consumo de potencia
Schottky avanzada de bajo consumo de potencia
Schottky avanzada
TTL Schottky avanzada de Fairchild (FAST)

La numeracin que sigue despus de la subfamilia seala la funcin del CI. Por
ejemplo; el 54L10 es una compuerta NAND (tres compuertas en un CI) triple de tres
entradas de bajo consumo de potencia que satisface especificaciones militares, la 74LS32
es una compuerta OR cudruple (cuatro compuertas en un CI) de dos entradas schottky de
bajo consumo de potencia.
La serie TTL estndar tiene retardos de propagacin mximos de 2 ns y disipaciones
de potencia mxima de 20mW por cada compuerta lgica. La serie TTL de bajo consumo
de potencia tiene retardos de propagacin de 60 ns y disipaciones de potencia mximas de
2mW por cada compuerta lgica.
La serie TTL de alta velocidad tiene retardos de propagacin mximos de 10 ns y
disipaciones de potencias mximas mxima de 40 mW por compuerta. Los retardos de
propagacin se reducen aun ms con en las compuertas TTL sujetas al diodo schottky con 5
ns y disipaciones de potencia mximas de 36 mW.

3.3.1 Caractersticas Elctricas TTL.


Generalmente es necesario conocer las diferentes caractersticas elctricas que tiene
cada compuerta debido a que pueden ser ocupadas en una practica determinada, as que es
necesario saber cuales son los pines de entrada, pines de salida, pines de alimentacin,
voltajes y corriente que nos puede suministrar etc. Para dicho trabajo las empresas que se
dedican a la construccin de circuitos integrados ponen a disposicin del usuario, manuales
que fcilmente podemos encontrar en internet o en la pagina de las empresas que las
fabrica, tal es el caso de empresas como; Texas Instruments, National, Instruments,
Farchild, Motorola, por mencionar algunas de las mas importantes.
A continuacin se
muestra una hoja caracterstica donde se muestran los valores elctricos de una compuerta
NAND (Figura 3.3.1.1) comprendidos en los manuales.

54

VOLVER A NDICE

Figura 3.3.1.1. Hoja de caractersticas elctricas que presentan los manuales.

Mencionaremos algunos parmetros importantes que describen las caractersticas


elctricas que vienen en los manuales de circuitos integrados.

VIH
VOH

Voltaje de entrada en el nivel alto de la compuerta, el cual aparece con un valor


mnimo de 2 V. Para que una entrada sea reconocida como nivel 1 debe tener al
menos 2V, as que una entrada en nivel 1 puede variar entre 2 V y Vcc =5V.
Voltaje de salida en el nivel alto, es el voltaje el cual tiene un valor mnimo de 3.5V.
As que una salida con nivel 1 puede variar entre 3.5 V y Vcc.

Si una compuerta proporciona al menos 3.5V para el nivel 1 y la compuerta que


sigue puede reconocer hasta 2 V como 1, podemos ver que hay una diferencia de 1.5V entre
los niveles, este margen de inseguridad recibe el nombre de margen de ruido del CI.
VIL

Voltaje de entrada en el nivel bajo, con un valor mximo de 0.8V, en otras palabras
el voltaje mas alto que un CI aceptara como 0 es 0.8 V. Una entrada de nivel cero
puede variar desde 0 a 0.8V.

VOL Voltaje de salida en el nivel bajo, aparece con un valor mximo de 0.4V, por lo
tanto, la salida en nivel cero puede variar entre 0 y 0.4V. Si el nivel 0 ms grande
que puede proporcionar un CI es 0.4V y la compuerta que sigue puede reconocer

55

VOLVER A NDICE

hasta 0.8 como un cero, entonces nuevamente existe un nuevo margen de ruido de
0.4. En la Figura 3.3.1.2 se muestran los niveles de voltaje para la lgica TTL.

Voh
3.5
Margen de ruido de 1.5
Vih
2.0

0.8

Vol
Margen de ruido de 0.4

0.4

Vol

Figura 3.3.1.2 Niveles de voltaje para la lgica TTL.

IOL

Es la corriente de salida en nivel bajo con un valor mximo de 16mA (refirindose


a una compuerta NAND), el fabricante garantiza que la compuerta NAND puede
absorber 16 mA de corriente sin que el voltaje de salida del nivel 0 aumente por
encima de 0.4 V.

IIL

Es la corriente de entrada en el nivel bajo, la cual tiene un mximo de 1.6mA, en


donde la corriente fluye saliendo de la compuerta. La compuerta NAND puede
absorber la corriente de otras 20 compuertas de entrada en nivel bajo de 1.6mA
cada una. A esta capacidad de carga TTL se le conoce como fan-out y esta dada por
la siguiente ecuacin

Factor de carga de salida = IOL de la compuerta excitadora / IIL de la compuerta excitada

3.3.2 Caractersticas de Conmutacin TTL

Todas las compuertas lgicas cuando son usadas en la practica, presentan un retardo
de propagacin debido a los circuitos de conmutacin internos, de esta manera una seal a
la entrada de una compuerta no responde inmediatamente a la salida, prcticamente este
retardo puede ser observado en un osciloscopio. Este retardo pude ser probado mediante un
pulso a la entrada de la compuerta (por ejemplo un inversor), se observara un retardo
cuando el nivel de voltaje cambie de 0 a 1 y posteriormente se observara otro retardo
cuando el nivel de voltaje a la entrada cambie sea de 1 a 0. Estos retardos de propagacin
son definidos a continuacin.

56

VOLVER A NDICE

TPLH. Tiempo de propagacin de BAJO a ALTO; es una medida del tiempo necesario para
que un cambio en la entrada provoque un cambio de BAJO a ALTO, este tiempo de
propagacin se mide en el momento en que la entrada alcanza 1.5 V hasta el
instante en que la salida llegue a 1.5 V en una transicin de bajo a alto.
Estos parmetros se miden con las compuertas conectadas a una carga equivalente a
10 compuertas de la misma subfamilia. El retardo de propagacin es mostrado en la figura
3.3.1.3.

3.0 V
1.5 V

1.5 V

Entrada

Voh

tPLH

1.5 V

Salida
en fase
Vol

Voh
Salida
fuera
de fase

tPLH

1.5 V

Vol

Figura 3.3.1.3 Propagacin de BAJO a ALTO para TTL.

tPHL. Es el tiempo de propagacin de ALTO a BAJO, es una unidad de tiempo necesario


para que un cambio en la entrada provoque una transicin de ALTO a BAJO en la
salida (figura 3.3.1.4), este tiempo se mide a partir del momento en que la entrada
alcanza 1.5 V hasta el instante en que la salida llega a 1.5 V en la transicin de
ALTO a BAJO.

57

VOLVER A NDICE

3.0 V
1.5 V

1.5 V

Entrada

0 V

Salida
en fase

tPLH

Salida
fuera
de fase

tPLH

Figura 3.3.1.4 Propagacin de ALTO a BAJO para TTL.

El retrazo en la propagacin limita la velocidad a la que pude trabajar el circuito


integrado. Cuando el retrazo en la propagacin se convierte en una parte significativa del periodo de la seal aplicada, entonces los niveles de las salidas y la temporizacin se
distorsionan. Como regla hay que limitar la frecuencia de la forma de onda aplicada de
modo que su periodo sea ms de dos veces el retrazo de propagacin mximo del CI. De
manera que la ecuacin queda determinada como:
f =

1
1

T 2tPLH (max)

f =

1
1

T 2tPHL (max)

Cuando se escoge una familia lgica para una aplicacin practica debe considerarse
tanto la velocidad como el consumo de potencia, la subfamilia TTL schottky es una de las
ms rpida pero es la disipa mayor cantidad de potencia. La ALS se encuentra entre las ms
rpidas con una disipacin mayor que la de las dems subfamilias, con excepcin de la L.
A continuacin se llevara acabo una breve descripcin de las subfamilias TTL que
surgieron, debido a la demanda de dispositivos electrnicos que tuvieran una respuesta ms
rpida y un consumo de potencia mnimo. Esto se describe a continuacin:

58

VOLVER A NDICE

La primera se conoce como subfamilia L de bajo consumo de ponencia surgi de


TTL al aumentar por un factor de 10, las resistencia de los resistores en la circuiteria
interna La disipacin de potencia del dispositivo L se reduce en entonces por un factor de
10 pero la costa de la velocidad. Los dispositivos L tienen un retrazo de propagacin tres
veces mayor al TTL estndar.
La subfamilia Schottky S. Emplea diodos Schottky como fijadores de voltaje para
impedir que los transistores se saturen, y utilizan resistores cuyas resistencia son casi la
mitad de las que emplea la TTL estndar. Las compuertas de esta familia disipan
alrededor de 20 mili-watts con retrasos de propagacin tpica de 3 nanosegundos y
conmutan tres veces ms que los TTL estndar.
La subfamilia Schottky de bajo consumo de potencia LS utiliza resistores de
mayor valor con entradas a travs de diodos en lugar de las entradas de emisor mltiple de
la circuiteria TTL estndar. Las entradas con diodos conmutan con mas rapidez, tienen
retrasos de propagacin tpico de 10 nanosegundos y disipan potencia de 2 miliwatts por
compuerta.
La subfamilia Schottky avanzada de bajo consumo de potencia ALS, emplea
tcnicas de fabricacin refinada para aumentar la velocidad de conmutacin y reducir el
consumo por potencia con respecto a los dispositivos LS. La compuerta ALS tiene retrasos
de propagacin tpicos aproximadamente 4 nanosegundos, con una disipacin de potencia
de 1 mw por compuerta.
La subfamilia Schottky avanzada AS esta diseada con la velocidad en mente.
Utiliza redes en los circuitos de salida para reducir el tiempo de subida. Este tipo de
compuertas disipan alrededor de 8 mw y tienen retrasos de propagacin de 1.5
nanosegundos. Las compuertas Schottky avanzadas tipo FAST de Fairchild emplea la letra
F para indicar la subfamilia. El 74F04 es una compuerta NAND cudruple en dos entradas
TTL Schottky avanzada de Fairchild. Las compuertas F tienen retrasos de propagacin de
tres nanosegundos y disipan alrededor de 5 mw.
La figura 3.3.1.5 muestra la circuiteria interna en una compuerta NAND TTL,
aunque la compuerta puede utilizarse sin necesidad de tener conocimientos de dicha
circuiteria, las caractersticas TTL puede entenderse si mejor se estudia esta. En el
apndice D incluyen una descripcin completa del circuito de esta compuerta NAND.

59

VOLVER A NDICE

T4
A
B

T1
T2

D
F
T3

Figura 3.3.1.5 Propagacin de ALTO a BAJO para TTL.

R4, T3, D3, y T4 construyen el circuito de salida como se muestra en la figura 616. Esta configuracin recibe el nombre de salida en ttem. Lo normal es que T3 o T4
estn encendido, pero ambo. Con T3 encendido y van al nivel uno, mientras que con Q4
encendido, Y va al nivel cero. Los circuitos TTL esta diseado de modo que T3 y T4
conmuten rpidamente para minimizar los efectos en la fuente de alimentacin.
En la figura anterior, la zona punteada corresponde a la etapa de salida de la puerta.
Esta etapa no es nica, sino que existen varios tipos de etapas de salida. Entre estos tipos,
podemos encontrar:
la salida totem-pole,
la salida con carga resistiva
y la salida en colector abierto (siempre hay que conectarle una carga a la salida)
Nunca deben conectarse directamente dos salidas en ttem. Si el transistor superior
de una salida en ttem se enciende, y el inferior de la otra se enciende entonces la fuente de
alimentacin queda en cortocircuito y circulan corrientes muy grandes. Las salidas en
ttem deben conectarse entre s a travs de otra compuerta.

3.4 TECNOLOGIA Y FAMILIAS CMOS.


En la actualidad la tecnologa mas utilizada es la tecnologa MOS debido a las
ventajas que ofrece, esta tecnologa MOS (semiconductor de oxido metlico), deriva su
nombre de la estructura MOS bsica de un electrodo de metal en un aislante de oxido sobre
un sustrato semiconductor.

60

VOLVER A NDICE

La mayora de los circuitos integrados digitales son construidos con transistores de


efecto de campo MOSFET, las ventajas que ofrece es que la fabricacin de estos
dispositivos es relativamente simple y barato, es pequeo, consume muy poca potencia y
ocupan menos espacio en un chip que los transistores bipolares ya que no ocupa
resistencias. Las mejoras en la tecnologa de los circuitos integrados MOS han conducido
a dispositivos que son ms rpidos que los 74, 74LS y 74ALS TTL.
Actualmente existen dos tipos generales de MOSFETs, de agotamiento y de
acrecentamiento de canal N y canal P, (figura 3.4.1) donde la direccin de la flecha indica
un canal P o un canal N.

DRENADOR

COMPUERTA

MOSFET N

DRENADOR

MOSFET P

COMPUERTA

FUENTE

FUENTE

Figura 3.4.1 Representacin de Mosfets canal N y canal P.

Los circuitos digitales que emplean MOSFET`s se dividen en tres categoras


PMOS en los que solo se usan MOSFETs de acrecentamiento de canal P, NMOS, en los
que solo se usan MOSFETs de acrecentamiento de canal N y CMOS (MOS
complementario), en los que se usan ambos dispositivos de canales P y N.

3.4.1 Caractersticas de la familia N MOS.


La familia NMOS se basa en el empleo nicamente de transistores NMOS para
obtener la funcin lgica. El funcionamiento de la puerta es el siguiente. Cuando la entrada
se encuentra en un nivel bajo, el transistor NMOS estar en su zona de corte. Por lo tanto,
la intensidad que circular por el circuito ser nula y en la salida se encontrar la tensin de
polarizacin, es decir, un nivel alto. Cuando la entrada se encuentra en un nivel alto, el
transistor estar conduciendo y se comportar aproximadamente como un interruptor. Por
lo tanto, en la salida estar un nivel bajo.
En la familia NMOS se puede construir cualquier funcin arbitraria siempre y
cuando se mantengan las limitaciones tecnolgicas (que suelen traducirse en la conexin en
serie de un nmero mximo de transistores). Para formar cualquier funcin, las estructuras
son las siguientes:

61

VOLVER A NDICE

La conexin en paralelo de dos transistores (o grupo de ellos) acta como una puerta OR.
La conexin en serie de dos transistores (o grupo de ellos) acta como una puerta AND.
No obstante, hay que tener en cuenta que esta familia (al igual que la TTL) siempre
devuelve el complemento de la funcin. Algunos ejemplos de puertas complejas se
muestran en la figura 3.4.1.1

F=(A+B).C

F=A.B
C

F=A+B
A

Operacin OR

Operacin AND

Operacin OR.AND

Figura 3.4.1.1 Ejemplos de compuertas NMOS.

3.4.2 Caractersticas de la familia CMOS.


La familia CMOS de circuitos integrados compite directamente con la TTL en las
reas de integracin de pequea y mediana escalas (SSI, MSI). Los circuitos integrados
CMOS no solo proporcionan la misma funciones lgicas disponibles en los TTL, si no que
tambin ofrece funciones de propsito especial que no poseen los TTL. Antes de analizar
las diversas series, ser til definir algunos trminos que se emplea cuando se agrupan
circuitos integrados de familias o series diferentes.
Compatibilidad de pines. Cuando se tienen dos circuitos integrados tienen compatibilidad
de pines cuando sus configuraciones de pines son iguales. Por ejemplo, el pin 7 en ambos
CIs es TIERRA y el pin 1 es la entrada para del primer inversor.
Funcionalmente Equivalentes. Dos CIs son funcionalmente equivalentes cuando las
funciones lgicas que realizan son exactamente las mismas. Por ejemplo, ambos contienen
cuatro compuerta NAND de dos entradas, o ambos contiene seis flip flops D con disparo
por reloj en el flanco positivo.
Funcionalmente Compatibles. Dos circuitos integrados son estrictamente compatibles
cuando se pueden conectar uno a otro.

62

VOLVER A NDICE

Enseguida veremos la estructura de un inversor con tecnologa CMOS. Para esto


hay que tomar en cuenta que los niveles lgicos para CMOS son esencialmente +Vdd para
un 1 lgico y 0 V para un cero lgico, primero se considera el caso en el que Vent = +Vdd,
en esta situacin la compuerta de Q1 (canal P) esta a 0 V con relacin a la fuente de Q1,
as Q1 estar en estado apagado con una impedancia de entrada grande que puede
considerarse como circuito abierto. La compuerta Q2 estar encendida y producir una
salida Vsal =0. Posteriormente se considera el caso en el que Vent = 0, Q1 tiene su
compuerta en un potencial negativo con respecto a su fuente en tanto Q2 tiene Vgs = 0. De
esta manera Q1 estar encendida y Q2 esta apagada esto se muestra en la figura 3.4.2.
VDD

MOSFET P

+
Vent

MOSFET N

GND
U?

Figura 3.4.2.1 Representacin de un inversor MOSFET.

A continuacin se describirn algunas de las Series CMOS

Serie 4000/14000
La serie CMOS con mas antigedad son las series 400 de la compaa RCA y 1400
de motorola, estos dispositivos 4000/14000 tiene una disipacin de potencia muy baja y
pude operar sobre un amplio rango de voltaje de fuente de alimentacin (de 3 a 15 V) Son
muy lentos en comparacin con las series TTL y otras series CMOS y tiene capacidades
de corriente de salida muy bajas. No tienen compatibilidad de pines o elctricas con alguna
serie TTL.
Serie 74C
Esta serie CMOS tiene compatibilidad con la TTL tanto en pines como en
caractersticas elctricas, adems de coincidir en el numero de integrado, por ejemplo la
compuerta 74LS74 de TTL tiene compatibilidad de pines con la 74C74. Otra ventaja que se
tiene de esta serie es que son funcionalmente compatibles.
63

VOLVER A NDICE

Serie HC / HCT (CMOS de alta velocidad)


Los CIs 74HC/HCT tiene una compatibilidad de pines y son funcionalmente
equivalentes a los CIs TTL con l numero dispositivos. Los dispositivos 74HCT son
elctricamente compatibles con TTL, pero los dispositivos 74HC no lo son. Esto significa
por ejemplo, que un chip 74HCT04 INVENSOR hexadecimal puede remplazar a un chip
74LS04 y viceversa. La serie 74 HC/HCT ha hecho que la serie 74C resulte obsoleta.
74AC/ACT (CMOS avanzado)
Los dispositivos 74AC no nicamente son elctricamente compatibles con TTL;
Los dispositivos 74ACT se pueden conectar directamente a TTL. ACL ofrece ventajas
sobre la serie HC en cuanto a inmunidad al ruido retardo de propagacin y velocidad
mxima. La numeracin de dispositivos para esta serie difiere ligeramente de la
numeracin TTL, 74C y 74HC/HCT. En ella se usa un nmero de dispositivo de cinco
dgitos que inicia los digito 11. Estos ilustran en los siguientes ejemplos:
74AC11004 = 74HC04
74ACT11293 = 74HCT 293

74AH /AHCT (CMOS avanzado de alta velocidad)


Es serie de dispositivos CMOS ofrece un camino de migracin natural de la serie
HC para aplicaciones ms rpida, menor potencia y consumo de potencia bajo. Los
dispositivos en esta serie son tres veces ms rpidos y se puede usar con reemplazos
directos de los dispositivos de la serie HC y ofrecen inmunidad al ruido.

3.4.3 Familia BICMOS.


Esta familia lgica es muy interesante ya que fabricantes se han dado a la tarea de
mezclar dos importantes tecnologas, tal es el caso de la tecnologa bipolar con la
tecnologa CMOS conocida con el nombre de BICMOS. Tanto las caractersticas de alta
velocidad de los circuitos bipolares como la baja potencia de los CMOS estn integrada
para producir la familia BICMOS, los cuales no estn disponibles en la mayora de las
funciones de SSI y MSI ya que se limita a funciones que emplean aplicaciones en
microprocesadores.
La tecnologa BICMOS esta bien adaptada para la construccin de circuitos
analgicos de alto rendimiento, as que es posible la construccin de funciones analgicas y
digitales en el mismo chip de circuito integrado. El precio pagado es una tecnologa de
procesamiento ms compleja y por tanto mas costosa.

64

VOLVER A NDICE

Niveles lgicos de voltaje.


Los niveles lgicos de voltaje de entrada y salida sern diferentes para las diversas
series de CMOS. Todos los dispositivos operan a partir de una fuente de alimentacin de
5V y que todas las salidas del dispositivo estn excitando entradas de la misma familia
lgica. En la siguiente tabla (3.4.3.1) se muestran los diferentes valores de voltaje de las
diferentes familias lgicas.

TTL
CMOS
Parametero

4000B

74HC

74HCT

74AC

74ACT 74AHC

74AHCT 74

74LS

74AS

Vih(min)

3.5

3.5

2.0

3.5

2.0

3.85

2.0

Vil(max

1.5

1.0

0.8

1.5

0.8

1.65

Voh(min)

4.95

4.9

4.9

4.9

4.9

Vol(max)

0.05

0.1

0.1

0.1

Vnh

1.45

1.4

2.9

Vnl

1.45

0.9

0.7

74ALS

2.0

20.

2.0

2.0

0.8

0.8

0.8

0.8

0.8

4.4

3.15

2.4

2.7

2.7

2.5

0.1

0.44

0.1

0.4

0.5

0.5

0.5

1.4

2.9

0.55

1.15

0.4

0.7

0.7

0.7

1.4

0.7

1.21

0.7

0.4

0.3

0.3

0.4

Tabla 3.4.3.1 Representacin de los diferentes niveles lgicos.

65

VOLVER A NDICE

PRINCIPIOS DE DISEO LGICO


COMBINACIONAL.

4.1 ALGEBRA BOOLEANA.

Las lgebras booleanas, estudiadas por primera vez en detalle por George Boole,
constituyen un rea de las matemticas que ha pasado a ocupar un lugar importante con el
advenimiento de la computadora digital. Son usadas ampliamente en el diseo de circuitos
de distribucin y computadoras, y sus aplicaciones van en aumento en muchas otras reas.
En el nivel de lgica digital de una computadora, lo que comnmente se llama hardware, y
que est formado por los componentes electrnicos de la mquina, se trabaja con niveles de
voltaje, los cuales generan funciones que son calculadas por los circuitos que forman el
nivel. Estas funciones, en la etapa de diseo del hardware, son interpretadas como
funciones de boole.
Como solucin a este problema, se plantea un mtodo de simplificacin, que hace
uso de unos diagramas especiales llamados mapas o diagramas de Karnaugh, y el cual tiene
la limitacin de poder trabajar adecuadamente slo con pocas variables.
A mediados del siglo XIX, George Boole (1815-1864), en sus libros: "The
Mathematical Analysis of Logic" (1847) y "An Investigation of te Laws of Thought"
(1854), desarroll la idea de que las proposiciones lgicas podan ser tratadas mediante
herramientas matemticas. Las proposiciones lgicas son aquellas que nicamente pueden
tomar valores Verdadero/Falso, o preguntas cuyas nicas respuestas posibles sean S/No.
Segn Boole, estas proposiciones pueden ser representadas mediante smbolos y la teora
que permite trabajar con estos smbolos, sus entradas (variables) y sus salidas (respuestas)
es la Lgica Simblica desarrollada por l. Dicha lgica simblica cuenta con operaciones
lgicas que siguen el comportamiento de reglas algebraicas. Por ello, al conjunto de reglas
de la Lgica Simblica se le denomina LGEBRA DE BOOLE.
Todas las variables y constantes del lgebra booleana, admiten slo uno de dos
valores en sus entradas y salidas: S/No, 0/1 o Verdadero/Falso. Estos valores bivalentes y
opuestos pueden ser representados por nmeros binarios de un dgito (bits), por lo cual el
lgebra booleana se puede entender cmo el lgebra del Sistema Binario. Al igual que en
lgebra tradicional, tambin se trabaja con letras del alfabeto para denominar variables y
formar ecuaciones para obtener el resultado de ciertas operaciones mediante una ecuacin o
expresin booleana. Evidentemente los resultados de las correspondientes operaciones
tambin sern binarios.

66

VOLVER A NDICE

4.1.1 Propiedades del lgebra booleana.


Las propiedades del conjunto en el que se han definido las operaciones (+, *, ') son
las siguientes:
PROPIEDAD CONMUTATIVA:
De la suma: a+b = b+a
Del producto: a*b = b*a
PROPIEDAD ASOCIATIVA:
De la suma: (a+b)+c = a+(b+c) = a+b+c
Del producto: (a*b)*c = a*(b*c) = a*b*c
LEYES DE IDEMPOTENCIA:
De la suma: a+a = a ; a+a' = 1
Del producto: a*a = a ; a*a' = 0
PROPIEDAD DISTRIBUTIVA:
De la suma respecto al producto: a*(b+c) = (a*b) + (a*c)
Del producto respecto a la suma: a + (b*c) = (a+b) * (a+c)
LEYES DE DE MORGAN:
(a+b+c)' = a'*b'*c'
(a*b*c)' = a'+b'+c'

67

VOLVER A NDICE

4.1.2 Funciones lgicas.


A partir de las operaciones lgicas bsicas se pueden realizar otras operaciones
booleanas, las cuales son:

NAND, cuya tabla correspondiente es:


a
0
0
1
1

(a*b)'
1
1
1
0

b
0
1
0
1

(a+b)'
1
0
0
0

0
1
0
1

NOR, cuya tabla correspondiente es:


a
0
0
1
1

XOR, tambin llamada funcin OR-EXCLUSIVA. Responde a la tabla:


a
0
0
1
1

b
0
1
0
1

a(+)b
0
1
1
0

68

VOLVER A NDICE

4.2 REPRESENTACIN DE LAS FUNCIONES LOGICAS.

4.2.1 Forma cannica.


4.2.1.1 Suma de minitrminos.
Como sabemos cualquier funcin booleana puede expresarse como una suma de
minitrminos. La suma de estos elementos que son los que definen una funcin booleana
son aquellos que dan los 1s de la funcin en una tabla de verdad.
Algunas veces es conveniente expresar la funcin booleana en la forma de suma
de minitrminos. Si no puede hacerse en esta forma entonces puede realizarse primero por
la expansin de la expresin en una suma de los trminos AND.
Despus cada trmino se inspecciona para ver si contiene todas las variables, si se
han perdido una o ms variables, se aplica el operador AND con una expresin x+x en
donde x es una de las variables perdidas.
Ejemplo: Expresar la funcin F = A+BC en una suma de minitrminos.
F= A+BC
F(A,B,C)
A= A(B+B) = AB+AB
= AB(C+C) + AB(C+C)
= ABC + ABC + ABC +ABC
BC = BC (A+A)
= ABC + ABC
F = ABC+ABC+ABC+ABC+ABC+ABC
F = ABC+ABC +ABC+ABC+ABC
F = m1+ m4+m5+ m6+ m7
F(A,B,C)=(1,4,5,6,7)
La sumatoria representa al operador OR que opera en los trminos y nmeros
siguientes son los minitrminos de la funcin.
Las letras entre parntesis que siguen a F forman una lista de las variables en el
orden tomado cuando el minitrmino se convierte en un trmino AND.

69

VOLVER A NDICE

4.2.1.2 Producto de los maxitrminos.


Para expresar una funcin booleana como un producto de maxitrminos, primero
debe llevarse a una forma de trminos OR. Esto es posible al uso de la ley distributiva; esto
es si x+yz = (x+y) (x+z); para cualquier variable perdida x en cada trmino se opera a OR
con xx.
Ejemplo:
F = (x+y) (x+z) (y+z)
(x+y) = x+y+zz
= (x+y+z) (x+y+z)
(x+z) = x+z+yy
= (x+y+z) (x+y+z)
(y+z) = y+z+xx
= (x+y+z) (x+y+z)
F = (x+y+z) (x+y+z) (x+y+z) (x+y+z) (x+y+z) (x+y+z)
F = (x+y+z) (x+y+z) (x+y+z) (x+y+z)
F = (x+y+z) (x+y+z) (x+y+z) (x+y+z)
M0
M2
M4
M5
F(x,y,z) = PI(0,2,4,5)
El operador PI denota la operacin AND de maxitrminos; y los nmeros son los
maxitrminos de la funcin.

4.2.1.3 Conversin entre formas cannicas.


El complemento de una funcin expresada como suma de minitrminos es igual a la
suma de los minitrminos perdidos de la funcin original.

70

VOLVER A NDICE

Ejemplo:
F(A,B,C) = SUM(1,4,5,6,7)
F(A,B,C) = SUM(0,2,3) = m0+m2+m3
Si obtenemos el complemento de F porque el teorema de DMorgan se obtiene F en
una forma diferente.
(F) = (m0+m2+m3) = m0.m2.m3 = M0 . M2 . M3 = PI(0,2,3)
= (x+y+z) . (x+y+z) . (x+y+z)
F = AD+BD+BD
AD = AD(B+B)
= ABD+ABD
= ABD(C+C) = ABCD+ABCD
= ABD(C+C) = ABCD+ABCD
BD = BD(A+A)
= ABD+ABD
= ABD(C+C) = ABCD+ABCD
= ABD(C+C) = ABCD+ABCD
BD = BD(A+A)
= ABD+ABD
= ABD(C+C) = ABCD+ABCD
= ABD(C+C) = ABCD+ABCD
F=ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD
La forma cannica de las funciones se relaciona con la ubicacin de variables en
los mapas de Karnaugh en la figura 4.2.1.

71

VOLVER A NDICE

00

01

11

10

B
0

m0 m2 m6 m4
m1 m3 m7 m5

Figura 4.2.1 Mapas de Karnaugh.

4.2.2 Compuertas lgicas.


Todas las funciones lgicas vistas hasta el momento poseen una representacin
normalizada, la cual se muestra en la figura 4.2.2.

AND

OR

1
3
2

NAND

NOR

XOR

2
3

NOT

1
1

3
2

Figura 4.2.1 Compuertas lgicas.

Toda puerta lgica consta de 1 o ms entradas y 1 o 2 salidas (puede darse el caso


de proporcionarse la salida y su negada). En todos los smbolos las entradas se encuentran a
la izquierda y las salidas a la derecha.

72

VOLVER A NDICE

4.3 LOGICA MEZCLADA.


Siempre que se realiza un diseo lgico, por lo general siempre se hace uso de las
tablas de verdad, para la representacin de combinaciones de los diferentes niveles lgicos
que puedan existir debido a las entradas y salidas de nuestro circuito. Los niveles lgicos de
nuestra salida son simplificados por medio de funciones booleanas o en su caso mapas de
karnaugh las cuales describirn el funcionamiento real de nuestro circuito.
Ya que estamos seguros de que la simplificacin de funciones se realizo
correctamente, se dispone a dibujar un diagrama lgico el cual sea capaz de representar
nuestra funcin encontrada. Para esto hay una serie de caminos que podemos seguir, es
decir; podemos hacer uso de las compuertas lgicas bsicas como son la NOT, AND, OR e
ir describiendo nuestra funcin.
Un factor importante que hay que tomar en cuenta es que la correspondencia entre
los niveles de voltaje (log, high) deber ser evidente en todo el diagrama lgico.
El fundamento para la satisfaccin de estos requerimientos es una representacin
llamada lgica mezclada la cual fue publicada en la conferenciaDiseo de computadores
en agosto de 1971.
Convenciones lgicas. Existen dos niveles lgicos Verdadero y Falso (V, F) y
tambin existen dos niveles de voltaje Alto y Bajo (A, B). la forma de hallar una
correspondencia se describe a continuacin:
a) Verdadero es representado por un nivel de voltaje Alto (y Falso es representado
por un nivel de voltaje Bajo)
b) Verdadero es representado por un nivel de voltaje Bajo (y Falso es representado
por un nivel de voltaje Alto)

La primera correspondencia se conoce con el nombre de lgica positiva, y la


segunda correspondencia se le conoce con el nombre de lgica negativa. El uso de
cualquier tipo de lgica es opcional ya que en un diseo combinacional o secuencial puede
usarse cualquiera de las dos por convencin. Por convencin en lgica mezclada, nosotros
podemos hacer uso de cualquier tipo de lgica en algn punto de nuestro diseo lo cual se
optimizara un poco nuestro diseo.
En nuestra exposicin de lgica mezclada nosotros representamos V = B
por un
pequeo circulo en una de las terminales del smbolo lgico, y en ausencia del circulo
pequeo significa V = A. Hay que hacer mencionar que los crculos no cambian la lgica

73

VOLVER A NDICE

de operacin. Por ejemplo los smbolos de la figura 4.3.1 representan los diferentes tipos de
configuraciones usando lgica de una compuerta AND de 2 variables de entrada.

La tabla de verdad de la compuerta se muestra a continuacin:


Tabla Lgica
A1
F
F
V
V

1
2

A
Y

3
2

B1
F
V
F
V

C
F
F
F
V

A
Y

3
2

A
Y

Figura 4.3.1 Smbolos para la representacin de una compuerta AND.

Para comprobar esto se dibuja inmediatamente la tabla de voltajes para alguno de


estos smbolos por ejemplo:
T. Lgica

1
2

A
Y
B

A1
F
F
V
V

B1
F
V
F
V

Y
F
F
F
V

T. Voltaje
A1
B
B
A
A

B1
B
A
B
A

Y
A
A
A
B

Como podemos ver en las tablas de verdad anteriores, podemos observar que la
salida de nuestra AND es con un circulo pequeo as que estamos indicando que se trata de
lgica V = B y entonces nuestra salida en la tabla de voltajes debe de ser alto.

74

VOLVER A NDICE

Otro dispositivo comn es la compuerta NOR, este dispositivo puede utilizar la


funcin lgica OR cuando V = A en las entradas y V = B en las salidas.
T. Lgica

1
2

A
B

NOR

A1
F
F
V
V

B1
F
V
F
V

T. Voltaje
Y
F
V
V
V

A1
B
B
A
A

B1
B
A
B
A

Y
A
B
B
B

En un circuito fsico los voltajes representan valores en las variables lgicas.


Cuando nosotros designamos entradas y salidas a un circuito con el nombre de variables
lgicas, necesitamos una regla para la descripcin correcta de las seales, una designacin
para crear nombres para las seales es la siguiente:
Si la seal tiene V = B aadida a una terminal. B es el nombre de la variable lgica
Si la seal tiene V = A aadida a una terminal. H es el nombre de la variable lgica
Por ejemplo, la variable lgica INX puede aparece en un circuito como seal de
entrada INX.L o como INX.H dependiendo de la representacin particular de voltaje como
punto en el circuito. La terminal .L es siempre asociada con un pequeo crculo sobre la
lnea de la seal; .H siempre es asociada con una lnea sin crculo.

INX.L

INX.H

.L no significa que el voltaje es bajo, lo que significa es que si el voltaje es B (bajo)


entonces el valor de la variable lgica es verdadero y .H es representado anlogamente.
Para pasar de una compuerta a otra solo basta con poner crculo donde no tiene y
quitar donde tiene. A continuacin se muestra la transformacin de algunas compuertas a
otras en la figura 4.3.2.

75

VOLVER A NDICE
1
compuerta NOR

1
compuerta
NAND

1
compuerta AND
2

A
Y

3
2

A
Y

3
2

A
Y

A
Y

A
Y

A
Y

Figura 4.3.2 Transformacin de compuertas utilizando lgica mezclada.

4.4 MINIMIZACION DE FUNCIONES LOGICAS.


Supongamos que tenemos un circuito donde "F" es la respuesta (salida) del mismo
en funcin de las seales A, B, y C (entradas):
F = A*B*C + A'*B*C + B*C
Esta funcin puede ser simplificable aplicando las propiedades del lgebra de
Boole. En primer lugar aplicamos la propiedad distributiva:
F = B*C*(A+A') + B*C
Ahora aplicamos las leyes de idempotencia:
F = B*C + B*C = B*C
Como hemos podido ver en este ejemplo en muchas ocasiones se puede simplificar
la funcin (y por tanto el circuito) sin que ello afecte al resultado. Ms adelante veremos
como simplificar funciones empleando otros mtodos ms sencillos y fiables como lo es el
mapa de Karnaugh que se describe a continuacin.

76

VOLVER A NDICE

4.4.1 Mapas de Karnaugh.


Los mapas de Karnaugh es un mtodo conveniente para los eres humanos, ya que
stos pueden visualizar con facilidad la solucin mnima. Los mapas de Karnaugh es uno
de los mtodos ms prcticos. Cuando el nmero de variables de entrada es menor o igual a
seis; ms all, ya no es tan prctico. En general, el mapa de Karnaugh se considera como
la forma grfica de una tabla de verdad. A continuacin observamos el mapa de la Figura
4.4.1.1. Cada casillero tiene asignado un nmero, el cual corresponde a un nmero del
cdigo binario.
01

00

11

10

m0 m2 m6 m4
m1 m3 m7 m5
Figura 4.4.1.1.

4.4.2 Procedimiento para Minimizar una funcin por mapas de


Karnaugh.
El mapa que se utilizar para la minimizacin de funciones booleanas es de tres
variables, se muestra en la Figura 4.4.2.1. A continuacin explicaremos la forma como se
utilizar el mapa. Los pasos a seguir sern los mismos para cualquier mapa, no importa cual
sea el nmero de variables.

00

01

11

10eje

central

eje s ecundario

eje s ecundario
eje central

Figura 4.4.2.1.

77

VOLVER A NDICE

1. De la definicin del problema y de la tabla funcional se obtiene la funcin cannica.


2. Los minitrminos o maxitrminos de la funcin cannica se trasladan al mapa K. Se
coloca un 1 si es minitrmino y 0 si es maxitrmino.
3. Se realizan los enlaces abarcando el mayor nmero de trminos bajo los siguientes
criterios:
a) El nmero de trminos que se agrupan deben seguir la regla de formacin binaria, es
decir, de 1 en 1, de 2 en 2, de 4 en 4, de 8 en 8, etc.
b) Al agrupar los trminos, se debe cuidar la simetra con los ejes centrales y
secundarios.
4. El hecho de que se haya tomado un trmino para un enlace no quiere decir que ste
mismo no pueda utilizarse para otros enlaces.
5. La funcin reducida tendr tantos trminos como enlaces se hayan realizado.
6. Para obtener el trmino reducido se realizan dos movimientos sobre el mapa, uno
vertical, que barre a las variables ms significativas y otro horizontal, que barre a las
variables menos significativas.
7. Se aplican los siguientes postulados:

A A' = 0
.

A A=A
EJEMPLO:
b) Tabla funcional:
DEC

0
1
2
3
4
5
6
7

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

c) Funcin cannica.
Z = 3m (2,4,6)

78

VOLVER A NDICE

d) Reduccin por mapas de Karnaugh.


La figura 4.4.2.2 muestra los minitrminos de la funcin de conmutacin y los
enlaces correspondientes.
AB

00

01

11

10

C
0

Figura 4.4.2.2.

e) Obtencin de la funcin reducida.


Del mapa, figura 4.4.2.2, se observa que existen dos enlaces; por lo tanto la funcin
reducida tendr dos trminos.
Para cada enlace, se realiza el barrido para cada una de las variables. Por orden, es
conveniente iniciar con la variable de mayor peso binario, en este caso A.

AB

00

01

11

10

C
0

Figura 4.4.2.3.

Como se muestra en la figura 4.4.2.3, una parte del enlace (1), el elemento 6, se
encuentra dentro del barrido y otra, el elemento 2, fuera de l. Esto indica que se tiene A.A',
que es igual a 0, por lo que esa variable no participa, se elimina, del trmino reducido.
Para mayor claridad, tomemos la suma de los minitrminos 2 y 6:
A'BC' + ABC' = (A' + A)BC' = BC'

79

VOLVER A NDICE

Como puede observarse, la variable A se elimina del trmino reducido.


AB

00

11

01

10

C
0

Figura 4.4.2.4.

La figura 4.4.2.4 presenta el barrido de B. En este caso, el enlace (1) est contenido
dentro del barrido, lo cual corresponde a B.B = B, lo que significa que esta variable forma
parte del trmino reducido.
Finalmente, el barrido de la variable C, de menor peso binario, es horizontal y se
muestra en la figura 4.4.2.5. Claramente se observa que el enlace (1) est fuera del barrido,
es decir se encuentra en C', indicando que dicha variable forma parte del trmino reducido.

AB

00

01

11

10

C
0

Figura 4.4.2.5.

El trmino reducido correspondiente al enlace (1) es BC'.


Siguiendo el mismo procedimiento y apoyndonos en las 3 figuras previas, se
encuentra que para el enlace (2), el trmino reducido es AC'. La funcin reducida en este
ejemplo es:
Z(A, B, C) = B C' + A C'
(1)
(2)

80

VOLVER A NDICE

4.4.2.1 Mapas de Karnaugh para 5 y 6 variables.


Los mapas de 5 variables se pueden visualizar de tres formas bsicas, como puede
verse en la figura 4.4.2.1.1 los dos mapas de cuatro variables son simtricos alrededor del
eje central. En este contexto, los mapas deben visualizarse como doblados alrededor del eje
de simetra, del mismo modo que debe doblarse un libro abierto para serrarlo. Cuando el
mapa se dobla, se observa que los trminos adyacentes de cada mitad se enciman entre s.

ABC
000

001

011

010

110

111

101

100

12

24

28

20

16

13

25

29

21

17

15

11

27

31

23

19

14

10

26

30

22

18

DE
00

01

11

10

Figura 4.4.2.1.1.

Un segundo enfoque es considerar es considerar el mapa de cinco variables como


formado por dos mapas estndares de cuatro variables. En este caso, uno de los mapas se
coloca encima del otro, con lo que se llega a un mapa tridimensional para la funcin. En la
figura 4.4.2.1.2, se muestra un ejemplo de esto. El tercer enfoque consiste en visualizar la
informacin anterior sobre un mapa de cuatro variables, dividiendo de manera diagonal las
celdas en dos y visualizando la mitad de una de ellas detrs (o encima) de la otra. Esto se
muestra en la figura 4.4.2.1.3.
BC

BC
00

DE

01
4

11
12

10
8

DE

00

01

11

10

16

20

28

24

17

21

29

25

19

23

31

27

18

22

30

26

00

00

13

01

01

15

11
11

11

14

10
10

10

A = 0

A = 1

Figura 4.4.2.1.2.

81

VOLVER A NDICE
BC
00

01

11

10

12

DE
00
16

20

28

24
9

13

01
17

21

29

25

15

11

11
19

23

31

27

14

A
0

10

10
18

22

30

26

Figura 4.4.2.1.3.

El mapa de una funcin de seis variables puede formarse al combinar cuatro mapas
de cuatro variables, o de dos de cinco variables. Al igual que con los mapas de cinco
variables, los de seis pueden representarse en tres formas diferentes. La primera de ellas
requiere doblar el mapa a lo largo de los ejes de simetra horizontal y vertical; esta forma
casi nunca se utiliza.
Las figuras 4.4.2.1.4. y 4.4.2.1.5 muestran los dos mtodos estndares para
visualizar una funcin de seis variables.
CD

CD
00

01

11

10

00

01

11

10

16

20

28

24

17

21

29

25

19

23

31

27

18

22

30

26

00

01

11

10

48

52

60

56

49

53

61

57

51

55

63

59

50

54

62

58

EF

EF
0

12

8
00

00

13

01

01

15

11
11

11

14

10

10

10

AB = 00

AB = 01

CD

CD
00

01

11

10

EF

EF
32

36

44

40
00

00

33

37

45

41

01

01

35

39

47

43
11

11

34
10

38

46

42
10

AB = 10

AB = 11

Figura 4.4.2.1.4.

82

VOLVER A NDICE

CD
00

01

11

10

EF
00

01

11

AB
10

10

00
01
11

Figura 4.4.2.1.5.

En la figura 4.4.2.1.4, los cuatro mapas se disponen en un arreglo bidimensional,


visualizando cada uno de ellos como apilado sobre los otros , con lo que se forma un
arreglo tridimensional, de manera similar, en la figura 4.4.2.1.5, el arreglo de cuatro mapas
de cuatro variables puede visualizarse como apilado verticalmente para formar el mapa de
seis variables.
Todas las tcnicas que se aplican a los mapas de cuatro variables tambin se aplican
a mapas de funciones de ms de cuatro variables, especificadas de manera completa o
incompleta.

4.4.3 Mtodo tabular de Quine McCluskey.


El mtodo tabular de Quine-McCluskey proporciona un enfoque sistemtico a la
simplificacin de funciones con cualquier nmero de variables, y es ideal para
implementarlo en una computadora. La tcnica utiliza el teorema de reduccin estndar,
XY + XY = X para proporcionar una solucin mnima de una fusin que esta expresada en
forma cannica.
El proceso consta de dos operaciones separadas. Primero se obtienen todos los
cubos primos de la funcin comenzando con los minitrminos (0 cubos). Despus se
crea una tabla de cubos primos con el objeto de determinar la cobertura mnima de estos
para la funcin. Para el mtodo de Quine-McCluskey se procedes de la manera siguiente:
1.- se obtiene el desarrollo en minitrminos de la funcin a simplificar.
2.- se aplica de manera sistemtica y repetida el teorema de reduccin para obtener los
cubos primos. Es as como se define el cubo primo como un trmino irreducible.

83

VOLVER A NDICE

3.- se escoge de manera sistemtica un conjunto mnimo de cubos primos que representen a
la funcin dada con un nmero de compuertas y literales.
Al comenzar con el desarrollo cannico de la funcin, se aplica el teorema de
reduccin a todos los pares posibles de minitrminos, para obtener todos los trminos que
corresponden a los 1- cubos de la funcin. A continuacin se aplica el teorema de reduccin
a todos los pares de minitrminos (1 cubos) para obtener todos los 2 cubos de la
funcin, y as sucesivamente. El proceso contina hasta que se obtienen los cubos mas
grandes posibles. En cada paso, se eliminan los trminos que se combinan para generar
cubos ms grandes. El resultado es el conjunto de todos los cubos primos posibles de la
funcin.
Los minitrminos devn acomodarse de unos y ceros, de modo tal que cada variable
pueda asociarse con una columna de la tabla. Para asegurar la generacin de todos los
cubos posibles, los minitrminos se acomodan por el nmero de unos que hay en ellos,
comenzando con en minitrmino 0, si este se encuentra present, y terminando con el
minitrmino que contenga el mayor numero de unos en l. l nmero de unos en un vector
binario que se conoce como magnitud del vector o magnitud. Para cambiar dos renglones,
es necesario que ellos solo difieran en una columna. No es posible cambiar los trminos que
tienen el mismo numero de unos, al igual que los que difieren en dos o ms columnas, de
modo que cada cubo debe compararse con los que tienen la una magnitud mayor o menor
en uno que l.
Si se comienza en la parte superior de la tabla, el minitrmino 0 se combina con
cualquier minitrmino que tenga solo un uno en ellos, los minitrminos 1,2,4,8,16, etc.
Puesto que ya se han comparado los minitrminos que tienen una magnitud dada con los
que estn por encima de ellos y que tiene una magnitud menor, entonces solo es necesario
compararlos con los que estn debajo de ellos, cuya magnitud es mayor en uno. Cuando se
hayan comparado todos los minitrminos, los que no se combinan son los 0- cubos
primos, y se anotan como tales. A continuacin se comparan los que se combinan en los 1cubos, despus los que se combinan para formar los 2- cubos, y as sucesivamente. El
proceso continua hasta que ya no es posible aplicar el teorema de reduccin.
Una vez determinado los cubos primos, el paso siguiente es obtener la cobertura
mnima de la funcin. Los cubos primos se acomodan en los renglones de una tabla, y la
lista de los minitrminos de la funcin a minimizar se coloca en las columnas de la tabla. Si
un cubo abarca un minitrmino, se coloca una marca en la columna y en el rengln que
corresponde al minitrmino y al cubo respectivamente. Los renglones de marcas indican
los minitrminos cubiertos por un cubo primo, mientras que las columnas de marcas
indican los cubos que abarcan un minitrmino dado.
El nmero mnimo de renglones necesarios para cubrir todos los minitrminos, es el
nmero mnimo de cubos primos requerido para especificar la funcin. Un minitrmino que
tiene una marca en su columna, esta cubierto solo por un cubo primo, y dicho cubo es
esencial para la respuesta. Si la cobertura de un minitrmino la hacen muchos cubos,
84

VOLVER A NDICE

entonces estos son cubos primos opcionales, y el problema se reduce determinar el nmero
mnimo de cubos opcionales necesarios para especificar la funcin.

A continuacin se explica el mtodo tabular paso a paso con un ejemplo:

F(A,B,C,D)=AB+ABCD+ABCD+ABCD+ABCD
AB no es un minitrmino, as que primero es necesario desarrollarlo como tal.

AB=AB(C+C)(D+D)=ABC D+ABCD+ABCD+ABCD
Con esto, la funcin puede describirse como un desarrollo de minitrminos.

F(A,B,C,D)=

m (4,7,9,10,12,13,14,15)

A continuacin se colocan los minitrminos en una tabla, en orden descendente de


magnitud creciente. El resultado aparece en la tabla 4.4.3.1.

D 0-cubos

m4
m9
m 10
m 12
m7
m 13
m 14
m 15

*
*
*
*
*
*
*
*

Tabla 4.4.3.1.

85

VOLVER A NDICE

Se marca con un asterisco cada minitrmino que se combina con otro. Todo
minitrmino que no este marcado en la tabla 4.4.1. No se combina con otro minitrmino y
por tanto es un cubo primo. Los minitrminos apropiados se combinan en 1-cubos, al
mismo tiempo que se eliminan de la tabla. 4.4.1, las marcas de los 0- cubos, los cuales no
son cubos primos. La tabla 4.4.3.2, se obtienen de esta manera, utilizando una X para
representar la variable faltante, esto es, la variable eliminada cuando se combinan los dos
cubos.

D 0-cubos

m 4 + m 12
m 4 + m 13
m 10+ m 14
m 12+ m 13
m 12+ m 14
m 7 + m 15
m 13+ m 15
m 14+ m 15

V
W
X
*
*
Y
*
*

Tabla 4.4.3.2.

Este procedimiento se repite hasta que no haya ms cubos que combinar, con lo que
se obtienen los cubos primos de la funcin. El examen de la tabla 4.4.3.2, revela que los
minitrminos 12,13, 14 y 15 pueden combinarse para dar el cubo primo 11XX. Los dems
1-cubos no pueden combinarse y son primos. Esta condicin se indica con la ausencia del
asterisco. Es as como se obtienen cinco cubos primos:

F(A,B,C,D)= x100+1x01+1x10+x111+11xx
=BC D+ACD+ACD+BCD+AB
La tarea siguiente es determinar los cubos primos necesarios y esenciales de la
funcin. Para seleccionar de una manera ptima los cubos primos que se toman en cuanta
todos los minitrminos originales, se forma una tabla nueva, con una columna para cada
uno de los minitrminos y un rengln por cada cubo primo. Un cubo primo al que no le
faltan variables, toma en cuenta solo un minitrmino, uno al que le faltan dos variables,
abarca dos minitrminos, y as sucesivamente.

86

VOLVER A NDICE

Los cubos primos esenciales pueden obtenerse de la tabla por inspeccin. Cualquier
columna que tiene una sola marca en ella representa un minitrmino que puede cubrirse
nicamente de una manera. De la tabla 4.4.3.3 X100 es esencial con respecto a m4, X111
lo es con respecto a m7, 1X01 es esencial con respecto a m9, y 1X10 con respecto a m10.
Estos cubos primos tambin cubren los minitrminos restantes, y adems puede verse que
11XX es un cubo primo redundante. Con esto, la funcin se reduce a:

F(A,B,C,D)=BC D+ACD+ACD+BCD

m 4 m 7 m 9 m 10 m 12 m 13 m 14 m 15 CP
x100

1x01

1x10

x111

11xx

Tabla 4.4.3.3.

Si los cubos primos no son obvios, entonces lo que se necesita es un mtodo


sistemtico para determinarlos. Una posibilidad es marcar los cubos primos, tal como se
muestra en la parte derecha de la tabla 4.4.3.3, para formar una tabla nueva que especifique
que cubos primos cubren qu trminos. Esto se muestra en la tabla 4.4.3.4.

Minitrmino

m4
m7
m9
m 10
m 12
m 13
m 14
m 15

CP que toman en cuenta al


minitrmino

V =

x100

Y =

x111

W =

1x01

X =

1x10

V+z

(Z= 11xx)

W+Z
X+Z
Y+Z
Tabla 4.4.3.4.

87

VOLVER A NDICE

Para tomar en cuenta todos los minitrminos al mismo tiempo, se forma la funcin
auxiliar H y se simplifica sta, recordando que V( V + Z ) = V. H expresa el lgebra
booleana los cubos primos necesarios para cubrir todos los minitrminos de la funcin F, y
cuando se le simplifica, proporciona la solucin mnima para la fusin F.

H=VYWX(V+Z)(W+Z)(X+Z)(Y+Z)=VYWX
Y la solucin mnima de sumas de productos debe incluir los cubos primos V,Y,W
y X. En consecuencia

F(A,B,C,D)=BC D+ACD+ACD+BCD
Antes de calcular la funcin H, es necesario reducir la tabla de cubos primos
mediante la eliminacin de todos los cubos primos esenciales, as como de los
minitrminos que estos cubren.

4.5 PROCESO DE DISEO DE UN CIRCUITO


COMBINACIONAL.
Un circuito Combinacional figura 4.5.1, consta de compuertas lgicas cuyas salidas
en cualquier momento estn determinadas en forma directa por la combinacin presente de
las entradas sin tomar en cuenta las entradas previas (no tiene "memoria").
Un Circuito combinacional realiza una operacin especfica de procesamiento de
informacin, especificada por completo en forma lgica por un conjunto de funciones
booleanas

X1
F(t)=(x1(t), x2(t), ...)

X2
Figura 4.5.1.

88

VOLVER A NDICE

Por otro lado, si el circuito combinacional tiene varias entradas (n), tambin puede
tener varias salidas (m) figura 4.5.2. Para "n" variables de entrada tenemos 2n
combinaciones binarias posibles. Por tanto, podemos expresar un circuito combinacional
mediante una tabla de verdad que lista los valores de todas las salidas para cada una de las
combinaciones de entrada. Un circuito combinacional tambin puede describirse mediante
"m" funciones lgicas, una para cada variable de salida; cada una de las cuales se presenta
como funcin de las "n" variables de entrada.

E0
E1
En

Sistema

S0
S1

Combinacional S m
Figura 4.5.2.

4.5.1 Metodologa del Diseo Combinacional.


El diseo puede realizarse por diferentes mtodos, desde el intuitivo (prueba y error)
hasta mtodos ms elaborados, a continuacin tenemos una metodologa muy prctica que
consiste en seis pasos para el diseo de sistemas combinacionales.

1. Especificar el Sistema: En esta parte se detalla el propsito del diseo

89

VOLVER A NDICE

2. Determinar entradas y salidas: De las variables que intervienen en el problema hay que
identificar cuales y cuantas son de salida y de entrada.

E0
E1

S0
S1

Sistema

Combinacional S n

En

3. Tabla de Verdad: Trasladar el Comportamiento del sistema a una tabla indicando para
cada combinacin de entrada la salida o salidas ms convenientes.

mi

ABC

000

001

010

011

100

101

110

111

F0

F1

4. Minimizar: Para obtener las ecuaciones mnimas se puede utilizar algn mtodo de
simplificacin como manipulacin algebraica, mapas de Karnaugh, etc.

AB

00

01

11

10

C
0

90

VOLVER A NDICE

5. Diagrama esquemtico: Despus de haber obtenido las ecuaciones mnimas se representa


en forma de smbolos para su anlisis y comprensin.

NOR
2
1
3

A
AND
1
3

NAND

F(A,B)

1
3
2

6. Implementar: Se tienen varias opciones para la implementacin por ejemplo con circuitos
integrados de funcin fija (TTL o Cmos) o con los Dispositivos Lgicos Programables
(PLDs) ya sea a travs de captura esquemtica o por medio de un Lenguaje de
Descripcin de Hardware (HDL).

Ejemplo:
4.5.1.1 Sumador binario.
El sumador binario es el elemento bsico de la unidad aritmtica de cualquier
ordenador, pues cualquier operacin aritmtica bsica puede realizarse a partir de sumas y
restas repetidas.
Para sumar dos nmeros de n bits, hay que sumar dos a dos los bits del mismo peso
y el acarreo de la suma de los bits de peso inmediato inferior.

Semisumador (half adder)


1. Especificar el Sistema
Es un circuito combinacional que realiza la suma de dos dgitos binarios, obteniendo su
suma y el acarreo para la etapa siguiente. No tiene en cuenta el bit de acarreo de la etapa
anterior.

91

VOLVER A NDICE

2. Determinar entradas y salidas:

SUMA(S)
1/2

ACARREO(C)

3. Tabla de Verdad:
a
0
0
1
1

b
0
1
0
1

S
0
1
1
0

C
0
0
0
1

4. Minimizar: Implementando por "1":


S = a' b + a b' = a b
C=ab
5. Diagrama esquemtico: La suma S responde a una funcin OR-exclusiva y el acarreo C
a una funcin AND.

1
3
2

S=A XOR B

B
1
3
2

C=A.B

92

VOLVER A NDICE

6. Implementar: EL circuito finalmente se implementa en cualquiera de los dispositivos


antes mencionados.

93

VOLVER A NDICE

LENGUAJE DE DESCRIPCIN DE HARDWARE,


UNA INTRODUCCIN.

5.1 LENGUAJES DE DESCRIPCIN DE ARDWARE.

A mediados de los aos setenta se produjo una fuerte evolucin en los procesos de
fabricacin de los circuitos integrados, y junto a las tecnologas bipolares como
mencionamos en el capitulo 1, surge la MOS (Metal oxide semiconductor), principalmente
la NMOS, promoviendo el desarrollo de circuitos digitales hasta la primera mitad de los
aos ochenta.
En aquellas pocas, el esfuerzo de diseo se concentraba en los niveles elctricos
para establecer caractersticas e interconexiones entre los componentes bsicos a nivel de
transistor. El proceso de diseo era altamente manual y tan solo se empleaban
herramientas como el PSPICE para simular esquemas elctricos con modelos previamente
personalizados a las distintas tecnologas.
A medida que pasaban los aos, los procesos tecnolgicos se hacan ms y ms
complejos. Los problemas de integracin iban en aumento y los diseos eran cada vez ms
difciles de depurar y de dar mantenimiento. Inicialmente los circuitos MSI (Medium Scale
Integration) y LSI (Low Scale Integration ) se disearon mediante la realizacin de
prototipos basados en mdulos ms sencillos. Cada uno de estos mdulos estaba formado
por puertas ya probadas, este mtodo poco a poco, iba quedando obsoleto. En ese momento
(finales de los aos setenta) se constata el enorme desfase que existe entre
tecnologa y diseo.
La considerable complejidad de los circuitos integrados que se podan fabricar,
implicaban unos riesgos y costes de diseo desmesurados e imposibles de asumir por las
empresas. Es entonces, cuando diversos grupos de investigadores empiezan a crear y
desarrollar los llamados "lenguajes de descripcin de hardware" cada uno con sus
peculiaridades. Empresas tales como IBM con su IDL, el TI - HDL de Texas Instruments,
ZEUS de General Electric, etc.,
Alrededor de 1981 el Departamento de Defensa de los Estados Unidos desarrolla un
proyecto llamado VHSIC (Very High Speed Integrated Circuit) su objetivo era rentabilizar
las inversiones en hardware haciendo ms sencillo su mantenimiento. Se pretenda con ello
resolver el problema de modificar el hardware diseado en un proyecto para utilizarlo en
otro, lo que no era posible hasta entonces porque no exista una herramienta adecuada que
armonizase y normalizase dicha tarea, era el momento de los HDL's

94

VOLVER A NDICE

En 1983, IBM, Intermetrics y Texas Instruments empezaron a trabajar en el


desarrollo de un lenguaje de diseo que permitiera la estandarizacin, facilitando con ello,
el mantenimiento de los diseos y la depuracin de los algoritmos, para ello el IEEE
propuso su estndar en 1984.
Tras varias versiones llevadas a cabo con la colaboracin de la industria y de las
universidades, que constituyeron a posteriori etapas intermedias en el desarrollo del
lenguaje, el IEEE public en diciembre de 1987 el estndar IEEE std 1076-1987 que
constituy el punto firme de partida de lo que despus de cinco aos sera ratificado como
VHDL.
Esta doble influencia, tanto de la empresa como de universidades, hizo que el
estndar asumido fuera un compromiso intermedio entre los lenguajes que ya haban
desarrollado previamente los fabricantes, de manera que ste qued como ensamblado y
por consiguiente un tanto limitado en su facilidad de utilizacin haciendo dificultosa su
total comprensin. Este hecho se ha visto incluso ahondado en su revisin de 1993. Pero
esta deficiencia se ve altamente recompensada por la disponibilidad pblica, y la seguridad
que le otorga el verse revisada y sometida a mantenimiento por el IEEE.
La independencia en la metodologa de diseo, su capacidad descriptiva en
mltiples dominios y niveles de abstraccin, su versatilidad para la descripcin de sistemas
complejos, su posibilidad de reutilizacin y en definitiva la independencia de que goza con
respecto de los fabricantes, han hecho que VHDL se convierta con el paso del tiempo en el
lenguaje de descripcin de hardware por excelencia.

5.1.1 Ventajas de los HDLS.


Una metodologa de diseo que utiliza un HDL posee varias ventajas sobre la
metodologa tradicional de diseo a nivel compuerta. Algunas de estas ventajas se listan a
continuacin.

Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin
necesidad de implementar el circuito.

Las simulaciones del diseo antes de que este sea implementado mediante
compuertas, permite probar la arquitectura del sistema para tomar decisiones en
cuanto a cambios en el diseo.

Las herramientas de sntesis tienen la capacidad de convertir una descripcin


VHDL, por ejemplo, a compuertas lgicas, y adems optimizar dicha descripcin de
acuerdo a la tecnologa utilizada.

95

VOLVER A NDICE

Las herramientas de sntesis pueden transformar automticamente un circuito


obtenido mediante la sntesis de un cdigo en algn HDL, a un circuito pequeo y
rpido. Adems es posible aplicar ciertas caractersticas al circuito dentro de la
descripcin para afinar detalles en la arquitectura del circuito y que estas
caractersticas se obtengan en la sntesis de la descripcin

La descripcin en HDL proporciona documentacin de la funcionalidad de un


diseo independientemente de la tecnologa que sea utilizada.

Un circuito echo mediante una descripcin en HDL puede ser utilizada en cualquier
dispositivo programable capaz de soportar la densidad del diseo.

5.2 ESTRUCTURA DE LENGUAJE VHDL.

El lenguaje VHDL est creado especficamente para el diseo de hardware, es decir,


podremos implementar con l multitud de circuitos lgicos, tanto combinacionales como
secunciales. ste lenguaje tambin nos permite describir elementos ms complejos, como
CPU's (Unidad Central de Procesamiento), manejar ficheros, retrasos en el tiempo, etc.
pero no siempre se puede implementarlos; tan slo, y en casos solo se llegar a la
simulacin.
Un programa en VHDL consta de dos partes. La primera, la entidad, nos sirve para
relacionar nuestro diseo con el mundo exterior, es decir, analizamos lo que tratamos de
crear como una "caja negra", de la que slo conocemos sus entradas, sus salidas y la
disposicin de las mismas. La segunda parte, la arquitectura, describe como trata el circuito
la informacin correspondiente a las entradas para obtener las salidas.
La entidad modela al circuito, componente o sistema internamente definiendo a este
mediante un nombre y sus conexiones que vienen siendo las entradas y salidas del circuito.
En tanto que la arquitectura, que es la vista interna, define el funcionamiento del circuito.
Despus de definir las interfaces de la entidad, otras entidades pueden utilizar a las
primeras como un subcircuito, al mismo tiempo que todas estn siendo desarrolladas, es
decir, estn siendo detalladas en su funcionamiento.
Este concepto de vistas externas e internas es propio de VHDL y permite segmentar
un sistema a bloques. As una entidad es relativa a otras entidades a travs de sus
conexiones y comportamiento.

96

VOLVER A NDICE

Es posible experimentar cada entidad con diferentes arquitecturas sin necesidad de


cambiar el resto del diseo. Y obviamente cada entidad puede ser reutilizada en otros
sistemas aunque no hallan sido diseados especficamente para estos. El modelo de
hardware de VHDL es mostrado en la figura 5.2.1.

Entity
Architecture
Process

Ports

Sequential
Proces s
wait ...;
if A
then X
els e Y
end if;

Process
Signals

Com binational
Proces s
X AND (Y xor Z);

0 to 15

Subprogram

Component

Figura 5.2.1. Modelado del Hardware en VHDL.


Una entidad en VHDL, que es ya todo un diseo, posee una o ms conexiones hacia
los sistemas que la rodean. Una entidad puede estar compuesta de otras entidades de
procesos y componentes. Cada entidad esta definida por su arquitectura la cual se forma de
instrucciones en VHDL, ya sean aritmticas, asignaciones a seales o de simples instancias
de componentes.
La sentencia PROCESS en VHDL es utilizada para modelar tanto circuitos
secunciales como combinacionales, utilizando un estilo de descripcin secuencial. Para
interconectar procesos distintos se utilizan SIGNALS que no son otras cosa que simples
cables de interconexin.

97

VOLVER A NDICE

5.2.1 Como se declara una Entidad.


En la declaracin de entidades, se definen las entradas, salidas y tamao de un
circuito, explicitando cuales son, de qu tamao (de 0 a n bits), modo (entrada, salida) y
tipo (integer, bit,...). Las entidades pueden definir bien las entradas y salidas de un diseo
ms grande o las entradas y salidas de un chip directamente. La declaracin de entidades es
anloga al smbolo esquemtico de lo que queremos implementar, el cual describe las
conexiones de un componente al resto del proyecto, es decir, si hay una entrada o puerto de
8 bits, o dos salidas o puertos de 4 bits, etc. La declaracin de entidades tiene la siguiente
forma:

rxy cxcxo_a xs

Cabecera del programa

po(

Se indica que a continuacin viene los puertos (o


grupos seales) de entrada y/o salida

- pros dr radas
- pros dr saxdas
- pros dr X
- pros dr rs
)
rd cxcxo_a

Aqu se declaran las entradas y/o salidas con la


sintaxis que se ver a continuacin. Las lneas
empezadas por dos guiones son ignoradas por el
compilador. As mismo, recordamos que el
compilador no distingue las maysculas de las
minsculas
Se indica que se ha acabado la declaracin de
puertos de entrada y/o salida, y que se ha acabado
la entidad

Como hemos dicho, cada seal en una declaracin de entidad est referida a un
puerto (o grupo de seales), el cual es anlogo a un(os) pin(es) del smbolo esquemtico.
Un puerto es un objeto de informacin, el cual, puede ser usado en expresiones y al cual se
le pueden asignar valores.
VHDL no distingue las letras maysculas de las minsculas, por lo que un puerto
llamado por nosotros "EnTraDA" ser equivalente a otro que se llame "ENTRADA" o
"entrada. El primer carcter de un puerto slo puede ser una letra, nunca un nmero. As
mismo, no pueden contener caracteres especiales como $, %, ^, @, ... y dos caracteres de
subrayado seguidos.

98

VOLVER A NDICE

A cada puerto se le debe asignar un nombre vlido. A continuacin se exponen


algunos ejemplos:

or_axar: odo xpo

Forma genrica de designar un puerto

proa: x x

El primer puerto es un bit de entrada, y su


nombre es "puertoa"

pro: x x_rco(0 o 7)
proc: o x_rco(3 doqo 0)

El segundo puerto es un vector de 8 bits de


entrada siendo el MSB el puertob(0) y el LSB el
puertob(7)
El tercer puerto es un vector de 4 bits de salida
siendo el MSB el puertoc(3) y el LSB el
puertoc(0)

prod: r x

El cuarto puerto es un buffer de un solo bit,


cuyo nombre es "puertod"

pror: xo sd_oxc

El quinto puerto es una entrada/salida del tipo


estndar logic de un solo bit

Como se puede deducir de los ejemplos anteriores, seguidos del nombre del puerto
y separados de ste por dos puntos, se debe indicar el tipo de puerto. El modo describe la
direccin en la cual la informacin es transmitida a travs del puerto: in, out, buffer e inout.
Si no se especifica nada, se asume que el puerto es del modo in.
Modo in: Un puerto es de modo in si la informacin correspondiente al mismo,
entra a la entidad y se suele usar para relojes, entradas de control (como las tpicas load,
reset y enable), y para datos de entrada unidireccionales.
Modo out: Un puerto es de modo out si la informacin fluye hacia fuera de la
entidad. Este modo no permite realimentacin ya que al declarar un puerto como out
estamos indicando al compilador que el estado lgico en el que se encuentra no es leble.
Esto le da una cierta desventaja pero a cambio consume menos recursos de nuestros
dispositivos lgicos programables.
Modo buffer: Es usado para una realimentacin interna, es decir, para usar este
puerto como un driver dentro de la entidad. Este modo es similar al modo out, pero
adems, permite la realimentacin y no es bidireccional, y solo puede ser conectado
directamente a una seal interna, o a un puerto de modo buffer de otra entidad. Una
aplicacin muy comn de este modo es la de salida de un contador, ya que debemos saber
la salida en el momento actual para determinar a salida en el momento siguiente.

99

VOLVER A NDICE

Modo inout: Es usado para seales bidireccionales, es decir, si necesitamos que por
el mismo puerto fluya informacin tanto hacia dentro como hacia afuera de la entidad. Este
modo permite la realimentacin interna y puede reemplazar a cualquiera de los modos
anteriores, pudindose usar este modo para todos los puertos, pero reduciremos la lectura
posterior del cdigo por otra persona, y reduciendo los recursos disponibles de la
dispositivo.
Como ejemplo, a continuacin se incluye la declaracin de una entidad
correspondiente a un multiplexor de 2x1 de cuatro bits, con entrada de habilitacin o
enable. El multiplexor necesita las entradas de informacin, la seal de seleccin, la de
enable y las salidas de informacin.

rxy x xs po (

Cabecera ya estudiada arriba, en la que multi


es el nombre de la entidad

rar: x x

srrc: x x

x1: x x_rco(3 doqo 0)

x2: x x_rco(3 doqo 0)


o1:o x_rco(3 doqo 0)
)
rd x

enable es un bit de entrada


(suficiente para habilitar o no)
selec es otro bit de entrada, que
selecciona la entrada in1 o in2,
ambas de 4 bits
out1 es de salida, que lgicamente,
debe ser de la misma longitud que in1
e in2

Ntese que el ltimo puerto no lleva punto y


coma al final de la lnea. Si lo llevase estara
incorrecto

5.2.2 Como se declara una Arquitectura.


La arquitectura indica el tipo de procesado que se realiza con la informacin
correspondiente a las seales de entrada, (declarados previamente en la entidad) para llegar
a tener los puertos de salida (tambin declarados en la entidad). En la declaracin de
arquitecturas es donde reside todo el funcionamiento de un circuito, ya que es ah donde se
indica que hacer con cada entrada, para obtener la salida. Si la entidad es vista como una
"caja negra", para la cual lo nico importante son las entradas y las salidas, entonces, la
arquitectura es el conjunto de detalles interiores de la caja negra.

100

VOLVER A NDICE

La declaracin de arquitecturas debe constar de las siguientes partes como mnimo,


aunque suelen ser ms:

acwxrcr acwpo o poaa xs

Cabecera de la arquitectura. En sta,


archpro es un nombre cualquiera (suele
empezar por "arch", aunque no es necesario)
y programa es el nombre de una entidad
existente en el mismo fichero

- drcaacx dr srars y oos accrsoxos

Declaraciones de apoyo, que se vern en la


pgina siguiente

rx

Se da comienzo al programa

- cro dr poaa

Conjunto de sentencias, bucles, procesos,


funciones,... que dan operatividad al
programa.

rd acwpo

Fin del programa

A continuacin, se muestra el cdigo fuente de un programa en VHDL de un


multiplexor (esta es una de las mltiples formas de implementar un multiplexor en VHDL),
el cual debe ir unido a la entidad expuesta en el apartado de la declaracin de entidades, ya
que una parte sin la otra carecen de sentido.

acwxrcr acwxx o x xs

Cabecera de la arquitectura. En esta ocasin


el nombre de la arquitectura es archimulti, y
el de la entidad es multi, la cual est definida
anteriormente.

- srars

En este programa no se necesitan seales

rx

Comienza al programa

pocrss(rarx1x2)
rx
x rar=0 wr o1=1111
rsx rar=1 wr
x(srrc = 0) wr o1=x1

Sentencias que hacen que la entidad definida


como multiplexor realice la funcin propia
de su nombre. Solo hay que entender la
estructura de las arquitecturas en estos
momentos, por lo que este cdigo no debe
ser objeto de preocupacin.

101

rsx(srrc = 1) wr
o1=x2
rd x
rd x
rd pocrss
VOLVER A NDICE

rd acwxx

Fin del programa

5.3 FUNCIONES.
Una funcin es un algoritmo que retorna un nico valor y puede o no tener
parmetros de entrada. Las funciones se utilizan generalmente para:

Convertir objetos de datos de un tipo a otro


Como simples funciones que realizan operaciones para las mas frecuentes
situaciones de diseo. Los parmetros de una funcin siempre son del modo IN y
deben ser seales o constantes, a dems de que cualquier declarada dentro de la
funcin existe solamente dentro de la funcin.

Declaracin de las funciones

Cuerpo de la funcin

Ejemplo:

102

VOLVER A NDICE

5.3.1 Procedimientos.
Los procedimientos estn destinados a realizar alteraciones en los datos a los que
tienen acceso, tanto internos como externos. De forma distinta a las funciones, un
procedimiento puede devolvernos ms de un valor e incluso modificar alguno de los
valores que le introducimos. Un procedimiento o procedure consta al igual que las
funciones de una parte declarativa y otra de sentencias.
La Parte declarativa: En ella indicamos cuales son los parmetros que introducimos
en la procedure, pudiendo ser de tres modos posibles: in, out, e inout, y son por defecto del
modo in. Si el modo de una seal de entrada es in, no podremos modificar su valor,
solamente usarlo, y a ojos de la procedure ser una constante. Si el modo es out podrn ser
modificados en la parte de sentencias, pero al igual que pasa en una entidad no podremos
leer su valor. Solamente si es de modo inout podremos leer su valor y adems modificarlo.
Al igual que en las funciones podremos declarar todos los tipos, constantes, variables, etc.
pero slo existirn cuando se haga un llamamiento a la procedure y se reinicializarn cada
vez que se vuelva a llamar.
La Parte de sentencias: En ella se modifican seales y variables tanto internas como
externas al procedure, pudiendo adems usar la sentencia wait.
Para aclarar conceptos, se muestra el siguiente cdigo, en el cual se consigue el
mismo resultado que en el ejemplo expuesto en el apartado de funciones. La parte
declarativa es la siguiente:
pocrdr

sa

(a:

sd_oxc_rco(3

doqo

0)

sa: o sd_oxc_rco(3 doqo 0))

103

Su estructura se asemeja a la de una entidad y empieza con la palabra reservada


procedure seguida del nombre que le vamos a asignar a la misma (en este caso es sumar),
y entre parntesis se declaran los objetos de entrada como si de una entidad se tratase. En
los procedimientos no hace falta usar la palabra return, ya que se especifica cul de las
seales es de entrada y/o salida.
La parte de declaraciones sera como sigue:
pocrdr sa (a: sd_oxc_rco(3 doqo 0)
sa: o sd_oxc_rco(3 doqo 0))
rx
sa = a +
rd pocrdr sa
VOLVER A NDICE

La primera parte consiste en repetir la parte declarativa y seguidamente, el


subprograma con sus algoritmos correspondientes.
Una vez definido el procedimiento podremos usarlo en cualquier parte del programa
ya sea secuencial o combinacional como por ejemplo:
Pocrss
axar ro1 ro2: sd_oxc_rco(3 doqo 0)
axar saxda: sd_oxc_rco(3 doqo 0)
rx
.
sa (ro1ro2saxda)
.
rd pocrss

104

Al igual que en una funcin, los tipos de los objetos de entrada y salida a una
funcin deben coincidir con los declarados en el procedimiento. Es importante notar que
una llamada a una procedure es una sentencia, no como una llamada a una funcin.
En este caso hemos hecho la asignacin por posicin, ya que al no indicar nada, el
compilador supone que queremos asignar el primer objeto que hemos introducido en la
funcin al primer objeto que habamos declarado cuando creamos el procedimiento. Esto es
numero1 se corresponde a a, numero2 se corresponde con b, y as sucesivamente. Si
queremos asignarlos por nombre deberemos hacerlo como se describe a continuacin:

sa ( ro1=a ro2= saxda =sa )


sa ( saxda= sa ro2= ro1=a )

Ambas formas de llamar al procedimiento son vlidas y equivalentes.

VOLVER A NDICE

5.3.2 Bibliotecas.
Las bibliotecas (libraries) y los paquetes (packages) contenidos en ellas son
elementos fundamentales en VHDL. En cualquier descripcin es habitual hacer uso de una
serie tipos, operadores, objetos, atributos, subprogramas, componentes, etc. definidos en
determinados paquetes, estndar o definidos por el propio usuario. Para ello es necesario
hacer dichos paquetes visibles. Por ejemplo si en un diseo se utiliza el tipo text, (declarado
en el paquete textio, ver Apndice B) y no se le da visibilidad a textio, el compilador genera
un mensaje de error porque no reconoce a text.
Por defecto, todas los modelos en VHDL contienen las siguientes sentencias:

105

xaysdqo
sr sd.a

La primera declaracin hace que para la entidad de diseo (entidad +


arquitectura(s)) que sigue sean encuentren visibles dos bibliotecas: la estndar (std) y la de
trabajo (work). La biblioteca std de VHDL contiene dos paquetes (standard y textio)
(Apndice B), en los que se encuentran definidos los tipos bsicos necesarios para la
descripcin de circuitos, tales como bit, integer, character, etc., as como algunas funciones
y rutinas bsicas. Por defecto el paquete standard es siempre visible gracias a la segunda
sentencia, que incluye dicho paquete en su totalidad.
Por otro lado, la biblioteca work tambin resulta visible en todo momento. Esta
biblioteca es la de trabajo, en la que se almacenan compiladas todas las unidades de diseo,
es decir, todas las entidades, arquitecturas, configuraciones y paquetes que forman parte del
diseo. La denominacin "work" es la que se usa por defecto, pero en general las
herramientas de diseo con VHDL permiten cambiar el nombre.

5.3.3 Paquetes.
Un diseador de Hardware que utilice frecuentemente la misma tecnologa de
diseo ha de hacerse, con el paso del tiempo, con una resea amplia de procedures,
funciones, puertas y, en general, de componentes que emplear con frecuencia. Los
packages permiten agrupar un conjunto de declaraciones para que puedan ser usadas en el
diseo de diferentes circuitos sin ser repetidas en la declaracin de cada uno.
La estructura bsica en la declaracin de un paquete est dividida en dos partes
claramente diferenciadas:
La declaracin del paquete, package: donde obtenemos una visinVOLVER
externa yA NDICE
simplificada del componente. La declaracin del paquete va precedida por la palabra
reservada package y finaliza con end. En el cuerpo de la declaracin nos encontramos con
procedures, funciones, componentes, etc. tal y como apareceran en la parte de la
declaracin de una entidad.

pacar or_dr_pacar xs
- drcaacx dr pocrdrs

Esta parte es a una entidad, lo mismo que un


paquete es a un programa normal en VHDL.

106

- drcaacx dr cxors
- drcaacx dr xpos rc..
rd or_dr_pacar;

La declaracin del cuerpo del paquete, package body: especifica el funcionamiento


de procedures, funciones, tipos, etc. que nos permite su implementacin, de forma similar a
la arquitectura. Debe llevar las palabras reservadas package body.

pacar ody or_dr_pacar xs


- drxxcx dr pocrdrs
- drxxcx dr cxors

Esta parte se corresponde con una arquitectura.

- drxxcx dr xpos rc.


rd or_dr_pacar

Todo esto hace posible que una vez declarados los subprogramas dentro de un
package, podamos utilizarlos haciendo nicamente uso de una llamada al proceso,
asignndole un nombre y la lista de parmetros necesarios.
Para poder usar o llamar a un package que ha sido descrito anteriormente, debemos
sr qo.or dr pacar.or dr coporrincluir la clusula use antes del cuerpo de la arquitectura.

sr qo.or dr pacar.or dr coporr

VOLVER A NDICE

Para esto se deben especificar tres cosas:

El nombre de la librera donde se encuentra el paquete


107

El nombre del paquete


El nombre del componente que se desee habilitar

Hay ocasiones en las que deseamos habilitar todos los componentes declarados en
un paquete, ya sea por comodidad o por no saber exactamente donde se encuentra el
recurso que deseamos usar. En tal caso, haramos uso de la palabra all de la siguiente
forma:
sr qo.or dr pacar.a
Como ejemplo se muestra a continuacin la declaracin de un package que contiene
a dos componentes, un contador y un decodificador.
Primero se declaran las libreras que se van a emplear
xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a

-pxrza a drcaacx dr pacar

pacar o xs
copor
co po (
crsr:x x
coa

:r sd_oxc_rco(1 doqo 0))

rd copor
copor
drcodr po (
108

srrccxo

:x sd_oxc_rco(1 doqo 0)

rar1rar2:x x
saxda

:o sd_oxc_rco(3 doqo 0))

rd copor
rd pacar
VOLVER A NDICE

-rcaacx dr as rxdadrs

xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a
sr qo.o.a
rxy co xs po (
crsr:x x
coa:r sd_oxc_rco(1 doqo 0))
rd co
acwxrcr acwxco o co xs
rx
coado :pocrss (crsr)
rx
x (rsr=1) wr coa = (owrs = 0)
rsx crr ad c=1 wr coa = coa + 1
rd x
rd ocrs
p s coado

109

rd acwxco

-rcaacx dr as aexrcas
-rscxpcxo dr drcodxxcado 38 (74s138)
xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.o.a
rxy drcodr xs po (
srrccxo

:x sd_oxc_rco(1 doqo 0)

rar1rar2:x x
saxda

:o sd_oxc_rco(3 doqo 0))

rd drcodr
-rscxpcx dr drcodxxcado
acwxrcr acwxdrcodr o drcodr xs
rx
drcodxxcado:pocrss(srrccxorar1rar2)
rx
x rar2=1 wr saxda=(owrs=0)
rsx rar2=0 ad rar1=0
wr saxda=(owrs=0)
rsx(rar1=1) wr
casr srrccxo xs
qwr 00 = saxda = 0001
qwr 01 = saxda = 0010

110

qwr 10 = saxda = 0100


qwr 11 = saxda = 1000
qwr owrs = saxda =1111
rd casr
rd x

VOLVER A NDICE

rd pocrss drcodxxcado
rd acwxdrcodr
Para poder hacer uso, de cualquier componente del package "uno" (el decodificador
o el contador), es necesario que primero se incluya la sentencia:
sr qo.o.a
Para describir una arquitectura podremos usar cuatro estilos, teniendo cada uno, su
propio nivel de abstraccin. Los estilos son:

5.4 DISEO ESTRUCTURAL.


Estilo structural o estructural: En l se describe un "netlist" de VHDL, en los
cuales los componentes son conectados y evaluados instantneamente mediante seales. No
se suele usar este estilo nicamente en una arquitectura ya que resulta muy tedioso y difcil
de modificar, siendo de verdadera utilidad cuando debemos crear una estructura grande y
deseamos descomponerla en partes para manejarla mejor, y para hacer la simulacin de
cada parte ms sencilla. Se suele requerir el uso de seales auxiliares, y adems paquetes y
libreras accesorios, lo cual, recordemos, debe estar declarado al comienzo de la entidad.

acwxrcr sc o copa xs
sxa t: x_rco(0 o 3)
rx
0: to2 po ap (a(0)(0)t(0))
1: to2 po ap (a(1)(1)t(1))

Aqu solo se interconexionan


salidas con entradas de
componentes. La salida viene
dada por la operatividad de los
componentes, la cual no se
puede saber si no conocemos el
paquete del cual ha sido leda.

111

2: to2 po ap (a(2)(2)t(2))
3: to2 po ap (a(3)(3)t(3))
4: ad4 po ap (t(0)t(1)t(2)t(3)xa)
rd sc

5.4.1 Diseo comportamental.


Estilo behavioral o comportamiento: Este estilo se caracteriza por incluir las
sentencias y rdenes tpicas de un lenguaje de programacin (if, then, case,...), sin
importarnos como quedar la distribucin de puertas lgicas dentro del dispositivo.
VOLVEREsA NDICE
necesario un proceso (process) al ser una estructura secuencial.
La sentencia process es una de las construcciones tpicas de VHDL usadas para
agrupar algoritmos. Esta sentencia se inicia (de forma opcional) con una etiqueta seguida de
dos puntos (:), despus la palabra reservada process y una lista de variables sensibles. La
lista sensible, indica que seales harn que se ejecuta el proceso, es decir, qu variable(s)
debe(n) cambiar para que se ejecute el proceso. Dentro de un proceso se encuentran
sentencias secunciales, no concurrentes. Esto hace que el orden de las rdenes dentro de
un proceso sea importante, ya que se ejecuta una despus de otra, y los posibles cambios
que deba haber en las seales alteradas se producen despus de evaluar todo el ciclo al
completo. Esta caracterstica define una de las particularidades de VHDL.
La estructura de un proceso es la siguiente:
rxera: pocrss (a1 a2 . )
rx
srrcxas srcrcxars

Si cambia alguna de las variables situadas


entre los parntesis, se ejecuta el proceso.

rd pocrss rxera

Es muy importante tener en cuenta dos cosas a la hora de usar un proceso respecto a
las seales y las variables. La primera es que las variables toman instantneamente el valor
especificado y que slo tienen sentido de existencia dentro de un proceso. La segunda es
que las seales cambian su valor solamente al llegar al final del proceso. Esto se aprecia
claramente en los dos ejemplos siguientes, cuyo comportamiento se pretende que sea el
siguiente (suponiendo que hemos cargado el operador +):

112

Si a tiene el valor "0000", entonces la salida/entrada b deber incrementar su valor


en una unidad, y si despus e haber incrementado la seal b, sta vale "0001", c deber
valer '1', si no es as deber valer '0'.

acwxrcr o_cxoa o o xs
rx

Si hay un cambio en la seal


de entrada a, entonces se
ejecuta el proceso:

pocrss (a)
rx
x a = 0000 wr = + 1
rd x
x = 0001 wr c = 1
rsr c =0

b se incrementa cuando se
acabe de ejecutar el proceso
(manteniendo el valor actual
hasta el end del mismo) si a
vale "1111"
c vale '1' si b tiene el valor
"0001"

rd pocrss
rd o_cxoa

VOLVER A NDICE
El primer ejemplo no funciona adecuadamente si b tiene le valor inicial de "0000".
Veamos porqu: si y a cambia para tomar el valor "0000", b se incrementar en una unidad
al finalizar la evaluacin del proceso, por lo que b no valdr "0001" hasta entonces, por lo
que c no valdr '1', que no era lo que desebamos.

acwxrcr cxoa o o xs
rx
pocrss (a)
axar : x_rco(3 doqo 0)
rx

Si hay un cambio en la seal de


entrada a, entonces se ejecuta el
proceso:

:=

x a = 0000 wr := + 1

rd x

v toma instantneamente el
valor de b
v se incrementa
instantneamente si a vale
"1111"
c vale '1' si v tiene el valor
"0001"
b toma el valor de v

113

x = 0001 wr c = 1
rsr c =0
=
rd pocrss
rd cxoa
El segundo ejemplo si que funciona como habamos especificado para cualquier
valor de b. Si a cambia y toma el valor "0000", la variable v toma instantneamente el valor
inicial de b (esto es "0000"), y se incrementar en una unidad instantneamente por lo que
valdr "0001". Entonces c tomar el nivel lgico alto, y seguido a esto, b tomar el valor
incrementado de v. Los nuevos valores de b y c aparecern a la salida al acabar la
evaluacin completa del proceso.
Teniendo claro como es que se declara un proceso, continuaremos enseguida con la
explicacin del diseo compartamental
El siguiente fragmento de cdigo describe un comparador escrito con el estilo
behavioral o de comportamiento.
acwxrcr rwaxoa o copa xs
rx
cop: pocrss (a )
rx
x a= wr
xa=1
rsr

Como se puede apreciar en este ejemplo se


utilizan los clsicos if then else de cualquier
lenguaje de programacin, y adems las
asignaciones son secunciales. Esto es lo
que hace esta arquitectura de
comportamiento o behavioral.

xa=0
rd x
rd pocrss cop
rd rwaxoa

114

VOLVER A NDICE

5.4.2 Diseo de flujo de datos.


Estilo dataflow o flujo de datos: Este estilo podremos encontrarlo de dos formas
similares, pero ambas implican cmo la informacin ser transferida de seal a seal y de la
entrada a la salida sin el uso de asignaciones secunciales, sino concurrentes. Es decir, en
este estilo no se pueden usar los procesos.
La naturaleza propia de los circuitos elctricos obliga a VHDL a soportar un nuevo
tipo de asignacin de seales, que nos permita implementar este tipo de operatividad. En
ella todas las asignaciones se llevan a cabo en paralelo (al mismo tiempo). En una
asignacin concurrente la seal que est a la izquierda de la asignacin es evaluada siempre
que alguna de las seales de la derecha modifique su valor. Como ejemplo tenemos las
siguientes sentencias de asignacin:
c= ad
s = ato

Si las seales de entrada (situadas a la derecha), a o b, cambian su valor, las seales


de salida (situadas a la izquierda), c y s, son evaluadas, de forma que su valor se ver
modificado si fuese necesario.
El comparador descrito de forma behavioral o de comportamiento se puede
escribir usando el estilo dataflow de cualquiera de las dos formas siguientes:

acwxrcr daoq1 o copa xs


rx
xa=1 qwr (a=) rsr 0
rd daoq1

Esta arquitectura es del estilo dataflow


porque se especifica como la informacin
pasar a la salida sin usar sentencias
secunciales

acwxrcr daoq2 o copa xs


rx
xa= o(a(0) to (0))
ad o(a(1) to (1))

Aqu de nuevo las asignaciones son


concurrentes, no secunciales.

ad o(a(2) to (2))

115

ad o(a(3) to (3))
rd daoq2

VOLVER A NDICE

5.5 SIMULACIN Y SINTESIS.


En un principio VHDL, al igual que los dems HDL'S, nacieron con el propsito de
facilitar la labor de los diseadores de circuitos electrnicos, agilizando su diseo y
haciendo ms flexible su posterior depuracin y mantenimiento. Por este motivo se dot a
VHDL con abundantes instrucciones ms orientadas a la simulacin que a la
implementacin fsica del diseo. Ello trajo consigo la diferenciacin del VHDL
sintetizable del simulable, siendo este ltimo el ms extendido y el que cuenta con ms
herramientas en los programas. Si trabajamos con VHDL sintetizable, slo podremos hacer
uso de un conjunto de instrucciones vlidas.
El lenguaje nos permite describir circuitos complejos manejando todas las
sentencias y herramientas de las que dispone, pero no siempre se garantiza que se pueda
llegar a grabar en un dispositivo de lgica programable (PLD), ya que ciertas instrucciones
no tienen equivalente fsico.
Como conclusin, se puede decir que todo el cdigo de un programa en VHDL es
simulable, pero no siempre ser sintetizable.
Dado que el VHDL es el lenguaje estndar, todas las empresas fabricantes de PLDs
y FPGAs (Cypress, Xilinx, Altera, Actel, etc.) han desarrollado su propio compilador cada
uno con sus propias funciones y caractersticas especiales. Este trabajo ha sido realizado
basndose en el programa Warp2, del cual se muestran varias ventanas cortesa de la
compaa Cypress Semiconductor.
A pesar de ser un producto no muy pensado de cara al usuario, la herramienta de
Cypress es tan potente como las dems, contando adems con un gran soporte tcnico va email. El nombre de la herramienta se llama WARP 2, que actualmente va por su versin
4.3. Este conjunto de programas est orientado a la creacin de un fichero propio de VHDL
(*.vhd), para compilarlo (Galaxy) y posteriormente simularlo (Nova).
Para conseguir este software se puede solicitar por correo ordinario o electrnico en
la pgina web de Cypress.

116

El programa Galaxy es el ncleo de la suite WARP2, ya que nos gestiona los


programas creados, nos permite editarlos y elegir distintas opciones de compilacin. Su
pantalla principal es mostrada en la figura 5.5.1
VOLVER A NDICE

Figura 5.5.1

Pantalla principal del programa WARP2.

Con este programa podremos describir un circuito en VHDL, compilarlo y


simularlo, sin ms que usar el men adecuado.
Al arrancar por primera vez el programa, nos aparecer una pantalla que nos
gestionar el control de un proyecto (figura 5.5.2), entendindose por proyecto la creacin
de una serie de PLDs concernientes al mismo trabajo o tema. Deberemos introducir en este
cuadro de dilogo, la ruta y nombre del proyecto, segn nuestras preferencias, y aadirle la
extensin wpr:

Figura 5.5.2

Creando un nuevo proyecto.


117

En este caso hemos creado un proyecto llamado "proyecto.wpr" VOLVER


en la rutaA NDICE
"c:\warp\proyecto".
Una vez hecho esto pasamos a la ventana principal del programa mostrada en la
figura 5.5.3. Si queremos crear un nuevo fichero para compilar, deberemos llamar al editor
de texto, para lo que deberemos pulsar el botn llamado selected o el botn llamado new,
en la parte de edit, segn queramos modificar un fichero ya creado o bien hacer uno nuevo,
respectivamente.

Figura 5.5.3 Ventana principal para editar el programa.


En esta ventana crearemos o modificaremos el cdigo fuente de VHDL segn lo que
queramos realizar. Este editor tiene una serie de guas para ayudarnos a programar, por si se
nos olvida la sintaxis. Una vez escrito todo el cdigo del programa, lo deberemos guardar,
con extensin vhd, en el mismo subdirectorio en el cual hemos creado el fichero de
extensin wpr (en este caso es c:\warp\proyecto) para que pueda ser compilado sin ningn
problema por el programa.
Si queremos crear una librera nueva para este proyecto, deberemos especificarla
despus de haber creado el fichero de extensin wpr. Para ello deberemos ir al comando
files/libraries y crear una nueva si as lo deseamos.

118

Una vez creada la librera, deberemos decir al programa qu queremos compilar,


para lo cual deberemos ir al men files/add y seleccionar el fichero que queramos
compilar. Una vez hecho esto, aparecer el nombre de dicho fichero en la parte izquierda
VOLVERdeA NDICE
la ventana, debajo del men de comandos.
Antes de pulsar los botones que nos compilarn el programa creado, deberemos
seleccionar qu tipo de PLD vamos a usar, el tipo de optimizacin, etc. Esta tarea la
realizamos con los botones de la parte inferior del programa: file, set top, generic y device.
El botn file nos servir para decirle al programa que queremos usar la librera por
defecto (es lo ms habitual) o si queremos usar un creada. Su aspecto es el siguiente (figura
5.5.4.).

Figura 5.5.4.
El botn set top sirve para indicar cual de los ficheros a compilar es el principal,
del cual cuelgan los dems ficheros. El botn generic nos lleva al men que nos permitir
elegir ciertas opciones como si deseamos optimizar la velocidad o el rea usada del
dispositivo de lgica programable el cual se muestra figura 5.5.5.

119

VOLVER A NDICE

Figura 5.5.5 Botn generis el cual elige la velocidad y el rea requerida.


El botn device nos permitir elegir el tipo de PLD que usaremos para grabar
nuestro diseo, que hacer con las salidas no usadas, que tipo de FlipFlops queremos usar,
etc. Este men es mostrado en la figura 5.5.6:

Figura 5.5.6 Botn Device el cual elige el tipo de dispositivo.

120

VOLVER A NDICE

Una vez hechas todas estas operaciones habremos dejado todo preparado para
empezar a compilar.
Pulsando en los botones selected o smart, de la parte compile, podremos compilar
uno o ms ficheros de VHDL simultneamente. Una vez pulsado cualquiera de los botones
de compilacin, nos aparecer una pantalla con las incidencias de la misma, incluyendo las
libreras usadas, fecha, hora, errores, etc.
Desde esta pantalla podremos acceder a las lneas del cdigo errneas directamente
y modificarlas para solucionar el problema, lo cual es una gran ayuda para eliminar errores
de nuestros programas. En esta ventana apreciamos la forma de trabajar interna del
programa, ya que nos dice el nombre de los programas que van verificando el fichero en
busca de errores, y como se va transformando el cdigo original en un fichero que nos
permitir grabarlo en una PLD. Dicha pantalla tiene el aspecto siguiente en la figura 5.5.7:

Figura 5.5.7 Botn smart el cual compila el programa en VHDL.

Si en la barra de estados de la ventana de compilacin aparece la leyenda


"Compilation successful" (como aparece en la figura), querr decir que la compilacin ha
tenido xito y que el fichero de vectores JEDEC, de extensin jed, necesario para la

121

VOLVER A NDICE

grabacin de las PLDs ha sido creado correctamente. Una vez compilado el programa,
llamaremos al programa simulador de ficheros de VHDL compilados (de extensin jed),
llamado Nova, pulsando en el men "Tools/Nova", tal y como se aprecia en al siguiente
figura 5.5.8:

Figura 5.5.8 Llamando al programa simulador llamado Nova.


El programa Nova es el complemento a Galaxy, ya que nos va a simular los ficheros
compilados previamente. Su aspecto es similar a un analizador lgico, y le podremos
introducir las entradas que queramos para ver si las salidas que vayamos a obtener son las
correctas. Su aspecto es el de la figura 5.5.9:

Figura 5.5.9 Ejemplo de una simulacin echa en Nova.

122

VOLVER A NDICE

Para simular un fichero jed (de vectores JEDEC) deberemos primero abrirlo con el
comando "file/open". Lo siguiente que nos aparece es un cronograma con las entradas y las
salidas que admitir la PLD. Nosotros podremos introducir las entradas y darle la forma
que queramos (nivel lgico alto o bajo, que sea un reloj, que tenga un pulso,...) segn lo
que deseemos, sin ms que acceder al men "edit".
Una vez modificada la forma de las entradas, y accediendo al comando "execute"
del men "simulate", el programa nos ofrecer en rojo las salidas que hubiramos obtenido
de haber grabado la PLD con este fichero. Haciendo doble clic en la pare inferior de la
ventana nos aparecer una lnea de gua para poder seguir mejor el resultado de la
simulacin.
Tambin nos permite el organizar las entradas y salidas en forma de bus para
controlar mejor los resultados. Esto es muy til si estamos manejando entradas y/o salidas
de varios bits de anchura y necesitamos saber su valor en todo momento.
Un ejemplo de cmo es til la creacin de un bus se muestra en las siguientes
imgenes (figura 5.5.10), donde, en la superior no se usa un bus y en la inferior donde s se
usa. En ambas hemos introducido la misma entrada aleatoria y queremos saber el resultado
de al simulacin para las salidas en el instante 50ns.
En el primer caso, sin bus, deberemos analizar cual es el valor de cada uno de los
bits de salida, e interpretarlo para ver que es "111", o bien, "7".

Figura 5.5.10.

123

VOLVER A NDICE

Si hemos creado un bus, como en la siguiente imagen(figura 5.5.11). El resultado


de los bits de salida los va marcando el programa sin ms que desplazar la gua hasta el
instante deseado, para ver que la salida es "00x7". Para crear un bus hay que ejecutar el
comando edit/create bus, y seleccionar que seales queremos que formen parte del bus.

Figura 5.5.11 Diagramas de tiempos en la simulacin.

Una vez que hayamos dado este pas, estaremos preparados para grabar nuestra
PLD en las mquinas dispuestas a tal efecto.

124

VOLVER A NDICE

CIRCUITOS COMBINACIONALES PRCTICOS.


6.1 EL TIEMPO EN LOS CIRCUITOS.
6.1.1 Diagramas de tiempo.
En la implementacin de circuitos combinacionales muchas de las veces no
hacemos caso de los retardos de propagacin en las compuertas, debido a que la mayora de
las veces no es necesaria tanta velocidad de frecuencia en nuestro diseo (tal es el caso de
la mayora de los sistemas de comunicacin a largas distancias). Para el diseo de sistemas
mas sofisticados estos retardos pueden afectar a nuestro diseo en general debido a los
retardos de conmutacin de los transistores. Por esta razn es necesario dar una breve
explicacin de los tiempos de retardos que ocurren cuando se implementa un diseo
combinacional, des esta manera comenzaremos por definir algunos parmetros.
Una salida puede producir un pulso corto, (frecuentemente llamado GLITCH o
interferencia) no deseado. Se dice que existe un HAZARD cuando un circuito tiene la
posibilidad de producir un GLITCH de esta clase.
La ocurrencia de un HAZARD en un sistema digital ocurre debido a:

Los retardos exactos de cada compuerta.


Otras caractersticas elctricas de los circuitos.

Aunque algunos de estos parmetros son difciles de controlar, el diseador debe


estar preparado para eliminar este tipo de riesgos. Estos riegos pueden ser estticos o
estacionarios o dinmicos.

Riesgos estticos:
Un riesgo de 1 esttico es la posibilidad de que una salida del circuito produzca una
interferencia 0 cuando se espera que la salida permanezca en un 1 estacionario.

EJEMPLO 1
Supongamos el diagrama lgico que se muestra en la figura 6.1.1.1 donde X e Y
son siempre 1 lgico

125

VOLVER A NDICE

x
z

zxp
1

zp

3
2

yz

Figura 6.1.1.1 Diagrama de un circuito combinacional donde Z cambia de 0 a 1.


Al realizar un anlisis de estado estacionario, vemos que si XYZ =111 y XYZ =110
entonces F = 1 en todo tiempo. Suponiendo que X e Y son siempre 1 lgico y que Z
cambia de 1 a 0 lgico, se tiene el siguiente diagrama de tiempos. (Figura 6.1.1.2)

zp
yz
xzp
F

1
0
1
0
1
0
1
0

Figura 6.1.1.2 Diagrama de tiempos de un circuito combinacional.


Como podemos ver en la figura existe un instante en que la salida F tiene el valor de
cero el cual no se tena previsto o contemplado dentro de nuestro diseo.
Otro factor que es importante mencionar es cuando un 0 lgico es la posibilidad de
una interferencia de 1 cuando se espera que el circuito tenga una salida 0 estacionaria.

126

VOLVER A NDICE

EJEMPLO 2
En estado estacionario supongamos el diagrama lgico que es mostrado en la figura 6.1.1.3

wxzp

w0
x0
z0

-> 1

1
2
13

zp

12

1
3
2

y0

yz

yp

1
3
2

xp

xpyp

Figura 6.1.1.3 Diagrama lgico de un circuito combinacional del ejemplo 2.


Donde si WXZY = 0000 entonces F = 0 y si WXZY = 0010 entonces F =0 y ocurre
un cambio en Z que va de 0 a 1. El diagrama de tiempos se muestra en la figura 6.1.1.4.

z
zp
yz
wxzp
F

1
0
1
0
1
0
1
0
1
0

Figura 6.1.1.4. Diagrama de tiempos donde se muestra a la salida un glitche no esperado.

127

VOLVER A NDICE

NOTA. La existencia de riesgos estticos depende del diseo del circuito para una funcin
lgica.

Riesgo dinmico:
Es la posibilidad de un cambio en la salida ms de una vez como resultado de una
transicin de entrada simple.

6.2 DISPOSITIVOS PROGRAMABLES


COMBINACIONALES.
Un dispositivo lgico programable (PLD) es un chip LSI que contiene una
estructura de circuito regular, pero que permite al diseador adecuarlo para una
aplicacin especfica.
Un dispositivo lgico programable, o PLC (Programmable Logic Device), es un
dispositivo cuyas caractersticas pueden ser modificadas y almacenadas mediante
programacin. El dispositivo ms simple es el PAL (Programmable Array Logic). El
circuito interno de un PAL consiste en una matriz de conexiones, una matriz de compuertas
AND y un arreglo de compuertas OR. Una matriz de conexin es una red de conductores
distribuidos en filas y columnas con un fusible en cada punto de interconexin, mediante la
cual se seleccionan cuales entradas del dispositivo sern conectadas al arreglo AND cuyas
salidas son conectadas al arreglo OR y de esta manera obtener una funcin en forma de
suma de productos.

Un PLD tiene las siguientes ventajas:

Remplazar a varios componentes discretos.


Reduccin del nmero de CIs.
Reduccin del espacio, conexin, consumo
Reduccin del coste
Aumento de la fiabilidad
Tienen la pasibilidad de ser reprogramado.
Eliminacin de errores de grabacin.
Gran flexibilidad
Su diseo es sencillo
Programacin a alto nivel (ecuaciones booleanas, tablas de verdad, diagrama
de estados)

128

VOLVER A NDICE

Posibilidad de simulacin.
La fabricacin de dispositivos de lgica programable se basa en los siguientes dos
conceptos:
Funcionalidad completa: La cual se fundamenta en le hecho de que cualquier
funcin lgica se puede realizar mediante un asuma de productos.
Celda de funcione universales: Tambin denominadas generadores de funciones,
son bloques lgicos configurados para procesar cualquier funcin lgica, similares en su
funcionamiento a una memoria. En estas celdas se almacenan los datos de salida del
circuito Combinacional en vez de implementar fsicamente la ecuacin booleana.
Estructura general de un PLD.

Salidas

Entradas
Funcin de
entrada

Matriz
AND

Matriz
OR

Funcin de
salida

Estructura Bsica
Realimentacin

Los PLD y sus versiones ms complejas (CPLD) y FPGAs (Field Programmable


Gate Array) se utilizan para integrar gran cantidad de lgica en un nico C.I. Frente a los
diseos ASIC (Application Specific Integrated Circuit) los productos basados en PLD
ofrecen al diseador una mayor flexibilidad, menor tiempo de desarrollo, y en una primera
aproximacin son apropiados para bajos volmenes de produccin.
Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las
excluye de esta denominacin debido a que su contenido se define utilizando elementos de
desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y
lenguajes de programacin de alto nivel. Otras veces, cuando estas memorias se usan para
realizar una funcin lgica y no para guardar un programa de un microprocesador, se las
incluye dentro del trmino PLD.

129

VOLVER A NDICE

Clasificacin de PLDs.
PROM (programmable Read Only Memory)
Matriz AND fija Matriz OR programable.
PAL (Programmable Array Logic)
Matriz AND programable Mmatriz OR fija.
FPLA (Field-Programmable Logic Array) o PLA
Matriz AND programable Matriz OR programable.
GAL (Generic Array Logic)
Matriz AND reprogramable Matriz OR fija Lgica de salida programable
(Combinacional-secuencial)
A continuacin en la figura 6.2.1(a,b)se muestra la arquitectura de los dispositivos
antes descritos.

130

VOLVER A NDICE

A
Entradas

0011

0100

0101

0110

0111

1000

1001

1010

10

10

1011

11

11

1100

12

12

1101

13

13

1110

14

14

1111

15

15

2
2

Salidas

0010

Matriz AND
programable

Salidas

Figura 6.2.1 Arquitectura de PLDs (a).

131

0001

Matriz OR
programabl

0000

Matriz AND
fija

Matriz OR
fija

C
1

A
Entradas

Arquitectura de una PAL


1

Arquitectura de una PROM

VOLVER A NDICE

Arquitectura de una PLA


A
Entradas

Matriz OR
programable.

Entrada 1

10

11

12

13

14

15

Entrada 3

E2CMOS
Entrada n

OLMC

E/S 2

OLMC

E/S m

OLMC: Output Logic MacroCell


(maro-clula lgica de salida)
Puede programarse en modo
combinacional o secuencial.

2
2

Matriz AND
programable

Matriz AND
programable.

Entrada 2

Salidas

0
2

E/S 1

OLMC

1
3

Diagrama a bloques de una GAL

Figura 6.2.1 Arquitectura de PLDs (b).

132

VOLVER A NDICE

6.3 CODIFICADOR.
Un codificador es un dispositivo lgico combinacional que recibe informacin por
su entrada y la traduce a un cdigo, el cual depende del tipo de codificador (figura 6.3.1).
Tienen una serie de patillas de entrada de las cuales slo una se activa, apareciendo el
nmero de la patilla activada a la salida en el cdigo correspondiente: decimal, BCD, etc.

N
M < 2
Figura 6.3.1 Esquema bsico de un codificador.

6.3.1 Codificador binario de 8 a 3 con prioridad.


Este codificador tiene una seal de ocho bits (numerados de A ha H) de entrada, y
una de salida de tres. Segn qu bit de los ocho de la entrada est seleccionado (esto es a
nivel alto), saldr a la salida un nmero o otro. Por ejemplo, si se selecciona el bit cero, a la
salida tendremos "000", si se selecciona el bit uno, tendremos a la salida "001", y as
sucesivamente. Adems, pueden estar dos bits de entrada a nivel alto a la vez, pero slo se
le hace caso al que hemos determinado que sea el de ms peso. En este caso el bit de ms
peso es la entrada (A) y el de menos peso es la entada (H).

133

VOLVER A NDICE

Tabla de funciones del decodificador 8 a 3 con prioridad.


Entradas
ABCDEFGH
HXXXXXXX
LHXXXXXX
LLHXXXXX
LLLHXXXX
LLLLHXXX
LLLLLHXX
LLLLLLHX
LLLLLLLH
LLLLLLLL

Salidas
S0 S1 S2
HHH
HHL
HLH
HLL
LHH
LHL
LLH
LLL
LLL

Diseado de una manera estndar y dada la tabla anterior, tenemos las siguientes
funciones.
A + B + C + D = S0
C'D'E + C'D'F + A + B = S1
B'D'F'G + B'D'E + B'C + A= S2
Implementando las funciones, obtenemos el circuito de la figura 6.3.1.1

S0

A
B

D
E
F

S1

G
S2

Figura 6.3.1.1 Diagrama de un codificador 8 a 3 con prioridad.

134

VOLVER A NDICE

El mismo codificador descrito anteriormente se puede implementar mediante


PLDs. A continuacin se describe el cdigo VHDL.
Para conseguir un codificador deberemos cargar la funcin std_match que sirve
para comparar dos vectores si en uno de ellos hay trminos "no importa". Esta funcin se
encuentra en el paquete std_arith, que est en la librera ieee. Esta funcin, std_match,
compara vectores del tipo std_logic, no bits, por lo que deberemos usar este nuevo tipo. El
tipo std_logic es el tipo ms usado ya que aparte del '0' y el '1' del tipo bit nos ofrece el "no
importa", estado de alta impedancia.
xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a
rxy codr xs po(
rada: x sd_oxc_rco(7 doqo 0)
saxda : o sd_oxc_rco(2 doqo 0)
)
rd codr
La librera que hemos cargado nos permite hacer comparaciones de elementos de los
denominados "no importa" con la funcin std_match. Para operar con std_match
introducimos dos vectores (de igual longitud) y nos devuelve el valor true o false segn sea
el resultado de la comparacin.

acwxrcr acwxcodr o codr xs


rx
pocrss (rada)
rx
x sd_acw(rada1--) wr saxda=111 rd x
x sd_acw(rada01--) wr saxda=110 rd x
x sd_acw(rada001--) wr saxda=101 rd x
x sd_acw(rada0001--) wr saxda=100 rd x
x sd_acw(rada00001--) wr saxda=011 rd x

135

x sd_acw(rada000001--) wr saxda=010 rd x
x sd_acw(rada0000001-) wr saxda=001 rd x
x sd_acw(rada00000001) wr saxda=000 rd x
x sd_acw(rada00000000) wr saxda=000 rd x
rd pocrss
rd codr

VOLVER A NDICE

6.4 DECODIFICADOR.
Un decodificador es un circuito lgico combinacional, que convierte un cdigo de
entrada binario de N bits en M lneas de salida (N puede ser cualquier entero y M es un
entero menor o igual a 2N), tales que las lneas de salida sern activadas para un de las
combinaciones posibles de entrada. La figura 6.4.1 muestra el diagrama general de un
decodificador de N entradas y M salidas.

N
Entradas

DECODIFICADOR

M
Salidas

2n
Posibles
Entradas
Figura 6.4.1 Diagrama general del decodificador.

6.4.1 Decodificador de BCD a 7 segmentos.


Este es un ejemplo muy tpico de decodificador, en el cual tenemos 4 bits de entrada
por los cuales nos llega un nmero en BCD natural y a la salida tenemos 7 bits de salida los

136

cuales contienen decodificado el nmero de la entrada para que sea entendido por un
display de 7 segmentos.

6.4.1.1 Cdigo BCD.


BCD son las iniciales de unas palabras inglesas que traducidas vendran a significar
Cdigo Decimal codificado en Binario. Es decir cada cifra decimal se codifica segn una
serie de bits binarios, como existen diez cifras del 0 al 9 necesitamos 4 bits por cifra. Ahora
resulta que con 4 bits podramos codificar hasta 16 cifras, luego vemos que hay 6
combinaciones (de 1010 a 1111) que nunca se utilizan en el cdigo BCD.

VOLVER A NDICE

Ejemplos de conversin de decimal a BCD:


1

-> 0001

= 0x8 + 0x4 + 0x2 + 1x1

-> 0101

= 0x8 + 1x4 + 0x2 + 1x1

-> 0111

= 0x8 + 1x4 + 1x2 + 1x1

-> 1001

= 1x8 + 0x4 + 0x2 + 1x1

-> 0011

= 0x8 + 0x4 + 1x2 + 1x1

Se colocan estas combinaciones unas detrs de otras y ya tenemos el nmero


convertido a BCD
15793 (decimal) -> 00010101011110010011 (BCD).

Ejemplo de conversin de BCD a decimal.


0001 -> 1
0011 -> 3

137

0010

-> 2 (si faltan bits se completan con ceros)

Se toman las cifras decimales as obtenidas en orden inverso, por lo tanto:


01000110001 (BCD) -> 231 (decimal)

Para poder visualizar este cdigo en un dispositivo electrnico, se hace uso de un


display BCD a 7 segmentos el cual se muestra en la figura 6.4.1.1.1.
VOLVER A NDICE

a
f

c
d

Figura 6.4.1.1.1. Display a 7 segmentos.

Tabla de funciones para un codificador BCD a 7 segmentos.

Entrada
(BCD)
N0 N1 N2 N3
L L L L
L L L H
L L H L
L L H H
L H L L
L H L H
L H H L
L H H H
H L L L
H L L H

Salida
(DISPLAY)

a
H
L
H
H
L
H
L
H
H
H

b
H
H
H
H
H
L
L
H
H
H

c
H
H
L
H
H
H
H
H
H
H

d
H
L
H
H
L
H
H
L
H
H

H
L
H
L
L
L
H
L
H
L

H
L
L
L
H
H
H
L
H
H

g
L
L
H
H
H
H
H
H
H
H

138

Diseado de una manera estndar y dada la tabla anterior, tenemos las siguientes
funciones.
A'B'D' + A'B'C + A'BD + AB'C' = a
A'B' + A'C'D '+ A'CD + B'C' = b
A'B + A'D + B'C =

A'B'D' + A'B'C + A'BC'D + A'CD' + AB'C' =


A'CD '+ B'C'D' =

VOLVER A NDICE

e
f

A'C'D' + A'BC' + A'BD' + AB'C =


A'B + A'C + AB'C' =

Implementando las funciones de la forma estndar, obtenemos el circuito la figura


6.4.1.1.2.

N0

1
2
3
1
2
3
1
2
3
1
2
3

3
3

3
3

N1

3
1

2
1
2
3
1
2
3
1

3
3

N2

2
1
3
2
1
3
2

1
2
3

N3

3
4
1
2
3

1
2
3

1
2
3

f
g

1
3
2

139

Figura 6.4.1.1.2. Diagrama elctrico de un decodificador BCD a 7 segmentos.

VOLVER A NDICE

El mismo decodificador descrito anteriormente se puede implementar mediante


PLDs. A continuacin se describe el cdigo VHDL

xay xrrr
sr xrrr.sd_oxc_1164.a
rxy corxdo xs
po(
cd: x x_rco(3 doqo 0)
dxspay: o x_rco(6 doqo 0)
)
rd corxdo
acwxrcr acwxco o corxdo xs
rx
co: pocrss (cd)
rx
casr cd xs
qwr 0000 = xspay = 1111110
qwr 0001 = xspay = 0110000
qwr 0010 = xspay = 1101101

140

qwr 0011 = xspay = 1111001


qwr 0100 = xspay = 0110011
qwr 0101 = xspay = 1011011
qwr 0110 = xspay = 0011111
qwr 0111 = xspay = 1110001
qwr 1000 = xspay = 1111111
qwr 1001 = xspay = 1111011
qwr owrs = xspay = 0000000
rd casr
rd pocrss co
rd acwxco

6.5 MULTIPLEXOR.
Un multiplexor es un dispositivo lgico que recibe informacin por sus dos o ms
entradas (de uno o ms bits de ancho) y mediante una seal de control decidimos cual de
las entradas aparece reflejada en la salida (figura 6.5.1); esto es, un convertidor de paralelo
a serie. Si tienen una seal de "enable" esta hace que el multiplexor est habilitado o no.

VOLVER A NDICE

MULTIPLEXOR
N
Entradas de
datos

Salida

P
141

Entrada de

Entradas de

N=2

Figura 6.5.1 Esquema general de un multiplexor.


Tabla de funciones del multiplexor.
Seleccin
S1 S0

Validacin
E

Entradas
I0 I1 I2 I3

Salida
Z

XX
LL
LH
HL
HH

L
H
H
H
H

XXXX
I0XXX
X I1XX
XX I2X
XXX I3

I0
I1
I2
I3

Diseado de una manera estndar y dada la tabla anterior, tenemos la siguiente


funcin.

Z= E(S'1 S'0 I0 +S'1 S0 I1 +S1 S'0 I2 +S1 S0 I3)


Implementando la funcin anterior obtenemos el circuito de la figura 6.5.2

142

VOLVER A NDICE
1
2

E
I0

6
4
5
1
2
6
4
5

I1

1
2
6
4
5

I2

1
2
6

2
1

I3

4
5

S1 S0
Figura 6.5.2. Diagrama elctrico de un multiplexor.

El mismo multiplexor descrito anteriormente se puede implementar mediante uso


de PLDs. A continuacin se describe el cdigo VHDL
rxy xprto xs po(
X0X1X2X3 :x x
rar :x x
coo :x x_rco(1 doqo 0)
z

:o x

)
rd xprto

143

acwxrcr acw o xprto xs


rx
pocrss (X0X1X2X3 coo rar)
rx
x rar=0 wr z=0
rsx rar=1 wr
casr coo xs
qwr 00 = z = X0

VOLVER A NDICE

qwr 01 = z = X1
qwr 10 = z = X2
qwr 11 = z = X3
qwr owrs = z = 0
rd casr
rd x
rd pocrss
rd acw

6.6 DEMULTIPLEXOR.
Un demultiplexor es un dispositivo lgico que como su nombre indica realiza la
operacin inversa al multiplexor; esto es, un convertidor de serie a paralelo (figura 6.6.1).
El demultiplexor recibe informacin por su nica entrada (de uno o ms bits) y una seal de
control decide en cual de las salidas se refleja. Si tienen una seal de "enable" esta hace que
el demultiplexor sea habilitado en algn momento.

144

DEMULTIPLEXOR
Entrada E

DE 4 CANALES

Salidas
a
b
c
d

S1 S0
Entradas de
seleccin
Figura 6.6.1 Esquema general de un demultiplexor.

VOLVER A NDICE

Tabla de funciones de un demultiplexor de 4 canales.


Control Enable
a
b
C
d
XX
H
H
H
H
H
LL
L
entra
b
c
d
LH
L
a
entra
c
d
HL
L
a
b
entra
d
HH
L
a
b
c
entra
Diseado de una manera estndar y dada la tabla anterior, tenemos las siguientes
funciones.
A+B+C =a
A + C' + B= b
A + B' + C= c
B' + C'+ A= d
Implementando las funciones anteriores obtenemos el circuito de la figura 6.6.2

145

E
SO

S1

b
c
d

Figura 6.6.2 Diagrama elctrico de un demultiplexor.

VOLVER A NDICE

El mismo demultiplexor descrito anteriormente se puede implementar mediante uso


de PLDs. A continuacin se describe el cdigo VHDL

rxy drx xs po(


ra:

x x

coo: x x_rco(1 doqo 0)


acd: o x
)
rd drx
acwxrcr acwdr o drx xs
rx
pocrss (coo)
146

x coo = 00 wr
a = ra
rsx coo = 01 wr
= ra
rsx coo = 10 wr
c = ra
rsr
d = ra
rd x
rd pocrss
rd acwdr

6.7 COMPARADOR.
Un comparador es un dispositivo lgico que recibe dos nmeros a la entrada, A y B,
y a la salida indica si el nmero A es mayor, menor o igual que el nmero B (figura 6.7.1).
La longitud de las palabras de la entrada es indiferente, pero iguales para ambos nmeros.
Pueden llevar adems entradas en cascada, usadas para utilizar varios comparadores.

a
b

a = b

a > b

a < b

z
VOLVER A NDICE

Figura 6.7.1 Diagrama de un comparador.


Tabla de funciones de un comparador.

147

Ab
00
01
10
11

A=b a>b
1
0
0
0
0
1
1
0

a<b
0
1
0
0

Diseado de una manera estndar y dada la tabla anterior, tenemos las siguientes
funciones.
A'B' + AB = x
AB' = y
A'B = z

Implementando las funciones anteriores obtenemos el circuito de la figura 6.7.2.

x
a

y
2

z
Figura 6.7.2. Diagrama elctrico de un comparador.

VOLVER A NDICE

El mismo comparador descrito anteriormente se puede implementar mediante uso


de PLDs. A continuacin se describe el cdigo VHDL

148

xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a
rxy copa xs po(
a: x x
yz t: o x
)
rd copa
acwxrcr acwxcopa o copa xs
rx
pocrss (a)
rx
xa

wr y = 1
z=0
t=0

rsx a

wr y = 0
z=1
t=0

rsx a = wr y = 0
z=0
t=1
rd x
rd pocrss
rd acwxcopa

149

6.8 SUMADORES Y RESTADORES.


6.8.1 Medio sumador y sumador completo.
En lgica combinacional hay varios tipos de sumadores; el denominado medio
sumador (Half adder) que consiste en la suma de dos bits sin considerar un acarreo de
entrada; el otro es el sumador completo (Full adder) que difiere del anterior en considerar
tres bits, el tercer bit que considera es el bit de acarreo de entrada. Para el diseo del medio
sumador de 2 bits se necesitan solo dos entradas y dos salidas, una para el resultado de la
suma y la otra salida para un posible acarreo de salida (sucede cuando los 2 bits son 1s).
La figura 6.8.1.1 muestra el diagrama a bloques as como la tabla de verdad delVOLVER
diseo delA NDICE
medio sumador.
X

X
0
0
1
1

S
MEDIO
SUMADOR

Y
0
1
0
1

C
0
0
0
1

S
0
1
1
0

Figura 6.8.1.1 Diagrama a bloques y tabla de verdad del medio sumador.

Si hacemos la simplificacin de la funcin C y S (figura 6.7.1.1) mediante mapas de


Karnought, las funciones que se obtiene en S y C son:
S = XY + XY
C = XY
El circuito que se generara es mostrado en la figura 6.8.1.2
X

1
S

3
2
Y
74LS86

1
3
2
74LS08

150

Figura 6.8.1.2 Representacin lgica del medio sumador.


Para el sumador completo se hace el mismo anlisis, solo que este consta de tres
entradas y dos salidas; dos de las variables de entrada que se indican como X y Y
representan los dos bits significativos que se van a sumar. La tercera entrada Z representa la
cuenta que se lleva de la posicin previa menos significativa, esta entrada es conocida
como el acarreo de entrada. La mayor suma que podemos tener es cuando consideramos el
acarreo de entrada igual con 1 y las otras dos entradas estn en 1s, el resultado seria
sumar 3 veces 1 que equivale al valor de 3 que en binario es 11 por tanto se siguen
considerando las mismas dos salidas que el medio sumador. El diagrama a bloques y la
tabla de verdad del sumador completo se muestran en la figura 6.8.1.3.
VOLVER A NDICE

X Y
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1

X
S
Y

SUMADOR
COMPLETO

Z
0
1
0
1
0
1
0
1

C
0
0
0
1
0
1
1
1

S
0
1
1
0
1
0
0
1

Figura 6.8.1.3 Diagrama a bloques y tabla de verdad del sumador completo.


Con la simplificacin de los mapas de karnaught el circuito lgico de funciones del
sumador completo queda representado mediante el siguiente circuito (figura 6.8.1.4)

1
3

2
74LS86
74LS86
1
3
2
1
3

74LS08

2
74LS08
74LS86

Figura 6.8.1.4 Representacin lgica del sumador completo.

151

6.8.2 Restador.
Para desarrollar este tema es importante recordar ciertos conceptos, estos se
describen a continuacin. El sistema de magnitud y signo que se aplica a los nmeros
binarios es por medio de una posicin de bit extra para representar el bit de signo. De
manera tradicional el bit mas significativo (MSB) de la cadena de bits se usa como el bit de
signo (0 = mas, 1 = menos) y los bits de orden inferior contienen la magnitud. El sistema de
magnitud y signo contiene un numero igual de enteros positivos y negativos, un entero en
magnitud y signo de n bits esta en el rango (2^n-1 - 1) a + (2^n-1 - 1) con dos posibles
representaciones del cero.
VOLVER A NDICE
Para los nmeros binarios el complemento a la base esta representado como r ^n-1 y
se llama complemento a 2. El MSB de un nmero en este sistema sirve como el bit de
signo. El equivalente decimal para un innumero binario en complemento a 2 se calcula
como -2^n-1. Una forma mas conveniente y sencilla de obtener el complemento a dos de
un numero binario simplemente es; invertir todos los bits que componga el numero y
posteriormente sumarle 1.A continuacin se muestra un ejemplo.

100111012 = - 9910
01100010
+
1
011000112 = 9910

000100012=1710
11101110
+
1
111011112= -17

Como ya sabemos representar nmeros negativos binarios, lo que sigue es realizar


un diseo de un circuito combinacional que nos describa el comportamiento de un
restador. El proceso de diseo para hacer el restador es que debemos hacer uso de un
circuito complemento a 2 para poder expresar la resta en forma de suma, es decir A +
C2(B)= A+ 2pB = 2p + A-B en complemento a 2. Para esto es necesario hacer el diseo de
un circuito complementador cuya tabla de verdad se describe a continuacin en la tabla
6.8.2.1.

Entradas

Salidas

Datos

Ai

Control

E1

Yi

152

E1

Salida

Dato negado

Puesta a 1

Dato

Puesta a 0

VOLVER A NDICE

Tabla 6.8.2.1 Tabla lgica de verdad del complementador.


El diagrama lgico combinacional se muestra en la figura 6.8.2.1

Figura 6.8.2.1 Diagrama lgico de un circuito complementador.


Ya que se tiene el circuito complementador se prosigue a sumar las dos entradas
con un sumador completo. Este diagrama completo es mostrado en la figura 6.8.2.2
OPERANDO B
OPERANDO A

153
A3

A2

A1

A0
E

VOLVER A NDICE

Figura 6.8.2.2 Diagrama de un circuito restador en complemento a 2.

6.8.3 Sumadores en VHDL.


Para el diseo de un cuadruple sumador total, se requieren dos entradas de cuatro
bits (que sern los nmeros a sumar), una entrada de un bit (Carry de la etapa anterior) y
como salidas una de cuatro bits que ser el resultado de la suma adems del carry.
Los nmeros a sumar son a y b, el carry de entrada es Cin, el resultado de la suma es
sum y el carry siguente es Cout. Para este diseo emplearemos la librera aritmtica de
VHDL llamada std_arith, que se carga al incluir la tercera lnea de este programa. A
continuacin se muestra el cdigo en VHDL de un sumador de cuatro bits
xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a
rxy sado xs po(
a: x sd_oxc_rco(3 doqo 0)
cx: x sd_oxc

154

s: o sd_oxc_rco(4 doqo 0)
)
acwxrcr acwxsado o sado xs
rx
pocrss (acx)
axar at:sd_oxc_rco(4 doqo 0)
rx
at:=(0 a) + (0 )
x cx=1 wr at:=at+1
rsx cx=0 wr
rd x
s=at
rd pocrss
rd acwxsado
En la lnea 15 se suman a y b pero como el resultado puede ser de cinco bits, la
seal a la que asignaremos la suma debe ser de esta anchura. Para que no haya problemas
concatenamos a y b con un cero.

VOLVER A NDICE

6.9 MULTIPLICACIN BINARIA.


Al igual que la suma y la resta de decimales, la multiplicacin binaria sigue los
mismos pasos que la multiplicacin decimal. En cierto modo resulta mas fcil la

155

multiplicacin binaria debido a que solo tenemos dos valores para el multiplicando y el
multiplicador (0 y 1).
Multiplicando
Multiplicador

Producto

1011
1101
1011
0000
1101
1011
10001111

11
*13
33
11
143

Si se recuerda un poco este algoritmo que consista en ir agrupando de manera


escalonada recorrida un espacio y luego sumar todos los productos. En el ejemplo anterior
se puede observar dicho algoritmo.
Una forma de poder implementar la operacin de multiplicacin es que en vez de
listar todos los multiplicandos escalonados y luego sumarlos, es conveniente sumar cada
multiplicando desplazado medida de que se crea, a un producto parcial. En general cuando
multiplicamos un numero de n bits por un multiplicador de m bits, el producto resultante
requiere a lo sumo de n + m bits para expresarse. El algoritmo de corrimiento y suma
requiere m productos parciales y sumas para obtener el resultado, pero la suma es trivial ya
que el primer producto parcial es cerro Este algoritmo puede implementarse mediante un
circuito digital que incluye un registro de corrimiento, un sumador y cierta lgica de
control.
La multiplicacin de los nmeros con signo pueden hacerse con la multiplicacin
sin signo y las reglas usuales para los signos: efectuar una multiplicacin de las magnitudes
y hacer el producto positivo si los operndoos tienen el mismo signo o negativo si tienen
signos diferentes.
La multiplicacin sin signo se realiza mediante una secuencia de sumas sin signo de
los multiplicandos desplazados; en cada paso, el corrimiento del multiplicando corresponde
al peso del bit multiplicador. Los bits en un numero en complemento a dos tienen los
mismos pesos que en un numero sin signo, excepto por el MSB, que tiene un peso
negativo; entonces se puede realizar la multiplicacin en complemento a dos mediante una
secuencia de sumas en complemento a dos de multiplicandos desplazados excepto en donde
debe negarse el multiplicando correspondiente al MSB del multiplicador, antes de que este
se sume al producto parcial.
VOLVER A NDICE
El primer paso del procedimiento para multiplicar 2 nmeros, por ejemplo A*B
consiste en multiplicar el bit menos significativo de B por cada uno de los bits de A
comenzando por el menos significativo, y despus repetir este proceso en cada bit de B,
solo que aumentando un cero del lado derecho conforme el bit de B sea mas significativo

Para lograr el primer paso solo es necesario aprovechar la tabla de verdad de una
compuerta and, la cual es idntica a la tabla de verdad hecha para multiplicar dos nmeros
156

de un solo bit, y el siguiente paso solo es necesario sumar y el circuito queda representado
en la figura 6.9.1.
S0
A0

1
3
2

1
3
4

A
B
CI

S1
5

CO

1
3
4

A1
1

A
B
CI

3
2

S2

CO

74LS183
1
3
4

A2
1
3

A
B
CI

S
CO

6
5
1
3
4

74LS183

2
B0

A
B
CI

S
CO

S3

74LS183
1
3
B1

1
3
4

A
B
CI

S
CO

6
5
1
3
4

74LS183

A
B
CI

S
CO

S4

S5

1
3

74LS183
1
3
4

2
B2

A
B
CI

S
CO

6
5

74LS183
1
3
2

1
3
2

1
3
2

1
3
2

Figura 7.9.1 Multiplicador de 3 bits.

Para conseguir un multiplicador por ejemplo de 3x3 bits necesitaramos bastantes


sumadores totales, lo cual nos llevara a tener nueve circuitos integrados si lo
implementamos fsicamente. El emplear VHDL en la descripcin de circuitos lgicos nos
facilita las tareas de diseo y adems nos puede disminuir el espacio de placaVOLVER
necesarioA NDICE
para su implementacin y las conexiones empleadas para ello.
Para crear un multiplicador de 3x3 bits, necesitaremos una nica cpsula, gracias a
VHDL. Nuestro circuito va a tener dos entradas de tres bits cada una, y el resultado debe
ser de seis bits, ya que en el caso que nos da un mayor resultado (7x7=49), necesitamos 6
bits para completar el nmero.

157

Para multiplicar, nos basaremos en el mtodo empleado para multiplicar nmeros en


formato decimal, es decir, se multiplica un nmero por cada uno de los dgitos del otro
teniendo en cuenta el peso de cada uno. Al ser en binario, y slo haber ceros y unos, el
multiplicar se convierte en un desplazamiento si hay un 1 y en una omisin si hay un cero.
Por eso el cdigo de la arquitectura tiene el aspecto siguiente.

xay xrrr
sr xrrr.sd_oxc_1164.a
sr qo.sd_axw.a
rxy xpxcado xs po(
a:x sd_oxc_rco(2 doqo 0)
c:o sd_oxc_rco(5 doqo 0))
rd xpxcado
acwxrcr acwxx o x xs
sxa at1at2at3: sd_oxc_rco(5 doqo 0)
rx
pocrss (a)
rx
x (0)=1 wr at1 =(0 0 0 a(2) a(1) a(0))
rsx (0)=0 wr at1=(owrs = 0) rd x
x (1)=1 wr at2 =(0 0 a(2) a(1) a(0) 0)
rsx (1)=0 wr at2=(owrs = 0) rd x
x (2)=1 wr at3 =(0 a(2) a(1) a(0) 0 0)
rsx (2)=0 wr at3=(owrs = 0) rd x
rd pocrss
c=at1 + at2 + at3

158

rd acwxx

Hay que destacar que la suma de las seales aux1, aux2 y aux3 se hace fuera del
proceso, ya que de no ser as, c no se actualizara correctamente y adoptara el valor del
producto anterior.

VOLVER A NDICE

BIBLIOGRAFA.

Anlisis y Diseo de Circuitos Lgicos Digitales.


Nelson V. P., H. T. Nagle, et al.
Prentice Hall
Hispanoamericana. 1996.

An Engineering Approach To Digital Design.


Fletcher W. I.
Prentice Hall. 1980.
Digital Design, principles & practices.
Wakerly J. F.
Prentice Hall. 2000.

Design of Computers and Other complex Digital Devices.


Prentice Hall. 2000.
Lee S.

Electrnica Digital
James W. Bignell, Robert L. Donovan
Primera edicion 1997
CECSA

159

Electricidad-Electronica: Electrnica digital y microprogramable


Fernando Blanco Flores, Santiago Olvera Peralta
Primera edicion, 2002
Paraninfo

Introduccin a la tecnologa Digital


Porat, Barna
Limusa noriega editores, 1992

VOLVER A NDICE

Sistemas digitales principios y aplicaciones


Tocci and Winder
Octava edicin, 2003
Prentice hall
VHDL, El arte de programar sistemas digitales.
Maxinez D. G. y Alcal J.
CECSA 2002.

160

Você também pode gostar