Menu
Coddy logo textTech

Boucles generate

Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 13 sur 38.

Une boucle generate-for crée du matériel répété lors de l’élaboration. Son index genvar n’est pas un registre qui change à l’exécution. Les blocs generate nommés fournissent des noms hiérarchiques prévisibles pour les instances ou les affectations créées. Les limites de la boucle doivent être des constantes déterminées lors de l’élaboration.

Extrait pertinent : les déclarations et connexions environnantes sont fournies dans le défi.

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

Chaque itération élabore une opération distincte au niveau du bit, plutôt que de consommer un cycle d’horloge.

Utilisez genvar avec des bornes constantes pour décrire une structure répétée lors de l’élaboration.

challenge icon

Défi

Moyen

Utilisez une boucle for-generate nommée avec genvar i pour instancier une affectation continue par bit, produisant y[i] = a[i] XOR b[i]. WIDTH est positif. Le banc de test verrouillé instancie les valeurs WIDTH 1, 4 et 8, en utilisant les bits de poids faible de a et b pour les instances plus étroites. Les colonnes de sortie sont y1, y4 et y8 en décimal.

Complétez design.v et préservez les noms de module et les ports. Le testbench.v verrouillé fournit les changements d’entrée et affiche les sorties après leur stabilisation. Il choisit un scénario à l’aide d’un argument du simulateur tel que +CASE=1 ; aucune entrée standard n’est requise. N’ajoutez pas d’affichage, de délais ni de terminaison de simulation au design. La sortie attendue est une ligne de valeurs décimales par observation, séparées par un espace et se terminant par un saut de ligne.

Essayez vous-même

module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
    // Implémentez le circuit paramétré.
    assign y = 0;
endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Conception et vérification RTL

Entraînez-vous par vous-même : Compilateur Verilog en ligne