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] - Diff between revs 424 and 444

Show entire file | Details | Blame | View Log

Rev 424 Rev 444
Line 39... Line 39...
 
 
\clearpage
\clearpage
 
 
\section{Introducción}
\section{Introducción}
 
 
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.
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.
 
 
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.
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.
 
 
\begin{figure}[!h]
\begin{figure}[!h]
\centering
\centering
  \includegraphics{./img/intro/front-end.pdf}
  \includegraphics{./img/intro/front-end.pdf}
  \caption{PHR GUI es una interfaz que facilita el uso de xc3sprog.}
  \caption{PHR GUI es una interfaz que facilita el uso de xc3sprog.}
%  \label{none}
%  \label{none}
\end{figure}
\end{figure}
 
 
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.
Xc3sprog\footnote{http://xc3sprog.sourceforge.net/} es en realidad un
 
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.
 
 
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.
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.
 
 
 
 
\section{Instalación}\label{sec:instalacion}
\section{Instalación}\label{sec:instalacion}
 
 
\subsection{MS Windows}
\subsection{MS Windows}
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/}.
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/}.
 
 
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.
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.
 
 
A continuación se desarrolla el procedimiento específico para Windows XP.
A continuación se desarrolla el procedimiento específico para Windows XP.
 
 
\subsubsection{Windows XP}
\subsubsection{Windows XP}
 
 
Necesitará el hardware PHR y los siguientes paquetes de software:
Necesitará el hardware PHR y los siguientes paquetes de software:
\begin{description}
\begin{description}
\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.
\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.
 
 
Para descargarlo consulte: \texttt{http://www.ftdichip.com/Drivers/}.
Para descargarlo consulte: \texttt{http://www.ftdichip.com/Drivers/}.
En la misma página puede ver el procedimiento mas detallado de instalación.
En la misma página puede ver el procedimiento más detallado de instalación.
 
 
\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}.
\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}.
 
 
\end{description}
\end{description}
 
 
\subsubsection*{Procedimiento:}
\subsubsection*{Procedimiento:}
 
 
\begin{enumerate}
\begin{enumerate}
 
 
\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.
\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.
 
 
\begin{center}
\begin{center}
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ftdi-wiz.pdf}
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ftdi-wiz.pdf}
%  \caption{caption.}
%  \caption{caption.}
%  \label{none}
%  \label{none}
\end{center}
\end{center}
 
 
Si Windows le muestra una advertencia de que el software no supera la prueba de compatibilidad con Windows XP elija \emph{Continuar}.
Si Windows le muestra una advertencia de que el software no supera la prueba de compatibilidad con Windows XP elija \emph{Continuar}.
 
 
\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.
\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.
 
 
\begin{center}
\begin{center}
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ad-disp.pdf}
  \includegraphics[width=0.9\textwidth]{./img/instalacion/ad-disp.pdf}
%  \caption{caption.}
%  \caption{caption.}
%  \label{none}
%  \label{none}
Line 112... Line 113...
\end{enumerate}
\end{enumerate}
 
 
 
 
\subsection{GNU/Linux} \label{inst-linux}
\subsection{GNU/Linux} \label{inst-linux}
 
 
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 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:
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:
 
 
\begin{enumerate}
\begin{enumerate}
\item Obtener los binarios de xc3sprog. Para esto hay dos opciones:
\item Obtener los binarios de xc3sprog. Para esto hay dos opciones:
        \begin{enumerate}
        \begin{enumerate}
        \item Descargar desde la web los binarios ya compilados para la arquitectura específica (\texttt{http://sourceforge.net/projects/xc3sprog/}).
        \item Descargar desde la web los binarios ya compilados para la arquitectura específica (\texttt{http://sourceforge.net/projects/xc3sprog/}).
Line 185... Line 186...
\end{enumerate}
\end{enumerate}
 
 
 
 
\section{Uso de la interfaz}
\section{Uso de la interfaz}
 
 
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.
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 omisión de Xilinx.
 
 
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.
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.
 
 
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 (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.
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.
 
 
\begin{figure}[!h]
\begin{figure}[!h]
\centering
\centering
  \includegraphics{./img/uso/fpgaSelector.pdf}
  \includegraphics{./img/uso/fpgaSelector.pdf}
  \caption{Selección de la fuente de carga.}
  \caption{Selección de la fuente de carga.}
Line 209... Line 212...
 
 
\subsection{Configuración de la FPGA}
\subsection{Configuración de la FPGA}
Procedimiento para transferir el diseño a la FPGA:
Procedimiento para transferir el diseño a la FPGA:
 
 
\begin{enumerate}
\begin{enumerate}
\item Coloque el jumper de la PHR para que la FPGA cargue desde JTAG (ver Fig. \ref{cargaFPGA}).
\item Coloque el \textsl{jumper} de la PHR para que la FPGA cargue desde JTAG (ver Fig. \ref{cargaFPGA}).
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
\item Seleccione el dispositivo FPGA.
\item Seleccione el dispositivo FPGA.
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
\item El diseño debe comenzar a funcionar una vez terminado el proceso.
\item El diseño debe comenzar a funcionar una vez terminado el proceso.
Line 222... Line 225...
 
 
\subsection{Programación de la PROM}
\subsection{Programación de la PROM}
Procedimiento para transferir el diseño a la PROM:
Procedimiento para transferir el diseño a la PROM:
 
 
\begin{enumerate}
\begin{enumerate}
\item Coloque el jumper de la PHR para que la FPGA cargue desde PROM (ver Fig. \ref{cargaFPGA}).
\item Coloque el \textsl{jumper} de la PHR para que la FPGA cargue desde PROM (ver Fig. \ref{cargaFPGA}).
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
\item Presione el botón Detectar para hacer un reconocimiento de la cadena JTAG.
\item Seleccione el dispositivo memoria PROM.
\item Seleccione el dispositivo memoria PROM.
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
\item Elija el archivo BIT que desea transferir desde el diálogo que surge al presionar el botón \emph{Elegir}.
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
\item Presione el botón \emph{Transferir}. El software xc3sprog es invocado y PHR GUI muestra su salida.
\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.
\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.
Line 262... Line 265...
USB transactions: Write 84 read 9 retries 0
USB transactions: Write 84 read 9 retries 0
 
 
PHR>>>
PHR>>>
\end{lstlisting}
\end{lstlisting}
 
 
La penúltima linea es la que indica que la grabación ha finalizado y muestra el tiempo que demoró el proceso.
La penúltima línea es la que indica que la grabación ha finalizado y muestra el tiempo que demoró el proceso.
 
 
\subsubsection*{Programar PROM}
\subsubsection*{Programar PROM}
 
 
La salida que se lista está resumida puesto que suele ser muy larga:
La salida que se lista está resumida puesto que suele ser muy larga:
 
 
Line 300... Line 303...
USB transactions: Write 1815 read 906 retries 0
USB transactions: Write 1815 read 906 retries 0
 
 
PHR>>>
PHR>>>
\end{lstlisting}
\end{lstlisting}
 
 
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.
Básicamente se efectúan tres operaciones. Primero se borran toda la
 
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.
 
 
\section{Soluciones a problemas frecuentes}
\section{Soluciones a problemas frecuentes}
 
 
%\subsection{Instalación}
%\subsection{Instalación}
%\subsection{Uso de la interfaz}
%\subsection{Uso de la interfaz}

powered by: WebSVN 2.1.0

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