Hardware Reference
In-Depth Information
elsif rising_edge(T) then
y <= x+y;
end if ;
end procedure ;
)
WEB-Projekt:P3.1/Lsg_pack.vhdl
6.3.2 Anwendungsspezifische Datentypen
Lösung zu Aufgabe 3.5
A1: Der Term in der Klammer hat wieder den Typ time. Dazu wird ein Wert
vom Typ time addiert. Das Ergebnis ist auch vom Typ time. Die Anweisung
ist zulässig.
A2: Die Konstante »5« darf mit jedem ganzzahligen Typ, d.h. auch mit »int8«,
multipliziert werden. Das Produkt hat den Typ »int8« und darf nicht mit einer
Gleitkommakonstanten addiert werden. Die Anweisung ist unzulässig.
A3: Die Maximalwerte der beiden Datentypen sind beides Zahlen, aber von
unterschiedlichem Typ. Sie dürfen nicht miteinander verglichen werden. Die
Anweisung ist unzulässig.
Lösung zu Aufgabe 3.6
Typvereinbarungen:
type tZeichenwert is range 1 to 9 ;
type tZeichen is ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' );
Konvertierungsfunktionen:
function to_Zeichenwert(x: tZeichen) return tZeichenwert is
begin
return tZeichen'pos(x)+ 1 ;
end function ;
function to_Zeichen(x: tZeichenwert) return tZeichen is
begin
return tZeichen'val(x- 1 );
end function ;
) WEB-Projekt:P3.2/Afg_ZB_Enum.vhdl
Lösung zu Aufgabe 3.7
Die Wertebereichsgrenzen sind ganzzahlige Vielfache der kleinsten Maßeinheit
»mV«. Ein Volt ist gleich 1000 mV:
type tSpannung is range -10000 to 10000
units
mV ; V = 1000 mV ;
end units;
 
Search WWH ::




Custom Search