Einführung in den HDL- gestützten Schaltungsentwurf Einführung in VHDL

Größe: px
Ab Seite anzeigen:

Download "Einführung in den HDL- gestützten Schaltungsentwurf Einführung in VHDL"

Transkript

1 Einführung in den HDLgestützten Schaltungsentwurf Einführung in VHDL

2 Ablauf des Entwurfs Spezifikation golden specification Funktionale Simulation Testbench Logiksynthese Gate-Level Simulation Formale Verifikation Scanpath Placeand and Route

3 Schrittweise Verfeinerung Top-down-Entwurfsprozess Kreations-Phase Komplexität (log) Erstellen der Modelle Verifikations-Phase Überprüfen der Korrektheit Simulation formale Methoden Modelle und Abstraktion Hierarchische Darstellung Unterscheide: Verifikation und Test Integrationsdichte design gap Synthesewerkzeu Zeit

4 Beschreibungssprachen für Software und Hardware main () { a=func1(b) func1 (a) {... func2 (a) {... Funktionseinheit A Funktionseinheit B... Funktionseinheit C...

5 Gegenüberstellung Prozedurale Programmiersprache Sequentielle Abarbeitung aller Befehlszeilen Aktivierung durch Prozeduraufruf Parameterübergabe Variablen verschiedenen Typs Hardware-Schaltung bzw. -beschreibungsprache Sequentiell innerhalb der FE, sonst parallel möglich Neuberechung der Ausgänge falls Änderung an Eingängen Informationsaustausch durch Signale und Zustände Verschiedene Typen in Beschreibung, aber nicht in Realisierung

6 Schaltungsbeschreibung durch VHDL Steht für VHSIC Hardware Description Language Entwicklung VHSIC (Very High Speed Integrated Circuit) Projekt Projektträger US Regierung (1980) IEEE Standard für VHDL (1987) IEEE Standard updated (1993)

7 Gründe Standard/Portabilität einheitliche Schnittstelle zwischen Werkzeugen und Firmen Entwürfe können durch verschiedene Synthesewerkzeuge optimiert und durch verschiedene Analysewerkzeuge simuliert werden Technologie- und Firmenunabhängigkeit Wechsel des Technologiepartners möglich

8 Eigenschaften von VHDL Unterstützung durch DOD (US Department of Defense) Starke Modellierungsmöglichkeiten Entwurf parametrisierter Schaltungen möglich z.b. Prozessor mit Bitbreite n Wiederverwendbarkeit!

9 Struktur Aufbau einer Beschreibung Baustein bzw. Schaltung besteht aus Entity Spezifikation des Interface mehreren Architekturen alternative Realisierungen auf 2 verschiedenen Abstraktionsebenen strukturelle verhaltensorientierte

10 Struktur use Bereitstellung von Bibliotheken entity Schnittstellenbeschreibung architecture Implementierung der Entity configuration entity architecture

11 Anwendung von VHDL Anwendung Verwendung Adressat Dokumentation Spezifikation Leser Simulation Synthese Funktionale Beschreibung Funktionale Beschreibung, die in Hardware übersetzt werden kann Simulator Synthesewerkzeug

12 Entity PORT-Anweisung spezifiziert die Ein- und Ausgänge, also die Ports, der Entity Entity kann man sich vorstellen als Symbol einer Komponente ENTITY half_adder IS PORT (x, y, enable: IN bit; carry, result: OUT bit); END half_adder;

13 Port Es gibt 5 Port Modes IN: der Port ist ein Eingangsport OUT: der Port ist ein Ausgangsport INOUT: bidirektionaler Port BUFFER: bidirektionaler Port; zu jedem Zeitpunkt von höchstens einer Quelle getrieben LINKAGE: unbekannt, ob Eingang oder Ausgang

14 Architektur Architekturen geben das Verhalten einer Komponente an Beispiel: ARCHITECTURE behavior1 OF half_adder IS BEGIN PROCESS (enable, x, y) BEGIN IF (enable = 1 ) THEN result <= x XOR y; carry <= x AND y; ELSE carry <= 0 ; result <= 0 ; END IF END PROCESS END behavior1; IF enable= 1 THEN result=x XOR y carry=x AND y else result=0 carry=0

15 Zusammenhang von Architektur und Entity Architekturen Beschreibungen der Entity strukturell verhaltensorientiert Schaltung wird spezifiziert Subkomponenten (Gatter, etc.) Verdrahtung Mehrere Architekturen für eine Entity verschiedene Realisierungen Optimieren nach verschiedenen Kriterien Fläche, Leistung, Verzögerungszeit,...

16 Architektur - strukturelle Beschreibung Netzlistenbeschreibung Hardware-Komponenten Instanziierung der Komponenten entity NANDXOR is PORT ( A,B, C : IN bit; D : OUT bit ); end NANDXOR; architecture NETLIST of NANDXOR is component NAND PORT ( X,Y : IN bit ; Z : OUT bit); end component ; component XOR PORT ( X,Y : IN bit ; Z : OUT bit); signal T : std_logic; begin U1 : NAND PORT MAP (A,B,T); U2 : XOR PORT MAP (T,C,D); end NETLIST;

17 Architektur - verhaltensorientierte Beschreibung Konkurrierende Anweisungen Signalzuweisungen werden parallel ausgewertet Neuberechnung der Zuweisungen bei Signaländerung Implizierte Sensitivitätsliste Symbol für Signalzuweisung <= z.b.: a <= b Sequentielle Verhaltensbeschreibung Beschreibung analog zu typischen Programmiersprachen Abarbeitung der Anweisungen sequentiell (Zeile für Zeile) Prozesse und Variablen Sensitivitätsliste

18 Beispiel verhaltensorientierte Beschreibung Konkurrierende Anweisungen entity NANDXOR is PORT ( A,B, C : IN bit; D : OUT bit ); end NANDXOR; architecture BEHAVE of NANDXOR is signal T : std_logic ; begin T <= A nand B after 5 ns; D <= T xor C after 5 ns; end BEHAVE;

19 Architektur - sequentielle Beschreibung Konkurrierende Anweisungen Signalzuweisungen werden parallel ausgewertet Neuberechnung der Zuweisungen bei Signaländerung Implizierte Sensitivitätsliste Symbol für Signalzuweisung <= z.b. a <= b

20 Architektur - sequentielle Beschreibung Sequentielle Verhaltensbeschreibung Beschreibung analog zu typischen Programmiersprachen Abarbeitung der Anweisungen sequentiell (Zeile für Zeile) Prozesse und Variablen Sensitivitätsliste Kontrollstrukturen

21 Beispiel - sequentielle Beschreibung entity NANDXOR is PORT ( A,B, C : IN bit; D : OUT bit ); end NANDXOR; architecture SEQ1 of NANDXOR is begin process (A, B, C) begin if (C='0') then D <= A nand B after 5 ns; else D <= A and B after 10 ns; end if; end process; end SEQ1; architecture SEQ2 of NANDXOR is signal T : std_logic; begin p0 : T <= A nand B after 5 ns; p1 : process (T,C); begin D <= T xor C after 10 ns; end process p1; end SEQ2;

22 Instanziierung der Entity - Konfiguration 4 verschiedene Architekturen für die gleiche Entity Welche benutzt wird, muss bei der Instanziierung von NANDXOR festgelegt werden Auswahl einer Architektur nach bestimmten Kriterien Konfiguration weist der Entity eine Architektur zu Benutzte Komponenten werden angegeben

23 Instanziierung der Entity - Konfiguration Beispiel: configuration NANDXORCON of NANDXOR is for netlist for U1 : NAND use entity WORK.mynand(version1) ; for U2 : XOR use entity WORK.mynand(version1) ; end for ; end NANDXORCON ;

24 Konstanten Konstanten Wert einer Konstante kann nicht verändert werden Beispiele constant PERIOD : time := 100 ns; constant PI : real := constant DEFAULT :bit_vector(0 to 3) :="1001

25 Variablen Variablen unterscheiden sich nicht von Variablen anderer höherer Programmiersprachen kein Gegenstück in der Hardware werden für Zwischenrechnungen verwendet Beispiele variable ROW, COLUMN : integer range 0 to 31; variable SUM : natural := 0; variable FELD : TWO_DIM (0 to 15, 0 to 31); Prozesse

26 Signale Sind in anderen Programmiersprachen nicht zu finden Kann man als verbindende physikalische Leitung ansehen Beispiele signal CLK, RESETn : bit; signal COUNTER : integer range 0 to 31; signal RAM : TWO_DIM (0 to 15, 0 to 31);

27 Variablen contra Signale Verschiedene Syntax für Zuweisungen variable_assignment ::= target := expression signal_assignment ::= target <= [ transport ] waveform_element {, waveform_element } waveform_element ::= value_expression [ after time_expression ] null [ after time_expression ]

28 Verzögerungsarten Bei Signalen VHDL unterscheidet zwischen 2 Arten der Verzögerung Träge Verzögerung (inertial delay) default Benutzer spezifiziert Verzögerungszeit eines Gatters oder einer Operation absorbiert Eingangspulse, die kürzer als spezifizierte Verzögerungszeit sind Nichtträge Verzögerung (transport delay) gibt alle Eingangspulse weiter

29 Beispiele Verzögerungsarten A BUF DELAY = 20 B A B 10 Träge Verzögerung A BUF DELAY = 20 A B 10 Nichtträge Verzögerung

30 Anwendung Deklaration Variablen werden in Prozessen bzw. Unterprogrammen deklariert und sind auch nur da sichtbar Signale können nicht in Prozessen bzw. Unterprogrammen deklariert werden Verwendung Variablen werden zum Abspeichern temporärer Werte benutzt Signale stehen üblicherweise für Verbindungen in

31 Wertzuweisung Erfolgt sofort bei Variablen, wenn Variablenzuweisung ausgeführt wird z.b. x := x+1; Erfolgt nicht sofort bei Signalen, wenn Signalzuweisung ausgeführt wird z.b. x <= y ; Signalzuweisung aktualisiert den Signaltreiber Signaltreiber gibt Information an die Signale erst an das Signal weiter, wenn Prozess angehalten hat

32 Attribute von Signalen (1) SIG'delayed(T) ist vom gleichen Typ wie SIG; liefert das um Zeit T verzögerte Signal SIG'stable(T) ist vom Typ Boolean; ist TRUE, wenn Wert von SIG sich in der letzten Zeit T nicht verändert hat SIG'event ist vom Typ Boolean; ist TRUE, wenn in aktuellem Simulationszyklus Änderung auf SIG erfolgt

33 Attribute von Signalen (2) SIG'transaction ist ein Signal vom Typ Bit; ändert bei jeder Zuweisung an SIG seinen Wert SIG'last_event ist vom Typ TIME und gibt die Zeit seit der letzten Änderung auf SIG an SIG'last_value ist vom gleichen Typ wie SIG; gibt Wert von SIG vor letzter Änderung an

34 Datentypen in VHDL

35 Integer Garantierter Bereich bei jeder VHDL Implementierung: bis Beispiel ARCHITECTURE test_int OF test IS BEGIN PROCESS (X) VARIABLE a: INTEGER; BEGIN a := 1; -- OK a := -1; -- OK a := 1.0; -- bad... END PROCESS;

36 Real Garantierter Bereich 1.0e38 bis +1.0e38 mit wenigstens 6 Dezimalstellen Genauigkeit Beispiel ARCHITECTURE test_real OF test IS BEGIN PROCESS (X) VARIABLE a: REAL; BEGIN a := 1.3; a := -7.5; a := 1; a := 5.3 ns;... END PROCESS; END test; -- OK -- OK -- bad -- bad

37 Aufzählungstypen Bereich wird vom Nutzer angegeben Beispiel TYPE binary IS ( ON, OFF ); ARCHITECTURE test_enum OF test IS BEGIN PROCESS (X) VARIABLE a: binary; BEGIN a := ON; -- OK... END PROCESS; END test;

38 Physikalische Typen Bereich kann vom Benutzer angegeben werden den Werten sind Einheiten zugeordnet Beispiel TYPE widerstand IS RANGE 0 TO ; UNITS ohm; Kohm = 1000 ohm; Mohm = 1000 kohm; END UNITS; variable a: widerstand; a := 1; --bad

39 Datentyp TIME Vordefiniert in VHDL ist nur der Typ TIME type TIME is range to units fs; ps = 1000 fs; ns = 1000 ps; us = 1000 ns; ms = 1000 us; sec = 1000 ms; min = 60 sec; hr = 60 min; -- femtosecond -- picosecond -- nanosecond -- microsecond -- millisecond -- second -- minute -- hour

40 Paket standard (1) Vordefinierte Typen und Funktionen des Package standard (außer TIME) package STANDARD is type BOOLEAN is (FALSE, TRUE); type BIT is ('0', '1'); type CHARACTER is (NUL, SH, STX, EOT, ENQ, ACK, BEL,..., 'x', 'y', 'z', '{', ' ', '}', '~', DEL ); type SEVERITY_LEVEL is (NOTE, WARNING, ERROR, FAILURE); type INTEGER is range to ; type REAL is range e+309 to e+309;

41 Paket standard (2) function NOW return TIME; subtype NATURAL is INTEGER range 0 to INTEGER'HIGH; subtype POSITIVE is INTEGER range 1 to INTEGER'HIGH; type STRING is array ( POSITIVE range <> ) of CHARACTER; type BIT_VECTOR is array ( NATURAL range <> ) of BIT; end STANDARD Realisierung der Standard-Paketes ist versteckt (hiding information) IEEE Bibliothek setzt auf standard auf

42 Datentypen in VHDL

43 Array Zusammengesetzte Datentypen - Array zum Bündeln von Variablen gleichen Typs Unterscheidung Feldern mit vorgegebenen Grenzen type wort is array (0 to 31) of bit; type controller_zustand is (initial,idle,active,error); type history is array (idle to error) of natural; -- falls eindeutig type history is array (contoller_zustand range idle to error) of natural; Feldern mit nicht vorgegebenen Grenzen type RAM is array (natural range <>, natural range <>) of wort; Grenzen werden bei der Deklaration festgelegt variable kleiner_speicher: RAM(1 to 16, 1 to 16); subtype small_ram is RAM(1 to 16, 1 to 16);

44 Attribute von Feldern A'left(D), A'right(D) liefert die linke, rechte Grenze des D-ten Indexes des Feldes A A'low(D), A'high(D) liefert die kleinste, größte Grenze des D-ten Indexes des Feldes A A'length(D) liefert die Größe des D-ten Indexraumes des Feldes A A'range(D), A'reverse_range(D) liefert den (gespiegelten) Indexraum

45 Attribute von Feldern Beispiele variable speicher: RAM(1 to 16, 1 to 15); -- speicher'reverse_range(2) ist 15 to 1 -- speicher'right(1) ist 16, -- speicher'low(2) ist 1;

46 Zusammengesetzte Datentypen - Record Record Bündeln von Variablen verschiedenen Typs können von jedem VHDL Datentyp sein Record-Elemente werden über den Record-Namen zugegriffen Beispiel TYPE binary IS ( ON, OFF ); TYPE switch_info IS RECORD status : binary; IDnumber: integer; END RECORD; VARIABLE switch : switch_info; switch.status := ON; switch.idnumber := 30;

47 Datentyp ACCESS Variablen dieses Typs sind Zeiger TYPE value_cell; TYPE value_ptr IS ACCESS value_cell; TYPE value_cell IS RECORD value : bit_vector(0 TO 3); next_cell : value_ptr; END RECORD; VARIABLE value_list: value_ptr; value_list := NEW value_cell (B 1000,value_list); value_list := NEW value_cell (B 0010,value_list); WHILE value_list /= NULL LOOP cell_to_be_deleted := value_list; value_list := value_list.next_cell; DEALLOCATE(cell_to_be_deleted); END LOOP;

48 Sub-Typen Definieren Teilmengen eines existierenden Typs Einschränkung eines Typs Beispiel: subtype NATURAL is INTEGER range 0 to ;

49 Pakete Benutzung des Package s von IEEE library- und use-anweisung: library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_components.all;

50 Das Paket IEEE.std_logic_1164 Die Bibliothek IEEE enthält das Paket std_logic_1164, in dem gebräuchliche Typen und Funktionen vordefiniert sind PACKAGE std_logic_1164 IS -- logic state system TYPE std_ulogic IS ( 'U', -- Uninitialized 'X', -- Forcing Unknown '0', -- Forcing 0 '1', -- Forcing 1 'Z', -- High Impedance 'W', -- Weak Unknown 'L', -- Weak 0 'H', -- Weak 1 '-' ); -- Don't care ATTRIBUTE ENUM_ENCODING OF std_ulogic: TYPE IS "U D 0 1 Z D 0 1 D"; TYPE std_ulogic_vector IS ARRAY (natural RANGE <>) OF std_ulogic; Funktionen wie and, or, xor,...

51 VHDL Basics Identifiers Reservierte Worte (reserved words) Literale (literals) Operatoren Kontrollstrukturen

52 Identifiers Werden für Namen und reservierte Wörter benutzt Syntax identifier ::= letter { [ underline ] letter_or_digit } letter_or_digit ::= letter digit Beispiele carry_out und Count7SUB_2_goX Beispiele ungültiger Wörter 7AB

53 Reservierte Wörter ( 87) abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto else elsif end entity exit file for function generate generic guarded if in inout is label library linkage loop map mod nand new next nor not null of on open or others out package port procedure process range record register rem report return select severity signal subtype then to transport type units until use variable wait when while with xor

54 Reservierte Wörter ( 93) group inertial postponed reject ror sla sra unaffected impure literal pure rol shared sll srl xnor

55 Kommentare Beginnen mit "--" und enden mit dem Zeilenende Beispiel A <= B; -- Weise dem Signal A das Signal B zu -- in der folgenden Anweisung wird...

56 Literal Literal kann sein eine Zahl, ein Zeichen, ein String ein Bitstring Zahl darf über beliebigen Basis dargestellt werden. Beispiele integer: 21, 0, 1E2, 3e4, 123_000 real: 11.0, 0.0, 0.468, 3.141_592_6 real mit Exponent: 1.23E-11, 1.0E+4, 3.024E+23, 1000E-1 Beispiele integer 252: 2#1111_1100#, 16#FC#, 7#510# real mit Exponent: 254.0: 16#F.E#E+1, 2#1.1111_110#E7

57 Zeichen und Zeichenketten Zeichen wird dargestellt durch einen durch zwei Apostrophe eingeschlossenes Maschinenalphabetszeichen Beispiele: 'A', 'a', '%', ''', ' String ist eine durch Quotation (") eingeschlossene Folge von Maschinenalphabetszeichen. Beispiele: "Setup time violation", "", " ", """ Bitstring ist eine Folge von Bits, die binär, oktal oder hexadezimal dargestellt werden kann Beispiel: X"FFF", X"F_FF", O"7777", B"111_111_111_111"

58 Attribute Zuordnung zu Typen, Feldern und Signalen Zum (Sub-) Typ T vordefinierte Attribute T'left, T'right: liefert bei Aufzählungstyp T den in der Definition von T links, rechts stehenden Wert T'low, T'high liefert den kleinsten, den größten Wert aus T T'base liefert den Basistyp zurück Verwendungsbeispiel: T'base'low T'pos(X) liefert die Position des Wertes X im Typ T zurück T'val(X) liefert den Wert der Position X im Typ T zurück

59 Operatoren Logische Operatoren: and, or, nand, nor, xor (Beispiel: A and B and C beschreibt 3-Input AND- Gatter) Relationale Operatoren: =, /=, <, <=, >, >= Addition und Konkatenation: +, -, & Vorzeichen: +, - Multiplikation: *, /, mod, rem Exponent, Absolutbetrag, Komplement: **, abs, not

60 Kontrollstrukturen Nur in Prozessen zur sequentiellen Modellierung möglich Kontrollstrukturen sind IF CASE LOOP ASSERT WAIT Beschreibung im Bachus-Naur Format

61 Kontrollstruktur IF Syntax if_statement ::= if condition then sequence_of_statements { elsif condition then sequence_of_statements } [ else sequence_of_statements ] end if; architecture SEQ1 of NANDXOR is begin process (A, B, C) begin if (C='0') then D <= A nand B after 5 ns; else D <= A and B after 10 ns; end if; end process; end SEQ1;

62 Kontrollstruktur CASE Syntax case_statement ::= case expression is when choice => sequence_of_statements [ when choice => sequence_of_statements ] end case; architecture SEQ3 of NANDXOR is begin process (A, B, C) begin case C is when 0 => D <= A nand B after 5 ns when 1 => D <= A and B after 10 ns end case ; end process;

63 Kontrollstruktur loop Syntax loop_statement ::= [ loop_label : ] [ while condition for identifier in range ] loop sequence_of_statements end loop [ loop_label ] Laufvariablen der FOR-Schleife Können innerhalb des Schleifenblocks nicht verändert werden Sind außerhalb nicht bekannt Dürfen nicht deklariert werden

64 Beispiele LOOP WHILE-Schleife while (day = weekday) loop day := get_next_day(day) ; end loop ; FOR-Schleife for i in 1 to 10 loop i_squared(i) := i*i ; end loop ;

65 Syntax Kontrollstruktur ASSERT assertion_statement ::= assert condition [ report expression ] [ severity expression]; Semantik und Verwendung prüft die Bedingung condition ab Fehlerausgabe, falls Bedingung nicht erfüllt ist falls Bedingung nicht erfüllt ist, wird Beispiel: das Argument von report als Meldung ausgegeben der Fehlerstatus auf das Argument von severity gesetzt assert (x) report setup violation severity WARNING ;

66 Syntax Kontrollstruktur WAIT wait_statement sensitivity_clause ::= on sensitivity_list ::= wait [sensitivity_clause] [condition_clause] [time_out_clause] conditional_clause ::= until boolean_expression time_out_clause ::= for time_expression Beispiel: wait on A, B until (C or D) = '0' for 100 ns ; erfolgt ein Event auf A oder B, so wird die Bedingung ausgewertet und gewartet, bis diese erfüllt ist nach spätestens 100 ns geht es weiter Dynamisches Ändern der Sensitivitätsliste Deadlocks vermeiden!

67 Weitere Kontrollstrukturen NEXT beendet Ausführung der momentanen Iteration (z.b. FOR) nächste Iteration wird ausgeführt EXIT ermöglicht Verlassen einer Schleife (LOOP) springt zu END LOOP nachfolgende Anweisung wird ausgeführt

68 Dies und das... Weiterhin wird durch VHDL folgendes unterstützt: Hierarchische Beschreibungen Reguläre Beschreibungen Parametrisierter Entwurf

69 Schulmethode der Addition Carry-Ripple Addierer (Zweierkomplementdarstellung) a 3 a 2 a 1 a 0 b3 b 2 b 1 b 0 OV-test c 3 VA c 2 VA c 1 VA c 0 VA c in overflow s 3 s 2 s 1 s 0 Komplexität Laufzeit ist gleich c n für eine Konstante c 1 Gatteranzahl ist ebenfalls in O(n)

70 VHDL-Beschreibung architecture verhalten of carry_ripple_adder is component VA port (a, b, c_in: in std_logic; sum, c_out: out std_logic); end component; component OV_test port ( a, b, c_in: in std_logic; overflow: out std_logic); end component; signal c: std_logic_vector(n-1 downto 0); begin lsb: VA port map(a(0),b(0),c_in,s(0),c(0)); other_bits: for i in 1 to n-1 generate adder_cell: VA port map(a(i),b(i),c(i-1),s(i),c(i)); end generate; overflow_test: OV_test port map (a(n-1),b(n-1),c(n-1),overflow)); Carry-Ripple Addierer

71 Addition von Ladner & Fischer Berechnung der Übertragsbits macht die Addition langsam, da s i =a i b i c i-1 Versuche die Übertragsberechnung zu beschleunigen Können die Überträge c n-1,..., c 0 in Zeit T(n) berechnet werden, so kann die Addition in Zeit T(n)+O(1) ausgeführt werden.

72 Additionsprinzip a n-1 a n-2... a j... a k... a 1 a 0 b n-1 b n-2... b j... b k... b 1 b 0 generierend : unabhängig von dem Wert c k-1 wird c j immer 1 sein absorbierend : unabhängig von dem Wert c k-1 wird c j immer 0 sein propagierend : c j erhält den Wert von c k-1 Ist der Block [j:k] generierend? absorbierend? propagierend? Berechne das Attribut flag(i:0) für jeden Block [i:0] Lemma Für c in =0: c i =1 flag(i:0)=g. Für c in =1: c i =1 flag(i:0)=p G

73 AGP-Flags Arbeite im folgenden mit den Symbolen A, P und G Implementiere hierfür ein entsprechendes VHDL-Package library ieee; use ieee.std_logic_1164.all; package agp_arithmetic is type agp is ( A, G, P ); type agp_vector is array ( natural range <> ) of agp; function "+" (agp1, agp2: in agp) return agp; function convert_std_agp (op1, op2: in std_logic) return agp;

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Volkmar Sieh Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2013 VHDL Verhaltensmodellierung 1/18 2013-01-11 Inhalt

Mehr

Entwurf und Verifikation digitaler Systeme mit VHDL

Entwurf und Verifikation digitaler Systeme mit VHDL Entwurf und Verifikation digitaler Systeme mit VHDL Wolfgang Günther Infineon AG CL DAT DF LD V guenther@informatik.uni freiburg.de, wolfgang.guenther@infineon.com Dr. Wolfgang Günther Einleitung 2 Inhalt

Mehr

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 VHDL Verhaltensmodellierung 1/26 2008-10-20

Mehr

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

N. Schmiedel, J. Brass, M. Schubert VHDL Formelsammlung FH Regensburg, 01.12.2008. VHDL Formelsammlung VHDL Formelsammlung INHALTSVERZEICHNIS: 1 DATENOBJEKTE 2 1.1 SIGNAL: 2 1.2 VARIABLE: 2 1.3 CONSTANT 2 2 DATENTYPEN 2 2.1 selbstdefinierte Aufzähltypen (Deklaration) 3 2.2 Physikalische Datentypen 3 2.3

Mehr

Einstellige binäre Addierschaltung (Addierer)

Einstellige binäre Addierschaltung (Addierer) VHDL Addierer 1 Einstellige binäre Addierschaltung (Addierer) Schnittstelle: Ports mit Modus IN bzw. OUT Signale Funktionsnetz: Ports, Funktionsblöcke, Verbindungen Signale für Ports und Verbindungen VHDL

Mehr

Einführung in VHDL (2)

Einführung in VHDL (2) Einführung in VHDL Digitale Systeme haben immer größere Bedeutung erlangt. Komplexität wurde dabei immer größer, sodass die Entwicklung digitaler Systeme zu weiten Teilen nur noch mit Computerunterstützung

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009 Übungen zu Architektur Eingebetteter Systeme Blatt 5 28./29.05.2009 Teil 1: Grundlagen 1.1: VHDL Bei der Erstellung Ihres Softcore-Prozessors mit Hilfe des SOPC Builder hatten Sie bereits erste Erfahrungen

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

1.1 VHDL-Beschreibung

1.1 VHDL-Beschreibung 1 Grundlegende Konzepte in VHDL 1.1 VHDL-Beschreibung Device A Design Entity A Entity Declaration Interface Delclaration Architecture Body Functional Definition Entity Declaration - Abstraktions eines

Mehr

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung 1/17 2010-04-14 Inhalt Entwurfsebenen und -sichten

Mehr

Architecture Body Funktionale Beschreibung einer "Design Entity" - * beschreibt die Funktion auf Verhaltens-, Struktur- oder Datenfluss-Ebene

Architecture Body Funktionale Beschreibung einer Design Entity - * beschreibt die Funktion auf Verhaltens-, Struktur- oder Datenfluss-Ebene 5.3.1 VHDL-Beschreibung Device A Design Entity A Entity Declaration Interface Delclaration Architecture Body Functional Definition Entity Declaration - Abstraktions eines Designs * repräsentiert ein komplettes

Mehr

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK... 1... V H D L Tim Köhler April 2005 I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK... 2... Übersicht 1. Einleitung 2. Syntax 3. Spezielle

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

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

Unterprogramme. Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen: Unterprogramme Dr. Wolfgang Günther Unterprogramme 2 Unterprogramme Komplexes Verhalten kann modular mit Hilfe von Unterprogrammen beschrieben werden Es gibt zwei Arten von Unterprogrammen: Prozeduren

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris VHDL VHDL Akronym für Very High-Speed Integrated Circuit Hardware Description Language

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Übungsblatt 8 Lösungen:

Übungsblatt 8 Lösungen: Übungsblatt 8 Lösungen: Aufgabe 71: VHDL Halbaddierer Schnittstellenbeschreibung und Modellbeschreibung(Verhaltensmodell) eines Halbaddierers: ENTITY halbaddierer IS GENERIC (delay: TIME := 10 ns); PORT

Mehr

1 Hardwareentwurf. 1.1 Grundlagen

1 Hardwareentwurf. 1.1 Grundlagen 1 Hardwareentwurf 1.1 Grundlagen POSITIVE natürliche Zahlen N NATURAL N 0 INTEGER ganze Zahlen Z REAL reelle Zahlen R BOOLEAN (true, false), (low, high) BIT ( 0, 1 ) CHARACTER (..., A, B,..., a, b,...,

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

Eingebettete Systeme

Eingebettete Systeme Einführung in Eingebettete Systeme Vorlesung 8 Bernd Finkbeiner 10/12/2014 finkbeiner@cs.uni-saarland.de Prof. Bernd Finkbeiner, Ph.D. finkbeiner@cs.uni-saarland.de 1 Letzte Woche: Rückgekoppelte Schaltnetze!

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Simulation von in VHDL beschriebenen Systemen

Simulation von in VHDL beschriebenen Systemen Simulation von in VHDL beschriebenen Systemen Prof. Dr. Paul Molitor Institut für Informatik Martin-Luther-Universität Halle Aufbau der Lehrveranstaltung Literaturangaben Allgemeines zum Entwurf digitaler

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

VHDL-Syntax F. Schubert 09/08. Prof. Dr. F. Schubert. Hochschule für Angewandte Wissenschaften Hamburg VHDL-SYNTAX. 09/2008 Sbr

VHDL-Syntax F. Schubert 09/08. Prof. Dr. F. Schubert. Hochschule für Angewandte Wissenschaften Hamburg VHDL-SYNTAX. 09/2008 Sbr Prof. Dr. F. Schubert Hochschule für Angewandte Wissenschaften Hamburg VHDL-SYNTAX 09/2008 Sbr Erläuterungen: Groß geschrieben: Selbstdefinierte Namen z.b. VADD, CARRY_IN, TD Klein geschrieben und fett

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

2. Negative Dualzahlen darstellen

2. Negative Dualzahlen darstellen 2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

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

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik SoC Design Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik VHDL Crashkurs Übersicht 1. Einführung 2. Sprachkonstrukte 3. Designflow Christophe Bobda 3 1. VHDL VHDL:

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Type Declaration. type identifier is type_definition ; Beispiele: Dr. Wolfgang Günther Datentypen 2

Type Declaration. type identifier is type_definition ; Beispiele: Dr. Wolfgang Günther Datentypen 2 Datentypen Dr. Wolfgang Günther Datentypen 2 Type Declaration type identifier is type_definition ; Beispiele: type apples is range 0 to 100; type vec is std_logic_vector (17 downto 3); Dr. Wolfgang Günther

Mehr

VHDL-Einführung. Universität Hamburg MIN Department Informatik Eingebettete Systeme: VHDL-Einführung

VHDL-Einführung. Universität Hamburg MIN Department Informatik Eingebettete Systeme: VHDL-Einführung MIN Department Informatik VHDL-Einführung 1 MIN Department Informatik VHDL VHSIC Hardware Description Language Very High Speed Integrated Circuit Entwicklung 1983 vom DoD initiiert 1987 IEEE Standard Überarbeitungen

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Test integrierter Schaltungen

Test integrierter Schaltungen 1. CAE Link und IC Qualifizierung 1.1 Ziel 1.1.1 CAE Link Bei der letzten Übung wurden die Zeitdefinitionen und die Test Pattern manuell eingegeben. Aber bei hochintegrierten Schaltkreise muß ein anderer

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

N Bit binäre Zahlen (signed)

N Bit binäre Zahlen (signed) N Bit binäre Zahlen (signed) n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl 0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

12 VHDL Einführung (III)

12 VHDL Einführung (III) 12 VHDL Einführung (III) 12.1 Mehrwertige Datentypen (std_logic, std_ulogic) Einführung zweier neuer neunwertiger Datentypen std_logic und std_ulogic (IEEE-Standard 1164) Wert 'U' 'X' '0' '1' 'Z' 'W' 'L'

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Übung 3: VHDL Darstellungen (Blockdiagramme)

Übung 3: VHDL Darstellungen (Blockdiagramme) Übung 3: VHDL Darstellungen (Blockdiagramme) Aufgabe 1 Multiplexer in VHDL. (a) Analysieren Sie den VHDL Code und zeichnen Sie den entsprechenden Schaltplan (mit Multiplexer). (b) Beschreiben Sie zwei

Mehr

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

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg VHDL Grundelemente Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 VHDL Grundelemente 1/15 2009-07-31 Inhalt Folgende

Mehr

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

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen. Array-Zuweisungen Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen. Ausschnitte (slices) werden über die Indizes gebildet. Mehrdimensionale Arrays Mehrdimensionale Arrays werden

Mehr

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign" 1 Einführung... 1-1 2 VHDL Grundlagen... 2-1 2.1 Allgemeines... 2-1 2.2 Aufbau eines VHDL-Modells...2-7 VHDL Design-Einheiten Überblick...2-10 Programmerstellung...

Mehr

5 VHDL Einführung (I)

5 VHDL Einführung (I) 5 VHDL Einführung (I) VHDL = Very High Speed Integrated Hardware Description Language Dient der Beschreibung von Hardware bei: Dokumentation Simulation Synthese Hardwarebeschreibungssprachen (HDLs) sind

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Künstliches binäres Neuron

Künstliches binäres Neuron Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de

Mehr

LINGO: Eine kleine Einführung

LINGO: Eine kleine Einführung LINGO: Eine kleine Einführung Jun.-Prof.Dr. T. Nieberg Lineare und Ganzzahlige Optimierung, WS 2009/10 LINDO/LINGO ist ein Software-Paket, mit dessen Hilfe (ganzzahlige) lineare Programme schnell und einfach

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialognetze Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialogabläufe auf Fensterebene "grobe Dialogabläufe" d.h. Wechsel zwischen

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

8 Zugriffstypen ( Zeiger )

8 Zugriffstypen ( Zeiger ) 8 Zugriffstypen ( Zeiger ) 1. Zugriffstypen, die auf Daten in einem Storage Pool zeigen Heap. 2. Allgemeine Zugriffstypen, die auf (mehr oder weniger) beliebige Daten zeigen. 3. Zugriffsparameter für Unterprogramme

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12 FB ET/IT Binäre Rechenoperationen WS /2 Name, Vorname: Matr.-Nr.: Zugelassene Hilfsmittel: beliebiger Taschenrechner eine selbsterstellte Formelsammlung Wichtige Hinweise: Ausführungen, Notizen und Lösungen

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

Kurzeinführung LABTALK

Kurzeinführung LABTALK Kurzeinführung LABTALK Mit der Interpreter-Sprache LabTalk, die von ORIGIN zur Verfügung gestellt wird, können bequem Datenmanipulationen sowie Zugriffe direkt auf das Programm (Veränderungen der Oberfläche,

Mehr

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

Prinzipien der Softwareentwicklung S. Strahringer

Prinzipien der Softwareentwicklung S. Strahringer Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und

Mehr

VHDL - Objekte und Typen

VHDL - Objekte und Typen 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

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und

Mehr