MANUAL
VISUALIZACION DINAMICA EN HANDEL-C
INTRODUCCION
Durante las últimas
décadas, el desarrollo de las nuevas tecnologías de fabricación de circuitos
integrados, junto con el significativo avance de los equipos informáticos, ha
proporcionado la aparición de nuevos lenguajes de programación orientado al
diseño de sistemas electrónicos.
Los lenguajes de
programación durante años se han utilizado para resolver problemas, los cuales
tienen reglas para formar instrucciones correctas, organizándolas en módulos y someterlas
hacia un compilador , el cual traduce el código en un lenguaje comprensible
para una máquina en particular, en el siguiente documento se encontrara una
introducción sobre los lenguajes de programación pero se profundizara uno en
específico llamado “Handel-C” el cual es un lenguaje de programación de alto nivel que se enfoca en
hardware de bajo nivel, se quiere que el lector tenga al alcance una guia practica
de facil entendimiento sobre el lenguaje
de programacion HANDEL-C, para esto se
realizará un ejemplo de visualización dinamica en este lenguaje el cual se
montará el la FPGA para poder observar su funcionamiento.
HANDEL- C
Handel-C es un alto
nivel de lenguaje de programación Diseñado
por Celoxica, el cual se enfoca en hardware de bajo nivel, más comúnmente
utilizado en la programación de FPGAs; este es un lenguaje para implementar
algoritmos en hardware directamente de una representación en C. Para diseñar
sistemas usando la herramienta de desarrollo DK Design Suite.
Handel-C Es
un rico subconjunto de C , con extensiones que no son estándar
para el control de la creación de instancias de hardware con un énfasis en el
paralelismo; la asignación y el comando de retardo tienen un ciclo. Todas
las demás operaciones son "libres", esto permite a los programadores realizar
manualmente las tareas y crear eficaces tuberías . Mediante la
disposición de los bucles en paralelo con los retrasos correctos, las tuberías
pueden aumentar enormemente el rendimiento de datos, a expensas de un mayor uso
de recursos de hardware.
DK Design Suite
Handel-C en síntesis
con DK Design Suite (kit de diseño) ofrece un flujo de software para el
desarrollo de algoritmos, optimización y aceleración en sistemas embebidos
y Con esto Validar el rendimiento y
mejorar la calidad del producto en menos tiempo y con menor costo.
El DK Design Suite es
muy adecuado para diseñadores de algoritmos que utilizan C y C + +, lo que
requiere una plataforma de validación más rápido que una plataforma orientada
al procesador (es decir, un ordenador portátil), pero no tienen experiencia
herramienta de diseño HW(hardware) en profundidad de utilizar la lógica
paralelo en FPGA de prototipos de hardware.
La suite DK Design
da la opción de la compilación del
algoritmo directamente a las placas FPGA dedicados para acelerar el rendimiento
del sistema al tiempo que proporciona herramientas para la depuración y
optimización.
Para los equipos de
diseño de algoritmos, Handel-C permite la programación FPGA utilizando
herramientas y flujos basados en software. Los usuarios pueden comprobar
los sistemas en las simulaciones de ciclo exacto, y compilar el código
directamente en la lógica FPGA, la creación de archivos de un bit para
programar juntas FPGA. Bibliotecas API permiten a los diseñadores de
software para conectar procesadores y periféricos de mesa a la lógica FPGA, lo
que permite una rápida exploración de HW y SW de aplicación
compensaciones. El resultado final es un "banco de trabajo
algoritmo" que permite la implementación rápida del sistema de software
para las plataformas de hardware FPGA.
Algoritmos definen el valor
de los sistemas integrados de hoy en día. Estos modelos complejos
determinan el funcionamiento y rendimiento de los productos
finales. Tiempos de ejecución resultantes de clásico SW compilación de una
CPU pueden no ser lo suficientemente rápido. Verificación de mundo real la
interacción de E / S puede ser necesaria para determinar la exactitud del
algoritmo y funcionalidad. La suite DK Design ofrece una solución a este
último por la compilación del algoritmo directamente a las placas FPGA dedicados
para acelerar el rendimiento del sistema al tiempo que proporciona herramientas
para la depuración y optimización.
EJEMPLO DE VISUALIZACION DINAMICA EN HANDEL-C

Línea 1: se
declara la referencia de la FPGA, paquete y velocidad
Línea 2: se declara la familia de la FPGA a utilizar
Línea 3: se
define el reloj en pin B8 para FPGA spartan3e
Línea 4: se
declara
-
a, b, c, d, e, f, g, variables
correspondientes a cada uno de los leds de un display 7 segmentos
-
segmento, segmento1, segmento2,
segmento3 para selecciona los displays
Línea 5:declara
las variables correspondientes a los 8 leds
Línea 6: asigna
el switch dedicado a iniciar el funcionamiento
Línea 7: asigna
el pulsador dedicado a la función reset

De la línea 12 a
30 llevamos a cabo la asignación de leds y pines de los display 7 segmentos de la FPGA

Línea 32: se
hace la declaración de un reloj de 5M
Línea 34-35: se
hace el llamado de las variables a utilizar dentro de nuestro main
Línea 36: en
esta línea hacemos la declaración de un while que siempre es verdadero de acuerdo a las condiciones internas del mismo.
Línea 38-66:
hacemos la definición de del contador para cada una de las componentes
(segundos, decenas de segundo, minuto, decenas de minuto). Estas componentes
son dependientes de la menos significativa
que es decenas de segundo hasta minutos que sería la mas significativa
Figura 1.

Figura 2.

Figura 3.

Figura 4.

En la figuras
1,2,3,4 correspondientes a las líneas 77-177 se lleva a cabo la definición y
asignación de la visualización dinámica de segundo , décimas de segundo,
minuto y decimas de minuto
respectivamente usando las sentencia
case donde un 0 habilita y un 1 inhabilita un determinado display
correspondientes a segmento, segmento1,
segmento2, segmento3 para los cuales
según sea el número del 1 al10 se le
hace una determinada asignación de encendido u apagado para cada uno de los
segmentos del display ( un 0 enciende un segmento del display y un 1 lo apaga).

Línea 205-207:
se definen las acciones tras accionar el pulsador de reset donde al estar en uno pone todos los
contadores en 0.
·
Tras terminar nuestro código de programación debemos
compilar el programa para asegurarnos de
que no tenga ningún error y poder generar los archivos necesarios para poder
hacer una posterior generación e
interpretación de archivos en Xilinx para poner en marcha nuestro proyecto
sobre la FPGA.

Para compilar el
proyecto seguiremos los siguientes pasos: build-> Rebuild All
Si todo está
bien, nos aparecerá un mensaje “0 error, 0 warnings” y podremos proceder al
montaje de archivos en Xilinx.

Crearemos un
nuevo proyecto en Xilinx donde daremos un nombre, y las respectivas ubicaciones
donde se guardara todo. En Top-level source type cambiaremos por EDIF y damos
Next.

Ahora debemos
seleccionar la ubicación del archivo .edf de nuestro proyecto generado por Dk
desing y damos Next.

En esta ventana
debemos configurar las las característica de la FPGA a utilizaren nuestro caso
una basys2.
Family: Spartan3E
Device: XC3s100E
Package: CP132
Speed: -4

Después de tener
configurado el proyecto de xilinx deberemos dar inicio a la verificación de
sintaxis (1) y luego damos clic en
Generate Programing File (2) con lo cual se nos generara un archivo .bit el
cual será el que usaremos para programas nuestra FPGA.

































