Beste Antwort
1.Verilog ist eine HDL (Hardware Description Language), während SystemVerilog (SV) sowohl eine HDL als auch eine HVL ist (Hardware Verification Language), so kombiniert als HDVL bezeichnet.
2.Verilog hat hauptsächlich 2 Datentypen Reg und Wire, die 4 logische Werte von 0,1, x, z haben, während SV mit einer Vielzahl von Werten angereichert ist Datentyp wie int, shortint, longint, Logik, Bit, Real, Echtzeit, reg, chandle, benutzerdefinierter Datentyp usw., die beide eine Kombination aus 4- und 2-wertiger Logik sind.
3. Speicher und Arrays Die Deklaration in Verilog ist statischer Natur, während im Falle von SV die dynamische Deklaration bedeutet, dass die Deklaration während der Kompilierungszeit geändert werden kann.
4. Die gesamte Ereigniswarteschlange in Verilog ist in 4 aktive Regionen unterteilt , inaktive, NBA- und verschobene Region, während sie im Falle von SV in 17 Regionen unterteilt ist, einschließlich der PLI und der Einführung eines Programmblocks, der eine rassenfreie Testbench-Methode eingebaut und als Trennung zwischen ihnen verwendet hat n DUT und TB im Gegensatz zu Verilog.
5.Verilog verfügt über einen einzelnen Always-Block für die Implementierung der kombinatorischen und sequentiellen Logik, während SV das Konstrukt always\_ff, always\_comb, always\_latch für die Verwendung unterschiedlicher Logik verwendet.
6.Voller Fall und paralleler Fall in Verilog werden in SV durch eindeutige und Prioritätsanweisung ersetzt.
7.FSM-Implementierung in SV ist in SV viel einfacher, wenn der Datentyp enum mit einer Anzahl von verwendet wird Methoden wie number, first, last, next, previous, die beim Debuggen helfen, im Gegensatz zur Verwendung von Parametern in Verilog, die fest codiert sind.
8. SystemVerilog verwendet ein Schnittstellenkonstrukt, das zum Bündeln aller Signale zusammen mit dem Taktblock verwendet wird, der für die Synchronisation verwendet wird, im Gegensatz zu Verilog, bei dem die Instanziierung mit dem Prüfling aufgrund einer großen Anzahl von Signalen mühsam wird.
9.Verilog verwendet Testbench auf Modulebene, während SV eine auf Klassen basierende Testbench verwendet, die dynamischer Natur ist.
Antwort
SystemVerilog ist eine Obermenge und eine Erweiterung der Sprache Verilog . Um zu verstehen, wie es sich entwickelt hat, ist es gut, die Geschichte kurz zu verstehen, wie es sich entwickelt hat.
Verilog-Sprache begann in 1983 als proprietäre Sprache für die Hardwaremodellierung unter Gateway Design Automation Inc. Gateway Design Automation wurde später von Cadence im Jahr 1990 übernommen und weiterentwickelt. Es wurde später 1995 IEEE-Standard 1364 und wurde zunehmend verwendet. Verilog wurde später in 2001 und 2005 um zwei wesentliche Verbesserungen erweitert.
Im gleichen Zeitraum nahmen die Designkomplexitäten zu und die Verbesserungen des Verilog-Standards betrafen hauptsächlich RTL-Konstrukte.
Im gleichen Zeitraum wurden auch Überprüfungsmethoden entwickelt, um die effiziente Überprüfung komplexer Designs zu ermöglichen. Die eingeschränkte zufällige Überprüfung mit Coverage und Assertion-basierter Überprüfung wurde immer nützlicher.
Da die Verilog-Sprache diese nicht unterstützte, wurden mehrere andere verifizierungsorientierte Sprachen wie Vera und Specman wurde in der Industrie immer häufiger eingesetzt, da diese die meisten Konstrukte unterstützten, die für die Verifizierung in Bezug auf Modellierung, Stimulus, Behauptungen usw. erforderlich waren. Diese Sprachen waren jedoch auf bestimmte Anbieter und nicht auf einen IEEE-Standard beschränkt.
SystemVerilog war ursprünglich als Erweiterung von Verilog 2005 gedacht und wurde zum IEEE-Standard 1800. Es wurde als separate Dokumentation veröffentlicht und besteht aus Hunderten von Verbesserungen und Erweiterungen zu verilog. Im Jahr 2009 wurde es offiziell zu einem Super-Set von Verilog und wurde 2012 erneut als IEEE 1800-2012 -Standard aktualisiert.
Es gab 5 Hauptstandards Bereiche, in denen Verbesserungen in SystemVerilog
hinzugefügt wurden 1) SVD – System Verilog for Design. Dies umfasst mehrere Verbesserungen an Entwurfskonstrukten.
2) SVTB – SystemVerilog für Testbenches: Dies war die größte Reihe von Verbesserungen in SystemVerilog zur Unterstützung der gesamten Testbench-Modellierung und zur Anforderung neuer Verifizierungsmethoden.
Dies umfasst auf hoher Ebene die Unterstützung der objektorientierten Programmierung mit Klassen, einen Einschränkungslöser mit mehreren Funktionen zum Erstellen von eingeschränkten zufälligen Stimuli und gleichzeitigen Prozessen , Semaphoren, Postfächer und vieles mehr.
3) SVA – System Verilog-Zusicherungen: Dies umfasst mehrere Funktionen für zeitliche und gleichzeitige Zusicherungen wie Eigenschaften und Sequenzen.
4) SVDPI – SV Direct Programming Interface: Dies beinhaltet Funktionen für bessere C / C ++ – Integration
5) SVAPI – SV Application Programming Interface: Dies beinhaltet Funktionen zur besseren Integration von APIs für Coverage und Assertions
Weitere Informationen finden Sie in IEEE 1800.2012 spec – 1800-2012 Standard