Compare commits

...

6 commits

Author SHA1 Message Date
d6c4776b44
Merge batman content 2020-03-23 13:23:10 +01:00
1cb525748f
Fix compilation, add gitignore 2020-03-23 13:20:25 +01:00
35b62c8251
Adeed tex files for dipl
Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
2019-09-07 18:15:15 +02:00
bb9d39a95d
Added correction and corrected version
as given by the allmighty XH. All behail him!

Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
2019-07-01 23:41:19 +02:00
6e711be18f
Added initial antrag
Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
2019-07-01 23:40:11 +02:00
b7fae59d8e
INITIAL COMMIT
Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
2019-07-01 23:38:26 +02:00
55 changed files with 1478 additions and 1205 deletions

7
.gitignore vendored
View file

@ -4,12 +4,19 @@
*.bcf *.bcf
*.blg *.blg
*.fls *.fls
*.idx
*.ilg
*.ind
*.lof
*.lol
*.lot
*.toc *.toc
*.fdb_latexmk *.fdb_latexmk
*.run.xml *.run.xml
*.synctex.gz *.synctex.gz
*.dvi *.dvi
*.pdf *.pdf
*.xdv
*.out *.out
*.kate-swp *.kate-swp

View file

@ -59,3 +59,15 @@
title = {LiteEth}, title = {LiteEth},
url = {https://github.com/enjoy-digital/liteeth} url = {https://github.com/enjoy-digital/liteeth}
} }
@software{open-fpga-loader,
author = {Gwenhael Goavec-Merou},
title = {openFPGALoader},
url = {https://github.com/trabucayre/openFPGALoader},
}
@software{gtkwave,
author = {Tony Bybell},
title = {GTKWave},
url = {http://gtkwave.sourceforge.net},
}

View file

@ -1,25 +1,209 @@
\documentclass[a4paper,10pt]{article}
\input{preamble.tex} \input{preamble.tex}
\usepackage{subfiles} \usepackage{subfiles}
\begin{document} \begin{document}
\selectlanguage{ngerman}
\titleformat{\part}[display] %/*Header-Einstellung*/
{\Huge\scshape\filright} \pagestyle{fancy}
{\partname~\thepart:} \fancyhf{}
{20pt} \renewcommand{\sectionmark}[1]{\markright{#1}}
{\makeatother} \renewcommand{\subsectionmark}[1]{\markright{#1}}
\renewcommand{\subsubsectionmark}[1]{\markright{#1}}
\chead{}
\rhead{}
\setlength{\headwidth} {1.0\textwidth}
\setlength{\headheight}{12mm}
\renewcommand{\headrulewidth}{0.0pt}
\renewcommand{\footrulewidth}{0.0pt}
\tableofcontents \addtocounter{page}{1}
\let\tableofcontents\relax
%====================================================================================
\begin{titlepage}
\begin{center}
\begin{minipage}{\linewidth}
\begin{center}
\vspace*{-21mm}
\HtlHeader{}
\vspace*{-14mm}
\noindent%
\\[35mm]{\fontsize{25pt}{25pt}\selectfont\bf DIPLOMARBEIT}
\\[19mm]{\fontsize{20pt}{20pt}\selectfont\textbf{\textsc{FPGA-Basierte
Studie moderner Computersysteme am Beispiel RISC-V: YARM}}}
\\[15mm]{\fontsize{12.4pt}{12.4pt}\selectfont\bf
Höhere Technische Bundeslehr- und Versuchsanstalt Anichstra"se}
\\[ 5mm]\rule{132mm}{1.0pt}
\\[ 4mm]{\fontsize{12.4pt}{12.4pt}\selectfont\bf Abteilung}
\\[ 5mm]{\fontsize{16pt}{16pt}\selectfont
\textbf{\textsc{Elektronik und technische Informatik}}}
\\[24mm]{\hspace*{2mm}\parbox{154mm}{\fontsize{12.4pt}{12.4pt}\selectfont
\parbox[t]{75mm}{
Ausgef"uhrt im Schuljahr 2019/20 von:
\\[5.0mm]Armin Brauns 5AHEL
\\[2.5mm]Daniel Plank 5BHEL
}
\hspace*{6mm}
\parbox[t]{60mm}{
Betreuer/Betreuerin:
\\[5.0mm]Dipl.-Ing. Christoph Schönherr
}
\\[12mm]{Projektpartner: IT-Syndikat, Verein zur Förderung des freien
Zugangs zu technischer Fort- und Weiterbildung jeglicher Art}
\\[12mm]{Ansprechpartner: Herr David Oberhollenzer}
\\[14mm]{Innsbruck, am \today}
\\[16mm]\rule{150mm}{0.5pt}
\\[ 8mm]
\parbox[t]{75mm}{
Abgabevermerk:
\\[3.25mm]Datum:
}
\hspace*{6mm}
\parbox[t]{50mm}{
Betreuer/in:
}
}}
\end{center}\hfill
\end{minipage}
\end{center}
\end{titlepage}
\pagestyle{empty}
\mylinespacing
%====================================================================================
\clearpage\vfill\newpage{}
\pagenumbering{roman}
\allAuth
\cfoot{\rightmark}
\rfoot[\thepage]{\thepage}
\renewcommand{\footrulewidth}{0.33pt}
%====================================================================================
\subsection*{Gendererklärung\markboth{}{Gendererklärung}}
\addcontentsline{toc}{section}{Gendererklärung}
Aus Gr"unden der besseren Lesbarkeit wird in dieser Diplomarbeit die Sprachform
des generischen Maskulinums angewendet. Es wird an dieser Stelle darauf
hingewiesen, dass die ausschlie"sliche Verwendung der m"annlichen Form
geschlechtsunabh"angig verstanden werden soll.
%====================================================================================
\clearpage\vfill\newpage{}
%====================================================================================
\subsection*{Kurzfassung/Abstract\markboth{}{Kurzfassung/Abstract}}
\addcontentsline{toc}{section}{Kurzfassung/Abstract}
%\input{sections/abstract.tex} TODO
\newpage \newpage
\subsection*{Projektergebnis\markboth{}{Projektergebnis}}
\addcontentsline{toc}{section}{Projektergebnis}
%\input{sections/ergebnis.tex} TODO
%====================================================================================
\pagestyle{plain}
\tableofcontents
\newpage
\pagestyle{fancy}
\cfoot{\rightmark}
%====================================================================================
\lhead{}
\renewcommand{\headrulewidth}{0.4pt}
\setcounter{section}{0}
\pagenumbering{arabic}
\subfile{vhdl_intro/vhdl_intro.tex} %\section{Einleitung}
\subfile{soc/soc.tex} %\input{sections/einleitung.tex} TODO
\subfile{core/core.tex}
\printbibliography \section{Aufgabenstellung}
\DP\input{planung/DP/aufgabenstellung.tex}
\section{Planung}
\DP\input{planung/DP/planung.tex}
\clearpage
% \MR\input{sections/Kapitel/MR/planungAufgabengenerator.tex}
\clearpage
%\MR\input{sections/Kapitel/MR/Aufgabengeneration.tex}
\clearpage
%\MR\input{sections/Kapitel/MR/EntwicklungAufgaben.tex}
\subfile{sections/vhdl_intro/vhdl_intro.tex}
\subfile{sections/soc/soc.tex}
\subfile{sections/core/core.tex}
%====================================================================================
\clearpage\vfill\newpage{}
%====================================================================================
\section{Erkl"arung der Eigenst"andigkeit der Arbeit}
\noindent\\[0mm] EIDESSTATTLICHE ERKLÄRUNG
\\[4mm]
\parbox{152mm}{
Ich erkläre an Eides statt, dass ich die vorliegende Arbeit selbständig und ohne
fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht
benutzt und die den benutzten Quellen wörtlich und inhaltlich entnommenen
Stellen als solche erkenntlich gemacht habe. Meine Arbeit darf öffentlich
zugänglich gemacht werden, wenn kein Sperrvermerk vorliegt.
}
\\[19mm]\parbox{80mm}{
\rule{60mm}{.5pt}\\
\hspace*{3mm}Ort, Datum
}
\parbox{80mm}{
\rule{70mm}{.5pt}\\
\hspace*{3mm} Armin Brauns
}
\\[19mm]\parbox{80mm}{
\rule{60mm}{.5pt}\\
\hspace*{3mm}Ort, Datum
}
\parbox{80mm}{
\rule{70mm}{.5pt}\\
\hspace*{3mm} Daniel Plank
}
%====================================================================================
\clearpage\vfill\newpage{}
\pagenumbering{Roman}
%====================================================================================
\renewcommand{\thesection}{\Roman{section}\;}
\setcounter{section}{0}
\listoffigures\thispagestyle{fancy}
\listoftables\thispagestyle{fancy}
\lstlistoflistings\thispagestyle{fancy}
\printbibliography[title={Literaturverzeichnis},heading=bibnumbered]
%====================================================================================
\clearpage\vfill\newpage{}
%====================================================================================
%\noindent\\[-2mm]
%\hspace*{3mm}{\sc\textbf{\Large Anhang}}
%\noindent\\[-5mm]
%
%
%\cfoot{Anhang}
%\addcontentsline{toc}{section}{Anhang}
%\appendix
%\renewcommand{\thesection}{\Alph{section}}
%\setcounter{section}{1}
%\setcounter{subsection}{0}
%\subsection{Pflichtenheft}
%\input{sections/Anhang/Pflichtenheft/pflichtenheftMR.tex}
%
%\newpage
%\subsection{Schlussfolgerung / Projekterfahrung}
%\input{sections/Anhang/schlussfolgerung.tex}
%\subsection{Projektterminplanung}
%\MR\input{sections/Anhang/Projektterminplanung/projektterminplanungMR.tex}
\clearpage
%\subsection{Arbeitsnachweis Diplomarbeit}
%\MR\input{sections/Anhang/Arbeitsnachweis/arbeitsnachweisMR.tex}
\label{LastPage}
%\addtocontents{toc}{\protect\end{multicols}}
\end{document} \end{document}

File diff suppressed because it is too large Load diff

337
LICENSE.md Normal file
View file

@ -0,0 +1,337 @@
## creative commons
# Attribution 4.0 International
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not
provide legal services or legal advice. Distribution of Creative Commons public
licenses does not create a lawyer-client or other relationship. Creative Commons
makes its licenses and related information available on an “as-is” basis.
Creative Commons gives no warranties regarding its licenses, any material
licensed under their terms and conditions, or any related information. Creative
Commons disclaims all liability for damages resulting from their use to the
fullest extent possible.
### Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and conditions
that creators and other rights holders may use to share original works of
authorship and other material subject to copyright and certain other rights
specified in the public license below. The following considerations are for
informational purposes only, are not exhaustive, and do not form part of our
licenses.
* __Considerations for licensors:__ Our public licenses are intended for use by
those authorized to give the public permission to use material in ways otherwise
restricted by copyright and certain other rights. Our licenses are irrevocable.
Licensors should read and understand the terms and conditions of the license
they choose before applying it. Licensors should also secure all rights
necessary before applying our licenses so that the public can reuse the material
as expected. Licensors should clearly mark any material not subject to the license.
This includes other CC-licensed material, or material used under an exception or
limitation to copyright.
[More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors).
* __Considerations for the public:__ By using one of our public licenses, a
licensor grants the public permission to use the licensed material under
specified terms and conditions. If the licensors permission is not necessary
for any reasonfor example, because of any applicable exception or limitation
to copyrightthen that use is not regulated by the license. Our licenses grant
only permissions under copyright and certain other rights that a licensor has
authority to grant. Use of the licensed material may still be restricted for
other reasons, including because others have copyright or other rights in the
material. A licensor may make special requests, such as asking that all changes
be marked or described. Although not required by our licenses, you are
encouraged to respect those requests where reasonable.
[More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees).
## Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be
bound by the terms and conditions of this Creative Commons Attribution 4.0
International Public License ("Public License"). To the extent this Public
License may be interpreted as a contract, You are granted the Licensed Rights in
consideration of Your acceptance of these terms and conditions, and the Licensor
grants You such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and conditions.
### Section 1 Definitions.
a. __Adapted Material__ means material subject to Copyright and Similar Rights
that is derived from or based upon the Licensed Material and in which the
Licensed Material is translated, altered, arranged, transformed, or otherwise
modified in a manner requiring permission under the Copyright and Similar Rights
held by the Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording, Adapted Material is
always produced where the Licensed Material is synched in timed relation with a
moving image.
b. __Adapter's License__ means the license You apply to Your Copyright and
Similar Rights in Your contributions to Adapted Material in accordance with the
terms and conditions of this Public License.
c. __Copyright and Similar Rights__ means copyright and/or similar rights
closely related to copyright including, without limitation, performance,
broadcast, sound recording, and Sui Generis Database Rights, without regard to
how the rights are labeled or categorized. For purposes of this Public License,
the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. __Effective Technological Measures__ means those measures that, in the
absence of proper authority, may not be circumvented under laws fulfilling
obligations under Article 11 of the WIPO Copyright Treaty adopted on December
20, 1996, and/or similar international agreements.
e. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other
exception or limitation to Copyright and Similar Rights that applies to Your
use of the Licensed Material.
f. __Licensed Material__ means the artistic or literary work, database, or other
material to which the Licensor applied this Public License.
g. __Licensed Rights__ means the rights granted to You subject to the terms and
conditions of this Public License, which are limited to all Copyright and
Similar Rights that apply to Your use of the Licensed Material and that the
Licensor has authority to license.
h. __Licensor__ means the individual(s) or entity(ies) granting rights under
this Public License.
i. __Share__ means to provide material to the public by any means or process
that requires permission under the Licensed Rights, such as reproduction,
public display, public performance, distribution, dissemination, communication,
or importation, and to make material available to the public including in ways
that members of the public may access the material from a place and at a time
individually chosen by them.
j. __Sui Generis Database Rights__ means rights other than copyright resulting
from Directive 96/9/EC of the European Parliament and of the Council of 11 March
1996 on the legal protection of databases, as amended and/or succeeded, as well
as other essentially equivalent rights anywhere in the world.
k. __You__ means the individual or entity exercising the Licensed Rights under
this Public License. Your has a corresponding meaning.
### Section 2 Scope.
a. ___License grant.___
1. Subject to the terms and conditions of this Public License, the Licensor
hereby grants You a worldwide, royalty-free, non-sublicensable,
non-exclusive, irrevocable license to exercise the Licensed Rights in the
Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part; and
B. produce, reproduce, and Share Adapted Material.
2. __Exceptions and Limitations.__ For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public License does not
apply, and You do not need to comply with its terms and conditions.
3. __Term.__ The term of this Public License is specified in Section 6(a).
4. __Media and formats; technical modifications allowed.__ The Licensor
authorizes You to exercise the Licensed Rights in all media and formats
whether now known or hereafter created, and to make technical modifications
necessary to do so. The Licensor waives and/or agrees not to assert any right
or authority to forbid You from making technical modifications necessary to
exercise the Licensed Rights, including technical modifications necessary to
circumvent Effective Technological Measures. For purposes of this Public
License, simply making modifications authorized by this Section 2(a)(4)
never produces Adapted Material.
5. __Downstream recipients.__
A. __Offer from the Licensor Licensed Material.__ Every recipient of
the Licensed Material automatically receives an offer from the Licensor
to exercise the Licensed Rights under the terms and conditions of this
Public License.
B. __No downstream restrictions.__ You may not offer or impose any
additional or different terms or conditions on, or apply any Effective
Technological Measures to, the Licensed Material if doing so restricts
exercise of the Licensed Rights by any recipient of the Licensed
Material.
6. __No endorsement.__ Nothing in this Public License constitutes or may be
construed as permission to assert or imply that You are, or that Your use of
the Licensed Material is, connected with, or sponsored, endorsed, or granted
official status by, the Licensor or others designated to receive attribution
as provided in Section 3(a)(1)(A)(i).
b. ___Other rights.___
1. Moral rights, such as the right of integrity, are not licensed under this
Public License, nor are publicity, privacy, and/or other similar personality
rights; however, to the extent possible, the Licensor waives and/or agrees
not to assert any such rights held by the Licensor to the limited extent
necessary to allow You to exercise the Licensed Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this Public License.
3. To the extent possible, the Licensor waives any right to collect royalties
from You for the exercise of the Licensed Rights, whether directly or through
a collecting society under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly reserves any
right to collect such royalties.
### Section 3 License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following
conditions.
a. ___Attribution.___
1. If You Share the Licensed Material (including in modified form), You must:
A. retain the following if it is supplied by the Licensor with the
Licensed Material:
i. identification of the creator(s) of the Licensed Material and any
others designated to receive attribution, in any reasonable manner
requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably
practicable;
B. indicate if You modified the Licensed Material and retain an
indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public License,
and include the text of, or the URI or hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
based on the medium, means, and context in which You Share the Licensed
Material. For example, it may be reasonable to satisfy the conditions by
providing a URI or hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the information
required by Section 3(a)(1)(A) to the extent reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's License You apply
must not prevent recipients of the Adapted Material from complying with this
Public License.
### Section 4 Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your
use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
reuse, reproduce, and Share all or a substantial portion of the contents of the
database;
b. if You include all or a substantial portion of the database contents in a
database in which You have Sui Generis Database Rights, then the database in
which You have Sui Generis Database Rights (but not its individual contents) is
Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share all or a
substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace
Your obligations under this Public License where the Licensed Rights include
other Copyright and Similar Rights.
### Section 5 Disclaimer of Warranties and Limitation of Liability.
a. __Unless otherwise separately undertaken by the Licensor, to the extent
possible, the Licensor offers the Licensed Material as-is and as-available, and
makes no representations or warranties of any kind concerning the Licensed
Material, whether express, implied, statutory, or other. This includes, without
limitation, warranties of title, merchantability, fitness for a particular
purpose, non-infringement, absence of latent or other defects, accuracy, or the
presence or absence of errors, whether or not known or discoverable. Where
disclaimers of warranties are not allowed in full or in part, this disclaimer
may not apply to You.__
b. __To the extent possible, in no event will the Licensor be liable to You on
any legal theory (including, without limitation, negligence) or otherwise for
any direct, special, indirect, incidental, consequential, punitive, exemplary,
or other losses, costs, expenses, or damages arising out of this Public License
or use of the Licensed Material, even if the Licensor has been advised of the
possibility of such losses, costs, expenses, or damages. Where a limitation of
liability is not allowed in full or in part, this limitation may not apply to
You.__
c. The disclaimer of warranties and limitation of liability provided above shall
be interpreted in a manner that, to the extent possible, most closely
approximates an absolute disclaimer and waiver of all liability.
### Section 6 Term and Termination.
a. This Public License applies for the term of the Copyright and Similar Rights
licensed here. However, if You fail to comply with this Public License, then
Your rights under this Public License terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section
6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is cured
within 30 days of Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right the
Licensor may have to seek remedies for Your violations of this Public
License.
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material
under separate terms or conditions or stop distributing the Licensed Material
at any time; however, doing so will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
### Section 7 Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or
conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed
Material not stated herein are separate from and independent of the terms and
conditions of this Public License.
### Section 8 Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be
interpreted to, reduce, limit, restrict, or impose conditions on any use of the
Licensed Material that could lawfully be made without permission under this
Public License.
b. To the extent possible, if any provision of this Public License is deemed
unenforceable, it shall be automatically reformed to the minimum extent
necessary to make it enforceable. If the provision cannot be reformed, it shall
be severed from this Public License without affecting the enforceability of the
remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to
comply consented to unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a
limitation upon, or waiver of, any privileges and immunities that apply to the
Licensor or You, including from the legal processes of any jurisdiction or
authority.
> Creative Commons is not a party to its public licenses. Notwithstanding,
Creative Commons may elect to apply one of its public licenses to material it
publishes and in those instances will be considered the “Licensor.” Except for
the limited purpose of indicating that material is shared under a Creative
Commons public license or as otherwise permitted by the Creative Commons
policies published at
[creativecommons.org/policies](http://creativecommons.org/policies),
Creative Commons does not authorize the use of the trademark “Creative Commons”
or any other trademark or logo of Creative Commons without its prior written
consent including, without limitation, in connection with any unauthorized
modifications to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For the
avoidance of doubt, this paragraph does not form part of the public licenses.
>
> Creative Commons may be contacted at creativecommons.org

View file

@ -20,14 +20,14 @@ $1: $2
HEADER_DIRS += $1 HEADER_DIRS += $1
endef endef
$(eval $(call headers_template,core/entities/,$(wildcard $(VHDL_DIR)/core/*.vhd))) $(eval $(call headers_template,sections/core/entities/,$(wildcard $(VHDL_DIR)/core/*.vhd)))
.PHONY: entity_headers .PHONY: entity_headers
entity_headers: $(HEADER_DIRS) entity_headers: $(HEADER_DIRS)
.PHONY: Diplomschrift.pdf .PHONY: Diplomschrift.pdf
Diplomschrift.pdf: $(HEADER_DIRS) Diplomschrift.tex Diplomschrift.pdf: $(HEADER_DIRS) Diplomschrift.tex
latexmk --pdf --pdflatex="pdflatex -interaction=nonstopmode" --use-make Diplomschrift.tex latexmk --pdfxe --pdfxelatex="xelatex -interaction=nonstopmode --shell-escape" --use-make Diplomschrift.tex
.PHONY: clean .PHONY: clean
clean: clean:

11
README.md Normal file
View file

@ -0,0 +1,11 @@
# About
This repository contains documents related to the YARM thesis at the HTBLuVA
Innsbruck Anichstrasse.
# LICENSE
This thesis is licensed for use under the Creative Commons BY 4.0 License as
published by the Creative Commons Corporation. Please see the LICENSE.md
file or the creative commons website at
https://creativecommons.org/licenses/by/4.0/legalcode
for a full copy of the license.

BIN
antrag/antrag.pdf Normal file

Binary file not shown.

Binary file not shown.

View file

@ -1,84 +0,0 @@
%PDF-1.4
%Çì<C387>¢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
xœuQnÄ Dÿ9…OàÚ >F÷
•v6mï/Õ$!A*R&!ofð72P»Îç×>^¿<><C2BF>Y-ÆU†ŸWˆÅP˜<50>Å°¨À$'L5AFŠ™Þ!Š`[ÝJ.Œ¦ú·®PDiPžŽe3Ë ÃBÍ„mMžÿÔиÔêvß—· ÜÞ׌Ää x Ä
¼­bœJ<C593><„?ß Êi÷@ÖdJæÈý•˜Êš:ï?âõ°«2g§Îl°jäÝ9<C39D>ÈO¶ÙJ“¡ƒ·E„«µKéýÝÁ{Ç·r ÕÝÙp¦Kä¼Ùë@ªråÜÂl³õªÞdÖ} éÆ»rw5É<Hû¶2óÿ¬Åøíiz¶Ui³¿gø J9ºPendstream
endobj
6 0 obj
292
endobj
4 0 obj
<</Type/Page/MediaBox [0 0 57.69 57.69]
/Parent 3 0 R
/Resources<</ProcSet[/PDF]
/ExtGState 8 0 R
>>
/Contents 5 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
4 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
/Metadata 9 0 R
>>
endobj
7 0 obj
<</Type/ExtGState
/OPM 1>>endobj
8 0 obj
<</R7
7 0 R>>
endobj
9 0 obj
<</Type/Metadata
/Subtype/XML/Length 1371>>stream
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
<rdf:Description rdf:about='uuid:8a798284-5606-11f2-0000-42ba47da2376' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
<rdf:Description rdf:about='uuid:8a798284-5606-11f2-0000-42ba47da2376' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2017-04-10T12:34:08Z</xmp:ModifyDate>
<xmp:CreateDate>2017-04-10T12:34:08Z</xmp:CreateDate>
<xmp:CreatorTool>dvips(k) 5.992 Copyright 2012 Radical Eye Software</xmp:CreatorTool></rdf:Description>
<rdf:Description rdf:about='uuid:8a798284-5606-11f2-0000-42ba47da2376' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:8a798284-5606-11f2-0000-42ba47da2376'/>
<rdf:Description rdf:about='uuid:8a798284-5606-11f2-0000-42ba47da2376' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>JNsetRXh1.dvi</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='w'?>
endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.05)
/CreationDate(D:20170410123408Z00'00')
/ModDate(D:20170410123408Z00'00')
/Creator(dvips\(k\) 5.992 Copyright 2012 Radical Eye Software)
/Title(JNsetRXh1.dvi)>>endobj
xref
0 10
0000000000 65535 f
0000000590 00000 n
0000002171 00000 n
0000000531 00000 n
0000000396 00000 n
0000000015 00000 n
0000000377 00000 n
0000000654 00000 n
0000000695 00000 n
0000000724 00000 n
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
/ID [<ADE9694AC3EE77AEF1F97716539EA98F><ADE9694AC3EE77AEF1F97716539EA98F>]
>>
startxref
2379
%%EOF

80
pics/logoBpdf.svg Normal file
View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="76.919998"
height="76.919998"
viewBox="0 0 76.919998 76.919998"
sodipodi:docname="logoBpdf.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1041"
id="namedview4"
showgrid="false"
inkscape:zoom="17.355923"
inkscape:cx="11.003126"
inkscape:cy="55.365801"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0"
inkscape:current-layer="g10" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="logoBpdf"
transform="matrix(1.3333333,0,0,-1.3333333,0,76.92)"><g
id="g12"
transform="scale(0.1)"><path
d="M 379.211,129.762 254.484,5.03516 h 68.032 L 571.965,254.484 h -68.031"
style="fill:#0d0d80;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path14"
inkscape:connector-curvature="0" /><path
d="M 379.211,129.762 503.934,254.484 469.918,288.5 254.484,73.0664 V 5.03516"
style="fill:#3333b2;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path16"
inkscape:connector-curvature="0" /><path
d="M 447.238,379.211 571.965,254.484 v 68.032 L 322.516,571.965 v -68.031"
style="fill:#fdeb00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path18"
inkscape:connector-curvature="0" /><path
d="M 447.238,379.211 322.516,503.934 288.5,469.918 503.934,254.484 h 68.031"
style="fill:#d9bf5c;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path20"
inkscape:connector-curvature="0" /><path
d="M 197.789,447.238 322.516,571.965 H 254.484 L 5.03516,322.516 H 73.0664"
style="fill:#00c94d;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path22"
inkscape:connector-curvature="0" /><path
d="M 197.789,447.238 73.0664,322.516 107.082,288.5 322.516,503.934 v 68.031"
style="fill:#00a633;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path24"
inkscape:connector-curvature="0" /><path
d="M 129.762,197.789 5.03516,322.516 V 254.484 L 254.484,5.03516 V 73.0664"
style="fill:#a80000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path26"
inkscape:connector-curvature="0" /><path
d="M 129.762,197.789 254.484,73.0664 288.5,107.082 73.0664,322.516 H 5.03516"
style="fill:#e30000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path28"
inkscape:connector-curvature="0" /></g></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -0,0 +1,2 @@
\subsection{Daniel Plank}

91
planung/DP/aufwand.tex Normal file
View file

@ -0,0 +1,91 @@
\subsection{Aufwandsabschätzung}
Die Aufwandsabschätzung beinhaltet nur die nach offiziellem Einreichen der
Diplomarbeit zu vollziehenden Arbeiten.
\subsubsection{Stundenabschätzung der Teilaufgaben}
\begin{table}[H]
\begin{tabularx}{\textwidth}{|c|X|c|}
\hline
\textbf{Teilbereich} & \textbf{Aufgabe} &
\textbf{Dauer[Stunden]}\\
\hline
Allgemeines & Informationsbeschaffung zur Funktionsweise & 2\\
\hline
Allgemeines & Bestückung der Backplane & 1\\
\hline
Allgemeines & Zeichnen der Testplatinen & 6\\
\hline
Allgemeines & Auswahl der Bauelemente der Testplatinen & 3\\
\hline
Allgemeines & Bestücken der Testplatinen & 3\\
\hline
Allgemeines & Verifikation der Backplane & 2\\
\hline
Soundpuffer & Informationsbeschaffung zur Funktionsweise & 2\\
\hline
Soundpuffer & Auswahl der Bauelemente & 1\\
\hline
Soundpuffer & Verifikations-Schaltungsenticklung & 4\\
\hline
Soundpuffer & Steckbrettaufbau und Fehlersuche & 7\\
\hline
Soundpuffer & Steckbrettaufbau Test und Verifikation & 3\\
\hline
Grafikpuffer & Infromationsbeschaffung zur Funktiosweise & 4\\
\hline
Grafikpuffer & Schaltungsplanung zum Pufferwechsel & 5\\
\hline
Grafikpuffer & Verifikations-Schalktungsentwicklung & 7\\
\hline
Grafikpuffer & Auswahl der Bauelemente & 1.5\\
\hline
Grafikpuffer & Steckbrettaufbau und Fehlersuche & 10\\
\hline
Soundpuffer & Fertigen der Platinenzeichnung & 2\\
\hline
Grafikpuffer & Fertigen der Platinenzeichnung & 3\\
\hline
Soundpuffer & Fertigen der Platine & 3.5\\
\hline
Grafikpuffer & Fertigen der Platine & 2\\
\hline
Soundpuffer & Bestücken der Platine & 1.5\\
\hline
Grafikpuffer & Bestücken der Platine & 1.5\\
\hline
Soundpuffer & Verifikation mittels Testplatine & 1.5\\
\hline
Grafikpuffer & Verifikation mittels Testplatine & 1.5\\
\hline
Allgemeines & Entwicklung von Beispielbedienungen mittels
Testplatinen & 3\\
\hline
Mikrokontrolle & Entwicklung von Interface zwischen Backplane
und Mikrokontroller & 2\\
\hline
Software & Entwicklung von Demosoftware mit Soundpuffer &
4\\
\hline
Software & Entwicklung von Demosoftware mit Grafikpuffer &
7\\
\hline
Allgemeines & Allgemeiner Fehlerpuffer während der Entwicklung
& 15h\\
\textbf{SUMME} & \textbf{SUMME} & 109\\
\hline
Dokumentation & Dokumentation & 60 \\
\hline
\textbf{SUMME} & \textbf{SUMME} & 169\\
\hline
\hline
\end{tabularx}
\label{tab:stunden_plank}
\caption{Stundenabschätzung Plank Daniel}
Die Dokumentation wird mit 60h beschätzt, da diese die Gesamte
Funktionsweise der Hardware abdeckt, und mehrere Messungen der Hardware
beeinhlatet.
\end{table}

33
planung/DP/grobdesign.tex Normal file
View file

@ -0,0 +1,33 @@
\subsection{Grobdesign}
\subsubsection{Aufgabenstellung}
Zur Klärung immerwiederkehrender Fragen im Umfeld des Vereins IT-Syndikat in
Innsbruck sollen Beispiele und Dokumentation der Funktion moderner
Prozessorperipherie und der Kommunikation selbiger mit dem Prozessorkern als
MMIO
\footnote{\href{https://en.wikipedia.org/wiki/Memory-mapped_I/O}{MMIO}...
Memory Mapped I/O} Angefertigt werden. Diese Dokumentation soll möglichst für alle
Prozessorarchitekturen gültig und daher Architekturunabhängig sein. Die
Dokumentation soll für Personen mit tieferem Verständniss von Hardware, sowie
für Anfänger hilfreiche Aussagen über die Funktionswiese der Hardware liefern,
welche sich aus einer seriellen Schnittstelle mit TIA-/EIA-232 Pegeln, einem
Framebuffer\footnote{\href{https://en.wikipedia.org/wiki/Framebuffer}
{Framebuffer}...Ein Speicherbereich in welchen
ein Bild geladen werden kann, welches dann ausgegeben werden} und einem
Soundbuffer\footnote{Ähnlich einem Framebuffer nur dass PCM-Audio anstatt
Bildern ausgegeben wird}.
\subsubsection{Umsetungsbeschreibung}
Zu aller erst müssen, um die ziele Verstehen zu können, die benötigten
Unterlagen beschaffen werden. Diese können in Papierform oder Digital vorhanden
sein. Letztere dürften leichter in diesem Industriezweig aufzutreiben sein,
jedoch muss mehr Acht gegeben werden auf die Korrektheit der Dokumente.
Nach der Beschaffung der Dokumente sollen Beispielschaltungen entwickelt werden,
damit die Funktionsweise auch tatsächlich verstanden werden kann.
Dokumentationen ohne sinnvollen Praktischen Hintergrund sind meist recht
unanschaulich. Nach Entwicklung der Schaltungen sollen diese sinnvoll
begründet werden und dann Dokumentiert werden. Die Dokumentation soll mindestens
aus Schaltungsbeschreibung, einer generellen Bauteilbeschreibung und den
Ideen hinter der aktuellen Umsetzung bestehen.

View file

@ -0,0 +1,7 @@
\subsection{Materialaufstellung}
Zur Fertigung der in der Aufgabenstellung gegebenen Bauteile werden die
folgenden Bauteile Benötigt:
\subsubsection{}

View file

@ -0,0 +1,31 @@
\subsubsection{1. Meilenstein - Beschaffung der Unterlagen}
\textbf{Datum: 2019-11-19}
Der 1. Meilenstein beschäftigt sich mit der Beschaffung der Benötigten
Unterlagen auf welchen die weitere Dokumentation basieren soll. Diese Unterlagen
sollen den Aufbau einer Seriellen Schnittstelle beschreiben, den Aufbau
eines Frame-Buffers und den Aufbau einer Sound-Karte. Die Unterlagen
sollen auch Beispielschlatungen beinhalten.
Die Folgenden Tests zur Verifikation der bisherigen Arbeit wurden dafür
definiert:
\begin{enumerate}
\item{Testname:}
Testinhalt
\begin{table}[H]
\centering
\begin{tabular}{|c|c|}
\hline
\textbf{FAILURE} & \textbf{SUCCESS}\\
\hline
& \\
\hline
\end{tabular}
\end{table}
\end{enumerate}

View file

@ -0,0 +1,7 @@
\subsection{2. Meilenstein - Serielle Schnitstelle}
\textbf{Datum: 2019-01-10}
Der 2. Meilenstein beschäftigt sich mit der Seriellen Schnittstelle, ihrer
Schaltung und der Verifikation selbiger. Die Dokumentation ihrer Funktionsweise
soll zu einem späteren Zeitpunkt erfolgen.

View file

@ -0,0 +1,7 @@
\subsection{3. Meilenstein - Soundbuffer}
\textbf{Datum: 2019-02-04}
Der 3. Meilenstein beschäftigt sich mit der Schaltungsentwicklung des
Soundbuffers, der Funktionsweise eines Soundbuffers und der
Schaltungsverifikation der entwickelten Schaltung.

View file

@ -0,0 +1,8 @@
\subsection{4. Meilenstein - Dokumentation}
\textbf{Datum: 2019-03-10}
Der 4. Meilenstein beschäftigt sich mit der Dokumentation der bisherigen
Bauteile, namlich des Soundbuffers und der Seriellen Schnittstelle. Zu diesem
Meilenstein soll die Dokumentation der Funktionsweise und der Implementation
gefertigt werden.

View file

@ -0,0 +1,6 @@
\subsection{4. Meilenstein - Framebuffer}
\textbf{Datum: 2019-04-14}
Der 5. Meilenstein beschäftigt sich mit der Dokumentation eines Framebuffers und
der rein theoretischen implementierung selbigens.

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,21 @@
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2019.7.11) 11 AUG 2019 22:35
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**main.
! Emergency stop.
<*> main.
End of file on the terminal!
Here is how much of TeX's memory you used:
3 strings out of 492922
15 string characters out of 6138851
64272 words of memory out of 5000000
4153 multiletter control sequences out of 15000+600000
3640 words of font info for 14 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
0i,0n,0p,8b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.

20
planung/DP/planung.tex Normal file
View file

@ -0,0 +1,20 @@
\input{planung/DP/grobdesign.tex}
\subsection{Meilensteine}
\paragraph{Anmerkung zu den Daten}
Die Daten wurden den Vorgaben entsprechend gewählt, so wurden mindestens 2
Meilensteine in das Sommersemester hineingelegt. Die Meilensteine wurden
auf Dienstage gelegt, da an diesem Wochentag bekannt ist dass der Betreuer
sich im Gebäude der HTBLuVA befindet. Die Meilensteintermine wurden möglichst
Äquidistant über den zur Verfügung stehenden Zeitbereich verteilt.
\input{planung/DP/meilensteine/1.tex}
\input{planung/DP/meilensteine/2.tex}
\input{planung/DP/meilensteine/3.tex}
\input{planung/DP/meilensteine/4.tex}
\input{planung/DP/meilensteine/5.tex}
\subsection{Zeitabschätzung}
\input{planung/DP/aufwand.tex}

View file

@ -1,73 +1,317 @@
%based on xhversion{v3.01 SiU} %PdJ,PdL,PdM,PdS,PdU,Pe6,PeI,PfB,PfD,RbN,RbP,RcL,RdC,RdD,RdF,Sb7,ScN,SiT,SiU,Sj3,
\listfiles %lists included files while processing 'pdflatex'
\documentclass[12pt,a4paper]{article}
%\documentclass[12pt,a4paper]{book}
%\documentclass[11pt,a4paper]{article}
%\documentclass[12pt,a4paper]{report}
%\usepackage{etex} %gegen 'no more room for new dimen...' error bei 'tikz' xh@RaE1
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage[ngerman,english]{babel}
\usepackage[OT2,T1]{fontenc}
\usepackage{svg} % Allows the inclusion of SVG files
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amscd}
%\usepackage{extarrows} %\xleftrightarrow[obentext]{untentext}
\usepackage{wasysym}
\usepackage{pxfonts}
\usepackage{verbatim}
\usepackage{alltt}
\usepackage{moreverb}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{url} \usepackage{wrapfig}
%\usepackage{subfigure} % Probleme mit tocloft? -MR
%\usepackage{theorem}
%\usepackage[dvips]{color}
%\usepackage{lmodern}
%\usepackage{textcomp}
\usepackage{multicol} % 2-, 3-, ... -spaltige Formatierung mit 'multicols'
\usepackage{multirow} % fuer 'tabular' - Tabellen
%\usepackage{makeidx}
\usepackage{imakeidx} % erspart dieses externe Stichwortprogramm
%\usepackage{pdfpages} % fuer 'includepdf' (stattdessen nimmi meistens 'includegraphics[page=1,...]')
\usepackage{mdwlist} % f. 'compact lists' "itemize*", "enumerate*", "description*"
%\usepackage{ulem} %... produziertma nFehler ban 'latex' run
\usepackage{longtable} % fuer tabellen ueber mehrere Seiten
\usepackage{makecell} % Zeilenumbruch in Tabellenzelle -MR
\usepackage{xcolor}
\definecolor{lltgy} {gray}{0.96} % selbstdefinierte Farben
\definecolor{ltgy} {gray}{0.91}
\definecolor{dkgn} {rgb}{0.0,0.7,0.0}
\definecolor{dkbu} {rgb}{0.0,0.0,0.6}
\definecolor{ddkbu} {rgb}{0.0,0.0,0.45}
\usepackage{ifthen} % fuer 'ifthenelse{}{}{}'
\usepackage{ifpdf} % fuer {\ifpdf ... \fi}
\usepackage{beramono} % monospace font -MR
\usepackage{listings} \usepackage{listings}
\usepackage{svg}
\lstdefinestyle{default}{
columns=space-flexible,
basicstyle=\fontsize{9pt}{9pt}\selectfont\ttfamily,
frame=single,
frameround=tttt,
showstringspaces=false,
breaklines=true,
tabsize=4,
numbers=left,
captionpos=b
}
\lstdefinestyle{terminal}{
style=default,
language=bash,
frame=none,
numbers=none,
backgroundcolor=\color{ltgy}
}
\lstdefinelanguage{customvhdl}[]{VHDL}{ \lstdefinelanguage{customvhdl}[]{VHDL}{
morekeywords=[2]{std_logic, std_logic_vector, natural, integer, bit, string}, morekeywords=[2]{std_logic, std_logic_vector, natural, integer, bit, string},
} }
\lstdefinestyle{default}{ \lstdefinestyle{vhdlstyle}{
showstringspaces=false, language=customvhdl,
tabsize=4,
belowcaptionskip=1\baselineskip, belowcaptionskip=1\baselineskip,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries\color{green!40!black}, keywordstyle=\bfseries\color{green!40!black},
keywordstyle=[2]\bfseries\color{blue!80!white},
commentstyle=\itshape\color{purple}, commentstyle=\itshape\color{purple},
backgroundcolor=\color{lightgray!20},
stringstyle=\color{orange}, stringstyle=\color{orange},
breaklines=true,
xleftmargin=\parindent, xleftmargin=\parindent,
numbers=left,
title=\lstname, title=\lstname,
} }
\lstdefinestyle{vhdlstyle}{
style=default,
language=customvhdl,
keywordstyle=[2]\bfseries\color{blue!80!white},
backgroundcolor=\color{lightgray!20},
frame=lrtb,
}
\lstset{ \lstset{
style=vhdlstyle, style=default,
literate={ö}{{\"o}}1
{ä}{{\"a}}1
{ü}{{\"u}}1
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
}
%% fix minus sign conflict with listings and breqn
\mathchardef\hyphenmathcode=\mathcode`\-
\let\origlstlisting=\lstlisting
\let\endoriglstlisting=\endlstlisting
\renewenvironment{lstlisting}
{\mathcode`\-=\hyphenmathcode
\everymath{}\mathsurround=0pt\origlstlisting}
{\endoriglstlisting}
\usepackage{fancyhdr}
%\usepackage{framed} %'\begin{framed}' ... '\end{framed}', schautAusWiePartezettel:-)
\usepackage{hyphenat} %fuer '\hyph{}'
\usepackage{lastpage} %fuer '\pageref{LastPage}' - **funzt nid bei allen**
\usepackage[hyphens]{url} %fuer '\url{...}'
% lscape oder pdflscape: ('landscape' == Querformat)
\usepackage{lscape}
%\usepackage{pdflscape}
\usepackage{rotating} %f. 'rotate' und 'turn'
\usepackage[active]{pst-pdf}
\usepackage{pst-circ}
\usepackage{pst-plot}
\usepackage{pst-uml}
%\usepackage{calc}
\usepackage{fp}
%\usepackage[official]{eurosym}
\usepackage[gen]{eurosym}
% YHs Raender links 30mm rechts 25mm einstellen:
\setlength{\hoffset} {30mm-1in}
\setlength{\oddsidemargin}{0pt} %bei doppelseitigem Druck umstellen!
\setlength{\textwidth} {\paperwidth-55mm}
\setlength{\topmargin} {0pt}
\addtolength{\voffset} {-16.2mm}
\addtolength{\textheight}{39mm}
%\setcounter{tocdepth}{4} %bringt auch 'paragraph{titel}' ins Inhaltsverzeichnis
%
\definecolor{ydkbu}{rgb}{0.0,0.0,0.6} % YHs blaue Schriftfarb
\newcommand{\yhbu}[0]{\color{ydkbu}} % Macro fuer schreibfaulen XH
%\newcommand{\yhbu}[0]{\color{ydkbu}\usefont{T1}{laess}{m}{n}} % Macro fuer schreibfaulen XH
\definecolor{corrclr}{rgb}{0.7,0.2,0.2} % XHs Korrekturen-Farb ...
\newcommand{\korr}[0]{\color{corrclr}\fontsize{8pt}{9pt}\selectfont\bf} %plus Faulheitsmacro
\makeindex
%%% BibLaTeX settings
\usepackage[style = verbose, dashed=false, citestyle = authoryear-ibid, maxcitenames=1]{biblatex}
\usepackage{csquotes}
%\addbibresource{./bibliographies/MR.bib}
\DeclareNameAlias{sortname}{family-given}
\renewcommand\multinamedelim{;\ }
\renewcommand\finalnamedelim{;\ }
\renewcommand\intitlepunct{:\ }
\renewcommand\labelnamepunct{:\ }
\DeclareFieldFormat{title}{#1} %title not italic
%\bibnamedash
%\renewcommand\newunitpunct{OWO}
\usepackage{float} % Allows the H floating option
\usepackage{tabularx} % Allows the H floating option
\usepackage[headheight=0mm, margin=2.5cm]{geometry}
%%% MR-packages:
\usepackage{hyperref}
\hypersetup{
pdfauthor={Daniel Plank, Armin Brauns},
pdftitle=YARM,
pdfproducer=5ABHEL,
bookmarks=true,
pdfcreator=xelatex,
} }
\usepackage{biblatex} \usepackage{tikz,pgfplots}
\usetikzlibrary{plotmarks}
\usetikzlibrary{angles,quotes,babel,shapes,arrows,positioning,calc}
\usepackage{tikz-timing}
\tikzset{
block/.style = {draw, fill=white, rectangle, minimum height=3em, minimum width=3em,align=center},
tmp/.style = {coordinate},
sum/.style= {draw, fill=white, circle, node distance=1cm},
input/.style = {coordinate},
output/.style= {coordinate},
pinstyle/.style = {pin edge={to-,thin,black}
}
}
% https://www.overleaf.com/learn/latex/LaTeX_Graphics_using_TikZ:_A_Tutorial_for_Beginners_(Part_3)%E2%80%94Creating_Flowcharts
\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum
height=1cm,align=center, text width=3cm, draw=black, fill=red!30]
\tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm,
minimum height=1cm, align=center, text width=3cm, draw=black, fill=blue!30]
\tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, align=center, text width=3cm, draw=black, fill=orange!30]
\tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, align=center, text width=3cm, draw=black, fill=green!30]
\tikzstyle{arrow} = [thick,->,>=latex]
\usepackage[european, straightvoltages]{circuitikz}
\usepackage[per-mode=fraction]{siunitx}
\usepackage{breqn}
\usepackage{physics}
\usepackage{caption}
\usepackage{slashed}
\input kvmacros
\usepackage{mdframed}
\usepackage{lipsum}
\usepackage{blindtext}
\usepackage{pgfgantt}
%%% Title formatting
\usepackage{titlesec}
\titleformat{\section}{\normalfont\bfseries\scshape\fontsize{16pt}{19pt}\selectfont}{\thesection}{1em}{}
%%% ToC formatting
\usepackage{tocloft}
\renewcommand{\cftloftitlefont}{\section}
\renewcommand{\cftlottitlefont}{\section}
\renewcommand{\cftsecfont}{}
\renewcommand\cftsubsecdotsep{.2}
\renewcommand{\cftsecleader}{\cftdotfill{\cftsubsecdotsep}}
\setlength\cftbeforesecskip{3.84pt}
\setlength\cftsubsecindent{4.2mm}
% command for regular footer in ToC
\fancypagestyle{plain}{%
\fancyhf{}
\fancyhead[L]{\HtlHeader}
\fancyfoot[L]{Brauns, Plank}
\fancyfoot[R]{\thepage}
\setlength{\headwidth}{1.0\textwidth}
\setlength{\headheight}{12mm}
\renewcommand{\headrulewidth}{0.0pt}
\renewcommand{\footrulewidth}{0.33pt}
}
% make listoflistings its own section
\usepackage{tocbasic}
\addtotoclist[float]{lol}
\renewcommand*\lstlistoflistings{\listoftoc[{\lstlistlistingname}]{lol}}
\DeclareTOCStyleEntry[
level=1,
indent=1.5em,
numwidth=2.3em
]{default}{listing}
\doforeachtocfile[float]{%
\setuptoc{#1}{numbered}%
}
%/* Xh Macros: */
\newcommand{\cmnt}[1]{} %eigene Kommentier-Funktion \cmnt{ ...Kommentar... }
\newcommand\tbs{\textbackslash} %'\textbackslash{}' isma z'long zan tippen ;-)
\newcommand{\xilist}[6]{ %XHs eigenes Auflistungs-Format
\noindent\\[#3mm]\protect\begin{list}{#1}{\setlength\topsep{-4mm}%
\setlength\partopsep{-1.0mm}\setlength\itemsep{#4mm}\setlength\leftmargin{#2mm}%
\setlength\itemindent{-0.0mm}\setlength{\baselineskip}{0.9\baselineskip} }%
#6%
\protect\end{list}\hfill\\[#5mm]%
}
%/* Line Spacing: */
\usepackage{setspace}
% \newcommand{\mylinespacing}[0]{\singlespace} % 1,0-ZeilenAbstand
\newcommand{\mylinespacing}[0]{\onehalfspace} % 1,5-ZeilenAbstand
% \newcommand{\mylinespacing}[0]{\doublespace} % 2,0-ZeilenAbstand
%/* serifenlose Schrift-Grundeinstellung: */
% /*Font Family:*/
%\renewcommand*{\familydefault}{\rmdefault} %klassisches 'Roman' (statt MicroMurx...)
\renewcommand*{\familydefault}{\sfdefault} %klassisches 'Helvetica' statt 'Murx-Arial'
%%% Autoren:
\newcommand\AB{\lfoot{Armin Brauns}}
\newcommand\DP{\lfoot{Daniel Plank}}
\newcommand\allAuth{\lfoot{Brauns, Plank}}
\newcommand\TikZ{Ti\textit{k}Z}
\newcommand{\HtlHeader}[0]{%
%\hspace*{-11mm}%
%\raisebox{-1mm}{\logoB{0.12}}%
{
\includesvg[width=10.3mm]{pics/logoBpdf.svg}
}
\hspace*{2mm}%
\parbox[b]{110mm}{\flushleft
{\fontsize{20pt}{20pt}\selectfont\bf HTL}
{\fontsize{16.2pt}{16.2pt}\selectfont\color{teal}\bf Anichstra\ss e}
\\[-4.05mm]{\color{darkgray}\rule{110mm}{0.5pt}}
\\[-2.24mm]{\fontsize{7pt}{7pt}\selectfont\color{darkgray}
Biomedizin $\cdot$ Elektronik $\cdot$ Elektrotechnik
$\cdot$
Maschinenbau $\cdot$ Wirtschaftsingenieure
\rule{0pt}{0mm}
%\vspace*{1.1mm}
}
}%
\hspace*{5mm}%
\raisebox{-0.2mm}{ \includegraphics[width=25mm]{pics/HTLgenlogo02}}
\\[-1.5mm]\rule{\textwidth}{0.5pt}
%\hfill
}%HtlHeader
\addbibresource{Diplomschrift.bib} \addbibresource{Diplomschrift.bib}
\usepackage{titling} \usepackage{titling}
\usepackage{graphicx}
\usepackage{lastpage}
\usepackage{datetime} \usepackage{datetime}
\yyyymmdddate \yyyymmdddate
\renewcommand{\dateseparator}{-} \renewcommand{\dateseparator}{-}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{pst-uml}
\setlength{\hoffset}{30mm-1in}
\setlength{\oddsidemargin}{0pt}
\setlength{\textwidth}{\paperwidth-60mm}
\addtolength{\textheight}{5em}
\setlength{\headwidth}{\textwidth}
\setlength{\topmargin}{0pt}
\addtolength{\voffset}{-1em}
\setlength{\parindent}{0pt} \setlength{\parindent}{0pt}
\setlength{\parskip}{1em} \setlength{\parskip}{1em}
\usepackage{footnote} \usepackage{footnote}
\usepackage{tikz}
\newcommand\instrset{rv32i} \newcommand\instrset{rv32i}
\newcommand{\entityheader}[2]{ \newcommand{\entityheader}[2]{
\lstinputlisting[title=\texttt{#2}]{#1} \lstinputlisting[style=vhdlstyle,title=\texttt{#2}]{#1}
} }
\usepackage{tcolorbox} \usepackage{tcolorbox}
@ -89,6 +333,3 @@
bottom=0pt bottom=0pt
} }
\newcommand{\icode}[1]{\codeBox{\texttt{#1}}} \newcommand{\icode}[1]{\codeBox{\texttt{#1}}}
% loaded last
\usepackage{hyperref}

View file

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -0,0 +1,18 @@
entity alu is
port (
clk : in std_logic;
enable_math : in std_logic;
valid : out std_logic;
operation : in alu_operation_t;
a, b : in yarm_word;
math_result : out yarm_word;
-- compare inputs
-- do signed comparisons
enable_cmp : in std_logic;
cmp_signed : in std_logic;
cmp1, cmp2 : in yarm_word;
cmp_result : out compare_result_t
);
end alu;

View file

@ -0,0 +1,54 @@
entity control is
generic (
RESET_VECTOR : yarm_word
);
port (
clk : in std_logic;
reset : in std_logic;
fetch_enable : out std_logic;
fetch_ready : in std_logic;
fetch_instr_out : in yarm_word;
decoder_enable : out std_logic;
decoder_instr_info_out : in instruction_info_t;
registers_data_a : in yarm_word;
registers_data_b : in yarm_word;
alu_enable_math : out std_logic;
alu_math_result : in yarm_word;
alu_valid : in std_logic;
alu_enable_cmp : out std_logic;
alu_cmp_result : in compare_result_t;
csr_enable : out std_logic;
csr_ready : in std_logic;
csr_data_read : in yarm_word;
csr_increase_instret : out std_logic;
datamem_enable : out std_logic;
datamem_ready : in std_logic;
alignment_raise_exc : out std_logic;
alignment_exc_data : out exception_data_t;
registers_read_enable : out std_logic;
registers_write_enable : out std_logic;
-- TRAP CONTROL
may_interrupt : out std_logic;
-- the stage that will receive an interrupt exception
interrupted_stage : out pipeline_stage_t;
do_trap : in std_logic;
trap_vector : in yarm_word;
trap_return_vec : in yarm_word;
return_trap : out std_logic;
-- instruction info records used as input for the respective stages
stage_inputs : out pipeline_frames_t
);
end control;

View file

@ -0,0 +1,23 @@
entity core is
generic (
HART_ID : natural;
RESET_VECTOR : yarm_word := (others => '0')
);
port (
clk : in std_logic;
reset : in std_logic;
-- little-endian memory interface, 4 byte address alignment
MEM_addr : out yarm_word;
MEM_read : out std_logic;
MEM_write : out std_logic;
MEM_ready : in std_logic;
MEM_byte_enable : out std_logic_vector(3 downto 0);
MEM_data_read : in yarm_word;
MEM_data_write : out yarm_word;
external_int : in std_logic;
timer_int : in std_logic;
software_int : in std_logic
);
end core;

View file

@ -0,0 +1,36 @@
entity csr is
generic (
HART_ID : integer
);
port (
clk : in std_logic;
reset : in std_logic;
enable : in std_logic;
ready : out std_logic;
instr_info_in : in instruction_info_t;
data_write : in yarm_word;
data_read : out yarm_word;
increase_instret : in std_logic;
external_int : in std_logic;
timer_int : in std_logic;
software_int : in std_logic;
interrupts_pending : out yarm_word;
interrupts_enabled : out yarm_word;
global_int_enabled : out std_logic;
mtvec_out : out yarm_word;
mepc_out : out yarm_word;
do_trap : in std_logic;
return_m_trap : in std_logic;
mepc_in : in yarm_word;
mcause_in : in yarm_trap_cause;
mtval_in : in yarm_word;
raise_exc : out std_logic;
exc_data : out exception_data_t
);
end csr;

View file

@ -0,0 +1,21 @@
entity decoder is
port (
clk : in std_logic;
enable : in std_logic;
async_addr_rs1 : out register_addr_t;
async_addr_rs2 : out register_addr_t;
alu_muxsel_a : out mux_selector_t;
alu_muxsel_b : out mux_selector_t;
alu_muxsel_cmp2 : out mux_selector_t;
csr_muxsel_in : out mux_selector_t;
instr_info_in : in instruction_info_t;
instr_info_out : out instruction_info_t;
raise_exc : out std_logic;
exc_data : out exception_data_t
);
end decoder;

View file

@ -0,0 +1,36 @@
entity exception_control is
port (
clk : in std_logic;
fetch_raise_exc : in std_logic;
fetch_exc_data : in exception_data_t;
-- synchronous exceptions
decoder_raise_exc : in std_logic;
decoder_exc_data : in exception_data_t;
csr_raise_exc : in std_logic;
csr_exc_data : in exception_data_t;
alignment_raise_exc : in std_logic;
alignment_exc_data : in exception_data_t;
datamem_raise_exc : in std_logic;
datamem_exc_data : in exception_data_t;
-- interrupts
global_int_enabled : in std_logic;
interrupts_enabled : in yarm_word;
interrupts_pending : in yarm_word;
-- stage inputs for return address + trap value (instruction)
stage_inputs : in pipeline_frames_t;
interrupted_stage : in pipeline_stage_t;
may_interrupt : in std_logic;
do_trap : out std_logic;
trap_cause : out yarm_trap_cause;
trap_address : out yarm_word;
trap_value : out yarm_word
);
end exception_control;

View file

@ -0,0 +1,16 @@
entity memctl is
port (
addr : in yarm_word;
-- data width
data_width : in datum_width_t;
-- perfom sign extension when reading short data
sign_extend : in std_logic;
data_read : out yarm_word;
data_write : in yarm_word;
MEM_addr : out yarm_word;
MEM_byte_enable : out std_logic_vector(3 downto 0);
MEM_data_read : in yarm_word;
MEM_data_write : out yarm_word
);
end memctl;

View file

@ -0,0 +1,31 @@
entity memory_arbiter is
port (
clk : in std_logic;
reset : in std_logic;
fetch_enable : in std_logic;
fetch_ready : out std_logic;
fetch_address : in yarm_word;
fetch_instr_out : out yarm_word;
fetch_raise_exc : out std_logic;
fetch_exc_data : out exception_data_t;
datamem_enable : in std_logic;
datamem_ready : out std_logic;
datamem_instr_info_in : in instruction_info_t;
datamem_read_data : out yarm_word;
datamem_raise_exc : out std_logic;
datamem_exc_data : out exception_data_t;
-- little-endian memory interface, 4 byte address alignment
MEM_addr : out yarm_word;
MEM_read : out std_logic;
MEM_write : out std_logic;
MEM_ready : in std_logic;
MEM_byte_enable : out std_logic_vector(3 downto 0);
MEM_data_read : in yarm_word;
MEM_data_write : out yarm_word
);
end memory_arbiter;

View file

@ -0,0 +1,20 @@
entity multiplier is
generic (
-- A shorter than B: faster, but wider adder required
WIDTH_A : positive;
WIDTH_B : positive
--PARALLELISM : positive
);
port (
clk : in std_logic;
run : in std_logic;
valid : out std_logic;
mul_signed : in std_logic;
a : in std_logic_vector(WIDTH_A-1 downto 0);
b : in std_logic_vector(WIDTH_B-1 downto 0);
result : out std_logic_vector(WIDTH_A+WIDTH_B-1 downto 0)
);
end multiplier;

View file

@ -0,0 +1,9 @@
entity program_counter is
port (
clk : in std_logic;
reset : in std_logic;
operation : in pc_operation_t;
pc_in : in yarm_word;
pc_out : out yarm_word
);
end program_counter;

View file

@ -0,0 +1,16 @@
entity registers is
port (
clk : in std_logic;
read_enable : in std_logic;
write_enable : in std_logic;
addr_a : in register_addr_t;
addr_b : in register_addr_t;
addr_d : in register_addr_t;
data_a : out yarm_word;
data_b : out yarm_word;
data_d : in yarm_word
);
end registers;

View file

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

View file

@ -56,7 +56,7 @@ A somewhat recent development is the creation of Free Software\footnotemark{} FP
\footnotetext{``Free Software'' refers to software that grants its user the freedom to share, study and modify it - see \url{https://www.fsf.org/about/what-is-free-software}.} \footnotetext{``Free Software'' refers to software that grants its user the freedom to share, study and modify it - see \url{https://www.fsf.org/about/what-is-free-software}.}
Since then, both yosys and place-and-route tools like nextpnr\cite{nextpnr} have matured, however Lattice's iCE40 and ECP5 remained the only supported FPGA architectures for place-and-route. Since then, both yosys and place-and-route tools like nextpnr\cite{nextpnr} have matured, however Lattice's iCE40 and ECP5 remained the only supported FPGA architectures for place-and-route.
Thus, two obstacles remained for Free toolchains to be viable for this project: synthesizing \emph{from} VHDL code and synthesizing \emph{to} Artix-7 FPGAs. During the development of the project, both of these were solved: Tristan Gingold released ghdlsynth-beta\cite{ghdlsynth-beta}, a bridge between GHDL\cite{ghdl} and yosys allowing VHDL to be synthesized just the same as Verilog, and Dave Shah added Xilinx support to nextpnr\cite{nextpnr-xilinx}. The latter was preceded by many months of volunteer work reverse-engineering the Xilinx bitstream format as part of \textit{Project X-Ray}\cite{prjxray}. Thus, two obstacles remained for Free toolchains to be viable for this project: synthesizing \emph{from} VHDL code and synthesizing \emph{to} Artix-7 FPGAs. During the development of the project, both of these were solved: Tristan Gingold released ghdlsynth-beta\parencite*{ghdlsynth-beta}, a bridge between GHDL\cite{ghdl} and yosys allowing VHDL to be synthesized just the same as Verilog, and Dave Shah added Xilinx support to nextpnr\cite{nextpnr-xilinx}. The latter was preceded by many months of volunteer work reverse-engineering the Xilinx bitstream format as part of \textit{Project X-Ray}\parencite*{prjxray}.
With these two pieces in place, the project was switched over to a completely Free toolchain, removing any depencies on vendor tools: With these two pieces in place, the project was switched over to a completely Free toolchain, removing any depencies on vendor tools:
@ -64,7 +64,7 @@ With these two pieces in place, the project was switched over to a completely Fr
\item yosys, with ghdl as a frontend for processing VHDL, is used to synthesize the design \item yosys, with ghdl as a frontend for processing VHDL, is used to synthesize the design
\item nextpnr-xilinx, together with the Project X-Ray database, is used for place-and-route \item nextpnr-xilinx, together with the Project X-Ray database, is used for place-and-route
\item tools from Project X-Ray are used to convert the routed design to a bitstream \item tools from Project X-Ray are used to convert the routed design to a bitstream
\item xc3sprog is used to transfer the bitstream to the FPGA via JTAG \item openFPGALoader is used to transfer the bitstream to the FPGA via JTAG
\end{itemize} \end{itemize}
\section{Peripherals} \section{Peripherals}

View file

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View file

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View file

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -11,12 +11,13 @@ Other than a text editor, the following Free Software packages have to be instal
\begin{savenotes} \begin{savenotes}
\begin{description} \begin{description}
\item[\icode{ghdl}\footnote{\url{https://github.com/ghdl/ghdl}}] to analyze, compile, and simulate the design \item[\icode{ghdl}\cite{ghdl}] to analyze, compile, and simulate the design
\item[\icode{gtkwave}\footnote{\url{http://gtkwave.sourceforge.net/}}] to view the simulation waveform files \item[\icode{gtkwave}\cite{gtkwave}] to view the simulation waveform files
\item[\icode{yosys}\footnote{\url{http://www.clifford.at/yosys/}}] to synthesize the design \item[\icode{yosys}\cite{yosys}] to synthesize the design
\item[\icode{nextpnr-xilinx}\footnote{\url{https://github.com/daveshah1/nextpnr-xilinx}}] to place and route the design \item[\icode{ghdlsynth-beta}\cite{yosys}] to synthesize the design
\item[\icode{Project X-Ray}\footnote{\url{https://github.com/SymbiFlow/prjxray}}] for FPGA layout data and bitstream tools \item[\icode{nextpnr-xilinx}\cite{nextpnr-xilinx}] to place and route the design
\item[\icode{xc3sprog}\footnote{\url{https://sourceforge.net/projects/xc3sprog/}}] to load the bitstream onto the FPGA \item[\icode{Project X-Ray}\cite{prjxray}] for FPGA layout data and bitstream tools
\item[\icode{openFPGALoader}\cite{open-fpga-loader}] to load the bitstream onto the FPGA
\end{description} \end{description}
\end{savenotes} \end{savenotes}
@ -24,15 +25,15 @@ Other than a text editor, the following Free Software packages have to be instal
A simple starting design is an up/down counter. The following VHDL code describes the device: A simple starting design is an up/down counter. The following VHDL code describes the device:
\lstinputlisting[title=\texttt{counter.vhd}]{vhdl/counter.vhd} \lstinputlisting[style=vhdlstyle,title=\texttt{counter.vhd}]{vhdl/counter.vhd}
In order to test this design, a test bench has to be created: In order to test this design, a test bench has to be created:
\lstinputlisting[title=\texttt{counter\_tb.vhd}]{vhdl/counter_tb.vhd} \lstinputlisting[style=vhdlstyle,title=\texttt{counter_tb.vhd}]{vhdl/counter_tb.vhd}
\section{Simulating a design} \section{Simulating a design}
\begin{lstlisting}[style=default,language=sh] \begin{lstlisting}[style=terminal]
# analyze the design files # analyze the design files
ghdl -a --std=08 *.vhd ghdl -a --std=08 *.vhd
# elaborate the test bench entity # elaborate the test bench entity
@ -52,9 +53,9 @@ gtkwave counter_tb.ghw counter_tb.gtkw
An additional Xilinx Design Constraints (XDC) file is required to assign the signals to pins on the FPGA: An additional Xilinx Design Constraints (XDC) file is required to assign the signals to pins on the FPGA:
\lstinputlisting[style=default,title=\texttt{counter.xdc}]{vhdl/counter.xdc} \lstinputlisting[title=\texttt{counter.xdc}]{vhdl/counter.xdc}
\begin{lstlisting}[style=default,language=sh] \begin{lstlisting}[style=terminal]
# synthesize with yosys # synthesize with yosys
yosys -m ghdl.so -p ' yosys -m ghdl.so -p '
ghdl --std=08 counter.vhd -e counter; ghdl --std=08 counter.vhd -e counter;
@ -67,7 +68,7 @@ fasm2frames.py --part xc7a35tcsg324-1 counter.fasm counter.frames
# convert the frames to a bitstream # convert the frames to a bitstream
xc7frames2bit --part-name xc7a35tcsg324-1 --frm-file counter.frames --output-file counter.bit xc7frames2bit --part-name xc7a35tcsg324-1 --frm-file counter.frames --output-file counter.bit
# upload the bitstream to the FPGA # upload the bitstream to the FPGA
xc3sprog -c nexys4 counter.bit openFPGALoader -b arty counter.bit
\end{lstlisting} \end{lstlisting}
The current value of the counter is displayed in binary on the eight LEDs on the board. When switch 0 (enable) is in the high position, the counter can be advanced using button 0, with the direction set by switch 1. Button 1 resets the counter to zero. The current value of the counter is displayed in binary on the eight LEDs on the board. When switch 0 (enable) is in the high position, the counter can be advanced using button 0, with the direction set by switch 1. Button 1 resets the counter to zero.