Line 11... |
Line 11... |
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\section{El chip FPGA}
|
\section{El chip FPGA}
|
|
|
\subsection{Características principales}
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\subsection{Características principales}
|
|
|
\begin{itemize}
|
\begin{itemize}
|
\item Número de compuertas: 200K
|
\item Número de compuertas: 200K
|
\item Celdas lógicas equivalentes: 4032
|
\item Celdas lógicas equivalentes: 4032
|
\item CLBs: 448 (distribuidos en 32 filas y 16 columnas)
|
\item CLBs: 448 (distribuidos en 32 filas y 16 columnas)
|
\item bits de RAM distribuida: 28K
|
\item Bits de RAM distribuida: 28K
|
\item bits de Bloques de RAM: 288K
|
\item Bits de Bloques de RAM: 288K
|
\item Multiplicadores dedicados: 16
|
\item Multiplicadores dedicados: 16
|
\item DCMs: 4
|
\item DCMs: 4
|
\item Maximo numero de I/O = 248
|
\item Máximo número de E/S = 248
|
\item I/O ppares diferenciales maximo: 112
|
\item E/S pares diferenciales máximo: 112
|
|
|
\end{itemize}
|
\end{itemize}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Descripción de la arquitectura}
|
\subsection{Descripción de la arquitectura}
|
|
|
La familia Spartan-3A tiene cinco bloques fundamentales a tener en cuenta respecto de la arquitectura:
|
La familia Spartan-3A tiene cinco bloques fundamentales a tener en cuenta respecto de la arquitectura:
|
|
|
\begin{description}
|
\begin{description}
|
|
|
\item[Bloques Lógicos Configurables (CLBs)] contienen \textsl{Look-Up Tables} (LUTs) que implementan funciones lógicas y además sirven como elementos de almacenamiento.
|
\item[Bloques Lógicos Configurables (CLBs)] contienen \textsl{Look-Up Tables} (LUTs) que implementan funciones lógicas y además sirven como elementos de almacenamiento.
|
|
|
\item[Bloques de Entrada/Salida (IOBs)] controlan el flujo de datos entre los pines de E/S y la lógica interena del dispositivo. Los IOBs soportan datos en forma bidireccional además de la opercion 3-state.
|
\item[Bloques de Entrada/Salida (IOBs)] controlan el flujo de datos entre los pines de E/S y la lógica interna del dispositivo. Los IOBs soportan datos en forma bidireccional además de la operación 3-state.
|
|
|
\item[Bloque de RAM] sirve como forma de almacenamiento.
|
\item[Bloque de RAM] sirve como forma de almacenamiento.
|
|
|
\item[Bloques multiplicadores] aceptan como entrada dos numeros de 18 bits cada uno y calcula el producto entre ambos.
|
\item[Bloques multiplicadores] aceptan como entrada dos números de 18 bits cada uno y calcula el producto entre ambos.
|
|
|
\item[Bloque DCM (\textsl{Digital Clock Manager})] tiene la capacidad para distribuir, retardar, multiplicar, dividir y desplazar en fase las señales de clock.
|
\item[Bloque DCM (\textsl{Digital Clock Manager})] tiene la capacidad para distribuir, retardar, multiplicar, dividir y desplazar en fase las señales de clock.
|
|
|
\end{description}
|
\end{description}
|
|
|
\begin{figure}[h]
|
\begin{figure}[h]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/arquitectura.pdf}
|
\includegraphics{./img/phr/arquitectura.pdf}
|
\end{center}
|
\end{center}
|
\caption[Bloques fundamentaled de la FOGA]{Bloques fundamentaled de la FPGA.}
|
\caption[Bloques fundamentales de la FPGA]{Bloques fundamentales de la FPGA.}
|
\label{phr:arquitectura}
|
\label{phr:arquitectura}
|
\end{figure}
|
\end{figure}
|
|
|
Para el caso del chip XC3S200A, la Fig. \ref{phr:arquitectura} muestra la organizacion de éstos bloques fundamentales dentro del dipositivo. Los IOBs se ubican alrededor de la matriz de CLBs. Los bloques de memoria RAM se encuentran en dos columnas, en cada una se disponen varios bloques de RAM de 18 Kbit asociados con un multiplicador dedicado. Dos DCM se ubican en el centro hacia arriba y otros dos en el centro hacia abajo.,
|
Para el caso del chip XC3S200A, la Fig. \ref{phr:arquitectura} muestra la organización de estos bloques fundamentales dentro del dispositivo. Los IOBs se ubican alrededor de la matriz de CLBs. Los bloques de memoria RAM se encuentran en dos columnas, en cada una se disponen varios bloques de RAM de 18 Kbit asociados con un multiplicador dedicado. Dos DCM se ubican en el centro hacia arriba y otros dos en el centro hacia abajo.,
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Capacidades de E/S}
|
\subsection{Capacidades de E/S}
|
|
|
La familia Spartan-3A soporta varios estandares para sus entradas y salidas.
|
La familia Spartan-3A soporta varios estándares para sus entradas y salidas que deberán ser configurados apropiadamente para el uso específico.
|
|
|
Para el caso de terminaciones simples éstas FPGAs cumplen con:
|
\begin{itemize}
|
|
\item Terminales simples
|
|
%Para el caso de terminaciones simples estas FPGAs cumplen con:
|
\begin{itemize}
|
\begin{itemize}
|
\item TTL de 3.3V (LVTTL).
|
\item TTL de 3.3V (LVTTL).
|
\item CMOS de bajo voltaje (LVCMOS) en tensiones de 3.3V, 2.5V, 1.8V, 1.5V o 1.2V.
|
\item CMOS de bajo voltaje (LVCMOS) en tensiones de 3.3V, 2.5V, 1.8V, 1.5V o 1.2V.
|
\item PCI de 3.3V a frecuencias de 33MHz o 66MHz.
|
\item PCI de 3.3V a frecuencias de 33MHz o 66MHz.
|
\item HSTL I, II y III a 1.5V y 1.8V (comunmente usado en memorias).
|
\item HSTL I, II y III a 1.5V y 1.8V (comúnmente usado en memorias).
|
\item SSTL I y II a 1.8V, 2.5V y 3.3V (comunmente usado en memorias).
|
\item SSTL I y II a 1.8V, 2.5V y 3.3V (comúnmente usado en memorias).
|
\end{itemize}
|
\end{itemize}
|
|
|
Los estándares con terminacion diferencial que soportan son:
|
%Los estándares con terminación diferencial que soportan son:
|
|
\item Terminales diferenciales
|
\begin{itemize}
|
\begin{itemize}
|
\item Entradas/Salidas LVDS, mini-LVDS, RSDS y PPDS a 2.5V o 3.3V.
|
\item Entradas/Salidas LVDS, mini-LVDS, RSDS y PPDS a 2.5V o 3.3V.
|
\item Bus LVDS a 2.5V.
|
\item Bus LVDS a 2.5V.
|
\item TMDS a 3.3V.
|
\item TMDS a 3.3V.
|
\item HSTL y SSTL diferenciales.
|
\item HSTL y SSTL diferenciales.
|
\item Entradas LVPECL a 2.5V y 3.3V.
|
\item Entradas LVPECL a 2.5V y 3.3V.
|
\end{itemize}
|
\end{itemize}
|
|
\end{itemize}
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Requerimientos de alimentación}\label{phr:alimentacion}
|
\subsection{Requerimientos de alimentación}\label{phr:alimentacion}
|
Line 128... |
Line 138... |
|
|
|
|
Para mas información referida al sistema de alimentación ver el capitulo \ref{s3power:chapter} en la pág. \pageref{s3power:chapter}.
|
Para mas información referida al sistema de alimentación ver el capitulo \ref{s3power:chapter} en la pág. \pageref{s3power:chapter}.
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\section{Configuración de la FPGA}\label{phr:sec:fpga_conf}
|
\section{Configuración de la FPGA}\label{phr:sec:fpga_conf}
|
|
|
La FPGA al inicializarse no contiene dato alguno y para que pase a trabajar como lo desea el usuario debe que pasar por el proceso de configuración. Los datos se cargan desde el exterior en latches de configuración CMOS (CCLs según las iniciales en inglés) y usando alguno de los siguientes siete modos:
|
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:
|
|
|
\begin{itemize}
|
\begin{itemize}
|
\item 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 FLlash 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.
|
\item Slave Serial, tipicamente cargada desde un procesador.
|
\item \textsl{Slave Serial}, típicamente cargada desde un procesador.
|
\item Slave Parallel, tipicamente cargada desde un procesador.
|
\item \textsl{Slave Parallel}, típicamente cargada desde un procesador.
|
\item Boundary Scan (JTAG), tipicamente cargada desde un procesador.
|
\item \textsl{Boundary Scan} (JTAG), típicamente cargada desde un procesador.
|
\item MultiBoot configuration.
|
|
\end{itemize}
|
\end{itemize}
|
|
|
|
La elección de cada uno de los modos se hace mediante tres pines de la FPGA a los que se hace referencia con M[2:0]. La Tabla \ref{phr:modes} muestra cuales son los valores lógicos de los modos aplicables para ésta familia de FPGA, y se resaltan con color aquellos a los que se recurre en la placa PHR.
|
|
|
\begin{table}[h!]
|
\begin{table}[h!]
|
\begin{center}
|
\begin{center}
|
\begin{tabular}{|c|l|}
|
\begin{tabular}{|c|l|}
|
\hline
|
\hline
|
\textbf{Pines M[2:0]} & \textbf{Modo} \\ \hline\hline
|
\textbf{Pines M[2:0]} & \textbf{Modo} \\ \hline\hline
|
\cellcolor{yellow!65}<0:0:0> & \cellcolor{yellow!65} Modo \textsl{Master Serial (Platform Flash)} \\ \hline
|
\cellcolor{yellow!65}<0:0:0> & \cellcolor{yellow!65}Modo \textsl{Master Serial} \\ \hline
|
<0:0:1> & Modo \textsl{Master SPI} \\ \hline
|
<0:0:1> & Modo \textsl{Master SPI} \\ \hline
|
<0:1:0> & \textsl{BPI Up} \\ \hline
|
<0:1:0> & \textsl{BPI Up} \\ \hline
|
<0:1:1> & Reservado \\ \hline
|
<0:1:1> & Reservado \\ \hline
|
<1:0:0> & Reservado \\ \hline
|
<1:0:0> & Reservado \\ \hline
|
\cellcolor{yellow!65}<1:0:1> & \cellcolor{yellow!65}Modo JTAG \\ \hline
|
\cellcolor{yellow!65}<1:0:1> & \cellcolor{yellow!65}Modo JTAG \\ \hline
|
<1:1:0> & Modo \textsl{Slave Parallel} \\ \hline
|
<1:1:0> & Modo \textsl{Slave Parallel} \\ \hline
|
<1:1:1> & Modo \textsl{Slave Serial} \\ \hline
|
<1:1:1> & Modo \textsl{Slave Serial} \\ \hline
|
\end{tabular}
|
\end{tabular}
|
\end{center}
|
\end{center}
|
\caption[Seteo de los modos de configuración]{Seteo de los modos de configuración para la familia Spartan-3A.}
|
\caption[Seteo de los modos de configuración]{Seteo de los modos de configuración para la familia Spartan-3A. Se resaltan con amarillo los usados en la placa PHR.}
|
\label{phr:modes}
|
\label{phr:modes}
|
\end{table}
|
\end{table}
|
|
|
|
En la placa PHR los modos utilizados son el \emph{JTAG} (a través de la placa OOCDLink) y el \emph{Master Serial} (desde la memoria PROM XCF02S). Cuando se elije el primer método se configura el chip con una computadora que debe correr una aplicación al efecto. Asimismo, para aplicar el segundo método, hay que usar la placa OOCDLink para programar la PROM al menos una vez. De ahí en mas, con cada ciclo de arranque de la FPGA, ésta tendrá la posibilidad de trabajar en forma independiente de la computadora cargando los datos pre-grabados en la memoria.
|
|
|
|
La Fig. \ref{phr:confmodes} muestra el diagrama de como se ve la elección del modo de configuración a un nivel físico. Sin puente alguno se leen 3.3V en los pines M0 y M2, mientras que se lee 0V en M1 (la FPGA recibirá los datos desde JTAG). Al colocar un jumper entre los pines 1 y 2 se tira la tensión de M0 y M2 al potencial de masa (la FPGA intentará cargar desde la PROM).
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/config_modes.pdf}
|
\includegraphics{./img/phr/config_modes.pdf}
|
\end{center}
|
\end{center}
|
\caption[Esquematico conf modes]{Conf modes.}
|
\caption[Modos de configuración]{Modos de configuración.}
|
\label{phr:confmodes}
|
\label{phr:confmodes}
|
\end{figure}
|
\end{figure}
|
|
|
\subsection{Memoria PROM}
|
A nivel de usuario la selección se trata simplemente de cambiar la posición del jumper indicado con 5 en la Fig. \ref{intro:componentes}. Una ilustración de las dos posibles vías que toman los datos para alcanzar la FPGA se muestra en la Fig. \ref{phr:confmodes_sche}.
|
|
|
\subsection{Interfaz JTAG}
|
|
|
\begin{figure}[h!]
|
|
\begin{center}
|
|
\includegraphics[width=15cm]{./img/phr/conf_mod_sche.pdf}
|
|
\end{center}
|
|
\caption[Modos de configuración]{Modos de configuración.}
|
|
\label{phr:confmodes_sche}
|
|
\end{figure}
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\section{Fuentes de \textsl{clock}} \label{phr:sec:clocks}
|
\section{Fuentes de \textsl{clock}} \label{phr:sec:clocks}
|
|
|
La placa PHR provee a la FPGA de cuatro fuentes de reloj. El más rápido de los relojes oscila a una frecuencia de 50 MHz, mientras que los otros tres relojes mas lentos tienen una frecuencia seleccionable por usuario. En la Fig. \ref{intro:componentes} se indican con el numero 1 los jumpers con los cuales se eligen las frecuencias para éstos relojes.
|
La placa PHR provee a la FPGA de cuatro fuentes de reloj. Uno de los relojes (el más rápido) tiene una frecuencia de oscilación fija de 50 MHz. El resto tienen frecuencias seleccionables por usuario. En la Fig. \ref{intro:componentes} se indican con el numero 1 los jumpers con los cuales se eligen las frecuencias para estos relojes.
|
|
|
Los pines de la FPGA a los cuales se asignan cada clock se muestran en la Tabla \ref{phr:pines-relojes}. Éstos son pines de \textsl{Global Clock} que están especialmente diseñados para tratar señales de alta frecuencia. Proveen una capacidad muy baja y un retardo uniforme para cada bloque dentro del chip.
|
Los pines de la FPGA a los cuales se asignan cada clock se muestran en la Tabla \ref{phr:pines-relojes}. Estos son pines de \textsl{Global Clock} que están especialmente diseñados para tratar señales de alta frecuencia. Proveen una capacidad asociada muy baja y un retardo uniforme para cada bloque dentro del chip.
|
|
|
\begin{table}[h!]
|
\begin{table}[h!]
|
\begin{center}
|
\begin{center}
|
\begin{tabular}{|c|c|c|c|c|}
|
\begin{tabular}{|c|c|c|c|c|}
|
\hline
|
\hline
|
Line 201... |
Line 223... |
\caption[Pines para los relojes]{Pines para los relojes.}
|
\caption[Pines para los relojes]{Pines para los relojes.}
|
\label{phr:pines-relojes}
|
\label{phr:pines-relojes}
|
\end{table}
|
\end{table}
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{El reloj de 50 MHz}
|
\subsection{El reloj de 50 MHz}
|
|
|
Ésta frecuencia se genera con el dispositivo ACOL-50MHZ-EK, que tiene un oscilador a cristal y encuentra aplicaciones en chips digitales y microprocesadores. Se alimenta con un bajo nivel de tensión (3.3V) y su salida es compatible con HCMOS y TTL.
|
Esta frecuencia se genera con el dispositivo ACOL-50MHZ-EK, que tiene un oscilador a cristal y encuentra aplicaciones en chips digitales y microprocesadores. Se alimenta con un bajo nivel de tensión (3.3V) y su salida es compatible con HCMOS y TTL.
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Relojes seleccionables}\label{phr:sec:clock}
|
\subsection{Relojes seleccionables}\label{phr:sec:clock}
|
|
|
|
El conjunto de relojes se basa en un cristal y el chip contador MC74HC4060A. Una frecuencia principal de 16 MHz es dividida en dos sucesivamente por el contador para obtener todas las frecuencias seleccionables.
|
|
|
Los pines para selección de los relojes se muestran en la Fig. \ref{phr:relojes}. En los primeros dos relojes se puede elegir una de entre cuatro frecuencias mientras que para el tercer reloj se puede elegir una de entre tres frecuencias.
|
Los pines para selección de los relojes se muestran en la Fig. \ref{phr:relojes}. En los primeros dos relojes se puede elegir una de entre cuatro frecuencias mientras que para el tercer reloj se puede elegir una de entre tres frecuencias.
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/relojes.pdf}
|
\includegraphics{./img/phr/relojes.pdf}
|
\end{center}
|
\end{center}
|
\caption[Selectores para los relojes]{Selectores para los relojes.}
|
\caption[Selectores de los relojes en la placa]{Selectores de los relojes en la placa.}
|
\label{phr:relojes}
|
\label{phr:relojes}
|
\end{figure}
|
\end{figure}
|
|
|
El conexionado de los jumpers para los clocks se muestra junto con las posibles frecuencias seleccionables en la Fig. \ref{phr:relojesSeteo}.
|
El conexionado de los jumpers para los clocks se muestra junto con las posibles frecuencias seleccionables en la Fig. \ref{phr:relojesSeteo}.
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/relojesSeteo.pdf}
|
\includegraphics{./img/phr/relojesSeteo.pdf}
|
\end{center}
|
\end{center}
|
\caption[Selectores para los relojes]{Selectores para los relojes.}
|
\caption[Configuración de los relojes]{Disposición de los jumpers para la configuración de los relojes.}
|
\label{phr:relojesSeteo}
|
\label{phr:relojesSeteo}
|
\end{figure}
|
\end{figure}
|
|
|
El oscilador se basa en un cristal y el chip contador MC74HC4060A. Una frecuencia principal de 16 MHz es dividida en dos sucesivamente por el contador para obtener todas las frecuencias seleccionables.
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
Line 262... |
Line 287... |
\end{center}
|
\end{center}
|
\caption[Pines para los LEDs]{Correspondencia entre los pines de la FPGA y los LEDs (periféricos).}
|
\caption[Pines para los LEDs]{Correspondencia entre los pines de la FPGA y los LEDs (periféricos).}
|
\label{phr:LEDpins}
|
\label{phr:LEDpins}
|
\end{table}
|
\end{table}
|
|
|
Los cátodos de cada LED se conectan a potencial cero y los ánodos se conectan a los pines respectivos de la FPGA mediante un resistencia de 330 $\Omega$. Para enecender un determinado LED basta con poner en alto la señal de control.
|
Los cátodos de cada LED se conectan a potencial cero y los ánodos se conectan a los pines respectivos de la FPGA mediante un resistencia de 330 $\Omega$. Para encender un determinado LED basta con poner en alto la señal de control.
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Pulsadores (\textsl{Tact switches})}
|
\subsection{Pulsadores (\textsl{Tact switches})}
|
|
|
Están disponibles cuatro botones pulsadores como los esquematizados en la Fig. \ref{phr:tact} y son identificados con el numero 13 en la Fig. \ref{intro:componentes}. Los mismos son etiquetados como PBTN1, PBTN2, PBTN3 y PBTN4. Los pines de la FPGA relacionados con éstos periféricos se identifican en la Tabla \ref{phr:PBTNpins}. El esquemático detallado del circuito puede encontrarse en el Apéndice \ref{appendix:sche}.
|
Están disponibles cuatro botones pulsadores como los esquematizados en la Fig. \ref{phr:tact} y son identificados con el numero 13 en la Fig. \ref{intro:componentes}. Los mismos son etiquetados como PBTN1, PBTN2, PBTN3 y PBTN4. Los pines de la FPGA relacionados con estos periféricos se identifican en la Tabla \ref{phr:PBTNpins}. El esquemático detallado del circuito puede encontrarse en el Apéndice \ref{appendix:sche}.
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/tact_switch.pdf}
|
\includegraphics{./img/phr/tact_switch.pdf}
|
\end{center}
|
\end{center}
|
Line 288... |
Line 313... |
\hline
|
\hline
|
\textbf{Periférico} & PBTN1 & PBTN2 & PBTN3 & PBTN4 \\ \hline
|
\textbf{Periférico} & PBTN1 & PBTN2 & PBTN3 & PBTN4 \\ \hline
|
\textbf{Pin} & 77 & 78 & 82 & 83 \\ \hline
|
\textbf{Pin} & 77 & 78 & 82 & 83 \\ \hline
|
\end{tabular}
|
\end{tabular}
|
\end{center}
|
\end{center}
|
\caption[Pines para los \textsl{tact switches}]{Correspondencia entre los pines de la FPGA y los botones.}
|
\caption[Pines para los botones]{Correspondencia entre los pines de la FPGA y los botones.}
|
\label{phr:PBTNpins}
|
\label{phr:PBTNpins}
|
\end{table}
|
\end{table}
|
|
|
Cuando se presiona alguno de los botones se genera un valor lógico alto en el pin asociado de la FPGA. No hay circuito antirrebote y ésto debe ser tenido en cuenta al momento de escribir el código que luego vaya a cargarse en el dispositivo.
|
Cuando se presiona alguno de los botones se genera un valor lógico alto en el pin asociado de la FPGA. No hay circuito antirrebote y esto debe ser tenido en cuenta al momento de escribir el código que luego vaya a cargarse en el dispositivo.
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Llaves DIP}
|
\subsection{Llaves DIP}
|
|
|
Alternativamente a los pulsadores se puede optar como periféricos de entrada a unas llaves DIP como se muestran en la Fig. \ref{phr:DIP}. La ubicación de las llaves en la placa PHR se muestra con el índice numero 11 en la Fig. \ref{intro:componentes}. El circuito de éstas llaves puede consultarse en el Apéndice \ref{appendix:sche} y los pines de la FPGA que los controlan se revelan en la Tabla \ref{phr:DIPpins}.
|
Alternativamente a los pulsadores se puede optar como periféricos de entrada a unas llaves DIP como se muestran en la Fig. \ref{phr:DIP}. La ubicación de las llaves en la placa PHR se muestra con el índice numero 11 en la Fig. \ref{intro:componentes}. El circuito de estas llaves puede consultarse en el Apéndice \ref{appendix:sche} y los pines de la FPGA que los controlan se revelan en la Tabla \ref{phr:DIPpins}.
|
|
|
\begin{table}[h!]
|
\begin{table}[h!]
|
\begin{center}
|
\begin{center}
|
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
|
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
|
\hline
|
\hline
|
\textbf{Periférico} & SW1 & SW2 & SW3 & SW4 & SW5 & SW6 & SW7 & SW8 \\ \hline
|
\textbf{Periférico} & SW1 & SW2 & SW3 & SW4 & SW5 & SW6 & SW7 & SW8 \\ \hline
|
\textbf{Pin} & 85 & 88 & 90 & 94 & 97 & 4 & 6 & 9 \\ \hline
|
\textbf{Pin} & 85 & 88 & 90 & 94 & 97 & 4 & 6 & 9 \\ \hline
|
\end{tabular}
|
\end{tabular}
|
\end{center}
|
\end{center}
|
\caption[Pines para las llavess]{Correspondencia entre los pines de la FPGA y las llaves.}
|
\caption[Pines para las llaves]{Correspondencia entre los pines de la FPGA y las llaves.}
|
\label{phr:DIPpins}
|
\label{phr:DIPpins}
|
\end{table}
|
\end{table}
|
|
|
Cuando una llave se coloca en la posición de \emph{encendido}, el pin de la FPGA correspondiente se pone a un valor lógico \emph{alto}. En contraposición, si la llave se coloca en la posicion \emph{apagado}, la FPGA leerá un valor lógico \emph{bajo}. Al igual que con el caso de los botones pulsadores, no se provee un circuito antirrebote, y debe ser tenido en cuenta en el diseño del sistema.
|
Cuando una llave se coloca en la posición de \emph{encendido}, el pin de la FPGA correspondiente se pone a un valor lógico \emph{alto}. En contraposición, si la llave se coloca en la posición \emph{apagado}, la FPGA leerá un valor lógico \emph{bajo}. Al igual que con el caso de los botones pulsadores, no se provee un circuito antirrebote, y debe ser tenido en cuenta en el diseño del sistema.
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/DIPswitch.pdf}
|
\includegraphics{./img/phr/DIPswitch.pdf}
|
\end{center}
|
\end{center}
|
Line 330... |
Line 355... |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Displays de 7 segmentos}
|
\subsection{Displays de 7 segmentos}
|
|
|
La placa PHR cuenta con un display de siete segmentos cuádruple de \emph{ánado comun} indicado con el índice 14 en la Fig. \ref{intro:componentes}. El circuito de conexión entre la FPGA y el display se muestra en la Fig. \ref{phr:quad7seg} y se resalta la denominación alfabética para los segmentos de cada display.
|
La placa PHR cuenta con un display de siete segmentos cuádruple de \emph{ánodo común} indicado con el índice 14 en la Fig. \ref{intro:componentes}. El circuito de conexión entre la FPGA y el display se muestra en la Fig. \ref{phr:quad7seg} y se resalta la denominación alfabética para los segmentos de cada display.
|
|
|
Ésta misma figura además muestra como ejemplo, el estado de los pines de la FPGA para indicar el numero 3 en la posición 2. Al tener ésta configuración, cada LED encenderá con un \emph{nivel bajo} en el pin correspondiente al segmento pero además necesitará que el ánodo del caracter particular esté energizado. Éste ultimo también es activo por bajo (\textsl{active low}).
|
Esta misma figura además muestra como ejemplo, el estado de los pines de la FPGA para indicar el numero 3 en la posición 2. Al tener esta configuración, cada LED encenderá con un \emph{nivel bajo} en el pin correspondiente al segmento pero además necesitará que el ánodo del carácter particular esté energizado. Este ultimo también es activo por bajo (\textsl{active low}).
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/quad7seg.pdf}
|
\includegraphics{./img/phr/quad7seg.pdf}
|
\end{center}
|
\end{center}
|
\caption[Circuito del display de siete segmentos]{Conexionado del display de siete segmentos cuádruple.}
|
\caption[Circuito del display de siete segmentos]{Conexionado del display de siete segmentos cuádruple.}
|
\label{phr:quad7seg}
|
\label{phr:quad7seg}
|
\end{figure}
|
\end{figure}
|
|
|
Para dar el efecto deseado de representar cuatro caracteres distintos a la vez, se recurre a la técnica de multiplexación en el dominio del tiempo. La técnica consiste en mostrar uno a uno y ciclicamente cada caracter a una frecuencia lo suficientemente alta para que el ojo humano persiva una imagen completa. Un diagrama temporal de las señales se muestra en la Fig. \ref{phr:multiplex}.
|
Para dar el efecto deseado de representar cuatro caracteres distintos a la vez, se recurre a la técnica de multiplexación en el dominio del tiempo. La técnica consiste en mostrar uno a uno y cíclicamente cada carácter a una frecuencia lo suficientemente alta para que el ojo humano persiva una imagen completa. Un diagrama temporal de las señales se muestra en la Fig. \ref{phr:multiplex}.
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/multiplex.pdf}
|
\includegraphics{./img/phr/multiplex.pdf}
|
\end{center}
|
\end{center}
|
\caption[Diagrama temporal de la multiplexación]{Diagrama temporal de la multiplexación.}
|
\caption[Diagrama temporal de la multiplexación]{Diagrama temporal de la multiplexación.}
|
\label{phr:multiplex}
|
\label{phr:multiplex}
|
\end{figure}
|
\end{figure}
|
|
|
Si bien el método requiere algo mas de complejidad que la conexion directa a cada segmento de cada display, reduce el numero de pines necesarios de $8 \times 4=32$ a $8+4=12$ lo cuál representa un significativo ahorro en recursos de hardware.
|
Si bien el método requiere algo mas de complejidad que la conexión directa a cada segmento de cada display, reduce el numero de pines necesarios de $8 \times 4=32$ a $8+4=12$ lo cuál representa un significativo ahorro en recursos de hardware.
|
|
|
La Tabla \ref{phr:quad7seg:pines} muestra los pines de conexión de la FPGA a las distintas entradas del periférico. La Fig \ref{phr:quad7seg:chars} muestra las representaciones de los caracteres comunes en los displays de siete segmentos. Además de los dígitos, se pueden utilizar los caracteres desde la A a la F para representar numeros en notación hexadecimal.
|
La Tabla \ref{phr:quad7seg:pines} muestra los pines de conexión de la FPGA a las distintas entradas del periférico. La Fig \ref{phr:quad7seg:chars} muestra las representaciones de los caracteres comunes en los displays de siete segmentos. Además de los dígitos, se pueden utilizar los caracteres desde la A a la F para representar números en notación hexadecimal.
|
|
|
\begin{table}[h!]
|
\begin{table}[h!]
|
\begin{center}
|
\begin{center}
|
|
|
\begin{tabular}{|c|c|c|c|c|}
|
\begin{tabular}{|c|c|c|c|c|}
|
Line 386... |
Line 411... |
\end{center}
|
\end{center}
|
\caption[Caracteres comunes en los displays de 7 segmentos]{Representación de caracteres comunes en los displays de siete segmentos.}
|
\caption[Caracteres comunes en los displays de 7 segmentos]{Representación de caracteres comunes en los displays de siete segmentos.}
|
\label{phr:quad7seg:chars}
|
\label{phr:quad7seg:chars}
|
\end{figure}
|
\end{figure}
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
\subsection{Puerto serie}
|
\subsection{Puerto serie}
|
|
|
La placa PHR dispone de un puerto serial RS-232. El conector DB9 hembra/macho se señala con el numero 15 en la Fig. \ref{intro:componentes}. La placa representa un \textsl{Data Communications Equipment} (DCE) y se puede conectar a una computadora personal con un cable serial derecho.
|
La placa PHR dispone de un puerto serial RS-232. El conector DB9 hembra/macho se señala con el numero 15 en la Fig. \ref{intro:componentes}. La placa representa un \textsl{Data Communications Equipment} (DCE) y se puede conectar a una computadora personal con un cable serial derecho.
|
|
|
La Fig. \ref{phr:3232} muestra el circuito de la interfaz entre la FPGA y el conector DB9. Un chip (ST3232) permite una alimentación de entre 3V y 5.5V y utiliza un conjunto de capacitores para alcanzar los niveles de tensión RS-232, garantizando tasas de transferencia de hasta 250 kbps.
|
La Fig. \ref{phr:3232} muestra el circuito de la interfaz entre la FPGA y el conector DB9. Un chip (ST3232) permite una alimentación de entre 3V y 5.5V y utiliza un conjunto de capacitores para alcanzar los niveles de tensión RS-232, garantizando tasas de transferencia de hasta 250 kbps.
|
|
|
El control de flujo por hardware está desabilitado. Las lineas de DCD, DTR y DSR se conectan entre sí. Analogamente para las señales RTS y CTS.
|
El control de flujo por hardware está deshabilitado. Las lineas de DCD, DTR y DSR se conectan entre sí. Analogamente para las señales RTS y CTS.
|
|
|
Los pines de la FPGA que controlan las señales seriales se muestran en la Tabla \ref{phr:RS232pins}.
|
Los pines de la FPGA que controlan las señales seriales se muestran en la Tabla \ref{phr:RS232pins}.
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/3232.pdf}
|
\includegraphics{./img/phr/3232.pdf}
|
Line 423... |
Line 449... |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%NEW SECTION NEW SECTION NEW SECTION NEW SECTION NEW SECTION%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\section{Entradas y salidas de propósito general} \label{phr:sec:gpio}
|
|
|
\section{reEntradas y salidas de propósito general} \label{phr:sec:gpio}
|
Para que el usuario realice prototipos, use placas de expansión de terceros o diseñe sus propias placas de expansión, se proveen dos conectores, uno macho y otro hembra, que pueden reconocerse respectivamente con los números 2 y 3 en la Fig. \ref{intro:componentes}. Una imagen ampliada se muestra en la Fig. \ref{phr:gpio} indicando además la numeración de los pines. La mayoría de estos pines están conectados directamente al chip FPGA tal como lo muestra la Tabla \ref{phr:GPIOpins}. También se proveen pines de alimentación de 3.3V y GND.
|
|
|
Para que el usuario realice prototipos, use placas de expansión de terceros o diseñe sus propias placas de expansión, se proveen dos conectores, uno macho y otro hembra, que pueden reconocerse respectivamente con los numeros 2 y 3 en la Fig. \ref{intro:componentes}. Una imagen ampliada se muestra en la Fig. \ref{phr:gpio} indicando además la numeración de los pines. La mayoria de éstos pines estan conectados directamente al chip FPGA tal como lo muestra la Tabla \ref{phr:GPIOpins}. También se proveen pines de alimentación de 3.3V y GND.
|
|
|
|
\begin{figure}[h!]
|
\begin{figure}[h!]
|
\begin{center}
|
\begin{center}
|
\includegraphics{./img/phr/gpio_header.pdf}
|
\includegraphics{./img/phr/gpio_header.pdf}
|
\end{center}
|
\end{center}
|
Line 468... |
Line 493... |
FPGA Pin 15 & 5 & 6 & FPGA Pin 13 \\ \hline
|
FPGA Pin 15 & 5 & 6 & FPGA Pin 13 \\ \hline
|
FPGA Pin 12 & 7 & 8 & +3.3V \\ \hline
|
FPGA Pin 12 & 7 & 8 & +3.3V \\ \hline
|
FPGA Pin 10 & 9 & 10 & GND \\ \hline
|
FPGA Pin 10 & 9 & 10 & GND \\ \hline
|
\end{tabular}
|
\end{tabular}
|
\end{center}
|
\end{center}
|
\caption[Pines para las \textsl{GPIO}]{Conexión de los pines para las entradas/salidas de propósitogeneral.}
|
\caption[Pines para las E/S de propósito general]{Conexión de los pines para las entradas/salidas de propósito general.}
|
\label{phr:GPIOpins}
|
\label{phr:GPIOpins}
|
\end{table}
|
\end{table}
|
|
|
No newline at end of file
|
No newline at end of file
|