Menu
Coddy logo textTech

Portes AND OR NOT

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

Cette leçon couvre les trois portes logiques les plus fondamentales : ET (AND), OU (OR) et NON (NOT). Ces portes forment la base de la conception logique numérique.

Porte ET (AND)

La porte ET produit en sortie 1 uniquement lorsque toutes les entrées sont à 1.

Table de vérité (2 entrées) :

about
000
010
100
111

Primitive de porte Verilog :

and(out, a, b);

Équivalent en assignation continue :

assign out = a & b;

Porte OU

La porte OU produit 1 lorsqu'au moins une entrée est 1.

Table de vérité (2 entrées) :

about
000
011
101
111

Primitive de porte Verilog :

or(out, a, b);

Équivalent en assignation continue :

assign out = a | b;

Porte NOT

La porte NOT produit l'opposé de son unique entrée. Elle est également appelée un inverter.

Table de vérité :

aout
01
10

Primitive de porte Verilog :

not(out, a);

Équivalent en assignation continue :

assign out = ~a;

Entrées multiples

Les portes ET et OU peuvent avoir plus de 2 entrées :

and(out, a, b, c);     // AND à 3 entrées (out = a & b & c)
or(out, x, y, z, w);   // OR à 4 entrées

Les portes NON ont toujours exactement 1 entrée.

Exemple de code

module and_or_not (
  input a, b,
  output and_out,
  output or_out,
  output not_out
);
  and(and_out, a, b);   // porte AND
  or(or_out, a, b);     // porte OR
  not(not_out, a);      // porte NOT (inverseur)
endmodule
challenge icon

Défi

Ajoutez les primitives de portes manquantes en vous basant sur les tâches.

Ce qu'il faut faire :

  1. Créez une porte AND avec la sortie and_result et les entrées p et q
  2. Créez une porte OR avec la sortie or_result et les entrées p et q
  3. Créez une porte NOT avec la sortie not_result et l'entrée p

Essayez vous-même

module gates_challenge (
  input p,
  input q,
  output and_result,
  output or_result,
  output not_result
);
  
  // TODO: Ajouter une porte AND (and_result = p & q)
  
  // TODO: Ajouter une porte OR (or_result = p | q)
  
  // TODO: Ajouter une porte NOT (not_result = ~p)

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 Fondamentaux