SystemVerilog: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: codifica, sostituzione o rimozione di caratteri unicode per spazi tipografici particolari |
m →Sincronizzazione: fix wl |
||
(7 versioni intermedie di 6 utenti non mostrate) | |||
Riga 17:
}}
'''SystemVerilog''', standardizzato come '''IEEE 1800''', è un linguaggio [[Linguaggio di descrizione hardware|di descrizione]] e verifica dell'hardware utilizzato per modellare, progettare, simulare, testare e implementare sistemi elettronici. SystemVerilog è basato su [[Verilog]] ed è comunemente usato nell'industria dei [[Semiconduttore|semiconduttori]] e della progettazione [[elettronica]] come evoluzione di Verilog. Dal 2008 Verilog e SystemVerilog fanno
== Storia ==
Riga 38:
'''I tipi di variabili avanzati''' aggiungono nuove funzionalità al tipo "reg" di Verilog:<syntaxhighlight lang="systemverilog" line="1">
logic [31:0] my_var;
</syntaxhighlight>Verilog-1995 e Verilog-2001 limitano le variabili reg a statement comportamentali come nel caso del [[Register transfer level|codice RTL]]. SystemVerilog estende il tipo reg in modo che possa essere guidato da un singolo driver come un gate o un modulo. SystemVerilog chiama questo tipo "logic" per ricordare questa capacità ulteriore e che non si tratta di un registro hardware. I nomi "logic" e "reg" sono intercambiabili. Un segnale con più di un driver (come un [[Three state|buffer a tre stati]] per [[General Purpose Input/Output|input/output generico]]
'''I Packed array multidimensionali''' unificano ed estendono la nozione di "registri" e "memorie" di Verilog:<syntaxhighlight lang="systemverilog" line="1">
Riga 44:
</syntaxhighlight>Il Verilog classico consente di dichiarare solo una dimensione a sinistra del nome della variabile. SystemVerilog consente qualsiasi numero di tali dimensioni "impacchettate". Una variabile di tipo array packed mappa 1:1 su una quantità aritmetica intera. Nell'esempio precedente, ogni elemento di <code>my_pack</code> può essere utilizzato nelle espressioni come numero intero a sei bit. Le dimensioni a destra del nome (32 in questo caso) sono indicate come dimensioni "unpacked". Come in [[Verilog|Verilog-2001]], è consentito qualsiasi numero di dimensioni unpacked.
'''I tipi di dati enumerati''' (<code>enums</code>) consentono di assegnare nomi significativi a quantità numeriche. Le variabili dichiarate di tipo enumerato non possono essere assegnate a variabili di un diverso tipo enumerato senza [[
typedef enum logic [2:0] {
RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW
Riga 66:
=== Blocchi procedurali ===
SystemVerilog introduce tre nuovi blocchi procedurali destinati a modellare l'hardware: <code>always_comb</code> (per modellare [[Circuito combinatorio|la logica combinatoria]]
Un blocco <code>always_comb</code> modella [[Circuito combinatorio|circuiti logici combinatori]]. Il simulatore deduce che la ''sensitivity list'' sia costituito da tutte le variabili dalle istruzioni contenute:<syntaxhighlight lang="systemverilog" line="1">
Riga 289:
=== Sincronizzazione ===
Un ambiente di test complesso è costituito da componenti di verifica riutilizzabili che devono comunicare tra loro. La primitiva "event" di Verilog consente a diversi blocchi di istruzioni procedurali di attivarsi a vicenda, ma l'applicazione
== Miglioramenti generali al Verilog classico ==
Riga 314:
{{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]]▼
* [[VHDL]]▼
* [[SystemC|System C]]▼
== Note ==
<references />
== Bibliografia ==
* {{Cita libro|titolo=1800-2005 — IEEE Standard for System Verilog—Unified Hardware Design, Specification, and Verification Language| doi = 10.1109/IEEESTD.2005.97972|anno=2005| isbn = 978-0-7381-4810-6}}
* {{Cita libro|titolo=1800-2009 — IEEE Standard for SystemVerilog—Unified Hardware Design, Specification, and Verification Language| doi = 10.1109/IEEESTD.2009.5354441|anno=2009| isbn = 978-0-7381-6130-3}}
Line 336 ⟶ 332:
* Ben Cohen Srinivasan Venkataramanan and Ajeetha Kumari [http://SystemVerilog.us] A Pragmatic Approach to VMM Adoption, - http://SystemVerilog.us
* Erik Seligman and Tom Schubert [https://www.amazon.com/Formal-Verification-Essential-Toolkit-Modern-ebook/dp/B012VX1MW8/ref=sr_1_1?ie=UTF8&qid=1451183481&sr=8-1&keywords=erik+seligman+formal+verification] Formal Verification: An Essential Toolkit for Modern VLSI Design, Jul 24, 2015,
▲== Voci correlate ==
▲* [[Linguaggio di descrizione dell'hardware]]
▲* [[Verilog]]
▲* [[VHDL]]
▲* [[SystemC|System C]]
== Collegamenti esterni ==
Line 365 ⟶ 367:
{{portale|elettrotecnica|informatica}}
[[Categoria:Linguaggi di descrizione hardware]]
|