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

Subversion Repositories phr

[/] [phr/] [trunk/] [doc/] [papers/] [PHR/] [2014-03-12/] [bare_conf.tex] - Diff between revs 193 and 194

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

Rev 193 Rev 194
Line 413... Line 413...
\maketitle
\maketitle
 
 
 
 
\begin{abstract}
\begin{abstract}
 
 
La contaste evolución de los sistemas electrónicos (digitales y analógicos) exige la búsqueda de nuevas herramientas para la formación académica. En el caso del diseños de sistemas digitales una excelente alternativa es el uso placas de evaluación basadas en dispositivos lógicos programables (PLDs). En función de los requerimientos y necesidades académicas que demandan recursos de hardware, y las oportunidades concretas de desarrollar una plataforma personalizada a las necesidades plateadas es que se presenta una plataforma reconfigurable con especificaciones abiertas. Este diseño cuenta con periféricos básicos con que se pueda interactuar en la implementación de sistemas digitales, pero además cuenta con una FPGA (Field Programmable Gate Array) que dispone de una gran cantidad de recursos internos para el uso en sistemas digitales avanzados que requieren gran capacidad de procesamiento. El proyecto se publica en forma libre (licencia GPL) buscando incentivar a otras grupos académicos en la  modificación y adaptación de este trabajo a sus necesidades como así también proponer mejoras en versiones futuras de la plataforma.
La contaste evolución de los sistemas electrónicos (digitales y analógicos) exige la búsqueda de nuevas herramientas para la formación académica. En el caso del diseños de sistemas digitales una excelente alternativa es el uso placas de evaluación basadas en dispositivos lógicos programables (PLDs). En función de los requerimientos y necesidades académicas que demandan recursos de hardware, y las oportunidades concretas de desarrollar una plataforma ajustada a las necesidades plateadas es que se presenta una plataforma reconfigurable con especificaciones abiertas. Este diseño cuenta con una FPGA (Field Programmable Gate Array) que dispone de una gran cantidad de recursos internos para el uso en sistemas digitales avanzados, pero  además cuenta con periféricos básicos con los que se puede interactuar en la implementación de sistemas digitales. El proyecto se publica en forma libre (licencia GPL) buscando incentivar a otras grupos académicos en la  modificación y adaptación de este trabajo a sus necesidades como así también proponer mejoras en versiones futuras de la plataforma.
 
 
\end{abstract}
\end{abstract}
 
 
% IEEEtran.cls defaults to using nonbold math in the Abstract.
% IEEEtran.cls defaults to using nonbold math in the Abstract.
% This preserves the distinction between vectors and scalars. However,
% This preserves the distinction between vectors and scalars. However,
Line 441... Line 441...
% creates the second title. It will be ignored for other modes.
% creates the second title. It will be ignored for other modes.
\IEEEpeerreviewmaketitle
\IEEEpeerreviewmaketitle
 
 
\section{Introducción}
\section{Introducción}
 
 
Las áreas académicas vinculadas a la electrónica y la computación se encuentran en constante demanda de recursos educativos de hardware y software en virtud de potenciar los conocimientos de los estudiantes. En el caso de las tecnologías con poca difusión o implementación en la industria regional, la principal opción en la importación de plataformas educativas adquiridas a empresas destinadas a la manufacturación de sistemas embebidos. Estas plataformas comerciales se clasifican según su implementación por lo que no siempre cubren los requerimientos académicos. Por ejemplo, en el área de las técnicas digitales, los requerimientos de hardware para las cátedras iniciales difieren de las cátedras avanzadas. Esta situación presenta la oportunidad de desarrollar una plataforma a la medida de las necesidades de las instituciones académicas. Si se dispone de las especificaciones por parte de los docentes, la articulación de otras unidades académicas como laboratorios y grupos de investigación, es posible obtener un desarrollo que cubra las expectativas y aliente a la producción regional de plataformas educativas en un marco de transferencia de tecnología.
Las áreas académicas vinculadas a la electrónica y la computación se encuentran en constante demanda de recursos educativos de hardware y software en virtud de potenciar los conocimientos de los estudiantes. En el caso de las tecnologías con poca difusión o implementación en la industria regional, la principal opción en la importación de plataformas educativas adquiridas a empresas destinadas a la manufacturación de sistemas embebidos. Estas plataformas comerciales se clasifican según su implementación por lo que no siempre cubren los requerimientos académicos. Por ejemplo, en el área de las técnicas digitales, los requerimientos de hardware para las cátedras iniciales difieren de las cátedras avanzadas. Esta situación presenta la oportunidad de desarrollar una plataforma a la medida de las necesidades de las instituciones académicas. Si se dispone de las especificaciones por parte de los docentes y la articulación de laboratorios y grupos de investigación, es posible obtener un desarrollo que cubra las expectativas y aliente a la producción regional de plataformas educativas en un marco de transferencia de tecnología.
 
 
En el proceso de aprendizaje de las denominadas Técnicas Digitales necesariamente se debe implementar los diseños digitales. Desde el Álgebra de Bool, con operaciones digitales simples, hasta la implementación de un microprocesador son prácticas comunes de los sistemas digitales lógicos y resulta fundamental su ejercitación para concluir el ciclo de enseñanza.
En el proceso de aprendizaje de las Técnicas Digitales necesariamente se debe implementar los diseños digitales. Desde el Álgebra de Bool, con operaciones digitales simples, hasta la implementación de un microprocesador son prácticas comunes de los sistemas digitales lógicos y resulta fundamental su ejercitación para concluir el ciclo de enseñanza.
 
 
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 de estas plataformas eran diseñadores de arquitecturas de microprocesadores \cite{ASArev.1}, desarrollos que años anteriores resultaban imposibles por el costo de la implementación en hardware. El avance en el proceso de integración de los circuitos integrados han 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 \cite{FPGA-platform-CPU-design}\cite{Low-Cost-Interactive-Rapid-Prototyping}\cite{FPGA-Based-Experiment-Platform-for-Multi-Core-System}, otras con especificaciones abiertas \cite{Building-an-Evolvable-Low-Cost-HWSW-Platform}\cite{NetFPGA} y también con fines comerciales \cite{Port-Emb-Linux-XUP-Virtex-II.Dev-Board}. Todos estos trabajos tienen algunas características en común:
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 \cite{ASArev.1}, desarrollos que años anteriores resultaban dificultoso por el costo de la implementación en hardware. El avance en el proceso de integración de los circuitos integrados han 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 \cite{FPGA-platform-CPU-design}\cite{Low-Cost-Interactive-Rapid-Prototyping}\cite{FPGA-Based-Experiment-Platform-for-Multi-Core-System}, otras con especificaciones abiertas \cite{Building-an-Evolvable-Low-Cost-HWSW-Platform}\cite{NetFPGA} y también con fines comerciales \cite{Port-Emb-Linux-XUP-Virtex-II.Dev-Board}. 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 base es una FPGA
\item El dispositivo lógico programable central es una FPGA
\item Memoria de programación de la FPGA
\item Poseen Memoria de configuración de la FPGA
\item Acceso de programación JTAG
\item El acceso al dispositivo es a través de JTAG
\item Software para interactuar con la plataforma desde una computadora
\item Disponen de algún software para interactuar con la plataforma desde una computadora
\item Dos perfiles de diseño:
\item Tienen dos perfiles de diseño:
  \begin{itemize}
  \begin{itemize}
  \item Para la implementación de sistemas lógicos generales
  \item Para la implementación de sistemas lógicos generales
  \item Orientado a un área específica
  \item Orientado a un área específica
  \end{itemize}
  \end{itemize}
\end{itemize}
\end{itemize}
 
 
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. Sin la especificación de a que usuarios se destina una plataforma, no se puede comenzar con el estudio de los diferentes dispositivos que se utilizarán. La Figura \ref{fig:rec-plataforma} ilustra una clasificación en bloques de los recursos que ofrecen diferentes plataformas basada en dispositivos PLDs. Donde a niveles iniciales en el estudio de la lógica digital se requieren periféricos básicos como ser llaves conmutadoras de los estados lógicos, dispositivos indicadores como diodos LED, etc. Mientras que a estudios más avanzados se requieren otros tipos de dispositivos como ser a un nivel medio controladores para display gráficos LCD/LED, comunicaciones entre varios dispositivos mediante SPI, I2C, etc. Y por últimos, en la formación de especialistas de sistemas embebidos, requieren recursos como interfaces físicos para ethernet, controladores HDMI, PS2, USB, etc.
En función del perfil del usuario de la plataforma se definen los dispositivos que se utilizarán. La Figura \ref{fig:rec-plataforma} ilustra una clasificación en bloques de los recursos que ofrecen diferentes plataformas basada en dispositivos PLDs. A niveles iniciales en el estudio de la lógica digital se requieren periféricos básicos como ser llaves conmutadoras de los estados lógicos, dispositivos indicadores como diodos LED, etc. Mientras que a estudios más avanzados se requieren otros tipos de dispositivos como ser a un nivel medio controladores para display gráficos LCD/LED, comunicaciones entre varios dispositivos mediante SPI, I2C, etc. Y por últimos, en la formación de especialistas de sistemas embebidos, requieren recursos como interfaces físicos para ethernet, controladores HDMI, USB, etc.
 
 
\begin{figure}[!t]
\begin{figure}[!t]
\centering
\centering
\includegraphics[width=5cm]{img/recursos-plataformas}
\includegraphics[width=5cm]{img/recursos-plataformas}
\caption{Recursos de hardware en función de los niveles de aprendizaje.}
\caption{Recursos de hardware en función de los niveles de aprendizaje.}
\label{fig:rec-plataforma}
\label{fig:rec-plataforma}
\end{figure}
\end{figure}
 
 
La mayoría de las plataformas de evaluación comerciales son fabricadas en el exterior del país. Se han encontrado desarrollos nacionales pero no son comercializados sino usados en laboratorios universitarios. Entre las empresas fabricantes de sistemas embebidos basados en dispositivos PLDs, se destacan: Xilix, Altera y Digilent. Los principales perfiles de sus desarrollos se encuentran orientados a,
Se han encontrado desarrollos nacionales usados en laboratorios universitarios. A pesar de ello, la mayoría de las plataformas de evaluación comerciales son fabricadas en el exterior del país. Entre las empresas fabricantes de sistemas embebidos basados en dispositivos PLDs, se destacan: Xilix, Altera y Digilent. Los principales perfiles de sus desarrollos se encuentran orientados a,
 
 
\begin{itemize}
\begin{itemize}
\item Sistemas de comunicaciones
\item Sistemas de comunicaciones
\item Procesamiento de Señales Digitales (DSP)
\item Procesamiento de Señales Digitales (DSP)
\item Automovilismo
\item Automovilismo
Line 480... Line 480...
 
 
En la Figura \ref{fig:board-fpga} se pueden ver tres diferentes plataformas orientadas al diseño de sistemas digitales\footnote{Alguna de estas plataformas disponen de módulos conversores ADC y DAC, por lo que se podría decir que también permiten la implementación de sistemas analógicos en dominio discreto.}. Los recursos de hardware que ofrecen estos desarrollos son:
En la Figura \ref{fig:board-fpga} se pueden ver tres diferentes plataformas orientadas al diseño de sistemas digitales\footnote{Alguna de estas plataformas disponen de módulos conversores ADC y DAC, por lo que se podría decir que también permiten la implementación de sistemas analógicos en dominio discreto.}. Los recursos de hardware que ofrecen estos desarrollos son:
 
 
\begin{itemize}
\begin{itemize}
\item FPGA
\item FPGA
\item Memoria de programación de la FPGA
\item Memoria de configuración de la FPGA
\item Periféricos básicos (LEDs, display, pulsadores, llaves, etc.)
\item Periféricos básicos (LEDs, display, pulsadores, llaves, etc.)
\item Puerto USB
\item Puerto USB
\item Puerto para módulos externos
\item Puerto para módulos externos
\item Puerto para propósitos generales
\item Puerto para propósitos generales
\item Varias señales de reloj (clok)
\item Varias señales de reloj (clok)
\item VGA y PS/2
\item VGA
 
\item PS/2
\item Memorias ROM/RAM
\item Memorias ROM/RAM
\item ADC/DAC
\item ADC/DAC
\end{itemize}
\end{itemize}
 
 
\begin{figure}[!t]
\begin{figure}[!t]
Line 507... Line 508...
  \label{fig:board-fpga}
  \label{fig:board-fpga}
\end{figure}
\end{figure}
 
 
En nuestra región la tecnología PLDs se encuentra en su auge hace unos años. Instituciones gubernamentales de defensa \cite{citedef-ref}, aeroespaciales, comunicaciones \cite{paper-dta-conae} están implementando dispositivos como FPGAs y CPLDs en sus diseños. Además existe una constante actualización por parte de las instituciones académicas en los programas analíticos de las carreras relacionadas a los sistemas embebidos \cite{act-curricula}.
En nuestra región la tecnología PLDs se encuentra en su auge hace unos años. Instituciones gubernamentales de defensa \cite{citedef-ref}, aeroespaciales, comunicaciones \cite{paper-dta-conae} están implementando dispositivos como FPGAs y CPLDs en sus diseños. Además existe una constante actualización por parte de las instituciones académicas en los programas analíticos de las carreras relacionadas a los sistemas embebidos \cite{act-curricula}.
 
 
Considerando la situación expuesta es que se impulsa el desarrollo de la Plataforma de Hardware Reconfigurable (PHR). Esta plataforma es un proyecto a medida de las necesidades en la  enseñanza de los sistemas digitales lógicos en las cátedras iniciales. Ofrece recursos básicos para que los estudiantes interactúen con la tecnología de los dispositivos PLDs, pero también dispone de puertos para conectar otros recursos físicos permitiendo que estudiantes avanzados puedan hacer uso de ellas sin limitaciones. Además al ser publicado bajo licencia libre/abierta permitirá a que el diseño, o parte de él, sirva como referencias a otras instituciones académicas que se encuentren en búsqueda de una plataforma para implementar en sus diferentes cátedras.
Considerando la situación expuesta es que se impulsa el desarrollo de la Plataforma de Hardware Reconfigurable (PHR). Esta plataforma es un proyecto a medida de las necesidades en la  enseñanza de los sistemas digitales lógicos en las cátedras iniciales. Ofrece recursos básicos para que los estudiantes interactúen con la tecnología de los dispositivos PLDs, pero también dispone de puertos para conectar otros recursos físicos permitiendo que estudiantes avanzados puedan hacer uso de ellas sin limitaciones. Además al ser publicado bajo licencia libre/abierta permitirá que el diseño, o parte de él, sirva como referencias a otras instituciones académicas que se encuentren en búsqueda de una plataforma para implementar en sus diferentes cátedras.
 
 
\section{Dispositivos principales}
\section{Dispositivos principales}
 
 
Son varios los dispositivos principales que se deben definir antes de comenzar a conectar algún componente electrónico. Y es que en función de estos dispositivos es que se debe seleccionar los restantes. Se podrían listar estos como:
Son varios los dispositivos principales que se deben definir antes de comenzar a conectar algún componente electrónico. En función de estos dispositivos es que se deben seleccionar los restantes. Se podrían listar:
 
 
\begin{itemize}
\begin{itemize}
\item FPGA
\item FPGA
  \begin{itemize}
\item Memoria de configuración
  \item Memoria de programación
 
  \item Interfaz de programación
 
  \end{itemize}
 
\item Periféricos
 
\item Sistema de potencia
 
\end{itemize}
\end{itemize}
 
 
\subsection{FPGA}
\subsection{FPGA}
\label{sec:fpga}
\label{sec: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
 
 
\begin{itemize}
\begin{itemize}
\item Familia Spartan-3A extendida:
\item Familia Spartan-3A extendida (bajo costo):
  \begin{itemize}
 
  \item Bajo costo
 
    \begin{itemize}
    \begin{itemize}
    \item Spartan-3A
    \item Spartan-3A
      \begin{itemize}
      \begin{itemize}
      \item Ideal para uso de interfaz entre dispositivos.
      \item Ideal para uso de interfaz entre dispositivos.
      \end{itemize}
      \end{itemize}
    \item Spartan-3A DSP
    \item Spartan-3A DSP
      \begin{itemize}
      \begin{itemize}
      \item Mayor densidad de recursos en comparación que la familia Spartan-3A
      \item Mayor densidad de recursos en comparación que la familia Spartan-3A
      \item Dispone de un dispositivo DPS (DSP48A) para el procesamiento de señales digitales
    \item Dispone de un dispositivo DSP (DSP48A)
      \end{itemize}
      \end{itemize}
    \item Spartan-3AN
    \item Spartan-3AN
      \begin{itemize}
      \begin{itemize}
      \item Dispositivos no volátiles
      \item Dispositivos no volátiles
      \item Ideal para aplicaciones con restricciones de espacio
      \item Ideal para aplicaciones con restricciones de espacio
      \end{itemize}
      \end{itemize}
    \end{itemize}
    \end{itemize}
  \end{itemize}
 
\item Familia Spartan-3E
\item Familia Spartan-3E
\item Familia Spartan-3
\item Familia Spartan-3
\end{itemize}
\end{itemize}
 
 
Altara, 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. En la comparación de recursos de hardware y precio del dispositivo FPGA, las FPGAs Spartan-3A presentan un valor aceptable. En un extremo, las Spartan-3A, permiten una gran variedad de modos de programación en contraste con la familia Spartan-3. Por otro lado, no es necesario gran capacidad de procesamiento que justifique la inclusión de un DSP, debido al perfil del usuario de la plataforma que se desarrolla. Se recuerda que la plataforma PHR se destina a la enseñanza de la tecnología descriptiva de hardware. 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, 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 582... Line 575...
XC3S1400A & 1400K & 576K & 32 & 502 \\
XC3S1400A & 1400K & 576K & 32 & 502 \\
\hline
\hline
\end{tabular}
\end{tabular}
\end{table}
\end{table}
 
 
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 a esta FPGA en un encapsulado de pequeñas dimensiones (VQ100) que facilita el diseño del PCB. 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. 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 programación}
\subsection{Memoria de configuración}
\label{sec:mem-prog}
\label{sec:mem-prog}
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 programación, en la Tabla xxx 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 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 xxx 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 611... Line 604...
XC3S1400A & 4,755,296 & XCF08P     \\
XC3S1400A & 4,755,296 & XCF08P     \\
\hline
\hline
\end{tabular}
\end{tabular}
\end{table}
\end{table}
 
 
Tanto la FPGA como la memoria de programación Flash PROM se encuentran conectadas en cadena a través de un interfaz denominado JTAG Boundary-Scan. Xilinx Inc. implementa el estándar IEEE 1149.1 (comúnmente llamado JTAG) en sus dispositivos FPGAs, CPLDs y memorias Flash PROM para la programación mediante un software, y de esta forma transferir el diseños sintetizados en sus dispositivos.
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.
 
 
\subsection{Periféricos}
 
\label{sec:perifericos}
 
 
 
Los periféricos que se implementan en este diseño permiten a los usuarios iniciales realizar prácticas sencillas. Pero también los usuarios avanzados requieren de indicadores de señales lógicas, pulsadores, etc. (Figura \ref{fig:rec-plataforma}). Los periféricos que ofrece la plataforma PHR son:
 
 
 
\begin{itemize}
 
\item Salidas
 
  \begin{itemize}
 
  \item 8 LEDs indicadores
 
  \item Display de 7-segmentos de 4 dígitos
 
  \end{itemize}
 
\item Entradas
 
  \begin{itemize}
 
  \item 8 Llaves (DIP switch)
 
  \item 4 Pulsadores
 
  \item Relojes (Clocks) 50Mhz
 
  \item Divisor de reloj de 16Mhz a $\sim$1Mhz
 
  \end{itemize}
 
\item Entrada/Salida
 
  \begin{itemize}
 
  \item Puerto Serie (RS-232)
 
  \item Puerto con I/O para propósitos generales (conectores IDE)
 
  \end{itemize}
 
\end{itemize}
 
 
 
\subsection{Sistema de alimentación}
\section{Sistema de alimentación}
\label{sec:sist-power}
\label{sec:sist-power}
 
 
Por su arquitectura interna y la gran densidad de recursos lógicos que ofrecen, la necesidad de alimentar estos dispositivos en forma eficiente es una clave en el diseño de la plataforma. Los sistemas complejos como las FPGAs requieren minimizar los ruidos presentes en las fuentes de alimentación y es aquí donde las fuentes de alimentación lineal son las ideales. Pero la desventaja de estos circuitos de alimentación radica en la baja eficiencia que presentan, menor que 50\%. Las fuentes de alimentación conmutadas (Switch-Mode) tienen una eficiencia mayor que el 90\% pero son mas ruidosas comparada a las fuentes lineales \cite{Power-Supply-Soluc-4-Xilinx-FPGAs}. Con esta primera observación sobre los dos principales tipos de fuentes de alimentación, se debe considerar otros aspectos sobre el tipo de regulador a utilizar,
Por su arquitectura interna y la gran densidad de recursos lógicos que ofrecen, la necesidad de alimentar estos dispositivos en forma eficiente es de significancia en el diseño de la plataforma. Los sistemas complejos como las FPGAs requieren minimizar los ruidos presentes en las fuentes de alimentación y es aquí donde las fuentes de alimentación lineales son las ideales. Pero la desventaja de estos circuitos radica en la baja eficiencia que presentan (menor que 50\%). Las fuentes de alimentación conmutadas (Switch-Mode) tienen una eficiencia mayor (al rededor del 90\%) pero son mas ruidosas en comparación con las lineales \cite{Power-Supply-Soluc-4-Xilinx-FPGAs}. Con esta primera observación sobre los dos principales tipos de fuentes de alimentación, se debe considerar otros aspectos sobre el tipo de regulador a utilizar,
 
 
\begin{itemize}
\begin{itemize}
\item Secuencia de arranque
\item Secuencia de arranque
\item Inicio monótona de la rampa de tensión
\item Inicio monotónico de la rampa de tensión
\item Arranque suave
\item Arranque suave
\item Encapsulado y diseño del PCB
\item Encapsulado y diseño del PCB
\end{itemize}
\end{itemize}
 
 
El TPS75003, fabricado por Texas Instruments, es un dispositivo que integra tres reguladores de tensión en una sola pastilla. Este integrado fue diseñado para aplicaciones donde se deben alimentar a FPGAs y DSPs. En especial, el TPS75003 fue testeado con las familias Spartan-3 de Xilinx proporcionando las tensiones necesarias para estas FPGAs. Esta compuesto por dos contradores buck que logran una gran eficiencia y un regulador lineal LDO (Low-Dropout).
El TPS75003, fabricado por Texas Instruments, es un dispositivo que integra tres reguladores de tensión en una sola pastilla. Este integrado fue diseñado para aplicaciones donde se deben alimentar a FPGAs y DSPs. En especial, el TPS75003 fue testeado con las familias Spartan-3 de Xilinx proporcionando las tensiones necesarias para estas FPGAs. Esta compuesto por dos contradores buck que logran una gran eficiencia y un regulador lineal LDO (Low-Dropout).
 
 
El Laboratorio de Desarrollo Electrónico con Software Libre, perteneciente al Instituto Nacional de Tecnología Industrial (INTI), ha realizado la implementación de un módulo de alimentación para placas con dispositivos FPGA \cite{s3power-paper}. En este desarrollo se utiliza el TPS75003 como dispositivo central y fue probado con una FPGA de la familia Spartan-3E. El diseño se encuentra disponible bajo una licencia de libre uso y modificación. Esta última aclaración no resulta un dato menor, pues la plataforma PHR persigue el mismo fin que el desarrollo realizado por el INTI. La idea de compartir y transferir desarrollos a la comunidad. Para la plataforma PHR se utiliza el módulo desarrollado por el INTI.
El Laboratorio de Desarrollo Electrónico con Software Libre, perteneciente al Instituto Nacional de Tecnología Industrial (INTI), ha realizado la implementación de un módulo de alimentación para placas con dispositivos FPGA \cite{s3power-paper}. En este desarrollo se utiliza el TPS75003 como dispositivo central y fue probado con una FPGA de la familia Spartan-3E. El diseño se encuentra disponible bajo una licencia de libre uso y modificación. Esta última aclaración no resulta un dato menor, pues la plataforma PHR persigue el mismo fin que el desarrollo realizado por el INTI. La idea de compartir y transferir desarrollos a la comunidad. Para la plataforma PHR se utiliza el módulo desarrollado por el INTI.
 
 
\section{Placa PHR}
\section{Placa PHR}
\label{sec:placa-phr}
\label{sec:placa-phr}
Luego de las consideraciones sobre los dispositivos principales se presenta una diagrama en bloque de la plataforma PHR. La Figura \ref{fig:phr-bloque} incluye no solo la placa base que contiene la FPGA, la memoria de programación de la FPGA y los periféricos sino también las placas de programación JTAG y la fuente de alimentación para todo el sistema.
Luego de las consideraciones sobre los dispositivos principales se presenta un diagrama en bloque de la plataforma PHR. La Figura \ref{fig:phr-bloque} incluye no solo la placa base que contiene la FPGA, la memoria de configuración de la FPGA y los periféricos sino también las placas de programación JTAG y la fuente de alimentación para todo el sistema.
 
 
\begin{figure}[!t]
\begin{figure}[!t]
\centering
\centering
  \includegraphics[width=0.45\textwidth]{img/block}
  \includegraphics[width=0.45\textwidth]{img/block}
  \caption{Diagrama en bloque de la PHR.}
  \caption{Diagrama en bloque de la PHR.}
Line 681... Line 649...
    \label{fig:foto-phr-s3power}}
    \label{fig:foto-phr-s3power}}
  \caption{Placas PHR y S3Power.}
  \caption{Placas PHR y S3Power.}
  \label{fig:placas-phr-s3power-con}
  \label{fig:placas-phr-s3power-con}
\end{figure}
\end{figure}
 
 
 
\subsection{Periféricos}
 
\label{sec:perifericos}
 
 
 
Los periféricos que se implementan en este diseño permiten a los usuarios iniciales realizar prácticas sencillas. Pero también los usuarios avanzados requieren de indicadores de señales lógicas, pulsadores, etc. (Figura \ref{fig:rec-plataforma}). Los periféricos que ofrece la plataforma PHR son:
 
 
 
\begin{itemize}
 
\item Salidas
 
  \begin{itemize}
 
  \item 8 LEDs indicadores
 
  \item Display de 7-segmentos cuádruples
 
  \end{itemize}
 
\item Entradas
 
  \begin{itemize}
 
  \item 8 Llaves (DIP switch)
 
  \item 4 Pulsadores
 
  \item Relojes (Clocks)
 
    \begin{itemize}
 
    \item 50Mhz
 
    \item Divisor de reloj de 16Mhz a $\sim$1Mhz
 
    \end{itemize}
 
  \end{itemize}
 
\item Entrada/Salida
 
  \begin{itemize}
 
  \item Puerto Serie (RS-232)
 
  \item Puerto con I/O para propósitos generales (conectores IDE)
 
  \end{itemize}
 
\end{itemize}
 
 
\section{Interfaz JTAG}
\section{Interfaz JTAG}
\label{sec:jtag}
\label{sec:jtag}
 
 
La plataforma PHR requiere interactuar con una computadora personal, sobre ésta el usuario realizará su diseño lógico mediante un lenguaje descriptivo de hardware (HDL). Para obtener la síntesis del diseño se utiliza las herramientas de software proporcionadas por el fabricante de la FPGA, que luego se transferirá al dispositivo programable (ya sea directamente sobre la FPGA o almacenando la información sobre la memoria Flash PROM).
La plataforma PHR requiere interactuar con una computadora personal, sobre la cual el usuario realiza su diseño lógico mediante un lenguaje descriptivo de hardware (HDL). Para obtener la síntesis del diseño se utilizan las herramientas de software proporcionadas por el fabricante de la FPGA, Luego se transfiere el diseño directamente a la FPGA o se almacenan los datos sobre la memoria Flash PROM.
 
 
Actualmente el puerto serie y paralelo, muy utilizados antiguamente, están quedando obsoletos. Otra situación presenta el puerto USB, el cual actualmente es el interfaz cableado más utilizado para la comunicación entre una computadora y dispositivos externos.
Actualmente el puerto serie y paralelo, muy utilizados antiguamente, están quedando obsoletos. Otra situación presenta el puerto USB, la cual actualmente es la interfaz cableada más utilizada para la comunicación entre una computadora y dispositivos externos.
 
 
Los requerimientos planteados para el interfaz JTAG son:
Los requerimientos planteados para la interfaz JTAG son:
 
 
\begin{description}
\begin{description}
\item[JTAG] Comunicarse con la plataforma PHR utilizando un dispositivo externo que implemente el estándar IEEE 1149.1.
\item[JTAG] Comunicarse con la plataforma PHR utilizando un dispositivo externo que implemente el estándar IEEE 1149.1.
\item[USB] Comunicarse con una computadora personal a través de este puerto sin restricción al sistema operativo a utilizar (GNU/Linux, Mac OS y Microsoft Windows).
\item[USB] Comunicarse con una computadora personal a través de este puerto sin restricción al sistema operativo a utilizar (GNU/Linux, Mac OS y Microsoft Windows).
\end{description}
\end{description}
 
 
Uno de los dispositivo comerciales que presenta las características anteriormente definidas es el FT2232D fabricado por Future Technology Devices International Ltd. (FTDI). El FT2232D  dispone de un interfaz llamado MPSSE (Multi-Protocol Synchronous Serial Engine). Esta tecnología proporciona un medio flexible para comunicar dispositivos seriales síncronos a un puerto USB\cite{AN-135-MPSSE-Basic}. Por ser ``Multi-Protocolo'', el MPSSE permite comunicar con diferentes tipos de dispositivos síncronos, los más populares son SPI, I$^2$C y JTAG. Otra característica del FT2232D es la disponibilidad de dos canales independientes. De esta forma en uno de los canales se puede implementar JTAG y en otro una UART, funcionalidad muy útil para comunicarse por RS-232 desde una computadora sin puerto serie.  El esquema de la implementación para este dispositivo se presenta en la Figura \ref{fig:oocdlink-bloque}, la placa se denomina OOCDLink\footnote{El nombre OOCDLink es tomado de un desarrollo publicado en una web de sistemas embebidos sobre el cual se baso nuestra placa.}.
Uno de los dispositivo comerciales que presenta las características anteriormente definidas es el FT2232D fabricado por Future Technology Devices International Ltd. (FTDI). El FT2232D  dispone de una interfaz llamada MPSSE (Multi-Protocol Synchronous Serial Engine). Esta tecnología proporciona un medio flexible para comunicar dispositivos seriales síncronos a un puerto USB\cite{AN-135-MPSSE-Basic}. Por ser ``Multi-Protocolo'', el MPSSE permite comunicar con diferentes tipos de dispositivos síncronos, los más populares son SPI, I$^2$C y JTAG. Otra característica del FT2232D es la disponibilidad de dos canales independientes. De esta forma en uno de los canales se puede implementar JTAG y en otro una UART, funcionalidad muy útil para comunicarse por RS-232 desde una computadora sin puerto serie.  El esquema de la implementación para este dispositivo se presenta en la Figura \ref{fig:oocdlink-bloque}, la placa se denomina OOCDLink\footnote{El nombre OOCDLink es tomado de un desarrollo publicado en una web de sistemas embebidos sobre el cual se baso la  placa.}.
\begin{figure*}[!t]
\begin{figure*}[!t]
  \centerline{\subfloat[Esquema de la  FT2232D]{\includegraphics[width=0.35\textwidth]{img/FTblock}%
  \centerline{\subfloat[Esquema de la  FT2232D]{\includegraphics[width=0.35\textwidth]{img/FTblock}%
    \label{fig:oocdlink-bloque}}
    \label{fig:oocdlink-bloque}}
  \hfil
  \hfil
  \subfloat[Placa OOCDLink]{\includegraphics[width=0.2\textwidth]{img/oocdlink_top}%
  \subfloat[Placa OOCDLink]{\includegraphics[width=0.2\textwidth]{img/oocdlink_top}%
Line 709... Line 705...
    \label{fig:oocdlink-phr}}}
    \label{fig:oocdlink-phr}}}
  \caption{Interfaz JTAG (implementación FT2232D).}
  \caption{Interfaz JTAG (implementación FT2232D).}
  \label{fig:oocdlink}
  \label{fig:oocdlink}
\end{figure*}
\end{figure*}
 
 
En la Figura \ref{fig:oocdlink-foto} se presenta una fotografía de la placa OOCDLink. En la misma se puede ver el conector mini-USB para la PC y un conector IDE de 20 pines donde se mapean los pines JTAG. El puerto JTAG de la FPGA y la memoria Flash PROM utiliza solo cuatro pines del estándar IEEE 1149.1 (TDI, TDO, TCK y TMS). Pero la mayoría de los microcontroladores utilizan dos señales más desde el puerto JTAG para realizar debugging. Es por esta razón que la placa OOCDLink utiliza el conector IDE de 20 pines agregando las señales TRST y SRST. En la Figura \ref{fig:oocdlink-phr} se puede ver como se conectarían las placas PHR y OOCDLink. El adaptador puede también ser evitado realizando un cableado simple (no recomendando, solución económica).
En la Figura \ref{fig:oocdlink-foto} se muestra la placa OOCDLink. En la misma se puede ver el conector mini-USB para la PC y un conector IDE de 20 pines donde se mapean las señales de JTAG. El puerto JTAG de la FPGA y la memoria Flash PROM utiliza solo cuatro pines del estándar IEEE 1149.1 (TDI, TDO, TCK y TMS). Pero la mayoría de los microcontroladores utilizan dos señales más desde el puerto JTAG para realizar debugging. Es por esta razón que la placa OOCDLink utiliza el conector IDE de 20 pines agregando las señales TRST y SRST. En la Figura \ref{fig:oocdlink-phr} se puede ver como se conectarían las placas PHR y OOCDLink. El adaptador puede también ser evitado realizando un cableado simple.
 
 
\section{Programación de la PHR}
\section{Proceso de configuración y programación}
 
 
Además de los desarrollos de hardware se desarrollan algunas herramientas de software necesarias para la programación/descarga del diseño lógico en la FPGA/Flash PROM.
Además del hardware se desarrollan algunas herramientas de software necesarias para la configuración/programación del diseño lógico en la FPGA/Flash PROM.
 
 
\subsection{Diseño digital basado en HDL}
\subsection{PHR GUI}
 
 
Los lenguajes descriptivos como VHDL y Verilog se encuentran estandarizados. En el caso de VHDL el estándar ANSI/IEEE 1076-1993 lo define, mientras que para Verilog se estandarizo en la revisión IEEE 1364-1995. Esto asegura que los diseños descritos por estos lenguajes puedan ser reutilizados. Si un fabricante cambia sus librerías, solo bastará con recompilar para poder obtener la síntesis del diseño nuevamente. La implementación del diseño está vinculada con el fabricante de los dispositivos sobre los cuales se piensa trabajar. La simulación del circuito muchas veces resulta útil para una primera aproximación del sistema. Este proceso requiere de información del diseño como así también señales de entradas del sistema (test vectors) con que contrastar las salidas del simulador. Una vez que el sistema responde a las especificaciones se procede a la implementación. El procesos de síntesis proporciona un documento llamado netlist donde describe por completo el diseño sintetizado pero en este caso utiliza compuertas lógicas específicas del fabricante. El proceso de Translate comprende varios programas usados para importar el netlist y prepararlo para la reconfiguración del dispositivo PLD. Los procesos de Fitting y Place and Route corresponden a la designación de los recursos de los dispositivos (compuertas, memorias y otros bloques de hardware) sobre
Para realizar la configuración
 
 
 
\subsubsection{Xc3srog}
 
 
 
\section{Discusión}
 
Existen dos formas de solventar esta demanda, la primera opción es la adquisición de estos recursos a empresas que ofrecen plataformas educativas que cumplan con las especificaciones, pero aquí se presenta una segunda opción que es generar estas plataformas personalizadas a las necesidades de la región. Actualmente se dispone de los conocimientos necesarios para emprender un ciclo de trabajo donde las mismas unidades académicas cubren sus demandas a través de diferentes espacios como son los grupos de investigación y laboratorios
 
 
 
\subsection{Diseño digital basado en HDL}
 
 
 
Los lenguajes descriptivos como VHDL y Verilog se encuentran estandarizados. En el caso de VHDL el estándar ANSI/IEEE 1076-1993 lo define, mientras que para Verilog se estandarizo en la revisión IEEE 1364-1995. Esto asegura que los diseños descritos por estos lenguajes puedan ser reutilizados. Si un fabricante cambia sus librerías, solo bastará con recompilar para poder obtener la síntesis del diseño nuevamente. La implementación del diseño está vinculada con el fabricante de los dispositivos sobre los cuales se piensa trabajar. La simulación del circuito muchas veces resulta útil para una primera aproximación del sistema. Este proceso requiere de información del diseño como así también señales de entradas del sistema (test vectors) con que contrastar las salidas del simulador. Una vez que el sistema responde a las especificaciones se procede a la implementación. El procesos de síntesis proporciona un documento llamado netlist donde describe por completo el diseño sintetizado pero en este caso utiliza compuertas lógicas específicas del fabricante. El proceso de Translate comprende varios programas usados para importar el netlist y prepararlo para la reconfiguración del dispositivo PLD. Los procesos de Fitting y Place and Route corresponden a la designación de los recursos de los dispositivos (compuertas, memorias y otros bloques de hardware) sobre
 
 
 
 
La Figura \ref{fig:flujo-hdl} representa el flujo de diseño que implementan los sistemas digitales descritos con los lenguajes HDL.
La Figura \ref{fig:flujo-hdl} representa el flujo de diseño que implementan los sistemas digitales descritos con los lenguajes HDL.
 
 
\begin{figure}[!t]
\begin{figure}[!t]
Line 733... Line 736...
  \label{fig:flujo-hdl}
  \label{fig:flujo-hdl}
\end{figure}
\end{figure}
 
 
Los diseñadores deber primeramente conocer las especificaciones del sistema digital a describir.
Los diseñadores deber primeramente conocer las especificaciones del sistema digital a describir.
 
 
\subsection{PHR GUI}
 
 
 
Para realizar la programación
 
 
 
\subsubsection{Xc3srog}
 
 
 
\section{Discusión}
 
Existen dos formas de solventar esta demanda, la primera opción es la adquisición de estos recursos a empresas que ofrecen plataformas educativas que cumplan con las especificaciones, pero aquí se presenta una segunda opción que es generar estas plataformas personalizadas a las necesidades de la región. Actualmente se dispone de los conocimientos necesarios para emprender un ciclo de trabajo donde las mismas unidades académicas cubren sus demandas a través de diferentes espacios como son los grupos de investigación y laboratorios
 
 
 
 
 
\section{Conclusiones}
\section{Conclusiones}
 
 
% use section* for acknowledgement
% use section* for acknowledgement
\section*{Acknowledgment}
\section*{Acknowledgment}
 
 

powered by: WebSVN 2.1.0

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