Sistemas Digitales
Enviado por klgiraldov • 27 de Noviembre de 2012 • 1.268 Palabras (6 Páginas) • 408 Visitas
APORTE 2 SD SECUENCIALES tc 2
Fase 1 – Diseño
Un circuito secuencia l es una máquina de estados ó máquina generador a de etapas o
secuencias, en este caso la secuencia es 5-3-2-1-4-7-6 y se repite nuevamente.
Definición de tabla de estados actuales y siguientes
Así se representa la secuencia de forma binaria asociando a cada número decimal de la secuencia una representación binaria en este caso de tres bits, también se asocia el estado siguiente al actual, ya que del actual pasa al siguiente en un paso. Como su representación se logra con tres bits la teoría de diseño de máquina de estados dice que se necesitara tres flip flops.
Tabla del Flip-Flop a usar
Se utilizara Flip-Flop tipo JK, aunque se puede usar cualquiera por ejemplo el tipo D, la siguiente tabla describe cómo se comporta la salida siguiente del flip-flop dependiendo de su estado actual y las entradas JK. El símbolo X de la tabla indica que puede ser cero ó uno, es indiferente.
Simplificación utilizando mapas de Karnaugh
Escogido el flip flop, se asocia cada bit que describe la secuencia a la salida Q de cada flip-flop, en este caso Q0, Q1, Q2. Relacionando el estado actual con el siguiente de la secuencia para cada Qx se obtiene que las entradas J y K de cada flip-flop se deben comportar de algun modo para lograr la secuencia. Considerando que se tienen 3 flips-flops JK y sus 3 salidas Q0,Q1,Q2 significa también que se tienen sus correspondientes entradas J0,K0,J1,K1,J2,K2 y una señal de
reloj, para lograr la secuencia se busca relacionar el estado actual y siguiente Qx con sus respectivas entradas Jx, Kx en forma de relaciones logicas digitales.
Las relaciones logicas pueden ser AND o OR, para obtenerlas de una forma simplificada se utiliza mapas de Karnaugh, se comineza analizando la secuencia, para el primer estado se tiene que, el estado actual es ‘5 y el siguiente es ‘3’ en esta transicion según la tabla 1, el bit Q0 pasa de ‘1’ a ‘1’, osea que no cambia, ahora observando en la tabla 2 como se debe comportar JK cuando Q0 pasa de ‘1’ a ‘1’ especifica que J = X y K = 0, esto se debe realizar para
cada bit Q1 y Q2 y para todos los componentes de la secuencia. Observando en ambas tablas, se puede armar el mapa de karnaugh para cada Jx y Kx, de la forma como se indica en la tabla 3.
Observando la tabla 3, se pueden obtener las relaciones lógicas para las salida JK de cada flipflop:
J0 = 1;
K0 = not(Q2) or Q1
J1 = Q2
K1 = not(Q0)
J2 = not(Q1)
K2 = Q0 and not(Q1)
Ya obtenidas las relaciones lógicas se puede armar el circuito y probar.
Tabla 3 – Mapas de Karnaugh para las entradas Kx y Jx dependiendo del estado de la secuencia Q2,Q1,Q0.
Antes de armar el circuito se necesita una fuente de reloj para que proporciones el sincronismo por medio de los flancos de subida, para esto se usa el circuito IC555 configurado
como astable
Circuito IC555 configurado como astable
El circuito integrado 555 se puede configurar de varias formas, en este caso se configura como
astable o como oscilador de frecuencia cuadrada, el periodo depende del valor de sus resistencias y condensador de configuración.
El cálculo se hace con la siguiente formula, suponiendo valores de C = 47uF y R2 = 10K. =
Obteniendo el periodo de 1 segundo que requiere el problema.
Figura 1 – Circuito IC555 como astable
Implementación de la solución
Para implementar la solución obtenida se utiliza el software Proteus, utilizando flip flops tipo JK, algunas compuertas y el display de 7 segmentos con codificador integrado, se podría haber usado el display de 7 segmentos y el codificador 7448 interno, sin embargo por motivos espacio y hacer más compacto el diseño se escogió el display con codificador interno.
Fase 2 – Verificación
Para la verificación del funcionamiento del sistema se debe realizar el diseño mismo en VHDL. Para el diseño se debe realizar un diagrama de flujo del sistema. Aunque antes de implementar todo el sistema es de gran utilidad implementar la rutina elemental o programar el elemento flip-flop JK que tiene la siguiente tabla.
Esto se puede tratar como un bloque con 2 entradas J,K y dos salidas Q, not(Q), programable
según el siguiente pseudocódigo.
1. INICIO
2. Declaración de variables (J,K,Q,Qn,clk)
3. Punto de retorno
4. Si (clk = flanco de subida) entonces
ir a 5
si-no
ir a 3
fin-si
5. Si (J = 0 y K = 0) entonces
Q = Q, Qn = Qn
Si-no (J = 0 y K = 1)
Q = 0, Qn = 1
Si-no (J = 1 y K = 0)
Q = 1, Qn = 0}
Si-no (J = 1 y K = 1)
Q = not(Q), Qn =
...