Menu
CoddyTech

Structure d’un module

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

Un module est la brique de base en Verilog. Chaque conception est construite à partir de modules qui se connectent pour former des systèmes plus grands.

Un module est un composant matériel avec :

  • Un nom
  • Des entrées (signaux entrants)
  • Des sorties (signaux sortants)
  • Une logique interne (ce que fait le module)

Imagine un module comme une puce avec des broches et des circuits internes.

Structure de base d’un module

Chaque module suit cette structure :

module module_name (
  input  signals,
  output signals
);
  
  // Déclarations internes (fils, registres, etc.)
  // Logique (instructions assign, blocs always, etc.)
  
endmodule

Parties d’un module

PartieFonction
Mot-clé moduleCommence la définition du module
module_nameNom du module
( )Liste des ports d’entrée et de sortie
input / outputDéclare le sens du port
Corps du moduleLogique interne et connexions
endmoduleTermine la définition du module

Exemple de module simple

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

Ce module :

  • S’appelle and_gate
  • A deux entrées (a, b)
  • A une sortie (c)
  • Contient une instruction assign qui définit la logique

Règles de structure des modules

  1. Il est courant d’avoir un module par fichier
  2. Le nom du module doit décrire sa fonction
  3. Les ports sont répertoriés entre parenthèses après le nom
  1. Les entrées sont toujours de type input (ne peuvent pas être écrites à l’intérieur)
  2. Les sorties sont de type output (peuvent être de type reg ou wire)
  3. endmodule doit fermer le module
challenge icon

Défi

Complète les parties manquantes pour terminer ce module.

À faire :

  1. Ajoute le nom du module my_and
  2. Ajoute une entrée input pour x
  3. Ajoute une entrée input pour y
  4. Ajoute une sortie output pour z
  5. Ajoute la logique interne en utilisant assign

Essayez vous-même

module ______ (   // Ajoutez le nom du module
  input x,       // Ajoutez une entrée
  input y,       // Ajoutez une entrée
  output z       // Ajoutez une sortie
);
  // Ajoutez une instruction assign ici (z = x & y)
  
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

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