Décalages arithmétiques vers la droite
Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 8 sur 38.
Un décalage arithmétique vers la droite utilise >>> et reproduit le bit de signe lorsque son opérande de gauche est signed. Un décalage logique vers la droite utilise >> et complète avec des zéros. Pour une valeur négative impaire, effectuer un décalage arithmétique vers la droite ne revient pas au même qu’une division par integer qui tronque vers zéro.
Extrait pertinent : les déclarations et connexions environnantes sont fournies dans le défi.
reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);Le résultat est moins deux, car l’extension de signe conserve l’interprétation négative en complément à deux.
Utilisez un opérande de gauche signed avec >>> lorsqu’une extension de signe est requise.
Défi
MoyenEffectuez un décalage arithmétique vers la droite d’une valeur signed sur 8 bits selon la quantité (de 0 à 7). Retournez le résultat signed sur 8 bits y. Les valeurs négatives sont complétées par leur bit de signe. Colonnes de sortie : y. 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 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 à la conception. 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 signed [7:0] value, input [2:0] amount, output signed [7:0] y);
// Remplacez ce placeholder par votre design.
assign y = 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