Gliederung dieser Einführung in VHDL

Größe: px
Ab Seite anzeigen:

Download "Gliederung dieser Einführung in VHDL"

Transkript

1 Gliederung dieser Einführung in VHDL 1) Formaler Aufbau von VHDL-Modellen 2) Testumgebungen VHDL-Modelle, die Eingangssignale zum Testen eines Modells bereitstellen 3) Zeitmodelle in VHDL Nachbildung des Zeitverhaltens der modellierten Hardware 4) Modellierung von Zustandsautomaten in VHDL Systematische Beschreibung digitaler Systeme 1

2 Zeitmodelle in VHDL Zeitmodelle in VHDL 2

3 Signal-Zuweisungen Signal-Zuweisungen stellen neue Werte für Signale bereit: SUM <= A + B; Diese Zuweisung beschreibt die Funktion eines Addierers. Der Ausdruck auf der rechten Seite wird ausgewertet, sein Datentyp muss dem des Signals SUM entsprechen. Der Output eines Hardware-Bausteins ändert sich nicht unmittelbar, wenn sich ein Einganssignal ändert, sein Modell muss also eine Verzögerung (ein Delay) enthalten: CARRY <= A and B after 7 ns; Kapazitäten und Induktivitäten bewirken in einer Analog-Schaltung Einschwingvorgänge, die im digitalen Modell abstrahierend in einem konzentrierten Delay zusammengefasst werden. 3

4 Waveforms & Delay-Mechanismen Eine Waveform beschreibt eine zeitlich aufsteigende Folge von Werten (alle Zeiten beziehen sich auf die aktuelle Simulationszeit): CLK <= '1' after PulsWeite, '0' after 2*PulsWeite; Zusätzlich kann ein Delay-Mechanismus angegeben werden; voreingestellt ist der inertial-mechanismus. SUM <= transport A + B after 12 ns; 4

5 Aktivierung und Deaktivierung von Prozessen Es gibt formal zwei (gleichwertige) Arten Prozesse zu beschreiben: Prozesse ohne sensitivity list (mit wait-anweisungen): Anweisungen im process body werden sequentiell ausgeführt. Nach der letzten Anweisung wird wieder mit der ersten fortgefahren ohne Fortschaltung der Simulationszeit. Eine wait-anweisung deaktiviert einen process. Damit keine Endlosschleifen entstehen, muß mindestens eine wait-anweisung vorhanden sein. Prozesse mit sensitivity list (ohne wait-anweisungen): Die sensitivity list ist eine Liste von Signalnamen. Der process wird aktiviert, wenn sich eines dieser Signale ändert. Der process verhält sich so, als ob vor der end-process- Anweisung eine wait-on-signal-anweisung stünde. Der process darf keine wait-anweisungen enthalten. 5

6 Wait-Anweisungen Durch wait-anweisungen werden Prozesse suspendiert. Es gibt vier Varianten: wait on CLK_SIGNAL, ENABLE; sensitivity clause Der Prozess wird wieder aufgenommen, wenn bei einem der genannten Signale eine Wertänderung (ein Event) auftritt. wait until CLOCK='1'; condition clause Der Prozess wird wieder aufgenommen, sobald der Boolesche Ausdruck wahr wird. wait for 1 ms; time-out clause wait for 2*TaktPeriode; Der Prozess wird nach Ablauf der angegebenen Simulationszeit wieder aufgenommen. wait; Der Prozess wird genau einmal während der Initialisierung durchgeführt und bleibt dann deaktiviert. 6

7 Beispiel: Clock-Generator (1) signal CLK: bit:='0'; constant PulsWeite: time:=20 ns; -- physical type ClockGen1: process(clk) if CLK='0' then CLK <= '1' after PulsWeite, '0' after 2*PulsWeite; -- waveform end if; end process ClockGen1; 1 0 Aktivierung ns

8 Beispiel: Clock-Generator (2) signal CLK: bit:='0'; constant PulsWeite:time:=20 ns; -- physical type ClockGen2a: process CLK <= '1' after PulsWeite, '0' after 2*PulsWeite; wait until CLK='0'; -- d.h. warten bis sich -- CLK auf '0' ändert end process ClockGen2a; ClockGen2b: process CLK <= '1' after PulsWeite, '0' after 2*PulsWeite; wait for 2*PulsWeite; -- d.h. warten für -- diese Zeitspanne end process ClockGen2b; 8

9 Beispiel: Clock-Generator (3) signal CLK: bit:='0'; constant PulsWeite:time:=20 ns; -- physical type ClockGen3: process CLK <= '0'; wait for PulsWeite; CLK <= '1'; wait for PulsWeite; end process ClockGen3; ns 9

10 Beispiel: 2fach-Multiplexer (1) entity MUX2 is port(a, B, SEL: in bit; Z: out bit); end MUX2; SEL architecture behavior_1 of MUX2 is constant prop_delay: time := 2 ns; MUX2_V1: process(a, B, SEL) -- Änderungen von A, B und SEL können zu -- Wertänderungen am Ausgang Z führen! case SEL is when '0' => Z <= A after prop_delay; when '1' => Z <= B after prop_delay; end case; end process MUX2_V1; end behavior_1; A B 0 1 Z 10

11 Beispiel: 2fach-Multiplexer (2) architecture behavior_2 of MUX2 is constant prop_delay: time := 2 ns; MUX2_V2: process case SEL is when '0' => Z <= A after prop_delay; wait on SEL, A; -- Der Prozess wartet also nicht auf B, -- wenn A selektiert ist! when '1' => Z <= B after prop_delay; wait on SEL, B; -- Der Prozess wartet also nicht auf A end case; end process MUX2_V2; end behavior_2; A B 0 1 SEL Z 11

12 Beispiel: 2-Input-Multiplexer (3) entity MUX2 is port(a, B, SEL: in bit; Z: out bit); end MUX2; A B 0 1 SEL Z architecture behavior_3 of MUX2 is constant prop_delay: time := 2 ns; Z <= A after prop_delay when SEL='0' else B after prop_delay; end behavior_3; 12

13 Datenfluß-Modell des 2x4-Dekoders entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATENFLUSS of DEK2X4 is signal AQ, BQ: bit; -- 6 nebenläufige Signal-Zuweisungen -- Reihenfolge der Anweisungen ist ohne Bedeutung D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATENFLUSS; 13

14 Datenfluß-Modell des 2x4-Dekoders entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATENFLUSS of DEK2X4 is signal AQ, BQ: bit; -- 6 nebenläufige Signal-Zuweisungen -- Wertänderung (Event) am Eingang B angenommen D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATENFLUSS; 14

15 Datenfluß-Modell des 2x4-Dekoders entity DEK2X4 is port (A, B, EN: in bit; D: out bit_vector(0 to 3)); end DEK2X4; architecture DATENFLUSS of DEK2X4 is signal AQ, BQ: bit; -- 6 nebenläufige Signal-Zuweisungen -- Events an den Signalen D(3), BQ, D(1) D(3) <= not(a and B and EN); -- (1) D(0) <= not(aq and BQ and EN); -- (2) BQ <= not B; -- (3) D(2) <= not(a and BQ and EN); -- (4) AQ <= not A; -- (5) D(1) <= not(aq and B and EN); -- (6) end DATENFLUSS; 15

16 Simulationsablauf beim 2x4-Dekoder Zeitpunkt Events Aktionen T Eingang B Triggern der Anweisungen (1), (3) und (6), Auswerten deren rechter Seiten, Einplanen der Wertzuweisungen an die Signale D(3), BQ, D(1) T 1 >T D(3),BQ,D(1) Wertzuweisung an die Signale D(3), BQ, D(1), Triggern der Anweisungen (2) und (4), Auswerten deren rechter Seiten, Einplanen der Wertzuweisungen an die Signale D(0), D(2) T 2 >T 1 D(0), D(2) Wertzuweisung an D(0), D(2) 16

17 Schaltungsanalyse: Simulation & Verifikation Schaltungsentwürfe müssen geprüft (validiert) werden, um möglichst alle Entwurfsfehler zu beseitigen, bevor mit der teuren Produktion der Schaltung begonnen wird. Schaltungssimulation bedeutet, daß für einen Satz von Eingangssignalen (Stimuli) über ein Zeitintervall bestimmte Schaltungseigenschaften bestimmt werden und mit den erwarteten Werten verglichen werden. Schaltungsverifikation ist eine formale Methode, um zwei Schaltungsmodelle auf ihre Konsistenz (Funktionsgleichheit) zu untersuchen oder sie bezüglich bestimmter Eigenschaften (z.b. Verklemmungen) zu überprüfen. 17

18 Ereignisgesteuerte Simulation Damit auch sehr große Schaltungen simuliert werden können, müssen Simulatoren sehr effizient arbeiten. Für digitale Schaltungen wird dies durch ereignisgesteuerte Simulation (event-driven simulation) erreicht. Sie beruht darauf, daß (im Gegensatz zur analogen Simulation) eine Schaltungskomponente nur dann ausgewertet wird, wenn eine Signalwertänderung an einem (oder auch mehreren) ihrer Eingänge auftritt. Wie wird nun ein VHDL-Programm interpretiert, so daß die Ergebnisse der Simulation möglichst genau mit den Signalverläufen des Hardware-Bausteins übereinstimmen? 18

19 Transaktionen & Events Der Begriff Simulationszeit bezieht sich auf die Zeit, mit welcher der modellierte Hardware-Baustein arbeitet. Bei der Simulation wird diese Zeit in Form von Zeitwerten mitgeführt. Diese unterscheidet sich von der Ausführungszeit des VHDL- Modells auf dem Simulationsrechner. Durch eine Signalzuweisung wird eine Transaktion zur späteren Ausführung eingeplant (scheduled transaction). Eine Transaktion ist ein Wertepaar (Neuer_Signalwert, Simulationszeit). Wenn zur Simulationszeit der Transaktion der neue Signalwert vom bisherigen verschieden ist, spricht man vom Auftreten eines Events (Wertänderung). Prozesse reagieren auf Events, nicht auf Transaktionen! 19

20 Signal-Treiber Ein Treiber (driver) ist eine Datenquelle für ein Signal, die Werte für zukünftige Zuweisungen bereithält. Ein Prozess definiert einen Treiber für einen Signalnamen genau dann, wenn er mindestens eine Zuweisung für das Signal enthält. Der Treiber eines Signals ist eine zeitlich aufsteigend geordnete Liste aller für dieses Signal eingeplanten Transaktionen, d.h. von Wertepaaren (Signalwert, Simulationszeit) = (W i,t i ). Jeder Treiber enthält zumindest einen Eintrag, den aktuellen Signalwert (W 0,T 0 ), anfangs den initialisierten Wert. (W 0,T 0 ), (W 1,T 1 ), (W 2,T 2 ), (W 3,T 3 ),... W 1 W 2 W 3 T 1 T 2 T 3 Grundsätzlich ist pro Signal nur ein Treiber erlaubt. Bei mehreren Treibern (z.b. Busse, Wired-OR) muß eine resolution function angegeben werden, die den resultierenden Signalwert definiert. 20

21 Simulationszyklus (1) Ereignisgesteuerte Simulation (event-driven simulation) beruht darauf, daß eine Schaltungskomponente nur dann ausgewertet wird, wenn eine Signalwertänderung an einem (oder auch mehreren) ihrer Eingänge auftritt. Dies wird mit einem Simulationszyklus realisiert: Initialisierungsphase Allen Variablen und Signalen wird ihr Initialwert zugewiesen. Die Simulationszeit wird auf 0 fs gesetzt. Alle Prozesse werden aktiviert, ihre Anweisungen ausgeführt und bei einer wait-anweisung wieder suspendiert. Es folgt Signal-Update-Phase Prozessausführungsphase 21

22 Simulationszyklus (2) Initialisierungsphase Signal-Update-Phase - Fortschalten der Simulationszeit zur nächsten Transaktion (oder zum nächsten Prozess- Timeout) - Ausführen aller für den aktuellen Zeitpunkt vorliegenden Transaktionen. Prozessausführungsphase - Prozesse, für die Signalwertänderungen (Events) vorliegen, werden wieder aufgenommen. Mögliche Folge: Neue Transaktionen zum gleichen oder einem späteren Zeitpunkt 22

23 Simulation einer Signalzuweisung Die Anweisung DATA <= X"00" after DELAY; werde zur Simulationszeit T ausgeführt. Für das Signal DATA wird eine Transaktion des hexadezimalen Wertes X"00" zur Simulationszeit T+DELAY eingeplant. Der Wert des Signals DATA wird jedoch zum Zeitpunkt T noch nicht geändert. Alle aktiven Prozesse werden fortgeführt. Erst wenn alle Prozesse suspendiert sind, wird der nächste Simulationszyklus gestartet und die Simulationszeit fortgeschaltet. Wenn die Simulationszeit T+DELAY erreicht ist, wird dem Signal DATA der eingeplante Wert X"00" zugewiesen und alle auf DATA sensitiven Prozesse gestartet. 23

24 Delta-Verzögerungen Signalverzögerungszeiten können in einer Signalzuweisung optional angegeben werden. Falls eine Verzögerungszeit nicht explizit angegeben ist, werden 0 fs angenommen. Da bei der Ausführung einer Zuweisung zunächst nur eine Transaktion für das Signal eingeplant wird, also auch bei einer Verzögerung von 0 fs keine sofortige Änderung des Signalwerts erfolgt, sieht der Prozess eine Wertänderung erst bei seiner nächsten Ausführung (dem nächsten Simulationszyklus). Auch bei einer Verzögerung von 0 fs wird ein neuer Simulationszyklus durchlaufen, die Simulationszeit bleibt aber gleich; man spricht von einer Delta-Verzögerung (infinitesimal kleiner Zeitschritt, delta delay). Das Konzept der Delta-Verzögerungen stellt die Kausalität der Anweisungen sicher, so dass bereits eine Simulation möglich ist, wenn noch keine Verzögerungszeiten bekannt sind. 24

25 Beispiel: Erzeugen (flankengesteuerter) FlipFlops library ieee; use ieee.std_logic_1164; entity ANDOR is port (A,B,C: in std_ulogic; CLK: in std_ulogic; Z: out std_ulogic); end ANDOR; A B & AND D Q architecture AAO1 of ANDOR is signal P: std_ulogic; AOprocess: process (CLK) if rising_edge(clk) then P <= A and B; Z <= P or C; end if; end process; end AAO1; P ANDOR C Qq 1 OR D Q CLK Qq Z 25

26 Beispiel: Erzeugen (flankengesteuerter) FlipFlops library ieee; use ieee.std_logic_1164; entity ANDOR is port (A,B,C: in std_ulogic; CLK: in std_ulogic; Z: out std_ulogic); end ANDOR; A B & AND architecture AAO2 of ANDOR is AOprocess: process (CLK) variable P: std_ulogic; if rising_edge(clk) then P := A and B; Z <= P or C; end if; end process; end AAO2; P ANDOR C 1 OR D Q CLK Qq Z 26

27 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; A B C 0 ns 27

28 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns A 0 B 0 C 0 28

29 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) - Nicht aktiviert! variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns 0 ns + A 0 0 B 0 0 C

30 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns A B C

31 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) - Nicht aktiviert! variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + A B C

32 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + 7 ns A B C

33 Simulationszyklus Beispiel architecture TestArch of TestEntity is signal A, B: integer := 0; A <= 1 after 3 ns, 2 after 7 ns; TestProcess: process(a) variable C: integer := -1; B <= A; -- Signalzuweisung (eingeplant!) C := B; -- Variablenzuweisung (sofort!) end process TestProcess; end TestArch; 0 ns 0 ns + 3 ns 3 ns + 7 ns 7 ns + A B C

34 Wie wirkt das Transport-Delay auf Treiber? Modellierung der Signallaufzeit eines idealen Bauelements mit unbegrenzter Bandbreite, kürzeste Impulse werden übertragen. Signaltreiber: (W 0,T 0 ), (W 1,T 1 ), (W 2,T 2 ),..., (W i,t i ),..., (W k,t k ) Regel für das Einfügen einer neuen Transaktion (W n,t n ): Alle Transaktionen (W i,t i ) mit T n T i werden gelöscht. Die neue Transaktion (W n,t n ) wird am Ende der Liste angefügt. Einfluß hat nur die Verzögerung, nicht der Signalwert. 34

35 Beispiel: Ideale Leitung signal LineIn, LineOut: bit := '0'; LineIn <= '1' after 20 ps, '0' after 50 ps; TransmissionLine: process(linein) LineOut <= transport LineIn after 50 ps; end process TransmissionLine; LineIn LineOut ps Treiber für LineOut '1' 70 '1' 70 '0' 100 '1' 70 '0' 100 '0'

36 Beispiel: Unsymmetrische Verzögerung signal A, Z: bit := '0'; A <= '1' after 20 ps, '0' after 40 ps; AsymDelay: process(a) if A='1' then Z <= transport A after 80 ps; else - A='0' Z <= transport A after 50 ps; end if; end process AsymDelay; A Z ps ps Treiber für Z '1' 100 '0' 90 '1' 100 Kein Event! 36

37 Wie wirkt das Inertial Delay auf Treiber? Modellierung realer, d.h. speichernder (träger, englisch inertial) Bauelemente mit endlicher Übertragungsbandbreite. Inertial Delay ist die Voreinstellung. Signaltreiber: (W 0,T 0 ), (W 1,T 1 ), (W 2,T 2 ),..., (W i,t i ),..., (W k,t k ) Regel für das Einfügen einer neuen Transaktion (W n,t n ): Alle Transaktionen (W i,t i ) mit T n T i werden gelöscht. Die neue Transaktion (W n,t n ) wird am Ende der Liste angefügt. Im Intervall T 0 T i T n gilt: Eine ununterbrochene Folge von Transaktionen (W i,t i ),..., (W n,t n ) mit W i = W n bleibt erhalten, alle anderen Transaktionen werden gelöscht. Verzögerung und Signalwert beeinflussen das Verhalten. 37

38 Beispiel: Inverter mit Verzögerung signal A: bit := '0'; signal Y: bit := '1'; A <= '1' after 1 ns, '0' after 6 ns, '1' after 8 ns; INV: process(a) Y <= not A after 3 ns; -- inertial voreingestellt end process INV; A ns ns 38

39 Beispiel: Inverter mit Verzögerung signal A: bit := '0'; signal Y: bit := '1'; A <= '1' after 1 ns, '0' after 6 ns, '1' after 8 ns; INV: process(a) Y <= not A after 3 ns; -- inertial voreingestellt end process INV; A Y ns ns Treiber für Y '0' 4 '0' 4 '1' 9 '1' 9 '0' 11 Kein Event! '0' 11 39

40 Beispiel: 2-Input-UND-Gatter library IEEE; use IEEE.std_logic_1164.all; entity And2 is port(a, B: in std_logic; Y: out std_logic); end And2; architecture And2_with_delay of And2 is signal AndOut: std_logic; And2_gate: process(a, B) - idealisiertes UND-Gatter AndOut <= A and B; end process And2_gate; And2_delay: process(andout) - inertial delay ist voreingestellt if AndOut='1' then Y <= '1' after 1.5 ns; elseif AndOut='0' then Y <= '0' after 1.2 ns; delay else Y <= 'X' after 0.5 ns; end if; end process And2_delay; end And2_with_delay; 40

41 Beispiel: 2-Input-UND-Gatter Signalverläufe A B ns 41

42 Beispiel: 2-Input-UND-Gatter Signalverläufe A 1 0 B 1 0 AndOut 1 0 uninit. 1 ns 1 ns Y 1 0 uninitialized ns '0' 2,2 '0' 2,2 '1' 7,5 '1' 7,5 Treiber für Y '1' 3,5 '1' 3,5 '0' 4,2 '0' 4,2 42

43 Zustandsautomaten Zustandsautomaten 43

44 (Endliche) Zustandsautomaten Englisch "finite state machine" oder abgekürzt FSM Systematische Grundlage für die Beschreibung und den Entwurf digitaler Systeme Erleichtern die Realisierung zyklischer Funktionsabläufe Steuern von Logikschaltungen Synchronisation mehrerer Teilsysteme Zustandsautomaten sind synchrone Schaltwerke, d.h. alle Funktionen sind an ein periodisches Taktsignal gebunden Zustandsautomaten sind sequentiell arbeitende Logikschaltungen, die gesteuert durch ein periodisches Taktsignal eine Folge von Zuständen durchlaufen. Grundstrukturen, Automatentypen, Automatenvarianten Moore-Automat Mealy-Automat 44

45 Zustandsautomaten (Moore-Typ) Die Ausgangssignale des Moore-Automaten sind nur eine Funktion des aktuellen Automatenzustands, nicht der Eingangssignale. E Eingangssignale A Ausgangssignale Z Automatenzustände Z + Folgezustände Übergangsschaltnetz Zustands- Ausgangsschaltnetz A E Z + speicher Z enable clock reset 45

46 Zustandsautomaten (Mealy-Typ) Die Ausgangssignale des Mealy-Automaten sind eine Funktion des aktuellen Automatenzustands und der Eingangssignale. E Eingangssignale A Ausgangssignale Z Automatenzustände Z + Folgezustände Übergangsschaltnetz Zustands- E Z + speicher Z Ausgangs- A schaltnetz enable clock reset 46

47 Zustandsautomaten (Eigenschaften) Synchrones Schaltwerk mit drei Funktionsblöcken: Zustandsspeicher N synchron getaktete Flipflops 2 N Zustände können binär codiert werden Jede (positive) Flanke des clock-signals bewirkt, daß die Folgezustände Z + als aktuelle Zustände Z für eine Taktperiode gespeichert werden Das enable-signal gibt das Fortschalten von einem Zustand zum nächsten frei Das reset-signal dient der Initialisierung des Zustandsspeichers mit einem vorgegebenen Bitmuster Übergangsschaltnetz Kombinatorische Logik Ausgangsschaltnetz Kombinatorische Logik 47

48 FSM-Beispiel Impulsfolgeerkennung (1a) Erkennen dreier aufeinander folgender 2-Bit-Muster (01, 11, 10) an den zwei Eingängen Erfolgreiche Erkennung mit dem Ausgangssignal 1 anzeigen Der 1-Pegel des Ausgangssignals soll eine Taktperiode anliegen Zustandsdiagramm (Moore): Reset X0 11 Z0 0 X0 01 Z X0 11 Z Z2 0 48

49 FSM-Beispiel Impulsfolgeerkennung (1b) entity FSM_Moore is port(clock, Reset, Enable: in bit; E: in bit_vector(1 downto 0); A: out bit); end FSM_Moore; architecture Sequenz of FSM_Moore is type Zustaende is (Z0, Z1, Z2, Z3); -- Aufzaehlungstyp signal Zustand, Fz: Zustaende; Zsp: process(clock, Reset) if Reset='1' then Zustand <= Z0 after 20 ns; elseif Clock='1' and Clock'event then if Enable='1' then Zustand <= Fz after 20 ns; end if; end if; end process Zsp;... 49

50 FSM-Beispiel Impulsfolgeerkennung (1c) UeSn: process(e, Zustand) case Zustand is when Z0 => if E="01" then Fz <= Z1 after 20 ns; else Fz <= Z0 after 20 ns; end if; when Z1 => if E="11" then Fz <= Z2 after 20 ns; elseif E="01" then Fz <= Z1 after 20 ns; else Fz <= Z0 after 20 ns; end if; when Z2 => if E="10" then Fz <= Z3 after 20 ns; elseif E="01" then Fz <= Z1 after 20 ns; else Fz <= Z0 after 20 ns; end if; when Z3 => if E="01" then Fz <= Z1 after 20 ns; else Fz <= Z0 after 20 ns; end case; end process UeSn; end if; 50

51 FSM-Beispiel Impulsfolgeerkennung (1d)... AusSn: process(zustand) case Zustand is when Z3 => A <= '1' after 20 ns; when others => A <= '0' after 20 ns; end case; end process AusSn; end Sequenz; 51

52 FSM-Beispiel Impulsfolgeerkennung (2a) Erkennen dreier aufeinander folgender 2-Bit-Muster (01, 11, 10) an den zwei Eingängen Anzeigen mit dem Ausgangssignal 1 Der 1-Pegel des Ausgangssignals soll eine Taktperiode anliegen Zustandsdiagramm (Mealy): Reset X0/0 11/0 Z0 X0/0 01/0 01/0 Z1 00/0 11/0 10/1 01/0 11/0 Z2 52

53 FSM-Beispiel Impulsfolgeerkennung (2b) entity FSM_Mealy is port(clock, Reset, Enable: in bit; E: in bit_vector(1 downto 0); A: out bit); end FSM_Mealy; architecture Sequenz of FSM_Mealy is type Zustaende is (Z0, Z1, Z2); -- Aufzaehlungstyp signal Zustand, Fz: Zustaende; Zsp: process(clock, Reset) if Reset='1' then Zustand <= Z0 after 20 ns; elseif Clock='1' and Clock'event then if Enable='1' then Zustand <= Fz after 20 ns; end if; end if; end process Zsp;

54 FSM-Beispiel Impulsfolgeerkennung (2c) UeSn: process(e, Zustand) Fz <= Z0 after 20 ns; case Zustand is when Z0 => if E="01" then Fz <= Z1 after 20 ns; end if; when Z1 => if E="11" then Fz <= Z2 after 20 ns; elseif E="01" then Fz <= Z1 after 20 ns; end if; when Z2 => if E="01" then Fz <= Z1 after 20 ns; end if; end case; end process UeSn; AusSn: process(e, Zustand) A <= '0' after 20 ns; if (Zustand=Z2 and E="10") then A <= '1' after 20 ns; end if; end process AusSn; end Sequenz; 54

1 Entwurf und Verhalten einfacher, synchroner Automaten

1 Entwurf und Verhalten einfacher, synchroner Automaten 1 Entwurf und Verhalten einfacher, synchroner Automaten 1.1 Vergleich der Automatenstrukturen Mealy-Automat Rückkopplung des aktuellen Zustands Mealy-FSM I Externe Eingänge Übergangsschaltnetz Z + Zustands-

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

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

Entwurfsverfahren digitaler Schaltungen

Entwurfsverfahren digitaler Schaltungen Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Entwurfsautomatisierung Univ.-Prof. Dr.-Ing. Ulf Schlichtmann Entwurfsverfahren digitaler Schaltungen II. Logiksimulation II. Logiksimulation

Mehr

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch Laborübung 2 Teil 1: Latches, Flipflops, Counter A 1 Abbildung 1 zeigt den Schaltkreis eines gated D-Latches. In Listing 1 wird exemplarisch ein Stück VHDL-Code vorgestellt, der den abgebildeten Schaltkreis

Mehr

Laborübung 4. Zustandsautomaten (Finite State Machines)

Laborübung 4. Zustandsautomaten (Finite State Machines) Laborübung 4 Zustandsautomaten (Finite State Machines) Für den Entwurf und die Beschreibung von digitalen Systemen bilden Zustandsautomaten (Finite State Maschines; FSMs) eine wesentliche Grundlage. Mit

Mehr

15 Einführung in den Entwurf von Zustandsautomaten

15 Einführung in den Entwurf von Zustandsautomaten 15 Einführung in den Entwurf von Zustandsautomaten Die Ausgänge kombinatorischer Logik sind ausschließlich vom aktuellen Wert der Eingangssignale abhängig. MUX, Decoder, Code-Umsetzer und Addierer können

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

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

VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 VHDL Simulation Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 VHDL Simulation 1/20 2011-05-18 Motivation Der Simulationsalgorithmus

Mehr

GTI Bonus VHDL - EXTRA

GTI Bonus VHDL - EXTRA 1 GTI Bonus VHDL - EXTRA 2 Beschreibung Gegeben seien die Moore- (Abbildung 1) und Mealy-Automaten (Abbildung 2) der Armbanduhr aus Übungsblatt 11. 3 Beschreibung Gegeben seien die Moore- (Abbildung 1)

Mehr

Laborübung 3. Latches, Flipflops, Counter

Laborübung 3. Latches, Flipflops, Counter Laborübung 3 Latches, Flipflops, Counter Teil 1 Abbildung 1 zeigt den Schaltkreis eines gated D-Latches. In Listing 1 wird exemplarisch ein Stück VHDL-Code vorgestellt, der den abgebildeten Schaltkreis

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

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

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

Sequentielle Schaltungen 37 SS 96. Steuerpfad

Sequentielle Schaltungen 37 SS 96. Steuerpfad Sequentielle Schaltungen 37 SS 96 Steuerpfad Der Steuerpfad dient zur Erzeugung von Steuersignalen. Die erzeugten Steuersignale hängen vom Bearbeitungsstand ("Zustand") der Aufgabe und von Eingangsgrößen

Mehr

Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA. State Machines. Marc Reichenbach und Michael Schmidt

Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA. State Machines. Marc Reichenbach und Michael Schmidt State Machines Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/11 1 / 34 Gliederung Endliche Automaten Automaten Synthese FSM Beschreibung in VHDL

Mehr

5.2 Endliche Automaten

5.2 Endliche Automaten 5.2 Endliche Automaten 129 5.1.6 Kippstufen Flip-Flops werden auch als bistabile Kippstufen bezeichnet. Bistabil meint, dass beide Kippwerte, also 0 und 1 stabil sind. Diese Bezeichnung legt nahe, dass

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

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11 ERA-Zentralübung 11 Maximilian Bandle LRR TU München 20.1.2017 Einschränkungen bei std logic vector architecture stdlogic of irgendwas signal test: std_logic_vector( 3 downto 0) := 9; -- Nicht ok -- Richtig

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

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt 8 Schieberegister In Schieberegistern wird die Eingangsinformation am Schiebeeingang SE in einer Kette von Flipflops bei jeder Taktflanke eingelesen und weiter geschoben. Sie erscheint schließlich nach

Mehr

2 Von der Aufgabenbeschreibung zum Zustandsdiagramm

2 Von der Aufgabenbeschreibung zum Zustandsdiagramm 2 Von der Aufgabenbeschreibung zum Zustandsdiagramm Die erste Hauptaufgabe eines Automatenentwurfs liegt bei der Umsetzung einer textuellen Spezifikation in ein Zustandsdiagramm. Dazu ist zunächst zu prüfen:

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

Ü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

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Aufgabe 1.1: Verilog Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009 a) Wie können Werte an Wire-Variablen zugewiesen

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

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister Prof. Dr.-Ing. Michael Karagounis Dipl.-Ing. Rolf Paulus 1. Motivation Das Ziel dieses Laborversuchs ist es, den Entwurf von taktsensitiven always

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.Vorlesung Rechnerorganisation

5.Vorlesung Rechnerorganisation Mario.Trams@informatik.tu-chemnitz.de, 29. April 2004 1 Inhalt: 5.Vorlesung Rechnerorganisation Wiederholung aus Digitaltechnik: Allgemeiner Überblick über VHDL (Teil 1) Schwerpunkt Modellierungssichtweisen,

Mehr

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011 Klausur (08.04.20) : Technische Grundlagen der Informatik Digitale Systeme WS 200/20 Vorname : Max Name : Mustermann Matrikelnummer : 23456 Klausur-Code : 007 Mobiltelefone sind auszuschalten Wichtige

Mehr

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

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 VHDL Synthese Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 VHDL Synthese 1/36 2009-11-02 Inhalt Begriff Arten Kombinatorische

Mehr

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl Prof. G. Kemnitz, Dr. C. Giesemann Institut für Informatik, Technische Universität Clausthal7. Mai 20151/26 Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl Prof. G. Kemnitz, Dr. C. Giesemann

Mehr

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen Mehdi Khayati Sarkandi Uni Siegen Hardware Description Language (HDL) Werkzeug zum Entwurf komplexer digitaler Schaltungen, zur Simulation des Systemverhaltens, zur Überprüfung auf korrekte Funktionsfähigkeit

Mehr

4 Entwurf eines Prozessorelementes

4 Entwurf eines Prozessorelementes 4 Entwurf eines Prozessorelementes In diesem Kapitel werden die Prinzipien des Entwurfs eines Prozessorelementes vorgestellt: Spezialprozessor, dessen Funktion unabhängig von einem Programm fest verdrahtet

Mehr

Entwurf digitaler Systeme

Entwurf digitaler Systeme Entwurf digitaler Systeme Aufgabe 1 - Dekoder für Segmentanzeige Eine Schaltung soll einen 4-Bit BCD-Code umsetzen zur Ansteuerung einer Anzeige mit 7 Segmenten, wie in der folgenden Abbildung gezeigt.

Mehr

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden. Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 90 min. Name nicht vergessen! Geben Sie alle Blätter ab. Erlaubte Hilfsmittel sind Taschenrechner und Zusammenfassungen. Nicht erlaubt ist

Mehr

Reconfigurable Computing. VHDL Crash Course. Chapter 2

Reconfigurable Computing. VHDL Crash Course. Chapter 2 Reconfigurable Computing VHDL Crash Course Chapter 2 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software Software-Co-Design Reconfigurable Computing VHDL VHDL: Ver high speed integrated circuits

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

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

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg VHDL - Synthese Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 VHDL - Synthese 1/19 2007-10-27 Inhalt Begriff Arten

Mehr

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

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach Basics Marc Reichenbach Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 06/14 1 / 45 Gliederung Kombinatorische Logik Speicher (Latch, DFF, Register) Synthese Signale/Variablen Packages

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

D.6 Versuchsreihe 6: Registersatz und Programmzähler

D.6 Versuchsreihe 6: Registersatz und Programmzähler D.6: Versuchsreihe 6: Registersatz und Programmzähler D D.6 Versuchsreihe 6: Registersatz und Programmzähler Abgabedatum: 04.06.2010 Name: Gruppe: Theorie: Versuch: (vom Tutor abzuzeichnen) (vom Tutor

Mehr

Übung 5: VHDL Zähler

Übung 5: VHDL Zähler Übung 5: VHDL Zähler Aufgabe 1 TL Diagramm Sekunden und Minuten Zähler. (a) Entwerfen Sie ein TL Diagramm für die Sekunden- und Minuten-Zähler des DF77 Projekts. (b) Bestimmen Sie die erwartete Anzahl

Mehr

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

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

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg Basics Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/11 1 / 45 Gliederung Kombinatorische Logik Speicher (Latch, DFF, Register) Synthese Signale/Variablen

Mehr

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

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg Basics Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/11 1 / 45 Gliederung Kombinatorische Logik Speicher (Latch, DFF, Register) Synthese Signale/Variablen

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

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt Rechenschaltungen Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/11 1 / 22 Gliederung Schieberegister Multiplexer Zähler Addierer 2 / 22 Schieberegister

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

Übung 7: VHDL Automaten

Übung 7: VHDL Automaten Übung 7: VHDL Automaten Aufgabe 1 Zustandsdiagramm Erkennen. (a) Analysieren Sie den unteren Code und zeichnen Sie die entsprechenden Zustands- und RTL- Diagramme. (b) Identifizieren Sie den getakteten

Mehr

Vorlesung und Übung. Modellierung, Simulation, Entwurf heterogener Systeme. Dr. Christoph Grimm Professur Technische Informatik

Vorlesung und Übung. Modellierung, Simulation, Entwurf heterogener Systeme. Dr. Christoph Grimm Professur Technische Informatik Vorlesung und Übung Modellierung, Simulation, Entwurf heterogener Systeme - Am Beispiel SystemC Dr. Christoph Grimm Professur Technische Informatik 1 Dr. Ch. Grimm - Modellierung und Simulation heterogener

Mehr

ERA-Zentralübung 12. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 12

ERA-Zentralübung 12. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 12 ERA-Zentralübung 12 Maximilian Bandle LRR TU München 27.1.2017 Schaltungsentwurf IV Rest von letzter Übung Aufgabe 11.1 Standardschaltnetze Aufgabe 10.3.3 Automaten 8 Erzeugung der Ausgabe Zuweisung der

Mehr

EHP Einführung Projekt A

EHP Einführung Projekt A Volker Dörsing EHP Einführung Projekt A email: doersing@uni-jena.de praktische Übung www: http://users.minet.uni-jena.de/~ehp-head Vorbereitung, Durchführung, Kolloquium Infos zur Veranstaltung, Versuchsanleitung

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

Übung Hardwareentwurf

Übung Hardwareentwurf Übung Hardwareentwurf Übung vom. Mai 25 Stefan Reichör HWE- 25- Slides7.tex (7. Mai 25) Überblick Finite Machines Moore FSM Mealy FSM Implementierung von FSMs in VHDL Xilinx Synthesetool Xilinx LUTs Übung

Mehr

FPGA-Entwurf mit VHDL. Serie 3

FPGA-Entwurf mit VHDL. Serie 3 Christian-Albrechts-Universität zu Kiel Institut für Informatik Lehrstuhl für Technische Informatik Prof. Dr. Manfred Schimmler Dipl.-Inf. Lars Wienbrandt FPGA-Entwurf mit VHDL Sommersemester 2011 Serie

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

Ü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

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden.

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden. VU Technische Grundlagen der Informatik Übung 4: Schaltwerke 183.579, 2015W Übungsgruppen: Mo., 23.11. Mi., 25.11.2015 Aufgabe 1: ROM-Erweiterung Ein 256 64 ROM soll aus mehreren 128 16 ROMs (vgl. Abbildung

Mehr

Name: DT2 Klausur 06.05.08. Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Name: DT2 Klausur 06.05.08. Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden. Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 90 min. Name nicht vergessen! Geben Sie alle Blätter ab. Erlaubte Hilfsmittel sind Taschenrechner und Zusammenfassungen. Nicht erlaubt ist

Mehr

Grundlagen der Technischen Informatik. 12. Übung

Grundlagen der Technischen Informatik. 12. Übung Grundlagen der Technischen Informatik 2. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 2. Übungsblatt Themen Aufgabe : Aufgabe 2: Aufgabe 3: Flipflops - Automaten Synchrones Schaltwerk

Mehr

Praktikum Systementwurf mit VHDL HDL Design Lab

Praktikum Systementwurf mit VHDL HDL Design Lab Praktikum Systementwurf mit VHDL HDL Design Lab Inhalt Kryptographie - Aufgaben VHDL - Konzepte Beispiel: 16 bit XOR Kryptographie - Aufgaben Geheimhaltung Integrität Authentifizierung Verbindlichkeit

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 07/08 Tutorübung

Mehr

2. Einführung in VHDL

2. Einführung in VHDL 2. Einführung in VHDL Programm für heute: Motivation für eine Hardwarebeschreibungssprache Aufbau einer VHDL-Beschreibung Signale Zuweisungen Wertebereich Schnittstellen Entity und Architecture Hardwareanalogie

Mehr

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen. VHDL Einführung 1

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen. VHDL Einführung 1 VHDL Einführung 1 Marc Reichenbach und Michael Schmidt Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/12 1 / 44 Gliederung Überblick zu VHDL Vergleich VHDL/Verilog Designflow Aufbau

Mehr

Name: DT2 Klausur

Name: DT2 Klausur Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 60 min. Name nicht vergessen! Geben Sie alle Blätter ab. Erlaubte Hilfsmittel sind Taschenrechner und Zusammenfassungen. Nicht erlaubt ist

Mehr

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik Grundlagen der Technischen Informatik Kapitel 10, VHDL, Teil 2 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design VHDL Syntax und Semantik von VHDL Entwurf einer Verkehrsampelsteuerung

Mehr

VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben

VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben Aufgabe 1 -- Aufgabe 1 -- 8 zu 1 Decoder entity DECODER1X8 is port( S: in bit_vector(2 downto 0); Y: out bit_vector(7 downto 0)); end DECODER1X8;

Mehr

Hardwarepraktikum WS 1997/98. Versuch 5. Sequentielle Systeme II

Hardwarepraktikum WS 1997/98. Versuch 5. Sequentielle Systeme II Hardwarepraktikum WS 1997/98 Versuch 5 Sequentielle Systeme II Jan Horbach, 17518 hris Hübsch, 17543 Lars Jordan, 17560 Seite 1 Aufgabenstellung Entwerfen und realisieren Sie unter Verwendung dreier JK-MS-FF

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

Grundlagen der Technischen Informatik

Grundlagen der Technischen Informatik TECHNISCHE FAKULTÄT Lösungshinweise zur 11. Übung zur Vorlesung Grundlagen der Technischen Informatik Aufgabe 1 (VHDL) ( Punkte) a) Welche Schaltblöcken können asynchron (ohne Takt) betrieben werden? Lösung:

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

Beschreibungsmöglichkeiten in Verilog

Beschreibungsmöglichkeiten in Verilog Fachgebiet Rechnerarchitektur Fachbereich Informatik Prof. Dr. R. Hoffmann 4/2005, 4/2007 Beschreibungsmöglichkeiten in Verilog Inhalt 1 Grundsätzliche Möglichkeiten 1.1 Strukturbeschreibung (Structural

Mehr

Entwurf digitaler Systeme mit VHDL-1076

Entwurf digitaler Systeme mit VHDL-1076 Entwurf digitaler Systeme mit VHDL1076 Vorlesung aus dem Grundstudium für Studierende der Fachrichtung Informatik Diplom Zielsetzung Wie werden digitale Schaltungen entworfen? Erlernen einer Hardwarebeschreibungssprache

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

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

Computergestützter IC- Entwurf

Computergestützter IC- Entwurf FHTW Berlin Fachbereich 1 Technische Informatik, D5TI Computergestützter IC- Entwurf Simulation eines Fahrstuhls Beleg Abgabetermin: 07.02.2003, 366437 1 Inhaltsverzeichnis 1 Einleitung... 3 2 Versuchsdurchführung...

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

1. Beschreibung der Aufgabe

1. Beschreibung der Aufgabe c ^ ` e e l ` e p ` e r i b m c l o w e b f j d b p q ^ i q r k d e l ` e p ` e r i b c o q b ` e k f h r k a t f o q p ` e ^ c q c ^ ` e e l ` e p ` e r i b m c l o w e b f j d b p q ^ i q r k d e l `

Mehr

Entwurf und Simulation einfacher Logikelemente

Entwurf und Simulation einfacher Logikelemente Entwurf und Simulation einfacher Logikelemente Philipp Fischer 10. Dezember 2002 1 Inhaltsverzeichnis I Theoretische Grundlagen 3 Einleitung 3 Entwurf einer Schaltung 3 Entitys und Architectures.........................

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 2009/2010 VHDL Objekte und Typen 1/27 2009-07-31 Inhalt

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

Lösungsvorschlag 2. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 2. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Aufgabe 2.1: Zähler Lösungsvorschlag 2. Übung Technische Grundlagen der Informatik II Sommersemester 2009 a) Beschreiben Sie einen 4-Bit-Zähler in Verilog

Mehr

19 Kombinatorische Standardschaltungen

19 Kombinatorische Standardschaltungen ochschule für Angewandte Wissenschaften amburg FACBEREIC EEKTROTECNIK 9 Kombinatorische Standardschaltungen Was sind kombinatorische Standardschaltungen? Größere und komplexere ogikschaltungen verwenden

Mehr

Logik mit Gedächtnis : Sequentielle Logik

Logik mit Gedächtnis : Sequentielle Logik Logik mit Gedächtnis : Sequentielle Logik Schaltwerke Grundkomponenten zur Informationspeicherung: Flip-Flops Typische Schaltwerke Entwurf eines Schaltwerks Wintersemester 14/15 1 Kombinatorische Logik

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

Hardware Praktikum 2008

Hardware Praktikum 2008 HaPra 2008 - Versuchsreihe 5 - ALU Hardware Praktikum 2008 Prof. Dr. H.-J. Wunderlich Dipl.-Inf. M. Imhof Dipl.-Inf. S. Holst Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 2017/2018 Lösungsvorschlag

Mehr

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14 VHDL Einführung 2 Marc Reichenbach Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14 1 / 37 Gliederung Simulation und Testbench Design-Richtlinien 2 / 37 Simulation und Testbench vor

Mehr

Vorlesung Hardware-Beschreibungssprachen

Vorlesung Hardware-Beschreibungssprachen Vorlesung Hardware-Beschreibungssprachen Dr.-Ing. S. Arlt Fakultät EI Fachbereich Elektronische Schaltungen und Systeme S. Arlt TUI/EI/ESS HBS 0-1 Vorlesung Hardware-Beschreibungssprachen Kapitel 1 : Einführung

Mehr

VHDL. Informationstechnik für Luftund Raumfahrt Aerospace Information Technology. Aerospace Information Technology

VHDL. Informationstechnik für Luftund Raumfahrt Aerospace Information Technology. Aerospace Information Technology VHDL Informationstechnik für Luft- und Raumfahrt Informationstechnik für Luftund Raumfahrt Programmierbare Logic Was würdet Ihr mit einer Tüte mit 100.000.000 NANDS machen? Man Könnte: CPUS Speicher Devices

Mehr

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

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education Paul Molitor und Jörg Ritter VHDL Eine Einführung ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Inhaltsverzeichnis

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

Mögliche Praktikumsaufgaben

Mögliche Praktikumsaufgaben Kapitel 8 Mögliche Praktikumsaufgaben 8.1 System on a Chip : Entwurf eines Sound-Moduls In diesem Praktikum soll ein Sound-Modul (Soundkarte) mit Master-Zugang zum Core Connect PLB-Bus entworfen werden.

Mehr

Praktium Systementwurf mit VHDL HDL Design Lab. Lehrstuhl für Entwurfsautomatisierung Technische Universität München

Praktium Systementwurf mit VHDL HDL Design Lab. Lehrstuhl für Entwurfsautomatisierung Technische Universität München Praktium Systementwurf mit VHDL HDL Design Lab Lehrstuhl für Entwurfsautomatisierung Technische Universität München 1 Das Projekt: Verschlüsselung Entschlüsselung 2 Hardware-Emulation Oszillograph Signalgenerator

Mehr

VHDL. Informationstechnik für Luftund Raumfahrt Aerospace Information Technology. Aerospace Information Technology

VHDL. Informationstechnik für Luftund Raumfahrt Aerospace Information Technology. Aerospace Information Technology VHDL Informationstechnik für Luft- und Raumfahrt Informationstechnik für Luftund Raumfahrt Programmierbare Logic Was würdet Ihr mit einer Tüte mit 100.000.000 NANDS machen? Man Könnte: CPUS Speicher Devices

Mehr

Verilog Hardware Description Language (HDL)

Verilog Hardware Description Language (HDL) Elektrotechnik Intelligent Systems Design Verilog Hardware Description Language (HDL) Einführung Prof. Dr.-Ing. Michael Karagounis Sommersemester 2016 HDL Konzept Was ist eine Hardwarebeschreibungssprache?

Mehr