SystemVerilog: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: spazi attorno alle parentesi e modifiche minori
 
(5 versioni intermedie di 4 utenti non mostrate)
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 [[Conversione di tipo|coversioneconversione di tipo]]. Questo non è vero per i parametri, la tecnica di implementazione preferita per le quantità enumerate in Verilog-2005:<syntaxhighlight lang="systemverilog" line="1">
typedef enum logic [2:0] {
RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW
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 [[Sincronizzazione|della [[sincronizzazione]] dei thread]] dipende dall'uso (intelligente) da parte del programmatore. SystemVerilog offre due [[Sincronizzazione|primitive]] specifiche per la sincronizzazione tra thread: ''mailbox'' e ''[[Semaforo (informatica)|semaphore]]''. La mailbox è modellata come una coda di messaggi [[FIFO]]. Opzionalmente, una FIFO può essere parametrizzato dal tipo in modo che solo gli oggetti del tipo specificato possano essere passati attraverso di esso. Tipicamente, gli oggetti sono istanze di classi che rappresentano ''[[Transaction Processing System|transazioni]]'' : operazioni elementari (ad esempio, l'invio di un frame) che vengono eseguite dai componenti di verifica. Il semaforo è modellato come un [[Semaforo (informatica)|semaforo di conteggio]].
 
== Miglioramenti generali al Verilog classico ==
Riga 367:
{{portale|elettrotecnica|informatica}}
 
[[Categoria:Circuiti elettronici configurabili]]
[[Categoria:Linguaggi di descrizione hardware]]
[[Categoria:Elettronica digitale]]
[[Categoria:Linguaggi di programmazione strutturati]]