| 1 | \documentclass[a4paper,10pt]{article} |
|---|
| 2 | |
|---|
| 3 | \usepackage{amsmath} |
|---|
| 4 | \usepackage[utf8]{inputenc} |
|---|
| 5 | \usepackage[T1]{fontenc} |
|---|
| 6 | \usepackage[spanish]{babel} |
|---|
| 7 | \usepackage[]{textcomp} |
|---|
| 8 | \usepackage[pdftex]{graphicx} |
|---|
| 9 | \usepackage[pdftex]{color} |
|---|
| 10 | \usepackage[all]{xy} |
|---|
| 11 | \usepackage[left=3cm,right=3cm]{geometry} |
|---|
| 12 | \usepackage{fancyhdr} |
|---|
| 13 | \usepackage{makeidx} |
|---|
| 14 | \usepackage[unicode=true, pdfusetitle, bookmarks=true,bookmarksnumbered=false, bookmarksopen=false, breaklinks=false, pdfborder={0 0 1}, backref=false, colorlinks=false]{hyperref} |
|---|
| 15 | \pagestyle{fancy} |
|---|
| 16 | |
|---|
| 17 | \chead{} |
|---|
| 18 | \rhead{\textrm{Técnicas Digitales IV}} |
|---|
| 19 | \lfoot{U.T.N.} |
|---|
| 20 | \cfoot{} |
|---|
| 21 | \rfoot{Pag. \thepage} |
|---|
| 22 | \renewcommand{\headrulewidth}{0.3pt} |
|---|
| 23 | \renewcommand{\footrulewidth}{0.3pt} |
|---|
| 24 | |
|---|
| 25 | \title{\Huge Skipper, \textbf{IDE} para programación en \textbf{HDL}} |
|---|
| 26 | \author{Redolfi, Javier Andrés; Henze, AgustÃn; Insaurralde, Pablo} |
|---|
| 27 | %\address{ Universidad Tecnologica Nacional, Fac. Reg. Cba.} |
|---|
| 28 | \makeindex |
|---|
| 29 | |
|---|
| 30 | \begin{document} |
|---|
| 31 | { |
|---|
| 32 | \printindex |
|---|
| 33 | \maketitle |
|---|
| 34 | \newpage |
|---|
| 35 | |
|---|
| 36 | \tableofcontents |
|---|
| 37 | \newpage |
|---|
| 38 | \section{Introducción} |
|---|
| 39 | |
|---|
| 40 | Skipper va a intentar ser, esperamos de aca a unos años, o no, un Entorno de Desarrollo Integrado para \textbf{HDL}. |
|---|
| 41 | Esto es, un entorno que permita escribir código en \textbf{HDL}, chequear sintaxis, escribir testbenchs, hacer simulación y ver los resultados.\\ |
|---|
| 42 | 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.\\ |
|---|
| 43 | El proyecto surge como resultado de la falta de un \textbf{IDE} para la programación en dicho lenguaje con licencia \textbf{GPL}; si tenemos varias herramientas aisladas; las juntamos a todas y las hacemos encajar.\\ |
|---|
| 44 | La meta principal en un principio es brindar una herramienta para aprender \textbf{HDL} y más adelante tener un buen \textbf{IDE} para el desarrollo.\\ |
|---|
| 45 | Algunas de las herramientas que usa Skipper son gedit, ghdl, gtkWave, etc.\\ |
|---|
| 46 | En esta versión 0.1, queremos agradecer a los docente Cayuela Pablo y a Olmedo Sergio por apoyar este trabajo y tener las intenciones de implementarlo en su cátedra Técnicas Digitales IV en la U.T.N. F.R.C.\\ |
|---|
| 47 | |
|---|
| 48 | \underline{CaracterÃsticas:} |
|---|
| 49 | |
|---|
| 50 | \begin{itemize} |
|---|
| 51 | \item Soporte para vhdl y verilog. |
|---|
| 52 | \item Multiplataforma, aunque en esto no nos esmeraremos mucho. |
|---|
| 53 | \item etc. |
|---|
| 54 | \end{itemize} |
|---|
| 55 | |
|---|
| 56 | \underline{Nota:} por ahora soporta vhdl y deberÃa andar en otras plataformas debido a que los programas que se usan son multiplataforma. |
|---|
| 57 | |
|---|
| 58 | \section{Hoja de Ruta de Skipper} |
|---|
| 59 | \begin{description} |
|---|
| 60 | \item[Fase 1] Tener andando el editor, con todas sus caracterÃsticas. En esta fase podrÃamos ya, escribir entidades y testbenchs. |
|---|
| 61 | \item[Fase 2] Checkear sintaxis, ver logs de errores, simular. |
|---|
| 62 | \item[Fase 3] Integrar en el \textbf{IDE} el visor de forma de onda. |
|---|
| 63 | \item[Fase 4] Construir e Integrar al \textbf{IDE} el editor de UCF. |
|---|
| 64 | \item[Fase 5] Construir e Integrar al \textbf{IDE} el editor de testbenchs. |
|---|
| 65 | \item[Fase 6] Construir e Integrar al \textbf{IDE} el sintetizador. |
|---|
| 66 | \item[Fase 7] Soportar verilog. |
|---|
| 67 | \end{description} |
|---|
| 68 | |
|---|
| 69 | \underline{Nota:} esta versión cumplimenta la fase 1, la fase 2 y la fase 3. |
|---|
| 70 | |
|---|
| 71 | \section{Herramientas de Skipper} |
|---|
| 72 | |
|---|
| 73 | El \textbf{IDE} será basado en un editor de texto avanzado llamado gedit y tendrá la siguientes herramientas: |
|---|
| 74 | |
|---|
| 75 | \subsection{El editor: gedit} |
|---|
| 76 | |
|---|
| 77 | \underline{CaracterÃsticas:} |
|---|
| 78 | |
|---|
| 79 | \begin{itemize} |
|---|
| 80 | \item Comentar código |
|---|
| 81 | \item Completar paréntesis |
|---|
| 82 | \item Indentación automágica |
|---|
| 83 | \item Corrector Ortográfico |
|---|
| 84 | \item Navegación de Documento |
|---|
| 85 | \item Ampliación de funcionalidades mediante plugins |
|---|
| 86 | \end{itemize} |
|---|
| 87 | |
|---|
| 88 | \subsection{Compilador/Simulador: ghdl} |
|---|
| 89 | |
|---|
| 90 | \underline{CaracterÃsticas:} |
|---|
| 91 | |
|---|
| 92 | \begin{itemize} |
|---|
| 93 | \item Es un simulador completo de VHDL, usando la tecnologÃa GCC. |
|---|
| 94 | \item Implementa el estandar de la IEEE 1076-1987 o IEEE 1076-1993. |
|---|
| 95 | \item No sintetiza, esto es, no traduce tu diseño a netlist. |
|---|
| 96 | \end{itemize} |
|---|
| 97 | |
|---|
| 98 | \subsection{TestBench} |
|---|
| 99 | 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. |
|---|
| 100 | |
|---|
| 101 | \subsection{Visor de Ondas: gtkWave} |
|---|
| 102 | |
|---|
| 103 | \underline{CaracterÃsticas:} |
|---|
| 104 | |
|---|
| 105 | \begin{itemize} |
|---|
| 106 | \item Es un visor de formas de onda usado para examinar las salidas de varios simuladores digitales. |
|---|
| 107 | \item Puede leer VCD(Estandar industrial de simulación), EVCD, LXT y LXT2 ( especÃficos del gtkWave ). |
|---|
| 108 | \end{itemize} |
|---|
| 109 | |
|---|
| 110 | \subsection{Editor de UCF} |
|---|
| 111 | Este programa permitirá unir mediante una tabla, los puertos con los pines fÃsicos del chip. |
|---|
| 112 | |
|---|
| 113 | \subsection{SÃntesis} |
|---|
| 114 | Este programa permitirá convertir el vhdl en formato EDIF, el cual luego puede ser leÃdo por la herramienta privativa que estemos utilizando para nuestro chip, la cuál podrá generar el bitstream a partir de este archivo. |
|---|
| 115 | |
|---|
| 116 | \section{Instalación} |
|---|
| 117 | Para funcionar, el \textbf{IDE} necesita tener instalados el gedit, el ghdl, el gtkWave y el interprete python. |
|---|
| 118 | |
|---|
| 119 | Luego descargamos los plugins para gedit. |
|---|
| 120 | Esto lo podemos hacer a través de svn desde el siguiente repositorio: |
|---|
| 121 | \href{http://www.sluc.org.ar/svn/skipper/}{http://www.sluc.org.ar/svn/skipper/} |
|---|
| 122 | |
|---|
| 123 | Con el programa svn podemos usar el siguiente comando para descargar la versión en desarrollo: |
|---|
| 124 | \begin{center}\textbf{svn co http://www.sluc.org.ar/svn/skipper/trunk skipper}\end{center} |
|---|
| 125 | |
|---|
| 126 | Para probar la versión 0.1 bajamos \href{http://www.sluc.org.ar/svn/skipper/skipper-0.1/skipper-0.1.tar.bz2}{este tar.bz2}, o el .zip desde \href{http://www.sluc.org.ar/svn/skipper/skipper-0.1/skipper-0.1.zip}{aquÃ}.\\ |
|---|
| 127 | |
|---|
| 128 | Esto nos descargará una serie de plugins que debemos copiar en la carpeta .gnome2/gedit/plugins/ de nuestro home. |
|---|
| 129 | Luego abrimos el gedit y vamos al Menu Editar->Preferencias. |
|---|
| 130 | En preferencias vamos a la solapa Complementos, activamos Skipper y el Manejador de Proyecto. |
|---|
| 131 | |
|---|
| 132 | Con esto ya tenemos andando el \textbf{IDE}. |
|---|
| 133 | |
|---|
| 134 | \section{Uso} |
|---|
| 135 | |
|---|
| 136 | Skipper se compone de 2 partes principales, la primera la tenemos en el menú Herramientas y la segunda el propio menú Proyecto. |
|---|
| 137 | |
|---|
| 138 | \begin{itemize} |
|---|
| 139 | \item En el menú herramientas tenemos 4 acciones: |
|---|
| 140 | \begin{description} |
|---|
| 141 | \item[Chequea Sintaxis:]esto llama al comando \textit{ghdl -s} y realiza un chequeo de sintaxis. |
|---|
| 142 | \item[Analize Vhdl:]esto llama al comando \textit{ghdl -a} y construye un objeto. |
|---|
| 143 | \item[Elaborate Vhdl:]esto llama al comando \textit{ghdl -e} y crea un ejecutable. |
|---|
| 144 | \item[Simulate Vhdl:]esto llama al comando \textit{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. |
|---|
| 145 | \end{description} |
|---|
| 146 | \end{itemize} |
|---|
| 147 | |
|---|
| 148 | \begin{itemize} |
|---|
| 149 | \item 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 \textit{*.tbw}. Este menú además de realizar las acciones normales de un manejador de proyecto nos permite simular un proyecto completo. |
|---|
| 150 | |
|---|
| 151 | 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. |
|---|
| 152 | \end{itemize} |
|---|
| 153 | |
|---|
| 154 | \section{Enlaces} |
|---|
| 155 | \begin{itemize} |
|---|
| 156 | \item \href{http://www.sluc.org.ar/skipper}{Página Principal Skipper} |
|---|
| 157 | \item \href{http://projects.gnome.org/gedit/}{gEdit} |
|---|
| 158 | \item \href{http://ghdl.free.fr/}{GHDL} |
|---|
| 159 | \item \href{http://gtkwave.sourceforge.net/}{gtkWave} |
|---|
| 160 | \item \href{http://fpgalibre.sourceforge.net/}{fpgalibre} |
|---|
| 161 | \item \href{http://live.gnome.org/Gedit/Windows}{gedit for Windows} |
|---|
| 162 | \item \href{http://blogs.gnome.org/nacho/2009/06/02/porting-your-gtk-application-to-windows/}{Porting your Gtk+ application to windows} |
|---|
| 163 | \item \href{http://www.geocities.com/SiliconValley/Campus/3216/GTKWave/gtkwave-win32.html}{The Win32 GTKWave Homepage} |
|---|
| 164 | \item \href{http://ghdl.free.fr/download.html}{GHDL for Windows} |
|---|
| 165 | \end{itemize} |
|---|
| 166 | |
|---|
| 167 | \section{Licencia de este Documento} |
|---|
| 168 | |
|---|
| 169 | Skipper\\ |
|---|
| 170 | |
|---|
| 171 | Skipper, \textbf{IDE} para programación en \textbf{HDL}\\ |
|---|
| 172 | |
|---|
| 173 | Copyright © 2009 Redolfi Javier, AgustÃn Henze, Insaurralde Pablo.\\ |
|---|
| 174 | |
|---|
| 175 | Se concede permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de la GNU, Version 1.1 o cualquier versión posterior publicada por la Free Software Foundation.\\ |
|---|
| 176 | |
|---|
| 177 | Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. |
|---|
| 178 | } |
|---|
| 179 | \end{document} |
|---|