MARCO TEORICO CIRCUITOS SECUENCIALES: El comportamiento de un circuito secuencial se determina mediante las entradas, las salidas y los estados de sus flip−flops. Tanto las salidas como el estado siguiente son función de las entradas y del estado presente. El análisis de los circuitos secuenciales consiste en obtener una tabla o un diagrama de las secuencias de tiempo de las entradas, salidas y estados internos. También es posible escribir expresiones booleanas que describen el comportamiento de los circuitos secuenciales. Sin embargo, esas expresiones deben incluir la secuencia de tiempo necesaria ya sea en forma directa o indirecta. Un diagrama lógico se reconoce como el circuito de un circuito secuencial e incluye los flip−flops. Los flip−flops puede ser cualquier tipo y el diagrama lógico puede o no incluir compuertas combinacionales. CONTADORES: Un contador es un circuito secuencial de aplicación general, cuyas salidas representan en un determinado código el numero de pulsos que se meten a la entrada Están constituidos por una serie de biestables conectados entre si de modo que las salidas de estos cambian de estado cuando se aplican impulso. a la entrada. La capacidad de un contador es el numero mas elevado, expresado en cualquiera de los códigos binarios, que puede ser representado en sus salidas. El modulo, o número de estados totales que puede representar el contador, es igual al numero máximo de impulsos que se puede representar más uno (el cero). Si "n" es el número de flip−flops empleado para hacer el contador, y "M" el módulo del contador, se debe verificar: M"2 Cuando el contador llega al valor máximo de su capacidad, comienza a contar de nuevo desde cero al aplicarle el siguiente impulso. Dependiendo del modo d e operación, lo s contadores pueden ser ascendentes ( si su contenido se incrementa con cada impulso), descendentes (si su contenido disminuye), o bien una combinación de ambos (up/down counters). Por otro lado, los contadores se dividen en sÍncronos y asíncronos. Los primeros, son aquellos en los que los impulsos de reloj se aplican simultáneamente a todos los biestables, y por tanto, todas las salidas cambian al mismo tiempo. En los asíncronos, por contra, la señal de reloj se aplica a la entrada del primer biestable, la salida de éste a la entrada de reloj del siguiente, y así sucesivamente el tiempo de propagación de estos dispositivos, es superior al de los sÍncronos (la señal tiene que pasar por todos los bits menos significativos hasta llegar a un determinado bit). Otra clasificación es según la naturaleza de los números que cuenta el dispositivo. Existen contadores binarios (el número de estados es múltiplo de 2), decimales (el numero de estados es múltiplo de 10), y de modulo M (un numero M cualquiera de estados). 1 Además, en todos los casos anteriores, la cuenta no tiene por qué empezar e terminar en 0. Por ejemplo se puede diseñar un contador de módulo 3 que cuente 5−6−7. El diseño de contadores sÍncronos, se hace de igual forma que para cualquier circuito secuencial. Como caso particular, vamos a ver el diseño de contares binarios asíncronos. TABLA DE ESTADOS: Q 0 0 1 1 Q(t+1) 0 1 0 1 J 0 1 X X K X X 1 0 D 0 1 0 1 S 0 1 0 X R X 0 1 0 T 0 1 1 0 OBJETIVOS • Analizar y diseñar circuitos secuenciales. • Aplicar los conocimientos obtenidos en clase para implementar circuitos de contadores sin entradas externas. • Aplicar los conocimientos obtenidos en clase para implementar circuitos de contadores con entradas externas. CONCLUSIONES ♦ Los mapas de Karnaugh son de vital importancia para encontrar y simplificar el diseño del circuito de un contador. ♦ Al añadir entradas externas se duplica el numero de contadores existentes en el circuito. ♦ Para poder implementar un contador debemos tener la tabla de estados que se encuentra en el marco teórico. LABORATORIO • Diseñar un contador que realice la secuencia: 0−2−1−3−0 Estado Presente A B 0 0 1 0 0 1 1 1 JA=KA=1; Estado siguiente A B 1 0 0 1 1 1 0 0 Salidas JA 1 X 1 X KA X 1 X 1 JB 0 1 X X KB X X 0 1 JB=KB=A 2 • Diseñar un contador sincrónico que cumpla la siguiente secuencia: 2.3.6.1.4.7.2 con FF JK Estado Presente Estado siguiente Salidas JA=C; KA=B; JB=−C; KB= A´+B´; JC=KC=1. • EQUIVALENCIA GRAY: Diseñar un circuito secuencial que siga la secuencia de tres bits, con un FF D Gray ABC ABC(T+1) DA DB DC 3 000 000 000 001 001 001 001 011 010 011 011 010 011 010 010 110 100 110 110 111 101 111 111 101 110 101 101 100 111 100 100 000 DA=AC+BC´; DB=A´C+BC´; DC= A´B´+AB=AOB. 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 • Diseñar un contador sincrónico que cumpla la siguiente secuencia: 0,1,3,2,6,7,5,4,0 con FF JK, con una entrada externa X, cuando X=1, el contador es ascendente y cuando X=0 el contador es descendente. Estado Presente Entrada externa Estado siguiente ABC X ABC 000 0 100 000 1 001 001 0 000 001 1 011 011 0 001 011 1 010 010 0 011 010 1 110 110 0 110 110 1 111 111 0 110 111 1 101 101 0 111 101 1 100 100 0 101 100 1 000 JA=C´(BOX); JB=C(AOX); JC=AOBOX; Salidas A JK 1X 0X 0X 0X 0X 0X 0X 1X X1 X0 X0 X0 X0 X0 X0 X1 Salidas B JK 0X 0X 0X 1X X1 X0 X0 X0 X0 X0 X0 X1 1X 0X 0X 0X Salidas C JK 0X 1X X1 X0 X0 X1 1X 0X 0X 1X X1 X0 X0 X1 1X 0X KA=C´(BOX); KB=C(AOX); KC=AO(BOX). 4 • Contador con 2 entradas externas (4 contadores) X 0 0 1 1 ABC Y 0 1 0 1 Secuencia 0.1.2.3.4.5.6.7.0... 2.4.6.0.2... 1.3.5.7.1... 6.4.2.0.7.5.3.1.6... XY ABC(T+1) JA KA JB KB JC KC 000 00 001 0X 0X 1X 000 01 010 0X 1X 0X 000 10 001 0X 0X 1X 000 11 111 1X 1X 1X 001 00 010 0X 1X X1 001 01 010 0X 1X X1 001 10 011 0X 1X X0 001 11 110 1X 1X X1 010 00 011 0X X0 1X 010 01 100 1X X1 0X 010 10 011 0X X0 1X 5 010 11 000 0X X1 0X 011 00 100 1X X1 X1 011 01 100 1X X1 X1 011 10 101 1X X1 X0 011 11 001 0X X1 X0 100 00 101 X0 0X 1X 100 01 110 X0 1X 0X 100 10 101 X0 0X 1X 100 11 010 X1 1X 0X 101 00 110 X0 1X X1 101 01 110 X0 1X X1 101 10 111 X0 1X X0 101 11 011 X1 1X X0 110 00 111 X0 X0 1X 110 01 000 X1 X1 0X 110 10 111 X0 X0 1X 110 11 100 X0 X1 0X 111 00 000 X1 X1 X1 111 01 000 X1 X1 X1 111 10 001 X1 X1 X0 X0 101 11 111 JA=B´XY+BCY´+B´XY=Y(BOX)+BCY; KA=JA X1 X0 JB=C+XÝ+XY´=C+(XOY); KB=E+C JC=Y´+AB´C; KC=X´+ B´X • Diseñar un circuito secuencial que cumpla: Si X=1 cuente 0−9−0 Si X=0 cuente 9−0−9, con FF D. 6 ENTRADAS ABCD 0000 ABCD(T+1) 0001 SALIDAS DA 0 X 1 DB 0 DC 0 DD 1 0000 0 1001 1 0 0 1 0001 1 0010 0 0 1 0 0001 0 0000 0 0 0 0 0010 1 0011 0 0 1 1 0010 0 0001 0 0 0 1 0011 1 0100 0 1 0 0 0011 0 0010 0 0 1 0 0100 1 0101 0 1 0 1 0100 0 0011 0 0 1 1 0101 1 0110 0 1 1 0 0101 0 0100 0 1 0 0 0110 1 0111 0 1 1 1 0110 0 0101 0 1 0 1 0111 1 1000 1 0 0 0 0111 0 0110 0 1 1 0 1000 1 1001 1 0 0 1 1000 0 0111 0 1 1 1 1001 1 0000 0 0 0 0 1001 0 1000 1 0 0 0 DA=ADE´+AED´+BCD´E+ A´B´C´D´E´= A(DOE)+D´(BCE+A´B´C´E´); DB=B(1+DE´)+D´E´(BC+A)+B´CED´=(EOD)(B´C+B)+D´E´(B+A)+B; DC=D´E´(C+A)+A´DE; DD=COD. 7