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

Subversion Repositories phr

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 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
%comandos por maximiq
18
\newcommand{\problema}[1]{\vspace{1.5ex}\textbf{Problema: #1}}
19
\newcommand{\solucion}[1]{\vspace{1.5ex}\textbf{Solución:} #1 \vspace{1.5ex}}
20
\newcommand{\PHRGUIver}{v0.1.1}
21
 
22
% Para el titulo
23
\def\logo{./img/title/phr_logo.pdf}
24
\def\producto{Interfaz gráfica de usuario\par \vspace{0.5ex} PHR GUI \PHRGUIver}
25
\title{Guía de Instalación y uso}
26
%\author{Maximiliano Quinteros}
27
\def\docver{0.9}
28
\date{Abril de 2013}
29
 
30
 
31
\hyphenation{ma-ne-ra su-per-u-sua-rio}
32
 
33
\begin {document}
34
 
35
 
36
\maketitle
37
 
38
\tableofcontents
39
 
40
\clearpage
41
 
42
\section{Introducción}
43
 
44 444 guanucolui
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 \textsl{drivers} del sistema operativo al dispositivo concreto.
45 424 maximiq
 
46
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.
47
 
48
\begin{figure}[!h]
49
\centering
50
  \includegraphics{./img/intro/front-end.pdf}
51
  \caption{PHR GUI es una interfaz que facilita el uso de xc3sprog.}
52
%  \label{none}
53
\end{figure}
54
 
55 444 guanucolui
Xc3sprog\footnote{http://xc3sprog.sourceforge.net/} es en realidad un
56
conjunto de aplicaciones de licencia libre que funciona en línea 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.
57 424 maximiq
 
58 444 guanucolui
Es además capaz de funcionar con los controladores propietarios del chip FT2232D o con la librería libre libUSB. Se encuentra disponible para los sistemas GNU/Linux y Windows.
59 424 maximiq
 
60
 
61
\section{Instalación}\label{sec:instalacion}
62
 
63
\subsection{MS Windows}
64 444 guanucolui
Actualmente PHR GUI para Windows funciona con los controladores propietarios ofrecidos por el fabricante del chip FT2232D, Future Technology Devices International\footnote{http://www.ftdichip.com/}.
65 424 maximiq
 
66
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.
67
 
68
A continuación se desarrolla el procedimiento específico para Windows XP.
69
 
70
\subsubsection{Windows XP}
71
 
72
Necesitará el hardware PHR y los siguientes paquetes de software:
73
\begin{description}
74 444 guanucolui
\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 más nueva al momento de la descarga.
75 424 maximiq
 
76
Para descargarlo consulte: \texttt{http://www.ftdichip.com/Drivers/}.
77 444 guanucolui
En la misma página puede ver el procedimiento más detallado de instalación.
78 424 maximiq
 
79
\item[Instalador de PHR GUI \PHRGUIver:] Se puede obtener de la sección de descargas en el sitio web del proyecto: \texttt{http://opencores.org/project,phr,descargas}.
80
 
81
\end{description}
82
 
83
\subsubsection*{Procedimiento:}
84
 
85
\begin{enumerate}
86
 
87 444 guanucolui
\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 más sencilla.
88 424 maximiq
 
89
\begin{center}
90
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ftdi-wiz.pdf}
91
%  \caption{caption.}
92
%  \label{none}
93
\end{center}
94
 
95
Si Windows le muestra una advertencia de que el software no supera la prueba de compatibilidad con Windows XP elija \emph{Continuar}.
96
 
97 444 guanucolui
\item Conectar la PHR al puerto USB de la computadora, la cual debe usar los controladores pre-instalados para configurar dos nuevos dispositivos. A continuación se muestra como cambia el Administrador de dispositivos de Windows.
98 424 maximiq
 
99
\begin{center}
100
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ad-disp.pdf}
101
%  \caption{caption.}
102
%  \label{none}
103
\end{center}
104
 
105
\item Ejecutar el instalador de PHR GUI \PHRGUIver. Una vez terminado el asistente puede optar por abrir el programa que debe estar listo para ser utilizado.
106
 
107
\begin{center}
108
  \includegraphics[width=0.9\textwidth]{./img/instalacion/phr-gui-wiz.pdf}
109
%  \caption{caption.}
110
%  \label{none}
111
\end{center}
112
 
113
\end{enumerate}
114
 
115
 
116
\subsection{GNU/Linux} \label{inst-linux}
117
 
118 444 guanucolui
La instalación en los sistemas GNU/Linux no es necesaria ya que PHR GUI \PHRGUIver es un software desarrollado en el lenguaje Python (versión 2.7.6) y las distribuciones GNU/Linux incluyen un intérprete 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:
119 424 maximiq
 
120
\begin{enumerate}
121
\item Obtener los binarios de xc3sprog. Para esto hay dos opciones:
122
        \begin{enumerate}
123
        \item Descargar desde la web los binarios ya compilados para la arquitectura específica (\texttt{http://sourceforge.net/projects/xc3sprog/}).
124
        \item Descargar desde la web o a través de svn el código fuente del proyecto y compilarlo manualmente (Método recomendado).
125
        \end{enumerate}
126
\emph{Nota:} Xc3sprog hace uso de los paquetes \emph{usblib} y \emph{libftdi}.
127
 
128
\item Desde el sitio web de PHR descargar PHR GUI \PHRGUIver para GNU/Linux.
129
 
130
\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}.
131
 
132
\begin{lstlisting}
133
user@host:~/$ tar -xzf phr-gui-linux.tar.gz
134
user@host:~/$ cd phr-gui-linux
135
user@host:~/phr-gui-linux$ ls
136
crear-enlace.sh  ejemplos  grafica  phr-gui.py
137
\end{lstlisting}
138
 
139
\item PHR GUI buscará el software xc3sprog en el directorio lin/xc3sprog. Se puede mover el directorio o crear un enlace:
140
 
141
\begin{lstlisting}
142
user@host:~/phr-gui-linux$ mkdir lin
143
user@host:~/phr-gui-linux$ ln -s /carpeta/con/los/binarios lin/xc3sprog
144
\end{lstlisting}
145
 
146
\item Para una ejecución correcta de xc3sprog, éste debe tener permisos especiales de superusuario.
147
 
148
\begin{lstlisting}
149
user@host:~/phr-gui-linux$ cd lin/xc3sprog
150
user@host:~/phr-gui-linux/lin/xc3sprog$ su
151
Password:
152
root@host:/home/user/phr-gui-linux/lin/xc3sprog# chown root:root xc3sprog
153
root@host:/home/user/phr-gui-linux/lin/xc3sprog# chmod 4755 xc3sprog
154
root@host:/home/user/phr-gui-linux/lin/xc3sprog# exit
155
user@host:~/phr-gui-linux/xc3sprog$ cd ..
156
user@host:~/phr-gui-linux$
157
\end{lstlisting}
158
 
159
Mediante \texttt{chown} se cambia el propietario del archivo al usuario root. Luego, con \texttt{chmod} se modifican los permisos:
160
 
161
\begin{description}
162
\item[4:] Hace que al ejecutarse el archivo se le asigne el UID del propietario (root).
163
\item[7:] Confiere permisos de lectura, escritura y ejecución al propietario (root).
164
\item[5:] Confiere permisos de lectura y ejecución al grupo.
165
\item[5:] Confiere permisos de lectura y ejecución al resto de los usuarios.
166
\end{description}
167
 
168
 
169
\item Al asignar permisos de ejecución, \texttt{phr-gui.py} debe estar listo para ejecutarse:
170
 
171
\begin{lstlisting}
172
user@host:~/phr-gui-linux$ chmod +x phr-gui.py
173
user@host:~/phr-gui-linux$ ./phr-gui.py
174
\end{lstlisting}
175
 
176
 
177
%\item Para tener una experiencia totalmente gráfica se recomienda crear un lanzador. El script \texttt{crear-lanzador.sh} se encarga de esto.
178
 
179
%\begin{lstlisting}
180
%user@host:~/phr-gui-linux$ chmod +x crear-enlace.sh
181
%user@host:~/phr-gui-linux$ ./crear-lanzador.sh
182
%\end{lstlisting}
183
 
184
%Se genera un nuevo archivo que puede moverse a un lugar conveniente del entorno gráfico.
185
 
186
\end{enumerate}
187
 
188
 
189
\section{Uso de la interfaz}
190
 
191 444 guanucolui
Para poder transferir el diseño a la placa, el usuario debe realizar
192
la síntesis del proyecto y generar un archivo en formato BIT que es el
193
formato por omisión de Xilinx.
194 424 maximiq
 
195 444 guanucolui
Una vez 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 más 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.
196 424 maximiq
 
197 444 guanucolui
La forma en que se configura la FPGA para que ésta tome los datos de una u otra fuente es mediante un selector en donde un \textsl{jumper} se cambia de posición (ver 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.
198 424 maximiq
 
199
\begin{figure}[!h]
200
\centering
201
  \includegraphics{./img/uso/fpgaSelector.pdf}
202
  \caption{Selección de la fuente de carga.}
203
  \label{cargaFPGA}
204
\end{figure}
205
 
206
\begin{figure}[!h]
207
\centering
208
  \includegraphics[width=11cm]{./img/uso/phrgui.png}
209
  \caption{Interfaz de usuario PHR GUI.}
210
  \label{phrgui}
211
\end{figure}
212
 
213
\subsection{Configuración de la FPGA}
214
Procedimiento para transferir el diseño a la FPGA:
215
 
216
\begin{enumerate}
217 444 guanucolui
\item Coloque el \textsl{jumper} de la PHR para que la FPGA cargue desde JTAG (ver Fig. \ref{cargaFPGA}).
218 424 maximiq
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
219
\item Seleccione el dispositivo FPGA.
220
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
221
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
222
\item El diseño debe comenzar a funcionar una vez terminado el proceso.
223
 
224
\end{enumerate}
225
 
226
\subsection{Programación de la PROM}
227
Procedimiento para transferir el diseño a la PROM:
228
 
229
\begin{enumerate}
230 444 guanucolui
\item Coloque el \textsl{jumper} de la PHR para que la FPGA cargue desde PROM (ver Fig. \ref{cargaFPGA}).
231 424 maximiq
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
232
\item Seleccione el dispositivo memoria PROM.
233
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
234
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
235
\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.
236
 
237
\end{enumerate}
238
 
239
\subsection{Interpretación de las salidas de texto}
240
 
241
\subsubsection*{Configurar FPGA}
242
 
243
Al configurar la FPGA se espera esta salida:
244
 
245
\begin{lstlisting}
246
PHR>>> xc3sprog\xc3sprog -v -L -c ftdi -p 0 fpgaFile:w:0:BIT
247
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 691 $ OS: Windows
248
Free software: If you contribute nothing, expect nothing!
249
Feedback on success/failure/enhancement requests:
250
        http://sourceforge.net/mail/?group_id=170565
251
Check Sourceforge for updates:
252
        http://sourceforge.net/projects/xc3sprog/develop
253
 
254
Using built-in device list
255
Using built-in cable list
256
Cable ftdi type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
257
Using FTD2XX, Using JTAG frequency 1200000
258
JTAG chainpos: 0 Device IDCODE = 0x02218093     Desc: XC3S200A
259
Created from NCD file: test1_top.ncd;UserID=0xFFFFFFFF
260
Target device: 3s200avq100
261
Created: 2014/03/19 18:31:15
262
Bitstream length: 1196128 bits
263
DNA is 0x95cde80efb9ba0fe
264
done. Programming time 1044.1 ms
265
USB transactions: Write 84 read 9 retries 0
266
 
267
PHR>>>
268
\end{lstlisting}
269
 
270 444 guanucolui
La penúltima línea es la que indica que la grabación ha finalizado y muestra el tiempo que demoró el proceso.
271 424 maximiq
 
272
\subsubsection*{Programar PROM}
273
 
274
La salida que se lista está resumida puesto que suele ser muy larga:
275
 
276
\begin{lstlisting}
277
PHR>>> xc3sprog\xc3sprog.exe -v -L -c ftdi -p 1 fpgaFile:w:0:BIT
278
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 691 $ OS: Windows
279
Free software: If you contribute nothing, expect nothing!
280
Feedback on success/failure/enhancement requests:
281
        http://sourceforge.net/mail/?group_id=170565
282
Check Sourceforge for updates:
283
        http://sourceforge.net/projects/xc3sprog/develop
284
 
285
Using built-in device list
286
Using built-in cable list
287
Cable ftdi type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
288
Using FTD2XX, Using JTAG frequency 1200000
289
JTAG chainpos: 1 Device IDCODE = 0xd5045093     Desc: XCF02S
290
Erasing......done
291
Erase time 3129.2 ms
292
Programming does not end at block boundary (nbits = 1196128), padding
293
 
294
Programming block      0/   293 at XCF frame 0x0000.
295
...
296
Programming block    292/   293 at XCF frame 0x2480.done
297
Programming time 2802.2 ms
298
 
299
Verify block      0/   293 at XCF frame 0x0000
300
...
301
Verify block    278/   293 at XCF frame 0x22c0
302
VerSuccess! Verify time 1893.1 ms
303
USB transactions: Write 1815 read 906 retries 0
304
 
305
PHR>>>
306
\end{lstlisting}
307
 
308 444 guanucolui
Básicamente se efectúan tres operaciones. Primero se borran toda la
309
memoria, luego se programa y después se verifican los datos en la PROM. 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.
310 424 maximiq
 
311
\section{Soluciones a problemas frecuentes}
312
 
313
%\subsection{Instalación}
314
%\subsection{Uso de la interfaz}
315
 
316
\problema{[Windows] Al presionar \emph{Transferir} no se produce salida alguna}
317
 
318
\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.}
319
 
320
 
321
\problema{[GNU/Linux] Al presionar \emph{Transferir} se produce una salida similar a: }
322
\begin{lstlisting}
323
PHR>>> ./xc3sprog/xc3sprog -c ftdi
324
/bin/sh: ./xc3sprog/xc3sprog: not found
325
 
326
PHR>>>
327
\end{lstlisting}
328
\solucion{PHR GUI \PHRGUIver 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}).}
329
 
330
 
331
\problema{[GNU/Linux] Al presionar \emph{Transferir}, se produce una salida similar a:}
332
\begin{lstlisting}
333
PHR>>> ./xc3sprog/xc3sprog -c ftdi
334
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 747 $ OS: Linux
335
Free software: If you contribute nothing, expect nothing!
336
Feedback on success/failure/enhancement requests:
337
        http://sourceforge.net/mail/?group_id=170565
338
Check Sourceforge for updates:
339
        http://sourceforge.net/projects/xc3sprog/develop
340
 
341
Could not open FTDI device (using libftdi): inappropriate permissions on device!
342
Unable to access FTDI device with either libftdi or FTD2XX
343
 
344
PHR>>>
345
\end{lstlisting}
346
 
347
\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}).}
348
 
349
\end {document}
350
 

powered by: WebSVN 2.1.0

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