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.)
endmoduleParti di un modulo
| Parte | Scopo |
|---|---|
Parola chiave module | Avvia la definizione del modulo |
module_name | Nome del modulo |
( ) | Elenco delle porte di input e output |
input / output | Dichiarano la direzione delle porte |
| Corpo del modulo | Logica interna e connessioni |
endmodule | Termina la definizione del modulo |
Esempio di modulo semplice
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleQuesto modulo:
- Si chiama
and_gate - Ha due ingressi (
a,b) - Ha un’uscita (
c) - Contiene un’istruzione
assignche definisce la logica
Regole per la struttura dei moduli
- È prassi comune avere un modulo per file
- Il nome del modulo dovrebbe descriverne la funzione
- Le porte sono elencate tra parentesi dopo il nome
- Gli ingressi sono sempre
input(non si possono scrivere all'interno) - Le uscite sono
output(possono essereregowire) <strong>endmodule</strong>deve chiudere il modulo
Sfida
Completa le parti mancanti per completare questo modulo.
Cosa fare:
- Aggiungi il nome del modulo
my_and - Aggiungi
inputperx - Aggiungi
inputpery - Aggiungi
outputperz - 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)
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online