Menu
Coddy logo textTech

Conception d’un décodeur

Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 85 sur 90.

challenge icon

Défi

Un décodeur prend un nombre binaire en entrée et active exactement une sortie en fonction de ce nombre. La sortie qui s’active est appelée « one-hot », car un seul bit est actif (1) et tous les autres sont inactifs (0).

Table de vérité (décodeur 2 vers 4)

Entrée (in)out0out1out2out3
001000
010100
100010
110001

Interface du module

PortDirectionLargeurDescription
inentrée2 bitsEntrée binaire (de 0 à 3)
out0sortie1 bitActive lorsque in = 00
out1sortie1 bitActive lorsque in = 01
out2sortie1 bitActive lorsque in = 10
out3sortie1 bitActive lorsque in = 11

Votre tâche consiste à compléter le module ci-dessous à l’aide d’une instruction case.

À faire :

  1. Lorsque in = 2'b00, out0 = 1, toutes les autres sorties valent 0
  2. Lorsque in = 2'b01, out1 = 1, toutes les autres sorties valent 0
  3. Lorsque in = 2'b10, out2 = 1, toutes les autres sorties valent 0
  4. Lorsque in = 2'b11, out3 = 1, toutes les autres sorties valent 0

Essayez vous-même

module decoder (
  input [1:0] in,
  output reg out0,
  output reg out1,
  output reg out2,
  output reg out3
);
  
  // TODO: Ajouter un bloc always @(*) avec case (in)
  // 2'b00: out0=1, les autres à 0
  // 2'b01: out1=1, les autres à 0
  // 2'b10: out2=1, les autres à 0
  // 2'b11: out3=1, les autres à 0

endmodule

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Verilog en ligne