OpenCores
URL https://opencores.org/ocsvn/phr/phr/trunk

Subversion Repositories phr

[/] [phr/] [trunk/] [doc/] [informe-tesis/] [reports/] [PPS/] [maximiq/] [manual gui v01/] [manual-gui-v01.tex] - Blame information for rev 278

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 206 maximiq
 
2
\documentclass [a4paper,11pt]{article}
3
 
4
% Configuración del idioma
5
\usepackage [utf8] {inputenc}
6
\usepackage [spanish] {babel}
7
 
8
\addto\captionsspanish{\renewcommand{\contentsname}{Contenidos}}
9
 
10
% Para incluir gráficos
11
\usepackage{graphicx}
12
 
13
%
14
\ProvidesPackage{reporte-phr}
15
\usepackage{reporte-phr}
16
 
17
% Para el titulo
18
\def\logo{./img/title/phr_logo.pdf}
19 223 maximiq
\def\producto{Interfaz gráfica de usuario\par \vspace{0.5ex} PHR GUI v0.1}
20 206 maximiq
\title{Guía de Instalación y uso}
21
%\author{Maximiliano Quinteros}
22 220 maximiq
\def\docver{0.9}
23 206 maximiq
\date{Abril de 2013}
24
 
25
%comandos por maximiq
26
\newcommand{\problema}[1]{\vspace{1.5ex}\textbf{Problema: #1}}
27
\newcommand{\solucion}[1]{\vspace{1.5ex}\textbf{Solución:} #1 \vspace{1.5ex}}
28
 
29 220 maximiq
\hyphenation{ma-ne-ra su-per-u-sua-rio}
30
 
31 206 maximiq
\begin {document}
32
 
33
 
34
\maketitle
35
 
36
\tableofcontents
37
 
38
\clearpage
39
 
40
\section{Introducción}
41
 
42
Para transferir el diseño que realiza el usuario a la FPGA es necesario establecer una comunicación entre la computadora donde se sintetiza el proyecto y la FPGA de la placa PHR. En bajo nivel la computadora se comunica a través de un puerto USB con el chip FT2232D de la placa OOCDLink que luego se conecta mediante interfaz JTAG con la FPGA y la PROM. Subiendo en el nivel de abstracción es necesario un software que tome un archivo generado por la herramienta de síntesis y lo envíe a través de los drivers del sistema operativo al dispositivo concreto.
43
 
44 220 maximiq
PHR GUI es una interfaz gráfica que permite al usuario transmitir los datos de una manera muy sencilla sin la necesidad de tener que sumirse en los pormenores de la transferencia del fichero. Si bien este es el software con el que interactúa el usuario, tiene que considerarse simplemente como un front-end para la aplicación que hace el verdadero trabajo. Esta es la denominada xc3sprog.
45 206 maximiq
 
46
\begin{figure}[!h]
47
\centering
48
  \includegraphics{./img/intro/front-end.pdf}
49
  \caption{PHR GUI es una interfaz que facilita el uso de xc3sprog.}
50
%  \label{none}
51
\end{figure}
52
 
53
Xc3sprog\footnote{http://xc3sprog.sourceforge.net/} es en realidad un conjunto de aplicaciones de licencia libre que funciona en linea de comandos y sirve para programar mediante JTAG varios dispositivos. Su nombre hace referencia a que inicialmente fue diseñado para la familia de FPGA Spartan-3 de Xilinx. Sin embargo se ha extendido el manejo a otros tipos de dispositivos que incluyen otras FPGAs, CPLDs, XCF flash PROMs, microprocesadores AVRs de Atmel y memorias flash SPI. Xc3sprog soporta varios cables JTAG, incluyendo cables de puerto paralelo y programadores USB.
54
 
55 220 maximiq
Es además capaz de funcionar con los drivers propietarios del chip FT2232D o con la libreria libre libUSB. Se encuentra disponible para los sistemas GNU/Linux y Windows.
56 206 maximiq
 
57
 
58
\section{Instalación}\label{sec:instalacion}
59
 
60
\subsection{MS Windows}
61 220 maximiq
Actualmente PHR GUI para Windows funciona con los drivers propietarios ofrecidos por el fabricante del chip FT2232D, Future Technology Devices International\footnote{http://www.ftdichip.com/}.
62 206 maximiq
 
63 220 maximiq
El procedimiento general para hacer correr la aplicación en los sistemas Windows consiste en primero descargar los drivers propietarios del FT2232D, luego instalarlos para poder conectar la placa OOCDLink y por último instalar PHR GUI v0.1 que distribuye los binarios de xc3sprog.
64 206 maximiq
 
65
A continuación se desarrolla el procedimiento específico para Windows XP.
66
 
67
\subsubsection{Windows XP}
68
 
69
Necesitará el hardware PHR y los siguientes paquetes de software:
70
\begin{description}
71
\item[Drivers D2XX:] Son los drivers provistos por FTDI y están disponibles en distintas formas. Este manual  ejemplifica la instalación con la versión ejecutable. En particular se usa el archivo \texttt{CDM v2.10.00 WHQL Certified.exe}, pero se recomienda la versión mas nueva al momento de la descarga.
72
 
73
Para descargarlo consulte: \texttt{http://www.ftdichip.com/Drivers/}.
74
En la misma página puede ver el procedimiento mas detallado de instalación.
75
 
76 220 maximiq
\item[Instalador de PHR GUI v0.1:] Se puede obtener de la sección de descargas en el sitio web del proyecto: \texttt{http://opencores.org/project,phr,descargas}.
77 206 maximiq
 
78
\end{description}
79
 
80
\subsubsection*{Procedimiento:}
81
 
82
\begin{enumerate}
83
 
84
\item  Ejecutar el asistente de instalación de los drivers D2XX. Esto prepara al sistema para que en el próximo paso se reconozcan los controladores de una forma mas sencilla.
85
 
86 220 maximiq
\begin{center}
87 206 maximiq
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ftdi-wiz.pdf}
88
%  \caption{caption.}
89
%  \label{none}
90 220 maximiq
\end{center}
91 206 maximiq
 
92 220 maximiq
Si Windows le muestra una advertencia de que el software no supera la prueba de compatibilidad con Windows XP elija \emph{Continuar}.
93 206 maximiq
 
94 220 maximiq
\item Conectar la PHR al puerto USB de la computadora, la cual debe usar los drivers pre-instalados para configurar dos nuevos dispositivos. A continuación se muestra como cambia el Administrador de dispositivos de Windows.
95 206 maximiq
 
96 220 maximiq
\begin{center}
97
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ad-disp.pdf}
98
%  \caption{caption.}
99
%  \label{none}
100
\end{center}
101 206 maximiq
 
102 220 maximiq
\item Ejecutar el instalador de PHR GUI v0.1. Una vez terminado el asistente puede optar por abrir el programa que debe estar listo para ser utilizado.
103 206 maximiq
 
104 220 maximiq
\begin{center}
105 206 maximiq
  \includegraphics[width=0.9\textwidth]{./img/instalacion/phr-gui-wiz.pdf}
106
%  \caption{caption.}
107
%  \label{none}
108 220 maximiq
\end{center}
109 206 maximiq
 
110
\end{enumerate}
111
 
112
 
113 220 maximiq
\subsection{GNU/Linux} \label{inst-linux}
114 206 maximiq
 
115 220 maximiq
La instalación en los sistemas GNU/Linux no es necesaria ya que PHR GUI v0.1 en un software desarrollado en el lenguaje Python (versión 2.7.6) y las distribuciones GNU/Linux incluyen un interprete Python. Sin embargo hay que seguir una serie de pasos que están relacionados en su mayoría con el software xc3sprog. Se describe el procedimiento general:
116 206 maximiq
 
117
\begin{enumerate}
118 220 maximiq
\item Obtener los binarios de xc3sprog. Para esto hay dos opciones:
119 206 maximiq
        \begin{enumerate}
120
        \item Descargar desde la web los binarios ya compilados para la arquitectura específica (\texttt{http://sourceforge.net/projects/xc3sprog/}).
121 220 maximiq
        \item Descargar desde la web o a través de svn el código fuente del proyecto y compilarlo manualmente (Método mas recomendado que el anterior).
122 206 maximiq
        \end{enumerate}
123
\emph{Nota:} Xc3sprog hace uso de los paquetes \emph{usblib} y \emph{libftdi}.
124
 
125 220 maximiq
\item Desde el sitio web de PHR descargar PHR GUI v0.1 para GNU/Linux.
126 206 maximiq
 
127 220 maximiq
\item Descomprimir el archivo anterior y moverse en los directorios hacia la carpeta descomprimida. El script que corre la aplicación es el \texttt{phr-gui.py}.
128
 
129 206 maximiq
\begin{lstlisting}
130 220 maximiq
user@host:~/$ tar -xzf phr-gui-linux.tar.gz
131
user@host:~/$ cd phr-gui-linux
132
user@host:~/phr-gui-linux$ ls
133
crear-enlace.sh  ejemplos  grafica  phr-gui.py
134 206 maximiq
\end{lstlisting}
135
 
136 220 maximiq
\item PHR GUI buscará el software xc3sprog en una carpeta del mismo nombre. Se puede mover el directorio o crear un enlace:
137 206 maximiq
 
138
\begin{lstlisting}
139 220 maximiq
user@host:~/phr-gui-linux$ ln -s /carpeta/de/los/binarios xc3sprog
140 206 maximiq
\end{lstlisting}
141
 
142 220 maximiq
\item Para una ejecución correcta de xc3sprog, éste debe tener permisos especiales de superusuario.
143 206 maximiq
 
144 220 maximiq
\begin{lstlisting}
145
user@host:~/phr-gui-linux$ cd xc3sprog
146
user@host:~/phr-gui-linux/xc3sprog$ su
147
Password:
148
root@host:/home/user/phr-gui-linux/xc3sprog# chown root:root xc3sprog
149
root@host:/home/user/phr-gui-linux/xc3sprog# chmod 4755 xc3sprog
150
root@host:/home/user/phr-gui-linux/xc3sprog# exit
151
user@host:~/phr-gui-linux/xc3sprog$ cd ..
152
user@host:~/phr-gui-linux$
153
\end{lstlisting}
154
 
155
Mediante \texttt{chown} se cambia el propietario del archivo al usuario root. Luego, con \texttt{chmod} se modifican los permisos:
156
 
157
\begin{description}
158
\item[4:] Hace que al ejecutarse el archivo se le asigne el UID del propietario (root).
159
\item[7:] Confiere permisos de lectura, escritura y ejecución al propietario (root).
160
\item[5:] Confiere permisos de lectura y ejecución al grupo.
161
\item[5:] Confiere permisos de lectura y ejecución al resto de los usuarios.
162
\end{description}
163
 
164
 
165
\item Al asignar permisos de ejecución, \texttt{phr-gui.py} debe estar listo para ejecutarse:
166
 
167
\begin{lstlisting}
168
user@host:~/phr-gui-linux$ chmod +x phr-gui.py
169
user@host:~/phr-gui-linux$ ./phr-gui.py
170
\end{lstlisting}
171
 
172
\item Para tener una experiencia totalmente gráfica se recomienda crear un lanzador. El script \texttt{crear-lanzador.sh} se encarga de esto.
173
 
174
\begin{lstlisting}
175
user@host:~/phr-gui-linux$ chmod +x crear-enlace.sh
176
user@host:~/phr-gui-linux$ ./crear-lanzador.sh
177
\end{lstlisting}
178
 
179
Se genera un nuevo archivo que puede moverse a un lugar conveniente del entorno gráfico.
180
 
181 206 maximiq
\end{enumerate}
182
 
183
 
184
\section{Uso de la interfaz}
185
 
186
Para poder transferir el diseño a la placa el usuario debe realizar la síntesis del proyecto y generar un archivo en formato BIT que es el formato por defecto de Xilinx.
187
 
188
Una ves obtenido el fichero, la PHR ofrece dos posibilidades al momento de descargar el diseño sobre la FPGA. Un método consiste en transferir los datos directamente a la FPGA (\emph{configuración de la FPGA}) y el otro método consiste en transferirlos a la PROM (\emph{programación de la PROM}). El primero es mucho mas rápido pero debido a la volatilidad de la FPGA tiene la desventaja de que se pierde el diseño una vez que el circuito es desenergizado. Contrariamente, el segundo es un procedimiento mas lento pero su ventaja radica en que los datos se conservan en los sucesivos ciclos de encendido y apagado.
189
 
190
La forma en que se setea la FPGA para que ésta tome los datos de una u otra fuente es mediante un selector en donde un jumper se cambia de posición. El hecho se ilustra en la Fig. \ref{cargaFPGA}. Luego el usuario debe interactuar con la interfaz PHR GUI (ver Fig. \ref{phrgui}) para que la computadora efectivamente envíe los datos correspondientes.
191
 
192
\begin{figure}[!h]
193
\centering
194
  \includegraphics{./img/uso/fpgaSelector.pdf}
195
  \caption{Selección de la fuente de carga.}
196
  \label{cargaFPGA}
197
\end{figure}
198
 
199
\begin{figure}[!h]
200
\centering
201
  \includegraphics[width=11cm]{./img/uso/msw9x.png}
202
  \caption{Interfaz de usuario PHR GUI.}
203
  \label{phrgui}
204
\end{figure}
205
 
206
\subsection{Configuración de la FPGA}
207
Procedimiento para transferir el diseño a la FPGA:
208
 
209
\begin{enumerate}
210
\item Coloque el jumper de la PHR para que la FPGA cargue desde JTAG (ver Fig. \ref{cargaFPGA}).
211
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir fichero}.
212 220 maximiq
\item Presione el botón \emph{Configurar FPGA}.
213 206 maximiq
\item El software xc3sprog es invocado y PHR GUI muestra su salida.
214
\item El diseño debe comenzar a funcionar una vez terminado el proceso de descarga.
215
 
216
\end{enumerate}
217
 
218
\subsection{Programación de la PROM}
219
Procedimiento para transferir el diseño a la PROM:
220
 
221
\begin{enumerate}
222
\item Coloque el jumper de la PHR para que la FPGA cargue desde PROM (ver Fig. \ref{cargaFPGA}).
223
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir fichero}.
224
\item Presione el botón \emph{Programar PROM}.
225
\item El software xc3sprog es invocado y PHR GUI muestra su salida.
226
\item Una vez terminado el proceso de programación, presione el botón de RESET en la placa PHR (ver Fig.  \ref{cargaFPGA}) para que la FPGA cargue el diseño.
227
 
228
\end{enumerate}
229
 
230
\subsection{Interpretación de las salidas de texto}
231
 
232
\subsubsection*{Comprobar conexión}
233
 
234
Para verificar que el hardware esté bien conectado se puede recurrir al botón \emph{Comprobar conexión}. Al presionarlo se espera una salida como la siguiente:
235
 
236
\begin{lstlisting}
237 220 maximiq
PHR>>> xc3sprog\xc3sprog -c ftdi -L -j -v
238
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 691 $ OS: Windows
239 206 maximiq
Free software: If you contribute nothing, expect nothing!
240
Feedback on success/failure/enhancement requests:
241
        http://sourceforge.net/mail/?group_id=170565
242
Check Sourceforge for updates:
243
        http://sourceforge.net/projects/xc3sprog/develop
244
 
245 220 maximiq
Using built-in device list
246
Using built-in cable list
247
Cable ftdi type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
248
Using FTD2XX, Using JTAG frequency 1200000
249
JTAG chainpos: 0 Device IDCODE = 0x02218093     Desc: XC3S200A
250
JTAG loc.:   0  IDCODE: 0x02218093  Desc:      XC3S200A Rev: A  IR length:  6
251
JTAG loc.:   1  IDCODE: 0xd5045093  Desc:        XCF02S Rev: M  IR length:  8
252
USB transactions: Write 6 read 4 retries 0
253
 
254
PHR>>>
255 206 maximiq
\end{lstlisting}
256
 
257
Lo importante son las dos últimas líneas en donde se reconocen 2 elementos en la cadena JTAG. En la posición 0 con ID 0x02218093 se encuentra la FPGA (XC3S200A). En la posición 1 con ID 0xd5045093 se encuentra la PROM (XCF02S).
258
 
259
\subsubsection*{Configurar FPGA}
260
 
261 220 maximiq
Al configurar la FPGA se espera esta salida:
262
 
263 206 maximiq
\begin{lstlisting}
264 220 maximiq
PHR>>> xc3sprog\xc3sprog -v -L -c ftdi -p 0 fpgaFile:w:0:BIT
265
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 691 $ OS: Windows
266 206 maximiq
Free software: If you contribute nothing, expect nothing!
267
Feedback on success/failure/enhancement requests:
268
        http://sourceforge.net/mail/?group_id=170565
269
Check Sourceforge for updates:
270
        http://sourceforge.net/projects/xc3sprog/develop
271
 
272 220 maximiq
Using built-in device list
273
Using built-in cable list
274
Cable ftdi type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
275
Using FTD2XX, Using JTAG frequency 1200000
276 206 maximiq
JTAG chainpos: 0 Device IDCODE = 0x02218093     Desc: XC3S200A
277
Created from NCD file: test1_top.ncd;UserID=0xFFFFFFFF
278
Target device: 3s200avq100
279
Created: 2014/03/19 18:31:15
280
Bitstream length: 1196128 bits
281
DNA is 0x95cde80efb9ba0fe
282 220 maximiq
done. Programming time 1044.1 ms
283
USB transactions: Write 84 read 9 retries 0
284
 
285
PHR>>>
286 206 maximiq
\end{lstlisting}
287
 
288 220 maximiq
La penúltima linea es la que indica que la grabación ha finalizado y muestra el tiempo que demoró el proceso.
289
 
290 206 maximiq
\subsubsection*{Programar PROM}
291
 
292 220 maximiq
La salida que se lista está resumida puesto que suele ser muy larga:
293
 
294 206 maximiq
\begin{lstlisting}
295 220 maximiq
PHR>>> xc3sprog\xc3sprog.exe -v -L -c ftdi -p 1 fpgaFile:w:0:BIT
296
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 691 $ OS: Windows
297 206 maximiq
Free software: If you contribute nothing, expect nothing!
298
Feedback on success/failure/enhancement requests:
299
        http://sourceforge.net/mail/?group_id=170565
300
Check Sourceforge for updates:
301
        http://sourceforge.net/projects/xc3sprog/develop
302
 
303 220 maximiq
Using built-in device list
304
Using built-in cable list
305
Cable ftdi type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
306
Using FTD2XX, Using JTAG frequency 1200000
307 206 maximiq
JTAG chainpos: 1 Device IDCODE = 0xd5045093     Desc: XCF02S
308
Erasing......done
309 220 maximiq
Erase time 3129.2 ms
310
Programming does not end at block boundary (nbits = 1196128), padding
311
 
312
Programming block      0/   293 at XCF frame 0x0000.
313
...
314 206 maximiq
Programming block    292/   293 at XCF frame 0x2480.done
315 220 maximiq
Programming time 2802.2 ms
316
 
317
Verify block      0/   293 at XCF frame 0x0000
318
...
319
Verify block    278/   293 at XCF frame 0x22c0
320
VerSuccess! Verify time 1893.1 ms
321
USB transactions: Write 1815 read 906 retries 0
322
 
323
PHR>>>
324 206 maximiq
\end{lstlisting}
325
 
326 220 maximiq
Básicamente se efectúan tres operaciones. Primero se borra la memoria PROM, luego se programa la misma y después se verifican los datos. Para el caso que se muestra (depende de la versión de xc3sprog que se use) la línea que dice \texttt{VerSuccess!} indica que la programación fue exitosa.
327
 
328 206 maximiq
\section{Soluciones a problemas frecuentes}
329
 
330
%\subsection{Instalación}
331
%\subsection{Uso de la interfaz}
332
 
333
\problema{[Windows] Cualquiera de los tres botones, Configurar FPGA, Programar PROM o Comprobar conexión, invocan comandos pero no producen salida alguna}
334
 
335
\solucion{Si la placa OOCDLink no se conectó nunca en la computadora, posiblemente sea necesario instalar la librería para que xc3sprog funcione correctamente. Consulte la sección \ref{sec:instalacion} para instalar la placa.}
336
 
337
 
338 220 maximiq
\problema{[GNU/Linux] Al presionar alguno de los tres botones Configurar FPGA, Programar PROM o Comprobar conexión, se produce una salida similar a: }
339
\begin{lstlisting}
340
PHR>>> ./xc3sprog/xc3sprog -c ftdi
341
/bin/sh: ./xc3sprog/xc3sprog: not found
342 206 maximiq
 
343 220 maximiq
PHR>>>
344
\end{lstlisting}
345
\solucion{PHR GUI v0.1 busca los binarios de xc3sprog en el subdirectorio del mismo nombre y no lo encuentra. Debe descargar el software xc3sprog y ubicarlo en dicho directorio (consulte \emph{Instalación en GNU/Linux}, página \pageref{inst-linux}).}
346 206 maximiq
 
347
 
348 220 maximiq
\problema{[GNU/Linux] Al presionar alguno de los tres botones Configurar FPGA, Programar PROM o Comprobar conexión, se produce una salida similar a:}
349
\begin{lstlisting}
350
HR>>> ./xc3sprog/xc3sprog -c ftdi
351
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 747 $ OS: Linux
352
Free software: If you contribute nothing, expect nothing!
353
Feedback on success/failure/enhancement requests:
354
        http://sourceforge.net/mail/?group_id=170565
355
Check Sourceforge for updates:
356
        http://sourceforge.net/projects/xc3sprog/develop
357
 
358
Could not open FTDI device (using libftdi): inappropriate permissions on device!
359
Unable to access FTDI device with either libftdi or FTD2XX
360
 
361
PHR>>>
362
\end{lstlisting}
363
 
364
\solucion{Posiblemente xc3sprog no tenga permisos para acceder al puerto USB. Debe conceder los permisos (consulte \emph{Instalación en GNU/Linux}, página \pageref{inst-linux}).}
365
 
366 206 maximiq
\end {document}
367
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.