Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

School of Engineering Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse PIN Zuweisungen fixieren Inhalt.

Ähnliche Präsentationen


Präsentation zum Thema: "School of Engineering Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse PIN Zuweisungen fixieren Inhalt."—  Präsentation transkript:

1 School of Engineering Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse PIN Zuweisungen fixieren Inhalt

2 School of Engineering Generic

3 School of Engineering Generic in Entity ENTITY zaehl_generic IS GENERIC (width: natural := 5); PORT( clk,reset: IN std_logic; cnt_out : OUT std_logic_vector(width-1 downto 0) ); END zaehl_generic; ARCHITECTURE rtl OF zaehl_generic IS SIGNAL cnt_folge: unsigned(width-1 downto 0); SIGNAL cnt_gegenwart: unsigned(width-1 downto 0); BEGIN logik : PROCESS(cnt_gegenwart) BEGIN cnt_folge <= cnt_gegenwart + 1 ; END PROCESS logik; flip_flops : PROCESS(clk, reset) BEGIN IF reset = '1' THEN cnt_gegenwart <= to_unsigned(0,width); ELSIF clk'EVENT AND clk = '1' THEN cnt_gegenwart <= cnt_folge ; END IF; END PROCESS flip_flops; cnt_out <= std_logic_vector(cnt_gegenwart); END rtl; Default Wert

4 School of Engineering Generic eine Hierarchie höher instance 1: zaehl_generic GENERIC MAP (width => 50) PORT MAP(clk => clk50, reset => rst, cnt_out => out_vector); COMPONENT zaehl_generic GENERIC (width : natural ); PORT (clk,reset : IN std_logic; cnt_out : OUT std_logic_vector(width-1 downto 0); div_out : OUT std_logic); END COMPONENT;

5 School of Engineering Prozess mit Kombinatorischer Logik comb_ Prozess mit getakteter Logik reg_ cnt_gegenwart cnt_folge clk reset 4 4 Ausgangszuweisung cnt_out cnt_out <= std_logic_vector(cnt_gegenwart); PORT( clk,reset: IN std_logic; cnt_out: OUT std_logic_vector(width-1 downto 0) );

6 School of Engineering CPLD Synthese

7 School of Engineering Zaehler Einfach ENTITY zaehl_generic IS GENERIC (width: positive := 4); PORT( clk,reset: IN std_logic; cnt_out : OUT std_logic_vector(width-1 downto 0) ); END zaehl_generic; ARCHITECTURE rtl OF zaehl_generic IS SIGNAL cnt_folge: unsigned(width-1 downto 0); SIGNAL cnt_gegenwart: unsigned(width-1 downto 0); BEGIN logik : PROCESS(cnt_gegenwart) BEGIN cnt_folge <= cnt_gegenwart + 1 ; END PROCESS logik; flip_flops : PROCESS(clk, reset) BEGIN IF reset = '1' THEN cnt_gegenwart <= to_unsigned(0,width); ELSIF clk'EVENT AND clk = '1' THEN cnt_gegenwart <= cnt_folge ; END IF; END PROCESS flip_flops; cnt_out <= std_logic_vector(cnt_gegenwart); END rtl;

8 School of Engineering RTL Diagramm zaehler_einfach 4h1

9 School of Engineering Ein Logic Element im MAXII

10 School of Engineering Technology Map von zaehler_einfach

11 School of Engineering Technology Map von zaehler_einfach (Hierarchien expandiert)

12 School of Engineering Ein Logic Element im MAXII

13 School of Engineering IF reset = '1' THEN cnt_folge 0THEN cnt_folge <= cnt_gegenwart - 1 ; ELSE cnt_folge <= 9; END IF; END IF; END IF; Up/down counter

14 School of Engineering Mux Diagramm UP-Down Zähler IF reset = '1' THEN cnt_folge 0 THEN cnt_folge <= cnt_gegenwart - 1 ; ELSE cnt_folge <= 9; END IF; END IF; END IF;

15 School of Engineering Timing Analyse

16 School of Engineering t su Q D CLK thth Minimal benötigte Setup Zeit Minimal benötigte Hold Zeit Fenster in dem Daten stabil sein müssen Setup und Hold Zeiten beim D-FF

17 School of Engineering QD !Q QD CLK t PDCLKQ-cnt_gegenwart(1) + t PD-Logic + t SU-cnt_gegenwart(3) + t PD-Verbindung T period-max = f max = T period-max 1 FF:cnt_gegenwart(1)FF:cnt_gegenwart(3) Nur ein Ausschnitt des Zählers gezeigt! Berechnen der Maximalen Taktfrequenz eines Zählers

18 School of Engineering QD !Q CLK Q1 Ausgangs- Pin tco CPLD = tpd CLKBUF + tco FLIP-FLOP + tpd LOGIK tpd CLKBUF tpd LOGIK tco FLIP-FLOP Propagation Delay am CPLD Ausgang (tco)

19 School of Engineering QD !Q QD CLK1 CLK2 cnt_out(0) cnt_out(1) cnt_gegenwart(1) cnt_gegenwart(0) CLK Nur ein Ausschnitt des Zählers gezeigt! Timing Analyse von clk zu cnt_out

20 School of Engineering QD !Q QD Q1Q2 FF1 CLK t setup CLK D1 D2 D1 QD !Q FF1 QD !Q FF2 Flanke 1) (Launch Clock) Flanke 2) (Latch Clock) Die SETUP Zeit beim Verschalten von CPLDs CPLD Eingangspin

21 School of Engineering QD !Q CLK D2 Eingangs- Pin tsu CPLD = tsu FLIP-FLOP + tpd LOGIK tsu FLIP-FLOP tpd LOGIK Set Up Zeit am CPLD Eingang (t SU )

22 School of Engineering QD !Q QD Q1Q2 FF1 CLK t hold CLK Q1 D2 D1 QD !Q FF1 QD !Q FF2 Flanke 1)Flanke 2) Q2 t logic Logic t hold t logic Verfügbare HOLD Zeit für CPLD Eingang CPLD Eingangspin

23 School of Engineering QD !Q CLK D2 Eingangs- Pin th FLIP-FLOP tpd LOGIK th CPLD = th FLIP-FLOP - tpd LOGIK Hold Zeit am CPLD Eingang

24 School of Engineering Timing Analyse Up/Down Counter

25 School of Engineering PIN Zuweisungen Fixieren

26 School of Engineering Erstellen von Pin Zuweisungen Synthetisieren Sie ein erstes Mal Führen Sie eine Backannotation durch: Assignments Backannotate Speichern Sie das Projekt File Save Project Öffnen Sie den Assignment Editor: Assignments Pins Editieren Sie die Pins entsprechend dem PCB Board Kompilieren sie noch einmal und kontrollieren sie die Pin Assignments mit Assignments pins Abspeichern als TCL Datei: Project Generate TCL File for Project Laden der TCL Datei: Tools TCL scripts


Herunterladen ppt "School of Engineering Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse PIN Zuweisungen fixieren Inhalt."

Ähnliche Präsentationen


Google-Anzeigen