Menu
Coddy logo textTech

Structure d'un module

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

Un module est le bloc de construction de base en Verilog. Chaque conception est construite à partir de modules qui se connectent entre eux 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)

Pensez à un module comme à une puce dotée de broches et d'un circuit interne.

Structure de base d'un module

Chaque module suit cette structure :

module module_name (
  input  signals,
  output signals
);
  
  // Déclarations internes (wires, regs, etc.)
  // Logique (assign statements, always blocks, etc.)
  
endmodule

Composants d'un module

ComposantRôle
Mot-clé moduleDémarre la définition du module
module_nameNom du module
( )Liste des ports d'entrée et de sortie
input / outputDéclare la direction des ports
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 définissant la logique

Règles pour la structure des modules

  1. Un module par fichier est une pratique courante
  2. Le `module_name` doit décrire sa fonction
  3. Les ports sont énumérés entre parenthèses après le nom
  1. Les entrées (Inputs) sont toujours input (ne peuvent pas être écrites à l'intérieur)
  2. Les sorties (Outputs) sont output (peuvent être reg ou wire)
  3. <strong>endmodule</strong> doit fermer le module
challenge icon

Défi

Remplissez les parties manquantes pour compléter ce module.

Ce qu'il faut faire :

  1. Ajoutez le nom de module my_and
  2. Ajoutez input pour x
  3. Ajoutez input pour y
  4. Ajoutez output pour z
  5. Ajoutez la logique interne en utilisant assign

Essayez vous-même

module ______ (   // Ajouter le nom du module
  input x,       // Ajouter l'entrée
  input y,       // Ajouter l'entrée
  output z       // Ajouter la sortie
);
  // Ajouter l'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