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 280 and 281

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

Rev 280 Rev 281
Line 278... Line 278...
\item Oscilador con zócalo.
\item Oscilador con zócalo.
\item Alimentación simple de 5V.
\item Alimentación simple de 5V.
\item Dimensiones de 7x7 cm.
\item Dimensiones de 7x7 cm.
\end{itemize}
\end{itemize}
 
 
 
Estas primeras experiencias locales resulta alentadoras para realizar nuestros propios recursos académicos para la enseñanza de tecnologías programables como son los PLDs. Si bien los proyectos realizados por el INTI aún no se encuentran comercializados, se encuentran antecedentes de la transferencia de estos desarrollos a instituciones académicas.
 
 
 
Tantos los desarrollos comerciales como los académicos presentan perfiles de \textsl{hardware} similares y no es casualidad pues son los recursos que se necesitan para la enseñanza y ejercitación en un ámbito académicos y de protipado. Por lo tanto son estos diseños que nos sirven como referencias para plantear y definir que recursos físicos se debe disponer para la \emph{Plataforma de Hardware Reconfigurable}.
 
 
\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.}:
 
 
 
\begin{itemize}
 
\item El dispositivo lógico programable central es una FPGA
 
\item Poseen Memoria de configuración de la FPGA
 
\item El acceso al dispositivo es a través de JTAG
 
\item Disponen de algún software para interactuar con la plataforma desde una computadora
 
\item Tienen dos perfiles de diseño:
 
  \begin{itemize}
 
  \item Para la implementación de sistemas lógicos generales
 
  \item Orientado a un área específica
 
  \end{itemize}
 
\end{itemize}
 
 
 
En función del perfil del usuario de la plataforma se definen los dispositivos que se utilizarán. La Tabla \ref{tab:rec-plataforma} ilustra una clasificación 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 estados lógicos, pulsadores, dispositivos indicadores como diodos LED, etc. A un nivel medio se manejan controladores para display gráficos LCD/LED, comunicaciones entre varios dispositivos mediante SPI, I2C, etc. Y por último, en la formación de especialistas de sistemas embebidos, se requieren recursos como interfaces físicos para ethernet, controladores HDMI, USB, y otros más.
 
 
 
\begin{table}[!t]
 
\renewcommand{\arraystretch}{1.3}
 
\caption{Recursos de hardware en función de los niveles de aprendizaje}
 
\label{tab:rec-plataforma}
 
\centering
 
\begin{tabular}{|l|c|c|c|}
 
\hline
 
\multirow{2}{*}{Nivel} & Llaves/pulsadores & ADC\&DAC/SPI & USB/ETH \\
 
                       & Diodos LED & Display LCD/VGA & HDMI \\
 
\hline
 
Inicial & $\checkmark$ & & \\
 
\hline
 
Medio & $\checkmark$ & $\checkmark$ & \\
 
\hline
 
Avanzado & $\checkmark$ & $\checkmark$ & $\checkmark$ \\
 
\hline
 
\end{tabular}
 
\end{table}
 
 
 
La estructura del proyecto \emph{Plataforma de Hardware Reconfigurable} debe ser un proyecto a medida de las necesidades en la  enseñanza de los sistemas digitales lógicos en las cátedras iniciales. Se debe ofrecen 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. Al ser publicado bajo licencia libre/abierta permitirá que el diseño, o parte de él, sirva como referencia a otras instituciones académicas que se encuentren en búsqueda de una plataforma para implementar en sus diferentes cátedras.
 
 
\section{Definición de estructura de las placas}
\section{Definición de estructura de las placas}
\label{sec:def-estr-placas}
\label{sec:def-estr-placas}
 
 
 
Las dimensiones y disposiciones de las diferentes placas que forman este proyecto también ha requerido un previo análisis por parte de los desarrolladores. Si bien parece un tema trivial, las consecuencias de las definiciones a tomar implican alteraciones tanto funcionales como económicas.
 
 
 
Como se describió en la Sección \ref{sec:estruct-gral}, en esta parte del desarrollo se conoce que dispositivos electrónicos se van a incluir en nuestro proyecto como así también las dimensiones y distribuciones que se puede tomar. Los principales dispositivos que requieren mayor importancia y que definirán la estructura física del diseño son:
 
 
 
\begin{itemize}
 
\item Dispositivo Lógico Programable (FPGA)
 
\item Memoria de programación
 
\item Interfaz USB-JTAG
 
\item Sistema de alimentación
 
\item Periféricos
 
\end{itemize}
 
 
 
Las primeras observaciones que se hicieron sobre estos puntos fue la posibilidad de dar el mayor uso y flexibilidad a todos los recursos a implementar. Por ejemplo, para el caso del interfaz USB-JTAG se podría implementar en forma aislada a la placa principal del proyecto. Eso permitiría que reutilizar esta interfaz con otros proyectos. Pero si esto se realizara se incrementaría el costo del proyecto pues se necesitaría fabricar una placa aislada que, si bien puede que ocupe el mismo área que si se integraría el diseño a la placa principal, los costos de fabricación son mayores. Además, por el perfil del proyecto, se intentó implementar diseños publicados en forma libre por la comunidad de \emph{Hardware Libre}. Un ejemplo de esto es la decisión de utilizar el sistema de alimentación desarrollado por el Instituto Nacional de Tecnología Industrial, lo que se describirá con mayor detalle en secciones futura. En definitiva, todos los análisis llevaron a la diseño e implementación de tres placas que integran todos los requerimientos planteados al iniciar el desarrollo.
 
 
\section{Selección de dispositivos principales}
\section{Selección de dispositivos principales}
\label{sec:sel-disp-prin}
\label{sec:sel-disp-prin}
 
 
 
 
 
Dispositivo seleccionado – Familia Spartan A/AN
 
Características
 
                -Bajo Costo
 
                        Posee muchas prestaciones dependiendo del dispositivo, éstos son:
 
                        +Spartan-3A
 
                        +Spartan-3A DSP
 
                        +Spartan-3AN
 
Dependiendo de la aplicación debemos recurrir a la documentación del fabricante donde se especifica los recursos que tiene cada tipo de Spartan-3 como ser Cantidad de bloques lógicos, pines, I/O disponibles, uP embebidos, Voltage de alimentación, modo de configuración, DSP, etc.
 
Datos interesantes en las características,
 
        \_Vin\_máx: 4,6V. Compatible con fuentes de 3.3V +/- 10%
 
        \_señales estándar: LVCMOS, LVTTL, HSTL y SSTL.
 
        \_driver de salida hasta 24mA.
 
        \_tasa de transferencia 622Mb/s.
 
        \_18x18 multiplicadores dedicados con pipeline opcional
 
        \_Puerto programación/debug JTAG IEEE 1149.1/1532.
 
        \_Digital Clock Manager (DCMs) /*BUSCAR*/
 
                Rango de frecuencia 5Mhz hasta 300Mhz.
 
        \_ Ocho global clock.
 
        \_Interface de configuración para PROMs estándar.
 
                -PROM flash SPI, bajo costo.
 
                -PROM flash NOR paralelo x8 o x8/x16.
 
        \_reconfiguración automática Multi-boot entre dos archivos.
 
        \_Package de bajo costo QFP y BGA
 
Resumen de la arquitectura
 
        La arquitectura de la Spartan-3 consiste de cinco elementos fundamentales funcionales programables:
 
                \_Configurable Logic Block (CLBs) contienen flexibles Look-Up Tables (LUTs) que implentan elementos lógicos usados como flip-flop o latch.
 
                \_Input/Output Blocks (IOBs) controla el flujo de datos entre los pines de I/O y la lógica interna del dispositivo. Los IOBs soportan flujo de datos bidireccionales además de operaciones 3-state.
 
                \_Block RAM provee almacenamiento de datos en la forma de bloques dual-port de 18Kbit.
 
                \_Multiplier Blocks toma dos números binarios de 18bit como entrada y calcula el producto. La línea Spartan-3A DSP incluye bloques especiales DSP.
 
                \_Digital Clock Manager (DCM) Block proporciona auto-calibración, retardos, multiplicadores, divisores, y señales de clock de cambio de fase (phase-shifting).
 
Configuración
 
        La generación de FPGAs Spartan-3 son programadas por la carga de datos de configuración en dispositivos sólidos, reprogramables, static CMOS configuration latches (CCLs) que en conjunto controla todo los elementos funcionales y designan las fuentes. El dato de configuración de las FPGA es almacenado en dispositivos externos como una PROM o algún dispositivo no-volátil.
 
Capacidades de I/O
 
        Aquí es interesante ver el consumo de cada familia, el mejor de todos es la Spartan-3, hasta 24mA para 3.3V y el peor de todos es la Spartan-3E con una corriente máxima de 16mA a 3.3V. /* RECORDAR QUE ÉSTO DEPENDE TAMBIÉN SI UTILIZAMOS LAS I/O A MODO COMÚN O DIFERENCIAL.*/
 
 
 
Utilizando los recursos Globales de Clock.
 
        Especifican los recursos que ofrecen todas las familias de Spartan-3, especificaciones tanto de conexionado como de rendimiento.
 
En la figura 2-1 se observa cuál es el camino que sigue las señales de clock. Una aplicación interesante del DCM es introducirlo entre el GCLK pad  y el BUFGMUX para manejar la frecuencia del clock (por ej. divisor).
 
=Entrada de clock Spartan-3E
 
        En ésta familia, evitar usar la entrada global clock GCLK1 ya que siempre es compartido con el pin selector M2. Las entradas global clock GCLK0, 2, 3, 12, 13,14 y GCLK15 tiene funcionalidades compartidas en algunos modos de configuración, y todas las entradas RHCLK comparten funcionalidades con líneas de direccionamiento en el modo BPI. Asegurar que no exista conflicto entre el uso de lo spines durante la configuración es algo que siempre se aconseja.
 
También en la familia Spartan-3E, algunos de los pines pad son solo pines de entrada como se indica en la sección "Pinout Descriptions"  de la hoja de datos. Esto podría ser más útil como entrada de clock ya que éstos pines no requiere usar el modo pin I/O.
 
Utilizando recursos I/O
 
        Todas las señales que entran y salen de la FPGA deben pasar a través de los recursos I/O, conocidos como IOBs. Ya que las FPGAs son usadas en muchas aplicaciones complejas, éstos dispositivos deben soportan un incremento variable de I/O. La revolucionaría SelectIO (patentado por xilinx), que contiene la Spartan-3 reúne ésta necesidad proporcionando una enorme configurabilidad, alto performance de recursos adecuados para aplicaciones como son memorias de alta velocidad y interfaces de placas complejas programables.
 
 
 
La generación de FPGA Spartan-3 simplifica diseños de alto-performance ofreciendo un seleccionable diseño I/O estándar para entrada y salida. Más de 20 diferentes estándares son soportados en cada familia, con diferentes especificaciones de corriente, voltaje, I/O baffering, y terminaciones técnicas. Como un resultado, la generación de FPGA Spartan-3 puede ser usada para transformadas integrales discreta y drive direccional en muchas placas avanzadas, buses, y memorias. Directamente proporciona el interface estándar necesario no solo para eliminar el costo externo de traslación, sino también mejora significativamente la velocidad de chip-to-chip y reduce el consumo de potencia.
 
 
\section{Descripción de las placas}
\section{Descripción de las placas}
\label{sec:desc-placas}
\label{sec:desc-placas}
 
 
\subsection{PHR}
\subsection{PHR}
\label{sec:phr-placa}
\label{sec:phr-placa}

powered by: WebSVN 2.1.0

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