Estrutura de Módulo
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 30 de 90.
Um módulo é o bloco de construção básico em Verilog. Cada 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 módulo 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 (instruções assign, blocos always, 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 | Declara a direção da porta |
| Corpo do módulo | Lógica interna e conexões |
endmodule | Encerra a definição do módulo |
Exemplo de Módulo Simples
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleEste módulo:
- Chama-se
and_gate - Possui duas entradas (
a,b) - Possui uma saída (
c) - Contém uma instrução
assigndefinindo a lógica
Regras para Estrutura de Módulos
- Um módulo por arquivo é uma prática comum
- O nome do módulo deve descrever sua função
- As portas (Ports) são listadas entre parênteses após o nome
- Entradas são sempre
input(não podem ser escritas internamente) - Saídas são
output(podem serregouwire) <strong>endmodule</strong>deve fechar o módulo
Desafio
Preencha as partes que faltam 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
Folha de consulta
Um módulo é o bloco de construção básico em Verilog — um componente de hardware com entradas, saídas e lógica interna.
module module_name (
input a,
input b,
output c
);
// Lógica interna
assign c = a & b;
endmodulemodule/endmodule— iniciam e terminam a definiçãoinput— sinal de entrada (somente leitura dentro do módulo)output— sinal de saída (pode serregouwire)assign— define a lógica combinacional
Experimente você mesmo
module ______ ( // Adicione o nome do módulo
______ x, // Adicione a entrada
______ y, // Adicione a entrada
______ z // Adicione a saída
);
// Adicione a instrução de atribuição 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