VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)

Slides:



Advertisements
Ähnliche Präsentationen
Konjunktiv II Wenn ich 18 wäre, könnte ich meinen Führerschein bekommen. wäre = subjunctive sein könnte = subjunctive können.
Advertisements

Abschluss Gegeben Menge F von funktionalen Abhängigkeiten.
P. Marwedel Informatik 12, U. Dortmund
Wann… Lies die folgenden Sätze. Was bedeutet wann?
Informatik 12, TU Dortmund
Peter Marwedel TU Dortmund, Informatik 12
Datentechnik13. Übung THS, 22.November 2006 Testen hochintegrierter Schaltungen Übung 3: SCOAP-Algorithmus (sequentiell) Ralph Weper.
Wenn…… the conditional. Using the conditional tense The conditional tense is used to talk about something that happens only after something else happened.
Moore E A Zustands- speicher (ZS) Übergangs- logik (ÜL) Folgezustand
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Spezielle Anwendungen.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Spezielle Anwendungen.
PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment
Register BIT Martin Evertz.
The future tense..
Asynchrone Schaltungen
Libero: Design Creation / Verification Seminar WS04/05 Andreas Schibilla (ii4900)
Die Hardwarebeschreibungssprache VHDL
Lehrstuhl Technische Informatik - Computer Engineering Brandenburgische Technische Universität Cottbus 1 Hierarchical Test Technology for Systems on a.
Sanjay Patil Standards Architect – SAP AG April 2008
Was machst du nach der Schule?
Basisinformationstechnologie HK-Medien
VHDL-Synthese für Fortgeschrittene
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
You need to use your mouse to see this presentation © Heidi Behrens.
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.3 Speicher Latches (1/4) SR-Latch S Q Q R Q Q
Die Uhrzeit (informell)
School of Engineering ESI-Lektion School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.
VHDL 3: Sequential Statements (Process)
Synthetisierbares VHDL
School of Engineering Themen: Variablen Architecture-Types.
VHDL 7: Automaten 1.
VHDL 8: Automaten 2.
VHDL2_Sprachelemente und Concurrent Statements (Nebenläufige Anweisungen)
School of Engineering DT2 Projekt-3: Baud Rate Generator & GPS Decoder.
Inhalt Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse
School of Engineering DT2 Projekt-2: Baud Rate Generator & GPS Decoder.
Computerorientierte Physik VORLESUNG
Mein Stammbaum.
Can you tell me about your school?
Service-Oriented Architecture Service- Orientation Design Paradigm is primarily distinguishe d by Services is designed to support the implementation of.
Plusquamperfekt The past of the past.
By Martin L. Loeffler.  The basic sentence has a subject and a verb.  The subject and verb need to be together.  The subject and verb need to agree.
1.Woche: Organisation Synthetisierbares VHDL
Linear Rückgekoppelte Schieberegister und Tristate Treiber
FPGA Praktikum WS2000/ Woche: VHDL Tips Ein Schläger für das Spiel.
Die Kunst des Programmierens...
Das Perfekt oder das Präteritum?
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
Institut für Angewandte Mikroelektronik und Datentechnik Results of Phase 4: Layout for ST65 technology by Christoph Niemann Selected Topics.
Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von Prof. Dr. rer. nat. U. Brinkschulte Prof. Dr.-Ing. L. Hedrich (basierend auf Materialien.
Fakultät für informatik informatik 12 technische universität dortmund Lab 2: Heterogeneous System Modeling in Ptolemy - Session 6 - Peter Marwedel Heiko.
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.
FPGA Praktikum WS2000/ Woche: BlockRAM CoreGen CPU Informationen Aufgaben.
Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.
Business Process Excuction Lanaguage
Business Process Excuction Lanaguage
Eine elektronische Schaltung von der Idee bis zum Einbau am Experiment
FPGA-Design VHDL-basierter Designflow für FPGAs
Vom HW-Automaten zum Prozessor
Vom Transistor zum HW-Automaten
מבוא למערכות מחשב ואסמבלי
MIKROELEKTRONIK, VIEEAB00
CSL211 Computer Architecture
Celebrating Open for all ! Friday, 21 June 2019
 Präsentation transkript:

VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)

Beispiel Flankendetektor Inhalt Getaktete Logik D-FF 8-bit Register D-FF mit asynchronem Reset D-FF mit synchronem Reset Synthese Beispiel Flankendetektor

Was könnte dieses VHDL beschreiben? LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY vhdl IS PORT(clk : IN std_logic; d : IN std_logic; q : OUT std_logic); END vhdl; ARCHITECTURE rtl OF vhdl IS BEGIN logik : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN q <= d; ELSE q <= q; END IF; END PROCESS logik; END rtl;

D-FF D Q clk CLK D Qn+1 1 D Q

VHDL Beschreibung eines D-FF LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_logic IS PORT(clk : IN std_logic; d : IN std_logic; q : OUT std_logic); END dff_logic; ARCHITECTURE rtl OF dff_logic IS BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN q <= d; ELSE q <= q; END IF; END PROCESS dff; END rtl; Prozess nur aktiviert wenn clk ändert wahr wenn sich clk ändert Else nicht notwendig, wenn if nicht zutrifft bleibt q wie vorher

Was ist hier anders als vorher ? LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_logic IS PORT(clk : IN std_logic; d : IN std_logic_vector(7 downto 0); q : OUT std_logic_vector (7 downto 0); END dff_logic; ARCHITECTURE rtl OF dff_logic IS BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN q <= d; END IF; END PROCESS dff; END rtl;

8-bit breites Register D(7) D Q Q(7) D(0) D Q Q(0) CLK

Welches Signal ist bei diesem Prozess neu? LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_arst IS PORT( clk, din, reset : IN std_logic; qout : OUT std_logic ); END dff_arst; ARCHITECTURE rtl OF dff_arst IS BEGIN dff : PROCESS(clk, reset) IF reset = '1' THEN qout <= '0'; ELSIF clk'EVENT AND clk = '1' THEN qout <= din; END IF; END PROCESS dff; END rtl; - Asynchroner Reset ! Reset zu oberst im if statement hat deshalb höchste Priorität

Was passiert hier ? Synchroner Reset LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_arst IS PORT(clk,d,reset : IN std_logic; q : OUT std_logic); END dff_arst; ARCHITECTURE rtl OF dff_arst IS BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN IF reset = '1' THEN q <= '0'; ELSE q <= d; END IF; END IF; END PROCESS dff; END rtl; Synchroner Reset

D-Flip Flop mit synchronem Reset CLK D Q RESET dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN IF reset = '1' THEN q <= '0'; ELSE q <= d; END IF; END IF; END PROCESS dff;

D-Flip Flop mit synchronem Reset & D Q RESET CLK S dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN IF reset = '1' THEN q <= '0'; ELSE q <= d; END IF; END IF; END PROCESS dff;

Geschachteltes IF statement LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_srst IS PORT(clk,d,reset : IN std_logic; q : OUT std_logic); END dff_srst; ARCHITECTURE rtl OF dff_srst IS BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN IF reset = '1' THEN q <= '0'; ELSE q <= d; END IF; END IF; END PROCESS dff; END rtl; Geschachteltes IF statement

Erzeugung eines Taktes für Simulation SIGNAL clk_halfp : time := 20ns; clkgen : PROCESS BEGIN WAIT FOR 1*clk_halfp; clk <= '1'; clk <= '0'; END PROCESS clkgen; END struct; Ohne Sensitivity Liste

Übung: Zeichnen Sie den Schaltplan dieses VHDL LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_logic IS PORT( clk,j,k : IN std_logic; h : OUT std_logic); END dff_logic; ARCHITECTURE rtl OF dff_logic IS Signal i : std_logic; BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN h <= i; i <= j OR k; END IF; END PROCESS dff; END rtl;

Lösung der Übung >1 k j i D Q D Q h clk Als Faustregel gilt: dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN h <= i; i <= j OR k; END IF; END PROCESS dff; Als Faustregel gilt: Jedes Signal das nach clk‘event zugewiesen wird, wird als Flip-Flop synthetisiert

Übung: Eindeutiger VHDL Kode ARCHITECTURE rtl OF dff_logic IS Signal i, next_i : std_logic; Signal next_h : std_logic; BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN i <= next_i; h <= next_h; END IF; END PROCESS dff; comb : PROCESS(i,j,k) BEGIN next_i <= j OR k; next_h <= i; END PROCESS dff; END rtl;

Zeitliches Verhalten der Übung k >1 j i D Q D Q h clk j k clk i h

Zeitliches Verhalten der Übung k >1 j i D Q D Q h clk j k clk i h

Aufbau und Architektur von PLD

Übersicht Programmierbare Logik Programmierbare Bausteine CPLD FPGA Field Programmable Gate Array Logic Array basierend Multiplexer basierend Look Up Table basierend

Darstellung von kombinatorischer Logik & >1 A N Z & S A = Z & K & !S # Z & N & !S (Disjunktive Form) Gute Minterme K N Logische Verknüpfung A S Z

+ Darstellung von sequentieller Logik Beispiel synchroner Zähler Folge- Zustand Gegenwärtiger Zustand + Q n n = Anzahl der FFs n !Q int. 1 Takt Reset

Allgemeine RTL Beschreibung einer Synchronen Digitalen Schaltung (RTL = Register Transfer Level)

PLD I1 I0 Out0 Out1 Out2 Out3 CLK >1 & >1 >1 >1 Eingangspuffer OR Feld (fest verdrahtet) Eingangsignal invertiert & Out0 & >1 D Q & & & & Out1 & >1 D Q & & & Out2 & >1 D Q & & & Out3 & >1 D Q & & CLK AND Feld (programmierbar)

Complex Programmable Logic Device Ein Logik Block = 16 FF Programmable Interconnect Matrix

2. Aufbau mit Multiplexern A X = A UND B 1 & B A X A B X 1

RS-Flip-Flop aufgebaut aus Multiplexern !R !S Qn+1 !Qn+1 1 Qn !Qn 1 Q 1 1 Q 1 S R

Logikgrundzelle von Actel basierend auf Multiplexern Transfergate

Logik mit Look Up Tabellen y 1 a LUT Y b 4 x 1 RAM XOR Funktion im LUT

Ein Logic Element (LE) im MAXII

MAXII Block Diagram

LE Kluster (Logic Array Blocks)

Direkte Links zu benachbarten LAB

MAXII Floorplan

Verteilung spezieller Signale

MAX II I/O

Spezielle Pins

Synthese

Synthese = Umwandlung einer VHDL Schaltungsbeschreibung in physikalische Gatter und Flip Flops Gatter/Flip-Flop Bibliothek ARCHITECTURE comb OF beisp IS BEGIN q0 <= not (e0 and e1); sig3 <=(e2 and e3) or (e0 and e1); ... ...(Beschreibung nicht vollständig) END comb; G3 G2 G1 E0 & Q0 & E1 sig3 & E2 & Q1 & E3 D Q Q2 Netzliste FF0 !! Jedes synthetisierbare VHDL wird Hardware !! Hardware Beschreibung

VHDL Synthesizer Architecture: A Architecture: B Package: A Bauteile Libraries Entity: A Entity: B VHDL Synthesizer (umwandlung von VHDL code in Gatter und Flip Flops) Working Library ieee Library primitive Library .jed .rpt .pin .vhd Bericht Pin Belegung Ergebnis in VHDL Form Dateien für Programmiergerät

Synthese Beispiel I Synthese Ergebnis der Übung (Folie 14)

Synthese Beispiel II D-FF mit async. Reset LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_arst IS PORT( clk, din, reset : IN std_logic; qout : OUT std_logic ); END dff_arst; ARCHITECTURE rtl OF dff_arst IS BEGIN dff : PROCESS(clk, reset) IF reset = '1' THEN qout <= '0'; ELSIF clk'EVENT AND clk = '1' THEN qout <= din; END IF; END PROCESS dff; END rtl;

Synthese Beispiel II D-FF mit async. Reset Synthese Ergebnis

Synthese Beispiel III D-FF mit Sync. Reset LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_srst IS PORT( clk, d, reset : IN std_logic; qout : OUT std_logic ); END dff_srst; ARCHITECTURE rtl OF dff_srst IS BEGIN dff : PROCESS(clk, reset) IF clk'EVENT AND clk = '1' THEN IF reset = '1' THEN qout <= '0'; ELSE qout <= d; END IF; END PROCESS dff; END rtl;

Synthese Beispiel III D-FF mit Sync. Reset Synthese Ergebnis

Erklärungen zum Lab Flankendetektor

Flankendetektor & Q D q1 q2 flin clk q1 q2 steig reset steig flin clk Wie können wir die Schaltung ändern, so dass wir fallende und steigende Flanken anzeigen

Simulation von getakteter Logik (am Beispiel Flankendetektor)

Was muss man testen? Was weiss man vom Logikverhalten? Nach der zweiten Taktflanke nachdem flin =‚1‘ wird steig = ‚1‘ „steig“ bleibt genau für eine Taktperiode ‚1‘ Nach der fallenden Taktflanke von flin =‚1‘ bleibt „steig“ auf ‚0‘.

Simulatoren und Debugger Testbench Process: clk Check mit Assert Process: Stimulus Process: Stimulus DUT

Signal Stimulus reset <= '1'; RESET RAUS stimuli: process begin wait for 1*clk_halfp ; flin <= '0'; reset <= '1'; RESET RAUS wait for 5*clkp; reset <= '0'; assert (steig = '0') report " after reset should be zero" severity failure; wait for 1*clkp ; flin <= '1'; assert (steig = '0') report " should still be zero" severity failure; wait for 1*clkp;-- 1. Takt nach flin = '1' wait;

Overhead Folie ENTITY dff_arst IS PORT( clk : IN std_logic; din : IN std_logic; reset : IN std_logic; qout : OUT std_logic); END dff_arst; ARCHITECTURE rtl OF dff_arst IS BEGIN dff : PROCESS(clk, reset) IF reset = '1' THEN qout <= '0'; ELSIF clk'EVENT AND clk = '1' THEN qout <= din; END IF; END PROCESS dff; END rtl; Overhead Folie

Zeichnen Sie den Schaltplan dieses VHDL Übung: Zeichnen Sie den Schaltplan dieses VHDL LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff_logic IS PORT( clk,j,k : IN std_logic; h : OUT std_logic); END dff_logic; ARCHITECTURE rtl OF dff_logic IS Signal i : std_logic; BEGIN dff : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN h <= i; i <= j OR k; END IF; END PROCESS dff; END rtl; Overhead Folie

Was könnte dieses VHDL beschreiben? LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY vhdl IS PORT(clk : IN std_logic; d : IN std_logic; q : OUT std_logic); END vhdl; ARCHITECTURE rtl OF vhdl IS BEGIN logik : PROCESS(clk) BEGIN IF clk'EVENT AND clk = '1' THEN q <= d; ELSE q <= q; END IF; END PROCESS logik; END rtl; Overhead Folie

& reset steig flin D Q D Q clk q1 q2 flin clk q1 q2 steig Overhead Folie