Compter les échantillons acceptés
Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 34 sur 38.
Défi
DifficileConstruisez un Sample Monitor en cinq étapes. Suivez les échantillons acceptés dans count : incrémentez-le à chaque front de en qui n’est ni une réinitialisation ni un effacement, avec saturation à 15. rst ou clear réinitialise count ainsi que total. Les échantillons acceptés de valeur zéro incrémentent tout de même count. Conservez tout ce qui provient des étapes précédentes, y compris son testbench et le comportement de sortie antérieur. Toutes les valeurs d’entrée sont connues. Les scénarios contiennent au plus 40 fronts, de sorte que le total tient sur 16 bits. Le testbench fixe affiche total pour les scénarios 1-9, total et count pour les scénarios 10-12, et total, count et alarm pour les scénarios 13-15. Seuls les scénarios activés pour cette étape sont évalués.
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 ni affichage, ni délai, ni 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 clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
always @(posedge clk)begin
if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleToutes les leçons de Conception et vérification RTL
1RTL combinatoire fiable
Les valeurs par défaut évitent les latchsEncodeurs de prioritéValidation one-hotDécodage sûr avec caseRécapitulatif - Routeur de requêtes4RTL séquentiel contrôlé
Priorité du reset et de l'activationCompteurs saturantsMise en pipeline des données et de validDétection des fronts échantillonnésRécapitulatif - Compteur d'événements7Projet - Moniteur d’échantillons
Accumuler les échantillonsAccepter les échantillons activés2Largeurs et arithmétique signée
Préserver les bits de retenueComparaisons signéesDécalages arithmétiques vers la droiteDépassement et saturationRécapitulatif – différence signéeEntraînez-vous par vous-même : Compilateur Verilog en ligne