Validation one-hot
Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 3 sur 38.
Les données one-hot comportent exactement un bit activé. Un décodeur génère ces données, tandis que la validation vérifie les données reçues avant de les utiliser. Pour les valeurs binaires connues, une valeur non nulle est one-hot lorsque bits & (bits - 1) est nulle. Cette section n’utilise pas cette méthode abrégée pour classer X ou Z.
Extrait pertinent les déclarations et connexions environnantes sont fournies dans le défi.
assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);La vérification de non-zéro exclut l’état inactif l’astuce sur les bits rejette les bits multiples à 1.
Distinguez zéro, exactement un bit à 1 et plusieurs bits à 1 lors de la validation des requêtes.
Défi
MoyenPour des bits d’entrée connus sur 4 bits, définissez valid à un uniquement lorsqu’exactement un bit est à l’état haut. Utilisez la vérification de valeur non nulle avec bits & (bits - 1). Colonnes de sortie : valid. 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 qu’elles sont stabilisées. Il sélectionne 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 [3:0] bits, output valid);
// Remplacez ce placeholder par votre conception.
assign valid = 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