Estrutura de Módulos
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 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 chegam)
- Saídas (sinais que saem)
- Lógica interna (o que o módulo faz)
Considere 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 (assign statements, always blocks, etc.)
endmodulePartes de um módulo
| Parte | Finalidade |
|---|---|
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 e conexões internas |
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:
- É nomeado
and_gate - Tem duas entradas (
a,b) - Tem uma saída (
c) - Contém uma instrução
assignque define a lógica
Regras para a estrutura de um módulo
- Um módulo por arquivo é uma prática comum
- O nome do módulo deve descrever sua função
- As portas são listadas entre parênteses após o nome
- Entradas são sempre
input(não podem ser escritas dentro) - Saídas são
output(podem serregouwire) <strong>endmodule</strong>deve fechar o módulo
Desafio
Preencha as partes que faltam para concluir este módulo.
O que fazer:
- Add o nome do módulo
my_and - Add
inputparax - Add
inputparay - Add
outputparaz - Add 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. SoftwareSeu primeiro móduloComentáriosNíveis de abstração de projeto4Operadores Parte 1
Operadores aritméticosOperador móduloOperadores de comparaçãoRecapitulação - Matemática simplesOperadores bit a bit7Atribuições e Portas
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ões
Declaração IfIf - ElseRevisão - Comparador SimplesDeclaração CaseCasex e CasezRevisão - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteiro e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores - Parte 2
Operadores lógicosOperadores de reduçãoOperadores de deslocamentoOperador de concatenaçãoOperador condicionalRevisão - Desafio de operadores3Sistema Numérico
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRevisão - Formatos Numéricos6Módulos
Estrutura de MódulosPortas de Entrada e SaídaPortas InoutInstanciação de MódulosMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação — Construindo um MóduloPratique por conta própria: Compilador de Verilog online