VHDL - Objekte und Typen

Ähnliche Dokumente
VHDL Objekte und Typen

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Wertebereich und Genauigkeit der Zahlendarstellung

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Unterprogramme. Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen:

N. Schmiedel, J. Brass, M. Schubert VHDL Formelsammlung FH Regensburg, VHDL Formelsammlung

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

Felder (Arrays) und Zeiger (Pointers) - Teil I

Variablen, Konstanten und Datentypen

Crashkurs C++ - Teil 1

F Zeiger, Felder und Strukturen in C

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Tag 4 Repetitorium Informatik (Java)

Teil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Arrays. Einleitung. Deklarieren einer Array Variablen

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Einstieg in die Informatik mit Java

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

5. Abgeleitete Datentypen

12 VHDL Einführung (III)

Tag 4 Repetitorium Informatik (Java)

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Felder (Arrays) und Zeiger (Pointers) - Teil I

3. Datentypen, Ausdrücke und Operatoren

Modul 122 VBA Scribt.docx

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach

Informationsverarbeitung im Bauwesen

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

PostScript -Sprache. Frank Richter

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Kapitel 3: Variablen

Einstieg in die Informatik mit Java

Tag 8 Repetitorium Informatik (Java)

Physische Datenstrukturen

Einstieg in die Informatik mit Java

1 Klassen und Objekte

2. Programmierung in C

Informatik I (D-ITET)

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Aufgabe 1: Kombinatorische Schaltungen

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg

Eigenschaften strukturierter Datentypen

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Java Einführung Klassendefinitionen

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Programmierkurs C++ Variablen und Datentypen

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Tag 7 Repetitorium Informatik (Java)

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

8. Referenzen und Zeiger

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Repetitorium Informatik (Java)

Grundlagen und Konzepte von C Datenstrukturen

Einstieg in die Informatik mit Java

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

Primitive Datentypen und Felder (Arrays)

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

9. Vektoren. (auch Felder/array)

Dynamischer Speicher

Datentypen: integer, char, string, boolean

1.1 VHDL-Beschreibung

Informatik I - Übung 2 Programmieren in Eclipse

Parametrisierung vordefinierter Datentypen

3.2 Datentypen und Methoden

Hardware Programmierbare Logik

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Paritäts-Bit- Generator

Tag 3 Repetitorium Informatik (Java)

Hydroinformatik I: Referenzen und Zeiger

Transkript:

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

Inhalt Typen Aufzähltypen Numerische Typen Physikalische Typen Abgeleitete Typen Felder IEEE 1164-Logik Objekte Konstanten Variablen Signale Besonderheiten bei Feldern VHDL - Objekte und Typen 2/23 2007-08-24

Typisierung Typenkonzept Beispiel Strenge Typisierung, nur sehr wenige vordefinierte Typen (z.b. real oder integer ), vielfältige Möglichkeiten, neue Datentypen zu definieren. TYPE a u g e n z a h l IS RANGE 1 TO 6 ; VARIABLE w u e f e l : a u g e n z a h l ; VHDL - Objekte und Typen 3/23 2007-08-24

Aufzähltypen Eigenschaften Beispiele Endliche Zahl möglicher Werte, Werte sind Bezeichner oder Einzelzeichen ( character), Reihenfolge der Werte bei Deklaration gibt Ordnung vor. B e z e i c h n e r : TYPE zustand IS ( i n i t i a l, running, stopped ) ; Zeichen : TYPE l o g i k 3 IS ( 0, 1, Z ) ; VHDL - Objekte und Typen 4/23 2007-08-24

Aufzähltypen (2) Vordefinierte Typen TYPE boolean 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 Zeichen TYPE 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

Numerische Typen Eigenschaften Beispiele Je ein anonymer Basistyp für ganzzahlige und Fließkommatypen, Deklaration durch Angabe der Unter- und Obergrenze, Übernahme des Wertebereichs von anderem Typ möglich. TYPE my_int IS RANGE 0 TO 1 1 ; TYPE my_real IS RANGE 4 2. 0 DOWNTO 42.0; TYPE d e r _ i n t IS RANGE my_int RANGE; VHDL - Objekte und Typen 6/23 2007-08-24

Numerische Typen (2) Vordefinierte Typen TYPE i n t e g e r IS RANGE.. TO.. ; TYPE r e a l IS RANGE.. TO.. ; Besonderheiten Wertebereiche 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

Physikalische Typen Eigenschaften Beispiel ganzzahliger oder reeller Wertebereich, Basis-Einheit und abgeleitete Einheiten. TYPE l e n g t h IS RANGE 1E9 TO 1E9 UNITS mm; cm = 10 mm; dm = 10 cm ; m = 10 dm; km = 1E3 m; END UNITS; VHDL - Objekte und Typen 8/23 2007-08-24

Physikalische Typen (2) Vordefinierter Typ TYPE time IS RANGE... systemabhaengig UNITS f s ; ps = 1000 f s ; ns = 1000 ps ; us = 1000 ns ; ms = 1000 us ; s e c = 1000 ms ; min = 60 s e c ; hr = 60 min ; END UNITS; VHDL - Objekte und Typen 9/23 2007-08-24

Abgeleitete Typen Eigenschaften Von bereits deklarierten Typen abgeleitet, im Wertebereich weiter eingeschränkt, nur eine Ableitungsebene möglich, Verknüpfungen mit Basistyp oder anderem abgeleiteten Typ vom selben Basistyp möglich. VHDL - Objekte und Typen 10/23 2007-08-24

Abgeleitete Typen (2) Beispiele TYPE a d d r e s s 1 IS RANGE 0 TO 6 3 ; TYPE a d d r e s s 2 IS RANGE 0 TO 127; SUBTYPE add1 IS i n t e g e r RANGE 0 TO 6 3 ; SUBTYPE add2 IS i n t e g e r RANGE 0 TO 127; VARIABLE ta : a d d r e s s 1 ; VARIABLE tb, t c : a d d r e s s 2 ; VARIABLE sa : add1 ; VARIABLE sb, s c : add2 ;... sc := sa + sb ; l e g a l t c := ta + tb ; i l l e g a l!!! VHDL - Objekte und Typen 11/23 2007-08-24

Abgeleitete Typen (3) Vordefinierte Typen SUBTYPE n a t u r a l IS i 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 IS i n t e g e r RANGE 1 TO i n t e g e r HIGH ; SUBTYPE d e l a y _ l e n g t h IS time RANGE 0 f s TO time HIGH ; Das Typenattribut HIGH liefert die obere Grenze des Wertebereichs, LOW analog dazu die untere Grenze. VHDL - Objekte und Typen 12/23 2007-08-24

Feldtypen Eigenschaften Beispiele beliebige (?) Dimensionen möglich, aus skalaren Basistypen oder Feldern, mit beschränkter oder unbeschränkter Größe. TYPE c o l o r IS ( y e l l o w, 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 ( red 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

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

Feldtypen (3) Mehrdimensionale Felder TYPE i n t _ m a 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

IEEE 1164-Logik Im Package ieee.std_logic_1164 ist der Typ std_logic definiert, der den Erfordernissen der Entwicklung elektronischer Systeme entgegenkommt. 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

Objektklassen Konstanten Variablen Signale VHDL - Objekte und Typen 17/23 2007-08-24

Konstanten Eigenschaften Beispiele Wert ändert sich nie, muss initialisiert werden. CONSTANT d e l a y : time := 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

Variablen Eigenschaften Beispiele Zeitlich veränderliche Werte, Wert ändert sich sofort bei Zuweisung, nur in Funktionen und Prozeduren empfohlen, fehlt die Initialisierung, wird der LEFT-Wert des Typs verwendet. 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 1 0 ; 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

Signale Eigenschaften Beispiele Zeitlich veränderliche Werte, zeitverzögerte Zuweisungen möglich, sonst wie Variablen. SIGNAL f l a g : b o o l e a n := 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

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

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

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