Module Structure
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 module é um componente de hardware com:
- Um nome
- Entradas (signals chegando)
- Saídas (signals saindo)
- Internal logic (o que o module 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 |
|---|---|
module palavra-chave | Inicia a definição do módulo |
module_name | Nome do módulo |
( ) | Lista de portas de input e output |
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 projeto4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicPratique por conta própria: Compilador de Verilog online