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.
Top Related