Baglingseller



Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 56

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 198
VHDL - Zuweisungen und Typologie PDF Drucken E-Mail
Geschrieben von: Administrator   

Warning: mktime() [function.mktime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 117

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 245

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 249

Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 250
Freitag, den 23. Juli 2010 um 17:49 Uhr

Zuweisungen in VHDL

Zuweisungen von Signalen und oder eines konstanten Wertes an ein Signal wird in VHDL, wie im Straßenverkehr, von recht nach links erstellt.

Die Zuweisung wird durch die Zeichenkombination von „<=“ erstellt.

Signal <= Wert und oder anderes Signal

X <= Y; -- Y wird nach X kopiert

X <= C or E; -- C und E werden mit “oder” verknüpft und das

-- Ergebnis wird X zugewiesen

F => Y; -- Das Funktioniert NICHT!

Typologie

VHDL verwendet einen strengen Syntax. Zum Beispiel muss jedes Signal bzw. Variable einen speziellen Typen zugewiesen werden.

Für den Entwurf genügen die drei folgenden Typen:

  • Boolean -- logische Abfragen „true“ oder „false“ ( Für logische Abfragen (if))
  • Bit -- 0 und 1 – Für Entwurf
  • Std_Logic -- 0, 1, Z, -, U, L, H, X, W – Für Entwurf und Simulation

Signaldeklaration in VHDL

Um einem Signal in VHDL einen speziellen Typen (Boolean, Bit oder Std-logic) zu zuweisen, muss stets ein gleich bleibender Syntax verwenden werden. Dieser Syntax sieht in VHDL folgendermaßen aus.

signal <signalnamen>: typ;

Beispiele

signal X0, X1, X2, X3: bit; -- Man kann mehre Signale gleichzeitig zuweisen

signal EN: std_logic; -- Signal EN vom Typ std_logic

signal Einaus: boolean; -- Boolesches Signal Ein-Aus

Wenn man Verknüpfungen von Signalen erstellt müssen beide beteiligten Signale von selben Typen sein. Das Resultat ist danach natürlich ebenfalls ein Signal vom selben Typ.

Beispiele

X0 <= ´0´; -- X0 ist konstant also immer ´0´

Eine Besonderheit beim Typen Bit und std_logic ist, das wenn nur ein einzelner Konstanter Wert übergeben werden soll, dann nimmt man Hochkommas ´1´, später wirst du bei Vektoren oder Mehrfachzuweisungen sehen das man „“ verwendet.

EN <= ´Z´; -- EN wird Z zugewiesen

Einaus <= true; -- Einaus ist wahr

X1 <= ´Z´; -- geht nicht, weil der Typ bit den Wert

-- Z nicht kennt

Einaus <= ´1´; -- geht auch nicht, der Typ boolean den

–- Wert 1 nicht kennt (1 ist nicht true)

X0 <= (´1´xor X1) and X2 or not X3; –- geht problemlos

X0 <= X1 or EN; -- geht nicht, da verschiedene Typen

ein_aus <=(X0=X1); -- das geht, weil zuerst X0 mit X1 verglichen

-- wird und das Ergebnis eines Vergleichs wahr

-- oder falsch ist. Dieser boolesche Wert kann

-- dann auch nur einem Signal vom typ boolean

-- zugewiesen werden!

Die neun Werte des Typs std_logic

0 “starke” Null

1 „starke“ Eins

Z hochohmig Synthese, Logikzustand wird durch andere Teilnehmer bestimmt oder ist undefiniert.

- don’t care beliebiger Logikzustand

U unbekannt Simulation, der Wert ist nicht bekannt

X unbekannt stark niederohmig, der Wert ist nicht bekannt

L „schwache“ 0 Synthese

H „schwache“ 1 Synthese

W „schwache“ X Simulation

Für einen Schaltungsentwurf sind primär die Werte 0 und 1 sowie die beiden speziellen Werte Z und „-„ interessant.

Der Wert Z

Z kann einem Signal zugewiesen werden, wenn eine technische Schaltung entsteht wie zum Beispiel ein Tristate-Buffer.

Der Wert ´-´

Das „don´t care“ `-` kann ebenfalls einem Signal zugewiesen werden. Es müssen allerdings einige Kleinigkeiten beachtet werden.

  • Bei einer Zuweisung entscheidet das Synthesewerkzeug selbst, welchen Wert 0 oder 1, es der Schaltung zuweist. Welcher Wert das ist, weißt du leider nicht, aber dir ist es ja auch egal „don´t care“.

  • Leider übernimmt das Synthesewerkzeug keine selbständige Reduzierung vor. Also kann man das Signal „-„ durchaus verwenden, sollte sich aber nicht wundern, dass es bei der Abfrage dieses Wertes zu Komplikationen kommen kann. Das heißt du kann zwar das „-„ kurzfristig als Hilfssignal in kleineren Projekten verwenden, aber ab eines gewissen Umfangs solltest du eine andere Zuweisung verwenden.

 


Warning: mktime() [function.mktime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 117

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 245

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 249

Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/web1232/html/Vhdl-Code/libraries/joomla/utilities/date.php on line 250
Zuletzt aktualisiert am Freitag, den 23. Juli 2010 um 17:51 Uhr