Préserver les bits de retenue
Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 6 sur 38.
La largeur du signal détermine quels bits peuvent être représentés. Rendez l’intention arithmétique explicite en étendant les opérandes avant une opération. L’addition de deux valeurs non signées de 8 bits peut nécessiter neuf bits pour le résultat : n’affecter que huit bits conserve les huit bits de poids faible et perd la retenue.
Extrait pertinent ; les déclarations et connexions environnantes sont fournies dans le défi.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};Chaque opérande possède explicitement une largeur de neuf bits, correspondant à la somme complète.
Choisissez la largeur de résultat requise et étendez les opérandes avant l’arithmétique.
Défi
MoyenAdditionnez les valeurs non signées de 8 bits a et b sans perdre la retenue. Retournez la somme complète sur 9 bits dans total. Étendez explicitement les deux opérandes à neuf bits. Colonnes de sortie : total. Toutes les valeurs de stimulation sont des valeurs binaires connues.
Complétez design.v et préservez les noms de module et les ports. Le fichier testbench.v verrouillé fournit les changements d’entrée et affiche les sorties une fois celles-ci 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 [7:0] a, input [7:0] b, output [8:0] total);
// Remplacez ce placeholder par votre design.
assign total = 0;
endmoduleCette 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
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êtes2Largeurs 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