Diseño Secuencial Control

22
2.2 DISEÑO DE CIRCUITOS SECUENCIALES SINCRONICOS 2.2.1 INTRODUCCION Cuando se requiere diseñar un circuito digital es necesario aplicar alguna técnica de diseño, así, en el caso del diseño de circuitos combinacionales la técnica es mediante una tabla de verdad, que en esencia es la herramienta de diseño, en el caso de los circuitos secuenciales una de las herramientas de diseño es el diagrama de estados. 2.2.2 EL DIAGRAMA DE ESTADOS Un diagrama de estados se define como, “un gráfico, una figura formada por símbolos especiales, como óvalos o círculos y segmentos de recta dirigidos que describen gráficamente el comportamiento o funcionamiento de un circuito o máquina secuencial ”, en el proceso de diseño se construye primero un diagrama de estados y luego se implementa mediante circuitería digital ese diagrama, el análisis es el proceso inverso, a partir de un circuito digital se construye el diagrama de estados que como ya se dijo describe el funcionamiento de un circuito. En la figura 2.1 se puede apreciar un estado con las partes que lo conforman, su símbolo es un ovalo, o más común suele ser un circulo, en este libro se utiliza el ovalo, físicamente o a nivel de circuitería digital un estado es un ciclo de reloj, un estado queda identificado por un nombre y un código, en la figura 2.1 el nombre es a, y el código es 1010, el número de bits del código depende del número de estados diferentes que contenga un diagrama de estados, así, si hay 2 estados se requiere un bit, un estado tendría el código 0 y el otro el código 1, si existen 4 estados se necesitan dos bits, y los códigos de los estados podrían ser 00,01,10,11, para representar 6 estados se requieren 3 bits y los códigos podrían ser: 000,001,010,011, 100,101 y sobrarían dos, en general el numero de estados diferentes que se pueden generar con n bits es: 2 n , en donde n es el numero de bits, si hay 12 estados se requieren al menos 4 bits, 2 4 = 16, de las 16 posibilidades se utilizaran 12, quedando 4 libres. Símbolo o nombre del estado: a Código del estado:1010

description

Diagramas de Estados

Transcript of Diseño Secuencial Control

2.2 DISEO DE CIRCUITOS SECUENCIALES SINCRONICOS

2.2.1 INTRODUCCION

Cuando se requiere disear un circuito digital es necesario aplicar alguna tcnica de diseo, as, en el caso del diseo de circuitos combinacionales la tcnica es mediante una tabla de verdad, que en esencia es la herramienta de diseo, en el caso de los circuitos secuenciales una de las herramientas de diseo es el diagrama de estados.

2.2.2 EL DIAGRAMA DE ESTADOS

Un diagrama de estados se define como, un grfico, una figura formada por smbolos especiales, como valos o crculos y segmentos de recta dirigidos que describen grficamente el comportamiento o funcionamiento de un circuito o mquina secuencial, en el proceso de diseo se construye primero un diagrama de estados y luego se implementa mediante circuitera digital ese diagrama, el anlisis es el proceso inverso, a partir de un circuito digital se construye el diagrama de estados que como ya se dijo describe el funcionamiento de un circuito.

En la figura 2.1 se puede apreciar un estado con las partes que lo conforman, su smbolo es un ovalo, o ms comn suele ser un circulo, en este libro se utiliza el ovalo, fsicamente o a nivel de circuitera digital un estado es un ciclo de reloj, un estado queda identificado por un nombre y un cdigo, en la figura 2.1 el nombre es a, y el cdigo es 1010, el nmero de bits del cdigo depende del nmero de estados diferentes que contenga un diagrama de estados, as, si hay 2 estados se requiere un bit, un estado tendra el cdigo 0 y el otro el cdigo 1, si existen 4 estados se necesitan dos bits, y los cdigos de los estados podran ser 00,01,10,11, para representar 6 estados se requieren 3 bits y los cdigos podran ser: 000,001,010,011, 100,101 y sobraran dos, en general el numero de estados diferentes que se pueden generar con n bits es: , en donde n es el numero de bits, si hay 12 estados se requieren al menos 4 bits, = 16, de las 16 posibilidades se utilizaran 12, quedando 4 libres. Smbolo o nombre del estado: aCdigo del estado:1010

Figura 2.1 Representacin de un estado.

En la figura 2.2 se ve la representacin fsica de un estado, en cada estado una mquina debe realizar alguna accin.

voltiosEstado

Estado

Estado

Estado

Estado

Tiempo (segundos)

Figura 2.2 Representacin fsica de un estado.

Por otro lado en la figura 2.3 se ve un diagrama de estados con sus diferentes partes, los segmentos de rectas dirigidas indican un cambio o paso de un estado a otro, o incluso el retorno al mismo estado, las entradas normalmente definen cual es el estado al que se va a cambiar desde el estado presente o estado de inters, en cada estado tambin se puede generar una salida o un grupo de salidas, debe notarse que el valor de las entradas definen cual debe ser el estado siguiente, por ejemplo en la figura 2.3, estando en el estado presente a, o estado de inters, ciertos valores de las entradas permitirn que el siguiente estado al a, sea el b, y otros valores de entradas en el estado a, conducirn al estado c, o inclusive puede ser que el siguiente estado sea el mismo.

a000b001c010Estradas/salidasEstradas/salidasEstradas/salidasEstado presente a, o estado de inters.Estado b, siguiente al estado aEstado c, siguiente al estado aEstado siguiente al estado presente a

Figura 2.3 Un diagrama de estados.

En la figura 2.4, se puede observar un ejemplo de un diagrama de estados, se suele utilizar un formato para especificar las entradas y salidas, as, por ejemplo, si se tiene dos entradas w, z, y tres salidas c, v, n, el formato F= entras/salidas es F= wz/cvn, o a nivel de bits, F= 01/110 este es el que utiliza en los diagramas de estados como se ve en la figura 2.5.

Ejemplo 2.1: Disee un circuito secuencial sincrnico que genere el siguiente cdigo: 00, 01, 10,11, cuando la entra x es verdadera de lo contrario debe generar el cdigo anterior pero en sentido inverso, es decir del 11 al 00, el circuito secuencial sincrnico debe censar la seal x solo al inicio del diagrama de estados.

Solucin: Primero es necesario siempre hacer un diagrama de bloques que represente al sistema que se quiere disear, este diagrama se ve en la figura 2.6.

Circuito secuencial sincrnico

CLKEntrada xASalidas

B

Figura 2.6 Diagrama de bloques.

El diagrama de estados se construye partiendo de un estado cualesquiera, por ejemplo el estado que se le llama a en la figura 2.7, y de acuerdo a las condiciones del ejercicio solo aqu se pregunta por el valor de la entrada x, si x=1 se genera el cdigo 00, 01, 10,11 en A y B, de lo contrario se genera el cdigo 11, 10, 01, 00, en A y B, como se ve en la figura 2.7.

a

b

c

d

1/00 /11 /01 /10e

f

g

0/11 /10 /01 /00

Figura 2.7 Diagrama de estados para el circuito del ejercicio 2.1.

Note en la figura 2.7 que se utiliza el smbolo para indicar la condicin no importa, es decir puede ser un1 lgico o un 0 lgico, observe que de acuerdo a las condiciones del diseo solo se debe preguntar por la entra x al inicio, de ah que en el resto de los estados la entrada x es una condicin no importa, x= simblicamente.

Ejemplo 2. Disee un contador binario de tres bits solo realice el diagrama de estados.

Solucin: Primero es necesario hacer un diagrama de bloques que represente al sistema que se quiere disear, este diagrama se ve en la figura 2.8. Como es un contador de 3 bits, el sistema debe tener 3 salidas que se van a llamar, x, y, z, como no hay ninguna entrada (excepto el CLK) esta se convierte en una condicin no importa, el diagrama de bloques se indica en la figura 2.8 y el diagrama de estados en la 2.9.

Contador de 3 bits

CLKXYz

Figura 2.8 Diagrama de bloques.

Son ocho estados diferentes y por lo tanto se requieren 3 bits para representar a cada estado, puesto que , el diagrama de estados inicia en el estado a en la figura 2.9, aqu se pregunta por el estado de la entrada pero como no existe una entrada externa se representa por la condicin no importa, as, en el estado a, como no hay entradas solo se generan las salidas 000, y la maquina va al estado b, en b no se pregunta por ninguna entrada, se generan las salidas 001 y la mquina va al estado c, en c no hay entradas pero se debe generara las salidas 010, as se continua con este procedimiento en forma indefinida

a

b

c

d

/000 /001 /010g

f

e

/111 /101 /100 /110h

/011

Figura 2.9 Diagrama de estados para el circuito del ejercicio 2.2.

Ejemplo 2.3: Disee un dispositivo que saque el complemento a dos de un nmero de 3 bits.

Solucin: Se crea el diagrama de bloques que se indica en la figura 2.10, se supone que los bits a complementarse ingresan uno a uno y con cada ciclo del reloj, y en la salida est el valor complementado, x es la entrada y z es la salida, ahora hay que elegir el algoritmo mediante el cual se va a obtener el complemento a dos de un nmero, se elige el algoritmo que examina el nmero desde el bit menos significativo, se busca el primer uno, este se deja como esta y el resto de los bits se complementan, as, si el nmero es 011, su complemento es 101.

Circuito que obtiene el complemento a dos

CLK

Figura 2.10 Diagrama de bloques para el ejemplo 2.3

En la figura 2.11 se indica el diagrama de estados, se parte de un estado llamado a, en este se pregunta por la entrada si es 0 se sigue un camino y si es 1 se elije otro.

abcde0/00/00/01/11/11/00/10/11/01/1

figura 2.11 Diagrama de estados para el ejemplo 2.3

2.2.3 IMPLEMENTACION DE DIAGRAMAS DE ESTADOS

Para implementar un diagrama de estados se debe definir qu tipo de mquina se va a disear, es decir una mquina:

Clase A o mquina Mealy.Clase B o mquina Moore.Clase C o mquina Moore sin decodificador de salidas.Clase D o memoria de Look up.Clase C.

En la seccin 1.6 se definieron las diferentes mquinas, por lo tanto haciendo referencia a esa seccin, cada mquina tiene su propia estructura de 3 bloques que son el decodificador de estado siguiente, el decodificador de salidas, y el bloque de memoria que est conformado por algn tipo de FlipFlop, as, en realidad se debe disear dos de los 3 bloques puesto que los Flip-Flops son circuitos ya conocidos y lo nico que hay que hacer es elegir uno de ellos, los bloques que deben ser diseados son del tipo combinacional y por ende la herramienta de diseo es la tabla de verdad.

Ejemplo 2.4: Disee un circuito secuencial sincrnico clase B o mquina de Moore, que genere el siguiente cdigo: 00, 01, 10,11, cuando la entra x es verdadera de lo contrario debe generar el cdigo anterior pero en sentido inverso, es decir al revs, la seal x debe ser censada por el sistema solo al inicio, use Flip-Flops tipo D para implementar el bloque de memoria.

Solucin: El diagrama de bloques es el que se indica en la figura 2.12, el diagrama de estados est indicado en la figura 2.13.

Decodificador del estado siguiente ?

Decodificador de salidas.Salidas A B ?

Qa Qb QcEntradax

Figura 2.12 Diagrama de bloques para el ejercicio 2.4

Son 7 estados diferentes por lo tanto se requieren 3 Flip-Flops tipo D, a saber, Da, Db, Dc, el mapa de estados se ve en el mapa 2.1.

aDaDbDc000

b001c011

d010

1/00 /11 /01 /10e100

f101

g110

0/11 /10 /01 /00

Figura 2.13 Diagrama de estados

Da Db Dc

00

01

11

10

0acge

1bdf

Mapa 2.1 Mapa de estados

De la figura 2.12, la tabla de verdad para el diseo del decodificador de estado siguiente y de salidas es como se indica en la tabla 2.1.

QaQbQcxQa+1Qb+1Qc+1DaDbDcAB

000010010011

000100100100

001001101101

001101101101

010000000011

010100000011

011001001010

011101001010

100010110110

100110110110

101011011001

101111011001

110000000000

110100000000

1110

1111

Tabla 2.1 Combinaciones posibles para los decodificadores.

Ejemplo 2.5: Disee un circuito secuencial sincrnico clase B o mquina de Moore, que detecte el cdigo: 110 en 3 muestras consecutivas, use Flip-Flops tipo D para implementar el bloque de memoria.

Solucin: El diagrama de bloques es el que se indica en la figura 2.14, el tipo de maquina en la figura 2.15 y el diagrama de estados est indicado en la figura 2.16.

En la figura 2.14 se supone que los bits ingresan uno a uno y con cada ciclo del reloj por la entrada X, el bit ms significativo primero el circuito analiza la cadena de bits y debe encender la salida Y cada vez que la secuencia pedida es detectada Decodificador del estado siguiente ?

Decodificador de salidas.Salidas A B ?

Qa Qb QcEntradax

Figura 2.13 Diagrama de bloques para el ejercicio 2.5

aQaQbQc000

b001c011

1/00 /11 /00 /00/01/0

Figura 2.13 Diagrama de estados

Da Db Dc

00

01

11

10

0ac

1b

Mapa 2.1 Mapa de estados

De la figura 2.12, la tabla de verdad para el diseo del decodificador de estado siguiente y de salidas es como se indica en la tabla 2.1.

QaQbQcxQa+1Qb+1Qc+1DaDbDcY

00000000000

00010010010

00100000000

00110110110

01000

01010

01100000001

01110010010

10000

10010

10100

10110

11000

11010

1110

1111

Tabla 2.1 Combinaciones posibles para los decodificadores.

Ejemplo 2.6: Disee un circuito secuencial, que obtenga el complemento a 2 de un nmero de 3 bits, cada bit ingresa al circuito con cada pulso del CLK, el bit menos significativo llega primero, use Flip-Flops tipo D para implementar el bloque de memoria.

Solucin: El diagrama de bloques es el que se indica en la figura 2.15, el tipo de maquina en la figura 2.16 y el diagrama de estados est indicado en la figura 2.17.

Decodificador del estado siguiente ?

Decodificador de salidas.Salidas A B ?

Qa Qb QcEntradax

Figura 2.13 Diagrama de bloques para el ejercicio 2.5

aQaQbQc000

b001c011

0/01 /10/01/1d010e110

0 /11 /01/10/00 /11 /0

Figura 2.13 Diagrama de estados

Da Db Dc

00

01

11

10

0ade

1bc

Mapa 2.1 Mapa de estados

De la figura 2.12, la tabla de verdad para el diseo del decodificador de estado siguiente y de salidas es como se indica en la tabla 2.1.

QaQbQcxQa+1Qb+1Qc+1DaDbDcY

00000010010

00010100101

00100110110

00110100101

01001101101

01011101100

01100000000

01110000001

1000

1001

1010

1011

11000000001

11010000000

1110

1111

Tabla 2.1 Combinaciones posibles para los decodificadores.

Ejemplo 2.7: Disee un circuito secuencial, que divida la frecuencia del CLK para 2.

Solucin: Tomando como referencia el diagrama de bloques de la figura 2.16, se puede ver que si se realimenta la seal /Q hacia la entrada D la salida Q va en forma alternante de 0 a 1 y de 1 a 0 con cada pulso del CLK, el diagrama en el dominio del tiempo se puede apreciar en la figura 2.17.

D Q

CLK /Q

Figura 2.16 diagrama de bloques del F/F D.

CLK

Estado

Estado

Estado

Estado

Q

Tiempo (segundos)

Figura 2.2 Representacin fsica de un estado.

Ejemplo 2.8: Disee un circuito secuencial, que divida la frecuencia del CLK para 4.

Solucin: Tomando como referencia el diagrama de bloques de la figura 2.16, se puede ver que si se realimenta la seal /Q hacia la entrada D la frecuencia de la salida Q se divide para 2 por tanto si la salida Q se conecta a la entrada del CLK del otro bloque la frecuencia de la salida Q2 sera /2 es decir , aade otro bloque en cascada la frecuencia se seguir dividiendo para 2 gura 2.17.

D Q

CLK /Q /QD Q

CLK /Q /Q

( /2 =

Figura 2.16 diagrama de bloques del F/F D.

Ejemplo 2.9: para el ejercicio anterior encuentre la relacin matematica entre la frecuencia y el numero de flip- flop.

Solucin: si la salida Q de cada Flip-Flop en cascada divide la frecuencia por dos como se indica en la tabla :

Numero de Flip-Flop en cascada123456789

Frecuencia de la salida Q dcada Flip-Flop

O la tabla anterior se puede escribir de la siguiente manera.

Nmero de Flip-Flop en cascada1234567..N

Frecuencia de la salida Q dcada Flip-Flop

De la tabla anterior se deduce que la frecuencia de la salida Q del Nsimo Flip-Flop esta dado por:

Ejemplo 2.10: se puede decir que el circuito del ejercicio anterior es secuencial sincrnico?.

Solucin: Es un circuito secuencial pero debido a que el CLK no es comn a todos los Flip-Flops se podra decir que desde el punto de vista del CLK es asincrnico, es decir es un circuito secuencial con reloj asincrnico.

Ejemplo 2.11: Se puede aplicar la tcnica de diagramas de estado para analizar o disear circuitos como el del ejercicio anterior?.

Solucin: No porque la tcnica que se est estudiando solo es aplicable cuando los relojes de los Flip-Flops estn todos conectados a un solo reloj que es el reloj del sistema, es decir hay un solo reloj para todo el sistema.

2.2.4 CONTADORESUn contador es un circuito secuencial que pasa por un numero de estados predeterminados.

Los contadores son utilizados para: 1. Generar un cdigo en sus salidas cada vez que se hace verdadera una cierta seal de entrada.2. Contar y almacenar el nmero de veces que una seal de entrada se ha hecho verdadera.3. generar retardos de tiempo.

Una forma de clasificar a los contadores es tomando encuenta los siguientes parmetros:

1. El nmero de bits de salida, ejemplo contador de 2 bits, este tiene dos lneas de salida una para cada bit.2. El nmero de estados por los que atraviesa, por ejemplo si el diagrama de estados del contador tiene 6 estados es un contador mdulo 6.3. La secuencia que genera.4. Sincrnico o asincrnico.5. Por el modo de operacin, modo simple o multimodo.

Los contadores suelen especificarse por los siguientes parmetros:

1. Modo de operacin.2. Nmero de bits de salida.3. Nmero de mdulo.4. Tipo de cdigo.

Por ejemplo se puede tener un contador de modo simple, 3 bits de salida, mdulo 6, o 6 estados, cdigo binario.

El diagrama general de bloques de un contador de modo simple es el que se indica en la figura .

Como se puede observar el diagrama es parecido al de una maquina clase C pero sin entradas externas en el decodificador de estado siguiente.

Ejemplo 2.12: Haga el diagrama de estados de un contador de modo simple, 3 bits de salida, modulo 5, contador binario.

Solucin: El diagrama de estados se muestra en la figura2.19. y el diagrama de bloques general en la figura 2.18.

Decodificador del estado siguiente

Elemento de MemoriaFlip-Flops CLK

salidas

Figura 2.17. Diagrama de bloques de un contador de modo simple.

ContadorClk A B C

Figura 2.18. Diagrama de bloques general del contador.