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 206

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
\def\producto{Interfáz gráfica de usuario\par \vspace{0.5ex} PHR GUI v0.1}
20
\title{Guía de Instalación y uso}
21
%\author{Maximiliano Quinteros}
22
\def\docver{BETA}
23
\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
\begin {document}
30
 
31
 
32
\maketitle
33
 
34
\tableofcontents
35
 
36
\clearpage
37
 
38
\section{Introducción}
39
 
40
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.
41
 
42
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.
43
 
44
\begin{figure}[!h]
45
\centering
46
  \includegraphics{./img/intro/front-end.pdf}
47
  \caption{PHR GUI es una interfaz que facilita el uso de xc3sprog.}
48
%  \label{none}
49
\end{figure}
50
 
51
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.
52
 
53
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 Linux y Windows.
54
 
55
 
56
\section{Instalación}\label{sec:instalacion}
57
 
58
\subsection{MS Windows}
59
Actualmente PHR GUI para Windows funciona con los drivers propietarios ofrecidos por el fabricante del chip FT2232D, Future Technology Devices International.
60
 
61
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. Por último instalar la PHR GUI v0.1 que distribuye los binarios de xc3sprog.
62
 
63
A continuación se desarrolla el procedimiento específico para Windows XP.
64
 
65
\subsubsection{Windows XP}
66
 
67
Necesitará el hardware PHR y los siguientes paquetes de software:
68
\begin{description}
69
\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.
70
 
71
Para descargarlo consulte: \texttt{http://www.ftdichip.com/Drivers/}.
72
En la misma página puede ver el procedimiento mas detallado de instalación.
73
 
74
\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,downloads}.
75
 
76
\end{description}
77
 
78
\subsubsection*{Procedimiento:}
79
 
80
\begin{enumerate}
81
 
82
\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.
83
 
84
\begin{figure}[!h]
85
\centering
86
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ftdi-wiz.pdf}
87
%  \caption{caption.}
88
%  \label{none}
89
\end{figure}
90
 
91
Si Windows le muestra una advertencia de que el software no supera la prueba de compatibilidad con Windows XP elija \emph{Contibuar}.
92
 
93
\item Conectar la PHR al USB
94
 
95
PICTURES MISSING
96
 
97
\item Ejecutar el instalador de PHR GUI v0.1.
98
 
99
\begin{figure}[!h]
100
\centering
101
  \includegraphics[width=0.9\textwidth]{./img/instalacion/phr-gui-wiz.pdf}
102
%  \caption{caption.}
103
%  \label{none}
104
\end{figure}
105
 
106
Una vez terminado el asistente puede optar por abrir el programa que debe estar listo para ser utilizado.
107
 
108
\end{enumerate}
109
 
110
 
111
\subsection{Linux}
112
 
113
La instalación en los sistemas Linux no es necesaria ya que PHR GUI v0.1 está desarrollada en el lenguaje Python 2.7.6 y las distribuciones 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:
114
 
115
\begin{enumerate}
116
\item Obtenga los binarios de xc3sprog. Para esto hay dos opciones:
117
        \begin{enumerate}
118
        \item Descargar desde la web los binarios ya compilados para la arquitectura específica (\texttt{http://sourceforge.net/projects/xc3sprog/}).
119
        \item Descargar desde la web o a través de svn el código fuente del proyecto y compilarlo manualmente.
120
        \end{enumerate}
121
\emph{Nota:} Xc3sprog hace uso de los paquetes \emph{usblib} y \emph{libftdi}.
122
 
123
\item Desde el sitio web de PHR descargue PHR GUI v0.1 para Linux.
124
 
125
\item Descomprima el archivo anterior.
126
\begin{lstlisting}
127
user@host:phr-gui$ comando para descomprimir
128
cd ./phr-gui/
129
chmod +x phr-gui.py
130
\end{lstlisting}
131
 
132
\item xc3sprog link
133
 
134
\begin{lstlisting}
135
link
136
\end{lstlisting}
137
 
138
\item ejecucion del programa
139
 
140
\end{enumerate}
141
 
142
 
143
\section{Uso de la interfaz}
144
 
145
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.
146
 
147
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.
148
 
149
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.
150
 
151
\begin{figure}[!h]
152
\centering
153
  \includegraphics{./img/uso/fpgaSelector.pdf}
154
  \caption{Selección de la fuente de carga.}
155
  \label{cargaFPGA}
156
\end{figure}
157
 
158
\begin{figure}[!h]
159
\centering
160
  \includegraphics[width=11cm]{./img/uso/msw9x.png}
161
  \caption{Interfaz de usuario PHR GUI.}
162
  \label{phrgui}
163
\end{figure}
164
 
165
\subsection{Configuración de la FPGA}
166
Procedimiento para transferir el diseño a la FPGA:
167
 
168
\begin{enumerate}
169
\item Coloque el jumper de la PHR para que la FPGA cargue desde JTAG (ver Fig. \ref{cargaFPGA}).
170
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir fichero}.
171
\item Luego presione el botón \emph{Configurar FPGA}.
172
\item El software xc3sprog es invocado y PHR GUI muestra su salida.
173
\item El diseño debe comenzar a funcionar una vez terminado el proceso de descarga.
174
 
175
\end{enumerate}
176
 
177
\subsection{Programación de la PROM}
178
Procedimiento para transferir el diseño a la PROM:
179
 
180
\begin{enumerate}
181
\item Coloque el jumper de la PHR para que la FPGA cargue desde PROM (ver Fig. \ref{cargaFPGA}).
182
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir fichero}.
183
\item Presione el botón \emph{Programar PROM}.
184
\item El software xc3sprog es invocado y PHR GUI muestra su salida.
185
\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.
186
 
187
\end{enumerate}
188
 
189
\subsection{Interpretación de las salidas de texto}
190
 
191
\subsubsection*{Comprobar conexión}
192
 
193
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:
194
 
195
\begin{lstlisting}
196
PHR>>> ./xc3sprog -c ftdiphr
197
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 164 $ OS: Linux
198
Free software: If you contribute nothing, expect nothing!
199
Feedback on success/failure/enhancement requests:
200
        http://sourceforge.net/mail/?group_id=170565
201
Check Sourceforge for updates:
202
        http://sourceforge.net/projects/xc3sprog/develop
203
 
204
Using Libftdi,
205
JTAG loc.:   0  IDCODE: 0x02218093  Desc:    XC3S200A Rev: A  IR length:  6
206
JTAG loc.:   1  IDCODE: 0xd5045093  Desc:      XCF02S Rev: M  IR length:  8
207
\end{lstlisting}
208
 
209
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).
210
 
211
\subsubsection*{Configurar FPGA}
212
 
213
\begin{lstlisting}
214
luis@luis-laptop:build$ ./xc3sprog -v -c ftdiphr -p 0 /media/datos3/temp/xilinx_projects/PHRprojects/test1/test1_top.bit:w:0:BIT
215
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 164 $ OS: Linux
216
Free software: If you contribute nothing, expect nothing!
217
Feedback on success/failure/enhancement requests:
218
        http://sourceforge.net/mail/?group_id=170565
219
Check Sourceforge for updates:
220
        http://sourceforge.net/projects/xc3sprog/develop
221
 
222
Using devlist.txt
223
Using cablelist.txt
224
Cable ftdiphr type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
225
Using Libftdi, Using JTAG frequency   6.000 MHz from undivided clock
226
JTAG chainpos: 0 Device IDCODE = 0x02218093     Desc: XC3S200A
227
Created from NCD file: test1_top.ncd;UserID=0xFFFFFFFF
228
Target device: 3s200avq100
229
Created: 2014/03/19 18:31:15
230
Bitstream length: 1196128 bits
231
DNA is 0x95cde80efb9ba0fe
232
done. Programming time 288.0 ms
233
USB transactions: Write 83 read 9 retries 18
234
\end{lstlisting}
235
 
236
\subsubsection*{Programar PROM}
237
 
238
\begin{lstlisting}
239
luis@luis-laptop:build$ ./xc3sprog -v -c  ftdiphr -p 1 /media/datos3/temp/xilinx_projects/PHRprojects/test1/output/Untitled.mcs:w:0:IHEX
240
XC3SPROG (c) 2004-2011 xc3sprog project $Rev: 164 $ OS: Linux
241
Free software: If you contribute nothing, expect nothing!
242
Feedback on success/failure/enhancement requests:
243
        http://sourceforge.net/mail/?group_id=170565
244
Check Sourceforge for updates:
245
        http://sourceforge.net/projects/xc3sprog/develop
246
 
247
Using devlist.txt
248
Using cablelist.txt
249
Cable ftdiphr type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00
250
Using Libftdi, Using JTAG frequency   6.000 MHz from undivided clock
251
JTAG chainpos: 1 Device IDCODE = 0xd5045093     Desc: XCF02S
252
Erasing......done
253
Erase time 3158.5 ms
254
Programming does not end at block boundary (nbits = 1196432), padding
255
Programming block    292/   293 at XCF frame 0x2480.done
256
Programming time 3236.6 ms
257
Verify block    292/   293 at XCF frame 0x2480
258
Success! Verify time 938.0 ms
259
USB transactions: Write 903 read 890 retries 2040
260
\end{lstlisting}
261
 
262
\section{Soluciones a problemas frecuentes}
263
 
264
%\subsection{Instalación}
265
%\subsection{Uso de la interfaz}
266
 
267
\problema{[Windows] Cualquiera de los tres botones, Configurar FPGA, Programar PROM o Comprobar conexión, invocan comandos pero no producen salida alguna}
268
 
269
\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.}
270
 
271
 
272
\problema{}
273
 
274
\solucion{}
275
 
276
 
277
\end {document}
278
 

powered by: WebSVN 2.1.0

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