VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand...

23
VHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 VHDL - Objekte und Typen– 1/23– 2007-08-24

Transcript of VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand...

Page 1: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VHDL - Objekte und Typen

Dr.-Ing. Matthias Sand

Lehrstuhl für Informatik 3 (Rechnerarchitektur)Friedrich-Alexander-Universität Erlangen-Nürnberg

WS 2007/2008

VHDL - Objekte und Typen– 1/23– 2007-08-24

Page 2: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Inhalt

TypenAufzähltypenNumerische TypenPhysikalische TypenAbgeleitete TypenFelderIEEE 1164-Logik

ObjekteKonstantenVariablenSignaleBesonderheiten bei Feldern

VHDL - Objekte und Typen– 2/23– 2007-08-24

Page 3: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Typisierung

TypenkonzeptStrenge Typisierung,nur sehr wenige vordefinierte Typen (z.B. real oder integer ),vielfältige Möglichkeiten, neue Datentypen zu definieren.

Beispiel

TYPE augenzah l IS RANGE 1 TO 6 ;VARIABLE wue f e l : augenzah l ;

VHDL - Objekte und Typen– 3/23– 2007-08-24

Page 4: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Aufzähltypen

EigenschaftenEndliche Zahl möglicher Werte,Werte sind Bezeichner oder Einzelzeichen (character),Reihenfolge der Werte bei Deklaration gibt Ordnung vor.

Beispiele

−− Beze i c hne r :TYPE zus tand IS ( i n i t i a l , runn ing , s topped ) ;−− Ze ichen :TYPE l o g i k 3 IS ( ’ 0 ’ , ’ 1 ’ , ’Z ’ ) ;

VHDL - Objekte und Typen– 4/23– 2007-08-24

Page 5: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Aufzähltypen (2)

Vordefinierte Typen

TYPE boo l ean IS ( f a l s e , t r u e ) ;TYPE b i t IS ( ’ 0 ’ , ’ 1 ’ ) ;TYPE c h a r a c t e r IS ( . . . ) ;

−− 256 Ze i chenTYPE s e v e r i t y _ l e v e l IS

( note , warning , e r r o r , f a i l u r e ) ;

VHDL - Objekte und Typen– 5/23– 2007-08-24

Page 6: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Numerische Typen

EigenschaftenJe ein anonymer Basistyp für ganzzahlige undFließkommatypen,Deklaration durch Angabe der Unter- und Obergrenze,Übernahme des Wertebereichs von anderem Typ möglich.

Beispiele

TYPE my_int IS RANGE 0 TO 11 ;TYPE my_real IS RANGE 42 .0 DOWNTO −42.0;TYPE de r_ i n t IS RANGE my_int ’RANGE;

VHDL - Objekte und Typen– 6/23– 2007-08-24

Page 7: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Numerische Typen (2)

Vordefinierte Typen

TYPE i n t e g e r IS RANGE . . TO . . ;TYPE r e a l IS RANGE . . TO . . ;

BesonderheitenWertebereiche sind Systemabhängig,Mindestbereiche gemäß Standard:

integer : von −2147483647 bis +2147483647,real : von −1.0E38 bis +1.0E38.

VHDL - Objekte und Typen– 7/23– 2007-08-24

Page 8: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Physikalische Typen

Eigenschaftenganzzahliger oder reeller Wertebereich,Basis-Einheit und abgeleitete Einheiten.

Beispiel

TYPE l e n g t h IS RANGE −1E9 TO 1E9UNITS mm;

cm = 10 mm;dm = 10 cm ;m = 10 dm;km = 1E3 m;

END UNITS ;

VHDL - Objekte und Typen– 8/23– 2007-08-24

Page 9: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Physikalische Typen (2)

Vordefinierter Typ

TYPE t ime IS RANGE . . . −− sy s temabhaeng igUNITS f s ;

ps = 1000 f s ;ns = 1000 ps ;us = 1000 ns ;ms = 1000 us ;s e c = 1000 ms ;min = 60 sec ;hr = 60 min ;

END UNITS ;

VHDL - Objekte und Typen– 9/23– 2007-08-24

Page 10: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Abgeleitete Typen

EigenschaftenVon bereits deklarierten Typen abgeleitet,im Wertebereich weiter eingeschränkt,nur eine Ableitungsebene möglich,Verknüpfungen mit Basistyp oder anderem abgeleiteten Typvom selben Basistyp möglich.

VHDL - Objekte und Typen– 10/23– 2007-08-24

Page 11: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Abgeleitete Typen (2)

Beispiele

TYPE add r e s s 1 IS RANGE 0 TO 63 ;TYPE add r e s s 2 IS RANGE 0 TO 127 ;SUBTYPE add1 IS i n t e g e r RANGE 0 TO 63 ;SUBTYPE add2 IS i n t e g e r RANGE 0 TO 127 ;

VARIABLE ta : add r e s s 1 ;VARIABLE tb , t c : add r e s s 2 ;VARIABLE sa : add1 ;VARIABLE sb , s c : add2 ;. . .s c := sa + sb ; −− l e g a lt c := ta + tb ; −− i l l e g a l ! ! !

VHDL - Objekte und Typen– 11/23– 2007-08-24

Page 12: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Abgeleitete Typen (3)

Vordefinierte Typen

SUBTYPE n a t u r a l ISi n t e g e r RANGE 0 TO i n t e g e r ’ HIGH ;

SUBTYPE p o s i t i v e ISi n t e g e r RANGE 1 TO i n t e g e r ’ HIGH ;

SUBTYPE de l a y_ l eng th ISt ime RANGE 0 f s TO t ime ’ HIGH ;

Das Typenattribut HIGH liefert die obere Grenze desWertebereichs, LOW analog dazu die untere Grenze.

VHDL - Objekte und Typen– 12/23– 2007-08-24

Page 13: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

FeldtypenEigenschaften

beliebige (?) Dimensionen möglich,aus skalaren Basistypen oder Feldern,mit beschränkter oder unbeschränkter Größe.

Beispiele

TYPE c o l o r IS ( ye l l ow , red , green , b l u e ) ;TYPE i v e c 1 IS ARRAY ( c o l o r RANGE <>)

OF i n t e g e r ;TYPE i v e c 2 IS ARRAY ( r ed TO b l u e )

OF i n t e g e r ;TYPE i v e c 3 IS ARRAY (255 DOWNTO 0)

OF i n t e g e r ;

VHDL - Objekte und Typen– 13/23– 2007-08-24

Page 14: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Feldtypen (2)

Vordefinierte Typen

TYPE s t r i n g IS ARRAY ( p o s i t i v e RANGE <>)OF c h a r a c t e r ;

TYPE b i t _ v e c t o r IS ARRAY ( n a t u r a l RANGE <>)OF b i t ;

VHDL - Objekte und Typen– 14/23– 2007-08-24

Page 15: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Feldtypen (3)

Mehrdimensionale Felder

TYPE i n t_ma t r i x IS ARRAY( i n t e g e r RANGE 1 TO 3 ,

i n t e g e r RANGE 1 TO 5) OF i n t e g e r ;

Abgeleitete Felder

SUBTYPE name IS s t r i n g (1 TO 2 0 ) ;SUBTYPE byte IS b i t _ v e c t o r (1 TO 8 ) ;

VHDL - Objekte und Typen– 15/23– 2007-08-24

Page 16: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

IEEE 1164-Logik

Im Package ieee.std_logic_1164 ist der Typ std_logic definiert,der den Erfordernissen der Entwicklung elektronischer Systemeentgegenkommt. Folgende Signalwerte sind deklariert:

’U’ uninitialisiert,’X’ treibend unbekannt,’0’ treibend 0,’1’ treibend 1,’Z’ hochohmig,

’W’ schwach unbekannt,’L’ schwach 0’H’ schwach 1’-’ „Don’t care“

VHDL - Objekte und Typen– 16/23– 2007-08-24

Page 17: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Objektklassen

KonstantenVariablenSignale

VHDL - Objekte und Typen– 17/23– 2007-08-24

Page 18: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Konstanten

EigenschaftenWert ändert sich nie,muss initialisiert werden.

Beispiele

CONSTANT d e l a y : t ime := 12 .5 ps ;CONSTANT x0 , y0 : i n t e g e r := 4 ;CONSTANT a d d r e s s : b i t _ v e c t o r := b" 1001_1110" ;CONSTANT o f f s e t : b i t _ v e c t o r (3 DOWNTO 1)

:= " 001 " ;

VHDL - Objekte und Typen– 18/23– 2007-08-24

Page 19: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VariablenEigenschaften

Zeitlich veränderliche Werte,Wert ändert sich sofort bei Zuweisung,nur in Funktionen und Prozeduren empfohlen,fehlt die Initialisierung, wird der LEFT-Wert des Typsverwendet.

Beispiele

VARIABLE n1 , n2 : n a t u r a l ;−− d e f a u l t : 0

VARIABLE v : i n t e g e r RANGE −10 TO 10 ;−− d e f a u l t : −10

VARIABLE t h r e s h : r e a l := 1 . 4 ;

VHDL - Objekte und Typen– 19/23– 2007-08-24

Page 20: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Signale

EigenschaftenZeitlich veränderliche Werte,zeitverzögerte Zuweisungen möglich,sonst wie Variablen.

Beispiele

SIGNAL f l a g : boo l ean := t r u e ;SIGNAL s1 , s2 : b i t ;

−− d e f a u l t : ’ 0 ’. . .s1 <= ’1 ’ AFTER 5 ns ;

VHDL - Objekte und Typen– 20/23– 2007-08-24

Page 21: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Besonderheiten bei Feldern

Zugriff

CONSTANT c1 : b i t _ v e c t o r (7 DOWNTO 0):= " 10010011 " ;

VARIABLE v1 : b i t _ v e c t o r (7 DOWNTO 0 ) ;. . .v1 (0 ) := c1 ( 1 ) ; −− v1 = "00000001"

VHDL - Objekte und Typen– 21/23– 2007-08-24

Page 22: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Besonderheiten bei Feldern (2)

Slices

VARIABLE v1 , v2 : b i t _ v e c t o r (0 TO 3):= " 1111 " ;

CONSTANT c1 : b i t _ v e c t o r := b" 1001_0111" ;. . .v1 := c1 (2 TO 5 ) ; −− v1 = "0101"v2 := c1 (5 TO 8 ) ; −− geht n i c h t ! ! !

VHDL - Objekte und Typen– 22/23– 2007-08-24

Page 23: VHDL - Objekte und Typen - · PDF fileVHDL - Objekte und Typen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Besonderheiten bei Feldern (3)

Aggregate

TYPE i n t _ v e c t o r IS ARRAY (1 TO 8) OF i n t e g e r ;VARIABLE v0 , v1 , v2 , v3 , v4 : i n t _ v e c t o r ;. . .v0 := (5 , 2 , 3 , 1 , 4 , 4 , 2 , 1 ) ;v1 := (1 => 2 , 5 => 3 , OTHERS => 0 ) ;v2 := (2 TO 4 => 1 , 1 | 5 TO 8 => 8 ) ;v3 := (1 | 8 => 2∗8 , OTHERS => 0 ) ;v4 (1 TO 3) := (1 , 1 , 1 ) ;

VHDL - Objekte und Typen– 23/23– 2007-08-24