Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor...

34
1 Profesor Leopoldo Silva Bijit 19-01-2010 Introducción Sistemas Digitales I.1 Definición. Denominamos sistema digital a aquél que realiza operaciones mediante dígitos, los cuales usualmente se representan como números binarios. Las principales operaciones son: ingreso, procesamiento, transmisión, almacenamiento y despliegue de datos digitales. Los sistemas análogos representan las variables en forma continua, en el tiempo; los digitales en forma discreta. Los sistemas simbólicos emplean letras o iconos como símbolos no numéricos. Los sistemas análogos están siendo reemplazados por sistemas digitales, para esto las cantidades físicas en forma análoga, por ejemplo: sonidos, imágenes, voltajes, distancias, deben ser convertidas a representaciones digitales mediante técnicas de aproximación, empleando dispositivos de conversión análogo-digitales. Primero se toman muestras, luego se convierten las muestras en números. I.2 Diseño clásico y actual. El permanente cambio que tiene el estudio de sistemas digitales se debe principalmente a tres factores: la continua evolución de la tecnología digital que en menor tamaño coloca cada vez mayor número de componentes más rápidas; el desarrollo de herramientas de ayuda al diseño digital (CAD) que permiten enfrentar tareas extremadamente complejas; y las nuevas metodologías de desarrollo de software que facilitan el desarrollo de aplicaciones complejas con interfases visuales, como las herramientas CAD y los lenguajes de descripción de hardware (HDL). Las primeras metodologías de diseño digital, que podríamos denominar clásicas, permiten comprender los principios de funcionamiento de los sistemas digitales básicos, y pueden ser desarrolladas empleando papel y lápiz. Emplean los principios teóricos del álgebra de Boole y algoritmos de minimización. Sin embargo los algoritmos son de tipo no polinomial, y no pueden ser aplicados a situaciones de mediana complejidad (redes con más de 5 entradas), debido a su costo exponencial. Sin embargo, al ser posible enfrentar diseños digitales más complejos, debido a la tecnología, debieron desarrollarse nuevas heurísticas para representar sistemas digitales, minimizarlos, y poder implementarlos en base a bloques lógicos determinados. En estos nuevos

Transcript of Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor...

Page 1: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

1

Profesor Leopoldo Silva Bijit 19-01-2010

Introducción

Sistemas Digitales

I.1 Definición.

Denominamos sistema digital a aquél que realiza operaciones mediante dígitos, los cuales

usualmente se representan como números binarios. Las principales operaciones son: ingreso,

procesamiento, transmisión, almacenamiento y despliegue de datos digitales.

Los sistemas análogos representan las variables en forma continua, en el tiempo; los digitales

en forma discreta. Los sistemas simbólicos emplean letras o iconos como símbolos no

numéricos.

Los sistemas análogos están siendo reemplazados por sistemas digitales, para esto las

cantidades físicas en forma análoga, por ejemplo: sonidos, imágenes, voltajes, distancias, deben

ser convertidas a representaciones digitales mediante técnicas de aproximación, empleando

dispositivos de conversión análogo-digitales. Primero se toman muestras, luego se convierten

las muestras en números.

I.2 Diseño clásico y actual.

El permanente cambio que tiene el estudio de sistemas digitales se debe principalmente a tres

factores: la continua evolución de la tecnología digital que en menor tamaño coloca cada vez

mayor número de componentes más rápidas; el desarrollo de herramientas de ayuda al diseño

digital (CAD) que permiten enfrentar tareas extremadamente complejas; y las nuevas

metodologías de desarrollo de software que facilitan el desarrollo de aplicaciones complejas con

interfases visuales, como las herramientas CAD y los lenguajes de descripción de hardware

(HDL).

Las primeras metodologías de diseño digital, que podríamos denominar clásicas, permiten

comprender los principios de funcionamiento de los sistemas digitales básicos, y pueden ser

desarrolladas empleando papel y lápiz. Emplean los principios teóricos del álgebra de Boole y

algoritmos de minimización. Sin embargo los algoritmos son de tipo no polinomial, y no pueden

ser aplicados a situaciones de mediana complejidad (redes con más de 5 entradas), debido a su

costo exponencial.

Sin embargo, al ser posible enfrentar diseños digitales más complejos, debido a la

tecnología, debieron desarrollarse nuevas heurísticas para representar sistemas digitales,

minimizarlos, y poder implementarlos en base a bloques lógicos determinados. En estos nuevos

Page 2: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

2 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

algoritmos, están basadas las herramientas CAD. Su exposición y estudio corresponde a

disciplinas de programación, estructuras de datos y algoritmos.

Actualmente el diseño, la simulación y la implementación o síntesis de sistemas digitales se

realizan mediante complejos y numerosos algoritmos incrustados dentro de las herramientas

computacionales de apoyo al diseño.

I.3 Conceptos básicos en sistemas digitales.

Comenzaremos nuestro estudio desarrollando un ejemplo, a través del cuál se irán

introduciendo diversos conceptos que se expondrán, con más detalle, más adelante.

Sea un sistema con una entrada E y una salida S, como se muestra en la Figura I.1.

E S

Figura I.1

Las variables E y S sólo pueden tomar los valores discretos: 0, 1, 2, 3. Es decir son variables

discretas multivaluadas.

La relación entre E y S podemos describirla mediante una función, empleando la tabla o

mapeo, que se muestra en la Figura I.2.

E S

0 1

1 2

2 3

3 0

Figura I.2

También podemos describirla mediante la gráfica que se muestra en la Figura I.3. Puede

notarse que la gráfica no es continua, sólo están definidos puntos en la cuadrícula o reticulado

(lattice). Esto debido a que la definición de la función ya está digitalizada; es decir, representada

por números o dígitos, en sistema decimal, en el ejemplo.

Los puntos podrían ser el resultado de una discretización (tomando cuatro muestras en todo

el rango de variación) y cuantización (asignado los valores numéricos enteros 0, 1, 2 y 3, a los

diferentes niveles) de una señal análoga o continua.

Page 3: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 3

Profesor Leopoldo Silva Bijit 19-01-2010

E 1 2 3

S

1 2 3

Figura I.3

Codificación.

Se denomina codificación binaria al proceso de asignar un vector booleano a un símbolo o

valor de la variable multivaluada. Un vector booleano puede tener varias componentes, pero

sólo con valores 0 y 1 en sus componentes. Por ejemplo {0, 0} es un vector booleano en un

espacio bidimensional B2; y {0, 1, 0} es un vector en un espacio de tres dimensiones B

3. En el

espacio B2, se tienen cuatro puntos; en uno tridimensional se tienen 8 vectores diferentes.

De este modo la variable E, podemos representarla por un vector booleano en dos

dimensiones {E1, E0}, ya que E toma 4 valores solamente. Procediendo de este modo podemos

transformar el problema original en un sistema con variables booleanas. La Figura I.4 representa

el nuevo sistema digital binario:

E1 S1

E0 S0

Figura I.4

La asociación de los valores 0, 1, 2 y 3 con los vectores booleanos en B2, puede efectuarse de

diferentes maneras. Por ejemplo para el símbolo 0, podemos escoger una de las cuatro

siguientes: {0,0}, {0,1}, {1,0} y {1,1}. Luego para el 1, nos quedan tres posibles; para el 2 sólo

tendremos 2 posibles; y una para el símbolo 0. Es decir, 24 asignaciones de código diferentes.

La tabla de la Figura I.5 muestra seis elecciones de codificación binaria, en las cuales el código

para el símbolo 0 está formado por el vector {0,0}; existen 18 codificaciones adicionales que no

se muestran.

Valor C1 C2 C3 C4 C5 C6

0 00 00 00 00 00 00

1 01 01 10 10 11 11

2 10 11 01 11 01 10

3 11 10 11 01 10 01

Figura I.5

Page 4: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

4 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

La elección del código puede originar diferentes diseños del sistema, algunos con mayor

costo en componentes y posiblemente algún código que origine un diseño de mínimo costo.

Existen elementos teóricos para optimizar la lógica de un sistema multivaluado permitiendo

de este modo un nivel adicional de optimización; sin embargo en la mayoría de los casos la

codificación es realizada arbitrariamente, limitando la optimización a sistemas de lógica

bivaluada.

El código C1, tiene una interpretación numérica sencilla. Las secuencias de ceros y unos son

los equivalentes, en el sistema binario, del valor decimal.

Sistema numérico binario.

En el sistema numérico binario la base numérica es 2, y los dígitos sólo pueden ser 0 y 1. El

equivalente decimal N de un número binario de n dígitos: 1 2 2 1 0...n nd d d d d , se obtiene

empleando: 1 2 2 1 0

1 2 2 1 02 2 ... 2 2 2n n

n nN d d d d d

Así por ejemplo, la secuencia binaria: 111 interpretada como número binario equivale al

número siete decimal: 2 1 07 1 2 1 2 1 2 4 2 1

Los números con dos dígitos binarios permiten representar 4 cifras decimales. Conociendo

los tres dígitos binarios, de un número binario de tres dígitos, se puede identificar uno de 8

números decimales representables.

Información. Bit, Byte.

Se denomina bit, que es un acrónimo de Binary Digit, a la cantidad de información requerida

para distinguir entre dos opciones igualmente probables. Un acrónimo es un vocablo formado

por la unión de elementos de dos o más palabras. Bit está constituido por el principio de la

primera y el final de la última.

Por ejemplo, si tenemos dos objetos, uno blanco y uno negro, si asociamos valor 1 al objeto

blanco y un 0 al objeto negro, conociendo el valor del dígito binario asociado a una variable

podemos conocer a cual de los dos objetos se hace referencia, mediante dicha variable.

Se requieren tres bits de información para discernir unívocamente a un elemento de entre un

grupo formado por 8 elementos diferentes e igualmente probables. En nuestro ejemplo, se

requieren dos bits para codificar los valores de las variables E y S.

Podría decirse que un subconjunto de la sabiduría es el conocimiento; y que un subconjunto

del conocimiento es la información; y que los datos son un subconjunto de la información.

Entonces la información es una representación de algún conocimiento, tal como hechos,

datos u opiniones transmitidos a través de cualquier medio o forma, incluyendo textos, números,

gráficos, mapas, descripciones verbales o audiovisuales.

Page 5: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 5

Profesor Leopoldo Silva Bijit 19-01-2010

En este orden, la información puede definirse como un conocimiento comunicado o recibido

concerniente a un hecho particular o cierta circunstancia, el cual reduce la incertidumbre del

receptor. También podría decirse que la información es el significado asignado a los datos

mediante convenciones conocidas usadas en su representación.

Un bit es la unidad de información. Equivale a una decisión binaria o a la designación de

uno de dos estados posibles e igualmente probables, empleados para almacenar o proveer

información.

Es decir si se tienen 2 eventos igualmente probables y se desea conocer cuál de ellos se

produce, debe aportarse 1 bit de información.

Si se toma la convención de asociar el dato 1 a la ocurrencia del evento: obtener una cara al

arrojar una moneda; y el símbolo 0, si se obtiene sello. Con un bit de información podemos

comunicar a otro el resultado del experimento de arrojar una moneda.

Si son 4 eventos en total, para conocer la ocurrencia de uno determinado de ellos debe

comunicarse dos bits de información. La unidad de información es el bit (binary digit).

Para conocer cuáles de los M casos se producen de un conjunto de N eventos igualmente

probables, debe conocerse log2 (N/M) bits de información (redondeando al entero más cercano).

Si se tiran dos dados, para comunicar, transmitir o almacenar la ocurrencia de un caso

determinado, es preciso suministrar 5 bits aproximadamente ( N=36 y M=1, log2 (N/M)=5,17).

Si se tienen 256 personas, puede asignársele a cada una de ellas un nombre en el sistema

binario, puede verse que se requieren 8 bits para esto (log2(256/1) = 8 ). Los nombres binarios

irían en forma ascendente desde el 00000000 hasta el 11111111.

Se define la unidad de información Byte, como 8 bits. Se requiere disponer de un Byte de

información para referirse a una determinada persona de entre las 256.

Cualquier carácter (letras mayúsculas, minúsculas y acentuadas en diferentes idiomas)

requiere un Byte para ser especificado. Es así que para almacenar los nombres completos de 100

personas, considerando 50 caracteres por nombre, se requieren: 5000 Bytes de información.

También se define que 1024 Bytes es un KByte, entonces para guardar los nombres de las

100 personas se requieren 4,88 KB.

La codificación de la información puede realizarse en cualquier plataforma física, que

garantice que la información sea estable (que no sea afectada por el ambiente y el tiempo); que

sea rápidamente manipulable (en: acceso, transformación, transmisión y almacenamiento); y

que sea efectiva en cuanto a costo (que pueda disponerse de un gran volumen de componentes

con bajo costo unitario).

En el caso de sistemas eléctricos puede emplearse el voltaje, la corriente, la impedancia, la

fase o la frecuencia; suelen emplearse voltajes para codificar la información.

Page 6: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

6 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Los bits de información se codifican en niveles de voltaje.

Tablas de verdad.

Escogiendo la codificación C1, de la Figura I.5, podemos representar al sistema de la Figura

I.4, por la siguiente tabla:

E1 E0 S1 S0

0 0 0 1

0 1 1 0

1 0 1 1

1 1 0 0

Figura I.6

Se tienen ahora dos funciones booleanas S1 y S0, en términos de las variables E1 y E0. La

representación de las funciones, mediante la Figura I.6, se denomina tablas de verdad. Se suele

asumir 1 por valor verdadero y 0 por falso, y puede emplearse el álgebra de Boole para

conceptualizar acerca de estas funciones.

Compuertas básicas. Operadores booleanos.

En el álgebra de Boole se definen los operadores and y or, mediante las tablas de verdad que

se muestran en la Figura I.7. Las tablas describen la conducta estática de las compuertas; para

estudiar su comportamiento dinámico será preciso introducir el concepto de retardo, que se verá

luego.

E1 E0 and(E1, E0) or(E1, E0)

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 1

Figura I.7

La Figura I.8 muestra los símbolos lógicos para la funciones or y and de dos variables.

or

and

Figura I.8

Page 7: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 7

Profesor Leopoldo Silva Bijit 19-01-2010

También se define la operación unaria complementar o invertir, mediante la tabla de la

Figura I.9. La variable complementada se anota con una comilla simple luego del identificador

de la variable.

A A’

0 1

1 0

Figura I.9

Se emplea el símbolo lógico, denominado inversor, que se muestra en la Figura I.10.

A’ A

Figura I.10

Empleando los métodos para construir tablas de verdad, de un curso introductorio de álgebra,

podemos elaborar la tabla de la Figura I.11, en la cual el operador and se emplea con la notación

del producto lógico y el or con el operador suma lógica; el complemento de una variable se

anota agregando una comilla simple a la variable.

E1 E0 E1E0’ E1’E0 E1E0’+ E1’E0 E0’

0 0 0 0 0 1

0 1 0 1 1 0

1 0 1 0 1 1

1 1 0 0 0 0

Figura I.11

Expresiones booleanas.

Comparando las tablas de las Figuras I.6 e I.11, podemos escribir, las expresiones booleanas:

S1 = E1E0’+E1’E0

S0 = E0’

Se considera que dos funciones booleanas que tengan iguales tablas de verdad son

equivalentes; esto se muestra, en las ecuaciones anteriores, introduciendo el operador = para

denotar la equivalencia lógica.

Estas ecuaciones se representan, mediante las compuertas básicas ya definidas, en la Figura

I.12.

Page 8: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

8 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Existen múltiples representaciones equivalentes, mediante expresiones, para las funciones de

la Figura I.6. Por ejemplo puede comprobarse que también es válida la siguiente fórmula para

S0.

S0 = E1’E0’+E1E0’

La existencia de múltiples expresiones equivalentes implica desarrollar métodos para escribir

expresiones de tal modo que su representación a través de compuertas, emplee el mínimo

número de éstas, proceso que se denomina minimización.

Esquemático.

La Figura I.12 se denomina esquemático o diagrama lógico del sistema descrito por la

Figura I.6. Los puntos de unión se han destacado con un pequeño círculo negro; los puntos en

que se cruzan cables no tienen indicada la conexión.

E1

E0

S1

S0

Figura I.12

La implementación electrónica de las compuertas requiere definir el concepto de niveles

lógicos y además, como veremos, requiere definir el tiempo de retardo de las conmutaciones.

Niveles lógicos.

Con los conocimientos de cursos previos de electrónica sabemos que el ruido y las

inexactitudes (valores de las componentes, tolerancias de fabricación, etc.) son inevitables;

debido a esto no es posible reproducir fielmente, en forma repetida, la información almacenada

en el valor de un voltaje. Por esto es preciso diseñar un sistema que tolere determinadas

magnitudes de error para que procesar la información (vía voltajes) sea confiable.

La idea básica es no permitir que un 0 pueda ser confundido con un 1 y viceversa; y que los

dispositivos elementales tengan una alta confiabilidad. Esto lleva a prohibir un rango de valores

entre los asociados al 0 y 1 lógicos, y al mismo tiempo al concepto de rango de valores 0 y 1

válidos.

Volts

Zona

prohibida

1 Válido 0 Válido

Figura I.13

Page 9: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 9

Profesor Leopoldo Silva Bijit 19-01-2010

Los dispositivos (combinacionales, por el momento) entonces deben adoptar valores

discretos válidos, tanto en la entrada como en la salida y disponer de una descripción funcional

que especifique los valores de la salida asociados con cada uno de los conjuntos de valores

asociados a las entradas. También debe especificarse una cota superior para el tiempo requerido

desde que las entradas cambian hasta que se tenga un valor estable en la salida (el tiempo de

propagación, no puede ser cero en dispositivos reales). El dispositivo digital también debe

aceptar entradas, dentro de los márgenes, y producir salidas dentro de los márgenes; es decir,

debe contemplar márgenes para el ruido e interferencias que inevitablemente estarán presentes.

En la siguiente gráfica se ilustran los rangos de los valores físicos de voltajes asociados a los

valores lógicos. Se emplean subíndices: O por output, I por input; además L por low (de valor

bajo) y H por high (de valor alto).

Volts

Zona

prohibida 1 Válido Entrada 0 Válido Entrada

Voh Vih Vil Vol

0 Válido Salida 1 Válido Salida

Márgenes de ruido

Figura I.14

Los valores de salida deben considerarse asociados a la salida de una componente, y los

valores de entrada asociados a la entrada de una componente.

El diagrama de la Figura I.15, ilustra que VIL debe ser un poco mayor que VOL; permitiendo

absorber las fluctuaciones del voltaje, debidas al ruido causado por diversas fuentes, entre la

salida de una componente y la entrada de la siguiente:

VOL

Vruido

VIL

V OL

V IL

t

i V

Figura I.15

Dispositivos lógicos.

Un dispositivo básico que acepta una entrada y la deposita en la salida (sin cambios) se

denomina buffer (amortiguador) y queda definido por la siguiente función de transferencia

estática:

Page 10: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

10 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.16

Los dispositivos deben ser diseñados evitando las áreas grises, que corresponden a entradas

válidas pero salidas inválidas. Se muestra una posible curva que no pasa por las áreas grises. Se

asume que normalmente los voltajes de entrada cumplen con los umbrales, y que sólo cuando

cambia el valor lógico, se ocupa la parte de la curva ubicada entre los umbrales. Como resultado

de esto se advierte que los dispositivos deben tener ganancia y ser no lineales. A la derecha se

muestra un símbolo lógico para el buffer.

Normalmente los dispositivos se diseñan empleando transistores y asociando a los valores

lógicos estados de saturación o corte (estados de bajo consumo de energía). Esto implica que si

una entrada cambia de valor bajo a alto, uno o varios de los transistores que conforman el

dispositivo, tendrán que pasar de saturación a corte o viceversa. Lo cual implica operación lineal

momentánea. En el intervalo en que opera en forma lineal, habrá un sistema aproximadamente

lineal, cuya solución incorpora exponenciales, cuya presencia implica un tiempo para llegar a un

valor estacionario. En la conmutación habrá entonces mayor consumo de las fuentes, y un

retardo asociado al cambio. En estados estables se tendrá bajo consumo de energía.

La Figura I.17, es una de las posibles características de transferencia estática de un inversor.

Es decir, un dispositivo digital que acepta una entrada baja en su entrada y la transforma en alta,

y viceversa. A la derecha se muestra el símbolo lógico para un inversor.

VOL VIL VIH VOH

Vin

Vout

VOH

VIH

VIL

VOL

Vin Vout

Page 11: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 11

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.17

La abstracción digital consiste en representar las variables de entrada y salida de

dispositivos tomando valores discretos 0 y 1.

Retardos de conmutación.

La Figura I.18 muestra la red electrónica que tiene el comportamiento de un inversor en base

a un transistor bipolar. El condensador C, representa la capacidad parásita entre el cable de

salida y la tierra, a ésta debe sumarse la capacidad de entrada del circuito al que esté conectada

la salida del inversor.

Si el voltaje Vin es menor que 0,7 [V], la juntura base emisor no conduce y el transistor está

en corte. Cuando se produce el corte, el voltaje Vout sube hasta Vcc, debido a la carga del

condensador, mediante una exponencial de constante de tiempo RcC. Tenemos luego de un

tiempo, un voltaje bajo en la entrada y uno alto en la salida; en esta situación se tiene un 1

lógico en la salida y el transistor está en un estado de bajo consumo.

C Vin

Vout

+Vcc

Rc

NPN

Figura I.18

Si se aplica un voltaje alto, muy superior a 0,7 y cercano a Vcc, el transistor debe estar

saturado, es decir con un voltaje entre colector y emisor cercano a 0,2 [V]. En estas condiciones

el circuito equivalente del transistor es una fuente continua de 0,2[V], en serie con una

resistencia muy baja, sea esta resistencia Rsat. El condensador, cargado a voltaje Vcc, se descarga

según una exponencial de constante de tiempo RsatC, hasta llegar al voltaje de saturación. Luego

Vol Vil Vih Voh

Vin

Vout

Voh

Vih

Vil

Vol Vin Vout

Page 12: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

12 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

de un tiempo tenemos un voltaje alto en la entrada y uno bajo, 0 lógico, en la salida; en estas

condiciones el transistor está en un estado de bajo consumo.

En el Apéndice 4 se muestra la conmutación en transistores CMOS.

Al proceso de pasar de entrada baja o alta a una salida alta o baja, respectivamente, se lo

denomina conmutación. Este cambio de estado implica que el transistor pasa por su zona lineal

de operación, y durante un breve lapso de tiempo aumentará su consumo de energía.

La Figura I.19 muestra las formas de ondas de los voltajes de entrada y salida de un inversor.

Se advierte que existe un retardo entre el instante en que la entrada toma valor uno lógico y el

instante en que la salida toma valor lógico cero. Se denomina tiempo de retardo de propagación

de alto a bajo (tPDHL). También existe un retardo de propagación, que puede ser diferente al

anterior, cuando la salida pasa de 0 a 1 (tPDLH).

t

Vin

VIH

VIL

t

Vout

VOH

VOL

tPDHL tPDLH

tf

Tiempo

caída

(fall time)

tr

Tiempo

subida

(rise time)

Figura I.19

Las formas de ondas que se ilustran en la Figura I.19, son análogas, y son las que mostraría

un osciloscopio. Sin embargo tanto los simuladores como los analizadores lógicos mostrarían

señales estrictamente binarias; esto se debe a que los valores muestreados se almacenan en

forma digital. La Figura I.20, muestra las señales de conmutación, idealizadas por señales

binarias.

Page 13: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 13

Profesor Leopoldo Silva Bijit 19-01-2010

t

Vin

VIH

VIL

t

Vout

VOH

VOL

tPDHL tPDLH

Figura I.20

Perturbaciones, carreras.

Si en el circuito digital de la Figura I.12 aplicamos cambios en las entradas, las salidas

deberían cambiar según la tabla de verdad de la Figura I.6. Debido a los retardos veremos que

estos cambios no se producen inmediatamente. Si suponemos que las entradas E1 y E0 han

estado un largo tiempo con valor 1, ambas salidas estarán en 0. Esta condición se muestra en el

tiempo 0 de la Figura I.21.

t E1

E0

E1’

E0’

E1E0’

E1’E0

S1=E1’E0+E1E0’

S0

t2

t1

Figura I.21

Page 14: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

14 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Luego cambiaremos ambas entradas a cero, pero debido a que es muy poco probable que las

compuertas que generan las señales E1 y E0 tengan iguales parámetros, asumiremos que primero

cambia E1, y luego de un pequeño tiempo lo hace E0. Se dice que existe una carrera entre las

entradas; en general es muy poco probable lograr un cambio simultáneo de un conjunto de

señales.

En el instante t1, ambas entradas estarán en cero. Se han dibujado las formas de ondas de las

señales: luego de los inversores, a la salida de las compuertas and y a la salida de la compuerta

or, considerando los retardos de propagación.

Se advierte que se produce un pequeño pulso, que durante un breve instante coloca a S1 en

uno. Si lo que se deseaba era pasar de entradas 11 a entradas 00, las salidas deberían haber

cambiado de 00 a 01, sin embargo momentáneamente las salidas pasan por 11. Se puede

observar que desde el instante t2, se tienen las salidas deseadas.

Otra situación simple, en la cual se tiene un comportamiento no esperado, de acuerdo al

álgebra de Boole, es la que se ilustra en la Figura I.22. Con b=1, aplicaremos un pulso en la

entrada a, y obtendremos la forma de onda digital de la señal x.

a

b

x

Figura I.22

En la Figura I.23 se ilustran las formas de ondas: en la entrada, a la salida del inversor, en la

salida del and, y en la salida del or. Se aprecia que la salida va momentáneamente a cero,

cuando debía permanecer siempre en 1; este efecto se denomina perturbación estática. De

acuerdo al algebra de Boole, la salida x puede escribirse según: x=a+a’=1.

t a

a’

a+a’

t1

x

Figura I.23

Entonces: los cambios no simultáneos de las entradas, y las operaciones and y or con

operandos iguales a una señal y su complemento, que produzcan una salida, originan cambios

indeseados en la salida de una red combinacional.

Page 15: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 15

Profesor Leopoldo Silva Bijit 19-01-2010

Estudiaremos, más adelante, los fundamentos del diseño combinacional libre de

perturbaciones, sin embargo la no simultaneidad de los cambios del vector de entrada no puede

ser resuelto dentro de la red combinacional.

La siguiente simulación Verilog (Ver Apéndice 5), genera las formas de ondas, de la Figura

I.24, asumiendo que los retardos de los inversores son de una unidad de tiempo de simulación, y

que las compuertas and y or tienen retardos de dos unidades. Se describe la red combinacional

mediante la interconexión de compuertas de la Figura I.12, mediante el módulo funcioncnt. La

Figura I.24, es generada automáticamente, mediante simulación; la Figura I.21, fue generada

manualmente. El módulo test produce una secuencia de estímulos que genera el archivo

cntmod4.vcd, que emplea un formato estándar para las formas de ondas.

module funcioncnt(input E1, E0, output S1, S0);

wire n1,n2,n3;

not #1 (n1,E1);

and #2 (n2,n1,E0);

and #2 (n3,E1,S0);

or #2 (S1,n2,n3);

not #1 (S0,E0);

endmodule

module test(inputS1,S0,output E1,E0);

reg E1,E0;

initial

begin

$dumpfile("cntmod4.vcd");

$dumpvars(0, E1,E0,S1,S0);

end

initial

begin

$monitor("E1=%b E0=%b S1=%b S0=%b ", E1, E0, S1, S0 , $time);

E1=1; E0=1;

#10 E1=0;

#4 E0=0;

#20 E1=1;

#20 $finish;

end

endmodule

module BancoDePrueba;

wire E1,E0;

wire S1,S0;

funcioncnt f1 (E1,E0,S1,S0);

test t1 (S1,S0,E1,E0);

endmodule

Page 16: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

16 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.24

Mediante la componente lógica, denominada flip-flop, veremos cómo puede sincronizarse

las salidas de una red combinacional, de tal modo que no se vean afectadas por las carreras de

las entradas o perturbaciones generadas en el sistema combinacional.

I.4. Sistemas digitales secuenciales.

Flip-flop D.

Este elemento se considera de naturaleza secuencial, y es una memoria de un bit. Funciona

bajo el control de un reloj; en el instante que el reloj sube, se toma una muestra del valor de

entrada, se la almacena y se cambia la salida, de acuerdo al valor recién muestreado. Luego

cuando la señal de reloj, pasa a cero, la salida no cambia. El símbolo lógico se muestra en la

Figura I.25.

D Q

Q’

Clk

Figura I.25

Reloj

El reloj es una señal periódica que establece instantes de referencia o sincronización,

pudiendo ser éstos los cantos de subida o de bajada del reloj. Se discretiza la variable tiempo, de

tal modo que las variables adoptan valores constantes entre los cantos de referencia.

La Figura I.26 muestra el funcionamiento del flip-flop D: la señal Q permanece constante

entre ciclos de reloj, esto equivale a memorizar un valor durante un intervalo de tiempo. La

salida Q registra el valor de la entrada D, en el momento en que ocurre el canto de subida del

reloj.

Set-up, hold, tiempo de propagación.

En un dispositivo real es preciso que no ocurran cambios de la entrada un intervalo antes del

canto de subida del reloj (set-up); y un intervalo después del canto de subida del reloj (hold).

Page 17: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 17

Profesor Leopoldo Silva Bijit 19-01-2010

También se muestra que los cambios de la salida ocurren un tiempo de propagación luego del

canto de subida del reloj. En el capítulo 14 sobre sistemas asincrónicos se darán las razones de

estas restricciones temporales.

t1

Clk

D

Q

t2 t3

Figura I.26

Las formas de ondas consideran que el valor inicial de Q es cero. Los cambios de las

entradas después del tiempo de hold de un canto de subida, y antes del tiempo de set-up del

próximo canto de subida, no son registrados por el flip-flop; lo que se ilustra en el intervalo t3 de

la Figura I.26.

Salidas combinacionales sincronizadas por un reloj.

Si a la red de la Figura I.4, le conectamos dos flip-flops D, se tendrá la red combinacional

sincronizada, que se muestra en la Figura I.27. También se dice que tenemos una red

combinacional con salida registrada.

E1 S1

E0 S0

clk

s1

s0

Figura I.27

Si las entradas S1 y S0 (con mayúsculas) cumplen los requerimientos de set-up y hold, las

salidas s1 y s0 (con minúsculas) experimentan sus cambios luego del canto de subida del reloj, y

permanecen estables entre cantos de subida del reloj.

Los cambios de un vector, luego de un tiempo de propagación a través de los flip-flops, se

insinúan con ambas conmutaciones, como se ilustran los cambios de s, en el diagrama de la

Figura I.28. Suele indicarse el valor que toma el bus en binario, decimal o hexadecimal, con un

número dentro de las zonas.

La Figura I.28 muestra la secuencia de valores: 00, 01, 11, y 10 en el bus s, en la salida de los

flip-flops.

Page 18: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

18 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

clk

s 01 11 10

Figura I.28

Debe destacarse que es poco probable el cambio simultáneo de las salidas de flip-flops

diferentes, a pesar de que operen con igual reloj.

Si los circuitos que generan las señales E1 y E0, lo efectúan mediante salidas registradas,

controladas por el mismo reloj, se tienen:

a) Si el tiempo de propagación a través de los flip-flops es mayor que el tiempo de hold, los

cambios (posiblemente no simultáneos) del vector E, se producen con el reloj alto.

b) Las señales S1 y S0 pueden contener cambios no deseados, que deben extinguirse antes

del tiempo de set-up. Si esto no se cumple debe bajarse la frecuencia del reloj.

c) Si las señales S1 y S0 cumplen los requerimientos del tiempo de set-up y hold, los valores

capturados por los flip-flops contendrán en s1 y s0, los valores estables de S1 y S0.

La Figura I.26, muestra que los cambios, de las entradas, entre cantos de subida del reloj no

son considerados para ser grabados; prácticamente son filtrados.

Realimentaciones. Sistema secuencial sincrónico.

Si en el circuito de la Figura I.27, realimentamos las salidas s hacia las entradas E, se obtiene

el sistema secuencial sincrónico que se muestra en la Figura I.29.

E1 S1

E0 S0

clk

s1

s0

Figura I.29

Supongamos que ambos flip-flops tienen salida 0. Entonces, entre dos cantos de reloj la

salida será s1=0 y s0=0, entonces las entradas a la red combinacional serán E1=0 y E0=0. Lo

Page 19: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 19

Profesor Leopoldo Silva Bijit 19-01-2010

cual produce, luego de un tiempo, las salidas S1=0 y S0=1. Si estas salidas de la red

combinacional están estables antes del próximo canto de subida del reloj, al llegar éste, se

tendrán: s1=0 y s0=1. Cuando los valores de los flip-flops cambian se dice que ha ocurrido un

cambio de estado. El vector booleano asociado a los valores de los flip-flops se denomina

estado.

Estando en el estado s={0,1}, en el próximo canto de subida del reloj, se tendrá, debido a la

red combinacional que produce S={1,0}, que el nuevo estado será: s={1,0}.

Las transiciones entre estados pueden representarse mediante el diagrama de estados de la

Figura I.30, que muestra el valor de cada estado dentro de un círculo. Hay 4 círculos ya que se

tienen 4 estados. La ocurrencia del canto de subida del reloj, momento en el cual se produce la

conmutación de los flip-flops, se muestra con una flecha que conecta dos estados, desde el

estado actual al próximo estado.

00

01

10

11

Figura I.30

Otra forma de describir la información del diagrama de estados es a través de una tabla de

transiciones, que muestre en una columna el estado presente y en otra, el próximo estado.

Estado Presente Próximo estado

s1 s0 S1 S0

0 0 0 1

0 1 1 0

1 0 1 1

1 1 0 0

Figura I.31

Debido a las realimentaciones, la tabla anterior describe la red combinacional vista al inicio,

en la Figura I.6.

Puede describirse en Verilog la red de la Figura I.29, se ha agregado la señal Resetn, para

colocar la máquina secuencial en el estado inicial s=00.

module cntmod4 (input clk, Resetn, output [1:0] s);

reg [1:0] s, S;

// Red combinacional de próximo estado.

always @(s)

Page 20: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

20 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

begin

S[1] = (s[1]&!s[0])|(!s[1]&s[0]);

S[0] = !s[0];

end

// Proceso secuencial del registro.

always @(negedge Resetn or posedge clk)

if (Resetn == 0) s <= 0;

else s <= S; //estado presente<=próximo estado

endmodule

En el Apéndice 5 se describe el uso de Verilog para representar, simular y diseñar sistemas

digitales.

Figura I.32

La Figura I.32, muestra las formas de ondas producidas con la simulación del contador

módulo 4. Muestra en binario los diferentes valores que toma el vector s, entre cantos de subida

del reloj.

Generalizaciones. Red booleana.

Una generalización permite una visión más profunda de un problema particular. Una

generalización ayuda a diferenciar las propiedades especiales o particulares de las generales.

La Figura I.33, es una generalización de la situación anterior, en la cual se ha agregado un

vector x, que constituye la entrada al sistema secuencial. Ahora las transiciones de un estado a

otro dependen de las entradas y del estado presente s. También se ha agregado un control que

permite colocar todos los flip-flops en cero, de esta manera puede dejarse al sistema en el

estado cuyo nombre binario está formado por puros ceros, que suele denominarse estado inicial.

Es indispensable conocer el estado inicial, para generar la secuencia de estados que se recorren

cuando se aplica una determinada secuencia de entrada.

Otra generalización es agregar un módulo que genere un vector de salida. Si la salida

depende de la entrada y el estado se denomina modelo de Mealy a esta representación de una

máquina secuencial. Si la salida sólo depende del estado presente se obtiene el modelo de

Moore.

Page 21: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 21

Profesor Leopoldo Silva Bijit 19-01-2010

D Q

Clk

S

Reset’

s

x P1 P2

E

Figura I.33

Un mayor grado de generalización se muestra en la Figura I.34, que muestra una red

booleana, formada por la interconexión de redes combinacionales con registros. El diseño de

estas redes, debido a su complejidad, está basado en la descripción de diferentes módulos

mediante lenguajes. Cada módulo es desarrollado y simulado antes de ser integrado como una

parte del sistema mayor. El sistema debe describirse mediante las operaciones de

transformación que efectúan los bloques combinacionales y las reglas para almacenar

confiablemente la información en los registros. Esto suele efectuarse describiendo las

transferencias entre registros; razón por la cual se suele denominar RTL (Register Transfer

Level) a la descripción de sistemas digitales en este nivel.

salidas

entradas

Figura I.34 Red booleana.

Si todas las señales de sincronización (los clk de los registros) son iguales se dice que el

sistema es sincrónico; en caso contrario el sistema es asincrónico.

Page 22: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

22 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

I.5. Definiciones de algunos conceptos generales de sistemas digitales.

Evento

Se denomina evento al cambio de valor de una señal en un instante de tiempo. Pasar de nivel

lógico 1 a 0 se denomina canto de bajada. Un canto de subida se produce cuando la señal pasa

de nivel lógico 0 a 1.

A un evento también se lo denomina mensaje; los valores que toman los eventos suelen

interpretarse como símbolos pertenecientes a un alfabeto.

Máquina abstracta.

Una máquina abstracta es un modelo de computación que establece cómo se generan las

acciones, o eventos de salida, a partir de los mensajes o eventos de entrada.

Figura I.35

Sistemas combinacionales.

Se denominan máquinas o sistemas combinacionales a aquellos cuyas salidas, en un

instante de tiempo, dependen solamente de los valores que toman las entradas en ese instante de

tiempo. Lo cual puede describirse por una función o tabla que especifique los valores de las

salidas para cada una de las combinaciones posibles de las entradas. En estos sistemas las

componentes no cambian sus propiedades a medida que transcurre el tiempo.

Ejemplo de sistema combinacional.

En el siguiente sistema combinacional, se tienen dos eventos asociados a los interruptores S1

y S2, y una acción de salida L asociada a la ampolleta.

Los eventos de entrada pueden tomar los valores: abrir o cerrar. La acción de salida puede

tomar los valores: apagar o encender.

Figura I.36

Máquina

Acciones Mensajes

S1

S2

V

L

Page 23: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 23

Profesor Leopoldo Silva Bijit 19-01-2010

El sistema puede especificarse mediante la siguiente tabla:

S1 S2 L

abrir abrir apagar

abrir cerrar encender

cerrar abrir encender

cerrar cerrar encender

Figura I.37

También empleando el lenguaje C:

if ( (S1 == cerrar ) || (S2 == cerrar) ) L = encender; else L = apagar;

o alternativamente:

if ( (S1 == abrir ) && (S2 == abrir) ) L = apagar; else L = encender;

Si puede construirse la tabla que relaciona los eventos de entrada con los de salida, el sistema

es combinacional. En la descripción mediante un lenguaje, si sólo se emplean sentencias de

alternativa (if then else, switch) el sistema es combinacional.

Existen sistemas más complejos que los combinacionales, son aquellos que pueden cambiar

sus atributos en función del tiempo (dinámicos).

Estado.

Se denomina estado al conjunto de atributos que representan las propiedades de un sistema u

objeto en un determinado instante de tiempo.

En el caso de componentes digitales que tienen dispositivos que pueden almacenar valores,

se denomina estado al contenido de la memoria.

El estado refleja la condición en que se encuentra el sistema o máquina digital.

Máquinas de estados.

Se denominan máquinas de estados a aquellas cuyas salidas, en un instante de tiempo,

dependen de los valores que toman las entradas y el estado en ese instante de tiempo. Lo cual

puede describirse por una función de transición que especifique los valores de las salidas y del

próximo estado para cada una de las combinaciones posibles de las entradas y del estado

presente. Las computaciones comienzan a partir de un estado inicial y de una secuencia de

valores de la entrada.

Transición.

Se denomina transición al cambio de estado del sistema, y ésta debe indicar cómo se pasa de

un estado a otro.

Page 24: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

24 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Un modelo matemático adecuado para la función de transición es una matriz, en la cual los

renglones y columnas representan los eventos de entrada y los diferentes estados; el contenido

de la matriz especifica el próximo estado y las salidas.

Diagrama de estados.

Se denomina diagrama de estados a una representación gráfica, en la cual los estados se

representan como círculos (o rectángulos) y las transiciones como líneas orientadas, que

conectan los estados, y que representan los eventos de entrada.

Ejemplo de máquina de estados.

Consideremos como ejemplo de máquina de estados a un torniquete, similar a los empleados

en el acceso al metro.

Figura I.38

El torniquete tiene dos estados: puede estar trabado o destrabado. Cuando el torniquete está

trabado, una persona puede ingresar un boleto, este evento causa que el torniquete pase al estado

destrabado. Estando destrabado, cuando se produce el evento de que una persona pasa, haciendo

girar el torniquete, éste pasa al estado trabado.

En el siguiente diagrama se ilustran las transiciones entre estados, éstas se han identificado

por un par (evento de entrada)/(evento de salida), ilustrando que las salidas están asociadas a las

transiciones (Modelo de Mealy).

Cuando se inserta el boleto, se genera o dispara la acción de destrabar; cuando la persona al

pasar hace girar el torniquete, se produce la acción de trabar.

Page 25: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 25

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.39

El diagrama modela la máquina de estados finitos, y para su completa especificación debe

establecerse un estado inicial. Se asume que el estado inicial es el estado trabado.

El diagrama considera que los mensajes o eventos de entrada ocurren normalmente, según lo

planeado por el diseñador y describen claramente las funciones del sistema en forma precisa,

permitiendo además juzgar si el diseño está o no completo.

Los usuarios podrían gatillar eventos normales en tiempos en los que éstos no se esperan.

Por ejemplo: estando en estado trabado, se podría generar la señal de paso (aplicando fuerza

bruta); o estando destrabado volver insertar un boleto. Estos eventos deben ser tratados en un

diseño real, ojalá en el modelado inicial; su no consideración temprana podría generar un

producto de mala calidad o inútil.

Para resolver la situación podría generarse una alarma en caso de intentar pasar cuando el

torniquete está trabado. Esto implica una acción adicional, y al mismo tiempo la necesidad de

un evento adicional que apague la alarma; o bien la creación de un estado adicional de

violación. Por otro lado, puede bloquearse el ingreso de boletos cuando el torniquete está

destrabado, o bien lo que propondría un ingeniero comercial: prender un aviso luminoso que

diga “gracias”. Lo cual lleva a especificar la acción de apagar dicho letrero, que también debe

agregarse al diagrama.

destrabado trabado

Insertar/Destrabar

Pasar/Trabar

destrabado trabado

Insertar/Destrabar

Pasar/Trabar

Pasar/Alarmar Insertar/Agradecer

Iniciar

Page 26: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

26 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.40

A medida que se va completando la especificación de un sistema real pueden ir aumentando

el número de eventos, de estados y también el número de acciones, lo cual lleva a diagramas

complejos.

También puede especificarse que el sistema tendrá un modo de servicio y otro de

mantenimiento, lo cual podría estudiarse como dos diagramas interconectados (diseños

modulares).

La siguiente matriz de transiciones describe la máquina de estados, especificando el

próximo estado en función del estado presente y de los eventos de entrada.

Eventos de

entrada

Estado

actual

Pasar Insertar

Trabado Trabado Destrabado

Destrabado Trabado Destrabado

Próximo estado

Figura I.41

La siguiente matriz define las salidas asociadas a las transiciones.

Eventos de

entrada

Estado

actual

Pasar Insertar

Trabado Alarmar Destrabar

Destrabado Trabar Agradecer

Acciones

Figura I.42

Si puede describirse un sistema mediante un diagrama de estados o a través de las matrices

de transiciones y de salida se dice que el sistema es secuencial.

En casos más complejos, en la implementación por software de máquinas de estados finitos,

puede emplearse una matriz de objetos. Donde cada entrada es un objeto que contiene los

métodos o conductas deseadas.

La naturaleza secuencial implica el uso de sentencias de repetición. La función de transición

puede implementarse mediante switches. Sin embargo a medida que el sistema aumenta sus

estados y/o entradas se va complicando la lectura y el tamaño del código de la función.

Page 27: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 27

Profesor Leopoldo Silva Bijit 19-01-2010

Debido a que el modelo de programación orientado a objetos y la programación de sistemas

de tiempo real emplean máquinas de estados finitos, han aparecido numerosas y nuevas

herramientas para especificar y verificar diagramas de estado.

Lenguajes de descripción de hardware.

En implementaciones de hardware, basadas en componentes digitales, han evolucionado

rápidamente los lenguajes de descripción de hardware (HDL), que permiten especificar

ejecuciones paralelas de acciones; en lugar de las estrictamente secuenciales de los lenguajes de

programación.

Autómata de estados finitos determinista.

Si el número de estados es finito, se denominan máquinas de estados finitos. Si el próximo

estado queda unívocamente determinado por un solo evento se denominan determinísticas.

Si hay transiciones sin un evento de entrada o más de una transición para un par determinado

entrada-estado, se denominan no determinísticas.

Es posible generar un autómata de estados finitos determinista que tenga las mismas salidas,

para iguales entradas, que uno no determinista.

Tipos de máquinas.

Existen varios tipos de máquinas. Se denominan de Mealy aquellas cuyas salidas se

producen en las transiciones entre estados; y de Moore a aquellas en la cuales las salidas están

asociadas al estado. Existen procedimientos para convertir un modelo de Mealy en uno de

Moore.

Reloj.

Si las transiciones ocurren en determinados instantes de tiempo se denominan sincrónicas.

Los instantes en que se producen los cambios de estado están asociados al canto de subida, o al

de bajada, de una señal denominada reloj.

Máquinas secuenciales.

Las máquinas de estados finitos suelen denominarse máquinas secuenciales ya que a partir

de una secuencia ordenada de eventos de entrada, generan una secuencia de estados por los que

pasa la máquina, y a su vez una secuencia de acciones de salida.

Algunas aplicaciones de máquinas secuenciales.

Un nuevo e importante uso de los conceptos de este curso es en la programación orientada a

objetos. Los objetos tienen un estado, el cual es dado por el valor de sus atributos. En este

ambiente el diseño de una clase puede facilitarse si se intenta modelar los estados de un objeto

en el mundo real, mediante un diagrama de estados. Las máquinas de estados finitos han llegado

a ser el modelo estándar para representar la conducta de los objetos.

Page 28: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

28 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

El control de un computador es una máquina de estados. Los protocolos de red se

implementan mediante máquinas de estados.

Las máquinas secuenciales son un poderoso modelo para implementar esquemas de control

secuencial (dependientes de la historia pasada), tanto en hardware como en software. Facilitan

el diseño de la programación de sistemas multitareas, en tiempo real, utilizando

microcontroladores.

El modelo de máquina secuencial se emplea en Teoría de lenguajes formales y tiene

importantes aplicaciones en reconocimiento de patrones y analizadores léxicos y sintácticos, por

mencionar algunas.

Diseño.

Diseñar es resolver un problema, a partir de su especificación, escogiendo apropiadamente

las componentes desde un conjunto disponible, y tal que se satisfagan algunos criterios para el

tamaño, costo, velocidad de operación, consumo de energía, elegancia, etc.

El diseño digital podría definirse como la determinación de las componentes digitales que

realizan las especificaciones de comunicación, control y procesamiento de los datos. Más

específicamente, es descomponer la solución en redes combinacionales y/o secuenciales

organizando jerárquicamente el diseño y empleando efectivamente herramientas

computacionales modernas de ayuda al diseño.

Las técnicas anteriores se aplican en diseño de computadores, redes, comunicaciones, y en

automatización de procesos productivos; en resumen el diseño digital está presente en

numerosas e importantes aplicaciones de la ingeniería electrónica. El siguiente diagrama ilustra

un sistema digital muy utilizado:

Page 29: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 29

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.43

El diagrama ilustra la estructura jerárquica de los sistemas digitales, en la cual cada nivel

tiene complejidad acotada y además los bloques constructivos básicos se emplean con diferente

propósito.

En el menor nivel los dispositivos están implementados con transistores MOSFET. Estas

componentes primitivas más un sistema para codificar la información en forma digital, permiten

construir los diferentes niveles de un sistema digital.

Figura I.44

Computador Personal. Tarjeta Madre Circuito Integrado Hardware y Software 500*10

6 Transistores 5*10

6 Transistores

Compuerta Celda Módulo 10 Transistores 50

Transistores 100*10

3 Transistores

Page 30: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

30 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

También puede advertirse que la implementación de un sistema complejo tiene una gran

cantidad de trabajo de diseño. Lo cual implica gran número de personas involucradas en

diferentes niveles; para lograr una mejor cooperación los bloques constructivos deben imponer

límites que muestren las interfases entre los bloques en forma sencilla y bien especificada.

Un buen trabajo de diseño implica: poder adaptarse a mejoras tecnológicas, permitir realizar

tareas diferentes con los mismos módulos y ser efectivo en cuanto a costos.

Para lograr lo anterior es preciso:

Desarrollar abstracciones de los bloques primitivos, y conocer los principios para organizar

los bloques constructivos básicos en unidades más complejas.

I.6. Resumen.

Se estudiarán los fundamentos matemáticos de las funciones de variables discretas, su

estructura y diversos métodos de representación de funciones. Luego los principios y técnicas

para modelar situaciones del mundo real, mediante funciones booleanas y registros. Después

se analizarán sistemas ya diseñados para posteriormente diseñar, implementar o sintetizar,

mediante diferentes tecnologías, sistemas digitales combinacionales y secuenciales.

Se desea mostrar:

Los principios de diseño digital basados en el álgebra de Boole, con utilización de

herramientas computacionales, para minimizar las ecuaciones y analizar el comportamiento

temporal.

El concepto de estado y de máquinas secuenciales.

Cómo especificar, simular y sintetizar los diseños en dispositivos programables y no

programables.

Conviene conocer el diseño en bajo nivel de los subsistemas típicamente usados, de esta

manera se conocerá su funcionalidad, sus alcances, la forma de generalizarlos, y su costo. Luego

las descripciones de la arquitectura pueden realizarse basada en esos módulos.

Un curso básico en sistemas digitales debe profundizar en el diseño de los bloques básicos,

y también capacitar en descomponer un problema en términos de esos bloques. Esto

garantiza plantear arquitecturas con partes que serán sintetizadas eficientemente.

La Figura I.45, muestra el proceso de síntesis como un nivel intermedio, entre las

descripciones de arquitecturas mediante módulos sintetizables (top-down), y el desarrollo de

módulos básicos implementados mediante compuertas y flip-flops (bottom-up).

Emplearemos el lenguaje de descripción de hardware Verilog, que permite las descripciones

y simulaciones en los diferentes niveles, dando homogeneidad al proceso de diseño.

Page 31: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 31

Profesor Leopoldo Silva Bijit 19-01-2010

Arquitectura abstracta

Bloques Básicos

Síntesis

Compuertas

Flip-flops

Figura I.45

La construcción de compuertas, en base a transistores, se describe en forma introductoria en

el Apéndice 4; la elaboración de flip-flops, en base a compuertas se introduce en el Capítulo 14

dedicado a sistemas digitales asincrónicos. Sin embargo la descripción detallada de los

principios de diseño de las compuertas, flip-flops, multivibradores monoestables, etc., en base a

transistores y componentes de redes eléctricas no es tratada en este texto.

Page 32: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

32 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Índice general.

INTRODUCCIÓN ................................................................................................................................ 1

SISTEMAS DIGITALES ..................................................................................................................... 1

I.1 DEFINICIÓN. ................................................................................................................................... 1 I.2 DISEÑO CLÁSICO Y ACTUAL. ........................................................................................................... 1 I.3 CONCEPTOS BÁSICOS EN SISTEMAS DIGITALES. .............................................................................. 2

Codificación. .................................................................................................................................. 3 Sistema numérico binario. .............................................................................................................. 4 Información. Bit, Byte. .................................................................................................................. 4 Tablas de verdad. ........................................................................................................................... 6 Compuertas básicas. Operadores booleanos. ................................................................................ 6 Expresiones booleanas. .................................................................................................................. 7 Esquemático. .................................................................................................................................. 8 Niveles lógicos................................................................................................................................ 8 Dispositivos lógicos. ....................................................................................................................... 9 Retardos de conmutación. ............................................................................................................ 11 Perturbaciones, carreras. ............................................................................................................. 13

I.4. SISTEMAS DIGITALES SECUENCIALES. .......................................................................................... 16 Flip-flop D. ................................................................................................................................... 16 Reloj ............................................................................................................................................. 16 Set-up, hold, tiempo de propagación. ........................................................................................... 16 Salidas combinacionales sincronizadas por un reloj. .................................................................. 17 Realimentaciones. Sistema secuencial sincrónico. ....................................................................... 18 Generalizaciones. Red booleana. ................................................................................................. 20

I.5. DEFINICIONES DE ALGUNOS CONCEPTOS GENERALES DE SISTEMAS DIGITALES. .......................... 22 Evento ........................................................................................................................................... 22 Máquina abstracta. ...................................................................................................................... 22 Sistemas combinacionales. ........................................................................................................... 22 Ejemplo de sistema combinacional. ............................................................................................. 22 Estado. .......................................................................................................................................... 23 Máquinas de estados. ................................................................................................................... 23 Transición. ................................................................................................................................... 23 Diagrama de estados. ................................................................................................................... 24 Ejemplo de máquina de estados. .................................................................................................. 24 Lenguajes de descripción de hardware. ....................................................................................... 27 Autómata de estados finitos determinista. .................................................................................... 27 Tipos de máquinas. ....................................................................................................................... 27 Reloj. ............................................................................................................................................ 27 Máquinas secuenciales. ................................................................................................................ 27 Algunas aplicaciones de máquinas secuenciales. ........................................................................ 27 Diseño. ......................................................................................................................................... 28

I.6. RESUMEN. ................................................................................................................................... 30 ÍNDICE GENERAL. .............................................................................................................................. 32 ÍNDICE DE FIGURAS. ........................................................................................................................... 33

Page 33: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

Introducción 33

Profesor Leopoldo Silva Bijit 19-01-2010

Índice de figuras.

Figura I.1 ....................................................................................................................................... 2 Figura I.2 ....................................................................................................................................... 2 Figura I.3 ....................................................................................................................................... 3 Figura I.4 ....................................................................................................................................... 3 Figura I.5 ....................................................................................................................................... 3 Figura I.6 ....................................................................................................................................... 6 Figura I.7 ....................................................................................................................................... 6 Figura I.8 ....................................................................................................................................... 6 Figura I.9 ....................................................................................................................................... 7 Figura I.10 ..................................................................................................................................... 7 Figura I.11 ..................................................................................................................................... 7 Figura I.12 ..................................................................................................................................... 8 Figura I.13 ..................................................................................................................................... 8 Figura I.14 ..................................................................................................................................... 9 Figura I.15 ..................................................................................................................................... 9 Figura I.16 ................................................................................................................................... 10 Figura I.17 ................................................................................................................................... 11 Figura I.18 ................................................................................................................................... 11 Figura I.19 ................................................................................................................................... 12 Figura I.20 ................................................................................................................................... 13 Figura I.21 ................................................................................................................................... 13 Figura I.22 ................................................................................................................................... 14 Figura I.23 ................................................................................................................................... 14 Figura I.24 ................................................................................................................................... 16 Figura I.25 ................................................................................................................................... 16 Figura I.26 ................................................................................................................................... 17 Figura I.27 ................................................................................................................................... 17 Figura I.28 ................................................................................................................................... 18 Figura I.29 ................................................................................................................................... 18 Figura I.30 ................................................................................................................................... 19 Figura I.31 ................................................................................................................................... 19 Figura I.32 ................................................................................................................................... 20 Figura I.33 ................................................................................................................................... 21 Figura I.34 Red booleana. ........................................................................................................... 21 Figura I.35 ................................................................................................................................... 22 Figura I.36 ................................................................................................................................... 22 Figura I.37 ................................................................................................................................... 23 Figura I.38 ................................................................................................................................... 24 Figura I.39 ................................................................................................................................... 25 Figura I.40 ................................................................................................................................... 26 Figura I.41 ................................................................................................................................... 26 Figura I.42 ................................................................................................................................... 26 Figura I.43 ................................................................................................................................... 29

Page 34: Sistemas Digitales - elo.utfsm.cllsb/elo211/clases/intro.pdf · 2 Sistemas Digitales Profesor Leopoldo Silva Bijit 19-01-2010 algoritmos, están basadas las herramientas CAD. Su exposición

34 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Figura I.44 ................................................................................................................................... 29 Figura I.45 ................................................................................................................................... 31