diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cae205..1ab8fb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,27 @@ jobs: mkdir -p build && cd build cmake .. make + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: build-artifact + path: ./build/*.pdf + - name: Comment on PR with artifact link + if: ${{ github.event_name == 'pull_request' }} + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const pr_number = context.payload.pull_request.number + const run_id = process.env.GITHUB_RUN_ID + const run_url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${run_id}` + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pr_number, + body: `:robot: The artifacts from this build are available [here](${run_url}).` + }) - name: Prepare Deployment if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' diff --git a/FSDigitaltechnik.tex b/FSDigitaltechnik.tex index 20912d5..b41b006 100644 --- a/FSDigitaltechnik.tex +++ b/FSDigitaltechnik.tex @@ -89,7 +89,7 @@ \providecommand{\email}[1]{\href{mailto:#1}{\nolinkurl{#1}}} % - \fancyfoot[C]{von Emanuel Regnath (\email{emanuel.regnath@tum.de}), Martin Zellner (\email{martin.zellner@mytum.de}), Hendrik Böttcher (\email{hendrik.boettcher@tum.de}) } + \fancyfoot[C]{von Emanuel Regnath, Martin Zellner, Hendrik Böttcher, Lukas Kompatscher, Paul Thiel, Justus Rossmeier, Darius Peters, Timotheus Lass - Mail: \email{info@latex4ei.de} } \fancyfoot[R]{Stand: \themydate \qquad \thepage/\pageref{LastPage}} \fancyfoot[L]{Homepage: \url{www.latex4ei.de} -- Fehler bitte \emph{sofort} \href{\issueslinkurl}{melden}.} @@ -696,6 +696,26 @@ \subsection{Moore und Mealy FSMs} \end{multicols} Beim Zeichnen jede Eingabemöglichkeit für jeden Zustand berücksichtigen und Startzustand mit leerem Pfeil kennzeichnen. +\section{Block Parity Schaltungen} +\subsection{Paritätsprüfsumme} +Konzept zur Absicherung von digitalen Daten durch Anhängen eines Paritätsbits $p$.\\ +- Gerade Anzahl an Einsen im Datenwort: $p = 0$.\\ +- Ungerade Anzahl an Einsen im Datenwort: $p = 1$.\\ +- Realisierung durch XOR-Gatter +\subsection{Block Parity} +„Zweidimensionale“ Erweiterung der Paritätsprüfsumme\\ +Beispielblock:\\ + \includegraphics[scale=0.5]{./img/ds/Block_Parity.png}\\ +\textbf{Vorteile:}\\ + - Erkennung und Korrektur von einzelnen Bitfehlern.\\ + - Erkennung von zusammenhängenden Mehrfachfehlern (Bursts). +\subsection{Realisierung der Block Parity Schaltung} +\textbf{Datenpfad:}\\ Das n-Bit Datenwort wird durch das Paritybit zu (n+1)-Bit erweitert und übertragen\\ +\textbf{Kontrollpfad:} \\- Die Datenworte (Zeilen im obigen Beispielblock) aus dem Datenpfad werden bitweise verxodert und es entsteht die Pbits-Zeile\\ +- Nach einem Block wird die Pbit-Zeile übertragen + + + % subsection Vorgehensweise (end) % Ende der Spalten diff --git a/img/ds/Block_Parity.png b/img/ds/Block_Parity.png new file mode 100644 index 0000000..c6eb6da Binary files /dev/null and b/img/ds/Block_Parity.png differ diff --git a/img/ds/parity_fsm.png b/img/ds/parity_fsm.png new file mode 100644 index 0000000..89b0778 Binary files /dev/null and b/img/ds/parity_fsm.png differ