Menu
Coddy logo textTech

Cicli generate

Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 13 di 38.

Un ciclo generate-for crea hardware ripetuto durante l’elaborazione. Il suo indice genvar non è un registro che cambia in fase di esecuzione. I blocchi generate con nome forniscono nomi gerarchici prevedibili per le istanze o le assegnazioni create. I limiti del ciclo devono essere costanti in fase di elaborazione.

Estratto pertinente; le dichiarazioni e le connessioni circostanti sono fornite nella sfida.

genvar i;
generate
    for(i=0;i<WIDTH;i=i+1) begin: bitcell
        assign y[i] = a[i] ^ b[i];
    end
endgenerate

Ogni iterazione elabora un'operazione distinta a livello di bit anziché consumare un ciclo di clock.

Usa genvar con limiti costanti per descrivere una struttura ripetuta durante l’elaborazione.

challenge icon

Sfida

Medio

Usa un ciclo generate-for con nome e genvar i per istanziare un’assegnazione continua per ogni bit, producendo y[i] = a[i] XOR b[i]. WIDTH è positivo. Il testbench bloccato istanzia i valori WIDTH 1, 4 e 8, usando i bit meno significativi di a e b per le istanze più strette. Le colonne di output sono y1, y4 e y8 in formato decimale.

Completa design.v e mantieni i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli input e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o terminazioni della simulazione al design. L’output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un carattere di nuova riga.

Provalo tu

module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
    // Implementa il circuito parametrizzato.
    assign y = 0;
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 Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online