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

VHDL Einführung 1 - · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Embed Size (px)

Citation preview

Page 1: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

VHDL Einführung 1

Marc Reichenbach und Michael Schmidt

Informatik 3 / RechnerarchitekturUniversität Erlangen Nürnberg

05/12

1 / 44

Page 2: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Gliederung

Überblick zu VHDL

Vergleich VHDL/Verilog

Designflow

Aufbau einer VHDL-Beschreibung

Architektur-Beschreibungen

Signale vs. Variablen

2 / 44

Page 3: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Überblick zu VHDL

• grafische Schaltplaneingabe auf Logikelementebene kritisch• starker Anstieg der Entwurfskomplexität• "Time to market"

• deswegen Hardwarebeschreibung durch Hochsprachen

• Vorteil: einheitliche Beschreibung für Simulation und Synthese

• etablierte Modellierungssprachen:• Verilog (amerik. Markt)• VHDL (europ. Markt)• mittlerweile steigender Anteil von SystemC, SystemVerilog (für

Systemmodellierung und Systemverifikation)

3 / 44

Page 4: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Überblick zu VHDL

• VHDL unter IEEE-Norm 1076 in 1987, 1993, 2000, 2002 und2008 standardisiert

• synthesefähiger Anteil unter 1076.6 standardisiert !!

• VHDL ist eine Modellierungssprache, keineProgrammiersprache

• Kleinschreibung üblich (aber Unterschiede in der Literatur!)

4 / 44

Page 5: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Überblick zu VHDL

• Kommentare werden in VHDL mit “ −−“ erstellt (seit 2008Blockkommentar möglich)

• vollständige VHDL-Anweisungen mit “; “ abgeschlossen

• Signalzuweisungen erfolgen mit “ <= “ Operator

• Variablenzuweisungen erfolgen mit “ := “ Operator

• einzelne Signalwerte mit einzelnen Anführungeszeichen (′0′)

• Vektoren mit doppelten Anführungszeichen (”0001”)

5 / 44

Page 6: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Vergleich VHDL/Verilog [1]

• gleichwertige Modellierung von Hardware-Komponenten

• allerdings leicht versetzte Abdeckung über denVerhaltensebenen

6 / 44

Page 7: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Vergleich VHDL/Verilog [1]

• VHDL: Vielzahl von Datentypen (sprach- undbenutzerdefiniert)

• Verilog: nur sehr einfache sprachdefinierte Datentypen

• Verilog: kein Konzept für Packages (für wiederverwendeteDatentypen, Funktionen) oder Bibliotheken → interpretierendeSprache

• Verilog ist für Beginner einfacher zu erlernen

7 / 44

Page 8: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Vergleich VHDL/Verilog [1]

• VHDL erscheint zunächst komplizierter (stark typisiert,mehrere Modellierungswege) → jedoch mächtig fürfortgeschrittene Benutzer

• VHDL: mehr Konstrukte für High-Level Modellierungen

• Verilog: Möglichkeit auch Basiszellen (ASIC, FPGA) zumodellieren (in VHDL über VITAL Standard)

• Verilog: Explizite Unterscheidung zwischen Registern undVerbindungen

• VHDL ist an ADA angelehnt, Verilog stärker an C

8 / 44

Page 9: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Designflow

• Wie kommt man vom HDL Code zur tatsächlichen Hardware(FPGA, ASIC)?

• Designflow beschreibt Abbildungsschritte

• oft Unterschiede in Abhängigkeit von der verwendetenTool-Chain

9 / 44

Page 10: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Vereinfachter Allgemeiner DesignflowVHDL-Code Schaltplan

Synthese

Translation

Konfigurations-datei

FunktionaleSimulation

Testbench

ZeitbehafteteSimulationTapeout

FPGA ASIC

Timing Analyse,DRC Checks

Map

Place & Route

Floorplanning,Layout

Constraints

Implemen-tierung

10 / 44

Page 11: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Synthese

• auch Logik-Synthese genannt

• Übersetzung des HDL Codes in architektur-spezifischeNetzliste

• Netzliste auf Register-Transfer Ebene (RTL)

clk

QDKombinatorischeLogik

CLK

KombinatorischeLogik

KombinatorischeLogik

QD

CLK

11 / 44

Page 12: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Implementierung

• Abbildung der Netzliste auf Zieltechnologie• Bibliothekselemente einer ASIC-Bibliothek• Bibliothekselemente eines FPGA-Devices

• Abschätzung von Zeitinformationen für zeitbehafteteSimulation

• SDF (Standard Delay Format)

12 / 44

Page 13: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prinzipieller Aufbau einer VHDL-Beschreibung

−− B i b l i o t h e k e n e i n b i n d enl i b r a r y <Name>; −− z .B . B i b l i o t h ek sname oder WORK−Verz .use <Name>.[<Name>. . . . ] ( < Beze i chne r >| a l l ) ;

−− S c h n i t t s t e l l e de r Komponente d e f i n i e r e nen t i t y <Entityname> i s

[ gener i c (<Dek l a r a t i o n von Parametern >) ; ]port (<Dek l a r a t i o n de r Ein− und Ausgaenge >);

[< En t i t y d e k l a r a t i o n e n >; ]end <Entityname >;

−− Funk t i o n a l e s Ve rha l t e n de r Komponente b e s c h r e i b e na r ch i t e c t u r e <Arch i tektu rname> of <Entityname> i s[< A r c h i t e k t u r d e k l a r a t i o n e n >; ]begin

{<VHDL−Anweisungen >;}end <Arch i tektu rname >;

13 / 44

Page 14: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prinzipieller Aufbau einer VHDL-Beschreibung

−− o p t i o n a l d i e Kon f i g u r a t i o n f e s t l e g e n−− w i c h t i g b e i mehreren A r c h i t e k t u r b e s c h r e i b u n g e n−− zu e i n e r En t i t ycon f i gu r a t i on <Konf igu ra t i onsname> of <Entityname> i s

f o r <Arch i tektu rname>{ f o r <Komponente>

<Bindungsanweisungen >;end fo r ; }

end fo r ;end [ con f i gu r a t i on ] [<Konf igu ra t i onsname >] ;

14 / 44

Page 15: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Beispiel einer VHDL-Beschreibung

−− e i n f a c h e s B e i s p i e l : AND−Gat t e r mit 2 Eingaengenl i b r a r y i eee ;use i eee . std_logic_1164 . a l l ;−− f u e r Datentyp STD_LOGIC, s p a e t e r mehr . . .

−− S c h n i t t s t e l l e e i n e s AND2−Ga t t e r sen t i t y AND2 i s

port ( a : i n std_log ic ;b : i n std_log ic ;o : out std_log ic ) ;

end AND2;

−− Funk t i o n a l e s Ve rha l t e n des Ga t t e r sa r ch i t e c t u r e b eha v i o r of AND2 i sbegin

o <= a and b ;end b eha v i o r ;

15 / 44

Page 16: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

use

• für Einbinden von Bibliothekselementen oder eigene Paketen

• es kann jeder Name eines Paketes oder einer Bibliotheksichtbar gemacht werden

• Wichtig: Bibliotheken vor JEDER entity einbinden!

• mit Hilfe von all, werden alle Sub-Elemente sichtbar

• Vorsicht mit all: auf Abhängigkeiten achten!!!

16 / 44

Page 17: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

use

−− a l l e Elemente des Paketes std_log ic_1164 aus−− de r B i b l i o t h e k i e e e , z .B . Datentyp s t d_ l og i cl i b r a r y i eee ;use i eee . std_logic_1164 . a l l ;

−− a l l e Elemente des Paketes own_packageuse work . own_package . a l l ;

17 / 44

Page 18: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

entity

• Schnittstelle eines VHDL-Funktionsblockes nach außen(vergleichbar mit PINs eines IC-Gehäuses)

−− S c h n i t t s t e l l e de r Komponente d e f i n i e r e nen t i t y <Entityname> i s

[ gener i c (<Dek l a r a t i o n von Parametern >) ; ]port (<Dek l a r a t i o n de r Ein− und Ausgaenge >);

[< En t i t y d e k l a r a t i o n e n >; ]end <Entityname >;

• generic: zur Festlegung generischer Parameter für dieKomponente (z.B. einen Parameter für die Busbreite)

18 / 44

Page 19: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

entity

• Deklaration der Anschlüsse erfolgt über port-Anweisung

• Datentyp und Richtung der Ports (in, out, inout, buffer,linkage) muss festgelegt werden

• Anschlüsse werden mit Signalen verbunden, für• Kommunikation nach außen (z.B. anderen Komponenten)• Kommunikation innerhalb der Komponente

• WICHTIG: Variablen sind keine Signale! (später mehr)

19 / 44

Page 20: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

architecture

• beschreibt das Verhalten eines VHDL-Moduls zu einer Entity

• verschiedene Möglichkeiten der Beschreibung (Unterschiede inLiteratur)

• Strukturbeschreibung→ Istanziierung und Verbindung von Komponenten

• Verhaltensbeschreibung• Prozessbeschreibung→ Funktionalitätsbeschreibung mit Prozessen

• Datenflussbeschreibung→ parallele Signalzuweisungen von booleschen Gleichungen

20 / 44

Page 21: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Strukturbeschreibung

• Verwendung von bereits vorhandenen VHDL-Modulen oderBibliothekselementen

• zuerst Deklaration der Komponenten-Schnittstelle

• danach Instanziierung der Komponente im architecture-body

component <Entityname>[ gener i c (<Parameter−Dek l a r a t i onen >); ]port ( I /O−Dek l a r a t i o n en ) ;end component ;

21 / 44

Page 22: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Strukturbeschreibung

<In s t a n z b e z e i c h n e r >: <Entityname>[ gener i c map (<Parameter−Zuweisungen >) ]port map (<Portzuwe i sungen >);

• jede Instanz erhält eine Bezeichnung zur Referenzierung

• port map: Verknüpfung der Instanz mit der Schnittstelle derHauptkomponente und/oder internen Signalen

• generic map (optional): Übergabe von Parametern an dieInstanz (später mehr dazu, z.B. bei der Verwendung internerFPGA-Komponenten)

22 / 44

Page 23: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Strukturbeschreibung

−− AND−Gat t e r mit 3 Eingaengen mit H i l f e von 2 x AND2l i b r a r y i eee ;use i eee . std_logic_1164 . a l l ;

−− S c h n i t t s t e l l e des AND3−Ga t t e r sen t i t y and3 i s

port ( a : i n std_log ic ;b : i n std_log ic ;c : i n std_log ic ;o : out std_log ic ) ;

end and3 ;

a r ch i t e c t u r e b eha v i o r of and3 i s

component AND2 i sport ( a : i n std_log ic ;

b : i n std_log ic ;o : out std_log ic ) ;

end component ;

23 / 44

Page 24: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Strukturbeschreibung

s i g n a l out_zw : std_log ic ;

begin−− 1 . I n s t a n z u1 des AND2−Ga t t e r s und Port Mappingu1 : AND2port map(

a ,b ,out_zw ) ;

−− 2 . I n s t a n z u1 des AND2−Ga t t e r s und Port Mappingu2 : AND2port map(

c ,out_zw ,o ) ;

end b eha v i o r ;

24 / 44

Page 25: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Strukturbeschreibung

• resultiernde Schaltung der AND3-Komponente

25 / 44

Page 26: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datenflussbeschreibung

• Spezialfall der Verhaltensbeschreibung, in der Literatur oftnicht explizit definiert/unterschieden

• Modellierung des Datenflusses über kombinatorische logischeFunktionen ohne Prozesse

• alle Signalzuweisungen einer Datenflussbeschreibung verhaltensich nebenläufig

26 / 44

Page 27: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datenflussbeschreibung

en t i t y RSFF i sport ( s , r : i n std_log ic ;

q , nq : out std_log ic ) ;end RSFF ;

a r ch i t e c t u r e da t a f l ow of RSFF i s

−− Zw i s c h e n s i g n a l e e i n f u e g e n ( Ausgaenge q , nq n i c h t l e s b a r )s i g n a l nq_zw : std_log ic ;s i g n a l q_zw : std_log ic ;

beginq_zw <= r nor nq_zw ;nq_zw <= s nor q_zw ;q <= q_zw ;nq <= nq_zw ;

end da t a f l ow ;

27 / 44

Page 28: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datenflussbeschreibung

• Synthese-Ergebnis der Datenflussbeschreibung

• Problem dieser Schaltung?

28 / 44

Page 29: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prozessbeschreibung

• Beschreibung des Verhaltens mit Hilfe von Prozessen

• Prozesse ermöglichen die Modellierung sequentiellerAnweisungen (Verzweigungen, Schleifen, usw.)

• Allgemeine Prozess-Beschreibung:

[<Prozessname >: ] process [ ( S e n s i t i v i t a e t s l i s t e ) ]<Dek l a r a t i onen >

begin{<S e q u e n t i e l l e Anweisungen>}

end process [<Prozessname >] ;

29 / 44

Page 30: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prozessbeschreibung

• Prozess muss Sensitivitätsliste enthalten oderwait-Anweisungen

• Sensitivitätsliste• Signale durch Kommata getrennt• Signale der Liste→ starten Prozessbearbeitung durch Simulator→ aktivieren die durch Prozess abgebildete HW

• und zwar wenn eines der Signal sich ändert (”Event”)

• ohne Sensitivitätsliste (wait-Anweisungen)• nicht synthesefähig (z.B. für Simulation)

wait f o r 20 ns ;

• synthesefähig

wait u n t i l c l k = ’1 ’ and c l k ’ e ven t ;

30 / 44

Page 31: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prozessbeschreibung

• für synthesefähige Prozesse werden Prozesse mitSensitivitätsliste empfohlen (REICHARDT)

• ABER: wait-Anweisungen vorallem sinnvoll für einfacheTestbenches (keine Synthesefähigkeit benötigt)

• Verwendung eines Prozessnamens ist optional

• Deklarationsteil kann eigene Datentypen, Konstanten oderVariablen enthalten

• funktionales Verhalten wird zwischen begin und end process;definiert

31 / 44

Page 32: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prozessbeschreibung

• mehrere Prozesse innerhalb einer architecture verhalten sichnebenläufig

• im Simulator werden sequentiellen Anweisungen nacheinanderabgearbeitet (wie in einer Programmiersprache)

• Abarbeitung im Simulator in “unendlich“ kleiner Zeit

• ein Synthesewerkzeug versucht diese seq. Anweisungen aufHardwarefunktionselemente abzubilden

32 / 44

Page 33: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Prozessbeschreibung

• in Prozessen sind unbedingte Signalzuweisungen erlaubt,selektive und bedingte Zuweisungen hingegen nicht (dort z.B.mit if then else arbeiten!)

• wichtig: Aktualisierung der Signalzuweisungen immer erst amProzessende!!!

• Problem: während Prozessausführung nicht auf aktuelleWerte zugreifbar → dafür gibt es Variablen

33 / 44

Page 34: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Architektur-Beschreibungsformen in der Praxis

• Mischung der verschiedenen Beschreibungsformen

• Strukturbeschreibung für Modul- und Hierarchiebildung

• Funktionalität über Verhaltens- und Datenflussbeschreibung

• die Strukturbeschreibung ermöglicht u.a. auch das Einbindensogenannter Hard-Macros im FPGA (Multiplizierer, BRAM,...)

34 / 44

Page 35: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Unterscheidung für VHDL-Beginner oft schwierig

• Signale kann man prinzipiell als Verbindungen ansehen

• für externe und interne Anbindung von Komponenten,Funktionsblöcken

• Ports einer Entity werden auch wie Signale behandelt

• Signale müssen eindeutigen Namen und Typen innerhalb einesVHDL-Moduls haben

35 / 44

Page 36: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Definition von Signalen erfolgt im Architektur-Deklarationsteil

. . .a r ch i t e c t u r e . . .

−− e i n f a c h e s S i g n a ls i g n a l a : b i t ; −− 0 oder 1s i g n a l b : std_log ic ; −− Neunwert ige Log ik ( empfoh len ! )

−− S i g n a l v e k t o r e ns i g n a l c : std_logic_vector (7 downto 0 ) ;s i g n a l d : std_logic_vector (0 to 15 ) ;

−− I n i t i a l i s i e r u n g ( n i c h t empfoh len ! )−− nur S imu la t i on , NICHT SYNTHETISIERBAR !s i g n a l e : std_log ic := ’ 0 ’ ;

begin. . .

36 / 44

Page 37: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Signalzuweisung über “<=“ Operator

• Unbedingte Signalzuweisung:

. . .s i g n a l a : std_log ic ;s i g n a l b : std_logic_vector (15 downto 0 ) ;

. . .begin

−− B e i s p i e l e unbed ing t e S i gna l z uwe i s ungena <= b ( 6 ) ;a <= ’ 1 ’ ;b <= "0110000001010100" ;

37 / 44

Page 38: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Bedingte Signalzuweisung:

[<Beze i chne r >: ]<Signalname> <=

<Logischer_Ausdruck_1> when <Bedingung_1> e l s e[ <Logischer_Ausdruck_2> when <Bedingung_2> e l s e ]−− . . .<log i scher_Ausdruck_n >;

−− B e i s p i e l :output <= a when c o n t r o l = ’0 ’ e l s e

b when c o n t r o l = ’1 ’ e l s e’ 0 ’ ;

• führt zu Prioritäts-Encoder (Verschachtelung von Gattern)

• vergleichbar mit if then else - Konstrukt

38 / 44

Page 39: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Selektive Signalzuweisung:

[ Be z e i c hne r : ]with <Signa l komb ina t i on > s e l e c t<Signalname> <=

<Logischer_Ausdruck_1> when <Signa lwert_1 >,[<Logischer_Ausdruck_2> when <Signa lwert_2 >] ,−− . . .[<Logischer_Ausdruck_n> when others ] ;

−− B e i s p i e l : Mu l t i p l e x e r , S i g n a l e x und y , e i n S t e u e r s i g n a l z−− und de r Ausgang output vom Typ s t d_ l og i c gegebenMUX2: with z s e l e c t

output <= x when ’ 0 ’ ,y when ’ 1 ’ ,’ 0 ’ when others ;

• Auswahl aus einer Reihe gleichberechtigter Möglichkeiten(Multiplexerstruktur)

39 / 44

Page 40: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Signale, Variablen und Konstanten

• Konstanten und Variablen bestehen aus Name, Type undoptional einem Initialwert

• Konstanten z.B. für generische Parameter in Packages

• Variablen werden normalerweise im Prozess-Deklarationsteildefiniert

• Ausnahme: shared variable (von mehreren Prozessenbenutzbar)

• Variablen-Zuweisung mit “:=“ Operator

constant r e g i s t e r w i d t h : i n t ege r := 32 ;constant PI : r e a l := 3 ,14159265 ;

v a r i a b l e n ,m: i n t ege r := 32 ;

40 / 44

Page 41: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datentypen std_logic und std_ulogic

• für HW-Entwurf sind Elemente ’0’ und ’1’ des Datentyps BITnur unzureichend

• keine Möglichkeit Signale auf hochohmig zu legen (z.B.wichtig für Busse, wie beispielsweise I 2C )

• für ASIC-Entwurf ist auch eine Unterscheidung in schwacheund starke Signale notwendig

• aus diesem Grund gibt es den Datentyp std_logic (9-wertigeLogik)

• ursprünglich in VHDL nicht vorgesehen, deshalb die Bibliothekieee.std_logic_1164 einbinden

41 / 44

Page 42: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datentypen std_logic und std_ulogic

• Werte:• ’U’: nicht initialisiert (im Simulator)• ’X’: undefiniert (Simulator erkennt Buskonflikt)• ’0’: starke logische ’0’• ’1’: starke logische ’1’• ’Z’: hochohmig (Tri-State Ausgang)• ’W’: schwach unbekannt (Buskonflikt zw. ’L’ und ’H’)• ’L’: schwache logische ’0’• ’H’: schwache logische ’1’• ’-’: Don’t Care (Zustand bedeutungslos, für Minimierung

verwendbar)

42 / 44

Page 43: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Datentypen std_logic und std_ulogic

• bei std_logic können mehrere Treiber für ein Signal existieren(z.B. wichtig für bidirektionale Busse mit mehreren Sendern)

• Auflösungsfunktion entscheidet, welches Signal sich durchsetzt(ist in IEEE 1164 als Tabelle gespeichert)

• Datentyp std_ulogic (u für unresolved): Signale dürfen nur ineinem Prozess, bzw. einer nebenläufigen Anweisungen eineWertzuweisung erfahren

• std_ulogic ist weniger flexibel, dadurch aber Erkennungversehentlicher Mehrfachzuweisungen (Fehlermeldung imSimulator)

43 / 44

Page 44: VHDL Einführung 1 -  · PDF fileOutlineÜberblickVHDL/VerilogDesignflowVHDL-ModuleArchitektur-BeschreibungenSignale/Variablen Literatur Bücher VHDL-Synthese,JürgenReichardt

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen

Literatur

Bücher

• VHDL-Synthese, Jürgen Reichardt, Bernd Schwarz, 5. Auflage,Oldenbourg Wissenschaftsverlag GmbH, 2009, ISBN978-3-486-58987-0

• The Designer’s Guide to VHDL, P.J. Ashenden, 3. Auflage,Morgan Kaufmann Publisher, 2008, ISBN 978-0-12-088785-9

Paper

• [1] VHDL & Verilog Compared & Contrasted - Plus ModeledExample Written in VHDL, Verilog and C, Douglas J. Smith,33rd Design Automation Conference, Las Vegas, 1996

44 / 44