SystemVerilog: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Typo fixing |
m Formattazione paragrafi |
||
Riga 40:
'''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 -2001 limitano le variabili reg a dichiarazioni comportamentali come [[Register transfer level|il 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 agli utenti che ha questa capacità extra e non è 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]] ) deve essere dichiarato un tipo net come "wire" in modo che SystemVerilog possa risolvere il valore finale.
'''I Packed array multidimensionali''' unificano ed estendono la nozione di "registri" e "memorie" di Verilog:<syntaxhighlight lang="systemverilog" line="1">
logic [1:0][2:0] my_pack[32];
</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 compresso 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|coversione 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">
|