Interi e reali
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 8 di 90.
Oltre a wire e reg, Verilog dispone di altri tipi di dati per i numeri, con scopi diversi.
Intero
integer è una variabile generica usata per contare e fare calcoli.
- La dimensione predefinita è di 32 bit
- Con segno (può memorizzare numeri negativi)
- Usato principalmente nei testbench e nei cicli for
Dichiarare un intero:
integer i; // Variabile con segno a 32 bit
integer count; // Può memorizzare numeri negativiUtilizzo di integer:
integer i;
initial begin
i = 0; // Inizia da 0
i = i + 1; // Incrementa il conteggio
i = -5; // Può contenere valori negativi
$display("i = %d", i); // Stampa: i = -5
endReale
real si usa per i numeri in virgola mobile (numeri con cifre decimali).
- Memorizza valori frazionari
- Utilizzato nei banchi di prova per i calcoli
- Non può essere sintetizzato in hardware
Dichiarare un real:
real pi; // Variabile a virgola mobile
real voltage;Usare real:
real pi;
initial begin
pi = 3.14159; // Valore decimale
pi = 22.0 / 7.0; // Risultato della divisione
$display("pi = %f", pi); // Stampa: pi = 3.142857
endDove usarli
Nei banchi di prova: Gli interi e i numeri reali sono comunemente usati per i contatori dei cicli, i calcoli e il controllo dei valori previsti. Rendono il codice dei test più facile da scrivere e da capire.
Nell'hardware: Il tipo real non è sintetizzabile, ovvero non può essere trasformato in un circuito reale. Il tipo integer può essere sintetizzato e viene spesso usato come contatore di ciclo, ma per i segnali hardware destinati a un FPGA o a un chip, usa reg e wire.
Sfida
Completa il codice per far funzionare il banco di prova.
Cosa fare:
- Dichiara un intero chiamato i (contatore del ciclo for)
- Dichiara un numero reale chiamato value (per il calcolo)
Provalo tu
module test;
// Dichiara un intero chiamato i
// Dichiara un numero reale chiamato value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online