Menu
Coddy logo textTech

Conception d'un Mux 4 vers 1

Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 65 sur 90.

challenge icon

Défi

Multiplexeur 4 vers 1

Le multiplexeur 4 vers 1 possède quatre entrées de données (in0, in1, in2, in3), deux bits de sélection (sel[1:0]) et une sortie (out). Les deux bits de sélection choisissent quelle entrée est transmise à la sortie :

  • Quand sel = 2'b00, la sortie est in0
  • Quand sel = 2'b01, la sortie est in1
  • Quand sel = 2'b10, la sortie est in2
  • Quand sel = 2'b11, la sortie est in3

Vous allez construire ce multiplexeur de deux manières : d'abord en utilisant des instructions if-else, puis dans la leçon suivante en utilisant une instruction case. Les deux méthodes fonctionnent, mais case est souvent plus lisible lorsque vous avez de nombreux choix.

Un multiplexeur 4 vers 1 sélectionne l'une des quatre entrées et la transmet à la sortie en fonction d'un signal de sélection de 2 bits.

Table de vérité

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

Quand sel est 00, la sortie suit in0. Quand sel est 01, la sortie suit in1. Quand sel est 10, la sortie suit in2. Quand sel est 11, la sortie suit in3.

Ce qu'il faut faire :

  1. Créez un module nommé mux4to1
  2. Ajoutez l'entrée in0 (1 bit)
  3. Ajoutez l'entrée in1 (1 bit)
  4. Ajoutez l'entrée in2 (1 bit)
  5. Ajoutez l'entrée in3 (1 bit)
  6. Ajoutez l'entrée sel (2 bits)
  7. Ajoutez la sortie out (1 bit, type reg)
  8. Ajoutez un bloc always @(*)
  9. À l'intérieur, ajoutez une instruction if-else vérifiant sel :
    • Si sel == 2'b00, définissez out = in0
    • Sinon si sel == 2'b01, définissez out = in1
    • Sinon si sel == 2'b10, définissez out = in2
    • Sinon, définissez out = in3
  10. Fermez avec endmodule

Essayez vous-même

// Étape 1 : Créer le module nommé mux4to1


  // Étape 2 : Ajouter l'entrée in0
  
  // Étape 3 : Ajouter l'entrée in1
  
  // Étape 4 : Ajouter l'entrée in2
  
  // Étape 5 : Ajouter l'entrée in3
  
  // Étape 6 : Ajouter l'entrée sel (2 bits)
  
  // Étape 7 : Ajouter la sortie out (type reg)
  

  // Étape 8 : Ajouter le bloc always @(*)
  

    // Étape 9 : Ajouter l'instruction if-else
    // si sel == 2'b00, out = in0
    // sinon si sel == 2'b01, out = in1
    // sinon si sel == 2'b10, out = in2
    // sinon, out = in3
    

// Étape 10 : Endmodule

Toutes les leçons de Fondamentaux