Diseño Secuencial Msi

download Diseño Secuencial Msi

of 36

Transcript of Diseño Secuencial Msi

  • 7/25/2019 Diseo Secuencial Msi

    1/36

    TEMA VI: DISEO SECUENCIAL MSI

    Al igual que suceda con los circuitos combinacionales, existen macrofunciones secuen-

    ciales que son implementadas en un solo integrado. Por lo tanto, estos circuitos, junto con los

    MSI combinacionales, permiten la realizacin del diseo de circuitos digitales con elementos

    MSI.

    1. Dispositivos MSI Secuenciales.

    Bsicamente existen dos tipos de dispositivos MSI secuenciales, registros y contadores.

    A continuacin sern tratados en ms profundidad.

    1.1. Registros.

    El elemento fundamental de los sistemas secuenciales (que no est presente en los siste-

    mas puramente combinacionales) es el elemento de memoria, ya sea transparente, latch o flip-

    flop. El registro es la versin MSI de estos elementos, y se puede definir como:

    Un registroes el elemento capaz de almacenar varios bits, en general unapalabra

    Por lo tanto, un elemento de memoria se puede tratar como un registro de un bit. De aqu pode-

    mos concluir que un registro de n bits estar formado por n elementos de memoria en paralelo,

    como se muestra en la figura 6.1. De aqu en adelante utilizaremos flip-flops por ser los ms

    empleados, no obstante podemos encontrar versiones similares utilizando latches.

    Si analizamos este circuito, podemos obtener que cuando hay un cambio de estado (la

    seal clk sufre una transicin de subida) las salidas obtienen el valor de las entradas, es decir,

    Para todo i, cuando clk sube => Qi= Di

    En estos elementos solamente se puede almacenar una palabra. Sera interesante el alma-

    cenamiento de varias palabras, por lo que surgieron los registros de desplazamientos(shift

    register). Este tipo de registro es capaz de almacenar ms de una palabra, la cual suele tener un

    tamao de un bit. Un ejemplo de este tipo de registro se muestra en la figura 6.2. A medida que

    se producen transiciones de subida en la seal clk, el dato se va desplazando por los diferentes

    biestables, comportamiento que le ha dado su nombre. Este bloque, con la restriccin de tener

    nicamente como salida la seal Q3, se dice que muestra una arquitectura FIFO(First In First

    Out, es decir, el primer dato que entra es el primero que sale).

  • 7/25/2019 Diseo Secuencial Msi

    2/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica78

    Con esta solucin, si deseamos inicializar el registro de desplazamiento de n bits, necesi-

    taremos n pulsos de la seal de almacenamiento, clk. Este tiempo puede ser demasiado restric-

    tivo, por lo que existen registros de desplazamientos con carga paralela. Estos ltimos pueden

    ser inicializados en un solo ciclo de reloj, independientemente del nmero de bits que tenga el

    registro. Un posible esquema lgico de un registro de desplazamiento con carga paralela puede

    ser el mostrado en la figura 6.3. El funcionamiento de este registro es el siguiente:

    Cuando la seal de control SH/LD se encuentra a nivel bajo, hemos seleccionado la

    carga paralela. Por lo tanto, en el siguiente pulso de la seal de reloj se cumplir que

    todo Qi= Di.

    D

    D0 Q0

    D

    D1 Q1

    D

    D2 Q2

    D

    D3 Q3

    clk

    D0 Q0

    D1 Q1

    D2 Q2

    D3 Q3

    clkC

    Figura 6.1.- Registro de cuatro bits, junto a su smbolo.

    D

    D0Q0

    D

    Q1

    D

    Q2

    D

    Q3

    clk

    D0 Q0

    Q1

    Q2

    Q3

    clkC

    Figura 6.2.- Registro de desplazamiento de cuatro bits, junto a su comportamiento y sm-

    bolo.

    SR

    1 dato 2 dato 3 dato

    1 dato 2 dato

    1 dato 2 dato 3 dato 4 dato

    1 dato

    Q0

    Q1

    Q2

    Q3

    clk

  • 7/25/2019 Diseo Secuencial Msi

    3/36

    TEMA VI: DISEO SECUENCIAL MSI 79

    En cambio, cuando la seal de control SH/LD se encuentre a nivel alto, estaremosseleccionando el desplazamiento hacia la derecha a partir de la seal SER.

    Hasta ahora slo hemos considerado el desplazamiento en un solo sentido. No obstantetambin es interesante obtener un desplazamiento en los dos posibles sentidos. Debido a estareflexin surgi el denominado registro de desplazamiento universal. Este registro muestralas siguientes operaciones:

    Carga paralela,

    desplazamiento hacia la izquierda,

    desplazamiento hacia la derecha y

    no operacin.

    En la figura 6.4 mostramos un posible esquema lgico de este ltimo registro que engloba atodos los dems. En ste se encuentran dos seales de control, S1y S0, necesarias para podercontrolar las cuatro operaciones de las que dispone. En la tabla 6.1 se muestra la codificacinde las seales de control que corresponde a cada una de las operaciones que realiza este tipo deregistro.

    Este registro es utilizado para generar una arquitectura LIFO (Last In First Out, elltimo dato que entra es el primero que sale). Esta arquitectura, tambin denominada pila, escomo un pozo o pila en el que slo podemos acceder al elemento superior, ya sea para colocarotro encima o para sacarlo, como mostramos en la figura 6.5. Por lo tanto, cuando queremos

    escribir en la memoria LIFO, debemos realizar un desplazamiento hacia la derecha; mientrasque si queremos realizar una lectura, debemos realizar un desplazamiento hacia la izquierda

    DD

    D1

    Q0 D Q1 Q2 Q3

    clk

    Figura 6.3.- Registro de desplazamiento con carga paralela de cuatro bits, junto a su smbolo.

    D

    D2 D3D0

    SH/LD

    SER

    D0 Q0

    D1 Q1

    D2 Q2

    D3 Q3

    clkC

    SER

    M1M2

    SH/LD

  • 7/25/2019 Diseo Secuencial Msi

    4/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica80

    para que el biestable accesible (el primero) tenga un dato vlido. Un posible esquema lgico de

    esta arquitectura es mostrado en la figura 6.5. En esta arquitectura es necesario aadir una uni-

    dad de control para detectar posibles situaciones no deseadas, como puede ser el desborda-

    miento (intentar escribir ms informacin de la que se puede almacenar) o intentar leer cuando

    no existe ningn dato almacenado.

    1.2. Contadores.

    Un contador se puede definir de la siguiente forma:

    un contadores un circuito secuencial que realiza una o varias de las siguien-tes funciones:

    - cuenta el nmero de pulsos recibidos y almacena un

    nmero que representa dicha cuenta,

    - proporcionan un tren de pulsos obtenidos a partir de

    la entrada, pero a una frecuencia menor, y

    - proporciona una secuencia de patrones binarios para

    aplicaciones tales como direccionamiento de memoria.

    S1S0 Operacin

    00 No operacin, la salida del biestable permanece constante al tenerla conec-

    tada a la entrada.

    01 Desplazamiento hacia la derecha, la salida del biestable anterior est

    conectado a la entrada del actual.

    10 Desplazamiento hacia la izquierda, la salida del biestable posterior est

    conectado a la entrada del actual.11 Carga paralela, la entrada del biestable est conectado a la entrada paralela.

    Tabla 6.1. Codificacin de las operaciones del registro de desplazamiento universal.

    D

    D1

    Q0

    clk

    Figura 6.4.- Registro de desplazamiento universal.

    D2 D3D0

    SR SER

    3

    2

    1

    0D

    Q1

    3

    2

    1

    0D

    Q2

    3

    2

    1

    0D

    Q3

    3

    2

    1

    0

    S1

    S0

    SL SER

  • 7/25/2019 Diseo Secuencial Msi

    5/36

    TEMA VI: DISEO SECUENCIAL MSI 81

    Consideremos el diseo de un contador de un bit, segn la primera definicin. Eldiagrama de estados con la tabla de transicin de dicho contador ser el mostrado en la figura6.6. Como podemos ver, el prximo estado coincide con el complemento del estado presentepor lo que utilizaremos biestables tipo T, obteniendo el circuito adjunto.

    Si queremos ampliar el contador a un nmero mayor de bits podemos conectar el conta-dor anterior en cascada. Para ello, debemos tener en cuenta que la siguiente cuenta slo se debeproducir cuando la primera haya finalizado, es decir, haya vuelto a cero. Por lo tanto, elsiguiente biestable debe ser disparado por el flanco de bajada. Por homogeneidad del diseo, sedisparan todos los biestables por el flanco de bajada, contado realmente los flancos negativos.

    Un contador de cuatro bits se muestra en la figura 6.7, formado por una conexin en seriede varios biestables T disparados por flancos. Las ecuaciones lgicas correspondientes al com-portamiento de dicho circuito sern las siguientes:

    Q

    clk

    D

    D

    0

    1

    R/W

    D

    0

    1 D

    0

    1 D

    0

    1Unidad

    deControl

    Figura 6.5.- Esquema de operacin y lgico de una arquitectura LIFO.

    Desplazamientohacia la derecha

    Desplazamientohacia la izquierda

    0 1 Estado Entrada

    0 1

    1 0

    Figura 6.6.- Diseo del contador de un bit.

    T

    cuenta

    Q1

    Q0

    D q0

    =

  • 7/25/2019 Diseo Secuencial Msi

    6/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica82

    de donde se obtienen las formas de onda mostradas en la figura 6.7.

    Las seales de salida, Q2 Q1 Q0, coinciden con la codificacin binaria del nmero de pul-

    sos de la seal de entrada (en su flanco de bajada), por lo que se produce la cuenta del nmero

    de pulsos, adems de su almacenamiento. Si nos fijamos en las seales de salida de forma indi-

    vidual, podemos comprobar que Ti = 2i TD, o lo que es lo mismo, Fi = 2

    -i FD, por lo que obte-

    nemos seales que dividen la frecuencia de la seal de entrada. Por lo tanto, este circuito

    cumple la definicin de contador, de hecho estamos ante un contador asncrono (ya que no

    existe una seal global de reloj) o de rizado ascendente. El hecho de denominarse contador de

    rizado es debido a que las transiciones de los diferentes biestables no son simultneas (ya que

    sus seales de control son diferentes); por lo tanto, para llegar al dato estable es necesario pasar

    por un pequeo rizado correspondiente a las diferentes transiciones de los biestables.

    Consideremos ahora una versin del anterior contador de rizado, mostrado en la figura

    6.8. Las ecuaciones lgicas correspondientes al comportamiento de dicho circuito sern lassiguientes:

    de donde se obtienen las formas de onda mostradas en la figura 6.8

    Si nos fijamos, podemos comprobar que la cuenta se realiza en orden inverso, es decir,

    7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0 -> 7

    Q1 q0 q1=

    Q2 q1 q2=

    TD

    Q0 Q1 Q2T T

    D

    Q0

    Q1

    Q2

    Figura 6.7.- Contador asncrono o de rizado ascendente, junto a sus formas de onda.

    Q0 D q0=

    Q1 q0 q1=

    Q2 q1 q2=

  • 7/25/2019 Diseo Secuencial Msi

    7/36

    TEMA VI: DISEO SECUENCIAL MSI 83

    por lo que nos encontramos ante un contador descendente. En esta versin, se sigue mante-niendo la funcin de dividir la frecuencia de la seal de entrada.

    Tambin podemos encontrar contadores bidireccionales, es decir, contadores ascenden-tes y descendentes, integrados en un solo dispositivo. Un ejemplo de estos contadores es mos-trado en la figura 6.9. Cuando la seal U/D se encuentre a nivel alto, estaremos configurando lacuenta como ascendente. En cambio, Cuando la seal U/D se encuentre a nivel bajo, estaremosconfigurando la cuenta como descendente.

    Hasta ahora solamente hemos tratado contadores asncronos, ya que no existe ningunaseal de control global que gobierne todos los biestables.

    A continuacin vamos a considerar el diseo de un contador sncrono de tres bits. El pro-ceso de diseo se muestra en la figura 6.10. De nuevo, y como el estado presente es muy pare-cido al prximo estado, hemos utilizado biestables tipo T. Esta versin es sncrona porquetodos los biestables son controlados por la misma seal. No obstante, la operacin lgica es lamisma que la del contador asncrono. Las principales diferencias, entre ambas versiones, estri-ban en:

    el contador sncrono es ms costoso debido a la presencia de lgica combinacionalque no se encuentra en el asncrono, y

    TD

    Q0 Q1 Q2T T

    D

    Q0

    Q1

    Q2

    Figura 6.8.- Contador asncrono o de rizado descendente, junto a sus formas de onda.

    TD

    Q0 Q1 Q2

    T

    Figura 6.9.- Contador asncrono bidireccional.

    T

    1

    0

    1

    0

    U/D

  • 7/25/2019 Diseo Secuencial Msi

    8/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica84

    muestra un mayor consumo de potencia ya que todos los biestables tienen que realizar

    una operacin en cada flanco de subida de la seal de cuenta (el reloj), mientras que

    en el asncrono, cada biestable slo realiza su operacin en cada flanco de subida (o

    bajada) de la salida anterior. De forma matemtica, el nmero de operaciones ser:

    nN, en el caso sncrono con n pulsos de cuenta y N biestables, y

    n2-i, desde 0 hasta N-1 en el caso asncrono.

    Cuando se dice que estamos ante un contador de mdulo N, dicho contador realiza la

    cuenta desde 0 hasta N-1. Hasta ahora solamente hemos considerado contadores cuyo mdulo

    es potencia de dos. Cuando el mdulo del contador no es potencia de dos, hay que generar el

    mintrmino N con lgica combinacional, para que cuando lleguemos a l podamos inicializar

    todos los biestables a travs de sus terminales de reset e iniciar de nuevo la cuanta. Por ejem-

    plo, si queremos disear un contador asncrono de mdulo 3, necesitaremos como mnimo dosbiestables, ya que 1 < lg23 < 2. Cuando llegue al mintrmino 3, debemos inicializar todos los

    biestables. Podemos comprobar que cuando llegamos a 3, Q1Q0= 11, los dos biestables son

    inicializados pasando inmediatamente (casi instantneamente, el retraso de la puerta AND, que

    genera el mintrmino correspondiente, y la inicializacin de los biestables) a Q1Q0= 00.

    Este caso particular se muestra en la figura 6.10.

    En los contadores tambin podemos encontrar versiones con capacidad de carga paralela,

    situacin necesaria en los contadores descendentes cuyo mdulo no es potencia de dos. Una

    solucin a este problema consiste en modificar los biestables para darle esta nueva funcin. El

    esquema lgico de esta solucin se muestra en la figura 6.12. En funcin de la seal C/L, seproducir la cuenta, si dicha seal est a nivel alto al configurar el biestable como tipo T, o la

    T

    1Q0

    clk

    Q0

    Q1

    Q2

    Figura 6.10.- Contador sncrono ascendente, junto a sus formas de onda.

    T TQ1 Q2

    clk

    0 1 2 3

    7 6 5 4Estado presente Cuenta (= clk)

    000 001

    001 010

    010 011

    011 100

    100 101

    101 110

    110 111

    111 000

  • 7/25/2019 Diseo Secuencial Msi

    9/36

    TEMA VI: DISEO SECUENCIAL MSI 85

    carga paralela, si dicha seal est a nivel bajo al configurar el biestable como tipo D. Otraforma ser utilizando los terminales de set (puesta a 1) o reset (puesta a cero) del biestable.Con esta ltima forma hay que tener cuidado de que ambos terminales sean sncronos para queel cambio de estado siga a la seal de reloj, que coincide con la de cuenta.

    Consideremos ahora el circuito de la figura 6.13. En l podemos ver tres biestables tipoD realimentados a travs de un multiplexor que permite introducir un dato externo al sistema.Este circuito genera una serie de patrones binarios, por lo que entra dentro de la categora decontadores, y al estar basado en los registros de desplazamientos reciben el nombre deconta-dores de desplazamientos. Tambin son conocidos comocontadores anulares o en anillo

    debido a la realimentacin anteriormente mencionada.

    TD

    Q0

    D

    Q0

    Q1

    Figura 6.11.- Contador asncrono ascendente de mdulo 3, junto a sus formas de onda.

    TQ1

    R R

    1

    0

    D

    clk

    T

    D

    Q

    C/L

    Figura 6.12.- Modificacin del biestable tipo T para producir la carga paralela.

    1

    0

    D

    clk

    1 Q0

    C/L

    D Q1 D Q2

    Figura 6.13.- Contador de desplazamiento sin autocorreccin.

    Q1Q2Q3

    1 0 0

    0 1 0

    0 0 1

  • 7/25/2019 Diseo Secuencial Msi

    10/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica86

    Entre las principales caractersticas de estos contadores podemos encontrar las siguien-

    tes:

    Necesitan ms biestables que los estrictamente necesarios, en estos contadores necesi-

    tamos N biestables para un contador de mdulo N. Esta caracterstica provoca que la

    salida no sea la codificacin binaria del nmero de la cuenta.

    Son muy sensibles ante la posibilidad de fallos, por lo que se suele introducir circuite-

    ra de autocorreccin, como podemos ver en la figura 6.14. Podemos comprobar que

    se corrigen los fallos en un mximo de N-1 pulsos de la seal de cuenta, donde N es el

    mdulo.

    Existe un contador de desplazamiento, denominadocontador de Johnson, que muestra

    un mejor aprovechamiento del nmero de biestables. Este contador se muestra en la figura

    6.15. Debido a la realimentacin de la seal complementada Q5, podemos generar el doble de

    estados.

    Debido a que no muestra capacidad de autocorrecin, el ms conocido y utilizado es el

    mostrado en la figura 6.16 que s tiene autocorrecin.La capacidad de contar el doble del

    nmero de biestables, tiene como penalidad de que para determinar su estado hay que gene-

    rarlo con un pequeo decodificador formado por 2N puertas AND de dos entradas, como se

    puede ver en la tabla 6.2.

    En el caso de necesitar contadores de mdulos muy grandes, la tcnica ms empleada es

    la conexin de varios contadores ms pequeos. La manera ms intuitiva de conectar dos con-

    tadores consiste en utilizar como seal de cuenta una seal que nos indique el final de la cuenta

    del primer contador. Por ejemplo, en la figura 6.17 mostramos un contador de mdulo 64 reali-zado con dos contadores de mdulo 8.

    1

    0

    D

    clk

    1 Q0

    C/L

    D Q1D Q2

    Q1Q2Q3

    1 0 0

    0 1 1

    0 0 1

    Q1Q2Q3

    1 0 0

    0 0 0

    1 0 0

    0 1 0

    0 0 1

    Figura 6.14.- Contador de desplazamiento con capacidad de autocorreccin.

    D

    clk

    Q0D Q1

    D Q2 D Q3

    D Q4

    Figura 6.15.- Contador Johnson de mdulo 10 sin autocorreccin.

  • 7/25/2019 Diseo Secuencial Msi

    11/36

    TEMA VI: DISEO SECUENCIAL MSI 87

    Otra forma similar a la anterior consiste en utilizar dos seales que suelen tener todos loscontadores:

    fin de cuenta, que nos indica cuando ha finalizado la cuenta y va a empezar de nuevo,y

    habilitacin de cuenta, que inhibe o desinhibe la cuenta manteniendo el valor anterioralmacenado cuando se inhibe la cuenta.

    En este caso, la conexin sera como se muestra en la figura 6.18.

    D

    clk

    Q0 D Q1

    D Q2 D Q3

    D Q4

    Figura 6.16.- Contador Johnson de mdulo 10 con autocorreccin.

    Q0 Q1 Q2 Q3 Q4 Decodificacin

    0 0 0 0 0 q4q01 0 0 0 0 q

    0q

    11 1 0 0 0 q1q21 1 1 0 0 q2q31 1 1 1 0 q3q41 1 1 1 1 q4q00 1 1 1 1 q0q10 0 1 1 1 q1q20 0 0 1 1 q2q30 0 0 0 1 q3q4

    Tabla 6.2. Salidas del contador Johnson de mdulo 10.

    Q1

    Q2

    Q3

    Q1

    Q2

    Q3

    clk

    Q1

    Q2

    Q3

    Q4

    Q5

    Q6

    Figura 6.17.- Conexin asncrona de dos contadores de mdulo 8 para formar uno de 64.

  • 7/25/2019 Diseo Secuencial Msi

    12/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica88

    2. Diseo secuencial MSI.

    En el diseo de sistemas secuenciales con dispositivos MSI, los elementos almacenado-

    res de informacin podrn ser registros o contadores. La utilizacin de uno u otro depender de

    la adecuabilidad de los cambios de estados a ser realizados con cuenta, es decir, los prximos

    estados sern los siguientes en codificacin a los estados presentes, como sucede:

    1 -> 2 -> 3 -> 4 -> 5

    las transiciones de estados sern simplemente la funcin de un contador.

    2.1. Diseo con registros.

    El diseo MSI con registros coincide con el diseo utilizando biestables tipo D, los cua-

    les son la base de los registros.

    En el caso de utilizar registros de desplazamiento universales, la generacin del prximo

    estado supondr la obtencin de las siguientes seales:

    Seales de control, las cuales seleccionarn la operacin que realizar el registro: des-

    plazamiento hacia la izquierda, desplazamiento hacia la derecha, carga paralela y no

    operacin.

    Entradas de carga paralela, que ser el valor al que debe llegar el registro cuando seproduzca una carga paralela.

    Entrada de datos de desplazamiento (izquierda y/o derecha), que ser el valor que

    tenga que tomar el primer biestable cuando se produzca un desplazamiento.

    2.2. Diseo con contadores.

    En este caso, los cambios de estados son producidos mediante un contador. Por lo tanto,

    las seales para generar el prximo estado que hay que generar sern tres:

    Seal de cuenta, cuando el prximo estado coincide con el nmero siguiente al actual,

    Q1

    Q2

    Q3

    clk

    Q1

    Q2

    Q3

    Q4

    Q5

    Q6

    Figura 6.18.- Conexin sncrona de dos contadores de mdulo 8 para formar uno de 64.

    G fin

    Q1

    Q2

    Q3

    G fin

    clk

    1

  • 7/25/2019 Diseo Secuencial Msi

    13/36

    TEMA VI: DISEO SECUENCIAL MSI 89

    Seal de carga paralela, cuando el prximo estado no es el siguiente nmero ni elmismo. Adems hay que generar los datos de carga paralela para actualizar la infor-macin, y

    Seal de habilitacin, cuando el prximo estado coincide con el actual, ya que no sedebe realizar la cuenta ni la carga paralela.

    3. Diseo RTL

    Ya hemos visto que una de las formas de describir un sistema secuencial, y a partir de ahrealizar el diseo digital que muestra dicho comportamiento, es el diagrama de estados. Noobstante su utilidad est limitada a un nmero relativamente pequeo de estados, o lo que es lomismo, de requerimientos de memoria.

    Si tomamos el ejemplo sencillo de la mquina de refresco, su diagrama (figura 6.19)

    muestra un considerable nmero de estados con la limitacin impuesta de un nico refresco ysin la posibilidad de devolver cambio. Al aadir la funcionalidad de diversificar el nmero derefrescos y devolver cambio, el diagrama de estado aumentara de tal forma que ya no sera tra-table.

    Figura 6.19.- Diagrama de estado correspondiente a la mquina de refresco.

    0 c.

    10 c.

    20 c.

    30 c.

    40 c.

    Refresco

    60 c.

    50 c.

    10 c.

    20 c.50 c.

    B

    10 c.

    20 c.

    50 c.

    B

    10 c.

    20 c.

    50 c.B

    10 c.

    20 c.

    50 c.

    B

    10 c.20 c.

    50 c.

    B

    10 c.

    20 c.50 c.

    B

    10 c.20 c.50 c.

    B

    B

    10 c.

    20 c.

    50 c.

  • 7/25/2019 Diseo Secuencial Msi

    14/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica90

    No obstante, podemos encontrar una descripcin verbal muy simple:

    Se insertan monedas para acumular el importe del refrescoMientras no se haya insertado dicho importe, no se hace nadaCuando haya la cantidad suficiente, devuelve el refresco y la diferencia entrela cantidad acumulada y el precio del refresco.

    Por lo tanto, debe existir otro medio de descripcin para estos problemas con una descripcin

    sencilla, cuya diagrama de estado sea demasiado complejo para manejarlo. Si recapacitamos

    sobre la descripcin verbal anterior, podemos observar que existen operaciones, como la suma

    de las diferentes monedas insertadas y la diferencia entre la cantidad almacenada y el precio

    del refresco seleccionado, que no intervienen en la secuenciacin de las operaciones operacio-

    nes.

    Una forma til de describir estos sistemas ms complejos ser la descripcin de la

    secuenciacin y la manipulacin de los datos de manera bien diferenciada, de tal forma que

    permita un tratamiento separado, as podremos realizar el autmata de control independiente-

    mente de los bloques de procesado utilizados. Esta descripcin es un algoritmo, cuya defini-cin podra ser la siguiente:

    Unalgoritmo es el conjunto ordenado y finito de operaciones que permitehallar la solucin de un problema.

    Esta nueva forma de descripcin se encuentra en un nivel de abstraccin diferente ya que

    utiliza como componentes los dispositivos MSI (tanto combinacionales como secuenciales) y

    no se limita a puertas lgicas y biestables. Este nuevo nivel se denomina transferencia de regis-

    tros o ms comnmente RT (Register Transference). En este caso, la funcionalidad es descrita

    mediante una secuencia de transferencias de registros, la cual se puede definir de la siguiente

    forma:

    Unatransferencia de registros es una transformacin realizada sobre undato mientras es transferido de un registro a otro.

    Esta transferencia necesita la existencia de un secuenciamiento para garantizar la operacin

    correcta. Por lo tanto, un sistema descrito en el nivel RTL se dividir en dos grandes bloques,

    como se muestra en la figura 6.20:

    Procesador. Es el bloque encargado de realizar las transformaciones (procesados) de

    los datos.

    Controlador. Es el bloque encargado de gobernar la secuencia de las operaciones, parala operacin correcta.

    A pesar de posibilitar el diseo de ambos bloques por separado, no podemos olvidar que los

    dos forman un mismo circuito por lo que estarn conectados por las seales de estado, que

    determinarn la situacin en la que se encuentra la operacin, y las seales de control, que

    habilitarn la operacin necesaria en cada instante.

    3.1. Procesador

    Como ya se ha comentado, el procesador (que algunos autores tambin denominan ruta

    de datos) es el bloque encargado de realizar las diferentes operaciones con los datos. Para ello

    necesitaremos cuatro tipos de seales:

  • 7/25/2019 Diseo Secuencial Msi

    15/36

    TEMA VI: DISEO SECUENCIAL MSI 91

    entradas de datos

    salidas de datos

    seales de estado, las cuales indicarn la situacin o estado de la operacin entre losdatos que se est realizando en cada momento

    seales de control, las cuales activarn la operacin que se debe realizar en cadamomento.

    En este bloque podemos encontrar unidades de almacenamiento (para datos y condicio-nes), unidades de procesado (para las operaciones de los datos) y unidades de camino de datos(para la direccin correcta de los datos a lo largo del algoritmo). Segn estas unidades, pode-mos clasificar los sistemas RTL en:

    Sistemas con recursos no compartidos. Cada unidad funcional realiza nica y exclusi-

    vamente una operacin.

    Sistemas con recursos compartidos. Cada unidad funcional puede realizar varias ope-raciones, con la nica limitacin de que deben ejecutarse en diferentes ciclos de ope-racin. Esta situacin se lleva al extremo en los sistemas unimdulos, en los queexiste un nico mdulo que lleva a cabo todas las operaciones.

    3.2. Controlador

    El controlador es el bloque encargado de gobernar la secuencia correcta de operaciones

    del sistema. Por lo tanto, podremos tener cuatro tipos de seales: entradas de control

    salidas de control

    seales de estado, las cuales indicarn la situacin o estado de la operacin entre losdatos que se est realizando en cada momento

    seales de control, las cuales activarn la operacin que se debe realizar en cadamomento.

    Las entradas y salidas de control por excelencia son las seales de inicio y fin de operacin, las

    cuales pueden ser seales especficas, o depender de las entradas de datos (como sucede en lamquina de refrescos en la que la inicializacin comienza con la insercin de la primera

    CONTROLADOR PROCESADOR

    seales de control

    seales de estado

    entradasde control

    salidasde control

    salidasde datos

    entradasde datos

    Figura 6.20.- Estructura interna de un sistema visto desde el nivel RTL.

  • 7/25/2019 Diseo Secuencial Msi

    16/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica92

    moneda). Por ltimo, la seales de comunicacin con el procesador deben estar presentes en

    ambos bloques, es decir, las seales de estado y de control.

    Con respecto al gobierno de la secuencia de operaciones, se llevar a cabo con un aut-

    mata finito, como situacin ms habitual. Este gobierno o control puede ser realizado como:

    Control centralizado. Este tipo se da cuando existe un nico controlador que gobiernatodas las operaciones del sistema.

    Control descentralizado. Este tipo se da cuando cada unidad funcional tiene su propio

    controlador. La coordinacin entre todos ellos se realiza a travs del cableado.

    Control semicentralizado. Este tipo es similar al control descentralizado. La diferen-

    cia entre ambos radica en que la coordinacin es realizada por un controlador central

    que gobierna al resto de controladores.

    3.3. Diagramas ASM (Algorithmic State Machine)

    Un diagrama ASM es un medio de representacin grfico/textual de un algoritmo, tal que

    permite describir ciclo a ciclo el funcionamiento con temporizacin sncrona y control centra-

    lizado. En el caso de optar por un control descentralizado o semicentralizado, se debera reali-

    zar el particionado del sistema segn la descentralizacin requerida con los subsiguientes

    diagramas ASM. Un ejemplo de diagrama algortmico se muestra en la figura 6.21.

    El algoritmo descrito por el diagrama anterior realiza las siguientes operaciones:

    Mientras que no se seleccione ningn refresco, se deben ir acumulando las monedas.

    Cuando se seleccione un refresco, se obtiene la diferencia entre la cantidad de dinero

    almacenada y el precio del refresco seleccionado.

    Si dicha diferencia es negativa, se deben seguir acumulando monedas.

    Si la diferencia no es negativa, se expulsar el refresco, devolver dicha diferencia e

    inicializar la cantidad almacenada a cero.

    En el diagrama anterior podemos ver dos componentes fundamentales de los diagramas

    ASM: cajas de estado y de seleccin; a los que habra que aadir un tercer componente: cajas

    de condicin o condicionales. Los tres componentes, cuya apariencia se muestra en la figura

    6.22, tienen las siguientes funciones:

    Cajas de estado. Este componente especifica las transferencias que se deben realizar

    en un nuevo ciclo de operacin. Esta transferencia puede ser un simple almacena-

    miento o un procesado con almacenamiento.

    Caja de seleccin. Este componente especifica una determinada condicin que deter-

    minar la siguiente accin a realizar. Por lo general, esta condicin ser el resultado

    de una comparacin, aunque puede ser una seleccin entre ms de dos valores.

    Cajas de condicin. Este componente especifica la transferencia que se realizar en

    funcin de una determinada condicin, por lo que siempre estarn despus de una caja

    de seleccin. La diferencia con las cajas de estado radica en que las cajas de condicin

    sern evaluadas en el mismo ciclo de operacin, mientras que en las cajas de estado laasignacin se realizar en el siguiente ciclo.

  • 7/25/2019 Diseo Secuencial Msi

    17/36

    TEMA VI: DISEO SECUENCIAL MSI 93

    Bloques ASM. Todos los elementos anteriores se agruparn segn el ciclo de opera-cin donde sean realizados. Estas agrupaciones son los denominados bloques ASM.

    Todos estos componentes se agruparn en diferentes bloques ASM, los cuales especifican

    cantidad = cantidad + moneda

    Seleccin

    de refresco

    A = cantidad - precio

    A >= 0

    expulsar refrescodevolver A

    Figura 6.21.- Ejemplo de diagrama algortmico.

    no

    si

    no

    si

    cantidad = 0

    Operacin osalida del registro

    Caja de estados

    Operacin osalida del registro

    Caja de condicin

    Condicin

    Caja de seleccin

    Figura 6.22.- Componentes de los diagramas ASM.

  • 7/25/2019 Diseo Secuencial Msi

    18/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica94

    todas las acciones realizadas en un mismo ciclo de operacin, por lo que irn de una caja de

    estado a otra. Estos bloques se identifican con los estados de los autmatas finitos. Las propie-

    dades que muestran dichos bloques son las siguientes:

    En su interior tiene que haber una nica caja de estado, y puede que mltiples cajas de

    seleccin y/o condicionales. Esta necesidad es debida a que cada caja de estado reali-

    zar su operacin en un nuevo ciclo, es decir, en ciclos diferentes. Esta caja de estadospuede estar vaca, como veremos posteriormente.

    Hay un solo punto de entrada (la caja de estado) y mltiples puntos de salida.

    Cada seal slo puede ser asignada una vez por bloque, con el fin de evitar conflictos.

    Esto no quiere decir que no puedan aparecer ms de una vez, ya que podemos encon-

    trar dos asignaciones tras una caja de seleccin puesto que se realizar nicamente

    uno de los dos.

    Una vez que conocemos los diferentes componentes de un diagrama ASM y las propie-

    dades que cumplen, ya estamos en disposicin de generar uno de ellos. No obstante, de formaprevia, debemos tener en cuenta una serie de pautas, entre las que podemos destacar:

    Los estados y transiciones del controlador se especifican grficamente.

    Las transferencias se especifican mediante objetos y operadores.

    Las transferencias realizadas en un mismo ciclo no pueden tener conflictos en el uso

    de recursos, es decir, una misma unidad no puede estar realizando dos operaciones

    diferentes en el mismo ciclo de operacin.

    El periodo de reloj viene determinado por el camino combinacional con mayor

    retraso.

    El diagrama est formado por uno o ms bloques ASM y una tarjeta declarativa, la

    cual especifica:

    Nombre, anchura y codificacin de seales y puertos

    Estado inicial del sistema y valor inicial de las seales y puertos

    Direccin de los puertos

    No tiene puntos de entrada ni de salida

    Toda salida de un bloque ASM debe estar conectado a la entrada de otro.

    Veamos como ejemplo de diagrama ASM, el algoritmo de multiplicacin utilizando

    sumas sucesivas con el nmero mnimo de ciclos. La operacin comenzar con un pulso de la

    seal inicio y se indicar la finalizacin cuando se active la seal acabado. Los operandos se

    introducirn por los puertos A y B y el resultado se leer por el puerto total. El diagrama se

    muestra en la figura 6.23.

    En primer lugar vamos a identificar el tipo de seales segn el esquema genrico de un

    sistema RTL mostrado en la figura 6.20. Podemos identificar las siguientes seales:

    Entradas de control, son seales de entrada sobre las que no se realiza ningn proce-

    sado sino que intervienen para un cambio de estado. En este caso tenemos la sealini-

    cio.

    Salidas de control, son seales de salida que identificarn un determinado estado, el

  • 7/25/2019 Diseo Secuencial Msi

    19/36

    TEMA VI: DISEO SECUENCIAL MSI 95

    ms comnmente utilizado es el estado de finalizacin de la operacin. En este casotenemos la seal acabado.

    Entradas de datos, son seales de entrada sobre las que se realizar el procesado opor-tuno. En este caso tenemos las sealesAy B.

    Salidas de datos, son seales de salida en las que estarn almacenadas el resultadofinal de la operacin cuando lo indiquen las salidas de control. En este caso tenemosla seal total.

    Seales de estado, son seales internas del procesador que determinarn los posibles

    total

  • 7/25/2019 Diseo Secuencial Msi

    20/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica96

    cambios de estados para el siguiente ciclo de operacin. Estas seales sern salidas de

    alguna operacin que se encuentren en las cajas de seleccin. En este caso tenemos

    las salida de la comparacin entre los dos operandos, y la salida de la comparacin

    entre el operando menor (almacenado en min) y el 0.

    Seales de control, son seales internas del controlador para gobernar la operaciones

    de los diferentes bloques del procesador. Por lo tanto, hasta que no se decidan qucomponentes tendr el procesador, no podremos definir este tipo de seales.

    Seguidamente vamos a estudiar el significado de cada estado y la razn de su inclusin

    en el diagrama:

    El estado E0 es el estado de inicio donde se chequear la seal inicio para dar

    comienzo a la operacin

    El estado E1 determinar cul de los operandos es el mayor para almacenarlo en el

    registro correspondiente. Esta accin es necesaria para que el nmero de ciclos (que

    ser funcin del nmero de sumas sucesivas a realizar) sea mnimo; ya que dicha con-dicin slo se cumplir cuando se sume el operando mayor.

    El estado E2 es el encargado de realizar la multiplicacin, es decir, las sumas sucesi-

    vas. El nmero de estas sumas ser igual al operando menor.

    Por ltimo, el estado E3 activar la seal acabado, indicando la finalizacin de la ope-

    racin y que el resultado se encuentra en total.

    Por ltimo vamos a comentar algunas caractersticas de los diagramas ASM tomando

    como base el diagrama anterior. En dicho diagrama podemos identificar los tres componentes

    que podemos encontrar en cualquier diagrama: cajas de estado, de seleccin y de condicin.

    As mismo podemos ver la tarjeta declarativa (recuadro con la esquina truncada) y los diferen-tes bloques ASM (o estados del controlador, identificados por los recuadros punteados). Otro

    dato a destacar es la existencia de cajas de estado vacas (como se mencion anteriormente);

    las cuales pueden venir determinadas porque no se deba realizar ninguna transferencia o algu-

    nas seales deban ser asignadas a valores diferentes en funcin de una condicin. En nuestro

    ejemplo vemos dos cajas vacas, en los estados E1 y E2. En el caso del estado E1, la caja de

    estado debe estar vaca ya que las seales internas del procesador de los operandos mximo y

    mnimo pueden estar conectadas a puertos diferentes; mientras que en el caso del estado E2, la

    caja debe estar vaca ya que se deber asignar a totalun nuevo valor (si es necesario realizar

    ms sumas) o no tendr ninguna asignacin (si ya se han hecho todas las sumas). La existencia

    de cajas de condicin implica que la seal totaldepender directamente del valor de una seal

    de estado, y no de un bloque ASM; por lo tanto, esta situacin implicar que el autmata

    correspondiente pertenecer a la categora de Mealy.

    3.4. Flujo de diseo RTL

    Hasta ahora, se ha visto cmo podemos describir un determinado algoritmo utilizando un

    diagrama ASM, pero no podemos perder de vista que el fin ltimo es llegar al sistema lgico

    que implementa dicho comportamiento.

    El flujo de diseo RTL (secuencia de actuaciones para obtener el sistema lgico) difiere

    del flujo basado en los diagramas de estados en que se implementan por separado dos subsiste-mas: procesador y controlador. Este nuevo flujo se muestra en la figura 6.24.

  • 7/25/2019 Diseo Secuencial Msi

    21/36

    TEMA VI: DISEO SECUENCIAL MSI 97

    Como en la mayora de los flujos de diseo, el punto de partida es la especificacin deldiseo a realizar. En estas especificaciones se deben indicar la funcionalidad del diseo, unesquema de puertos, una descripcin del algoritmo (lo ms detallada posible) y una especifica-cin del protocolo de comunicaciones.

    Todas la informacin suministrada en las especificaciones es descrita en forma dediagrama ASM para un tratamiento ms adecuado. De esta forma, la determinacin de losmdulos del procesador y el comportamiento del controlador (su diagrama de estados) se faci-

    lita en gran medida.Por lo general, las operaciones del diagrama ASM son componentes lgicos (ya sean

    puertas bsicas o dispositivos MSI) que estn directamente accesibles, como pueden ser com-paradores, sumadores/restadores, contadores o registros de desplazamiento. As, la composi-cin del procesador es directa. En el caso de que exista una operacin que no tenga asociada uncomponente, por ejemplo una multiplicacin, habr que implementar un componente paradicha operacin, pero de forma aislada del diseo global facilitando as la tarea a travs delparticionado del problema. Como el diagrama tambin nos indica la secuencia que debenseguir las operaciones, tambin nos da idea del conexionado de dichos mdulos, aunque no seacompletamente directo.

    Con respecto al controlador, los bloques ASM identificados en el diagrama determinarn

    ESPECIFICACININFORMAL

    DIAGRAMA ASM

    ESPECIFICACIN Y

    DE LOS MDULOS

    OBTENCIN DELDIAGRAMA DE ESTADOS

    DEL CONTROLADOR

    CONEXIONADO

    DEL PROCESADOR

    UNIN DE PROCESADORY CONTROLADOR

    Figura 6.24.- Flujo de diseo RTL.

    Y DISEO LGICO

  • 7/25/2019 Diseo Secuencial Msi

    22/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica98

    el diagrama de estados del autmata que har la funcin de controlador. As mismo, el

    diagrama ASM tambin identificar las seales de estado provenientes del procesador y las

    seales de control externas (que determinarn los cambios de estado). A pesar de que el con-

    trolador apenas tenga dependencia del procesador, es necesario identificar los mdulos del pro-

    cesador previamente al controlador para conocer las salidas de control que el controlador debe

    generar. Una vez que tenemos en cuenta todos estos detalles, el diseo lgico del controladorse limita al diseo de un autmata finito como se vio en el tema 4.

    Por ltimo, se lleva a cabo la conexin entre los diferentes componentes del controlador

    y procesador. Tras esta tarea tendremos un circuito digital que implementa toda la funcionali-

    dad del diagrama ASM.

    3.4.1. Optimizacin del procesador

    No podemos perder de vista que una de las metas fundamentales del diseo es la optimi-

    zacin de los principales parmetros, entre los que se encuentran el coste y el rea. Por lo tanto,el nmero de mdulos del procesador deber tender al mnimo con la consecuente utilizacin

    de sistemas con mdulos compartidos. No obstante, la mejora en el nmero de componentes

    funcionales puede llevar asociada un empeoramiento en otros parmetros como puede ser la

    velocidad (al aumentar el retraso de la lgica combinacional). Para ello, debemos abordar dos

    situaciones:

    Reuso de unidades funcionales, de tal forma que se reduzca el nmero y coste de las

    unidades requeridas para ejecutar todas las operaciones del diagrama ASM. Esta

    situacin es posible siempre y cuando existan dos operaciones de la misma naturaleza

    en ciclos de operacin diferentes; as slo deberemos seleccionar las entradas oportu-

    nas en cada ciclo.

    Reuso de unidades de almacenamiento, de tal forma que se reduzca el nmero de uni-

    dades para almacenar todos los resultados, parciales y finales, de un diagrama ASM.

    Esta situacin es posible siempre y cuando existan dos resultados que no convivan en

    los mismos ciclos; as slo deberemos seleccionar las entradas oportunas en cada

    ciclo.

    Veamos un ejemplo de esta reutilizacin. En la figura 6.25 mostramos una parte de un

    diagrama ASM. En esta porcin, cada caja de estados forma un bloque ASM, es decir, un

    estado del controlador. Por lo que podramos solapar todas las operaciones comunes. En este

    caso tendramos como operaciones: sumas (en los estados E5 y E6), resta (en el estado E7) y el

    valor mximo (en el estado E8). Por lo tanto, con un solo mdulo, un sumador/restador,podramos realizar tres operaciones diferentes ya que se realizan en ciclos diferentes, mientras

    que el valor mximo se debera implementar con un mdulo diferente.

    Para determinar las entradas correctas en cada instante, se seleccionan con multiplexores

    (u otros elementos con una funcionalidad equivalente, como pueden ser buses o dispositivos

    triestado), cuyas seales de seleccin vendrn determinadas por el estado en el que estn, es

    decir, por el controlador. Por este motivo es preciso definir el procesador antes que el controla-

    dor. Para el caso de las salidas no es preciso un demultiplexor, sino habra que manipular las

    habilitaciones de los registros; pero se ha elegido ese esquema por claridad en el dibujo.

    Con respecto a la reutilizacin de las unidades de almacenamiento, este hecho slo es

  • 7/25/2019 Diseo Secuencial Msi

    23/36

    TEMA VI: DISEO SECUENCIAL MSI 99

    posible si no existe solapamiento temporal de los datos. Por lo tanto, si suponemos que losdatos no se van a utilizados en el resto del diagrama (excepto las entradasA, By C), podemos

    observar que la vida de los siguientes datos coincide con la mostrada en la tabla 6.2. La seal Rdebe tener un tiempo de vida correspondiente a los estados E5, E6 y E7 (aunque no se necesiteen E6, se debe mantener almacenada ya que es necesaria en E7), la seal Dlo tendr corres-pondiente a E6, E7 y E8, la seal Jlo tendr correspondiente a E7 y E8, y la seal Hlo tendrcorrespondiente a E8. Luego es necesario un total de tres registros para almacenar D, Jy otroms que ser utilizado por Ry H, ya que son las nicas seales que no estn solapadas en eltiempo. Para introducir el dato correcto en el registro se acta igual que con los mdulos delprocesador, es decir, utilizando multiplexores cuya seleccin ser controlada por el controla-dor.

    3.5. Ejemplo de diseo RTL

    Para terminar de afianzar los contenidos expuestos vamos a realizar el proceso completocon un mismo problema.

    E5 E6 E7 E8

    R X X X

    D X X X

    J X X

    H X

    Tabla 6.2. Ciclos de operacin donde son vlidos cada seales del diagrama de la figura 6.25.

    R

  • 7/25/2019 Diseo Secuencial Msi

    24/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica100

    3.5.1. Especificaciones del diseo

    El sistema sobre el que se realizar el diseo se muestra en la figura 6.26, de tal forma

    que se controlar el nivel de un tanque de lquido. En ella podemos distinguir el esquema del

    tanque y sus operaciones. Por lo tanto, tenemos dos seales de control,C1yC0, que determina-

    rn la operacin que hay que realizar y el detector de nivel del tanque, N, que nos indicar lacapacidad de llenado en cualquier instante de tiempo. As mismo, tendremos una entrada ms,

    denominadaR, para un llenado preciso, y dos seales de control adicionales, inicioy parada,

    para el comienzo de la operacin y una parada de emergencia.

    La operacin deber empezar por un pulso de la seal deinicio. Tras lo cual, comenzar

    la operacin determinada por las seales de control de operacin. Esta operacin se deber

    mantener hasta que cambien las seales de control de operacin, o bien si se pulsa la seal

    parada. En el caso de que se pulse la seal parada, el sistema deber ir a un estado inicial de

    espera, del cual saldr con un pulso de la seal inicio. En el caso de que hayan cambiado las

    seales de control de operacin, el sistema, despus de realizar la operacin previa, deber rea-

    lizar la nueva operacin.

    Consideraciones:

    Tanto el detector de nivel como el nivel de llenado preciso debern estar codificados

    en binario natural.

    Las seales deentradaysalidason tales que tomarn el valor 1 cuando dejen pasar

    el lquido (llave abierta) y 0 cuando no dejen pasar el lquido (llave cerrada).

    3.5.2. Diagrama ASM

    El sistema de control descrito con las especificaciones anteriores puede ser descrito con

    el diagrama ASM de la figura 6.27. En este diagrama podemos distinguir seis bloques ASM,

    que vamos a analizar a continuacin.

    Detectordeniv

    el

    salida

    entrada

    0 0 --> No operacin

    0 1 --> Vaciado1 0 --> Llenado1 1 --> Nivel = R

    C1C0--> Operacin

    Figura 6.26.- Esquema de un controlador de nivel de un tanque de lquido.

  • 7/25/2019 Diseo Secuencial Msi

    25/36

    entrada

  • 7/25/2019 Diseo Secuencial Msi

    26/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica102

    El estado E0 ser el estado de inicio, de tal forma que mientras no exista un pulso en la

    seal inicio, el sistema permanecer en dicho estado abriendo ambas llaves de paso para man-

    tener el mismo nivel de lquido.

    El estado E1 decidir qu operacin se deber realizar en funcin de los valores de las

    seales de control de operacin,C

    1yC

    0. El sistema permanecer en este mismo estado mien-tras la codificacin de control de operacin es 00.

    El estado E2 es el estado de operacin de vaciado. Slo se podr sacar al sistema de este

    estado en dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o

    cambiar el cdigo de las seales de control de operacin, en cuyo caso deber ir al estado

    correspondiente a la nueva operacin.

    El estado E3 es el estado de operacin de llenado. Slo se podr sacar al sistema de este

    estado en dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o

    cambiar el cdigo de las seales de control de operacin, en cuyo caso deber ir al estado

    correspondiente a la nueva operacin.

    El estado E4 es el estado de operacin de llenado preciso, por lo que el nivel del tanque

    debe tender a un nivel fijado por el puerto R. Slo se podr sacar al sistema de este estado en

    dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o cambiar el

    cdigo de las seales de control de operacin, en cuyo caso deber ir al estado correspondiente

    a la nueva operacin.

    Finalmente, el estado E5 es el estado al que se llega desde cualquier estado de operacin

    (E2, E3 o E4) si ya se ha cumplido la operacin correspondiente. De esta manera, no se podr

    alterar el nivel del tanque.

    3.5.3. Mdulos y conexionado del procesador

    El sistema que queremos disear se trata de un controlador, por lo que su mayor parte

    estar formado por el controlador. Luego el procesador estar formado por los bloques necesa-

    rios para las diferentes tomas de decisin, y no para el procesado de las seales.

    En nuestro caso particular, el procesador estar formado por comparadores, necesarios

    para tomar las decisiones oportunas. En el diagrama observamos tres comparaciones:

    Nivel del tanque con el nivel 0, en el caso de la operacin de vaciado.

    Nivel del tanque con el nivel mximo, en el caso de la operacin de llenado.

    Nivel del tanque con el nivel de llenado preciso, en el caso de la operacin de llenado

    preciso.

    Luego, una posible opcin sera utilizar tres comparadores con sus correspondientes entradas.

    No obstante, esta eleccin no sera ptima en cuestin de recursos ya que ninguna compara-

    cin coincide en el tiempo con las otras. As que consideraremos un nico comparador con las

    entradas multiplexadas segn la operacin en curso. El esquema del procesador sera el mos-

    trado en la figura 6.28.

    La opcin elegida ser til a nuestro sistema en el caso de que los requerimientos de

  • 7/25/2019 Diseo Secuencial Msi

    27/36

    TEMA VI: DISEO SECUENCIAL MSI 103

    velocidad nos permita mantener el retraso correspondiente a la conexin anterior, es decir, unmultiplexor con un comparador. En caso contrario deberemos volver a este punto y continuar

    con otra opcin ms recomendada para las especificaciones.

    3.5.4. Controlador

    Para realizar el diseo del controlador, debemos obtener en primer lugar el diagrama deestado correspondiente. Para ello, basndonos en el diagrama ASM, utilizamos los diferentesbloques ASM como estados del controlador. Las entradas del controlador sern las entradas decontrol (inicio,parada,C1 yC0), y las seales de estado del procesador (las salidas del compa-

    rador); en cambio las salidas del controlador sern las salidas de control (entrada y salida) ylas salidas de control del procesador (las seales de seleccin para el multiplexor que determi-

    nar las entradas del comparador). El diagrama de estados es mostrado en la figura 6.29.

    a>ba=baBA=BA, 01, 0

    not ba=baBA=BA

  • 7/25/2019 Diseo Secuencial Msi

    32/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica108

    Estado en el que se encuentra el controlador

    Entrada del comparador (ent_comp)

    Resultado de la comparacin (comparacin)

    Seal de la llave de entrada

    Seal de la llave de salida

    Seal de reloj del sistema

    En el caso de las comparaciones slo se ha identificado los valores en aquellos estados en los

    que se utiliza su valor; en el resto de los estados, al no tener ninguna relevancia, no se han indi-

    cado ni el valor de la entrada ni el del resultado de la comparacin.

    Podemos apreciar que se han incluido la mayora de las situaciones en las que se puede

    encontrar el sistema: inicio, parada y cualquiera de las operaciones, finalizadas o sin finalizar.

    Segn el diagrama podemos ver que la operacin de parada slo se realizar cuando est che-

    queando las seales de control de operacin, y no cuando est realizando un paso de la opera-cin, luego puede que se debiera dejar activa esta seal hasta que se llegue al estado E0. En el

    caso de que quisiramos activar la parada desde cualquier estado deberamos modificar el

    diagrama ASM, tal que en cada bloque ASM se incluya la caja de seleccin de parada.

    Con respecto a las especificaciones de caracterizacin, no se ha indicado ninguna. A

    modo de ejemplo vamos a analizar una especificacin de retraso. Para garantizar la operacin

    correcta se debe verificar que el tiempo necesario para el cambio de valor en el detector de

    nivel sea superior al retraso del sistema para que no exista efecto rebote. En el caso de no veri-

    ficarse esta especificacin, deberamos ir a implementaciones con retraso menor, pero a costa

    de incrementar los recursos; o la utilizacin de una llave con un caudal menor (por lo que elcambio de los sentidos de las comparaciones requerirn un tiempo mayor).

    4. Temporizadores.

    Dentro de la mayora de los circuitos secuenciales, hacemos uso de seales de reloj, o en

    su defecto, de seales peridicas. Estas seales han sido tratadas hasta el momento como sea-

    les externas a nuestro sistema, y por tanto, no hemos considerado su generacin. No obstante,

    su generacin es funcin de sistemas secuenciales (que no entraran dentro de la definicin

    dada en esta asignatura) denominados genricamente temporizadores. Una definicin ms for-

    mal de stos puede ser la siguiente:

    Un temporizadores aquel sistema capaz de volver a un estado inicial des-pus de un determinado espacio temporal, segn se cumpla una determi-nada situacin particular.

    Consideremos el comportamiento del circuito mostrado en la figura 6.33. Cuando la

    seal A se encuentra a nivel bajo, la salida est a nivel alto. En cambio, cuando la seal A se

    encuentra a nivel alto, la salida cambia de estado cada vez que transcurre el retraso del inversor

    y de la puerta AND. Por lo tanto, encontramos una situacin en la que se vuelve al estado ante-

    rior despus de que transcurra un determinado tiempo (valor analgico, por lo que el circuito

    cae fuera de la definicin de circuito secuencial) aunque no se produzca ningn cambio en lasseales de entrada. Cuando estos circuitos carecen de seales de entrada, reciben el nombre de

  • 7/25/2019 Diseo Secuencial Msi

    33/36

    inicio

    parada

    C1

    C0

    nivel

    estado

    ent_comp

    comparacin

    entrada

    salida

    reloj

    E3E1E3E1E3E5E1E3E5E1 E0E1E0 E1E4E1E4E3

    RRmaxmaxmaxmaxmax

    ===

  • 7/25/2019 Diseo Secuencial Msi

    34/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica110

    generadores de impulsos ya que no realizan ninguna otra funcin lgica.

    Los temporizadores pueden clasificar en dos grandes grupos: temporizadores no reali-

    mentados y temporizadores realimentados. En los temporizadores no realimentados, la depen-

    dencia temporal viene determinada por un elemento de retraso, como se puede apreciar en la

    figura 6.34. Cuando la seal de entrada A toma el valor lgico alto, existe un espacio temporal,

    determinado por , en el que las dos entradas de la puerta AND tienen el valor lgico alto, apa-

    reciendo en la salida un pulso de nivel bajo cuya duracin es aproximadamente el tiempo intro-ducido por el elemento de retraso. Bsicamente podemos decir que este tipo de circuitos

    aprovechan las situaciones tpicas de los azares de la lgica combinacional. Los elementos de

    retraso pueden ser formados de muy diversa forma, como pueden ser redes analgicas RC o un

    nmero par de inversores conectados en cascada.

    En el caso de temporizadores realimentados, estamos ante circuitos secuenciales asncro-

    nos que operan en el modo fundamental, por lo que el almacenamiento de la informacin se

    realiza por realimentacin directa. En este caso, el tiempo de los pulsos estar condicionado

    por elementos de retraso explcitos y/o los retrasos de la lgica del circuito en cuestin. Un

    ejemplo de este tipo de temporizadores es el mostrado en la figura 6.33. Si nos centramos en

    los generadores de impulsos, la caracterstica fundamental es que carecen de estados estables,

    por lo que tambin reciben el nombre de circuitos astables. La idea consiste en lograr un cir-cuito cuya funcin lgica sea de la forma:

    Q = q

    el cual no tendr ningn estado estable. La forma ms directa de obtener dicha funcin lgica

    ser la conexin en cascada de un nmero impar de inversores, como se muestra en la figura

    6.35. El problema de este generador de impulsos consiste en el poco control existente en el

    periodo de la seal obtenida. Este periodo ser ntinv, donde n es el nmero de inversores

    conectados en cascada y tinves el retraso de un inversor. El retraso de cada inversor va a depen-

    der de multitud de factores, entre los que se encuentra la tecnologa de fabricacin. Adems, el

    retraso es diferente para cada transicin, por lo que la seal tender a ser asimtrica.

    AQ

    Q

    A

    Figura 6.33.- Temporizador formado por una puerta AND y un inversor.

    AQ

    Q

    A

    Figura 6.34.- Temporizador no realimentado.

  • 7/25/2019 Diseo Secuencial Msi

    35/36

    TEMA VI: DISEO SECUENCIAL MSI 111

    Para tratar de minimizar este problema en la mayor medida de lo posible, generalmentese introducen elementos de retraso cuyo valor sea muy superior al de los inversores. Con estamedida se logran dos objetivos:

    Minimizar la dependencia con la tecnologa, ya que al ser despreciables los retrasosde los inversores, tambin lo sern sus variaciones.

    Tener un mayor control de los periodos de los impulsos, ya que el retraso es comn a

    todas las transiciones, y muestra un rango de variacin menor que el de un inversor.Por lo tanto, en la FIGURA se muestra un posible esquema de un generador de impulsos conelementos de retraso.

    Q

    Figura 6.35.- Generador de impulsos construido mediante inversores.

    Q

    Figura 6.36.- Generador de impulsos construido mediante inversores y elementos deretraso.

  • 7/25/2019 Diseo Secuencial Msi

    36/36

    Dpto. Ingeniera Electrnica de Sistemas Informticos y Automtica112