Menu
Coddy logo textTech

Struttura di un modulo

Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 30 di 90.

Un modulo è l'elemento fondamentale di Verilog. Ogni progetto è composto da moduli collegati tra loro per formare sistemi più grandi.

Un modulo è un componente hardware con:

  • Un nome
  • Ingressi (segnali in entrata)
  • Uscite (segnali in uscita)
  • Logica interna (cosa fa il modulo)

Immagina un modulo come un chip con pin e circuiti interni.

Struttura di base di un modulo

Ogni modulo segue questa struttura:

module module_name (
  input  signals,
  output signals
);
  
  // Dichiarazioni interne (wires, regs, ecc.)
  // Logica (istruzioni assign, blocchi always, ecc.)
  
endmodule

Parti di un modulo

ParteScopo
Parola chiave moduleAvvia la definizione del modulo
module_nameNome del modulo
( )Elenco delle porte di input e output
input / outputDichiarano la direzione delle porte
Corpo del moduloLogica interna e connessioni
endmoduleTermina la definizione del modulo

Esempio di modulo semplice

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

Questo modulo:

  • Si chiama and_gate
  • Ha due ingressi (a, b)
  • Ha un’uscita (c)
  • Contiene un’istruzione assign che definisce la logica

Regole per la struttura dei moduli

  1. È prassi comune avere un modulo per file
  2. Il nome del modulo dovrebbe descriverne la funzione
  3. Le porte sono elencate tra parentesi dopo il nome
  1. Gli ingressi sono sempre input (non si possono scrivere all'interno)
  2. Le uscite sono output (possono essere reg o wire)
  3. <strong>endmodule</strong> deve chiudere il modulo
challenge icon

Sfida

Completa le parti mancanti per completare questo modulo.

Cosa fare:

  1. Aggiungi il nome del modulo my_and
  2. Aggiungi input per x
  3. Aggiungi input per y
  4. Aggiungi output per z
  5. Aggiungi la logica interna usando assign

Provalo tu

module ______ (   // Aggiungi il nome del modulo
  input x,       // Aggiungi un ingresso
  input y,       // Aggiungi un ingresso
  output z       // Aggiungi un'uscita
);
  // Aggiungi qui un'istruzione assign (z = x & y)
  
endmodule
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online