domingo, 15 de diciembre de 2013

MANUAL VISUALIZACION DINAMICA EN HANDEL-C


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.

1 comentario:

  1. Es posible que puedas compartir el compilador de Handel c que utilizaste?

    ResponderEliminar