Menu
Coddy logo textTech

Compteurs saturants

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

Fundamentals utilisait un compteur avec retour à zéro. Un compteur saturant s’arrête plutôt à une limite, ce qui est utile pour les comptages bornés. Ajoutez une protection explicite à la mise à jour arithmétique et veillez à ce que les comportements d’activation et de réinitialisation restent indépendants de la limite.

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

always @(posedge clk) begin
    if(rst) count <= 0;
    else if(en && count != 15) count <= count + 1;
end

La valeur maximale est conservée au lieu de revenir à zéro.

Protégez explicitement les mises à jour des limites lorsqu’un compteur doit atteindre une valeur plafond au lieu de revenir à zéro.

challenge icon

Défi

Moyen

Créez un compteur saturant de 4 bits q. Le rst synchrone l'efface. Les fronts activés l'incrémentent jusqu'à 15, puis le maintiennent à 15 ; les fronts désactivés le maintiennent également. La réinitialisation est prioritaire. Colonne de sortie : q. Toutes les commandes 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 ses modules et de 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. 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 en, output reg [3:0] q);
    // Remplacez ce placeholder par votre design.
    initial q = 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