Menu
Coddy logo textTech

Encodeurs de priorité

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

Un encodeur associe un bit de requête à un index. Lorsque plusieurs requêtes sont actives, une règle de priorité explicite est nécessaire. Une chaîne if/else-if donne la priorité aux branches précédentes ; un signal valid distinct permet de différencier l’absence de requête de l’index zéro.

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

if (req[3]) code = 3;
else if (req[2]) code = 2;
else if (req[1]) code = 1;
else code = 0;

La première branche vraie l’emporte, ce qui donne la priorité au bit de requête de poids le plus élevé.

Indiquez l’ordre de priorité et définissez explicitement la sortie en l’absence de requête.

challenge icon

Défi

Moyen

Encodez le bit le plus élevé activé de req sur 4 bits dans code. Définissez valid si une requête existe ; lorsque req vaut zéro, code et valid valent zéro. Colonnes de sortie : code, valid. Toutes les valeurs de stimulus 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 après leur stabilisation. 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 une espace et se terminant par un retour à la ligne.

Essayez vous-même

module dut (input [3:0] req, output reg [1:0] code, output reg valid);
    // Remplacez ce placeholder par votre design.
    initial code = 0;
    initial valid = 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