Menu
Coddy logo textTech

Couverture des limites et du contrôle

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

Réussir quelques tests est différent de tester les scénarios importants. Vérifiez si les valeurs minimales, maximales et ordinaires ont été testées, et si des contrôles concurrents se sont produits simultanément. Un indicateur de couverture enregistre qu’un case a été observé : cela ne prouve pas que la conception a réagi correctement. Associez la couverture à des vérifications des résultats.

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

if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;

Le masque de bits mémorise les catégories qui sont apparues sans remplacer les occurrences précédentes.

Combinez la couverture des limites et des combinaisons de contrôle avec des vérifications indépendantes de l’exactitude.

challenge icon

Défi

Moyen

Suivez trois catégories de couverture des entrées dans seen sans effacer les détections précédentes : le bit 0 enregistre value=0, le bit 1 enregistre value=15 et le bit 2 enregistre les valeurs de 1 à 14. Les entrées contiennent des bits connus. L’appelant initialise seen=0 avant un scénario. Ce module contient une task réservée à la simulation, appelée par le banc de test verrouillé. Colonnes de sortie : seen sous forme décimale.

Complétez design.v et préservez les noms de ses modules et ses ports. Le testbench.v verrouillé fournit les changements d’entrée et affiche les sorties une fois 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. Conservez l’affichage et le contrôle du scénario dans le banc de test verrouillé ; implémentez uniquement le corps de la task. La sortie attendue est constituée d’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;
    task observe;
        input [3:0] value;
        inout [2:0] seen;
        begin
            // Complétez la tâche du checker.
            seen=seen;
        end
    endtask
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