Menu
Coddy logo textTech

Interi e reali

Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 8 di 90.

Oltre a wire e reg, Verilog ha altri tipi di dati per i numeri con scopi diversi.

Intero

integer è una variabile generica 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 negativi

Usare integer:

integer i;

initial begin
  i = 0;           // Inizia da 0
  i = i + 1;       // Incrementa
  i = -5;          // Può contenere valori negativi
  $display("i = %d", i);  // Stampa: i = -5
end

Reale

real si usa per i numeri in virgola mobile (numeri con decimali).

  • Memorizza valori frazionari
  • Utilizzato nei testbench per i calcoli
  • Non può essere sintetizzato in hardware

Dichiarare un reale:

real pi;           // Variabile in virgola mobile
real voltage;

Utilizzo di 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
end

Dove usarli

Nei testbench: Gli interi e i numeri reali sono comunemente usati per i contatori dei cicli, i calcoli e la verifica dei valori attesi. Rendono il codice di test più facile da scrivere e comprendere.

In hardware: Questi tipi di solito non sono sintetizzabili, ovvero non possono essere trasformati in circuiti reali. Per l’hardware destinato a un FPGA o a un chip, usa invece reg e wire.

challenge icon

Sfida

Completa il codice per far funzionare il testbench.

Cosa fare:

  1. Dichiara un intero chiamato i (per il contatore del ciclo)
  2. 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
  
endmodule
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online