viernes, 25 de septiembre de 2015

Implementación de un contador no secuencial en FPGA De0 usando el modo esquemático

Actividad propuesta: 
Diseñar un contador de la siguiente secuencia = (1, 3, 7, 4, 5, 0, 6, 2) BCD ascendente.  Y descendente con una señal donde 0 es ascendente y 1 es descendente.  Para este diseño, usar Flip-flops tipo T, usar el reloj en un pulsador

Como primer paso para el diseño de un contador de este tipo se realiza un diagrama de estados con el equivalente en binario de cada uno de los números de que se quieren representar y según el estado de la señal ‘x’ cuál será el siguiente estado.  Para este caso según la secuencia propuesta es:


Por lo tanto si se consigna esa información en una tabla de estados primitivos, las transiciones serían las siguientes:


Sabiendo exactamente cómo se comportará el circuito se escoge el tipo de Flip-flop, que como se propone será uno tipo T, para este caso se conoce que sus transiciones se traducen como:

Con lo que para los estados Q0+1, Q1+1 y Q2+1 se realiza los mapas de transición:

Transiciones para Q0+1

Transiciones para Q1+1


Transiciones para Q2+1


Siendo entonces los mapas de Karnaugh para las entradas T0, T1 y T2:

Entrada T0= 

Entrada T1= 

Entrada T2= 

Se implementaron esas ecuaciones booleanas en Quartus, sin obtener resultados muy favorables por la gran cantidad de compuertas utilizadas.  Por lo tanto, se decidió optar por otra opción, haciendo así una implementación definitiva con multiplexores de 8 a 1, los cuales dieron muy buenos resultados.

Luego de comprobar que la lógica a la salida era la adecuado se añadieron los 3 flip-flops tipo T correspondientes a los tres bits tanto de entrada como de salida y un decodificador 7447 de manera que, recibiendo una entrada en binario del número a representar entregara una salida para conectar a cada uno de los segmentos del display en el cuál se pretendía implementar el ejercicio.
El diseño final es el que se muestra a continuación.  Cabe aclarar que se eligió ese decodificador en específico además porque era el adecuado para el display de ánodo común con el que se contaba en la tarjeta de desarrollo.

Funcionamiento en la FPGA:


1 comentario: