Vhdl 4 getaktete logik d ff z hler automaten
This presentation is the property of its rightful owner.
Sponsored Links
1 / 51

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


  • 81 Views
  • Uploaded on
  • Presentation posted in: General

VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten). 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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Vhdl 4 getaktete logik d ff z hler automaten

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


Inhalt

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

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 ISBEGINlogik : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENq <= d;ELSEq <= q; ENDIF;ENDPROCESS logik;END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

D-FF

D

Q

clk

CLK

D

Q


Vhdl beschreibung eines d ff

Prozess nur aktiviert wenn clk ändert

wahr wenn sich clk ändert

Else nicht notwendig,wenn if nicht zutrifft bleibt q wie vorher

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 ISBEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENq <= d;ELSEq <= q; ENDIF;ENDPROCESS dff;END rtl;


Was ist hier anders als 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 ISBEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENq <= d;ENDIF;ENDPROCESS dff;END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

8-bit breites Register

D(7)

D

Q

Q(7)

D(0)

D

Q

Q(0)

CLK


Vhdl 4 getaktete logik d ff z hler automaten

- Asynchroner Reset !

Reset zu oberst im if statementhat deshalb höchste Priorität

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)

BEGIN

IF reset = '1' THEN

qout <= '0';

ELSIF clk'EVENT AND clk = '1' THEN

qout <= din;

ENDIF;

ENDPROCESS dff;

END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

Synchroner Reset

Was passiert hier ?

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

BEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THENq <= '0';ELSEq <= d;ENDIF;ENDIF;ENDPROCESS dff;END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

D

CLK

Q

RESET

D-Flip Flop mit synchronem Reset

dff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THENq <= '0';ELSEq <= d;ENDIF;ENDIF;ENDPROCESS dff;


Vhdl 4 getaktete logik d ff z hler automaten

D-Flip Flop mit synchronem Reset

D

&

D

Q

RESET

CLK

S

dff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THENq <= '0';ELSEq <= d;ENDIF;ENDIF;ENDPROCESS dff;


Vhdl 4 getaktete logik d ff z hler automaten

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

BEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THENq <= '0';ELSEq <= d;ENDIF;ENDIF;ENDPROCESS dff;END rtl;

Geschachteltes IF statement


Erzeugung eines taktes f r simulation

Erzeugung eines Taktes für Simulation

SIGNAL clk_halfp : time := 20ns;

clkgen : PROCESS

BEGIN

WAITFOR 1*clk_halfp;

clk <= '1';

WAITFOR 1*clk_halfp;

clk <= '0';

ENDPROCESS clkgen;

END struct;

Ohne Sensitivity Liste


Vhdl 4 getaktete logik d ff z hler automaten

Ü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 ISSignal i : std_logic;BEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENh <= i;i <= j OR k;ENDIF;ENDPROCESS dff;END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

Als Faustregel gilt:

Jedes Signal das nach clk‘event zugewiesen wird, wird als

Flip-Flop synthetisiert

Lösung der Übung

k

>1

j

i

D

Q

D

Q

h

clk

dff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENh <= i;i <= j OR k;ENDIF;ENDPROCESS dff;


Vhdl 4 getaktete logik d ff z hler automaten

Übung:Eindeutiger VHDL Kode

ARCHITECTURE rtl OF dff_logic ISSignal i, next_i : std_logic;Signal next_h : std_logic;

BEGINdff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENi <= next_i;h <= next_h;ENDIF;ENDPROCESS dff;comb : PROCESS(i,j,k)BEGINnext_i <= j OR k;next_h <= i;ENDPROCESS dff;END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

Zeitliches Verhalten der Übung

k

>1

j

i

D

Q

D

Q

h

clk

j

k

clk

i

h


Vhdl 4 getaktete logik d ff z hler automaten

Zeitliches Verhalten der Übung

k

>1

j

i

D

Q

D

Q

h

clk

j

k

clk

i

h


Aufbau und architektur von pld

Aufbau und Architektur von PLD


Bersicht programmierbare logik

Übersicht Programmierbare Logik

Programmierbare Bausteine

FPGAField Programmable Gate Array

CPLD

LogicArraybasierend

Multiplexerbasierend

Look Up Tablebasierend


Darstellung von kombinatorischer logik

Darstellung von kombinatorischer Logik

K

&

>1

A

N

Z

&

S

A = Z & K & !S # Z & N & !S

(Disjunktive Form)

Gute Minterme

K

LogischeVerknüpfung

A

N

S

Z


Vhdl 4 getaktete logik d ff z hler automaten

Darstellung von sequentieller Logik

Beispiel synchroner Zähler

Folge-Zustand

GegenwärtigerZustand

+

Q

n

n = Anzahl der FFs

n

!Q

int. 1

Takt

Reset


Allgemeine rtl beschreibung einer synchronen digitalen schaltung

Allgemeine RTL Beschreibung einer Synchronen Digitalen Schaltung

(RTL = Register Transfer Level)


Vhdl 4 getaktete logik d ff z hler automaten

&

D

D

D

D

Q

Q

Q

Q

>1

>1

>1

>1

PLD

I1

I0

OR Feld(fest verdrahtet)

Eingangspuffer

Eingangsignal invertiert

&

Out0

&

&

&

&

Out1

&

&

&

&

Out2

&

&

&

&

Out3

&

&

&

CLK

AND Feld(programmierbar)


Complex programmable logic device

Complex Programmable Logic Device

Ein Logik Block = 16 FF

Programmable Interconnect Matrix


2 aufbau mit multiplexern

A

B

X

B

&

0

0

X = A UND B

1

A

2. Aufbau mit Multiplexern


Rs flip flop aufgebaut aus multiplexern

RS-Flip-Flop aufgebaut aus Multiplexern

0

0

1

0

Q

1

1

0

Q

1

S

R

0


Logikgrundzelle von actel basierend auf multiplexern

Logikgrundzelle von Actel basierend auf Multiplexern

Transfergate


Logik mit look up tabellen

Logik mit Look Up Tabellen

a

LUT

Y

b

4 x 1 RAM

XOR Funktion im LUT


Ein logic element le im maxii

Ein Logic Element (LE) im MAXII


Maxii block diagram

MAXII Block Diagram


Le kluster logic array blocks

LE Kluster (Logic Array Blocks)


Direkte links zu benachbarten lab

Direkte Links zu benachbarten LAB


Maxii floorplan

MAXII Floorplan


Verteilung spezieller signale

Verteilung spezieller Signale


Max ii i o

MAX II I/O


Spezielle pins

Spezielle Pins


Synthese

Synthese


Synthese1

G1

G3

G2

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;

E0

Q0

&

&

E1

sig3

&

E2

Q1

&

&

E3

D

Q

Q2

Netzliste

FF0

!! Jedes synthetisierbare VHDL wird Hardware !!

Hardware Beschreibung


Vhdl synthesizer

VHDL Synthesizer

Architecture: B

Package: A

Architecture: A

BauteileLibraries

Entity: B

Entity: A

VHDL Synthesizer (umwandlung von VHDL code in Gatter und Flip Flops)

WorkingLibrary

primitiveLibrary

ieeeLibrary

.jed

.rpt

.pin

.vhd

Pin Belegung

Ergebnis inVHDL Form

Bericht

Dateien fürProgrammiergerät


Synthese beispiel i

Synthese Beispiel I

Synthese Ergebnis der Übung (Folie 14)


Vhdl 4 getaktete logik d ff z hler automaten

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)

BEGIN

IF reset = '1' THEN

qout <= '0';

ELSIF clk'EVENT AND clk = '1' THEN

qout <= din;

ENDIF;

ENDPROCESS dff;

END rtl;


Vhdl 4 getaktete logik d ff z hler automaten

Synthese Beispiel II

D-FF mit async. Reset

Synthese Ergebnis


Vhdl 4 getaktete logik d ff z hler automaten

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)

BEGIN

IF clk'EVENT AND clk = '1' THEN

IF reset = '1' THEN qout <= '0';

ELSE qout <= d;

END IF;

ENDIF;

ENDPROCESS dff;

END rtl;


Synthese ergebnis

Synthese Beispiel III

D-FF mit Sync. Reset

Synthese Ergebnis


Erkl rungen zum lab flankendetektor

Erklärungen zum LabFlankendetektor


Vhdl 4 getaktete logik d ff z hler automaten

reset

steig

&

flin

D

Q

D

Q

clk

q1

q2

Flankendetektor

flin

clk

q1

q2

steig

Wie können wir die Schaltung ändern, so dass wir fallende und steigende Flanken anzeigen


Simulation von getakteter logik am beispiel flankendetektor

Simulation von getakteter Logik (am Beispiel Flankendetektor)


Was muss man testen was weiss man vom logikverhalten

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

Simulatoren und Debugger

Testbench

Process:clk

Check mit Assert

Process:Stimulus

DUT

Process:Stimulus


Signal stimulus

Signal Stimulus

stimuli: process

begin

waitfor 1*clk_halfp ;

flin <= '0';

reset <= '1'; RESET RAUS

waitfor 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'

flin <= '1';

assert (steig = '0') report " should still be zero" severity failure;

wait;


  • Login