AND OR NOT Gates
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 : AND, OR et NOT. Ces portes constituent la base de la conception de la logique numérique.
Porte AND
La porte AND produit 1 uniquement lorsque toutes les entrées valent 1.
Table de vérité (2 entrées) :
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Primitive de porte Verilog :
and(out, a, b);Équivalent avec une affectation continue :
assign out = a & b;Porte OR
La porte OR produit 1 lorsqu’au moins une entrée vaut 1.
Table de vérité (2 entrées) :
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Primitive de porte Verilog :
or(out, a, b);Équivalent avec une affectation continue :
assign out = a | b;Porte NOT
La porte NOT produit l’opposé de son entrée unique. Elle est également appelée inverter.
Table de vérité :
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Primitive de porte Verilog :
not(out, a);Équivalent avec une affectation continue :
assign out = ~a;Entrées multiples
Les portes AND et OR 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éesLes portes NOT 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 ET
or(or_out, a, b); // porte OU
not(not_out, a); // porte NON (inverseur)
endmoduleDéfi
Ajoutez les primitives de portes manquantes conformément aux tâches.
À faire :
- Créez une porte AND avec la sortie
and_resultet les entréespetq - Créez une porte OR avec la sortie
or_resultet les entréespetq - Créez une porte NOT avec la sortie
not_resultet l’entréep
Essayez vous-même
module gates_challenge (
input p,
input q,
output and_result,
output or_result,
output not_result
);
// TODO: Ajouter la porte AND (and_result = p & q)
// TODO: Ajouter la porte OR (or_result = p | q)
// TODO: Ajouter la porte NOT (not_result = ~p)
endmoduleCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1Introduction
Qu’est-ce que VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne