SystemVerilog: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m smistamento lavoro sporco e fix vari
Botcrux (discussione | contributi)
m Bot: codifica, sostituzione o rimozione di caratteri unicode per spazi tipografici particolari
Riga 8:
|paradigmi = Design: [[programmazione strutturata]], verifica: [[programmazione orientata agli oggetti]]
|tipizzazione = Statico, debole
|influenzato_da = Design: [[Verilog]], [[VHDL]], [[C++]],
Verifica: [[OpenVera]], [[Java (programming language)|Java]]
|ha_influenzato =
Riga 30:
 
== Caratteristiche a supporto della progettazione ==
 
=== Durata delle variabili ===
Esistono due tipi di durata delle variabili specificate in SystemVerilog: static e automatic. Le variabili automatiche vengono create nel momento in cui l'esecuzione del programma rientra nello scope della variabile. Le variabili statiche vengono create all'inizio dell'esecuzione del programma e mantengono lo stesso valore durante l'intero ciclo di vita del programma, a meno che non venga assegnato un nuovo valore durante l'esecuzione.
Line 242 ⟶ 241:
Le asserzioni SystemVerilog sono costruite da '''sequenze''' e '''proprietà'''. Le proprietà sono un superinsieme di sequenze; qualsiasi sequenza può essere utilizzata come se fosse una proprietà, sebbene ciò non sia tipicamente utile.
 
Le sequenze sono costituite da [[Espressione booleana|espressioni booleane]] aumentate con operatori temporali. L'operatore temporale più semplice è l'operatore <code>##</code> che esegue una concatenazione:  <syntaxhighlight lang="systemverilog" line="1">
sequence S1;
@(posedge clk) req ##1 gnt;
Line 258 ⟶ 257:
</syntaxhighlight>Questo esempio mostra un operatore di [[Implicazione logica|implicazione]] <code>|=></code>. La proposizione a sinistra dell'implicazione si chiama '''antecedente''' e quella a destra si chiama '''conseguente'''. [[Interpretazione (logica)|La valutazione]] di un'implicazione inizia attraverso ripetuti tentativi di valutare l'antecedente. Quando la valutazione dell'antecedente ha successo, si tenta la valutazione del conseguente, e il successo dell'asserzione dipende dal successo del conseguente. In questo esempio, il conseguente non verrà tentato finché <code>req</code> non diventa alto, dopodiché la proprietà fallirà se <code>gnt</code> non è alto nel clock successivo.
 
Oltre alle asserzioni, SystemVerilog supporta [[Presupposizione (linguistica)|le ipotesi]] e la copertura delle proprietà. Un'assunzione stabilisce una condizione che uno [[Dimostrazione automatica di teoremi|strumento formale di dimostrazione logica]] deve [[Assioma (matematica)|assumere come vera]]. Un'asserzione specifica una proprietà che deve essere dimostrata vera. Nella [[simulazione]], sia le asserzioni che le ipotesi vengono verificate rispetto agli stimoli del test. La copertura della proprietà consente all'ingegnere di verifica di verificare che le asserzioni stiano monitorando accuratamente il progetto. 
 
=== Copertura ===
Line 312 ⟶ 311:
 
== Software di verifica e sintesi ==
Nella progettazione di chip elettronici, SystemVerilog è ampiamente utilizzato nella verifica. I tre maggiori fornitori di strumenti EDA (Cadence Design Systems, [[Mentor Graphics]], Synopsys) hanno incorporato SystemVerilog nei loro simulatori HDL in linguaggio misto. Sebbene nessun simulatore possa ancora rivendicare il supporto completo del SystemVerilog Language Reference Manual, rendendo [[Interoperabilità|l'interoperabilità]] dei test bench una sfida, sono in corso sforzi per promuovere la compatibilità tra fornitori.  Nel 2008, Cadence e Mentor hanno rilasciato la Open Verification Methodology, una libreria di classi open source e un framework di utilizzo per facilitare lo sviluppo di test bench e IP di verifica riutilizzabili. Synopsys, che era stata la prima a pubblicare una libreria di classi SystemVerilog (VMM), ha successivamente risposto rendendo disponibile e ''open'' la propria VMM. Molti provider di terze parti hanno annunciato o già rilasciato IP di verifica SystemVerilog.
 
{{senza fonte|Nella sintesi del progetto (trasformazione di una descrizione del progetto hardware in una [[netlist]]), l'adozione di SystemVerilog è stata lenta. Molti team di progettazione utilizzano flussi di progettazione che coinvolgono più strumenti di fornitori diversi. La maggior parte dei team di progettazione non può migrare a progetti RTL basati su SystemVerilog fino a quando l'intera suite di strumenti front-end ([[Lint (software)|linter]], [[verifica formale]] e [[Generazione di programmi di prova automatici|generatori di strutture di test automatizzate]] ) non supporta un sottoinsieme linguistico comune}}.
 
== Voci correlate ==
 
* [[Linguaggio di descrizione dell'hardware]]
* [[Verilog]]
Line 340 ⟶ 338:
 
== Collegamenti esterni ==
 
;Standard IEEE
Lo standard SystemVerilog più recente è accessibile gratuitamente tramite [https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=80 IEEExplore].