From 838133fd90271e8260a23337f1b5726747935872 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Thu, 18 Jan 2024 15:24:46 +0000 Subject: [PATCH] Initial commit Initial template from overleaf --- doc.bib | 8 + doc.tex | 223 ++++++++++++++++++++++++++ floatflt.sty | 348 +++++++++++++++++++++++++++++++++++++++++ img/RPTU_Logo_1c-1.pdf | Bin 0 -> 8610 bytes img/TUKL_LOGO.pdf | Bin 0 -> 7849 bytes inc/0.titlepage.tex | 45 ++++++ inc/1.introduction.tex | 22 +++ inc/appendix.tex | 195 +++++++++++++++++++++++ minted.sty | 227 +++++++++++++++++++++++++++ 9 files changed, 1068 insertions(+) create mode 100644 doc.bib create mode 100644 doc.tex create mode 100644 floatflt.sty create mode 100644 img/RPTU_Logo_1c-1.pdf create mode 100644 img/TUKL_LOGO.pdf create mode 100644 inc/0.titlepage.tex create mode 100644 inc/1.introduction.tex create mode 100644 inc/appendix.tex create mode 100644 minted.sty diff --git a/doc.bib b/doc.bib new file mode 100644 index 0000000..9371647 --- /dev/null +++ b/doc.bib @@ -0,0 +1,8 @@ +@Article{ weiser91, + title = "{The Computer for the 21st Century}", + author = "Mark Weiser", + journal = "Scientific American", + pages = "94--104", + month = sep, + year = "1991" +} diff --git a/doc.tex b/doc.tex new file mode 100644 index 0000000..1eb8c2f --- /dev/null +++ b/doc.tex @@ -0,0 +1,223 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Inlucudings: % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +\documentclass[11pt,english,a4paper,chapterprefix]{scrartcl} +%\usepackage[T1]{fontenc} +\usepackage[bigcaptions]{listing} +%\usepackage[latin1]{inputenc} +\usepackage[small,bf,hang]{caption} +\usepackage[english]{babel} +%\usepackage{epsfig} +\usepackage{wrapfig} +%\usepackage{caption} +\usepackage{psfrag} +\usepackage[rflt]{floatflt} +\usepackage[usenames]{color} +\usepackage{graphicx} +\emergencystretch = 10pt +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{setspace} +%\usepackage{calc} +\usepackage{tocloft} +\usepackage{listing} +\usepackage{listings} +\usepackage{trsym} +\usepackage{trfsigns} +\usepackage{minted} +\usepackage{multirow} +\usepackage{fancyhdr} +\usepackage{nomencl} +\usepackage{todonotes} +%\usepackage{float} +\usepackage{subfig} +\usepackage{url} +\usepackage{hyperref} +%\usepackage{listings} +%\input{subsections.sty} +\setcounter{secnumdepth}{5} +\setcounter{tocdepth}{5} +\numberwithin{equation}{section} +\numberwithin{figure}{section} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% New Commands and Configurations: % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +%\setkomafont{section}{\Large\rmfamily} +%\setkomafont{subsection}{\large\rmfamily} +%\setkomafont{subsubsection}{\normalsize\rmfamily} +\setkomafont{paragraph}{\footnotesize} +\numberwithin{table}{section} +\numberwithin{listing}{section} +\setlength\textheight{24cm} +\definecolor{orange}{rgb}{1 , 0.5 , 0} +\definecolor{blue}{rgb}{0, 0 , 1} +\definecolor{green}{rgb}{0, 1 ,0} +\newcommand{\cb}{\textcolor{blue}} +\newcommand{\subsubsubsection}{\paragraph} +\newcommand{\subsubsubsubsection}{\subparagraph} +\clubpenalty = 10000 +\widowpenalty = 10000 +\displaywidowpenalty = 10000 +\parindent0pt % No Indent +\makenomenclature +% Document Head +\begin{document} +%\restylefloat{figure} +\pagestyle{fancy} +\rhead{} + +\definecolor{light-gray}{gray}{0.90} + +%\lstset{ % +%language=C, % choose the language of the code +%basicstyle=\small\ttfamily +%, % the size of the fonts that are used for the code +%%numbers=left, % where to put the line-numbers +%numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers +%stepnumber=2, % the step between two line-numbers. If it's 1 each line +% % will be numbered +%numbersep=5pt, % how far the line-numbers are from the code +%backgroundcolor=\color{light-gray}, % choose the background color. You must add \usepackage{color} +%showspaces=false, % show spaces adding particular underscores +%showstringspaces=false, % underline spaces within strings +%showtabs=false, % show tabs within strings adding particular underscores +%frame=single, % adds a frame around the code +%rulecolor= \color{light-gray}, +%tabsize=2, % sets default tabsize to 2 spaces +%captionpos=b, % sets the caption-position to bottom +%breaklines=true, % sets automatic line breaking +%breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace +%title=\lstname, % show the filename of files included with \lstinputlisting; +% % also try caption instead of title +%escapeinside={\%*}{*)}, % if you want to add a comment within your code +%xleftmargin=1cm, +%xrightmargin=1cm, +%morekeywords={*,...} % if you want to add more keywords to the set +%} +% +\newminted{perl}{linenos, bgcolor=light-gray, fontsize=\scriptsize} +\newminted{cpp}{bgcolor=light-gray, fontsize=\scriptsize} +\newminted{tcl}{bgcolor=light-gray, fontsize=\scriptsize} +\newminted{sh}{bgcolor=light-gray, fontsize=\scriptsize} +\newminted{basemake}{bgcolor=light-gray, fontsize=\scriptsize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% fancy nomenclautur: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +%\setlength{\nomlabelwidth}{.20\hsize} +%\renewcommand{\nomlabel}[1]{#1 \dotfill} + +%<*sample05> +\def\@@@nomenclature[#1]#2#3{% + \def\@tempa{#2}\def\@tempb{#3}% + \protected@write\@nomenclaturefile{}% + {\string\nomenclatureentry{#1\nom@verb\@tempa @[{\nom@verb\@tempa}]% + |nompageref{\begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}}}% + {\thepage}}% + \endgroup + \@esphack} +%\def\nompageref#1#2{% +% \if@printpageref\pagedeclaration{#2}\else\null\fi +% \linebreak#1\nomentryend\endgroup} +\def\pagedeclaration#1{\dotfill\nobreakspace ~#1} +%\def\nomentryend{.} +\def\nomlabel#1{\textbf{#1}\hfil} +\makeatletter +\renewcommand*\dotfill{\leavevmode% + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill\kern\z@} +\makeatother +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% Abbr Commands! +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +\newcommand{\abbr}[2]{\textit{#2} (#1)\nomenclature{#1}{#2 \nomrefpage}} +\newcommand{\shortabbr}[2]{\nomenclature{#1}{#2 \nomrefpage}} +\newcommand{\revabbr}[2]{#1 (\textit{#2})\nomenclature{#1}{#2 \nomrefpage}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% Titlepage % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +\input{inc/0.titlepage} +\newpage +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% Table of Contents % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +\tableofcontents +\newpage +\setcounter{page}{1} +\newpage +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% Chapters % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +%\onehalfspacing % Stelle 1.5er Abstand ein +%\setstretch{1.1} +\input{inc/1.introduction} +\newpage +\clearpage +%\input{2.usw.usw} +%\newpage +%\clearpage +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +% Appendix % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{{{% +\newpage +\clearpage + +%clear headers +\fancyhead{} +\fancyfoot{} +\fancyfoot[C] {\thepage} + +%\section{Appendix} + +%%%%%%%%%%%%%%%% >INSERT YOUR APPENDIX HERE> +\input{inc/appendix} +\newpage +\clearpage +%\addcontentsline{toc}{section}{Appendix} +%List of Figures +\vspace{-20pt} +\begingroup + \addcontentsline{toc}{subsection}{List of Figures} + \setlength{\cftparskip}{10pt} + \listoffigures +\endgroup +\newpage +\clearpage +%List of Tables +\begingroup + \addcontentsline{toc}{subsection}{List of Tables} + \setlength{\cftparskip}{10pt} + \listoftables +\endgroup +\newpage +\clearpage +%List of Listings +%\renewcommand{\lstlistlistingname}{Verzeichnis der Quellcodes} +\begingroup + \addcontentsline{toc}{subsection}{List of Listings} + \setlength{\itemsep}{20pt} + \setlength{\parskip}{10pt} + \renewcommand{\listlistingname}{List of Listings} + \listoflistings +\endgroup +\newpage +\clearpage +%List of Abbreviations +\begingroup + \addcontentsline{toc}{subsection}{List of Abbreviations} + \renewcommand{\nomname}{List of Abbreviations} + \renewcommand{\nompreamble}{\vspace{10pt}} + %\setlength{\nomitemsep}{8pt} + \printnomenclature[2cm] +\endgroup +\newpage +\clearpage +%Literatur: +\addcontentsline{toc}{subsection}{References} +\bibliographystyle{unsrt} +\bibliography{doc} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}}}% +\end{document} diff --git a/floatflt.sty b/floatflt.sty new file mode 100644 index 0000000..4396042 --- /dev/null +++ b/floatflt.sty @@ -0,0 +1,348 @@ +%% +%% This is file `floatflt.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% floatflt.dtx (with options: `paketkod') +%% +%% Copyright (c) 1994-1998 by Mats Dahlgren . +%% All rights reserved. See the file `floatflt.ins' for information +%% on how you may (re-)distribute the `floatflt' package files. +%% You are not allowed to make any changes to this file without +%% explicit permission from the author. +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesPackage{floatflt}[1997/07/16 v. 1.31] +\newcounter{OptionTest} +\setcounter{OptionTest}{0} +\DeclareOption{rflt}{\setcounter{OptionTest}{1}} +\DeclareOption{lflt}{\setcounter{OptionTest}{2}} +\DeclareOption{vflt}{\setcounter{OptionTest}{0}} +\DeclareOption*{\OptionNotUsed} +\ProcessOptions +\newbox\figbox +\newbox\tabbox +\newbox\pagebox +\newcount\ffigcount +\newcount\ftabcount +\newcount\fftest +\newcount\hangcount +\newcount\nosuccesstryfig +\newcount\nosuccesstrytab +\newdimen\figgutter \figgutter=1truepc +\newdimen\tabgutter \tabgutter=1truepc +\newdimen\htdone \htdone=0pt +\newdimen\pageht +\newdimen\startpageht +\newdimen\tabbredd +\newdimen\floatfltwidth +\newdimen\fltitemwidth +\newif\iftryingfig \tryingfigfalse +\newif\iftryingtab \tryingtabfalse +\newif\ifdoingfig \doingfigfalse +\newif\ifdoingtab \doingtabfalse +\newif\iffigprocessing \figprocessingfalse +\newif\iftabprocessing \tabprocessingfalse +\newif\ifpageafterfig \pageafterfigfalse +\newif\ifpageaftertab \pageaftertabfalse +\newif\ifoddpages +\newif\ifoutput +\newtoks\outputpretest +\newenvironment{floatingfigure}[2][v]% +{\@tfor \@tempa :=#1\do + {\if\@tempa r\global\oddpagestrue\fi + \if\@tempa l\global\oddpagesfalse\fi + \if\@tempa p% + \ifodd\c@page\global\oddpagestrue + \else\global\oddpagesfalse\fi + \fi + \if\@tempa v% + \ifnum\theOptionTest=0 + \ifodd\c@page\global\oddpagestrue + \else\global\oddpagesfalse\fi + \else + \ifodd\theOptionTest\global\oddpagestrue + \else\global\oddpagesfalse\fi + \fi + \fi + } + \expandafter\ifx\csname oldoutput\endcsname\relax% ref. TeXbook Ex.7.7 + \PackageError{floatflt}{The `floatflt' package is not initialized} + {Try to reinstall the `floatflt' package.\MessageBreak + Type `x' to quit or to try to go on.}\@@end\fi + \global\everypar={\tryfig\oldeverypar}% must be set globally! + \global\advance\ffigcount by 1 + \iffigprocessing + {\count0=\ffigcount\advance\count0 by -1 + \PackageWarningNoLine{floatflt}{Floating figures \the\count0\space% + \space and \the\ffigcount\space colliding}% + }% + \fi + \iftabprocessing \PackageWarningNoLine{floatflt}{Floating figure % + \the\ffigcount\space and floating table \the\ftabcount\space colliding} + \fi + \def\@captype{figure} + \global\setlength{\floatfltwidth}{#2} + \global\figprocessingtrue + \global\setbox\figbox=\vbox\bgroup% begin of figbox + \hrule height 0pt width #2 depth 0pt% + \hsize=#2% +} +{ +\egroup +\figinsert\par% +} +\newenvironment{floatingtable}[2][v]% +{\@tfor \@tempa :=#1\do + {\if\@tempa r\global\oddpagestrue\fi + \if\@tempa l\global\oddpagesfalse\fi + \if\@tempa p% + \ifodd\c@page\global\oddpagestrue + \else\global\oddpagesfalse\fi + \fi + \if\@tempa v% + \ifnum \theOptionTest=0 + \ifodd\c@page\global\oddpagestrue + \else\global\oddpagesfalse\fi + \else + \ifodd\theOptionTest\global\oddpagestrue + \else\global\oddpagesfalse\fi + \fi + \fi + } +\expandafter\ifx\csname oldoutput\endcsname\relax% ref. TeXbook Ex.7.7 + \PackageError{floatflt}{The `floatflt' package is not initialized} + {Try to reinstall the `floatflt' package.\MessageBreak + Type `x' to quit or to try to go on.}\@@end\fi +\global\setbox\tabbox=\vbox\bgroup\hrule height 0pt width 0pt depth 0pt% + \hsize=0pt\egroup + \global\everypar={\trytab\oldeverypar} + \global\advance\ftabcount by 1 + \iftabprocessing + {\count0=\ftabcount\advance\count0 by -1 + \PackageWarningNoLine{floatflt}{Floating tables \the\count0\space% + \space and \the\ftabcount \space colliding}% + } + \fi + \iftabprocessing \PackageWarningNoLine{floatflt}{Floating table % + \the\ffigcount\space and floating figure \the\ftabcount\space colliding} + \fi + \settowidth{\tabbredd}{#2} + \global\setlength{\floatfltwidth}{\tabbredd} + \def\@captype{table} + \global\tabprocessingtrue + \global\setbox\tabbox=\vbox\bgroup% begin of tabbox + \hrule height 0pt width\tabbredd depth 0pt% + \hsize=\tabbredd +\noindent\ifnum\ftabcount >1\ifoddpages\else\hspace*{-12pt}\fi\fi% +#2\vspace{0.2\baselineskip}% +} +{ +\egroup% end of \tabbox +\tabinsert\par% +} +\AtBeginDocument{% +\edef\oldoutput{\the\output}% +\output={\the\outputpretest% + \ifoutput\oldoutput\fi} +\outputpretest={\outputtrue} +\edef\oldeverypar{\the\everypar} +} +\def\dofigtest{% + \ifnum\outputpenalty=-10005 + \setbox\pagebox=\vbox{\unvbox255}% + \global\pageht=\ht\pagebox + \global\outputfalse + \unvbox\pagebox + \else + \global\outputtrue + \ifdoingfig + \global\pageafterfigtrue + \fi + \fi}% +\def\dotabtest{% + \ifnum\outputpenalty=-10005 + \setbox\pagebox=\vbox{\unvbox255}% + \global\pageht=\ht\pagebox + \global\outputfalse + \unvbox\pagebox + \else + \global\outputtrue + \ifdoingtab + \global\pageaftertabtrue + \fi + \fi}% +\def\tryfig{% + \iftryingfig + {\everypar={\relax}\setbox0=\lastbox% + \parindent=\wd0 \parskip=0pt \par% + \penalty-10005 \leavevmode}% + \dimen0=\vsize% + \advance\dimen0 by -\pageht% + \advance\dimen0 by -2\baselineskip% + \ifdim\dimen0>\ht\figbox% + \dimen0=0.3\baselineskip + \vrule depth \dimen0 width 0pt + \vadjust{\kern -\dimen0% + \vtop to \dimen0{% + \baselineskip=\dimen0% + \vss \vbox to 1ex{% + \ifoddpages% + \hbox to \hsize{\hss\copy\figbox}% + \else% leftsetting + \hbox to \hsize{\copy\figbox\hss}% + \fi% \ifodd\count0 + \vss}\null}}% + \global\tryingfigfalse% + \global\doingfigtrue + \global\startpageht=\pageht + \global\htdone=0pt + \dohangf + \ifnum\nosuccesstryfig>0% + \typeout{floatflt Message: Flt. fig. \the\ffigcount\space set on page + \the\count0, shifted \the\nosuccesstryfig\space par(s) forward.}% + \else + \typeout{Package floatflt Message: Floating figure \the\ffigcount + \space set on page \the\count0}% + \fi + \else + \global\advance\nosuccesstryfig by 1 + \fi + \else% + \ifdoingfig + {\everypar={\relax}\setbox0=\lastbox + \parindent=\wd0 \parskip=0pt \par + \penalty-10005 \leavevmode}% + \global\htdone=\pageht + \global\advance\htdone by -\startpageht + \ifpageafterfig + \global\doingfigfalse + \else + \dimen0=\ht\figbox% + \advance\dimen0 by 0.5\baselineskip% + \ifdim\htdone<\dimen0% + \dohangf + \else + \global\doingfigfalse + \fi + \fi + \ifdoingfig\relax\else\global\figprocessingfalse\fi + \else + \global\outputpretest={\outputtrue}% + \fi +\fi +} +\def\trytab{% + \iftryingtab% + {\everypar={\relax}\setbox0=\lastbox% + \parindent=\wd0 \parskip=0pt \par% + \penalty-10005 \leavevmode}% + \dimen0=\vsize% + \advance\dimen0 by -\pageht% + \advance\dimen0 by -2\baselineskip% + \ifdim\dimen0>\ht\tabbox% + \dimen0=0.3\baselineskip + \vrule depth \dimen0 width 0pt + \vadjust{\kern -\dimen0% + \vtop to \dimen0{% + \baselineskip=\dimen0% + \vss \vbox to 1ex{% + \ifoddpages% + \hbox to \hsize{\hss\copy\tabbox}% + \else% leftsetting + \hbox to \hsize{\copy\tabbox\hss}% + \fi% \ifodd\count0 + \vss}\null}}% + \global\tryingtabfalse% + \global\doingtabtrue + \global\startpageht=\pageht + \global\htdone=0pt + \dohangt + \ifnum\nosuccesstrytab>0% + \typeout{floatflt Message: Flt. tab. \the\ftabcount\space set on page + \the\count0, shifted \the\nosuccesstrytab\space par(s) forward.}% + \else + \typeout{Package floatflt Message: Floating table \the\ftabcount\space + set on page \the\count0}% + \fi + \else + \global\advance\nosuccesstrytab by 1 + \fi + \else + \ifdoingtab + {\everypar={\relax}\setbox0=\lastbox + \parindent=\wd0 \parskip=0pt \par + \penalty-10005 \leavevmode}% + \global\htdone=\pageht + \global\advance\htdone by -\startpageht + \ifpageaftertab + \global\doingtabfalse + \else + \dimen0=\ht\tabbox% + \advance\dimen0 by 0.5\baselineskip% + \ifdim\htdone<\dimen0% + \dohangt + \else + \global\doingtabfalse + \fi + \fi + \ifdoingtab\relax\else\global\tabprocessingfalse\fi + \else + \global\outputpretest={\outputtrue}% + \fi +\fi +} +\def\figinsert{% + \global\nosuccesstryfig=0% + \global\outputpretest={\dofigtest}% + \global\tryingfigtrue \global\doingfigfalse% + \global\pageafterfigfalse}% +\def\tabinsert{% + \global\nosuccesstrytab=0% + \global\outputpretest={\dotabtest}% + \global\tryingtabtrue \global\doingtabfalse% + \global\pageaftertabfalse}% +\def\dohangf{% + \dimen0=\ht\figbox% + \advance\dimen0 by -\htdone% + \advance\dimen0 by 1.49\baselineskip% + \hangcount=\dimen0% + \divide\hangcount by \baselineskip% + \dimen0=\wd\figbox% + \advance\dimen0 by \figgutter% + \ifoddpages% + \global\hangafter=-\hangcount% placing right + \global\hangindent=-\dimen0% + \else% \ifleftsetting + \global\hangafter=-\hangcount% placing left + \global\hangindent=\dimen0% + \fi +} +\def\dohangt{% + \dimen0=\ht\tabbox% + \advance\dimen0 by -\htdone% + \advance\dimen0 by 1.49\baselineskip% + \hangcount=\dimen0% + \divide\hangcount by \baselineskip% + \dimen0=\wd\tabbox% + \advance\dimen0 by \tabgutter% + \ifoddpages% + \global\hangafter=-\hangcount% placing right + \global\hangindent=-\dimen0% + \else% \ifleftsetting + \global\hangafter=-\hangcount% placing left + \global\hangindent=\dimen0% + \fi +} +\newcommand{\fltitem}[2][0pt]{\setlength{\fltitemwidth}{\linewidth}% + \addtolength{\fltitemwidth}{-\floatfltwidth}% + \addtolength{\fltitemwidth}{-0.5em}% + \item \parbox[t]{\fltitemwidth}{#2}\\[#1]} +\newcommand{\fltditem}[3][0pt]{\setlength{\fltitemwidth}{\linewidth}% + \addtolength{\fltitemwidth}{-\floatfltwidth}% + \addtolength{\fltitemwidth}{-0.5em}% + \item[#2] \parbox[t]{\fltitemwidth}{#3}\\[#1]} +\endinput +%% +%% End of file `floatflt.sty'. diff --git a/img/RPTU_Logo_1c-1.pdf b/img/RPTU_Logo_1c-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e4098a62f84589a4deedd26c748619b3d5e4ea71 GIT binary patch literal 8610 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 literal 0 HcmV?d00001 diff --git a/img/TUKL_LOGO.pdf b/img/TUKL_LOGO.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bbdbf269d262d3e9249f1a01b96eacd9a9f18bf2 GIT binary patch literal 7849 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[1]"); + +printf out_file ("The following table shows the addresses "); +printf out_file ("from the errors in the wideIO SDRAM.\n"); +printf out_file ("Addresses in binary \t\t\t Addresses in hexadecimal\n"); +printf out_file ("bank \t row \t\t column \t SDRAM address \t data value\n"); + +while() +{ + unless($_ =~ /\[.*\]/ || $_ =~ /$id/) + { + my $value = $_; + chop($value); + $value = substr( $value , 2); + my $result = sprintf("%0b", (hex($value) ^ $pattern)); + for(my $j = 0; $j < length($result); $j ++) + { + if(substr( $result, $j , 1 ) eq "1") + { + $errors++; + $addrb = $i-((ceil($i/11))*3); + $addr = $addrb + $addroffset; + $bank = ($addrb & $bankand) >> $bankshift; + $row = ($addrb & $rowand) >> $rowshift; + $column = ($addrb & $columnand); + printf out_file ("%02b\t %012b\t %09b\t %#8x\t $value\n", $bank, $row, $column, $addr); + } + } + } + $i++; +} + +close(out_file); +print "Errors = ".$errors."\n"; +close(IFH); +\end{perlcode} +\caption{Perl script to find errors for data pattern F, A or 5} +\label{lis:5af} +\end{listing} + +\pagebreak +Pagebreak and linebreak has to be done manually with pygmentize, this feature is +not yet implemented. Open the appendix.tex file and see the source code +afterwards how the pagebreak is done. For that the appendix.tex has to be +written with pagebreaks, so that the layout of the pages is done manually. + +Linebreaks are easier to do, just check that the lines are in the box of the pdf +file, otherwise make a linebreak yourself. +\pagebreak + +%\begin{listing}[H] +\begin{minted}[linenos, bgcolor=light-gray, fontsize=\scriptsize]{perl} +#!/usr/bin/perl + +use strict; +use warnings; +use POSIX; +use Chart::Gnuplot; + +# University of Kaiserslautern 2014 +# Matthias Jung +# Christian Weis +# Peter Ehses +# call programm: perl plotreffff_0xf.pl dfile1 dfile2 dfile3 + +my $i = 0; +my $line = 3; +my $addr = 0; # DRAM address in hex +my $bankb; # 2 bits for the bank +my $rowb; # 12 bits for the row +my $columnb; # 9 bits for the column +my $bank; # banknumber in decimal +my $row; # rownumber in decimal +my $column; # columnnumber in decimal +my $value; +my @ytics = [0, 25,50,75,100,125,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500]; +my @xtics = [0,250,500,750,1000,1250,1500,1750,2000,2250,2500,2750,3000,3250,3500,3750,4000]; + +# set terminal to svg format +my $terminal = 'svg mouse jsdir '.'"http://gnuplot.sourceforge.net/demo_svg"'; +sub bin2dec {return unpack("N", pack("B32", substr("0" x 32 . shift, -33)));} + +my @row_array; +my @column_array; + +foreach my $argnum (0 .. $#ARGV) +{ + open(IFH, $ARGV[$argnum]); + $i = 0; + while() + { + chomp; + $i++; + if ($i > $line) + { + ($bankb, $rowb, $columnb, $addr, $value) = split("\t"); + $bank = (bin2dec($bankb)); + $row = (bin2dec($rowb)); + $column = (bin2dec($columnb)); + if ($argnum == 0) + { + push(@{$row_array[$bank]}, $row); + push(@{$column_array[$bank]}, $column); + } + if ($argnum == 1) + { + push(@{$row_array[$bank+4]}, $row); + push(@{$column_array[$bank+4]}, $column); + } + if ($argnum == 2) + { + push(@{$row_array[$bank+8]}, $row); + push(@{$column_array[$bank+8]}, $column); + } + } + } + close(IFH); +} +for (my $count = 1; $count < 5; $count++) +{ + $bank = $count -1; +\end{minted} + +%here is a pagebreak, and the next line of the code is starting with 70, has to be specified with minted like below. +\begin{listing}[H] +\begin{minted}[linenos, bgcolor=light-gray, fontsize=\scriptsize, firstnumber=70]{perl} + my $plot1 = Chart::Gnuplot->new( + terminal => $terminal, output => "plot_ref202ms_0xf_b_$count.svg", + title => "Errors channel 3 of SDRAM, bank $count, data pattern 0xffffffff and refresh 202 ms", + imagesize => '1024, 768', xlabel => "row address", ylabel => "column address", yrange=>[0, 511], + xrange=>[0, 4095], ytics => {labels => @ytics}, xtics => {labels => @xtics}, + legend => {position => "outside center bottom", order =>"horizontal reverse", + border => "on", align => "left"} + ); + my $dataSet1 = Chart::Gnuplot::DataSet->new( + xdata => \@{$row_array[$bank]}, ydata => \@{$column_array[$bank]}, + color => "blue", pointtype => 6, pointsize => 1.75, width => 2, + title => "95 degree C" + ); + my $dataSet2 = Chart::Gnuplot::DataSet->new( + xdata => \@{$row_array[$bank+4]}, ydata => \@{$column_array[$bank+4]}, + color => "red", pointtype => 8, pointsize => 1.25, width => 2, + title => "100 degree C" + ); + my $dataSet3 = Chart::Gnuplot::DataSet->new( + xdata => \@{$row_array[$bank+8]}, ydata => \@{$column_array[$bank+8]}, + color => "dark-green", pointtype => 10, pointsize => 1.25, width => 2, + title => "105 degree C" + ); + + if (@{$row_array[$bank]}){$plot1->plot2d($dataSet1, $dataSet2, $dataSet3);} + if (!@{$row_array[$bank]}){$plot1->plot2d($dataSet2, $dataSet3);} + if (!@{$row_array[$bank]} && !@{$row_array[$bank+4]}){$plot1->plot2d($dataSet3);} +} +\end{minted} +\caption{Perl script for scatter plot of different refresh periods} +\label{lis:plotref} +\end{listing} + diff --git a/minted.sty b/minted.sty new file mode 100644 index 0000000..1098519 --- /dev/null +++ b/minted.sty @@ -0,0 +1,227 @@ +%% +%% This is file `minted.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% minted.dtx (with options: `package') +%% Copyright 2010 Konrad Rudolph +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% Additionally, the project may be distributed under the terms of the new BSD +%% license. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Konrad Rudolph. +%% +%% This work consists of the files mints.dtx and mints.ins +%% and the derived file mints.sty. +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{minted}[2010/01/27 v1.6 Yet another Pygments shim for LaTeX] +\RequirePackage{keyval} +\RequirePackage{fancyvrb} +\RequirePackage{color} +\RequirePackage{float} +\RequirePackage{ifthen} +\RequirePackage{calc} +\RequirePackage{ifplatform} +\ifwindows + \providecommand\DeleteFile[1]{\immediate\write18{del #1}} +\else + \providecommand\DeleteFile[1]{\immediate\write18{rm #1}} +\fi +\newboolean{AppExists} +\providecommand\TestAppExists[1]{ + \ifwindows + \DeleteFile{\jobname.aex} + \immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd) + do set >\jobname.aex >\jobname.aex} %$ + \newread\@appexistsfile + \immediate\openin\@appexistsfile\jobname.aex + \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar} + \endlinechar=-1\relax + \readline\@appexistsfile to \@apppathifexists + \endlinechar=\@tmp@cr + \ifthenelse{\equal{\@apppathifexists}{}} + {\AppExistsfalse} + {\AppExiststrue} + \immediate\closein\@appexistsfile + \DeleteFile{\jobname.aex} +\immediate\typeout{file deleted} + \else + \immediate\write18{which -s #1 && touch \jobname.aex} + \IfFileExists{\jobname.aex} + {\AppExiststrue + \DeleteFile{\jobname.aex}} + {\AppExiststrue} + \fi} +\newcommand\minted@resetoptions{} +\newcommand\minted@defopt[1]{ + \expandafter\def\expandafter\minted@resetoptions\expandafter{% + \minted@resetoptions + \@namedef{minted@opt@#1}{}}} +\newcommand\minted@opt[1]{ + \expandafter\detokenize% + \expandafter\expandafter\expandafter{\csname minted@opt@#1\endcsname}} +\newcommand\minted@define@opt[3][]{ + \minted@defopt{#2} + \ifthenelse{\equal{#1}{}}{ + \define@key{minted@opt}{#2}{\@namedef{minted@opt@#2}{#3}}} + {\define@key{minted@opt}{#2}[#1]{\@namedef{minted@opt@#2}{#3}}}} +\newcommand\minted@define@switch[2]{ + \minted@defopt{#1} + \define@booleankey{minted@opt}{#1}{ + \@namedef{minted@opt@#1}{#2}} + {\@namedef{minted@opt@#1}{}}} +\minted@defopt{extra} +\newcommand\minted@define@extra[1]{ + \define@key{minted@opt}{#1}{ + \expandafter\def\expandafter\minted@opt@extra\expandafter{% + \minted@opt@extra,#1=##1}}} +\newcommand\minted@define@extra@switch[1]{ + \define@booleankey{minted@opt}{#1} + {\expandafter\def\expandafter\minted@opt@extra\expandafter{% + \minted@opt@extra,#1}} + {\expandafter\def\expandafter\minted@opt@extra\expandafter{% + \minted@opt@extra,#1=false}}} +\minted@define@switch{texcl}{-P texcomments} +\minted@define@switch{mathescape}{-P mathescape} +\minted@define@switch{linenos}{-P linenos} +\minted@define@opt{gobble}{-F gobble:n=#1} +\minted@define@opt{bgcolor}{#1} +\minted@define@extra{frame} +\minted@define@extra{framesep} +\minted@define@extra{framerule} +\minted@define@extra{rulecolor} +\minted@define@extra{numbersep} +\minted@define@extra{firstnumber} +\minted@define@extra{stepnumber} +\minted@define@extra{firstline} +\minted@define@extra{lastline} +\minted@define@extra{baselinestretch} +\minted@define@extra{xleftmargin} +\minted@define@extra{xrightmargin} +\minted@define@extra{fillcolor} +\minted@define@extra{tabsize} +\minted@define@extra{fontfamily} +\minted@define@extra{fontsize} +\minted@define@extra{fontshape} +\minted@define@extra{fontseries} +\minted@define@extra{formatcom} +\minted@define@extra@switch{numberblanklines} +\minted@define@extra@switch{showspaces} +\minted@define@extra@switch{resetmargins} +\minted@define@extra@switch{samepage} +\minted@define@extra@switch{showtabs} +\minted@define@extra@switch{obeytabs} +\newsavebox{\minted@bgbox} +\newenvironment{minted@colorbg}[1]{ + \def\minted@bgcol{#1} + \noindent + \begin{lrbox}{\minted@bgbox} + \begin{minipage}{\linewidth-2\fboxsep}} + {\end{minipage} + \end{lrbox}% + \colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}} +\newwrite\minted@code +\newcommand\minted@savecode[1]{ + \immediate\openout\minted@code\jobname.pyg + \immediate\write\minted@code{#1} + \immediate\closeout\minted@code} +\newcommand\minted@pygmentize[2][\jobname.pyg]{ + \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge + \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape} + \minted@opt{linenos} -P "verboptions=\minted@opt{extra}" + -o \jobname.out.pyg #1} + \immediate\write18{\minted@cmd} + \ifthenelse{\equal{\minted@opt@bgcolor}{}} + {} + {\begin{minted@colorbg}{\minted@opt@bgcolor}} + \input{\jobname.out.pyg} + \ifthenelse{\equal{\minted@opt@bgcolor}{}} + {} + {\end{minted@colorbg}} + \DeleteFile{\jobname.out.pyg}} +\newcommand\minted@usedefaultstyle{\usemintedstyle{default}} +\newcommand\usemintedstyle[1]{ + \renewcommand\minted@usedefaultstyle{} + \immediate\write18{pygmentize -S #1 -f latex > \jobname.pyg} + \input{\jobname.pyg}} +\newcommand\mint[3][]{ + \DefineShortVerb{#3} + \minted@resetoptions + \setkeys{minted@opt}{#1} + \SaveVerb[aftersave={ + \UndefineShortVerb{#3} + \minted@savecode{\FV@SV@minted@verb} + \minted@pygmentize{#2} + \DeleteFile{\jobname.pyg}}]{minted@verb}#3} +\newcommand\minted@proglang[1]{} +\newenvironment{minted}[2][] + {\VerbatimEnvironment + \renewcommand{\minted@proglang}[1]{#2} + \minted@resetoptions + \setkeys{minted@opt}{#1} + \begin{VerbatimOut}{\jobname.pyg}}% + {\end{VerbatimOut} + \minted@pygmentize{\minted@proglang{}} + \DeleteFile{\jobname.pyg}} +\newcommand\inputminted[3][]{ + \minted@resetoptions + \setkeys{minted@opt}{#1} + \minted@pygmentize[#3]{#2}} +\newcommand\newminted[3][]{ + \ifthenelse{\equal{#1}{}} + {\def\minted@envname{#2code}} + {\def\minted@envname{#1}} + \newenvironment{\minted@envname} + {\VerbatimEnvironment\begin{minted}[#3]{#2}} + {\end{minted}} + \newenvironment{\minted@envname *}[1] + {\VerbatimEnvironment\begin{minted}[#3,##1]{#2}} + {\end{minted}}} +\newcommand\newmint[3][]{ + \ifthenelse{\equal{#1}{}} + {\def\minted@shortname{#2}} + {\def\minted@shortname{#1}} + \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{ + \mint[#3,##1]{#2}##2}} +\newcommand\newmintedfile[3][]{ + \ifthenelse{\equal{#1}{}} + {\def\minted@shortname{#2file}} + {\def\minted@shortname{#1}} + \expandafter\newcommand\csname\minted@shortname\endcsname[2][]{ + \inputminted[#3,##1]{#2}{##2}}} +\newfloat{listing}{h}{lol} +\newcommand\listingscaption{Listing} +\floatname{listing}{\listingscaption} +\newcommand\listoflistingscaption{List of listings} +\providecommand\listoflistings{\listof{listing}{\listoflistingscaption}} +\AtBeginDocument{ + \minted@usedefaultstyle} +\AtEndOfPackage{ + \ifeof18 + \PackageError{minted} + {You must invoke LaTeX with the + -shell-escape flag} + {Pass the -shell-escape flag to LaTeX. Refer to the minted.sty + documentation for more information.}\fi} + \TestAppExists{pygmentize} + \ifAppExists\else + \PackageError{minted} + {You must have `pygmentize' installed + to use this package} + {Refer to the installation instructions in the minted + documentation for more information.} + \fi +\endinput +%% +%% End of file `minted.sty'.