Kapitel Anhang

This commit is contained in:
Matthias Biermann
2025-02-18 13:48:28 +01:00
parent f1daff77b2
commit 3fa4317f7f
2 changed files with 37 additions and 8 deletions
Binary file not shown.
+37 -8
View File
@@ -164,7 +164,7 @@ Es ist als Block-Design in Vivado unter der Bezeichnung \emph{axi\_crc\_dma\_ip}
Das IP besteht aus insgesamt vier Komponenten, die untereinander über AXI-Stream Schnittstellen kommunizieren und Daten weitergeben.
In den folgenden Abschnitten werden die einzelnen Komponenten genauer beschrieben.
\subsubsection{DMA Komponente - axis\_dma}
\subsubsection{DMA Komponente - axis\_dma} \label{sec:DMAKomponente}
\begin{figure}[H]
\centering
@@ -196,7 +196,7 @@ Daher kann die Komponente parallel Daten lesen und schreiben.
Des Weiteren hält diese Komponente alle AXIL-Register des IPs, wofür sie eine \emph{S\_AXIL} Schnittstelle besitzt.
Die Register, die zur Konfiguration der CRC-Berechnung dienen, sind als Ausgänge nach Außen geführt.
\subsubsection{CRC-Berechnungskomponente - axis\_crc}
\subsubsection{CRC-Berechnungskomponente - axis\_crc} \label{sec:CRCBerechnungskomponente}
\begin{figure}[H]
\centering
@@ -223,7 +223,7 @@ Die Komponente ist dann wieder bereit, eine neue CRC-Prüfsumme zu berechnen.
Intern erfolgt die Berechnung der CRC-Prüfsumme mithilfe eines endlichen Automaten.
Um keine Timingprobleme zu verursachen, wurde so die Berechnung der CRC-Prüfsumme auf drei Takte aufgeteilt.
\subsection{AXI-CRC-DMA-IP}
\subsection{AXI-CRC-DMA-IP} \label{sec:AXI_CRC_DMA_IP}
\begin{figure}[H]
\centering
@@ -270,7 +270,7 @@ Dieses Gesamtsystem kann nun synthetisiert und implementiert werden.
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Software - Treiberfunktion}
\section{Software - Treiberfunktion} \label{sec:Software_Treiberfunktion}
\begin{lstlisting}[caption={Struct für CRC-DMA-IP}, label={code:StructCRC}]
@@ -327,7 +327,7 @@ Beide gezeigten Codeausschnitte sind in der Headerdatei \texttt{axi\_crc\_dma.h}
Die Korrektheit der von der CRC-Berechnungskomponente berechneten CRC-Prüfsumme ist für das Gesamtsystem von essentieller Bedeutung.
Daher liegt ein besonderes Augenmerk auf der Verifikation dieser Komponente.
\subsubsection{Referenzprogramm}
\subsubsection{Referenzprogramm} \label{sec:Referenzprogramm}
Zunächst wurde das C-Programm \emph{crc.c} geschrieben, das CRC-Prüfsummen in Software berechnet.
Dieses Programm dient bei der Entwicklung der Hardware als Referenz für die berechneten CRC-Prüfsummen.
@@ -393,7 +393,7 @@ Dies geschieht in der Funktion \texttt{void calc\_axis\_crc\_tb()}.
% }
% \end{lstlisting}
\subsubsection{Simulation / Testbench}
\subsubsection{Simulation / Testbench} \label{sec:Simulation_CRC_Berechnungskomponente}
Um die Korrektheit der CRC-Berechnungskomponente \emph{axis\_crc} zu gewährleisten, wurde eine Testbench erstellt.
In dieser Testbench werden von der CRC-Berechnungskomponente insgesamt 24 Prüfsummen über dasselbe Datenpaket von drei 32-Bit-Worten mit verschiedenen Parametern berechnet.
@@ -414,7 +414,7 @@ Somit kann die korrekte Funktionalität der CRC-Berechnungskomponente gewährlei
Die in dieser Arbeit erstellte CRC-Berechnungskomponente wurde mithilfe dieser Testbench erfolgriech verfiziert.
\subsection{Simulation des CRC-DMA-IPs}
\subsection{Simulation des CRC-DMA-IPs} \label{sec:Simulation_CRC_DMA_IP}
\begin{figure}[H]
\centering
@@ -461,7 +461,7 @@ Zusätzlich wurden dabei verschiedene Konfigurationen des IPs getetest, um auch
\subsection{Verifikation des Gesamtsystems} \label{sec:VerifikationGesamtsystem}
\subsubsection{Testprogramm}
\subsubsection{Testprogramm} \label{sec:Testprogramm}
Die Verifikation des Gesamtsystems erfolgt auf der Hardware.
@@ -532,6 +532,35 @@ Dies führt unter Umständen zu unnötigen Wartezeiten.
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Anahng}
\subsection{Hardware}
Jegliche Hardwarequelldateien sind im Vivadoprojekt \texttt{axi\_crc\_dma} zu finden.
Dieses beinhaltet folgende VHDL-Quelldateien:
\begin{itemize}
\item \textbf{axis\_crc.vhd}: CRC-Berechnungskomponente siehe Abschnitt~\ref{sec:CRCBerechnungskomponente}
\item \textbf{axis\_crc\_tb.vhd}: Testbench für die CRC-Berechnungskomponente siehe Abschnitt~\ref{sec:Simulation_CRC_Berechnungskomponente}
\item \textbf{axis\_dma.vhd}: DMA-Komponente siehe Abschnitt~\ref{sec:DMAKomponente}
\item \textbf{axi3\_slave\_verif.vhd}: Full-AXI-Slave zur Verifikation des Gesamtsystems siehe Abschnitt~\ref{sec:Simulation_CRC_DMA_IP}
\end{itemize}
Dazu beinhaltet das Vivadoprojekt folgende Block-Designs:
\begin{itemize}
\item \textbf{axi\_crc\_dma\_ip}: Block-Design des CRC-DMA-IPs siehe Abschnitt~\ref{sec:AXI_CRC_DMA_IP}
\item \textbf{axi\_crc\_dma\_sim\_01}: Block-Design zur Simulation des CRC-DMA-IPs siehe Abschnitt~\ref{sec:Simulation_CRC_DMA_IP}
\item \textbf{axi\_crc\_dma\_syn\_01}: Block-Design zur Synthese des Gesamtsystems mit CRC-DMA-IP siehe Abschnitt~\ref{sec:Einbindung}
\end{itemize}
\subsection{Software}
Folgende Programme bzw. Software-Quelldateien wurden erstellt:
\begin{itemize}
\item \textbf{crc.c}: Referenzprogramm zur Berechnung von CRC-Prüfsummen in Software siehe Abschnitt~\ref{sec:Referenzprogramm}
\item \textbf{axi\_crc\_dma.h}: Headerdatei für das CRC-DMA-IP siehe Abschnitt~\ref{sec:Software_Treiberfunktion}
\item \textbf{axi\_crc\_dma.cpp}: Treiberfunktion für das CRC-DMA-IP siehe Abschnitt~\ref{sec:Software_Treiberfunktion}
\item \textbf{CRC\_DMA.cpp}: Testprogramm zur Verifikation des Gesamtsystems siehe Abschnitt~\ref{sec:Testprogramm}
\end{itemize}
%Anhang im ZIP-Ornder außer Litaratur