Built In Gate Primitives
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 39 sur 90.
Verilog possède des gate primitives intégrées qui vous permettent de décrire des circuits logiques à l’aide de véritables symboles de portes. C’est ce qu’on appelle la modélisation structural. Vous construisez des circuits en connectant des gates, comme lorsque vous dessinez un schéma.
Gate primitives sont des mots-clés prédéfinis qui modélisent des portes logiques de base. Au lieu d’écrire une expression comme assign out = a & b, vous instanciez une porte :
and(out, a, b); // Porte AND avec sortie out, entrées a et bSyntaxe générale
gate_type (output, input1, input2, ...);- Le premier argument est toujours l’output
- Les arguments suivants sont des inputs (1 ou plus, selon la gate)
Primitives de portes disponibles
| Type de porte | Mot-clé | Nombre d’entrées |
|---|---|---|
| AND | and | 2 ou plus |
| OR | or | 2 ou plus |
| NOT | not | 1 |
| NAND | nand | 2 ou plus |
| NOR | nor | 2 ou plus |
| XOR | xor | 2 ou plus |
| XNOR | xnor | 2 ou plus |
Fonctionnement des primitives gate
Lorsque vous écrivez and(out, a, b), Verilog crée une gate AND qui pilote continuellement out avec le result de a & b. Chaque fois que a ou b change, out est immédiatement mis à jour, exactement comme une gate réelle.
Primitives de portes vs affectation continue
Les deux méthodes produisent le même matériel :
// Primitive de porte
and(out, a, b);
// Affectation continue (même résultat)
assign out = a & b;Les primitives gate sont utiles lorsque vous voulez décrire un circuit comme une collection of gates (style structural). L'affectation continuous est préférable pour le style behavioral (expressions).
Défi
Que faire :
- Add la primitive de gate correcte pour faire fonctionner ce circuit. Le module devrait produire l’AND des inputs
aetb. Le port de output est déjà nomméc.
Essayez vous-même
module gate_challenge (
input a,
input b,
output c
);
// TODO: Ajoutez la primitive de porte correcte
// La sortie c doit être a AND b
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