Menu
Coddy logo textTech

Défi - Somme bornée

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

challenge icon

Défi

Moyen

Accumulez l’échantillon 8 bits signed dans signed q sur les fronts montants activés, avec saturation à -128 et 127. Définissez clipped de manière persistante chaque fois qu’une saturation se produit  une fois défini, il reste défini jusqu’à rst ou clear. Les deux contrôles synchrones clear réinitialisent q et clipped et ont priorité sur en. Les fronts désactivés conservent les deux valeurs. Colonnes de sortie : q, clipped. Tous les contrôles et les données sont stables avant chaque front montant de l’horloge  les résultats sont observés ensuite.

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 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 un espace et se terminant par un saut de ligne.

Essayez vous-même

module dut (input clk, input rst, input clear, input en, input signed [7:0] sample, output reg signed [7:0] q, output reg clipped);
    // Remplacez ce placeholder par votre design.
    initial q = 0;
    initial clipped = 0;
endmodule

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

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