URL
https://opencores.org/ocsvn/phr/phr/trunk
Subversion Repositories phr
Compare Revisions
- This comparison shows the changes necessary to convert path
/phr/trunk
- from Rev 162 to Rev 163
- ↔ Reverse comparison
Rev 162 → Rev 163
/doc/informe-tesis/reports/schedule_2013-03-20/schedule.toc
6,7 → 6,7
\contentsline {subsection}{\numberline {2.3}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{3} |
\contentsline {subsection}{\numberline {2.4}Agregar un \ac {TAP}}{4} |
\contentsline {subsection}{\numberline {2.5}Multiples \ac {TAP}}{5} |
\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n \ac {CPLD}}{5} |
\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n del \ac {CPLD}}{5} |
\contentsline {subsection}{\numberline {2.7}\textsl {Debugging}}{6} |
\contentsline {section}{\numberline {3}\textsl {Software} \emph {xc3sprog}}{7} |
\contentsline {subsection}{\numberline {3.1}Instalaci\IeC {\'o}n del \textsl {software} xc3sprog}{7} |
14,8 → 14,10
\contentsline {subsubsection}{\numberline {3.2.1}Configuraci\IeC {\'o}n del \textsl {interface}}{8} |
\contentsline {subsubsection}{\numberline {3.2.2}Dispositivos soportados}{9} |
\contentsline {subsubsection}{\numberline {3.2.3}Comandos b\IeC {\'a}sicos}{10} |
\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n \ac {CPLD}}{13} |
\contentsline {subsection}{\numberline {3.4}\textsl {Debugging}}{13} |
\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{13} |
\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{14} |
\contentsline {section}{\numberline {B}Repositorio de proyecto}{14} |
\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n de \ac {FPGA} y memoria PROM}{13} |
\contentsline {subsubsection}{\numberline {3.3.1}Programaci\IeC {\'o}n de la FPGA}{13} |
\contentsline {subsubsection}{\numberline {3.3.2}Programaci\IeC {\'o}n de la memoria PROM}{14} |
\contentsline {subsection}{\numberline {3.4}Programaci\IeC {\'o}n del \ac {CPLD}}{15} |
\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{15} |
\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{16} |
\contentsline {section}{\numberline {B}Repositorio de proyecto}{16} |
/doc/informe-tesis/reports/schedule_2013-03-20/schedule.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/doc/informe-tesis/reports/schedule_2013-03-20/schedule.aux
19,6 → 19,9
\undonewlabel{acro:CPLD} |
\newlabel{acro:CPLD}{{}{1}} |
\acronymused{CPLD} |
\undonewlabel{acro:FPGA} |
\newlabel{acro:FPGA}{{}{1}} |
\acronymused{FPGA} |
\acronymused{CPLD} |
\citation{2012-SSE-FIUBA-NT01-00} |
\undonewlabel{acro:OPENOCD} |
81,14 → 84,12
\acronymused{TAP} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Multiples \ac {TAP}}{5}} |
\acronymused{jtag} |
\undonewlabel{acro:FPGA} |
\newlabel{acro:FPGA}{{2.5}{5}} |
\acronymused{FPGA} |
\undonewlabel{acro:PROM} |
\newlabel{acro:PROM}{{2.5}{5}} |
\acronymused{PROM} |
\acronymused{CPLD} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n \ac {CPLD}}{5}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n del \ac {CPLD}}{5}} |
\acronymused{CPLD} |
\undonewlabel{acro:SVF} |
\newlabel{acro:SVF}{{2.6}{5}} |
115,6 → 116,7
\acronymused{openocd} |
\acronymused{jtag} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Instalaci\IeC {\'o}n del \textsl {software} xc3sprog}{7}} |
\newlabel{sec:install-xc3sprog}{{3.1}{7}} |
\acronymused{SO} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{8}} |
\acronymused{openocd} |
125,16 → 127,27
\newlabel{sec:xc3sprog-devlist}{{3.2.2}{9}} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}Comandos b\IeC {\'a}sicos}{10}} |
\newlabel{sec:xc3sprog-com-bas}{{3.2.3}{10}} |
\acronymused{FPGA} |
\acronymused{FPGA} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n de \ac {FPGA} y memoria PROM}{13}} |
\acronymused{PHR} |
\acronymused{PHR} |
\acronymused{SO} |
\acronymused{PHR} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Programaci\IeC {\'o}n de la FPGA}{13}} |
\newlabel{sec:prog-phr-fpga}{{3.3.1}{13}} |
\acronymused{FPGA} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Programaci\IeC {\'o}n de la memoria PROM}{14}} |
\newlabel{sec:prog-phr-prom}{{3.3.2}{14}} |
\bibcite{2012-SSE-FIUBA-NT01-00}{1} |
\bibcite{openocd-manual-autoprobing}{2} |
\acronymused{CPLD} |
\acronymused{CPLD} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n \ac {CPLD}}{13}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\textsl {Debugging}}{13}} |
\@writefile{toc}{\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{13}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Programaci\IeC {\'o}n del \ac {CPLD}}{15}} |
\@writefile{toc}{\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{15}} |
\acronymused{openocd} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{14}} |
\@writefile{toc}{\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{16}} |
\newacro{PHR}[\AC@hyperlink{PHR}{PHR}]{Plataforma de Hardware Reconfigurable} |
\newacro{openocd}[\AC@hyperlink{openocd}{OpenOCD}]{\textsl {Open On-Chip Debugger}} |
\newacro{jtag}[\AC@hyperlink{jtag}{JTAG}]{\textsl {Joint Test Action Group}} |
146,4 → 159,4
\newacro{SO}[\AC@hyperlink{SO}{SO}]{sistema operativo} |
\newacro{GPL}[\AC@hyperlink{GPL}{GPL}]{\textsl {General Public License}} |
\newacro{UTN-FRC}[\AC@hyperlink{UTN-FRC}{UTN-FRC}]{Universidad Tecnol\IeC {\'o}gica Nacional -- Facultad Regional C\IeC {\'o}rdoba} |
\@writefile{toc}{\contentsline {section}{\numberline {B}Repositorio de proyecto}{14}} |
\@writefile{toc}{\contentsline {section}{\numberline {B}Repositorio de proyecto}{16}} |
/doc/informe-tesis/reports/schedule_2013-03-20/schedule.tex
284,6 → 284,7
|
|
\subsection{Instalación del \textsl{software} xc3sprog} |
\label{sec:install-xc3sprog} |
|
Para obtener el xc3sprog, primero se debe descargar el código fuente desde SourceForge\footnote{http://sourceforge.net/projects/xc3sprog/}. El proceso se realizará sobre un terminal del \ac{SO} GNU/Linux que estemos utilizando. |
|
509,11 → 510,85
\item[\texttt{length}] El número de \textsl{bytes} a programar/leer. Solo soportado para SPI, XCFxxS y XMEGA. |
\end{description} |
|
\subsection{Programación de la \ac{FPGA}} |
\subsection{Programación de \ac{FPGA} y memoria PROM} |
|
Para demostrar el uso del xc3sprog se realizan algunas pruebas sobre la placa \ac{PHR}. Esta placa dispone de un puerto JTAG al cual se le conectan dos dispositivos en cadena, la FPGA de Xilinx Spantan-3 XC3S200A y su correspondiente memoria de PROM de programación XCF02S. Aquí no se detallará el manejo de la herramienta de \textsl{software} del fabricante de la FPGA (Xilinx). El \textsl{software} ISE Xilinx permite diseñar sistemas digitales y sintetizar esto a una FPGA o CPLD. Como generar los archivos de salida de un proyecto en el ISE Xilinx se puede encontrar en cualquier texto y seguramente con mayor detalle. Aquí solo se trabajará con los archivos de salida obtenidos desde un diseño sencillo que solo busca testear los diferentes periféricos de la placa \ac{PHR}. |
|
Primero se debe contar con los drivers de la placa OOCDLink instalados en el \ac{SO}. Luego conectamos la placa OOCDLink al puerto JTAG de la plataforma \ac{PHR} de un extremo, y del otro (puerto USB) nos conectamos a la computadora. |
|
Como se comentó la sección \ref{sec:install-xc3sprog}, para correr el programa xc3sprog, en un terminal del sistema GNU/Linux nos cambiamos de directorio hasta donde hayamos compilado nuestra versión del xc3sprog. Una vez ahí, y ya con el \textsl{hardware} conectado correctamente, lanzamos el primer comando para escanear el \textsl{interface} JTAG. |
\begin{lstlisting} |
luis@luis-laptop:build$ ./xc3sprog -c ftdiphr |
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux |
Free software: If you contribute nothing, expect nothing! |
Feedback on success/failure/enhancement requests: |
http://sourceforge.net/mail/?group_id=170565 |
Check Sourceforge for updates: |
http://sourceforge.net/projects/xc3sprog/develop |
|
Using Libftdi, |
JTAG loc.: 0 IDCODE: 0x02218093 Desc: XC3S200A Rev: A IR length: 6 |
JTAG loc.: 1 IDCODE: 0xd5045093 Desc: XCF02S Rev: M IR length: 8 |
\end{lstlisting} |
Utilizando la configuración \texttt{ftdiphr} para el \textsl{interface} OOCDLink. Se puede ver que xc3sprog encontró dos dispositivos conectados a la cadena JTAG. El primero, ubicado en la posición 0, es la FPGA XC3S200A. Mientras que el segundo dispositivo, en la posición 1, es la memoria PROM XCF02S. |
|
\subsubsection{Programación de la FPGA} |
\label{sec:prog-phr-fpga} |
Para programar directamente sobre la FPGA se debe correr el comando, |
\begin{lstlisting} |
luis@luis-laptop:build$ ./xc3sprog -v -c ftdiphr -p 0 /media/datos3/temp/xilinx_projects/PHRprojects/test1/test1_top.bit:w:0:BIT |
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux |
Free software: If you contribute nothing, expect nothing! |
Feedback on success/failure/enhancement requests: |
http://sourceforge.net/mail/?group_id=170565 |
Check Sourceforge for updates: |
http://sourceforge.net/projects/xc3sprog/develop |
|
Using devlist.txt |
Using cablelist.txt |
Cable ftdiphr type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00 |
Using Libftdi, Using JTAG frequency 6.000 MHz from undivided clock |
JTAG chainpos: 0 Device IDCODE = 0x02218093 Desc: XC3S200A |
Created from NCD file: test1_top.ncd;UserID=0xFFFFFFFF |
Target device: 3s200avq100 |
Created: 2014/03/19 18:31:15 |
Bitstream length: 1196128 bits |
DNA is 0x95cde80efb9ba0fe |
done. Programming time 288.0 ms |
USB transactions: Write 83 read 9 retries 18 |
\end{lstlisting} |
En comparación con el comando que escanea el puerto JTAG, solo le agregamos la posición del dispositivo al que nos queremos referir y luego una acción concreta que es el de escribir el dispositivo con el dato del archivo \texttt{test\_1.bit}\footnote{No es necesario que el archivo se encuentre en el directorio \texttt{build} donde se compiló el xc3sprog. Se puede indicar un archivo que se encuentre en otro directorio, éste puede ser invocado en forma absoluta o relativa.}. Los demás atributos son propios de la acción como ser, \texttt{w} que borarrá todo el dispositivo PROM y no se le asignará ningún \textsl{offset}. |
|
\subsubsection{Programación de la memoria PROM} |
\label{sec:prog-phr-prom} |
Para el caso de la memoria PROM se debe trabajar un poco más con el \textsl{software} ISE Xilinx para realizar la conversión del archivo de salida \texttt{.bit} a un formato para las memorias XCFxxS/P. Esto se explicará en otra documentación, pero si se deja en claro que debe obtenerse una archivo configurado para este tipo de memorias. Una vez que se tenga este archivo \texttt{.MCS} se debe correr el comando |
\begin{lstlisting} |
luis@luis-laptop:build$ ./xc3sprog -v -c ftdiphr -p 1 /media/datos3/temp/xilinx_projects/PHRprojects/test1/output/Untitled.mcs:w:0:IHEX |
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux |
Free software: If you contribute nothing, expect nothing! |
Feedback on success/failure/enhancement requests: |
http://sourceforge.net/mail/?group_id=170565 |
Check Sourceforge for updates: |
http://sourceforge.net/projects/xc3sprog/develop |
|
Using devlist.txt |
Using cablelist.txt |
Cable ftdiphr type ftdi VID 0x0403 PID 0x6010 dbus data 00 enable 0b cbus data 00 data 00 |
Using Libftdi, Using JTAG frequency 6.000 MHz from undivided clock |
JTAG chainpos: 1 Device IDCODE = 0xd5045093 Desc: XCF02S |
Erasing......done |
Erase time 3158.5 ms |
Programming does not end at block boundary (nbits = 1196432), padding |
Programming block 292/ 293 at XCF frame 0x2480.done |
Programming time 3236.6 ms |
Verify block 292/ 293 at XCF frame 0x2480 |
Success! Verify time 938.0 ms |
USB transactions: Write 903 read 890 retries 2040 |
\end{lstlisting} |
|
\subsection{Programación del \ac{CPLD}} |
|
|
\section{Documentación} |
La documentación resulta fundamental en ésta etapa del desarrollo. Si bien se quiere lograr el correcto funcionamiento de las placas, la documentación sirve para realizar correciones a las versiones futuras de cada placa. Otro objetivo es documentar el funcionamiento de cada dispositivo que sirvan al reporte final como así también a los usuarios de la \emph{Plataforma de Hardware Reconfigurable}. |
|
/doc/informe-tesis/reports/schedule_2013-03-20/schedule.log
1,4 → 1,4
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2013.3.7) 19 MAR 2014 17:22 |
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2013.3.7) 19 MAR 2014 20:36 |
entering extended mode |
%&-line parsing enabled. |
**schedule.tex |
569,6 → 569,9
Package acronym Info: Label `acro:CPLD' newly defined as it shall be overridden |
|
although it is yet undefined on input line 9. |
Package acronym Info: Label `acro:FPGA' newly defined as it shall be overridden |
|
although it is yet undefined on input line 17. |
) |
\tf@toc=\write4 |
\openout4 = `schedule.toc'. |
613,9 → 616,6
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 194. |
|
[4] |
Package acronym Info: Label `acro:FPGA' newly defined as it shall be overridden |
|
although it is yet undefined on input line 204. |
Package acronym Info: Label `acro:PROM' newly defined as it shall be overridden |
|
although it is yet undefined on input line 204. |
631,27 → 631,27
|
[6] [7] [8] [9] [10] |
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10.95> not available |
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 465. |
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 466. |
[11] |
Underfull \hbox (badness 10000) in paragraph at lines 494--495 |
Underfull \hbox (badness 10000) in paragraph at lines 495--496 |
|
[] |
|
[12] [13] |
Overfull \hbox (8.15585pt too wide) in paragraph at lines 546--548 |
[12] [13] [14] [15] |
Overfull \hbox (8.15585pt too wide) in paragraph at lines 621--623 |
\OT1/cmr/m/n/10.95 ac-ce-der a los re-po-si-to-rios me-dian-te el si-guien-te l |
ink, \OT1/cmtt/m/n/10.95 http://opencores.org/project,phr |
[] |
|
[14] (./schedule.aux) ) |
[16] (./schedule.aux) ) |
Here is how much of TeX's memory you used: |
6972 strings out of 494999 |
92193 string characters out of 1180817 |
7036 strings out of 494999 |
92944 string characters out of 1180817 |
312779 words of memory out of 3000000 |
10072 multiletter control sequences out of 15000+50000 |
10136 multiletter control sequences out of 15000+50000 |
16892 words of font info for 63 fonts, out of 3000000 for 9000 |
54 hyphenation exceptions out of 8191 |
37i,13n,49p,829b,2026s stack positions out of 5000i,500n,10000p,200000b,50000s |
37i,13n,49p,835b,2026s stack positions out of 5000i,500n,10000p,200000b,50000s |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm |
/cmbx10.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb |
></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbxsl10.pfb></usr/sh |
667,9 → 667,9
amsfonts/cm/cmsy9.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/ |
cmti10.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb> |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt9.pfb> |
Output written on schedule.pdf (14 pages, 286682 bytes). |
Output written on schedule.pdf (16 pages, 297955 bytes). |
PDF statistics: |
119 PDF objects out of 1000 (max. 8388607) |
125 PDF objects out of 1000 (max. 8388607) |
0 named destinations out of 1000 (max. 500000) |
6 words of extra memory for PDF output out of 10000 (max. 10000000) |
|