lunes, 28 de septiembre de 2015

Generación de señal rampa a partir de DAC y sumadores

Para entender el concepto del funcionamiento de un DAC se construyó un circuito tal que con dos sumadores de 4 bits en cascada se convirtiera cada una de los resultados de las sumas digitales en una señal analógica de salida.
A la salida del DAC fue necesario adicionar un amplificador operacional que llevaba la señal a un buen nivel tal que se obtuvo una señal rampa casi entre 0 y 5 Volts, descendente o ascendente según la dirección del conteo.

El diseño que se simuló antes de montar fue:



Breve explicación y funcionamiento del DAC:


viernes, 25 de septiembre de 2015

Diseño de un contador de dos dígitos ascendente y descendente con 74190

Actividad propuesta: Diseño y montaje de un contador BCD entre dos valores de dos dígitos ascendente y descendente

     Para realizar el diseño de un contador BCD se usó un integrado 74190 para cada uno de los dígitos de la salida, algunas compuertas lógicas para limitar el conteo ascendente y descendente y un par de decodificadores para pasar esa salida BCD a los display de siete segmentos. 

Se decidió hacer un conteo de 08 a 28 por la facilidad del diseño entre estos dos números

Para la lógica se encontró que para que funcionara correctamente era necesario un circuito combinacional tal que mandara un cero a la entrada del load cuando las entradas fueran 29 en ascendente o 11101 y cuando fueran 07 en descendente o 0111.  A manera de simplificación de las compuertas se observaron los dígitos que cambiaban según el sentido del conteo y cuales no variaban, además para poder usar compuertas de dos entradas que eran de las que disponíamos.

El diseño primero hecho en Proteus fue el siguiente:


Luego de montado y contando se vio así:





Descripción de un conjunto de flip-flops tipo T en VHDL

Actividad propuesta:

Diseñar un programa en VHDL que implemente en la FPGA 8 flip-flops al tiempo tipo T.
Para esto debe usar el Reset y Set juntos en solo un switch para Reset y uno para Set, debe comprobar el funcionamiento para síncrono y asíncrono.  Use el pulsador como CLK, y los switches para las entradas de los flip-flops.
 Las salidas de los flip-flops se observarán en los leds de la tarjeta.  

Para la implementación del programa se tenía disponible por el uso de la De0 ocho interruptores para entradas y por lo tanto ocho leds para la salida.

Para el funcionamiento síncrono y asíncrono se hace una modificación en la lógica tal que mientras sea síncrono todo esté regido por el reloj como primera condición del programa, y si es asíncrono tenga prioridad el set y el reset. 

Ya que los flip-flops son tipo T, es necesario tener en cuenta el estado de la salida.  Por esto, su asignación se hace por medio de condiciones cumpliendo la tabla de verdad del flip-flop tipo T, tal que si la entrada es 0 la salida se mantendrá y si es 1 se negará la salida anterior.

Lógica de la descripción del hardware:

asíncrono

síncrono


Flip-flop tipo T funcionando:

asíncrono


síncrono

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: