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

Subversion Repositories phr

[/] [phr/] [trunk/] [doc/] [informe-tesis/] [phd-thesis-template-master/] [ProyectoPHR/] [ProyectoPHR.tex] - Diff between revs 302 and 303

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 302 Rev 303
Line 9... Line 9...
\fi
\fi
 
 
\section{Estructura general del proyecto}
\section{Estructura general del proyecto}
\label{sec:estruct-gral}
\label{sec:estruct-gral}
 
 
Al comienzo de la década de los 90s surgieron varios trabajos donde se planteaba la necesidad de una plataforma educativa orientada a la implementación de diseños lógicos digitales basados en PLDs. Los principales demandantes eran diseñadores de arquitecturas de microprocesadores, desarrollos que años anteriores resultaban dificultosos por el costo de la implementación en \textsl{hardware}. El avance en el proceso de integración de los circuitos integrados ha llevado a que se desarrollen plataformas más complejas que ofrecen una gran cantidad de recursos de hardware. Al día de hoy se han generado varios proyectos desarrollados por instituciones académicas, otras con especificaciones abiertas y también con fines comerciales. Todos estos trabajos tienen algunas características en común\footnote{La caracterización anterior no es un intento de generalizar a todas las plataformas educativas basadas en PLDs, pero sí resulta útil para definir el perfil de la plataforma que se describe en este trabajo.}:
Al comienzo de la década de los 90s surgieron varios trabajos donde se planteaba la necesidad de una plataforma educativa orientada a la implementación de diseños lógicos digitales basados en PLDs. Los principales demandantes eran diseñadores de arquitecturas de microprocesadores, desarrollos que años anteriores resultaban dificultosos por el costo de la implementación en \textsl{hardware}. El avance en el proceso de integración de los circuitos integrados ha llevado a que se desarrollen plataformas más complejas que ofrecen una gran cantidad de recursos de hardware. Al día de hoy se han generado varios proyectos desarrollados por instituciones académicas, otras con especificaciones abiertas y también con fines comerciales \cite{Paper-PHR-uEA}. Todos estos trabajos tienen algunas características en común\footnote{La caracterización anterior no es un intento de generalizar a todas las plataformas educativas basadas en PLDs, pero sí resulta útil para definir el perfil de la plataforma que se describe en este trabajo.}:
 
 
\begin{itemize}
\begin{itemize}
\item El dispositivo lógico programable central es una FPGA
\item El dispositivo lógico programable central es una FPGA
\item Poseen Memoria de configuración de la FPGA
\item Poseen Memoria de configuración de la FPGA
\item El acceso al dispositivo es a través de JTAG
\item El acceso al dispositivo es a través de JTAG
Line 71... Line 71...
Los dispositivos principales del proyecto, enunciados en la sección anterior, deben ser definidos al comenzar con el desarrollo. Una vez que se decida porque dispositivos utilizar, los demás componentes electrónicos serán funcionales a estos primeros.
Los dispositivos principales del proyecto, enunciados en la sección anterior, deben ser definidos al comenzar con el desarrollo. Una vez que se decida porque dispositivos utilizar, los demás componentes electrónicos serán funcionales a estos primeros.
 
 
\subsection{Dispositivos FPGA}
\subsection{Dispositivos FPGA}
\label{sec:sel-disp-prin-fpga}
\label{sec:sel-disp-prin-fpga}
 
 
La FPGA que se utiliza pertenece a la familia Spartan-3 de Xilinx Inc. Esta familia a la vez se clasifican en
La FPGA que se utiliza pertenece a la familia Spartan-3 de Xilinx Inc. Esta familia a la vez se clasifican en \cite{Spartan-3-UG}
 
 
\begin{itemize}
\begin{itemize}
\item Familia Spartan-3A extendida (bajo costo):
\item Familia Spartan-3A extendida (bajo costo):
  \begin{itemize}
  \begin{itemize}
  \item Spartan-3A
  \item Spartan-3A
Line 156... Line 156...
  \end{itemize}
  \end{itemize}
\item Familia Spartan-3E
\item Familia Spartan-3E
\item Familia Spartan-3
\item Familia Spartan-3
\end{itemize}
\end{itemize}
 
 
Altera, Atmel y otros fabricantes de FPGAs también presentan familias similares a las Spartan-3. Aquí se optó por Xilinx Inc. debido a la experiencia en software/hardware con que cuenta el Centro de Investigación\footnote{CUDAR -- Centro Universitario de Desarrollo en Automoción y Robótica.} donde se desarrolla el proyecto. La familia extendida Spartan-3A es la que se utiliza en el diseño de la PHR, que   se distingue en la comparativa entre costo y recursos de hardware. Las Spartan-3A, permiten una gran variedad de modos de configuración en contraste con la familia Spartan-3. Por otro lado, no es necesaria una gran capacidad de procesamiento que justifique la inclusión de un DSP, debido al perfil del usuario de la plataforma que se desarrolla. Las principales características de las FPGAs Spartan-3A se describen en la Tabla \ref{tab:char-fpga}.
Altera, Atmel y otros fabricantes de FPGAs también presentan familias similares a las Spartan-3. Aquí se optó por Xilinx Inc. debido a la experiencia en software/hardware con que cuenta el Centro de Investigación\footnote{CUDAR -- Centro Universitario de Desarrollo en Automoción y Robótica.} donde se desarrolla el proyecto. La familia extendida Spartan-3A es la que se utiliza en el diseño de la PHR, que   se distingue en la comparativa entre costo y recursos de hardware. Las Spartan-3A \cite{DS-Spartan-3A}, permiten una gran variedad de modos de configuración en contraste con la familia Spartan-3. Por otro lado, no es necesaria una gran capacidad de procesamiento que justifique la inclusión de un DSP, debido al perfil del usuario de la plataforma que se desarrolla. Las principales características de las FPGAs Spartan-3A se describen en la Tabla \ref{tab:char-fpga}.
 
 
\begin{table}[!t]
\begin{table}[!t]
%increase table row spacing, adjust to taste
%increase table row spacing, adjust to taste
\renewcommand{\arraystretch}{1.3}
\renewcommand{\arraystretch}{1.3}
% if using array.sty, it might be a good idea to tweak the value of
% if using array.sty, it might be a good idea to tweak the value of
Line 191... Line 191...
El dispositivo seleccionado, como se puede ver en la Tabla \ref{tab:char-fpga}, es el XC3S200A. Éste cuenta con una gran densidad de recursos de hardware (200K compuertas lógicas) a la vez que se puede encontrar en un encapsulado de pequeñas dimensiones (VQ100) que facilita el diseño del PCB (Printed Board Circuit). En este encapsulado se puede contar con 68 puertos de entrada/salida (I/O) para ser utilizados externamente a diferentes tecnologías programables (LVTTL, LVCMOS33/25/18, entre otros). El perfil del diseño de la PHR no requiere de una gran cantidad de puertos de I/O debido a las aplicaciones para las que se lo diseña.
El dispositivo seleccionado, como se puede ver en la Tabla \ref{tab:char-fpga}, es el XC3S200A. Éste cuenta con una gran densidad de recursos de hardware (200K compuertas lógicas) a la vez que se puede encontrar en un encapsulado de pequeñas dimensiones (VQ100) que facilita el diseño del PCB (Printed Board Circuit). En este encapsulado se puede contar con 68 puertos de entrada/salida (I/O) para ser utilizados externamente a diferentes tecnologías programables (LVTTL, LVCMOS33/25/18, entre otros). El perfil del diseño de la PHR no requiere de una gran cantidad de puertos de I/O debido a las aplicaciones para las que se lo diseña.
 
 
\subsection{Memoria de configuración}
\subsection{Memoria de configuración}
\label{sec:sel-disp-prin-mem}
\label{sec:sel-disp-prin-mem}
 
 
La tecnología utilizada en las FPGAs Spartan-3A requieren de una memoria externa que configure al dispositivo ya que es volátil. Esta familia permite la utilización de varios tipos de memorias como modos de configuración para embeber el diseño digital en la FPGA. Xilinx comercializa memorias Flash PROM para todas sus familias de FPGA. Hay una relación directa entre la capacidad lógica de una FPGA con el tamaño de la memoria de configuración, en la Tabla \ref{tab:mem-fpga} se puede apreciar esta relación para el caso de la familia Spartan-3A.
La tecnología utilizada en las FPGAs Spartan-3A requieren de una memoria externa que configure al dispositivo ya que es volátil. Esta familia permite la utilización de varios tipos de memorias como modos de configuración para embeber el diseño digital en la FPGA. Xilinx comercializa memorias Flash PROM \cite{Prom-UG} para todas sus familias de FPGA. Hay una relación directa entre la capacidad lógica de una FPGA con el tamaño de la memoria de configuración, en la Tabla \ref{tab:mem-fpga} se puede apreciar esta relación para el caso de la familia Spartan-3A.
 
 
\begin{table}[!t]
\begin{table}[!t]
\renewcommand{\arraystretch}{1.3}
\renewcommand{\arraystretch}{1.3}
\caption{Tipo de memoria para la familia Spartan-3A}
\caption{Tipo de memoria para la familia Spartan-3A}
\label{tab:mem-fpga}
\label{tab:mem-fpga}
Line 221... Line 221...
Tanto la FPGA como la memoria de configuración Flash PROM se encuentran conectadas en cadena a través de una interfaz JTAG Boundary-Scan (IEEE 1149.1) que Xilinx Inc. implementa en sus dispositivos FPGAs, CPLDs y memorias Flash PROM para transferir los diseños sintetizados.
Tanto la FPGA como la memoria de configuración Flash PROM se encuentran conectadas en cadena a través de una interfaz JTAG Boundary-Scan (IEEE 1149.1) que Xilinx Inc. implementa en sus dispositivos FPGAs, CPLDs y memorias Flash PROM para transferir los diseños sintetizados.
 
 
\section{Descripción de las placas}
\section{Descripción de las placas}
\label{sec:desc-placas}
\label{sec:desc-placas}
 
 
La \emph{Plataforma de Hardware Reconfigurable} (PHR) consiste fundamentalmente en tres módulos de soporte físico. El módulo principal es  la \emph{placa PHR} donde se encuentran el chip FPGA, relojes, interfaces de entradas y salidas, periféricos (tales como LEDs, botones, llaves DIP, Displays de siete segmentos), etc.
La \emph{Plataforma de Hardware Reconfigurable} (PHR) consiste fundamentalmente en tres módulos de soporte físico. El módulo principal es  la \emph{placa PHR} donde se encuentran el chip FPGA, relojes, interfaces de entradas y salidas, periféricos (tales como LEDs, botones, llaves DIP, Displays de siete segmentos), etc \cite{PHR-UG}.
 
 
Además tiene conectores especiales para otros dos módulos sin los cuales la placa principal carece de funcionalidad. Uno de ellos se emplea para la regulación de las tensiones que alimentan al resto de los dispositivos. Se trata de la denominada \emph{placa S3Power}. El otro módulo es una interfaz de comunicaciones necesaria para configurar la FPGA o escribir la memoria PROM de configuración y se dispone en la  \emph{placa OOCD Link}.
Además tiene conectores especiales para otros dos módulos sin los cuales la placa principal carece de funcionalidad. Uno de ellos se emplea para la regulación de las tensiones que alimentan al resto de los dispositivos. Se trata de la denominada \emph{placa S3Power}. El otro módulo es una interfaz de comunicaciones necesaria para configurar la FPGA o escribir la memoria PROM de configuración y se dispone en la  \emph{placa OOCD Link}.
 
 
La conexión de las placas auxiliares a la principal se ilustra en la Fig. \ref{intro:conexionado}. La placa S3Power se acopla con los conectores que se indican con los números 8 y 16 en la Fig. \ref{intro:componentes}, mientras que la OOCD Link se une a la principal (mediante un adaptador) con los pines demarcados con 7. Esta última, a diferencia de la S3Power, no precisa estar siempre conectada, pero si cada ves que se desee configurar la FPGA o grabar su memoria PROM.
La conexión de las placas auxiliares a la principal se ilustra en la Fig. \ref{intro:conexionado}. La placa S3Power se acopla con los conectores que se indican con los números 8 y 16 en la Fig. \ref{intro:componentes}, mientras que la OOCD Link se une a la principal (mediante un adaptador) con los pines demarcados con 7. Esta última, a diferencia de la S3Power, no precisa estar siempre conectada, pero si cada ves que se desee configurar la FPGA o grabar su memoria PROM.
 
 
Line 435... Line 435...
%NEW SECTION  NEW SECTION  NEW SECTION  NEW SECTION  NEW SECTION%
%NEW SECTION  NEW SECTION  NEW SECTION  NEW SECTION  NEW SECTION%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
\subsection{Configuración de la FPGA}\label{phr:sec:fpga_conf}
\subsection{Configuración de la FPGA}\label{phr:sec:fpga_conf}
 
 
La FPGA al inicializarse no contiene dato alguno y para que trabaje como lo desea el usuario debe  pasar por el proceso de \emph{configuración}. Los datos se cargan desde el exterior en \textsl{latches} de configuración CMOS (CCLs según las iniciales en inglés) y usando alguno de los siguientes modos aplicables a  la familia Spartan-3A:
La FPGA al inicializarse no contiene dato alguno y para que trabaje como lo desea el usuario debe  pasar por el proceso de \emph{configuración}. Los datos se cargan desde el exterior en \textsl{latches} de configuración CMOS (CCLs según las iniciales en inglés) y usando alguno de los siguientes modos aplicables a  la familia Spartan-3A \cite{Spartan3-Config}:
 
 
\begin{itemize}
\begin{itemize}
\item \textsl{Master Serial} desde una memoria PROM Flash de Xilinx.
\item \textsl{Master Serial} desde una memoria PROM Flash de Xilinx.
\item \textsl{Serial Peripheral Interface} (SPI) desde una memoria Flash SPI.
\item \textsl{Serial Peripheral Interface} (SPI) desde una memoria Flash SPI.
\item \textsl{Byte Peripheral Interface} (BPI) desde una memoria NOR Flash.
\item \textsl{Byte Peripheral Interface} (BPI) desde una memoria NOR Flash.
Line 819... Line 819...
10) Oscilador de 6 MHz.
10) Oscilador de 6 MHz.
}
}
\label{oocdlink:componentes}
\label{oocdlink:componentes}
\end{figure}
\end{figure}
 
 
El dispositivo que cumple la función primordial dentro de la placa OOCDLink es el chip FT2232D. Este es un conversor de USB a UART u otras interfaces seriales que dispone de dos canales de comunicación (\emph{conversor dual}).
El dispositivo que cumple la función primordial dentro de la placa OOCDLink es el chip FT2232D \cite{DS-FT2232D}. Este es un conversor de USB a UART u otras interfaces seriales que dispone de dos canales de comunicación (\emph{conversor dual}).
 
 
Si bien para el fin de configurar la FPGA es suficiente solo uno de los canales (configurado en modo JTAG), en la placa además se encuentra habilitado el segundo canal (configurado como UART) para que se use con propósitos generales. Los conectores para los canales JTAG y UART se indican en la Fig. \ref{oocdlink:componentes} con los números 4 y 1 respectivamente.
Si bien para el fin de configurar la FPGA es suficiente solo uno de los canales (configurado en modo JTAG), en la placa además se encuentra habilitado el segundo canal (configurado como UART) para que se use con propósitos generales. Los conectores para los canales JTAG y UART se indican en la Fig. \ref{oocdlink:componentes} con los números 4 y 1 respectivamente.
 
 
El conector JTAG es el que debe usarse para el acoplamiento con la placa PHR mediante un adaptador que cambia la disposición mecánica de los pines.
El conector JTAG es el que debe usarse para el acoplamiento con la placa PHR mediante un adaptador que cambia la disposición mecánica de los pines.
%El \textsl{layout} de una placa adaptadora se muestra en la Fig. \ref{oocdlink:adaptador}. Tiene como agregado un indicador LED para el voltaje de alimentación y un capacitor de filtro.
%El \textsl{layout} de una placa adaptadora se muestra en la Fig. \ref{oocdlink:adaptador}. Tiene como agregado un indicador LED para el voltaje de alimentación y un capacitor de filtro.
Line 874... Line 874...
 
 
 
 
\section{S3Power}
\section{S3Power}
\label{sec:s3power-placa}
\label{sec:s3power-placa}
 
 
Tal como se describió en el capitulo \ref{sec:phr-placa}, el chip FPGA tiene requerimientos de tensión que deben satisfacerse para que funcione correctamente. Para cumplir con las especificaciones se utiliza la placa S3Power\footnote{Puede consultar el paper \emph{Módulo de alimentación para placas con dispositivos FPGA}, por Christian Huy y Diego Brengi, del \emph{Instituto Nacional de Tecnología Industrial}.}, que fue desarrollada por el \emph{Instituto Nacional de Tecnología Industrial} (INTI) y que está disponible bajo licencia GNU.
Tal como se describió en el capitulo \ref{sec:phr-placa}, el chip FPGA tiene requerimientos de tensión que deben satisfacerse para que funcione correctamente. Para cumplir con las especificaciones se utiliza la placa S3Power\footnote{Puede consultar el paper \emph{Módulo de alimentación para placas con dispositivos FPGA}, por Christian Huy y Diego Brengi, del \emph{Instituto Nacional de Tecnología Industrial}.}, que fue desarrollada por el \emph{Instituto Nacional de Tecnología Industrial} (INTI) y que está disponible bajo licencia GNU \cite{Paper-S3power}.
Una imagen de la placa se muestra en la Fig. \ref{s3power:componentes} en donde también se señalan sus principales elementos.
Una imagen de la placa se muestra en la Fig. \ref{s3power:componentes} en donde también se señalan sus principales elementos.
 
 
\begin{figure}[h]
\begin{figure}[h]
\begin{center}
\begin{center}
  \includegraphics{./img/s3power/s3power_top.pdf}
  \includegraphics{./img/s3power/s3power_top.pdf}

powered by: WebSVN 2.1.0

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