VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog...

129

Transcript of VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog...

Page 1: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL vs. Verilog

Anke KampFrank SchmidtFlorian Thiem

Fachbereich Elektrotechnik und Informatik Hochschule BremenRST-L Prof. Risse

8. Januar 2008

1 / 83

VHDL vs. Verilog

Page 2: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Übersicht1 Einleitung

AnfängeProgrammablaufKomplexität

2 GrundlagenDatentypenFunktionenModularisierungZeitverhaltenOperatorenKonstrukte auf Gatterebene

3 ProgrambeispieleVHDL EncoderVerilog Decoder

4 Fazit

2 / 83

VHDL vs. Verilog

Page 3: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Hardwarebeschreibungssprachen

HDL - Hardware Description Language

Integrierte Schaltungen durch eine formale Syntax

Zeitliche Abläufe und Parallelitäten sind beschreibbar

Simulierung durch EDA - Werkzeuge(Electronic Design Automation)

VHDL in Europa und Verilog in den USA

3 / 83

VHDL vs. Verilog

Page 4: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Hardwarebeschreibungssprachen

HDL - Hardware Description Language

Integrierte Schaltungen durch eine formale Syntax

Zeitliche Abläufe und Parallelitäten sind beschreibbar

Simulierung durch EDA - Werkzeuge(Electronic Design Automation)

VHDL in Europa und Verilog in den USA

3 / 83

VHDL vs. Verilog

Page 5: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Hardwarebeschreibungssprachen

HDL - Hardware Description Language

Integrierte Schaltungen durch eine formale Syntax

Zeitliche Abläufe und Parallelitäten sind beschreibbar

Simulierung durch EDA - Werkzeuge(Electronic Design Automation)

VHDL in Europa und Verilog in den USA

3 / 83

VHDL vs. Verilog

Page 6: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Entwicklungsebenen

1 Systemebene/Algorithmische Ebene

Grobes algorithmisches ModelModulierung in C/C++, MATLAB, VHDL, Verilog

2 Register-Transfer-Ebene

Beschreibung kommunizierender Register und Logiceinheiten, mitDatenstrukturen und Daten�üsse

3 Gatterebene

Beschreibung durch Logic-Gatter und Flip�ops

4 Schaltkreisebene

Beschreibung durch Bauteile, z.B. TransistorenSimulation nicht praktiziert

4 / 83

VHDL vs. Verilog

Page 7: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von VHDL

VHDL -> VHSIC Hardware Description Language

VHSIC -> Very High Speed Integrated Circuit

5 / 83

VHDL vs. Verilog

Page 8: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von VHDL

Initiiert durch das amerikanische Verteidigungsministerium(Department of Defense - DoD)

Anlehnung an ADA

Standardisierte, einheitliche Sprache zur Beschreibung oderDokumentation von Hardware

Es wurde von Beginn an als o�ener Standard entwickelt

VHDL-Version 7.2 wurde 1987 als IEEE 1076-1987 standardisiert

1993 Überarbeitung als IEEE 1076-1993 standardisiert

6 / 83

VHDL vs. Verilog

Page 9: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von VHDL

Initiiert durch das amerikanische Verteidigungsministerium(Department of Defense - DoD)

Anlehnung an ADA

Standardisierte, einheitliche Sprache zur Beschreibung oderDokumentation von Hardware

Es wurde von Beginn an als o�ener Standard entwickelt

VHDL-Version 7.2 wurde 1987 als IEEE 1076-1987 standardisiert

1993 Überarbeitung als IEEE 1076-1993 standardisiert

6 / 83

VHDL vs. Verilog

Page 10: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von VHDL

Initiiert durch das amerikanische Verteidigungsministerium(Department of Defense - DoD)

Anlehnung an ADA

Standardisierte, einheitliche Sprache zur Beschreibung oderDokumentation von Hardware

Es wurde von Beginn an als o�ener Standard entwickelt

VHDL-Version 7.2 wurde 1987 als IEEE 1076-1987 standardisiert

1993 Überarbeitung als IEEE 1076-1993 standardisiert

6 / 83

VHDL vs. Verilog

Page 11: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von VHDL

Verschiedene Ansätze um besondere Probleme zu lösen

Simulation des Zeitverhaltens auf Gatterebene durch den VITALStandardMathematisches Package zur Simulation von Gleitpunktzahlen undkomplexe ZahlenVHDL-AMS zur analogen SchaltungssimulationUnd viele mehr

7 / 83

VHDL vs. Verilog

Page 12: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Aussichten von VHDL

Umfangreichen Überarbeitung mit der Bezeichnung VHDL-200X zuerwarten

Ziel dabei:synthesefähige Umsetzung von Gleitpunktzahlen

8 / 83

VHDL vs. Verilog

Page 13: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von Verilog

Verilog -> Verifying Logic

9 / 83

VHDL vs. Verilog

Page 14: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von Verilog

Als proprietäre Sprache durch die Firma Gateway DesignAutomation Inc.

Anlehnung an C

1987 schneller und e�zienter Verilog-XL Simulator rausgekommen

Für die Schaltungsbeschreibung auf GatterebeneBeschreibung auf der Register-Transfer-Ebene möglich

1989 Gateway von Firma Cadence Design Systems aufgekauft

1995 als IEEE 1364-1995 standardisiert

Letzte Version IEEE 1364-2001 eine überarbeitete Version von '95

10 / 83

VHDL vs. Verilog

Page 15: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von Verilog

Als proprietäre Sprache durch die Firma Gateway DesignAutomation Inc.

Anlehnung an C

1987 schneller und e�zienter Verilog-XL Simulator rausgekommen

Für die Schaltungsbeschreibung auf GatterebeneBeschreibung auf der Register-Transfer-Ebene möglich

1989 Gateway von Firma Cadence Design Systems aufgekauft

1995 als IEEE 1364-1995 standardisiert

Letzte Version IEEE 1364-2001 eine überarbeitete Version von '95

10 / 83

VHDL vs. Verilog

Page 16: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von Verilog

Als proprietäre Sprache durch die Firma Gateway DesignAutomation Inc.

Anlehnung an C

1987 schneller und e�zienter Verilog-XL Simulator rausgekommen

Für die Schaltungsbeschreibung auf GatterebeneBeschreibung auf der Register-Transfer-Ebene möglich

1989 Gateway von Firma Cadence Design Systems aufgekauft

1995 als IEEE 1364-1995 standardisiert

Letzte Version IEEE 1364-2001 eine überarbeitete Version von '95

10 / 83

VHDL vs. Verilog

Page 17: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Anfänge von Verilog

Besonderheiten

1988 release des ersten Logigsynthesewerkzeug durch FirmaSynopsys dadurch wurde die Beschreibung aufRegister-Transfer-Ebene in eine Gatterrealisierung überführbarVerilog-XL Simulator häu�g als Sign-O�-Simulator verwendetVerilog-AMS zur analogen SchaltungssimulationUnd viele mehr

11 / 83

VHDL vs. Verilog

Page 18: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Aussichten von Verilog

2002 release von SystemVerilog 3.0 (HDVL)Hardware Beschreibungs-und Veri�kationssprache

Ziel dabei:Ermöglicht nun erstmalig die Veri�zierung der Hardware

12 / 83

VHDL vs. Verilog

Page 19: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Entwicklungsablauf

Quelle: Ott, Wilderotter, �A Designer's Guide To VHDL Synthesis�, Kluwer AcademicPublishers, Dordrecht, 1994

13 / 83

VHDL vs. Verilog

Page 20: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Simulationsumgebung

Quelle: Kessel, Bartholomä, �Entwurf von digitalen Schaltungen und Systemen mitHDLs und FPGAs�, Oldenbourg Verlag München Wien, 2006

14 / 83

VHDL vs. Verilog

Page 21: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Tür-Ö�ner

Listing 1: VHDL1 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−2 Code aus ' V e r i l o g For D i g i t a l Design '3 von Vahid und Lysecky ,4 John Wi ley & Sons , I n c . , 20075 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−67 l i b r a r y i e e e ;8 use i e e e . s td_log ic_1164 . a l l ;910 E n t i t y DoorOpener i s11 Por t (C , H, P : i n s t d_ l og i c ;12 F : out s t d_ l og i c ) ;13 end DoorOpener ;1415 A r c h i t e c t u r e beh o f DoorOpener i s16 beg i n17 Pro c e s s (C , H, P)18 beg i n19 F <= not (C) and (H o r P ) ;20 end P r o c e s s ;21 end beh ;

Listing 2: Verilog1 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−2 Code aus ' V e r i l o g For D i g i t a l Design '3 von Vahid und Lysecky ,4 John Wi ley & Sons , I n c . , 20075 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−67 module DoorOpener (C , H, P , F ) ;8 i n p u t C, H, P ;9 ou tpu t F ;10 r e g F ;1112 a lway s @(C , H, P)13 beg i n14 F <= (~C) & (H | P ) ;15 end16 endmodule

15 / 83

VHDL vs. Verilog

Page 22: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Übersicht1 Einleitung

AnfängeProgrammablaufKomplexität

2 GrundlagenDatentypenFunktionenModularisierungZeitverhaltenOperatorenKonstrukte auf Gatterebene

3 ProgrambeispieleVHDL EncoderVerilog Decoder

4 Fazit

16 / 83

VHDL vs. Verilog

Page 23: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL Entity

1 ent i t y ent i tyName i s2 [ gener ic ( L i s t e−der−g en e r i c s−und−deren−Typen ) ; ]3 [ port ( L i s t e−der−Ans ch l u s s po r t s−und−deren−Typen ; ]4 [ l o c a l d e c l a r a t i o n s ; ]5

6 [ begin7 p a s s i v e s t a t emen t s ]8 end [ ent i t y ] [ ent i tyName ] ;

17 / 83

VHDL vs. Verilog

Page 24: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL Architecture

1 arch i tec tu re a r ch i t e c tu r eName of ent i tyName i s2 [ l o c a l d e c l a r a t i o n s ]3

4 begin5 s t a t emen t s ;6 end [ arch i tec tu re ] [ a r ch i t e c tu r eName ] ;

18 / 83

VHDL vs. Verilog

Page 25: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog Module

1 module moduleName ( p o r t L i s t ) ;2 po r t d e c l a r a t i o n ;3 [ o t h e r d e c l a r a t i o n ; ] // z .B . l o k a l e Va r i a b l e n4

5 s t a t emen t s ;6 endmodule

19 / 83

VHDL vs. Verilog

Page 26: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Datentypen Beide

Gängige Datentypen gleich, z.B.

booleanbitskalare�iesskommacharactersinteger im Bereich (−(231 − 1) bis (231 − 1))

20 / 83

VHDL vs. Verilog

Page 27: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Datentypen Verilog

Schlüsselwort Beschreibung

wire Einfache Verbindung zwischen Schaltungs-elemeten, Leitung, Variable

reg Verbindung mit Speicherverhalten, Ziel fürZuweisungen, Variable

Tabelle: Datentypen in Verilog

21 / 83

VHDL vs. Verilog

Page 28: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Datentypen Verilog

Typ Syntax Beispiel

Leitung oder Va-riable mit einerBreite von einemBit

name reg enable;

Bus oder Varia-ble mit einer Breitevon n Bit

[n-1:0] name wire [3:0] nibble;

k Busse mit jeweilsn Bit [n-1:0] name [0:k-1] wire [2:0] activity [0:1];

Speicher mitk Speicherzellender Breite n Bit

[n-1:0] name [0:k-1]reg [7:0] memory [0:31];Zugri�: memory[4][2]

22 / 83

VHDL vs. Verilog

Page 29: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL Datentypen

std_ulogic

1: Wert 1; stark0: Wert 0; starkW: unbekannt; schwachL: Wert 0; schwachH: Wert 1; schwach(-): don't careStd_logic

Z: tristate/hochohmig; schwachX: unbekannt; stark; Ergebnis fehlerhaft entstandenU: unde�niert; uninitialisiert oder unbekanntes Signal

< datentyp > _vector ; z.B. Bit_vector(3 downto 0)

Records (aus bestehenden Typen zusammengesetzter Datentyp)

Eigene Typde�nitionen per type name is (liste, der, werte)

Typeinschränkung per subtype

23 / 83

VHDL vs. Verilog

Page 30: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Funktionen VHDL

function

procedure

24 / 83

VHDL vs. Verilog

Page 31: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL function

1 funct ion funcName ( p a r ame t e r L i s t e ) return type i s2 −− Dek l a r a t i o n ;3

4 begin5 −− S e q u e n z i e l l e Anweisungen6 return va r ;7 end funcName ;

25 / 83

VHDL vs. Verilog

Page 32: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

function VHDL

Aufruf mit keinem bis mehreren Argumenten

Argumentenklasse: Signale oder Konstanten

Argumente werden nur gelesen, daher Modus 'in' nicht unbedingtanzugeben

Schlüsselwort return unter Angabe des Rückgabewertes zumverlassen

nur ein Rückgabewert

Kann überall verwendet werden, wenn return Typ erlaubt ist

Alle sequenziellen Anweisungen ausser wait erlaubt

26 / 83

VHDL vs. Verilog

Page 33: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL procedure

1 procedure procName ( p a r am e t e r l i s t e ) i s2 −− Dek l a r a t i o n ;3

4 begin5 −− s e q u e n z i e l l e Anweisungen6 end procName ;

27 / 83

VHDL vs. Verilog

Page 34: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

procedure VHDL

Aufruf mit mehreren Argumenten

Argumentenklasse: Signale, Konstanten oder Variablen

in, out, inout bei Argumenten möglich

Werden bis zu einem return oder bis zum Ende (entsprechendeinem Prozess mit �sensitivity-list�) abgearbeitet

Kein bis viele Rückgabewerte

Kann überall verwendet werden, wenn return Typ erlaubt ist

28 / 83

VHDL vs. Verilog

Page 35: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

procedure VHDL

Ein wait darf enthalten sein, wenn nicht von einem Prozess mitSensitivity-Liste aufgerufen

Alle sequenziellen Anweisungen können Genutz werden

Bei paralleler Verwendung wird sie immer ausgeführt, wennArgument 'in' oder 'inout' sich ändert

29 / 83

VHDL vs. Verilog

Page 36: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Funktionen Verilog

function

task

30 / 83

VHDL vs. Verilog

Page 37: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog task

1 task taskName ;2 d e c l a r a t i o n ;3

4 s ta tement ;5 endtask

31 / 83

VHDL vs. Verilog

Page 38: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

task in Verilog

Darf Zeitverzögerungen aufweisen

input und output erlaubt

Eigenständiger Aufruf z.B. mit �tsk(out, in1);�

32 / 83

VHDL vs. Verilog

Page 39: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog function

1 funct ion [ range ] funct ionName ;2 d e c l a r a t i o n ;3

4 s ta tement ;5 endfunction

33 / 83

VHDL vs. Verilog

Page 40: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

function in Verilog

Darf keine Zeitverzögerung aufweisen, also Simulationszeit �Null�

Mindestens ein input aber kein output, Returnwert ersetzt denFunktionsnamen

Aufruf ist Teil einer Anweisung, z.B. �i=func(a, b);� dabei ist funcder Name

34 / 83

VHDL vs. Verilog

Page 41: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Grundlagen

Frank übernimmt nun und berichtet von der wunderschönenWelt der Operatoren

Fliegender Wechsel, please wait...

35 / 83

VHDL vs. Verilog

Page 42: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 43: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 44: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 45: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 46: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 47: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modularisierung

Bei der Modellierung eines Systems wird dieses in verschiedeneModule zerlegt, und diese Module dann getrennt voneinanderentwickelt.

Modulweise kann das Modell von der Verhaltensebene hin zurGatter- und Transistorebene entwickelt werden, da die Module nurüber ihre Schnittstellen kommunizieren.

Es gibt dabei vier Abstraktionsebenen:

Verhaltensebene: enthält Schleifen (for, while), Abfragen (if, case)

Register-Transfer-Ebene: enthält Zuweisungen, Operatoren

Gatterebene: enthält logische Gatter (und UDP bei Verilog)

Transistorebene: enthält Transistoren und Leitungen (nur Verilog)

36 / 83

VHDL vs. Verilog

Page 48: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Modul bei Verilog

Bei Verilog sind Module auch als Modul bezeichnet:

module full_adder(a, b, c_in, sum, c_out);

input a, b, c_in;output sum, c_out;

reg tmp1, tmp2, tmp3;

half_adder ha1(a, b, tmp1, tmp2); // calling modulehalf_adder ha2(tmp1, c_in, sum, tmp3); // half_adder

or(c_out, tmp2, tmp3);

endmodule

37 / 83

VHDL vs. Verilog

Page 49: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Komponente bei VHDL

Bei VHDL können andere Entities aufgerufen werden, wenn sie inder Architektur als Komponenten mit Portliste deklariert werden:

−− Deklaration der Komponente:component NAND2port (A, B: in STD_LOGIC; Z: out STD_LOGIC);end component;

−− Instantiierung der Komponente:N1: NAND2 port map (S1, S2, S3);

Dadurch wird Signal S1 mit Port A assoziiert, S2 mit Port B undS3 mit Port Z.

38 / 83

VHDL vs. Verilog

Page 50: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Pakete bei VHDL

Bei VHDL können Deklarationen, die man benötigt, auch zuPaketen (package) zusammmengefasst werden, die man mit �use�in den Code einbinden kann:

use WORK.SYNTH_PACK.all; −− Alle Deklarationen aus dem−− Paket SYNTH_PACK einbindenpackage PROGRAM_PACK isconstant PROP_DELAY: TIME; −− zurückgehaltene Konstantefunction "and" (L, R: MVL) return MVL;end package PROGRAM_PACK;

Ein Paketkörper ist nur nötig, wenn im Paket selbst Konstantenzurückgehalten werden oder Unterprogramme deklariert wurden, dienun Inhalte brauchen.

39 / 83

VHDL vs. Verilog

Page 51: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Pakete bei VHDL

Bei VHDL können Deklarationen, die man benötigt, auch zuPaketen (package) zusammmengefasst werden, die man mit �use�in den Code einbinden kann:

use WORK.SYNTH_PACK.all; −− Alle Deklarationen aus dem−− Paket SYNTH_PACK einbindenpackage PROGRAM_PACK isconstant PROP_DELAY: TIME; −− zurückgehaltene Konstantefunction "and" (L, R: MVL) return MVL;end package PROGRAM_PACK;

Ein Paketkörper ist nur nötig, wenn im Paket selbst Konstantenzurückgehalten werden oder Unterprogramme deklariert wurden, dienun Inhalte brauchen.

39 / 83

VHDL vs. Verilog

Page 52: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog-Zeitverhalten: Compilerdirektive

In Verilog wird im Code in Zeiteinheiten gerechnet, die mit derCompilerdirektive 'timescale festgelegt werden:

' timescale 1 ns / 100 ps

Jede Zeiteinheit dauert dann 1 ns, und Zeitbereiche kleiner als 100ps werden gerundet.

40 / 83

VHDL vs. Verilog

Page 53: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog-Zeitverhalten: VerhaltensebeneEs kann mehrere always- und initial-Blöcke geben.

always@(posedge Clk)beginend

alwayswait (Set == 1)beginwait (Set == 0)end

initialbeginend

41 / 83

VHDL vs. Verilog

Page 54: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog-Zeitverhalten: VerhaltensebeneEs kann mehrere always- und initial-Blöcke geben.

always@(posedge Clk)beginend

alwayswait (Set == 1)beginwait (Set == 0)end

initialbeginend

41 / 83

VHDL vs. Verilog

Page 55: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verilog-Zeitverhalten: VerhaltensebeneEs kann mehrere always- und initial-Blöcke geben.

always@(posedge Clk)beginend

alwayswait (Set == 1)beginwait (Set == 0)end

initialbeginend

41 / 83

VHDL vs. Verilog

Page 56: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verzögerungen

Code wird normalerweise sofort ausgeführt, kann aber aufverschiedene Arten verzögert werden:

#5 rst = 1'b0;rst = #5 1'b0;

Im ersten Fall wird die Ausführung um 5 Zeiteinheiten verzögert, imzweiten die Datenübernahme.

Q = @(posedge Clk) D;

Erst bei steigender Takt�anke von Clk werden die Datenübernommen.

42 / 83

VHDL vs. Verilog

Page 57: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Verzögerungen

Code wird normalerweise sofort ausgeführt, kann aber aufverschiedene Arten verzögert werden:

#5 rst = 1'b0;rst = #5 1'b0;

Im ersten Fall wird die Ausführung um 5 Zeiteinheiten verzögert, imzweiten die Datenübernahme.

Q = @(posedge Clk) D;

Erst bei steigender Takt�anke von Clk werden die Datenübernommen.

42 / 83

VHDL vs. Verilog

Page 58: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Zuweisungen und Gabelung

Blockierende Zuweisungen mit = werden als Ganzes ausgeführt, beinichtblockierenden mit <= werden die Daten zwischengespeichert.Die nächste Anweisung kann begonnen werden, auch bevor dieÜbernahme abgeschlossen ist:

#10 rst <= 1'b0;rst <= #5 1'b0;

Bei Gabelung beginnen die Anweisungen zwischen fork und joinebenfalls nebenläu�g:

forkjoin

43 / 83

VHDL vs. Verilog

Page 59: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Zuweisungen und Gabelung

Blockierende Zuweisungen mit = werden als Ganzes ausgeführt, beinichtblockierenden mit <= werden die Daten zwischengespeichert.Die nächste Anweisung kann begonnen werden, auch bevor dieÜbernahme abgeschlossen ist:

#10 rst <= 1'b0;rst <= #5 1'b0;

Bei Gabelung beginnen die Anweisungen zwischen fork und joinebenfalls nebenläu�g:

forkjoin

43 / 83

VHDL vs. Verilog

Page 60: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Kontinuierliche Zuordnung

Mit assign (und force) kann man Werte kontinuierlich zuordnen:

assign Z=Aassign A=B

Bis zum deassign (oder release) sind diese Werte dannkontinuierlich zugeordnet und können per einfacher Zuweisung mit= oder <= nicht geändert werden.

Im Beispiel hat eine Änderung von B zur Folge, dass A den neuenWert von B annimmt, und direkt darauf auch Z den neuen Wertvon A.

44 / 83

VHDL vs. Verilog

Page 61: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Kontinuierliche Zuordnung

Mit assign (und force) kann man Werte kontinuierlich zuordnen:

assign Z=Aassign A=B

Bis zum deassign (oder release) sind diese Werte dannkontinuierlich zugeordnet und können per einfacher Zuweisung mit= oder <= nicht geändert werden.

Im Beispiel hat eine Änderung von B zur Folge, dass A den neuenWert von B annimmt, und direkt darauf auch Z den neuen Wertvon A.

44 / 83

VHDL vs. Verilog

Page 62: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Gatterverzögerungen

Auch Gattern kann man Verzögerungen zuordnen:

and #4 (out1, a, b)xor #(3,5) (out2, a, b)

Bei Angabe einer Verzögerung gilt diese für alle Schaltungen desGatters, bei Angabe von zweien gilt die erste für steigende und diezweite für fallende Flanken.

45 / 83

VHDL vs. Verilog

Page 63: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL-Zeitverhalten

Bei VHDL entsprechen den always-Statements die Prozesse. JederProzess hat seine Sensitivitätsliste von Signalen, bei derenÄnderung er startet:

process edge_di�(q, d, clk , rst )beginend

Eine Verzögerung wird hier durch eine explizite Zeitangabe erklärt:Z <= A or B after 10 ns

Mit 'event hat man eine Möglichkeit, auf steigende oder fallendeFlanken zu reagieren:if D'event

46 / 83

VHDL vs. Verilog

Page 64: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL-Zeitverhalten

Bei VHDL entsprechen den always-Statements die Prozesse. JederProzess hat seine Sensitivitätsliste von Signalen, bei derenÄnderung er startet:

process edge_di�(q, d, clk , rst )beginend

Eine Verzögerung wird hier durch eine explizite Zeitangabe erklärt:Z <= A or B after 10 ns

Mit 'event hat man eine Möglichkeit, auf steigende oder fallendeFlanken zu reagieren:if D'event

46 / 83

VHDL vs. Verilog

Page 65: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL-Zeitverhalten

Bei VHDL entsprechen den always-Statements die Prozesse. JederProzess hat seine Sensitivitätsliste von Signalen, bei derenÄnderung er startet:

process edge_di�(q, d, clk , rst )beginend

Eine Verzögerung wird hier durch eine explizite Zeitangabe erklärt:Z <= A or B after 10 ns

Mit 'event hat man eine Möglichkeit, auf steigende oder fallendeFlanken zu reagieren:if D'event

46 / 83

VHDL vs. Verilog

Page 66: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

VHDL: wait

Ausserdem gibt es mit wait eine Möglichkeit, auf verschiedeneArten von Vorkommnissen zu warten:

wait on A, B, C;wait until A = B;wait for 10 ns;wait on CLOCK for 20 ns;wait until SUM > 100 for 50 ns;wait on CLOCK until SUM > 100;

47 / 83

VHDL vs. Verilog

Page 67: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Operatoren

Arithmetische Operatoren

Logische Operatoren

Vergleichsoperatoren

Schiebeoperatoren

Zusammenfügungsoperatoren

Konditionaler Operator (nur Verilog)

48 / 83

VHDL vs. Verilog

Page 68: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Arithmetische Operatoren

Grundrechenarten (+, -, *, /)

Die Grundrechenarten können auch auf Bitvektoren angewendetwerden, die dann als Binärzahlen interpretiert werden.

Absolutwert (ABS) und Exponentiation (**) bei VHDL

Modulo (% bei Verilog, MOD, REM bei VHDL)

REM (VHDL-Rest) übernimmt das Vorzeichen des Dividenden,ebenso wie % (Verilog-Modulo):

5 REM 3 = 2, 5 REM -3 = 2, -5 REM 3 = -2, -5 REM -3 = -2

MOD (VHDL-Modulo) übernimmt das Vorzeichen des Divisors:

5 MOD 3 = 2, 5 MOD -3 = -1, -5 MOD 3 = 1, -5 MOD -3 = -2

49 / 83

VHDL vs. Verilog

Page 69: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Arithmetische Operatoren

Grundrechenarten (+, -, *, /)

Die Grundrechenarten können auch auf Bitvektoren angewendetwerden, die dann als Binärzahlen interpretiert werden.

Absolutwert (ABS) und Exponentiation (**) bei VHDL

Modulo (% bei Verilog, MOD, REM bei VHDL)

REM (VHDL-Rest) übernimmt das Vorzeichen des Dividenden,ebenso wie % (Verilog-Modulo):

5 REM 3 = 2, 5 REM -3 = 2, -5 REM 3 = -2, -5 REM -3 = -2

MOD (VHDL-Modulo) übernimmt das Vorzeichen des Divisors:

5 MOD 3 = 2, 5 MOD -3 = -1, -5 MOD 3 = 1, -5 MOD -3 = -2

49 / 83

VHDL vs. Verilog

Page 70: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Arithmetische Operatoren

Grundrechenarten (+, -, *, /)

Die Grundrechenarten können auch auf Bitvektoren angewendetwerden, die dann als Binärzahlen interpretiert werden.

Absolutwert (ABS) und Exponentiation (**) bei VHDL

Modulo (% bei Verilog, MOD, REM bei VHDL)

REM (VHDL-Rest) übernimmt das Vorzeichen des Dividenden,ebenso wie % (Verilog-Modulo):

5 REM 3 = 2, 5 REM -3 = 2, -5 REM 3 = -2, -5 REM -3 = -2

MOD (VHDL-Modulo) übernimmt das Vorzeichen des Divisors:

5 MOD 3 = 2, 5 MOD -3 = -1, -5 MOD 3 = 1, -5 MOD -3 = -2

49 / 83

VHDL vs. Verilog

Page 71: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Arithmetische Operatoren

Grundrechenarten (+, -, *, /)

Die Grundrechenarten können auch auf Bitvektoren angewendetwerden, die dann als Binärzahlen interpretiert werden.

Absolutwert (ABS) und Exponentiation (**) bei VHDL

Modulo (% bei Verilog, MOD, REM bei VHDL)

REM (VHDL-Rest) übernimmt das Vorzeichen des Dividenden,ebenso wie % (Verilog-Modulo):

5 REM 3 = 2, 5 REM -3 = 2, -5 REM 3 = -2, -5 REM -3 = -2

MOD (VHDL-Modulo) übernimmt das Vorzeichen des Divisors:

5 MOD 3 = 2, 5 MOD -3 = -1, -5 MOD 3 = 1, -5 MOD -3 = -2

49 / 83

VHDL vs. Verilog

Page 72: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Arithmetische Operatoren

Grundrechenarten (+, -, *, /)

Die Grundrechenarten können auch auf Bitvektoren angewendetwerden, die dann als Binärzahlen interpretiert werden.

Absolutwert (ABS) und Exponentiation (**) bei VHDL

Modulo (% bei Verilog, MOD, REM bei VHDL)

REM (VHDL-Rest) übernimmt das Vorzeichen des Dividenden,ebenso wie % (Verilog-Modulo):

5 REM 3 = 2, 5 REM -3 = 2, -5 REM 3 = -2, -5 REM -3 = -2

MOD (VHDL-Modulo) übernimmt das Vorzeichen des Divisors:

5 MOD 3 = 2, 5 MOD -3 = -1, -5 MOD 3 = 1, -5 MOD -3 = -2

49 / 83

VHDL vs. Verilog

Page 73: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Logische OperatorenVHDL kennt nur eine Gruppe logischer Operatoren, die jeweilssowohl auf Bits und Bitvektoren angewendet werden können, undein Resultat in diesen Datentypen zurückgeben:NOT, AND, OR, NAND, NOR, XOR und XNOR.

Bei Verilog dagegen gibt es drei Arten:

Logische Operatoren

Die Eingabewerte werden als Bits interpretiert, das Resultat ist einBit.

Bitweise Operatoren

Eingabewerte sind hier Bitvektoren gleicher Länge, ebenso dasResultat.

Reduktionsoperatoren

Eingabewert ist hier ein Bitvektor, dessen Bits mit dem Operatorverknüpft werden, das Resultat ist ein Bit.

50 / 83

VHDL vs. Verilog

Page 74: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Logische OperatorenVHDL kennt nur eine Gruppe logischer Operatoren, die jeweilssowohl auf Bits und Bitvektoren angewendet werden können, undein Resultat in diesen Datentypen zurückgeben:NOT, AND, OR, NAND, NOR, XOR und XNOR.

Bei Verilog dagegen gibt es drei Arten:

Logische Operatoren

Die Eingabewerte werden als Bits interpretiert, das Resultat ist einBit.

Bitweise Operatoren

Eingabewerte sind hier Bitvektoren gleicher Länge, ebenso dasResultat.

Reduktionsoperatoren

Eingabewert ist hier ein Bitvektor, dessen Bits mit dem Operatorverknüpft werden, das Resultat ist ein Bit.

50 / 83

VHDL vs. Verilog

Page 75: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Logische OperatorenVHDL kennt nur eine Gruppe logischer Operatoren, die jeweilssowohl auf Bits und Bitvektoren angewendet werden können, undein Resultat in diesen Datentypen zurückgeben:NOT, AND, OR, NAND, NOR, XOR und XNOR.

Bei Verilog dagegen gibt es drei Arten:

Logische Operatoren

Die Eingabewerte werden als Bits interpretiert, das Resultat ist einBit.

Bitweise Operatoren

Eingabewerte sind hier Bitvektoren gleicher Länge, ebenso dasResultat.

Reduktionsoperatoren

Eingabewert ist hier ein Bitvektor, dessen Bits mit dem Operatorverknüpft werden, das Resultat ist ein Bit.

50 / 83

VHDL vs. Verilog

Page 76: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Logische OperatorenVHDL kennt nur eine Gruppe logischer Operatoren, die jeweilssowohl auf Bits und Bitvektoren angewendet werden können, undein Resultat in diesen Datentypen zurückgeben:NOT, AND, OR, NAND, NOR, XOR und XNOR.

Bei Verilog dagegen gibt es drei Arten:

Logische Operatoren

Die Eingabewerte werden als Bits interpretiert, das Resultat ist einBit.

Bitweise Operatoren

Eingabewerte sind hier Bitvektoren gleicher Länge, ebenso dasResultat.

Reduktionsoperatoren

Eingabewert ist hier ein Bitvektor, dessen Bits mit dem Operatorverknüpft werden, das Resultat ist ein Bit.

50 / 83

VHDL vs. Verilog

Page 77: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Vergleichsoperatoren

Bei VHDL gibt es nur eine Sorte Vergleichsoperatoren:

>, >=, <=, <, = und ! =

Bei Bitvektoren werden die Operanden von links nach rechtsverglichen. Das Resultat ist ein Wahrheitswert.

Bei Verilog gibt es dagegen zwei Sorten:

Vergleichsoperatoren >, >=, <= und <

Gleichheitsoperatoren ==, ! =, === und ! ==

Die Operanden werden auch von links nach rechts verglichen. DasResultat ist ein Bit: 0, 1 oder x (unbekannt).

Bei === und ! == ist als Resultat nur 0 oder 1 möglich, wobeidie Gleichheit aller Bits überprüft wird, auch x und z.

51 / 83

VHDL vs. Verilog

Page 78: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Vergleichsoperatoren

Bei VHDL gibt es nur eine Sorte Vergleichsoperatoren:

>, >=, <=, <, = und ! =

Bei Bitvektoren werden die Operanden von links nach rechtsverglichen. Das Resultat ist ein Wahrheitswert.

Bei Verilog gibt es dagegen zwei Sorten:

Vergleichsoperatoren >, >=, <= und <

Gleichheitsoperatoren ==, ! =, === und ! ==

Die Operanden werden auch von links nach rechts verglichen. DasResultat ist ein Bit: 0, 1 oder x (unbekannt).

Bei === und ! == ist als Resultat nur 0 oder 1 möglich, wobeidie Gleichheit aller Bits überprüft wird, auch x und z.

51 / 83

VHDL vs. Verilog

Page 79: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Vergleichsoperatoren

Bei VHDL gibt es nur eine Sorte Vergleichsoperatoren:

>, >=, <=, <, = und ! =

Bei Bitvektoren werden die Operanden von links nach rechtsverglichen. Das Resultat ist ein Wahrheitswert.

Bei Verilog gibt es dagegen zwei Sorten:

Vergleichsoperatoren >, >=, <= und <

Gleichheitsoperatoren ==, ! =, === und ! ==

Die Operanden werden auch von links nach rechts verglichen. DasResultat ist ein Bit: 0, 1 oder x (unbekannt).

Bei === und ! == ist als Resultat nur 0 oder 1 möglich, wobeidie Gleichheit aller Bits überprüft wird, auch x und z.

51 / 83

VHDL vs. Verilog

Page 80: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Vergleichsoperatoren

Bei VHDL gibt es nur eine Sorte Vergleichsoperatoren:

>, >=, <=, <, = und ! =

Bei Bitvektoren werden die Operanden von links nach rechtsverglichen. Das Resultat ist ein Wahrheitswert.

Bei Verilog gibt es dagegen zwei Sorten:

Vergleichsoperatoren >, >=, <= und <

Gleichheitsoperatoren ==, ! =, === und ! ==

Die Operanden werden auch von links nach rechts verglichen. DasResultat ist ein Bit: 0, 1 oder x (unbekannt).

Bei === und ! == ist als Resultat nur 0 oder 1 möglich, wobeidie Gleichheit aller Bits überprüft wird, auch x und z.

51 / 83

VHDL vs. Verilog

Page 81: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

SchiebeoperatorenVerilog kennt nur die logischen Schiebeoperatoren << und >>.

VHDL kennt drei Arten:

Logische Schiebeoperatoren: SLL und SRL

Arithmetische Schiebeoperatoren: SLA und SRA

Rotationsoperatoren: ROL und ROR

Alle verschieben einen Bitvektor um die angegebene Anzahl vonStellen nach links oder rechts.

Bei den logischen und arithmetischen Operatoren verschwinden dieherausgeschobenen Bits, während Nullen (logisch) oder der Inhaltder letzten Stelle (arithmetisch) nachgeschoben werden.

Beim Rotieren werden die herausgeschobenen Bits auf der anderenSeite hereingeschoben.

52 / 83

VHDL vs. Verilog

Page 82: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

SchiebeoperatorenVerilog kennt nur die logischen Schiebeoperatoren << und >>.

VHDL kennt drei Arten:

Logische Schiebeoperatoren: SLL und SRL

Arithmetische Schiebeoperatoren: SLA und SRA

Rotationsoperatoren: ROL und ROR

Alle verschieben einen Bitvektor um die angegebene Anzahl vonStellen nach links oder rechts.

Bei den logischen und arithmetischen Operatoren verschwinden dieherausgeschobenen Bits, während Nullen (logisch) oder der Inhaltder letzten Stelle (arithmetisch) nachgeschoben werden.

Beim Rotieren werden die herausgeschobenen Bits auf der anderenSeite hereingeschoben.

52 / 83

VHDL vs. Verilog

Page 83: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

SchiebeoperatorenVerilog kennt nur die logischen Schiebeoperatoren << und >>.

VHDL kennt drei Arten:

Logische Schiebeoperatoren: SLL und SRL

Arithmetische Schiebeoperatoren: SLA und SRA

Rotationsoperatoren: ROL und ROR

Alle verschieben einen Bitvektor um die angegebene Anzahl vonStellen nach links oder rechts.

Bei den logischen und arithmetischen Operatoren verschwinden dieherausgeschobenen Bits, während Nullen (logisch) oder der Inhaltder letzten Stelle (arithmetisch) nachgeschoben werden.

Beim Rotieren werden die herausgeschobenen Bits auf der anderenSeite hereingeschoben.

52 / 83

VHDL vs. Verilog

Page 84: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Zusammenfügungsoperatoren

Bei VHDL werden Bitvektoren mit dem & Operatoraneinandergehängt.

Bei Verilog werden Bitvektoren mit dem Anhängeoperator { } unddem Replikationsoperator { { } } zusammengefügt:

A = 1'b1; B = 2'b00; C = 2'b11;

X = { A, B } // X = 3'b100Y = { A, 2{B}, C } // Y = 7'b1000011

53 / 83

VHDL vs. Verilog

Page 85: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Zusammenfügungsoperatoren

Bei VHDL werden Bitvektoren mit dem & Operatoraneinandergehängt.

Bei Verilog werden Bitvektoren mit dem Anhängeoperator { } unddem Replikationsoperator { { } } zusammengefügt:

A = 1'b1; B = 2'b00; C = 2'b11;

X = { A, B } // X = 3'b100Y = { A, 2{B}, C } // Y = 7'b1000011

53 / 83

VHDL vs. Verilog

Page 86: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Zusammenfügungsoperatoren

Bei VHDL werden Bitvektoren mit dem & Operatoraneinandergehängt.

Bei Verilog werden Bitvektoren mit dem Anhängeoperator { } unddem Replikationsoperator { { } } zusammengefügt:

A = 1'b1; B = 2'b00; C = 2'b11;

X = { A, B } // X = 3'b100Y = { A, 2{B}, C } // Y = 7'b1000011

53 / 83

VHDL vs. Verilog

Page 87: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Konditionaler Operator

Der konditionale Operator ? : hat drei Argumente, wovon das ersteein Bit ist und die beiden anderen Bitvektoren gleicher Länge sind,wie auch das Resultat. Ist das Bit 1, wird das zweite Argumentübernommen, bei 0 das dritte. Ist das Bit x, werdenübereinstimmende Stellen übernommen und die übrigen mit xbelegt.

54 / 83

VHDL vs. Verilog

Page 88: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Konstrukte auf Gatterebene

In Verilog können neue Gatter erstellt werden. Für diese UserDe�ned Primitives (UDP) gilt:

Eingabewerte sind im UDP bestimmte Bits

Ausgabewert ist immer ein einziges Bit

Mit Hilfe einer Wahrheitstabelle in der Deklaration kann derAusgabewert dann bestimmt werden. Dabei gibt es zwei Typen:

Kombinatorische UDP

Sequentielle UDP

55 / 83

VHDL vs. Verilog

Page 89: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Konstrukte auf Gatterebene

In Verilog können neue Gatter erstellt werden. Für diese UserDe�ned Primitives (UDP) gilt:

Eingabewerte sind im UDP bestimmte Bits

Ausgabewert ist immer ein einziges Bit

Mit Hilfe einer Wahrheitstabelle in der Deklaration kann derAusgabewert dann bestimmt werden. Dabei gibt es zwei Typen:

Kombinatorische UDP

Sequentielle UDP

55 / 83

VHDL vs. Verilog

Page 90: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Konstrukte auf Gatterebene

In Verilog können neue Gatter erstellt werden. Für diese UserDe�ned Primitives (UDP) gilt:

Eingabewerte sind im UDP bestimmte Bits

Ausgabewert ist immer ein einziges Bit

Mit Hilfe einer Wahrheitstabelle in der Deklaration kann derAusgabewert dann bestimmt werden. Dabei gibt es zwei Typen:

Kombinatorische UDP

Sequentielle UDP

55 / 83

VHDL vs. Verilog

Page 91: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Konstrukte auf Gatterebene

In Verilog können neue Gatter erstellt werden. Für diese UserDe�ned Primitives (UDP) gilt:

Eingabewerte sind im UDP bestimmte Bits

Ausgabewert ist immer ein einziges Bit

Mit Hilfe einer Wahrheitstabelle in der Deklaration kann derAusgabewert dann bestimmt werden. Dabei gibt es zwei Typen:

Kombinatorische UDP

Sequentielle UDP

55 / 83

VHDL vs. Verilog

Page 92: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Kombinatorische UDP

Bei kombinatorischen UDP ist der Ausgabewert immer direkt vonden Eingabewerten und nichts anderem abhängig.

Der Ausgabewert wird dabei einer Wahrheitstabelle entnommen. Indieser Wahrheitstabelle sollten alle Kombinationen derEingabewerte abgedeckt werden.

Bei nicht abgedeckten Kombinationen der Eingabewerte ergibt sichals Rückgabewert x.

56 / 83

VHDL vs. Verilog

Page 93: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Kombinatorische UDP - Beispiel

primitive udp_or(out, a, b);//Deklarationenoutput out;input a, b;

table// a b : out;0 0 : 0;? 1 : 1;1 ? : 1;endtable

endprimitive

Das Fragezeichen steht für '0, 1 oder x'.

57 / 83

VHDL vs. Verilog

Page 94: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP

Bei sequentiellen UDP gibt es wichtige Unterschiede zukombinatorischen UDP:

Der neue Ausgabewert nicht nur von den Eingabewerten, sondernauch vom bisherigen Ausgabewert abhängig. Der Ausgabewert wirdhier als Zustand bezeichnet.

Der Zustand wird in einem Register festgehalten; dieserRegisterwert kann auch initialisiert werden.

Die Eingabewerte können als Werte oder als Übergänge (Flanken) inder Tabelle erscheinen.

Alle möglichen Kombinationen der Eingabewerte müssen in derWahrheitstabelle angegeben werden, um unbekannte Ausgabewerte(x) zu vermeiden.

58 / 83

VHDL vs. Verilog

Page 95: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP

Bei sequentiellen UDP gibt es wichtige Unterschiede zukombinatorischen UDP:

Der neue Ausgabewert nicht nur von den Eingabewerten, sondernauch vom bisherigen Ausgabewert abhängig. Der Ausgabewert wirdhier als Zustand bezeichnet.

Der Zustand wird in einem Register festgehalten; dieserRegisterwert kann auch initialisiert werden.

Die Eingabewerte können als Werte oder als Übergänge (Flanken) inder Tabelle erscheinen.

Alle möglichen Kombinationen der Eingabewerte müssen in derWahrheitstabelle angegeben werden, um unbekannte Ausgabewerte(x) zu vermeiden.

58 / 83

VHDL vs. Verilog

Page 96: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP

Bei sequentiellen UDP gibt es wichtige Unterschiede zukombinatorischen UDP:

Der neue Ausgabewert nicht nur von den Eingabewerten, sondernauch vom bisherigen Ausgabewert abhängig. Der Ausgabewert wirdhier als Zustand bezeichnet.

Der Zustand wird in einem Register festgehalten; dieserRegisterwert kann auch initialisiert werden.

Die Eingabewerte können als Werte oder als Übergänge (Flanken) inder Tabelle erscheinen.

Alle möglichen Kombinationen der Eingabewerte müssen in derWahrheitstabelle angegeben werden, um unbekannte Ausgabewerte(x) zu vermeiden.

58 / 83

VHDL vs. Verilog

Page 97: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP

Bei sequentiellen UDP gibt es wichtige Unterschiede zukombinatorischen UDP:

Der neue Ausgabewert nicht nur von den Eingabewerten, sondernauch vom bisherigen Ausgabewert abhängig. Der Ausgabewert wirdhier als Zustand bezeichnet.

Der Zustand wird in einem Register festgehalten; dieserRegisterwert kann auch initialisiert werden.

Die Eingabewerte können als Werte oder als Übergänge (Flanken) inder Tabelle erscheinen.

Alle möglichen Kombinationen der Eingabewerte müssen in derWahrheitstabelle angegeben werden, um unbekannte Ausgabewerte(x) zu vermeiden.

58 / 83

VHDL vs. Verilog

Page 98: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP - Beispiel

primitive edge_di�(q, d, clock , clear );

//Deklarationenoutput q;reg q;input d, clock , clear ;

// Sequentielle Initialisierunginitialq = 0;

59 / 83

VHDL vs. Verilog

Page 99: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Sequentielle UDP-Beispiel

table// d clock clear : q : q+ ;? ? 1 : ? : 0 ; //wenn clear=1, output=0? ? (10) : ? : − ; //Zustand bei fallender Flanke von clear halten1 (10) 0 : ? : 1 ; //Übernehme d bei fallender0 (10) 0 : ? : 0 ; //Flanke von clock? (1x) 0 : ? : − ; //Zustand bei Übergang von clock zu x halten? (0?) 0 : ? : − ; //Zustand bei steigendem Übergang von clock halten? (x1) 0 : ? : − ; //Zustand bei steigendem Übergang von clock halten(??) ? 0 : ? : − ; //Solange clock gleich bleibt , Zustand haltenendtable

endprimitive

60 / 83

VHDL vs. Verilog

Page 100: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Übersicht1 Einleitung

AnfängeProgrammablaufKomplexität

2 GrundlagenDatentypenFunktionenModularisierungZeitverhaltenOperatorenKonstrukte auf Gatterebene

3 ProgrambeispieleVHDL EncoderVerilog Decoder

4 Fazit

61 / 83

VHDL vs. Verilog

Page 101: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Code

Non Return to Zero (NRZ)

Manchester Daten =Clock XOR NRZ

DC Anteil gleich Null

UART ähnliche Übertragung

62 / 83

VHDL vs. Verilog

Page 102: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Code

Non Return to Zero (NRZ)

Manchester Daten =Clock XOR NRZ

DC Anteil gleich Null

UART ähnliche Übertragung

62 / 83

VHDL vs. Verilog

Page 103: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Code

Non Return to Zero (NRZ)

Manchester Daten =Clock XOR NRZ

DC Anteil gleich Null

UART ähnliche Übertragung

Quelle Wiki: http://de.wikipedia.org/wiki/Bild:

Manchester_encoding_both_conventions.svg

62 / 83

VHDL vs. Verilog

Page 104: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Code

Non Return to Zero (NRZ)

Manchester Daten =Clock XOR NRZ

DC Anteil gleich Null

UART ähnliche Übertragung

Quelle Wiki: http://de.wikipedia.org/wiki/Bild:

Manchester_encoding_both_conventions.svg

62 / 83

VHDL vs. Verilog

Page 105: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Code

Non Return to Zero (NRZ)

Manchester Daten =Clock XOR NRZ

DC Anteil gleich Null

UART ähnliche Übertragung

Quelle Wiki:

http://de.wikipedia.org/wiki/Bild:RS-232_timing.png

62 / 83

VHDL vs. Verilog

Page 106: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Aufbau der Encoder Entity me:

ent i t y me i sport (

r s t , c lk16x , wrn : i n s t d_ l og i c ;d i n : i n s t d_ log i c_vec to r (7 downto 0) ;t b r e : out s t d_ l og i c ;mdo : out s t d_ l og i c

) ;end me ;

63 / 83

VHDL vs. Verilog

Page 107: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Parameter in der Entity port Liste:

Name Typ Bedeutung

rst in Encoder Resetwrn in Write Register Nextclk16x in 16-facher Taktdin in[7:0] NRZ Daten Vectortbre out Transceiver Bu�er Register Emptymdo out Manchester Data Out

64 / 83

VHDL vs. Verilog

Page 108: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule
Page 109: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Struktur der Architektur für die me Entity:

arch i tec tu re v1 of me i s

s i gna l c l k 1 x : s t d_ l og i c ;s i gna l c l k1x_enab l e : s t d_ l og i c ;s i gna l c l k d i v : s t d_ log i c_vec to r (3 downto 0 ) ;s i gna l t s r : s t d_ log i c_vec to r (7 downto 0 ) ;s i gna l t b r : s t d_ log i c_vec to r (7 downto 0 ) ;s i gna l no_bits_sent : s t d_ log i c_vec to r (3 downto 0 ) ;

begin−− Ständ i ge Zuweisungen und Proz e s s e

end ;

66 / 83

VHDL vs. Verilog

Page 110: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Interne Signale der Architektur:

Name Typ1 Bedeutung

clk1x std_logic MC Clockclk1x_enable std_logic Freigabe Status für clk1xclkdiv stdlv[3:0] Clock Counter Registertsr stdlv[7:0] Ausgabe Vektortbr stdlv[7:0] Temporärer Vektorno_bits_sent stdlv[3:0] Bit Counter Register

1stdlv[n:0]=�std_logic_vector (n downto 0)�

67 / 83

VHDL vs. Verilog

Page 111: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Interne Signale der Architektur:

Name Typ1 Bedeutung

clk1x std_logic MC Clockclk1x_enable std_logic Freigabe Status für clk1xclkdiv stdlv[3:0] Clock Counter Registertsr stdlv[7:0] Ausgabe Vektortbr stdlv[7:0] Temporärer Vektorno_bits_sent stdlv[3:0] Bit Counter Register

1stdlv[n:0]=�std_logic_vector (n downto 0)�

67 / 83

VHDL vs. Verilog

Page 112: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Direkte Zuweisung in der Architektur:

−− s e t t i n g up the c l k 1 xc l k 1 x <= c l k d i v (3 ) ;−− Genera te Manchester data from NRZmdo <= t s r (7 ) xor c l k 1 x ;

68 / 83

VHDL vs. Verilog

Page 113: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Prozessbeispiel: Takt einschalten

process ( r s t , c l k16x , wrn , no_bits_sent )begin

i f r s t = '1 ' or s t d_ log i c_vec to r ( no_bits_sent ) ="1010" then

c l k1x_enab l e <= ' 0 ' ;e l s i f c lk16x ' even t and c l k 16x = '1 ' then

i f ( wrn = '1 ' ) thenc l k1x_enab l e <= ' 1 ' ;

end i f ;end i f ;

end process ;

69 / 83

VHDL vs. Verilog

Page 114: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Prozessbeispiel: Taktzähler inkrementieren

process ( r s t , c l k16x , c l k d i v , c l k1x_enab l e )begin

i f r s t = '1 ' thenc l k d i v <= "0000" ;

e l s i f c lk16x ' even t and c l k 16x = '1 ' theni f c l k1x_enab l e = '1 ' then

c l k d i v <= c l k d i v + "0001" ;end i f ;

end i f ;end process ;

70 / 83

VHDL vs. Verilog

Page 115: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Prozessbeispiel: Source Register laden und Rotieren

process ( r s t , c l k1x , no_bits_sent , t s r )begin

i f r s t = '1 ' thent s r <= "00000000" ;

e l s i f c lk1x ' even t and c l k 1 x = '1 ' theni f s t d_ log i c_vec to r ( no_bits_sent ) = "0001" then

t s r <= tb r ;e l s i f s t d_ log i c_vec to r ( no_bits_sent ) >= "0010"and s t d_ log i c_vec to r ( no_bits_sent ) <= "1010"

thent s r <= t s r (6 downto 0) & ' 0 ' ;

end i f ;end i f ;

end process ;

71 / 83

VHDL vs. Verilog

Page 116: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Encoder (VHDL)

Starting Simulation of VHDL me

Loading, please wait...

72 / 83

VHDL vs. Verilog

Page 117: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)Aufbau des Decoder Modul md:

module md ( r s t , c l k16x , mdi , rdn , dout , data_ready ) ;

input r s t ;input c l k 16x ;input mdi ;input rdn ;output [ 7 : 0 ] dout ;output data_ready ;

// Dek l a r a t i o n i n t e r n e r Va r i a b l e n bzw . R e g i s t e r

// D i r e k t e Zuweisungen a s s i g n

// P roz e s s e bzw . a lways Blöcke

endmodule

73 / 83

VHDL vs. Verilog

Page 118: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Parameter des md Moduls:

Name Typ Bedeutung

rst input Decoder Resetrdn input Lese Kontroll Signalclk16x input 16-facher Clockmdi input MC Daten Eingangdata_ready output Decoding fertig Status Signaldout output [7:0] Array mit den Decodierten NRZ Daten

74 / 83

VHDL vs. Verilog

Page 119: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Interne Signale des Moduls:

Name Typ Bedeutung

clk1x_enable reg Freigabe Status für clk1xmdi1,mdi2 reg Letzter Zustand von mdi

nrz reg NRZ Wert des letzten/aktuellen sampleno_bits_rcvd reg [3:0] Wort Zähler/ Operations Statusclkdiv reg [3:0] Clock Counter Registerrsr reg [7:0] Ergebniszwischenspeicher zum shiftenclk1x wire MC Taktsample wire Zeitgeber für 1/4 und 3/4 Takt Lesungen

75 / 83

VHDL vs. Verilog

Page 120: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Direkte Zuweisung im Modul:

// Genera te c e n t e r sample at p o i n t s 1/4 (0011) and3/4 (1100) through the data c e l l

ass ign sample = ( ! c l k d i v [ 3 ] && ! c l k d i v [ 2 ] && c l k d i v[ 1 ] && c l k d i v [ 0 ] ) | | ( c l k d i v [ 3 ] && c l k d i v [ 2 ] &&! c l k d i v [ 1 ] && ! c l k d i v [ 0 ] ) ;

// Genera te 1x c l o c kass ign c l k 1 x = c l k d i v [ 3 ] ;

76 / 83

VHDL vs. Verilog

Page 121: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Prozessbeispiel: Manchester Code Decodieren

always @( posedge c l k 16x or posedge r s t )i f ( r s t )

n r z = 1 ' b0 ;e l s e

i f ( no_bits_rcvd > 0 && sample == 1 ' b1 )n rz = mdi2 ^ c l k 1 x ; // ^ i s XOR

77 / 83

VHDL vs. Verilog

Page 122: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Prozessbeispiel: Decodiertes Datum in Array speichern

always @( posedge c l k 1 x or posedge r s t )i f ( r s t ) begin

r s r <= 8 ' h0 ;ende l s e begin

r s r [ 7 : 1 ] <= r s r [ 6 : 0 ] ;r s r [ 0 ] <= nrz ;

end

78 / 83

VHDL vs. Verilog

Page 123: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Der Manchester Decoder (Verilog)

Prozessbeispiel: Bit-Zähl/Status Register erhöhen

always @( posedge c l k 1 x or posedge r s t or negedgec l k1x_enab l e )

begini f ( r s t )

no_bits_rcvd = 4 ' b0000 ;e l s e i f ( ! c l k1x_enab l e ) begin

no_bits_rcvd = 4 ' b0000 ;ende l s e

no_bits_rcvd = no_bits_rcvd + 1 ;end

79 / 83

VHDL vs. Verilog

Page 124: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Simulation Manchester Decoder

Starting Simulation of Verilog md

Loading, please wait...

80 / 83

VHDL vs. Verilog

Page 125: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Übersicht1 Einleitung

AnfängeProgrammablaufKomplexität

2 GrundlagenDatentypenFunktionenModularisierungZeitverhaltenOperatorenKonstrukte auf Gatterebene

3 ProgrambeispieleVHDL EncoderVerilog Decoder

4 Fazit

81 / 83

VHDL vs. Verilog

Page 126: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Die Wahl der Programmiersprache beinhaltet folgende Faktoren

Die Kompatibilität der eingesetzten Entwicklungsumgebung (EDA)

Vorkenntnisse der Programmierer

Pro VHDL

VHDL ist etwas weiter in Richtung Hochsprache angesiedelt

Wiederverwendbarkeit

Starke Typisierung

Mehr deklarativ als Verilog

Pro Verilog

Verilog ist für eine schnelle simple Umsetzung gut geeignet

82 / 83

VHDL vs. Verilog

Page 127: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Die Wahl der Programmiersprache beinhaltet folgende Faktoren

Die Kompatibilität der eingesetzten Entwicklungsumgebung (EDA)

Vorkenntnisse der Programmierer

Pro VHDL

VHDL ist etwas weiter in Richtung Hochsprache angesiedelt

Wiederverwendbarkeit

Starke Typisierung

Mehr deklarativ als Verilog

Pro Verilog

Verilog ist für eine schnelle simple Umsetzung gut geeignet

82 / 83

VHDL vs. Verilog

Page 128: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Die Wahl der Programmiersprache beinhaltet folgende Faktoren

Die Kompatibilität der eingesetzten Entwicklungsumgebung (EDA)

Vorkenntnisse der Programmierer

Pro VHDL

VHDL ist etwas weiter in Richtung Hochsprache angesiedelt

Wiederverwendbarkeit

Starke Typisierung

Mehr deklarativ als Verilog

Pro Verilog

Verilog ist für eine schnelle simple Umsetzung gut geeignet

82 / 83

VHDL vs. Verilog

Page 129: VHDL vs. Verilog - · PDF fileEinleitung Grundlagen Programbeispiele azitF VHDL vs. Verilog Anke Kamp Frank Schmidt Florian Thiem Fachbereich Elektrotechnik und Informatik Hochschule

Einleitung Grundlagen Programbeispiele Fazit

Ende.

So thank you for listening to us!

Are there any questions?

83 / 83

VHDL vs. Verilog