Migliore risposta
1.Verilog è un HDL (Hardware Description Language) mentre SystemVerilog (SV) è sia HDL che HVL (Hardware Verification Language), così combinato definito come HDVL.
2.Verilog ha principalmente 2 tipi di dati Reg e Wire che sono 4 logiche valutate 0,1, x, z mentre SV è arricchito con unampia varietà di tipo di dati come int, shortint, longint, logic, bit, real, realtime, reg, chandle, tipo di dati definito dallutente, ecc., che sono entrambi una combinazione di logica a 4 e 2 valori.
3.Memory e array le dichiarazioni su Verilog sono di natura statica mentre nel caso di SV è di natura dinamica significa che la dichiarazione può essere modificata durante la fase di compilazione.
4. Lintera coda degli eventi in Verilog è suddivisa in 4 regioni attive , regione inattiva, NBA e posticipata mentre in caso di SV è divisa in 17 regioni tra cui il PLI e lintroduzione del blocco di programma che ha incorporato il metodo race free testbench e utilizzato come separazione tra n DUT e TB a differenza di Verilog.
5.Verilog ha un unico blocco always per limplementazione della logica combinatoria e sequenziale mentre SV utilizza i costrutti always\_ff, always\_comb, always\_latch per luso di una logica diversa.
6.Il caso pieno e il caso parallelo in Verilog vengono sostituiti con unistruzione unica e di priorità in SV.
7.Limplementazione di FSM in SV è molto più semplice in SV con luso del tipo di dati enum che ha un numero di metodi come numero, primo, ultimo, successivo, precedente che aiuta a scopo di debug a differenza delluso di parametri in Verilog che è hardcoded.
8. SystemVerilog utilizza il costrutto dellinterfaccia che ha utilizzato per raggruppare tutti i segnali insieme al blocco di clock che viene utilizzato per la sincronizzazione a differenza di Verilog in cui listanza con il DUT diventa noiosa a causa del gran numero di segnali.
9.Verilog utilizza testbench a livello di modulo mentre SV utilizza testbench basato su classi che è di natura dinamica.
Answer
SystemVerilog è un superset e unestensione alla lingua Verilog . Per capire come si è evoluto, sarà bene comprendere brevemente la storia di come si è evoluto
Il linguaggio Verilog è iniziato nel 1983 come linguaggio proprietario per la modellazione hardware in Gateway Design Automation Inc. Gateway Design Automation è stata successivamente acquisita da Cadence nel 1990 e continui miglioramenti. Successivamente è diventato standard IEEE 1364 nel 1995 e ha iniziato a diventare più ampiamente utilizzato. Successivamente sono stati apportati due miglioramenti principali a Verilog in 2001 e 2005 .
Nello stesso lasso di tempo, le complessità di progettazione stavano aumentando e i miglioramenti nello standard Verilog riguardavano principalmente i costrutti RTL.
Anche le metodologie di verifica si sono evolute nello stesso lasso di tempo per gestire una verifica efficiente di progetti complessi. La verifica casuale vincolata con copertura e verifica basata sullasserzione stavano diventando più utili.
Poiché il linguaggio Verilog non supportava lo stesso, molti altri linguaggi orientati a Verification come Vera e Specman stava diventando ampiamente utilizzato nellindustria poiché supportava la maggior parte dei costrutti necessari per la verifica in termini di modellazione, stimolo, asserzioni, ecc. Ma questi linguaggi erano limitati a fornitori specifici e non a qualsiasi standard IEEE.
SystemVerilog era originariamente inteso come unestensione di Verilog 2005 ed è diventato lo standard IEEE 1800. È stato pubblicato come documento separato e comprende centinaia di miglioramenti ed estensioni a verilog. Nel 2009 è diventato ufficialmente un super set di Verilog ed è stato nuovamente aggiornato nel 2012 come IEEE 1800-2012 standard.
Cerano 5 principali aree in cui sono stati aggiunti miglioramenti in SystemVerilog
1) SVD – System Verilog for Design. Questo include diversi miglioramenti ai costrutti di progettazione.
2) SVTB – SystemVerilog per Testbenches: Questo era il più grande insieme di miglioramenti in SystemVerilog per supportare tutta la modellazione Testbench e necessita di metodologie di verifica più recenti.
Ciò include ad alto livello – Supporto alla programmazione orientata agli oggetti con Classes, un risolutore di vincoli con diverse capacità per la creazione di stimoli casuali vincolati, processi concorrenti , semafori, cassette postali e molti altri.
3) SVA – Asserzioni Verilog di sistema: include diverse caratteristiche per asserzioni temporali e concorrenti come proprietà e sequenze.
4) SVDPI – Interfaccia di programmazione diretta SV: include funzionalità per una migliore integrazione C / C ++
5) SVAPI – SV Application Programming Interface: include funzionalità per una migliore integrazione delle API per copertura e asserzioni
Per maggiori dettagli fare riferimento a IEEE 1800.2012 spec – 1800-2012 Standard