Morse De- und Encoder mittels FPGA

VHDL

VHDL ist eine Hardwarebeschreibungssprache und ermöglicht es mithilfe eines Codes ein Hardwaresystem zu beschreiben. Dabei werden die einzelnen Komponenten in sogenannten Entities beschrieben. In der Definition einer Entity muss immer angegeben werden, welche Signale diese Entity benötigt (INPUTS) und welche Signale ausgegeben werden können (OUTPUTS). Dies bestimmt bei der Erzeugung der Netzliste das Aussehen der entsprechenden Komponente.
Anstatt einfache Variablen zu verwenden, müssen im VHDL-Code Signale definiert werden. Auf diesen Signalen können nur binäre Werte übergeben werden, da sie nichts anderes sind als Leitungen, die einen LOW- oder HIGH-Pegel übertragen können. Sollen allerdings andere Werte übergeben werden, wie z.B. ganze Zahlen, so müssen mehrere dieser Leitungen als Integer oder Naturals zusammengefasst werden. Signale sind in einer Entity vergleichbar mit globalen Variablen.
Entities sind in der objektorientierten Programmierung vergleichbar mit Klassen. Innerhalb dieser Entities muss eine Architecture erstellt werden, die wiederum das eigentliche Verhalten der Komponente beschreibt. Innerhalb einer Entity kann es nur eine Architecture geben. Die Architecture selbst kann allerdings in verschiedene Prozesse unterteilt sein, die sich wiederum mit Methoden in der objektorientierten Programmierung vergleichen lassen.
Innerhalb dieser Prozesse steht der Großteil des eigentlichen Codes. Es muss jedoch beachtet werden, dass zwei Prozesse nicht gleichzeitig auf ein Signal zugreifen können um es zu verändern, da bei gleichzeitigem Zugriff von zwei oder mehr Prozessen das Synthesetool nicht weiß, welcher zugewiesene Zustand dem aktuell gewünschten Zustand entspricht.
Alternativ lassen sich innerhalb eines Prozesses Variablen erzeugen, die nur innerhalb dieses Prozesses gültig sind und somit wie lokale Variablen behandelt werden können. Prozesse laufen immer parallel zueinander ab. [Jor18]

Seiten: 1 2 3 4 5