Verilog

aus Wikipedia, der freien Enzyklopadie
Zur Navigation springen Zur Suche springen

Verilog , standardisiert als IEEE 1364 , ist eine Hardwarebeschreibungssprache , die fur die Modellierung mikroelektronischer Systeme ( VLSI ) verwendet wird. [1] Verilog ist neben VHDL die weltweit meistgenutzte Hardwarebeschreibungssprache zum Entwerfen von Computerchips ( ASICs , FPGAs ).

Verilog wurde 1983/84 von Phil Moorby bei Gateway Design Automation ursprunglich als Simulationssprache entworfen. Der zweite wichtige Einsatzbereich ist die Synthese digitaler Schaltungen. Gateway Design Automation wurde 1990 von Cadence Design Systems aufgekauft. Cadence war nun Besitzer der Rechte an Verilog und des Logiksimulators Verilog-XL.

Parallel zu Verilog wurde die Beschreibungssprache VHDL immer popularer, und Cadence entschied 1995, Verilog in einen freien Standard umzuwandeln, verwaltet von der Organisation Open Verilog International (OVI, auch bekannt als Accellera). Verilog wurde beim IEEE eingereicht und im selben Jahr als IEEE Standard 1364?1995 (Verilog-95) verabschiedet.

Durch Zusammenfuhren von Verilog-A (Modellierungssprache fur analoge Schaltungen) und Verilog zu Verilog-AMS steht seit 1998 (erste Version) auch eine relativ leistungsfahige Sprache fur Analog/Mixed-Signal-Designs zur Verfugung. Fur den Analogbereich stehen jedoch keine Synthese-Tools zur Verfugung. Fur den Digitalbereich lieferte Synopsys bereits 1988 ein Synthese-Werkzeug fur Verilog aus.

Aufgrund von Einschrankungen, die von den Nutzern bemangelt wurden, veroffentlichte die IEEE im Jahr 2001 eine Erweiterung des Standards unter der Bezeichnung IEEE Standard 1364?2001, bekannt als Verilog 2001.

Im Juni 2002 erschien SystemVerilog 3.0, eine Erweiterung fur den IEEE Standard 1364?2001. Mit SystemVerilog war es nun moglich, Hardware nicht nur zu beschreiben, sondern auch elegant zu verifizieren. Verilog wurde somit durch SystemVerilog zur ersten Hardware-Beschreibungs- und Verifikationssprache ( englisch Hardware Description and Verification Language , kurz HDVL genannt). Auch in den letzten Jahren wurden standig Spracherweiterungen vorgenommen.

Verilog erlaubt es, Hardware (z. B. ICs ) auf einer hoheren Abstraktionsebene zu beschreiben, als es mit einem Schematic-Entry-Programm moglich ware. Die Architektur, das Verhalten und niedrigere Abstraktionslevel auf Gatterebene konnen beschrieben werden.

Beispiel fur ein Und-Gatter ( and gate )

// Dies ist ein Verilog HDL Kommentar


// Deklaration der Variablen als einfache Leitung

wire
 result
,
 a
,
 b
;


// Es gibt 3 Varianten, um ein (bitweises) UND-Gatter zu beschreiben

// Moglichkeit 1

assign
 result
 =
 a
 &
 b
;
 // kontinuierliche Zuweisung


// Moglichkeit 2

and
 instanzname
(
result
,
a
,
b
);
 // Instanzierung eines vorhandenen Moduls (hier ein eingebautes primitive)


// Moglichkeit 3

always
@(
a
 or
 b
)
 // Verhaltensbeschreibung

//reagiert auf jede Anderung von a oder b (Bei kombinatorischer Logik)

 begin

 result
 =
 a
 &
 b
;

 end


always
@(
a
 or
 b
)
 // alternative Verhaltensbeschreibung

//reagiert auf jede Anderung von a oder b (Bei kombinatorischer Logik)

 begin

 if
 (
a
)
 then
 result
 =
 b
;

 else
 result
 =
 1
'b0
;

 end

Beispiel fur eine Verhaltensbeschreibung eines Flipflops (synthetisierbar)

// Deklarationen

reg
 register_value
;
 // als Register oder Speichervariable

wire
 reset
,
 clock
,
 set
,
 en
,
 datain
;
 // als Leitung


// Flipflop mit asynchronem Rucksetzen, synchronem Setzen und synchronem Enable

always
 @(
posedge
 clock
 or
 negedge
 reset
)

begin

// Register reagiert auf positive clock-Flanke oder fallende reset-Flanke.

 if
 (
!
reset
)
 //asynchrones Rucksetzen, wenn reset = LOW

 register_value
 <=
 1
'b0
;

 else
 if
 (
set
)
 // synchrones Setzen, wenn set = HIGH

 register_value
 <=
 1
'b1
;

 else
 if
 (
en
)
 // synchrones Ubernehmen des Wertes von datain, wenn en = HIGH

 register_value
 <=
 datain
;

end

Neben den Beschreibungsmoglichkeiten fur Hardware bietet Verilog auch Merkmale aus anderen Sprachen, die z. B. fur das Debugging oder fur die Bereitstellung einer Testumgebung genutzt werden konnen. So ist es beispielsweise moglich, Textmeldungen auszugeben.

 module
 hello
;
 // Module Deklaration mit dem Schlusselwort "module" <name>;

 initial
 $display
 (
Hallo
 Welt
);
 // Einmalig ausfuhren, $display ist vergleichbar mit printf in C

 endmodule
 // Module ende Deklaration mit dem Schlusselwort endmodule

Wikibooks: Programmable Logic/Verilog  ? Lern- und Lehrmaterialien (englisch)

Einzelnachweise

[ Bearbeiten | Quelltext bearbeiten ]
  1. Brock J. LaMeres: Introduction to Logic Circuits & Logic Design with Verilog . Springer International Publishing, Cham 2019, ISBN 978-3-03013604-8 , doi : 10.1007/978-3-030-13605-5 (englisch, springer.com [abgerufen am 29. Dezember 2022]).