Estrutura de Módulo
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 30 de 90.
Um `module` é o bloco de construção básico no Verilog. Todo projeto é construído a partir de módulos que se conectam para formar sistemas maiores.
Um módulo é um componente de hardware com:
- Um nome
- Entradas (sinais que entram)
- Saídas (sinais que saem)
- Lógica interna (o que o módulo faz)
Pense em um module como um chip com pinos e circuitos internos.
Estrutura Básica do Módulo
Todo módulo segue esta estrutura:
module module_name (
input signals,
output signals
);
// Declarações internas (wires, regs, etc.)
// Lógica (assign statements, always blocks, etc.)
endmodulePartes de um Módulo
| Parte | Propósito |
|---|---|
Palavra-chave module | Inicia a definição do módulo |
module_name | Nome do módulo |
( ) | Lista de portas de entrada e saída |
input / output | Declaram a direção da porta |
| Corpo do módulo | Lógica interna e conexões |
endmodule | Termina a definição do módulo |
Exemplo Simples de Módulo
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleEste módulo:
- É nomeado
and_gate - Possui duas entradas (
a,b) - Possui uma saída (
c) - Contém uma instrução
assignque define a lógica
Regras para Estrutura de Módulos
- Um módulo por arquivo é uma prática comum
- O
module_namedeve descrever sua função - As portas (
input/output) são listadas entre parênteses após o nome
- Inputs são sempre
input(não podem receber atribuição interna) - Outputs são
output(podem serregouwire) <strong>endmodule</strong>deve fechar o módulo
Desafio
Preencha as partes ausentes para completar este módulo.
O que fazer:
- Adicione o nome do módulo
my_and - Adicione
inputparax - Adicione
inputparay - Adicione
outputparaz - Adicione a lógica interna usando
assign
Experimente você mesmo
module ______ ( // Adicione o nome do módulo
input x, // Adicione a entrada
input y, // Adicione a entrada
output z // Adicione a saída
);
// Adicione a declaração assign aqui (z = x & y)
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs SoftwareNíveis de Abstração de ProjetoSeu Primeiro MóduloComentários4Operadores Parte 1
Operadores AritméticosOperador de MóduloOperadores de ComparaçãoRecapitulação - Matemática SimplesOperadores Bitwise7Atribuição e Portas Lógicas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Comparador SimplesInstrução CaseCasex e CasezRecapitulação - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteger e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores Parte 2
Operadores LógicosOperadores de ReduçãoOperadores de DeslocamentoOperador de ConcatenaçãoOperador CondicionalRecapitulação - Desafio de Operadores3Sistemas de Numeração
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRecapitulação - Formatos de Números6Módulos
Estrutura de MóduloPortas de Entrada e SaídaPortas InoutInstanciação de MóduloMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação - Construa um Módulo