Hardware/Software Co-Design

Größe: px
Ab Seite anzeigen:

Download "Hardware/Software Co-Design"

Transkript

1 Hardware/Software Co-Design Kapitel : Logiksynthese und VHDL-Einführung Mario Schölzel

2 Geschichte von VHDL VHDL = VHSIC Hardware Description Language VHSIC = Very-High Speed Integrated Circuits Entwickelt Anfang der 98er Jahre im Auftrag des Verteidigungsministeriums der USA Ziel war eine Hardwarebeschreibungssprache für Bausteine mit folgenden Eigenschaften: Technologieunabhängige Beschreibung Beschreibung auf unterschiedlichen Abstraktionsebenen (Logikeben, RT-Ebene, ) Beschreibung aus unterschiedlichen Sichten (Verhaltenssicht, Struktursicht) Validierung in einem Simulator

3 Sichten Strukturelle Beschreibung eines Bausteins ist gekennzeichnet durch: Angabe der enthaltenen Sub-Bausteine mit ihren Ein- /Ausgängen Verschaltung der Sub-Bausteine Verhaltensorientierte Beschreibung eines Bausteins ist gekennzeichnet durch: Funktionale Beschreibung des Verhaltens mittels nebenläufiger Prozesse Dadurch Beschreibung der Änderung von Signalen in Abhängigkeit anderer Signale

4 Verwendung von VHDL Modellierung von Verhalten und Struktur zur Simulation Modellierung von Verhalten zur Synthese Algorithmen Boolesche Funktionen, Zustandsautomaten, Verhalten System Prozessor Logik Schalter Struktur Netlisten Physisch Abstraktionen / Ebenen nach Gajski (Y-Chart)

5 Beschreibung eines Bausteins Beschreibung der Schnittstelle: entity Baustein_Name is [generic (Parameterliste) ;] [port (Ein-/Ausgabesignale);] end [Baustein_Name]; Beschreibung der Implementierung: architecture Archiktektur_Name of Baustein_Name is [Deklarationsteil] begin VHDL-Anweisungen end [Baustein_Name]; Beispiel (Verhaltensbeschreibung eines Halbaddierers): library ieee; use ieee.std_logic_64.all; entity HA is port ( a : in std_logic; b : in std_logic; s : out std_logic; c : out std_logic ); end HA; architecture behvha of HA is begin s <= a xor b; c <= a and b; end behvha; nebenläufige Signalzuweisung

6 Simulation des Halbaddierers

7 Signale und Variablen Ein Signal dient der Kommunikation zwischen Prozessen/Komponenten Deklaration eines Signals: signal sname {,sname}: Datentyp; Deklaration in Architekturen, Prozessen, Funktionen/Prozeduren Signalzuweisung: Signal_Name <= Ausdruck Ausdruck muss vom gleichen Typ wie das Signal sein Verhalten: Zuweisung wird gepuffert und erst "später" ausgeführt; wichtig zur Simulation parallelen Verhaltens Beispiel : SIGNAL a, b, c: bit; a <= b; c <= a; Variablen speichern Werte innerhalb eines Prozesses Deklaration einer Variablen variable vname {,vname}: Datentyp; Deklaration nur in Prozessen, Funktionen/Prozeduren Variablenzuweisung: Ausdruck muss gleichen Typ wie die Variable sein Verhalten: Zuweisung wird sofort ausgeführt Beispiel: Var_Name := Ausdruck VARIABLE a, b, c: bit; a := b; c := a;

8 Strukturierung des VHDL-Codes Design besteht in der Regel aus mehreren Komponenten (Bausteinen) In einer VHDL-Datei können mehrere Bausteine beschrieben werden Im ganzen Design verwendete Datentypen, Operatoren Funktionen/Prozeduren und Komponenten können in packages organisiert werden Deklaration eines Packages package package_name is [Deklarationen]; end package package_name; Definition der Schnittstelle package body package_name is [Funktionen/Prozeduren/Bausteine] end package body; Einbinden einer Bibliothek: Implementierung => Bibliothek library library_name; use library_name.package_name.all Bibliothek work enthält übersetze Quellen des aktuellen Projekts Eigene Packages werden auch in Bibliothek work abgelegt werden

9 Beispiel für eigene Bibliothek Deklaration des eigenen packages lib im aktuellen Projekt package lib is [Deklarationen]; end package lib; package body lib is [Funktionen/Prozeduren/Bausteine] end package body; Einbinden in Quellcode des aktuellen Projekts library work; use work.lib.all

10 Datentypen Datentypen definieren eine Menge von Werten und zulässige Operationen auf diesen Werten. Unterscheidung in: Skalare Datentypen Integer-Datentypen Real-Datentypen Physikalische Datentypen (enthalten Dimensionsangaben) Aufzählungstypen Zusammengesetzte Datentypen Felder Verbunde VHDL ist eine streng getypte Sprache Zuweisung von a an b nur möglich, wenn a hat gleichen Typ wie b Typ von a ist Subtyp von b Deklaration von Datentypen im Deklarationsteil eines Packages Deklarationsteil einer Architektur

11 Integer-Datentyp Integer-Datentypen haben einen zusammenhängenden Wertebereich ganzer Zahlen Formal existiert ein anonymer Datentyp universal_integer, der alle ganzen Zahlen enthält Deklaration nicht anonymer Integer-Datentypen type Bezeichner is range Integer_Literal to Integer_Literal; type Bezeichner is range Integer_Literal downto Integer_Literal; Deklarierte Operationen: Relationale Operationen: =, /=, <, <=, >, >= Arithmetische Operationen: +, -, *, / (ganzzahlige Division) Potenzierung: ** Absolutwert: abs Modulo: mod Rest nach ganzzahliger Division: rem

12 Aufzählungstypen Deklaration type Bezeichner is (Element {, Element}); Reihenfolge der Aufzählung definiert totale Ordnung auf den Elementen Beispiel: Deklaration der Zustände eines endlichen Automaten: type state is (idle, start, stop);

13 Attribute auf skalaren Datentypen Attribute auf skalaren Datentypen T: T'base: Basisdatentyp von T T'high: maximaler Wert T'low: minimaler Wert T'left: Wert der linken Bereichsgrenze T'right: Wert der rechten Bereichsgrenze T'ascending: ist true, gdw. Wertebereich aufsteigend sortiert ist

14 Vordefinierte Datentypen Im package standard deklarierte skalare Datentypen type boolean is (false, true); type bit is ('', ''); type character is (nul, soh,, ' ', '!', '"',, 'a', 'b','c', ) type integer is range to ; type real is range -.E8 to.e8; type std_ulogic is ('U','X','','','Z','W','L','H','-') subtype std_logic is resolved std_ulogic; Im package standard deklarierte Subtypen und Felder subtype natural is integer range to integer'high; subtype positive is integer range to integer'high; type string is array (positive range <>) of character; type bit_vector is array (natural range <>) of bit;

15 Beschränkte Felder Bei der Deklaration werden Bereichsgrenzen festgelegt Deklaration: type Bezeichner is array (Wertebereich {,Wertebereich}) of Datentyp_name; Beispiel: type byte is array (7 downto ) of bit; type wort is array ( to 4) of byte; type brett is array ( to 9, to 9) of integer; signal a: byte; Zugriff auf Feldelemente: a <= ('', '', '', '', '', '', '', ''); a <= (7 downto 5 => '', others => ''); a(7) <= ''; a <= ( => '', downto => '', => '');

16 Unbeschränkte Felder Bereichsgrenzen werden erst bei der Instanziierung einer Variablen/eines Signals festgelegt Deklaration: type Bezeichner is array (Disk_Typ range <> {,Disk_Typ <>}) of Datentyp_name; Beispiele (aus den packages standard und std_logic_64): type string is array (positive range <>) of character; type bit_vector is array (natural range <>) of bit; type std_ulogic_vector is array (natural range <>) of std_ulogic; type std_logic_vector is array (natural range <>) of std_logic; Instanziierung signal Z_Bus: bit_vector( downto ); signal Z_Bus: std_logic_vector( to ); Zugriff auf Feldelemente wie bisher

17 Hierarchie und Strukturbeschreibung Eine Architektur kann ausschließlich aus Komponenten beschrieben werden; dadurch: rein strukturelle Beschreibung der Architektur möglich Hierarchische Organisation der Beschreibung Komponenten sind Bausteine, deren Verhalten bereits spezifiziert wurde Zu verwendende Komponenten werden in der Deklarationssektion einer Architektur bekannt gemacht durch: component Baustein_Name is [generic (Parameterliste) ;] [port (Ein-/Ausgabepins);] end component;

18 Beispiel Volladdierer (Struktur- Sicht) library ieee; use ieee.std_logic_64.all; entity FA is port ( a : in std_logic; b : in std_logic; ci : in std_logic; s : out std_logic; co : out std_logic ); end FA; architecture structfa of FA is component HA is port ( a : in std_logic; b : in std_logic; s : out std_logic; c : out std_logic ); end component; signal c: std_logic; signal c: std_logic; signal zs: std_logic; cin a b HA zs c HA c s OR c begin ha: HA port map ( a => a, b => b, s => zs, c => c ); ha: HA port map ( a => ci, b => zs, s => s, c => c ); co <= c or c; end structfa;

19 Simulationsergebnisse Volladdierer

20 Explizite Prozesse Prozesse dienen der verhaltensorientierten Beschreibung einer Architektur Ein Prozess wird aktiviert, sobald sich ein Signal aus seiner Sensitivitätsliste ändert Prozess-Anweisung process [(Sensitivitätsliste)] [is] Deklarationsteil begin Ausführungsteil end [process] [Marke]; Ausführungsteil ist eine Folge von sequentiell ausgeführten Anweisungen Verschiedene Prozesse werden aber nebenläufig (ohne festgelegte Reihenfolge) ausgeführt

21 Beispiel Volladdierer (Verhaltenssicht) library ieee; use ieee.std_logic_64.all; entity FA is port ( a : in std_logic; b : in std_logic; ci : in std_logic; s : out std_logic; co : out std_logic ); end FA; architecture behavfa of FA is begin fulladder: process (a, b, ci) begin s <= a XOR b XOR ci; co <= (a AND b) OR (ci AND (a XOR b)); end process; end behavfa; cin a b HA zs c HA c s OR c

22 Implizite Prozesse Implizite Prozesse werden durch nebenläufige Signalzuweisungen im Anweisungsteil einer Architektur erzeugt Nebenläufige Signalzuweisung: target <= waveformelem {, waveformelem} unaffected; Waveformelem ist value_expr [after time_expr] null [after time_expr] Alternative Prozess-Anweisung process (Sensitivitätsliste) is begin target <= waveform end process; Dabei enthält Sensitivitätsliste alle Signale aus value_expr

23 Beispiel library ieee; use ieee.std_logic_64.all; entity FA is port ( a : in std_logic; b : in std_logic; ci : in std_logic; s : out std_logic; co : out std_logic ); end FA; architecture behavfa of FA is begin s <= a XOR b XOR ci; co <= (a AND b) OR (ci AND (a XOR b)); end behavfa; cin a b HA zs c HA c s OR c

24 Ausführungsteil in Prozessen Der Ausführungsteil in einem Prozess ist eine Folge von Anweisungen Anweisungsfolge wird sequentiell abgearbeitet Anweisungen können sein: Signal-/Variablenzuweisungen if-anweisung case-anweisung Schleifen for while loop wait-anweisung

25 Syntax: if Bedingung then {sequentielle_anweisung} {elsif Bedingung then {sequentielle_anweisung}} [else {sequentielle_anweisung}] end if; if-anweisung Beispiele: If Bedingung then sequentielle Anweisungen End if; If Bedingung then sequentielle Anweisungen End if;... If Bedingung n then sequentielle Anweisungen End if; If Bedingung then sequentielle Anweisungen elsif Bedingung then sequentielle Anweisungen elsif Bedingung then... elsif Bedingung n then sequentielle Anweisungen End if;

26 Syntax: Beispiel: case-anweisung case Ausdruck is when Auswahl => {sequentielle_anweisung} {when Auswahl => {sequentielle_anweisung} } end case; case Ausdruck is when Wert_ => Anweisungen when Wert_ Wert_ Wert_4 => Anweisungen when Wert_5 to Wert_6 => Anweisungen when Wert_7 Wert_8 to Wert_ => Anweisungen... when Wert_n => Anweisungen when others => Anweisungen End case; Fehlt die others-anweisung, dann müssen alle möglichen Fälle explizit aufgezählt werden

27 Schleifen Syntax loop: loop Anweisung... exit when Bedingung... Anweisung end loop Syntax for: for Bezeichner in disk_werteberich loop Anweisungen end loop Beispiel: for k in to 5 loop... end loop Syntax while while Bedingung loop Anweisungen end loop Beispiel while k < 5 loop Anweisungen; k := k + ; end loop

28 Die wait-anweisung Darf in Prozessen verwendet werden Syntax der wait-anweisung: wait [on Signal_Name {, Signal_Name}] [until Bedingung] [for Zeit]; wait on hält einen Prozess an, bis eine Änderung in einem der angegebene Signale auftritt wait until hält einen Prozess an, bis die Bedingung wahr wird Es ergibt sich folgende Äquivalenz: wait on s wait until s'event wait for weckt einen Prozess nach der angegebenen Simulationszeit auf

29 Sensitivitätsliste Prozess ohne wait mit nicht leerer Sensitivitätsliste: P: process(clk, res) begin if res = '' then out <= ''; elsif clk = '' and clk'event then out <= not in; end if; end process; Semantisch äquivalenter Prozess mit wait und leerer Sensitivitätsliste: P: process begin if res = '' then out <= ''; elsif clk = '' and clk'event then out <= not in; end if; wait on clk, rst; end process;

30 Simulationsprinzip VHDL verwendet das Prinzip der Co-Routinen. D.h.: Jeder Prozess gibt an statisch definierten Punkten (wait-anweisung) die Kontrolle an den Simulationskern zurück. Dieser aktiviert dann einen weiteren Prozess oder beendet die Simulation. Prozesse mit nicht-leerer Sensitivitätsliste enthalten am Ende eine implizite wait-anweisung Beispiel: Ereignisse aus den Sensitivitätslisten von p und p sind aufgetreten Reihenfolge der Aktivierung von p und p nicht festgelegt 4. Simulationskern. p.. p wait() wait()

31 Beispiel Prozess ohne Sensitivitätsliste: CLOCK_GEN: process begin clk <= ''; 4 wait for 5 ns; 5 clk <= '' 6 wait for 5 ns; 7 end process; clk ns 5 ns ns 5 ns ns

32 Simulationsprinzip Für die Simulation muss auf der untersten Ebene jeder Baustein verhaltensorientiert beschrieben sein Wird in einem Prozess keine wait-anweisung ausgeführt, gerät die Simulation in eine Endlosschleife Initialisierung Aktualisierung der Signale Simulationszyklus Ausführung der aktiven Prozesse Simulationsende

33 Initialisierungsphase Jedem Signal wird ein Wert zugewiesen, abhängig von seinem Datentyp Simulationsuhr wird auf gesetzt Alle Prozesse des zu simulierenden Bausteins werden gestartet; d.h. sie werden bis zum ersten wait ausgeführt

34 Exkurs: Wertzuweisung an Signale Jedes Signal besitzt eine Transaktionsliste Wertzuweisung sig <= sig_val after time_val; zum Zeitpunkt curr_time erzeugt Eintrag (cur_time + time_val, sig_val) in Transaktionsliste Erst nach Abschluss eines kompletten Simulationszyklus werden Signalwerte in der Aktualisierungsphase aktualisiert: signal Zeit Wert 5 ns ns 4 Transaktionsliste 5 ns 6

35 Aktualisierungsphase Weitersetzen der aktuellen Simulationszeit t_current auf nächsten Zeitpunkt t_next, an dem ein Ereignis stattfindet. Dazu Betrachtung von Transaktionsliste der Signale Weckliste der Prozesse (wegen wait for time_val Anweisung) Ausführen aller Signalzuweisungen, die bei t_next ausgeführt werden müssen Ändert das den Wert eines Signals aus einer Sensitivitätsliste, dann wird der zugehörige Prozess geweckt und in der folgenden Ausführungsphase ausgeführt Deltazyklen entstehen, wenn t_next = t_current ist

36 Ausführungsphase/Stoppregeln Alle in der letzten Aktualisierungsphase geweckten Prozesse werden ausgeführt Ausführung in einer nicht festgelegten Reihenfolge Da aber Signalwerte sich während dieser Ausführungsphase nicht ändern (passiert nur in der Aktualisierungsphase) hat die Ausführungsreihenfolge keinen Einfluss auf die Ergebnisse Simulation endet, falls Transaktionsliste und Weckliste nach der Ausführungsphase leer oder Vorgegebene Simulationszeit ist erreicht Delta-Zyklus (Simulationszeit unverändert) Delta-Zyklus (Simulationszeit unverändert) Prozesse auswerten Signale aktualisieren Prozesse auswerten Signale aktualisieren aktueller Simulationszeitpunkt nächster Simulationszeitpunkt

37 Beispiel () Beispiel für Trennung der Auswertungsphase und Signalaktualisierung: architecture behv of exmp is signal a,b: std_logic; begin TAUSCHE: process(a,b) begin a <= b after ns; b <= a after ns; end process; end architecture;

38 Beispiel () Was passiert jetzt? architecture behv of exmp is signal a,b: std_logic; begin TAUSCHE: process(a,b) begin a <= b after ns; b <= a after ns; end process; end architecture;

39 Synthese aus VHDL Code Verhalten Logik Struktur Gatter (NAND, NOR), Flip-Flops Zustandsautomaten zur Modellierung sequentieller Logik, Aussagenlogische Formeln, Wahrheitswertetabellen zur Modellierung Boolescher Funktionen Physisch Abstraktionen / Ebenen nach Gajski (Y-Chart)

40 Kombinatorische Logik Ausgaben hängen funktional von den Eingaben ab. x x x z z = f (x,,x n ) z z m = f m (x,,x n )

41 Modelle für kombinatorische Logik Verhalten Wahrheitswertetabelle: b b d d z Struktur Gatternetzliste b d NAND NOR NOR z Aussagenlogische Ausdrücke d b NAND AND BDDs KV-Diagramme

42 Beschreibung kombinatorischer Schaltungen mit VHDL Ziel: Modellierung einer kombinatorischen Schaltung, die den Wert eines Ausgabesignals (Leitung) erzeugt Wichtig: Ausgabesignal ist funktional abhängig von Eingaben Änderung irgend eines Eingangssignals muss Berechnungsprozess aktivieren (jedes Eingangssignal in Sensitivitätsliste) Aktualisierung jedes Ausgangssignals bei jeder Aktivierung des Berechnungsprozesses (jedes Ausgangssignal muss immer geschrieben werden) Modellierung mit: Nebenläufiger Signalzuweisung oder Prozess

43 Nebenläufige Signalzuweisung Nebenläufige Signalzuweisung: Es können keine Signale in der Sensitivitätsliste vergessen werden Schreibt immer ein Signal Beispiel: library IEEE; use IEEE.STD_LOGIC_64.all; entity bist is port(b,b,d,d: in std_logic; z: out std_logic); end bist; architecture conc_sig of bist signal s,s,s,s4: std_logic; begin s <= b nand d; s <= d nand b; s <= s nor s; s4 <= s and s; z <= s4 nor s; end architecture; b d d b NAND NAND NOR AND NOR z

44 Beispiel: Kombinatorischer Prozess Kombinatorischer Prozess: Sensitiv auf alle Signale, die im Prozess gelesen werden Schreibt bei jeder Aktivierung Ausgangssignal Beispiel: architecture proc of bist begin process(b,b,d,d) variable s,s: std_logic; begin s := b nand d; s := d nand b; s := s nor s; s := s and s; z <= s nor s; end process; end architecture; b d NAND NOR NOR z d b NAND AND

45 Beispiel: Kombinatorischer Prozess Beispiel: entity x is port(a,b,c: in std_logic; Z : out std_logic); end x; architecture behav of x begin process(a,b,c) begin if C = then Z <= A; else Z <= B; end if; end process; end architecture; Synthese

46 Sequentielle Logik Keine funktionale Abhängigkeit von den Eingaben wegen internem Speicher x x x FF z z z = f (FF,,FF k,x,,x n ) z m = f m (FF,,FF k,x,,x n )

47 Speicherelemente Flankengesteuerte Flip-Flops (D-Flip-Flop) Verhalten flankengesteuerte Flip-Flops (D- Flip-Flop) D Dateneingang Q Datenausgang clk Takteingang Zustandsgesteuerte Flip-Flops (Latch) Verhalten zustandsgesteuerte Flip-Flops (D- Latch) D Dateneingang Q Datenausgang clk Takteingang D FF clk Q D Latch clk Q Q D Takt t Takt t+ Takt t+ clk Q D Takt t Takt t+ Takt t+ clk

48 Beschreibung von Speicherelementen in VHDL Beschreibung von D-Flip-Flops ohne set/clear durch Prozesse mit spezieller Struktur: process begin wait until clockedge; -- Hier Beschreibung der synchronen Logik end process; end architecture; clockedge ist dabei: clock_name = logic- clock_name = logic- rising_edge(clock_name) falling_edge(clock_name) -- nur für std_logic/std_ulogic -- nur für std_logic/std_ulogic Für Signale, die unter der Kontrolle der wait-anweisung geschrieben werden, werden Flip-Flops synthetisiert Für Variablen, die unter der Kontrolle der wait-anweisung geschrieben werden, werden Flip-Flops synthetisiert, falls: die Variable gelesen werden kann, bevor sie geschrieben wird Wird die Variable immer definiert, bevor sie gelesen wird, dann wird kein speicherndes Element für die geschriebene Variable benötigt

49 Beispiel: Flip-Flop aus einem Signal entity ff is port( clk: in bit; currstate: in integer range to 5; nextstate: out integer range to 5 ); end ff; currstate_ D Q nextstate_ architecture infer of ff begin process begin wait until clk = ''; nextstate <= currstate; end process; end architecture; currstate_ clk currstate_ clk D clk D clk QN Q QN Q QN nextstate_ nextstate_ currstate_ D Q nextstate_ clk QN

50 Beispiel: Flip-Flop aus einer Variablen Flip-Flop wird auch für temp erzeugt: process variable temp : integer range to 5; begin wait until clk = ''; nextstate <= temp; temp := currstate; end process; Für temp wird kein Flip-Flop erzeugt: process variable temp : integer range to 5; begin wait until clk = ''; temp := currstate; nextstate <= temp; end process; Schaltbild für den oberen Fall?

51 Antwort D clk Q QN nextstate_ D clk Q QN nextstate_ D clk Q QN nextstate_ D clk Q QN nextstate_ D clk Q QN currstate_ D clk Q QN currstate_ D clk Q QN currstate_ D clk Q QN currstate_ clk FFs für Variable temp FFs für Signal nextstate

52 Flip-Flops mit synchronem set/clear process begin wait until clk = ''; if rst = '' then counter <= ; else counter <= counter + ; end if; end process; end architecture;

53 Flip-Flops mit asynchronem set/clear Beschreibung von Flip-Flops mit asynchronem set/clear durch Prozesse mit spezieller Struktur: process(sensitivitätsliste) begin if condition_ then -- Asynchrone Logik elsif condition_n then -- Asynchrone Logik elsif clock_edge then -- Synchrone Logik end if; end process; end architecture; clockedge ist dabei: clock_name = clk_val and clock_name'event rising_edge(clock_name) -- nur für std_logic/std_ulogic falling_edge(clock_name) -- nur für std_logic/std_ulogic Sensitivitätsliste enthält alle gelesenen Signale des asynchronen Teils und clock_name

54 Latches Beschreibung von Latches durch Prozesse Zu einem Signal wird ein Latch generiert, wenn es in dem Prozess einen Pfad gibt, auf dem dieses Signal nicht definiert wird (und der Prozess kein Flip-Flop für das Signal erzeugt) Zu einer Variablen wird ein Latch generiert, wenn es in dem Prozess einen Pfad gibt, auf dem dieses Signal nicht definiert wird und es einen Pfad gibt, auf dem die Variable gelesen wird, bevor sie definiert wird Beispiel: process(clk, curr_state) begin if clk = '' then next_state <= curr_state; end if; end process;

55 Beispiel: Sequentielle Schaltung und Delta-Zyklus Reg ist sequentielle Logik, die ausgehende Signale nur ändert, wenn Aktivierung wegen clk-signal stattfand. CL ist kombinatorische Logik, die immer aktiviert wird, wenn sich eines ihrer Eingangssignale ändert. clk clk clk clk clk clk clk clk clk lreg rreg lreg rreg lreg rreg lreg rreg lreg rreg lreg rreg lreg rreg lreg rreg lreg rreg CL CL CL CL CL CL CL CL CL Zeit t: clk hat sich geändert Zeit t, Delta : Prozess Reg ist aktiviert und ändert Ausgangssignal Zeit t, Delta : Prozess Reg ist aktiviert und ändert Ausgangssignal Geänderte Signale aktualisieren Zeit t, Delta : Prozess CL ist aktiviert und ändert Ausgangssignale Geänderte Signale aktualisieren Zeit t, Delta : Prozess Reg ist aktiviert und ändert kein Ausgangssignal Zeit t, Delta : Prozess Reg ist aktiviert und ändert kein Ausgangssignal Keine Signale mehr gändert, Simulationszeit auf t+ setzen.

56 Modelle für sequentielle Logik Verhalten Struktur Moore-Automat: Moore-Automat: Endlicher Automat mit Ausgabe in den Zuständen a FF z a Zustandsübergangsfunktion d FF Ausgabefunktion l z a m FFk z m Mealy-Automat: Endlicher Automat mit Ausgabe an den Kanten Mealy-Automat: a FF z a Zustandsübergangsfunktion d FF Ausgabefunktion l z a m FFk z m

57 Moore-Automat Moore-Automat (Q,E,A,l,d,q) Q endliche Menge von Zuständen E Eingabealphabet A Ausgabealphabet d : Q E Q ist die Zustandsübergangsfunktion l: Q A ist die Ausgabefunktion q ist der Startzustand Beispiel (Zähler):

58 Verhalten Moore-Automat Eine Situation (q, a, b) besteht aus Zustand z Î Q Eingabe a Î E * Ausgabe b Î A * Die Relation Í (Q E* A*) (Q E* A*) ist die Menge aller möglichen Situationsübergänge eines Moore-Automaten, wobei ((q, aa, b), (q, a, bb)) Î gdw. d(q,a) = q und l(q ) = b * Menge der möglichen Läufe Zur Eingabe a =a a a a n erzeugt ein Moore-Automat die Ausgabe b b b b n, falls eine Folge von Situationsübergängen (q, a a a a n,e) (q, a a a n, b ) (q, a a n, b b ) (q, e, b b b b n ) existiert. Akzeptierte Sprache eines Moore-Automaten A L(A) = {(a,b) ((q,a, e), (z, e, b)) Î * und q ist Startzustand}

59 Beispiel (,,e) (,,) (,,) (,,) (,,) (,,) (,,) (, e,)

60 Mealy-Automat Mealy-Automat (Q,E,A,l,d,q) Q endliche Menge von Zuständen E Eingabealphabet A Ausgabealphabet d : Q E Q ist die Zustandsübergangsfunktion l: Q E A ist die Ausgabefunktion q ist der Startzustand Beispiel (Zähler): / / / / / / / /

61 Verhalten Mealy-Automat Eine Situation (q, a, b) besteht aus Zustand z Î Q Eingabe a Î E * Ausgabe b Î A * Die Relation Í (Q E* A*) (Q E* A*) ist die Menge aller möglichen Situationsübergänge eines Mealy-Automaten, wobei ((q, aa, b), (q, a, bb)) Î gdw. d(q,a) = q und l(q,a) = b * Menge der möglichen Situationsübergänge Zur Eingabe a =a a a a n erzeugt ein Moore-Automat die Ausgabe b b b b n, falls eine Folge von Situationsübergängen (q, a a a a n,e) (q, a a a n, b ) (q, a a n, b b ) (q, e, b b b b n ) existiert. Akzeptierte Sprache eines Mealy-Automaten A L(A) = {(a,b) ((q,a, e), (q, e, b)) Î * }

62 Beispiel / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / (,,e) (,,) (,,) (,,) / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / (,,) (,,) (,,) (, e,)

63 Moore- und Mealy-Automat Ein Moore-Automat A und ein Mealy-Automat B sind äquivalent, gdw. L(A) = L(B) Jeder Moore-Automat kann in einen äquivalenten Mealy-Automat transformiert werden. Jeder Mealy-Automat kann in einen äquivalenten Moore-Automaten transformiert werden.

64 library IEEE; use IEEE.STD_LOGIC_64.ALL; VHDL-Beschreibung Moore- entity moorecounter is Port ( direction : in STD_LOGIC; clk : in STD_LOGIC; rst : in STD_LOGIC; result : out STD_LOGIC_VECTOR( downto ) ); end moorecounter; architecture Behavioral of moorecounter is signal state : STD_LOGIC_VECTOR( downto ); begin process(clk, rst) begin if rst='' then state <= ""; elsif clk = '' and clk'event then case direction & state is when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when others => state <= ""; end case; end if; end process; Automat result <= state; -- oder explizite Definition eines -- komb. Prozesses der sensitiv auf state ist end Behavioral;

65 library IEEE; use IEEE.STD_LOGIC_64.ALL; VHDL-Beschreibung Mealy- entity mealycounter is Port ( direction : in STD_LOGIC; clk : in STD_LOGIC; rst : in STD_LOGIC; result : out STD_LOGIC_VECTOR( downto ) ); end mealycounter; Automat architecture Behavioral of mealycounter is signal state : STD_LOGIC_VECTOR( downto ); begin process(clk, rst) begin if rst='' then state <= ""; elsif clk = '' and clk'event then case direction & state is when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when "" => state <= ""; when others => state <= ""; end case; end if; end process; process(direction, state) begin case direction & state is when "" => result <= ""; when "" => result <= ""; when "" => result <= ""; when "" => result <= ""; when "" => result <= ""; when "" => result <= ""; when "" => result <= ""; when others => result <= ""; end case; end process; end Behavioral;

Hardware/Software Co-Design

Hardware/Software Co-Design Hardware/Software Co-Design Kapitel 2: Logiksynthese und VHDL-Einführung Mario Schölzel Überblick VHDL = VHSIC Hardware Description Language VHSIC = Very-High Speed Integrated Circuits Entwickelt Anfang

Mehr

Prozessorarchitektur. Kapitel 2: Einführung in VHDL. M. Schölzel

Prozessorarchitektur. Kapitel 2: Einführung in VHDL. M. Schölzel Prozessorarchitektur Kapitel 2: Einführung in VHDL M. Schölzel Inhalt Beschreibung von Bausteinen in VHDL Simulationssemantik Synthesefähige Beschreibungen Kombinatorische Logik Sequentielle Logik Zusammenfassung

Mehr

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

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

Ü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

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

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

Klausur zur Vorlesung

Klausur zur Vorlesung Prof. Dr. Franz J. Rammig Paderborn, 2..2001 C. Böke Klausur zur Vorlesung "Grundlagen der technischen Informatik" und "Grundlagen der Rechnerarchitektur" Sommersemester 2001 1. Teil: GTI Der erste Teil

Mehr

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

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit HaPra 2007 - Versuchsreihe 7 - Registerfile + Programmzähler Versuchsreihe 7 Registerfile + Programmzähler Registerfile Register à Bit Schreiben in Register: - Dateneingang D(31:0) - Adresseingang A_D(4:0)

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

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

16 Latches und Flipflops (Bistabile Kippstufen)

16 Latches und Flipflops (Bistabile Kippstufen) 6 Latches und Flipflops (Bistabile Kippstufen) Latches und Flipflops dienen als Speicherelemente in sequentiellen Schaltungen. Latches werden durch Pegel gesteuert (Zustandssteuerung). Bei der VHDL-Synthese

Mehr

3. Prozesse in VHDL 1

3. Prozesse in VHDL 1 3. Prozesse in VHDL 1 entity VOLLADDIERER is port( A, B, CIN: in std_logic; S, COUT: out std_logic; end VOLLADDIERER; architecture VERHALTEN of VOLLADDIERER is VA: process(a, B, CIN) variable TEMP_IN:

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

Flipflops. asynchron: Q t Q t+t

Flipflops. asynchron: Q t Q t+t Flipflops Ein Flipflop ist ein elementares Schaltwerk, das jeweils einen von zwei Zuständen ( 0 und 1 ) annimmt. Es hat zwei komplementäre Ausgänge ( Q und Q ), die den internen Zustand anzeigen. (Falls

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

Ü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

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

Aufgabe 1: Kombinatorische Schaltungen

Aufgabe 1: Kombinatorische Schaltungen Aufgabe 1: Kombinatorische Schaltungen a) Geben Sie die VHDL-Beschreibung (entity und architecture) einer Schaltung quersumme an, die für einen Bitvektor x der Länge n die Anzahl der 1-Bits von x zurückliefert.

Mehr

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert Hardwarepraktikum Wintersemester 2001/2002 Versuch 4: Sequentielle Systeme 1 - Toralf Zemlin - Swen Steinmann - Sebastian Neubert Aufgabenstellung: 2.1. Untersuchen Sie theoretisch und praktisch die Wirkungsweise

Mehr

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1 7 Zähler Zähler werden in digitalen Systemen sehr vielfältig eingesetzt: Z.B. zum Zählen von Ereignissen, zum Speichern der aktuellen Befehlsadresse eines Mikroprozessors oder zum Zählen von Zuständen

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

Ü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

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

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

Übung 1 RS-FFs mit NOR- oder NAND-Gattern

Übung 1 RS-FFs mit NOR- oder NAND-Gattern Übung 1 RS-FFs mit NOR- oder NAND-Gattern Übungsziel: Aufbau eines RS-Flipflops mit NOR- oder NAND-Gattern Wahrheitstabelle: S (Setzen) R (Rücksetzen) Q m (Aktueller Zustand) Q m+1 (Nächster Zustand) 0

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

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1 Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4 Kapitel 4: Schaltungen mit Delays Seite 1 Schaltungen mit Delays Inhaltsverzeichnis 4.1 Einführung 4.2 Addierwerke

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

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

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

DuE-Tutorien 17 und 18

DuE-Tutorien 17 und 18 DuE-Tutorien 17 und 18 Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery TUTORIENWOCHE 11 AM 27.01.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

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

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine Grundlagen der Informatik 2 Grundlagen der Digitaltechnik 5. Digitale Speicherbausteine Prof. Dr.-Ing. Jürgen Teich Dr.-Ing. Christian Haubelt Lehrstuhl für Hardware-Software Software-Co-Design Grundlagen

Mehr

Grundlagen der Technischen Informatik / Digitaltechnik (GTI/DT)

Grundlagen der Technischen Informatik / Digitaltechnik (GTI/DT) Klausur zur Vorlesung Grundlagen der Technischen Informatik / Digitaltechnik (GTI/DT) Prof. Marco Platzner Fachgebiet Technische Informatik Universität Paderborn 03.04.2009 Die Bearbeitungsdauer beträgt

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

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜ INFOMATIK TECHNICHE UNIVEITÄT MÜNCHEN Lehrstuhl für echnertechnik und echnerorganisation Prof. Dr. Arndt Bode Einführung in die echnerarchitektur Wintersemester 2015/2016 Zentralübung 10 08.01.2016

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

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

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

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

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

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

Grundtypen Flip-Flops

Grundtypen Flip-Flops FLIP-FLOPs, sequentielle Logik Bei den bislang behandelten Logikschaltungen (Schaltnetzen) waren die Ausgangsgrößen X, Y... zu jeder Zeit in eindeutiger Weise durch die Kombination der Eingangsvariablen

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

Auswahlabfragen mit ACCESS

Auswahlabfragen mit ACCESS Auswahlabfragen mit ACCESS Abfragekriterien und Operatoren Beim Entwerfen von ACCESS-Auswahlabfragen (queries) sind definierte Abfragekriterien bzw. Operatoren zu benutzen. Ein Abfragekriterium ist eine

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

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Grundlagen der Programmierung (Vorlesung 14)

Grundlagen der Programmierung (Vorlesung 14) Grundlagen der Programmierung (Vorlesung 14) Ralf Möller, FH-Wedel Vorige Vorlesung Verifikation von Anweisungen und Anweisungsfolgen Schleifen Inhalt dieser Vorlesung Funktionen und Prozeduren Lernziele

Mehr

Schaltungen Jörg Roth 197

Schaltungen Jörg Roth 197 Schaltungen Jörg Roth 197 2.2.2 Flipflops Flipsflops sind einfache rückgekoppelte Schaltungen, die jeweils ein einzelnes Bit speichern können. Es gibt verschiedene Typen, die sich im "Komfort" der Ansteuerung

Mehr

Versuch 3: Sequenzielle Logik

Versuch 3: Sequenzielle Logik Versuch 3: Sequenzielle Logik Versuchsvorbereitung 1. (2 Punkte) Unterschied zwischen Flipflop und Latch: Ein Latch ist transparent für einen bestimmten Zustand des Taktsignals: Jeder Datensignalwechsel

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

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

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

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Technische Informatik Basispraktikum Sommersemester 2001

Technische Informatik Basispraktikum Sommersemester 2001 Technische Informatik Basispraktikum Sommersemester 2001 Protokoll zum Versuchstag 4 Datum: 21.6.2001 Gruppe: David Eißler/ Autor: Verwendete Messgeräte: - digitales Experimentierboard (EB6) - Netzgerät

Mehr

Einführung in VHDL. Dipl.-Ing. Franz Wolf

Einführung in VHDL. Dipl.-Ing. Franz Wolf Einführung in VHDL Literatur Digital Design and Modeling with VHDL and Synthesis Kou-Chuan Chang Wiley-IEEE Computer Society Press ISBN 0818677163 Rechnergestützter Entwurf digitaler Schaltungen Günter

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

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

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

1 Anmerkungen zur Entwicklung von GALs mit LOG/iC

1 Anmerkungen zur Entwicklung von GALs mit LOG/iC 1 Anmerkungen zur Entwicklung von GALs mit LOG/iC 1.1 Generic Array Logic (GAL) - Prinzip Ein GAL (Generic Array Logic) stellt ein (wieder)programmierbares UND- Array mit einem festen ODER Array dar. Zusätzlich

Mehr

Speicherung digitaler Signale

Speicherung digitaler Signale Speicherung digitaler Signale von Fabian K. Grundlagen Flipflops Bisher: Schaltungen ohne Speichermöglichkeit Jetzt: Speichermöglichkeit durch Flipflops Flipflops Grundlagen Flipflops Was sind Flipflops?

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Ergänzen Sie die Werte für y in dem unten angegebenen Ausschnitt der Schaltbelegungstabelle. Falsche Antworten führen zu Punktabzug.

Ergänzen Sie die Werte für y in dem unten angegebenen Ausschnitt der Schaltbelegungstabelle. Falsche Antworten führen zu Punktabzug. Aufgabe 1 Gegeben sei folgende Schaltfunktion: y = a / b / c / d. Ergänzen Sie die Werte für y in dem unten angegebenen Ausschnitt der Schaltbelegungstabelle. Falsche Antworten führen zu Punktabzug. d

Mehr

9 Multiplexer und Code-Umsetzer

9 Multiplexer und Code-Umsetzer 9 9 Multiplexer und Code-Umsetzer In diesem Kapitel werden zwei Standard-Bauelemente, nämlich Multiplexer und Code- Umsetzer, vorgestellt. Diese Bausteine sind für eine Reihe von Anwendungen, wie zum Beispiel

Mehr

Einteilung der Kippschaltungen (Schaltwerke) (=Flipflops)

Einteilung der Kippschaltungen (Schaltwerke) (=Flipflops) 6. Sequentielle Schaltungen: 6.1. Grundsätzliche Aussage zu Flipflop Unterschiede zwischen kombinatorischen und sequentiellen Schaltungen: Kombinatorische Schaltungen: - Ausgänge sind nur vom Zustand der

Mehr

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap. 6 Versuch Nr. 5 6.1 Anmerkungen zum Versuch Nr. 5 In den bisherigen Versuchen haben Sie sich mit kombinatorischen Schaltkreisen beschäftigt, in denen die Ausgänge bisher nicht auf die Eingänge zurückgeführt

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Praktikum Grundlagen der Elektronik

Praktikum Grundlagen der Elektronik Praktikum Grundlagen der Elektronik Versuch EP 7 Digitale Grundschaltungen Institut für Festkörperelektronik Kirchhoff - Bau K1084 Die Versuchsanleitung umfasst 7 Seiten Stand 2006 Versuchsziele: Festigung

Mehr

Endliche Automaten 1 WS 00/01. Steuerautomaten

Endliche Automaten 1 WS 00/01. Steuerautomaten Endliche Automaten 1 WS 00/01 Steuerautomaten Steuerautomaten dienen zur Erzeugung von Steuersignalen. Die erzeugten Steuersignale hängen vom Bearbeitungsstand ("Zustand") der Aufgabe und von Eingangsgrößen

Mehr

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70 Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4

Mehr

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach Rechenschaltungen 1 Marc Reichenbach Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 06/14 1 / 32 Gliederung Schieberegister Multiplexer Barrel-Shifter Zähler Addierer 2 / 32 Schieberegister

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Schaltwerke Schaltwerk

Schaltwerke Schaltwerk Schaltwerke Bisher habe wir uns nur mit Schaltnetzen befasst, also Schaltungen aus Gattern, die die Ausgaben als eine Funktion der Eingaben unmittelbar (durch Schaltvorgänge) berechnen. Diese Schaltnetze

Mehr

BEDIENUNG ABADISCOVER

BEDIENUNG ABADISCOVER BEDIENUNG ABADISCOVER Juni 2005 / EMO v.2005.1 Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen, oder Teilen

Mehr

Das große All-in-All CPLD/FPGA Tutorial

Das große All-in-All CPLD/FPGA Tutorial Das große All-in-All CPLD/FPGA Tutorial Mit diesem Tutorial sollen die ersten Schritte in die Welt der programmierbaren Logik vereinfacht werden. Es werden sowohl die Grundlagen der Logik, die benötigte

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

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Zu DT Übung 11.1 FF oben links. (Lösungsvorschlag)

Zu DT Übung 11.1 FF oben links. (Lösungsvorschlag) Zu DT Übung 11.1 FF oben links RS-FF ungetaktet, dominierender Setzeingang A Kein Takteingang und keine direkt wirkenden Setz- und Rücksetzeingänge. Die Signale T und C haben deshalb hier keine Wirkung.

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Flip Flops allgemein - Digitale Signalspeicher

Flip Flops allgemein - Digitale Signalspeicher INFORMATION: Flip Flops allgemein - Digitale Signalspeicher Jede elektronische Schaltung, die zwei stabile elektrische Zustände hat und durch entsprechende Eingangssignale von einem Zustand in einen anderen

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

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

III. Asynchrone und synchrone Schaltwerke

III. Asynchrone und synchrone Schaltwerke Ein asynchrones Schaltwerk entsteht dadurch, daß an bei eine Schaltnetz SN1 indestens eine Ausgang auf die Eingänge rückkoppelt. Das Verhalten des Schaltwerks ist dait nicht nur von den Eingangsgrößen

Mehr

Hardwarepraktikum WS05/06

Hardwarepraktikum WS05/06 Hardwarepraktikum WS5/6 Sven Eckelmann 2..26 Inhaltsverzeichnis Versuch Komb. NANDNANDRealisierung.......................2 NORNORRealisierung.........................3 Schaltung................................

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

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

<ruske.s@web.de> Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

<ruske.s@web.de> Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L Elektronische Grundlagen Versuch E7, Grundelemente der Digitaltechnik Praktikumsgruppe IngIF, 04. Juni 2003 Stefan Schumacher Sandra Ruske Oliver Liebold

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

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

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

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