Hardware Reference
In-Depth Information
function
str(x: tString)
return
string
is
begin
return
x.str(
1
to
x.ptr-1);
end function
;
)
WEB-Projekt:Tuc/Ausgabe.vhdl
Die zugewiesenen oder angehängten Zeichenketten können auch Konkatena-
tionen mehrere Einzelzeichenketten sein.
3.2.9 Zusammenfassung und Übungsaufgaben
VHDL unterscheidet zwischen elementaren und zusammengesetzten Datenty-
pen. Elementare Typen sind die Zahlentypen, die Aufzählungstypen und die
physikalischen Typen. Zahlentypen - zu ihnen gehören die vordefinierten Ty-
pen integer und real - beschreiben zusammenhängende Wertebereiche, für
die die arithmetischen Operationen (Addition, Subtraktion etc.) und Größen-
vergleiche definiert sind. Aufzählungstypen wie bit, boolean und charac-
ter beschreiben diskrete Mengen von Werten für symbolische Beschreibun-
gen. Physikalische Typen, zu denen time gehört, sind aus Zahlenwerten und
Maßeinheiten zusammengesetzt und erlauben eine zusätzliche Maßeinheiten-
kontrolle und -konvertierung. Zur gemeinsamen Bearbeitung und Speicherung
können zusammengehörige Teilobjekte vom selben Typ zu Feldern und Teil-
objekte mit beliebigen Typen zu einem Verbund zusammengefasst werden.
Die Definition ist rekursiv. Die Elemente zusammengesetzter Typen können
elementare Typen oder zusammengesetzte Typen sein. Das flexible Typkon-
zept und die strenge Typprüfung dienen dazu, möglichst viele Entwurfsfehler
bei der Simulation zu erkennen. Eigene Typen werden in der Regel in einem
Package definiert, das zusätzlich Operatorfunktionen, Konvertierungsfunktio-
nen und andere Unterprogramme für die Bearbeitung von Objekten des Typs
bereitstellt. Weiterführende und ergänzende Literatur siehe [11, 36, 45].
Aufgabe 3.5
Welche der nachfolgenden Anweisungen sind zulässig?
subtype
tUint8
is
integer
range
0
to
255
;
type
tInt8
is range
-128
to
127
;
subtype
tWahrscheinlichkeit
is
real
range
0.0
to
1.0
;
...
variable
t1, t2:time;
variable
b1, b2: tInt8;
variable
c1: tWahrscheinlichkeit;
variable
w1:boolean;
...
A1: t1 := (
1 ns
*c1)+t2;
A2: b2 := (
5
*b1)+
9.3
;
A3: w1 := (tUint8'high>tInt8'high);