Menu
CoddyTech

Struttura di un modulo

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

Un modulo è l'elemento costitutivo fondamentale in 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)

Considera 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 della porta
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. Un modulo per file è una pratica comune
  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 è possibile scriverci dentro)
  2. Le uscite sono output (possono essere reg o wire)
  3. endmodule 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