| 1 | Skipper, IDE para programación en HDL |
|---|
| 2 | |
|---|
| 3 | 1- Introducción |
|---|
| 4 | |
|---|
| 5 | Skipper va a intentar ser, esperamos de aca a unos años, o no, un Entorno de Desarrollo Integrado para HDL. |
|---|
| 6 | Esto es, un entorno que permita escribir código en hdl, chequear sintaxis, escribir testbenchs, hacer simulación y ver los resultados. |
|---|
| 7 | La idea es no reinventar la rueda, o sea no escribir todas las herramientas, sino usar las que ya están hechas y escribir las que no están. |
|---|
| 8 | El proyecto surge como resultado de la falta de un IDE para la programación en dicho lenguaje con licencia GPL; si tenemos varias herramientas aisladas; las juntamos a todas y las hacemos encajar. |
|---|
| 9 | La meta principal en un principio es brindar una herramienta para aprender HDL y más adelante tener un buen IDE para el desarrollo. |
|---|
| 10 | |
|---|
| 11 | Algunas de las herramientas que usa Skipper son gedit, ghdl, gtkWave, etc. |
|---|
| 12 | CaracterÃsticas: |
|---|
| 13 | * Soporte para vhdl y verilog. |
|---|
| 14 | * Multiplataforma, aunque en esto no nos esmeraremos mucho. |
|---|
| 15 | * etc. |
|---|
| 16 | Nota: por ahora soporta vhdl y deberÃa andar en otras plataformas debido a que los programas que se usan son multiplataforma. |
|---|
| 17 | |
|---|
| 18 | 2- Hoja de Ruta de Skipper |
|---|
| 19 | * Fase 1: Tener andando el editor, con todas sus caracterÃsticas. En esta fase podrÃamos ya, escribir entidades y testbenchs. |
|---|
| 20 | * Fase 2: Checkear sintaxis, ver logs de errores, simular. |
|---|
| 21 | * Fase 3: Integrar en el IDE el visor de forma de onda. |
|---|
| 22 | * Fase 4: Construir e Integrar al IDE el editor de UCF. |
|---|
| 23 | * Fase 5: Construir e Integrar al IDE el editor de testbenchs. |
|---|
| 24 | * Fase 6: Construir e Integrar al IDE el sintetizador. |
|---|
| 25 | * Fase 7: Soportar verilog. |
|---|
| 26 | |
|---|
| 27 | Nota: esta versión cumplimenta la fase 1 y la fase 2. |
|---|
| 28 | |
|---|
| 29 | 3- Herramientas de Skipper |
|---|
| 30 | |
|---|
| 31 | El IDE será basado en un editor de texto avanzado llamado gedit y tendrá la siguientes herramientas: |
|---|
| 32 | |
|---|
| 33 | A- El editor |
|---|
| 34 | "gedit" |
|---|
| 35 | CaracterÃsticas: |
|---|
| 36 | |
|---|
| 37 | * Comentar código |
|---|
| 38 | * Completar paréntesis |
|---|
| 39 | * Corrector Ortográfico |
|---|
| 40 | * Navegación de Documento |
|---|
| 41 | * Ampliación de funcionalidades mediante plugins |
|---|
| 42 | |
|---|
| 43 | B- Compilador/Simulador |
|---|
| 44 | "ghdl" |
|---|
| 45 | CaracterÃsticas: |
|---|
| 46 | |
|---|
| 47 | * Es un simulador completo de VHDL, usando la tecnologÃa GCC. |
|---|
| 48 | * Implementa el estandar de la IEEE 1076-1987 o IEEE 1076-1993. |
|---|
| 49 | * No sintetiza, esto es, no traduce tu diseño a netlist. |
|---|
| 50 | |
|---|
| 51 | C- TestBench |
|---|
| 52 | |
|---|
| 53 | Será a través de una tabla con las entradas declaradas en nuestra entidad, en la cuál especificaremos el tiempo, los valores de esas entradas y los valores de salida correctos. También se proporcionará un ayudante que permita realizar el testbenchs en forma gráfica. |
|---|
| 54 | |
|---|
| 55 | D- Visor de Ondas |
|---|
| 56 | "gtkWave" |
|---|
| 57 | CaracterÃsticas: |
|---|
| 58 | |
|---|
| 59 | * Es un visor de formas de onda usado para examinar las salidas de varios simuladores digitales. |
|---|
| 60 | * Puede leer VCD(Estandar industrial de simulación), EVCD, LXT y LXT2 ( especÃficos del gtkWave ). |
|---|
| 61 | |
|---|
| 62 | E- Editor de UCF |
|---|
| 63 | |
|---|
| 64 | Este programa permitirá unir mediante una tabla, los puertos con los pines fÃsicos del chip. |
|---|
| 65 | |
|---|
| 66 | F- SÃntesis |
|---|
| 67 | |
|---|
| 68 | Este programa permitirá convertir el vhdl en formato EDIF, el cual luego puede ser leÃdo por la herramienta privativa de Xilinx que genera el bitstream a partir de este archivo. |
|---|
| 69 | |
|---|
| 70 | 4- Instalación: |
|---|
| 71 | |
|---|
| 72 | Para poder hacer andar el IDE necesitamos tener instalados el gedit, el ghdl, el gtkWave y el interprete python. |
|---|
| 73 | |
|---|
| 74 | Luego descargamos los plugins para gedit. |
|---|
| 75 | Esto lo podemos hacer a través de svn desde el siguiente repositorio: |
|---|
| 76 | http://www.sluc.org.ar/svn/skipper/ |
|---|
| 77 | |
|---|
| 78 | Con el programa svn podemos usar el comando: |
|---|
| 79 | svn co http://www.sluc.org.ar/svn/skipper/ skipper |
|---|
| 80 | |
|---|
| 81 | Esto nos descargará una serie de plugins que debemos copiar en la carpeta .gnome2/gedit/plugins/ de nuestro home. |
|---|
| 82 | Luego abrimos el gedit y vamos al Menu Editar->Preferencias. |
|---|
| 83 | En preferencias vamos a la solapa Complementos, activamos Skipper y el Manejador de Proyecto. |
|---|
| 84 | |
|---|
| 85 | Con esto ya tenemos andando el IDE. |
|---|
| 86 | |
|---|
| 87 | 5- Uso: |
|---|
| 88 | |
|---|
| 89 | Skipper se compone de 2 partes principales, la primera la tenemos en el menú Herramientas y la segunda el propio menú Proyecto. |
|---|
| 90 | |
|---|
| 91 | * En el menú herramientas tenemos 4 acciones: |
|---|
| 92 | A- Chequea Sintaxis: esto llama al comando "ghdl -s" y realiza un chequeo de sintaxis. |
|---|
| 93 | B- Analize Vhdl: esto llama al comando "ghdl -a" y construye un objeto. |
|---|
| 94 | C- Elaborate Vhdl: esto llama al comando "ghdl -e" y crea un ejecutable. |
|---|
| 95 | D- Simulate Vhdl: esto llama al comando "ghdl -r" y ejecuta el archivo, tambien llama al gtkWave con el resultado de la simulación; esto se usa con archivos del tipo testbench. |
|---|
| 96 | |
|---|
| 97 | * El menú Proyecto nos permite crear un proyecto en el cual podemos agrupar varios archivos de tipo vhdl y testbench los cuales se llamarán por convención "*.tbw". Este menú además de realizar las acciones normales de un manejador de proyecto nos permite simular un proyecto completo. |
|---|
| 98 | Para simular un proyecto completo debemos escribir un testbench que simule nuestro proyecto o las entidades intermedias del mismo; luego cuando este activo en el editor este archivo debemos presionar Simular Proyecto del menú herramientas. Esto construirá un objeto para cada archivo vhdl que este en el proyecto, luego creará un ejecutable que responderá al testbench, lo ejecutará y abrirá el gtkWave mostrando los resultados de la simulación. |
|---|