vhdl 4 getaktete logik d ff z hler automaten n.
Download
Skip this Video
Download Presentation
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)

Loading in 2 Seconds...

play fullscreen
1 / 51

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


  • 119 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)' - nishi


Download Now 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
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 ISBEGIN logik : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THEN q <= d;ELSE q <= q; ENDIF;ENDPROCESS logik;END rtl;

slide4

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

slide7

8-bit breites Register

D(7)

D

Q

Q(7)

D(0)

D

Q

Q(0)

CLK

slide8

- 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;

slide9

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

BEGIN dff : PROCESS(clk)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THEN q <= '0';ELSE q <= d;ENDIF;ENDIF;ENDPROCESS dff;END rtl;

slide10

D

CLK

Q

RESET

D-Flip Flop mit synchronem Reset

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

slide11

D-Flip Flop mit synchronem Reset

D

&

D

Q

RESET

CLK

S

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

slide12

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)BEGINIF clk'EVENT AND clk = '1' THENIF reset = '1' THEN q <= '0';ELSE q <= 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

slide14

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

slide15

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' THEN h <= i; i <= j OR k;ENDIF;ENDPROCESS dff;

slide16

Übung:Eindeutiger VHDL Kode

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

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

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

slide22

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)

slide24

&

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
logik mit look up tabellen
Logik mit Look Up Tabellen

a

LUT

Y

b

4 x 1 RAM

XOR Funktion im LUT

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)

slide42

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;

slide43

Synthese Beispiel II

D-FF mit async. Reset

Synthese Ergebnis

slide44

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;

slide47

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

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;