Ir al contenido principal

Entradas

Mostrando entradas de septiembre, 2016

Reloj digital en VHDL

Si ya hemos hablado de cómo generar un reloj de 1 Hz y también hemos visto cómo controlar un display de siete segmentos con VHDL, el siguiente paso lógico es construir un circuito para un reloj digital de 24 horas. Sólo es cuestión de unir lo ya aprendido en los dos anteriores artículos y añadir algo de lógica de control. Vamos a construir un circuito descrito con VHDL que tiene una sola entrada llamada clk50mhz , que es la señal de reloj (de 50 Mhz en este caso) que va a comandar todo el sistema. Como salida hay dos buses, uno llamado display , que obviamente se encarga de iluminar los leds correspondientes de cada display de siete segmentos, y otra salida llamada cur_display que selecciona qué display, de los cuatro posibles, se ilumina en cada momento. El código es el siguiente. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity digital_clock_top is port ( clk50mhz: in STD_LOGIC; display: out STD_LOGIC_VECTOR(7 downto 0); cur_displ...

Multiplexado de displays de siete segmentos con VHDL

Cuando un diseño utiliza más de un display de siete segmentos es interesante multiplexarlos para ahorrar en conexiones. Si no lo hacemos así, para controlar cuatro displays necesitaríamos 32 conexiones al microcontrolador si es que queremos manejar directamente los displays sin ningún integrado de por medio. Vamos ver cómo funciona este multiplexado y cómo se puede implementar en una FPGA usando VHDL. Existen dispositivos que empaquetan varios displays que son muy cómodos de usar. En este artículo, como ejemplo usaremos uno de cuatro displays. Sin embargo esta técnica puede usarse con varios displays sueltos. En el siguiente esquema se presenta la manera correcta de hacer las conexiones mediante transistores configurados en emisor común para funcionar como interruptores. Las entradas D0 a D3 permiten seleccionar qué display queremos activar en cada momento, mientras que las entradas A a G (y DP) permiten seleccionar qué leds se han de encender para mostrar e...