Está en la página 1de 20

DISEO SECUENCIAL: CONTADORES Y REGISTROS

1. Diseo secuencial con biestables D, T, y J-K


El procedimiento es el mismo para los tres casos: 1. Disponer del diagrama de transicin de estados. 2. Obtener la tabla de la verdad de las transiciones compuesta por las variables de entrada (los valores de las bsculas en el estado inicial), las variables de salida (los valores de las bsculas en el estado final), los valores necesarios en las entradas de cada bscula para obtener el estado final y los valores de las variables de salida. 3. Obtener el circuito.

Diseo con bsculas D


Hay que tener en cuenta que en una bscula D el valor de la salida Q sigue siempre al valor de la entrada D cuando entra el impulsos de reloj. Por lo tanto la entrada D ser siempre igual al del valor de la Q final que se quiera obtener.

Ejemplo: Variable Estado Estado Variable entrada inicial final salida x y Qn Qn+1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 Entrada a bscula D 1 0 1 0

1/1

0/0

S0
0/0

S1

1/0

x
Tras simplificar:
D=x

y = xiQ

2 3

D CLK

Q Q

1 4 2 1 3

Diseo con bsculas T


Hay que tener en cuenta que la respuesta de una bscula T es:
Entrada T 0 1 Salida La salida no cambia La salida bascula

Ejemplo:
0/1

1/0

S0
0/0

S1

1/0

Variable Estado Estado Variable entrada inicial final salida x y Qn Qn+1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0

Entrada a bscula T 1 0 0 1

Tras simplificar:

T=x

y = x iQ = x iQ = x + Q
x
2

U4 2 1 1 2 3 NOT T CLK Q Q 1 4 3

Diseo con bsculas J-K


Hay que tener en cuenta que la respuesta de una bscula JK es:
Estado inicial Estado final Respuesta de la bscula No cambiar o Poner a 0 Cambiar o Poner a 1 Cambiar o Poner a 0 No cambiar o Poner a 1 Entrada J 0 0 0 1 1 1 1 X 0 0 X 1 0 1 0 0 0 1 1 1 1 X Entrada K 0 X

Ejemplo:
0/1

1/0

S0
0/0

S1

1/0

Variable Estado Estado Variable entrada inicial final salida x y Qn Qn+1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0

Entrada a bscula J K 1 X 0 X X 0 X 1

x
Q

x
X 0

x
0 X

X 1

J=x

1 X

K=x

x
Q

x
0 0

1 0

y = x iQ
x
2 1 1 12 4 J CLK K Q 2 2 1 3 Q 3

Representacin, sntesis y anlisis Matriz funcional


Matriz que recoge los estados iniciales el la columna de la izquierda, los estados finales en la lnea superior y en los cuadros de la matriz se representan los valores de las variables que provocan la transicin entre los estados iniciales y los finales

Q0 M ( x0 ) Q0 Q0 Estado inicial
Para el caso de diseo con bsculas D: 0

Q0
1

Estado final
0+1=1 La suma de todos los elementos de cada fila = 1

x0

x0

x0 + x0 = 1

El valor de D se obtendr tomando las celdas que provocan que Q se ponga a 1 y realizando la suma de los productos entre las bsculas del estado inicial y el valor que se encuentre en las celdas citadas: D = Q0 i1 + Q0 i x = Q0 + Q0 i x = (Q0 + Q0 )i(Q0 + x ) = Q0 + x Para el caso de diseo con bsculas JK:

El valor de J se obtendr de tomar las celdas que provocan que Q pase de 0 a 1 El valor de K se obtendr de tomar las celdas que provocan que Q estando a 1 siga a 1 y posteriormente se invertir dicho valor de K. De esta manera (J=1 y K=0) se consigue que la bscula se ponga a 1 independientemente de si anteriormente era 0 1. J = Q0 i1 = Q0 K = Q0 i x K = Q0 i x = x + Q0

Ejemplo con bsculas JK: Matriz funcional Estado inicial


Columna

Estado final

0 00 0
x0 x1 + x0 i x1 x0 i x1 x0 x1

1 01 1 0
x0 x1 x0 x1

2 10 0 0
x0 x1 x0 x1

3 11 0
x0 x1 + x0 x1 x0 x1 x0 i x1

Q1Q0

Fila 0 1 2 3

00 01 10 11

mij celda de fila i y columna j Se puede apreciar que la matriz est bien ya que la suma de cada una de las lneas da como resultado 1.

Obtencin de

J0 :
J 0 = Q1 iQ0 (1 + 0) + Q1 Q0 ( x0 x1 + x0 x1 )

Se tomarn las celdas que provocan que Q0 pase de 0 a 1. m01, m03, m21 y m23

Obtencin de

K0 :

Se tomarn las celdas que provocan que Q0 siga a 1 del estado inicial al final y luego se invertir el resultado obtenido. m11,m13,m31,m33

K 0 = Q1 iQ0 (0 + x0 x1 + x0 x1 ) + Q1Q0 ( x0 x1 + x0 i x1 ) K 0 = Q1 iQ0 (0 + x0 x1 + x0 x1 ) + Q1Q0 ( x0 x1 + x0 i x1 )

Obtencin de

J1 :
J1 = Q1 Q0 (0 + 0) + Q1Q0 (0 + x0 x1 + x0 x1 )

Se tomarn las celdas que provocan que Q1 pase de 0 a 1. m02, m03, m12 y m13

Obtencin de

K1 :

Se tomarn las celdas que provocan que Q1 siga a 1 del estado inicial al final y luego se invertir el resultado obtenido. m22,m23,m32,m33

K1 = Q1 Q0 ( x0 x1 + x0 x1 ) + Q1Q0 ( x0 x1 + x0 i x1 ) K1 = Q1 Q0 ( x0 x1 + x0 x1 ) + Q1Q0 ( x0 x1 + x0 i x1 )
El siguiente paso consiste en simplificar cada una de las funciones e implementar el circuito.

Anlisis:
El anlisis consiste en obtener la matriz funcional y/o el diagrama de etapas a partir de un circuito determinado. Para estudiar el procedimiento vamos a partir del ejemplo del problema correspondiente al examen de Junio del 2003.

2. Analice el circuito secuencial de la figura, presentando el resultado del anlisis mediante las expresiones lgicas correspondientes, la matriz funcional y el diagrama de transicin de estados.

En primer lugar obtendremos las funciones correspondientes a cada variable (Di e y) a partir del esquema suministrado:

DA = x1 + QA
Matriz funcional

DB = x1 i x2 iQB + ( x1 + x2 )QB
Estado inicial Estado final

y = (QA + QB ) x2 + x1

QBQA
00 01 10 11

00

01

10

11

m00 m10 m20 m30


mij

m01 m11 m21 m31

m02 m12 m22 m32

m03 m13 m23 m33

celda de fila i y columna j

El clculo de cada una de las celdas se efectuar: 1. La funcin de la fila de cada celda se obtendr de sustituir las Qm por su valor correspondiente a las variables del estado inicial. 2. La funcin de la columna de cada celda se obtendr de sustituir las Qm por su valor correspondiente a las variables del estado final.

DA = x1 + QA

DB = x1 i x2 iQB + ( x1 + x2 )QB

Funciones de la fila 0 m0

Estados iniciales

QBQA = 00

DA = x1 + QA = x1 + 0 = x1

DB = x1 i x2 iQB + ( x1 + x2 )QB = x1 i x2 i0 + ( x1 + x2 )1 = ( x1 + x2 )
Estados finales

m00 = DB i DA m01 = DB i DA m02 = DB i DA


m03 = DB i DA
Funciones de la fila 1 m1

m00 = DB i DA = ( x1 + x2 )i x1 = x1 i x1 i x2 = x1 i x2 m01 = DB i DA = ( x1 + x2 )i x1 = x1 i x1 i x2 = 0 m02 = DB i DA = ( x1 + x2 )i x1 = x1 i x1 + x1 i x2 = x1 i x2


m03 = DB i DA = ( x1 + x2 )i x1 = x1 i x1 + x1 i x2 = x1

Estados iniciales

QBQA = 01

DA = x1 + QA = x1 + 1 = 1

DB = x1 i x2 iQB + ( x1 + x2 )QB = x1 i x2 i0 + ( x1 + x2 )1 = ( x1 + x2 )
Estados finales

m10 = DB i DA m11 = DB i DA m12 = DB i DA m13 = DB i DA


Funciones de la fila 2 m2

m10 = DB i DA = ( x1 + x2 )i1 = 0 m11 = DB i DA = ( x1 + x2 )i1 = ( x1 + x2 ) = x1 i x2 m12 = DB i DA = ( x1 + x2 )i 1 = 0 m13 = DB i DA = ( x1 + x2 )i1 = x1 + x2

Estados iniciales

QBQA = 10

DA = x1 + QA = x1 + 0 = x1

DB = x1 i x2 iQB + ( x1 + x2 )QB = x1 i x2 i1 + ( x1 + x2 )0 = x1 i x2
Estados finales

m20 = DB i DA

m20 = DB i DA = x1 i x2 i x1 = ( x1 + x2 ) x1 = x1 x2 m21 = DB i DA = x1 i x2 i x1 = ( x1 + x2 ) x1 = x1 m22 = DB i DA = x1 i x2 i x1 = x1 i x2 m23 = DB i DA = x1 i x2 i x1 = 0

m21 = DB i DA m22 = DB i DA m23 = DB i DA

Funciones de la fila 3 m3

Estados iniciales

QBQA = 11

DA = x1 + QA = x1 + 1 = 1

DB = x1 i x2 iQB + ( x1 + x2 )QB = x1 i x2 i1 + ( x1 + x2 )0 = x1 i x2
Estados finales

m30 = DB i DA m31 = DB i DA m32 = DB i DA m33 = DB i DA


Matriz funcional

m30 = DB i DA = x1 i x2 i0 = 0 m31 = DB i DA = x1 i x2 i1 = x1 + x2 m32 = DB i DA = x1 i x2 i0 = 0 m33 = DB i DA = x1 i x2 i1 = x1 i x2


Estado inicial Estado final

QBQA
00 01 10 11
Suma de fila 0:

00
x1 i x2
0

01
0

10
x1 i x2
0

11
x1 x1 + x2
0

x1 i x2 x1 x1 + x2

x1 x2
0

x1 i x2
0

x1 i x2

fila0 = ( x i x ) + 0 + x i x
1 2 1

+ x1 = x1 ( x2 + x2 ) + x1 = x1 + x1 = 1

Suma de fila 1:

fila1 = 0 + x i x
1

+ 0 + x1 + x2 = ( x1 + x1 )i( x1 + x2 ) + x2 = x1 + x2 + x2 = 1

Suma de fila 2:

fila2 = x x

1 2

+ x1 + x1 i x2 + 0 = ( x1 + x1 )i( x1 + x2 ) + x1 i x2 = x1 + x2 + x1 i x2 = ( x1 + x1 )i( x1 + x2 ) + x2 = x1 + x2 + x2 = 1

Suma de fila 3:

fila3 = 0 + ( x + x ) + 0 + x i x
1 2 1

= ( x1 + x1 )i( x1 + x2 ) + x2 = x1 + x2 + x2 = 1

Se puede comprobar que la matriz es correcta ya que la suma de cada lnea da como resultado el nivel 1

EXAMENES

Junio del 2000

Usar el procedimiento general de autmatas finitos con PLDs y biestables D para disear un circuito que representa el siguiente diagrama de transiciones de estados:

SOLUCIN:

Tabla de la verdad de las transiciones


N ORDEN

Variables entrada

Estado inicial

Estado final

Variable salida

Entrada a bscula

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

x2
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Q1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Q0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Q1 + 1
0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1

Q0 + 1
0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1

y1
0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0

y2
0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0

D1
0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1

D0
0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1

Tener en cuenta que al ser bscula D, a la entrada D habr que meter el mismo valor que el que se quiera obtener en Q

Logigrama:

x1 x2 Q1 Q0
2 2 2 3 1 3 1 3 1 3 2 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 2 U4 OR2 U4 OR2

X X X X X X X X X X X X X X X X X X X X
2 U4 OR2 1 1 1

X X X X X X X X X X X X X X
2 U4 OR2 1 3 U5 DFF 2 U5 DFF 1 Q D CLK

X X

X X

Reloj
3 CLK D 1 Q 2

y1

y2

Q1

Q0

Junio del 2002

SOLUCIN:

Tabla de la verdad de las transiciones Variable entrada Variable salida

N orden

Estado inicial

Estado final

Entradas a bscula

x1
0 4 1 5 2 6 3 7 0 1 0 1 0 1 0 1

Q1
0 0 0 0 1 1 1 1

Q0
0 0 1 1 0 0 1 1

Q1 + 1
0
1 0

Q0 + 1
0 0 1 0 0 1 1 1

y1
0 1 0 1 1 1 0 0

J1
0 1 0 1 X X X X

K1
X X X X 0 0 0 0

J0
0 0 X X 0 1 X X

K0
X X 0 1 X X 0 0

1 1
1 1 1

Hay que tener en cuenta que la respuesta de una bscula JK es:


Estado inicial 0 Estado final 0 0 1 0 1 1 1 1 0 0 0 1 1 1 X 0 X 1 0 0 1 0 1 1 Entrada J 0 0 1 1 X Entrada K 0 X

Q1

Q1

Q 0 Q0 Q0 Q 0 x
0 4 1 5 3 7 2 6

x
Q1 Q1

Q1

Q1

Q1

Q1

Q 0 Q0 Q0 Q 0 x
0 1 0 1 X X X X

Q 0 Q0 Q0 Q 0 x
X X X X 0 0 0 0

Q 0 Q0 Q0 Q 0 x
0 0 X X X X 0 1

J1 = x

K1 = 0

J 0 = xQ1

Q1

Q1

Q1

Q1

Q 0 Q0 Q0 Q 0 x
X X 0 1 0 0 X X

Q 0 Q0 Q0 Q 0 x
0 1 0 1 0 0 1 1

K0 = xQ1

y = Q1 Q0 + xQ1

1 3

1 12

J CLK K

Q0

1 12

J CLK K

Q1

2 1 3 4 Q 2 4 Q 2

Reloj
2 1 3 2 3

y
1

CONTADORES
Los contadores son circuitos secuenciales capaces de recorrer una secuencia previamente especificada de estados. Reciben un tren de impulsos y responden con una sucesin de estados correspondientes a la representacin en binario del nmero de impulsos recibidos desde que se inici el ciclo. Las bscula que componen el contador no cambian de estado exactamente al mismo tiempo, dado que no comparten el mismo impulso de reloj. Hay una relacin temporal fija entre s. Todas las bsculas que componen el contador reciben en el mismo instante la seal de reloj y por lo tanto cambian (si han de cambiar) en el mismo instante.

Asncronos Tipos de contadores Sncronos

Contadores asncronos: Compuestos por bsculas JK con J=K=1 (bsculas T) de forma que la entrada de reloj entra en la primera bscula (bit de menor peso) y el reloj del resto de las bsculas es la salida Q de la bscula anterior. Esto provoca el sentido asncrono del contador, ya que cuando entra el impulso de reloj a la primera bscula esta empieza a bascular, pero la siguiente no bascular hasta que no lo haya hecho la anterior. Este efecto provoca una reaccin que se va aadiendo de bscula a bscula y por lo tanto el tiempo de cambio de un estado al otro puede ser el resultado de acumular los tiempos de transicin del nmero de bsculas que intervienen en dicho cambio.

Contadores descendentes: Para configurar contadores con sentido descendente hay dos posibilidades: 1. Tomar un contador ascendente y tomar las salidas de la Q . 2. Tomar la entrada de reloj de cada bscula de la salida Q de la bscula anterior.

Contador reversible

Para x=1 seleccionamos la entrada de reloj de cada bscula de la salida Q de la bscula anterior, por lo tanto se comporta como un contador ascendente. Para x=0 seleccionamos la entrada de reloj de cada bscula de la salida Q de la bscula anterior, por lo tanto se comporta como un contador descendente. Contadores de diferentes bases y divisores de frecuencia: Hay dos formas de implementar contadores binarios de diferentes bases: 1. Resetear todo el contador cuando el nmero binario al que llega contando es el de la base que se quiere conseguir. Ello provoca la puesta a cero del contador y el inicio de un nuevo ciclo. 2. Poner a 1 todas las bsculas del contador mediante el Preset cuando se llega al nmero de la base al que se quiere llegar menos 1 (base-1). Ello provoca que el contador llega al mximo de su capacidad de cuenta y de esta manera con el siguiente impulso de reloj se provoca su puesta a 0 y consiguiente inicio de ciclo de cuenta. La implementacin de divisores de frecuencia bsicamente consiste en implementar contadores cuya base ser el nmero por el que se quiere dividir la frecuencia.

Estado inestable

Contadores sncronos:

Inconvenientes de los contadores asncronos

La frecuencia mxima de trabajo depende de la suma de los retardos que introducen los biestables que lo componen. Los estados estables no se alcanzan siempre al mismo tiempo

Estos inconvenientes se solucionan utilizando contadores sncronos, en los cuales el reloj de entrada se conecta a la entrada de reloj de todas las bsculas, de forma que la transicin de ellas se produce en funcin de los valores que se introduzcan en sus entradas de datos. De esta manera cuando el contador adquiere un estado (estable) posiciona las entradas de las bsculas antes de que se produzca la entrada del siguiente ciclo de reloj. Cuando esta aparezca todas, las bsculas comenzarn simultneamente el proceso de cambio (si es que se ha de producir segn los valores de sus entradas). El proceso de diseo de los contadores sncronos no deja de ser un caso concreto del diseo de circuitos secuenciales con bsculas estudiado anteriormente. Ya que partimos de un diagrama de estados en el que se representan los diferentes estados de cuenta del contador y debemos de seguir los pasos de diseo analizados en los apartados anteriores. A pesar de lo indicado se puede configurar un contador binario natural sncrono de una manera un tanto estandar. Se pueden implementar con bsculas JK con las dos entradas unidas a 1 (bsculas T) de forma que los relojes de todas las bsculas estn unidos entre s y a la seal del reloj de entrada. En el caso de un contador ascendente: cada una de las entradas JK de cada bscula a una puerta AND de todas las salidas Q de las bsculas de pesos inferior. En el caso de un contador descendente: cada una de las entradas JK de cada bscula a una puerta AND de todas las salidas Q de las bsculas de pesos inferior.

REGISTROS DE DESPLAZAMIENTO
Un registro es circuito digital con dos funciones bsicas: Almacenamiento de datos. Movimiento de datos. Con tales funciones una cuestin elemental es el modo de introducir y el modo de sacar dicha informacin. Teniendo en cuenta que hay dos maneras de manipular los datos: serie/paralelo; ello da lugar a tener diferentes configuraciones de registros en funcin de la entrada y la salida de dichos datos: Entrada serie / Salida serie. Entrada serie / Salida paralelo. Entrada paralelo / Salida serie. Entrada paralelo / Salida paralelo.

La implementacin de los registros parte de dos premisas elementales: 1) Estarn compuestos por tantas bsculas D como bits queramos almacenar o manipular. 2) Segn el modo de carga o desplazamiento: a) En el caso de una entrada paralelo, cada bit de entrada que queramos introducir se deber conectar a cada una de las entradas de cada bscula del registro. b) En el caso de una entrada serie o un desplazamiento, cada entrada de cada bscula deber ir conectada a la salida de la bscula inmediatamente inferior y de la cual deber recoger el bit que se quiere desplazar.

Funcionamiento de un registro de desplazamiento

Registro de desplazamiento SN74195 con posibilidad de entrada serie o paralelo y salida serie y paralelo.

EXAMENES
Hay numerosas preguntas tericas referentes a contadores asncronos, sncronos y registros de desplazamiento

Junio del 2003 / Septiembre del 2001


1. Resumen de los problemas propios de los contadores asncronos. 2. Explicar, para el caso de tres bits, cmo resuelve estos problemas un contador sncrono. 3. Sntesis con JK de un contador reversible de 3 bits.
Diagrama de estados

S0
0

S1
0

S2
0

S3
0

S4
0

S5
0

S6
0

S7

Tabla de la verdad de las transiciones Variable entrada

N orden

Estado inicial

Estado final

Entradas a bscula

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

Q2
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Q1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Q0
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

Q2 + 1
1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0

Q1 + 1
1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0

Q0 + 1
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

J2
1 0 0 0 0 0 0 1 X X X X X X X X

K2
X X X X X X X X 1 0 0 0 0 0 0 1

J1
1 0 0 1 X X X X 1 0 0 1 X X X X

K1
X X X X 1 0 0 1 X X X X 1 0 0 1

J0
1 1 X X 1 1 X X 1 1 X X 1 1 X X

K0
X X 1 1 X X 1 1 X X 1 1 X X 1 1

Q1

Q1

Q1

Q1

Q1

Q1

Q 0 Q0 Q0 Q 0 Q2 x Q2
4 5 7 6 0 1 3 2

Q 0 Q0 Q0 Q 0 Q2 x Q2
1 1 1 X X X X X X 1 1 1 X X 1

Q 0 Q0 Q0 Q 0 Q2 x Q2
X X X 1 1 1 X X X 1 1 1 X 1 X 1

Q2 12 13 15 14 Q2
8 9 11 10

Q2 Q2

x
1

Q2 Q2

J0 = 1 Q1 Q1 Q1 Q1

K0 = 1

Q 0 Q0 Q0 Q 0 Q2 x Q2
1 0 0 0 1 1 X X X X X 1 0 X X

Q 0 Q0 Q0 Q 0 Q2 x Q2
X X X X X X 0 1 1 1 0 0 X X 0 1

Q2 Q2

x
X

Q2 Q2

J1 = xQ0 + xQ0 Q1 Q1

K1 = xQ0 + xQ0 Q1 Q1

Q 0 Q0 Q0 Q 0 Q2 x Q2
X X 0 X X 0 X X 1 X X 1 0 0 0

Q 0 Q0 Q0 Q 0 Q2 x Q2
1 0 X 0 0 X 0 1 X 0 0 X X X X X

Q2 Q2

x
0

Q2 Q2

J 2 = x(Q1Q0 ) + x (Q1 iQ0 )

K 2 = x(Q1Q0 ) + x (Q1 iQ0 )

x x=0 ---- Descendente x=1 ---- Ascendente


2

Q0

Q1

Q2

2 5V 1 12 1 4 J CLK 2 K Q 2 3 1 4 K Q 2 Q 3 3 3 1 2 1 12 1 J CLK Q 3

2 1 3 3 2 1 3 4 K Q 2 2 1 12 1 J CLK Q 3

Reloj

También podría gustarte