Beruflich Dokumente
Kultur Dokumente
Convertidor de Código
BCD 7 Segmentos usando FPGA
El circuito que se conoce de conversor de BCD a 7 segmentos (seg) es el que se muestra a
continuación. En él se puede ver el circuito integrado (IC en Inglés ….Integrated Circuit) 4511 y el
7447. Los dos hacen la misma función pero con tecnologías de fabricación diferente. Estos se encargan
de la conversión del código BCD de la entrada de datos a 7 seg.
Son la unidad básica para mostrar información. Con ellos se comienzan a estudiar los sistemas de
numeración existentes y se comienzan a dar los primeros pasos en la lógica de programación y
electrónica digital. Por lo tanto, son el medio ideal para iniciar un curso de visualización de
información y de entender la importancia de los sistemas de numeración y sus diferencias.
Las variantes que se pueden hacer al display de la figura 3 van en función de lo que se desea. Lo que
se debe hacer es agregar los LEDs necesarios para lograr los ajustes de interés, por ejemplo:
Figura 4.- Displays con las variantes señaladas de Punto Decimal y Display de 14 seg.
Queda para otras investigaciones el uso de arreglo de displays 7 seg y pantallas LCD
En estos tiempos, siglo XXI año 2018, parece innecesario trabajar con estos displays 7 seg. Pero la
importancia que estos poseen es que introducen al estudiante en las distintas formas de enviar mensajes
usando electrónica, sistemas embebidos e informática. Si se ve más allá de los displays 7 seg se podría
pensar en displays de 14 y 16 seg, matriz de LEDs y en pantallas LCD 16x2, LCD 20x4, GLCD
128x64 y otras. Por último, también hay que mencionar la Interfaz HMI (Human Machine Interface),
Interfaz Humano Máquina que se usa para mostrar información a nivel industrial. Y, se cierra este
párrafo con las Touch Screen de uso también industrial.
En fin, los displays 7 seg sirven de arranque para entender que cada forma disponible de mostrar
datos posee una circuitería electrónica, un sistema de numeración y un programa que lleva embebido el
microcontrolador (µc). Existen casos especiales donde el display o pantalla LCD tienen su integrado
especialmente diseñado para su manejo. En lo que respecta a las pantallas HMI se sugiere construirla
con un programa libre como PYTHON o en su defecto uno gratis como JAVA.
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
Figura 5.- Esto es a lo que se le llama tarjeta básica. Una caricatura y la tarjeta real
Con respecto a la programación del FPGA, a medida que avanza esta investigación se comienza a ver
que hay varias maneras de hacer los programas en
VHDL……..o hablando con mayor exactitud las
descripciones en VHDL. Por ejemplo en el caso del
BCD a 7 seg existen por lo menos 2 formas que se
muestran aquí usando with select y usando
process con if . Para efectos de la simulación con
Quartus II es indiferente la forma en que se haga.
Pero, si se va a usar el software TINA se debe
elegir process con if ya que de esta forma se
definen pin a pin entradas BCD y salidas al 7 seg. Mientras que con with select se definen las
entradas y salidas como vectores y esto hace que TINA vea una sola entrada y una sola salida. TINA
es un software de simulación de circuitos eléctricos y electrónicos que adicionalmente permite, usando
MACROS, simular los códigos hechos
en VHDL con extensiones .vhd. Este
software es fabricado por la empresa
DesignSoft
(http://www.designsoftware.com/home/d
emos/demo_tina
) y es el que usa la empresa Texas
Instruments (www.ti.com ) para probar
sus componentes. Para efectos de
Quartus II no hay inconveniente porque
usando Pin Planner se ve claramente que
Figura 6.- Software TINA V11 Demo se pueden asignar los
Tomado de http://www.intesc.mx/2017/04/introduccion-a-los-dispositivos-logicos-programables/
Programa para describir el circuito convertidor de BCD a 7 seg con display cátodo común
Usando la instrucción process e if
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
Este es un extracto del programa. Ya que se programa número a número cada uno se extiende porque
son 10 números y todas las letras desde la A hasta la F……eso da un total de 16 números y aquí se
muestran nada más 4
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
Programa para describir el circuito convertidor de BCD a 7 seg con display cátodo común
Usando la instrucción with - select
Entre los software HDL además del VHDL de INTEL FPGA antigua ALTERA llamado Quartus
II existen también: VERILOG, SYSTEMC, ABEL y otros que a medida que siga ahondando en la
investigación se irán mencionando.
Como la idea de la investigación siempre fue desde sus inicios mostrar un producto concreto que
viene a ser el módulo para enseñar Electrónica Digital usando FPGA no se pensó nunca en hacer un
aporte al software/Hardware libre en FPGA
(http://www.jornadassarteco.org/js2017/documents/Keynote3.pdf ) ya que de por sí la tecnología
FPGA es complicada. Entonces el objetivo inicial era entender lo básico de la tecnología y proponer un
módulo donde pudiera estudiarse Electrónica Digital y también conocer el software con el que se
programa o describe, como se habla en FPGA-VHDL, los circuitos a simular, hacer unos programas
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
básicos y fijar un paquete de prácticas que tuviera como contenido Lógica Combinatoria y Lógica
Secuencial acompañado de todo lo relacionado a FPGA: Arquitectura, VHDL y montaje práctico de
cada propuesta.
Otro factor importante fue el económico, la tarjeta que terminó comprándose fue la Cyclone II de
ALTERA Ahora INTEL FPGA con un precio mucho menor que las del proyecto FPGA wars
(http://fpgawars.github.io/ ) de tecnología libre que tienen un precio un poco más de 60 €
(https://juegosrobotica.es/icezum-alhambra-educacion/ ) .
Resumiendo entonces, se decidió por la tarjeta Cyclone II por las razones ya explicadas, esto implica
que hay que usar el software Quartus II. En nuestro caso la versión 13.0 web edition sp1 y trabajar
con VHDL.
¿Qué si hay otros fabricantes de FPGA? Por supuesto que sí: XILINX, LATTICE, MICROSEMI,
ATMEL y otros que a medida que se avance se irán mencionando.
¿hay otros software’s que no sea el Quartus II? Sí. Pero al elegir la empresa hay que trabajar con el
software que ella ofrece para su FPGA. Por ejemplo XILINX ofrece ISE y VIVADO design Suite,
hay un caso particular con Active HDL que genera el .vhd que se puede usar en cualquier chip FPGA,
en las versiones libres se tiene VERILOG y myhdl del ecosistema Python http://www.myhdl.org/ .
Esta investigación tiene como objetivo entregar un prototipo de módulo para enseñar Electrónica
Digital usando la tecnología FPGA tal como se muestra en la figura 7 y la 8.
e) Flip-Flops
Temas que serán tratados en las próximas
investigaciones. Depende de la dinámica serán
f) Contadores
estudiados individualmente o en grupos
https://es.slideshare.net/xdorzx/circuito-logicos-
h) Aritmética Binaria Circuitos aritméticos
combinacionales-ver-2-41337509
En Conclusión
1) hay múltiples pantallas para mostrar información
2) A todas las pantallas les hace falta una codificación en un lenguaje elegido por el
usuario. En estas investigaciones se usará VHDL, JAVA ó C.
Comentarios
a) Con respecto a TINA v11 DEMO se trata de un software para simular circuitos eléctricos y
electrónicos. Con la posibilidad de usar MACROS para ejecutar nuestra descripción en VHDL.
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
b) Para el montaje en Hardware me falta por resolver unos detalles de logística. Tendré el montaje
hecho por mí para la próxima investigación. De momento puedo citar esta investigación de
Researchgate donde tratan el tema con su prueba en hardware y todo
https://www.researchgate.net/publication/301810196_Implementar_un_codificador_BCD_a_7_
segmentos_con_un_FPGA
En las dos referencias señaladas se indica el uso de Quartus II y Lite 16.1 respectivamente.
Por no contar de momento con los cables dupont dejo constancia con estas investigaciones que
el código hecho en esta investigación funciona a cabalidad.
En estas dos últimas ventanas se observan las asignaciones de pines para cada una de las descripciones
hechas para el mismo fin de convertir de BCD a 7 seg. Después de la asignación se procede a grabar
el FPGA usando el USB Blaster
Espero con esto haber aclarado unas cuantas dudas sobre la tecnología FPGA y lo que toca a la
investigación como es Electrónica Digital y así apoyar a los que quieren iniciarse en ésta línea de
trabajo tal como yo lo estoy haciendo.
Nota: la parte correspondiente a Temas de Lógica se refiere a los proyectos que se han hecho hasta
ahora y también se colocan los proyectos que se piensan hacer según el libro de la serie Schaum
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
El tema principal es el de la conversión BCD 7 seg pero trae consigo otros temas que
deben ser tocados. Por ejemplo, el del tipo de display a usar, el software simulación
electrónica para el código VHDL, El nuevo nombre de la empresa ALTERA luego de
ser comprada por INTEL y hay que hacer alguna mención a los tipos de numeración
existentes. Cada subtema tiene un color particular en el diagrama de ideas.
Decimal BCD a b c d e f g
0 0000 1 1 1 1 1 1 0
1 0001 1 1 0 0 0 0 0
2 0010 1 1 0 1 1 0 1
3 0011 1 1 1 1 0 0 1
4 0100 0 1 1 0 0 1 1
5 0101 1 0 1 1 0 1 1
6 0110 0 0 1 1 1 1 1
7 0111 1 1 1 0 0 0 0
8 1000 1 1 1 1 1 1 1
9 1001 1 1 1 0 0 1 1
Hecho por el Prof Pedro Landaeta. UPT de Aragua y Aspirante a MSc en la UCV
de Venezuela. Material Introductorio de FPGA, Julio 2018
Apéndice F: Una macro (del griego μακρο, makro, que significa ‘grande’)
―abreviatura de macroinstrucción― es una serie de instrucciones que se almacenan
para que se puedan ejecutar de manera secuencial mediante una sola llamada u orden de
ejecución. Dicho de otra manera, una macroinstrucción es una instrucción compleja,
formada por otras instrucciones más sencillas. Esto permite la automatización de tareas
repetitivas.
Las macros tienden a almacenarse en el ámbito del propio programa que las utiliza y se
ejecutan pulsando una combinación especial de teclas o un botón especialmente creado y
asignado para tal efecto.
La diferencia entre una macroinstrucción y un programa es que en las
macroinstrucciones la ejecución es secuencial y no existe otro concepto del flujo de
programa.
Tomado de https://es.wikipedia.org/wiki/Macro