Menu
Coddy logo textTech

Les valeurs par défaut évitent les latchs

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

Une sortie combinatoire doit être affectée pour chaque chemin d’entrée. Si un bloc always omet d’affecter une sortie, cette sortie conserve son ancienne valeur, ce qui peut inférer un verrou. Une affectation default suivie de remplacements rend la couverture visible.

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

always @* begin
    y = 0;
    if (en) y = data;
end

Le default couvre le chemin désactivé, donc la sortie dépend uniquement des entrées actuelles.

Attribuez chaque sortie combinatoire sur chaque chemin ; utilisez des valeurs par défaut avant les remplacements conditionnels.

challenge icon

Défi

Moyen

Implémentez une sortie 8 bits commandée : lorsque en vaut un, y est égal à a ; sinon, y vaut zéro. Affectez y sur chaque chemin combinatoire. Colonnes de sortie : y. Toutes les valeurs de stimulus sont des valeurs binaires connues.

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 une fois qu’elles sont stabilisées. 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 une espace et se terminant par un saut de ligne.

Essayez vous-même

module dut (input en, input [7:0] a, output reg [7:0] y);
    // Remplacez ce placeholder par votre design.
    initial 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