Seu primeiro módulo
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 3 de 90.
Um módulo é o bloco de construção básico no Verilog. Cada parte do código Verilog está dentro de um módulo.
Pense em um módulo como um componente com:
- inputs (sinais que chegam)
- outputs (sinais que saem)
- Behavior (o que ele faz)
Sintaxe de módulo
module module_name ( inputs, outputs );
// Tudo aqui dentro
endmoduleTodo módulo começa com module e termina com endmodule.
Entradas e Saídas
module and_gate(
input a, // a entra NO módulo
input b, // b entra NO módulo
output c // c sai DO módulo
);
// O comportamento vai aqui
endmodule- input = o sinal entra no módulo
- output = o sinal sai do módulo
Adicionando comportamento
Agora fazemos o módulo fazer algo:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c é 1 somente quando a AND b são 1
endmoduleassignconecta continuamente o lado direito ao lado esquerdo&significa AND em Verilog
Desafio
Neste desafio, você precisa criar um module simples que execute a operação OR.
O que fazer:
- O module deve se chamar
or_gate - Ele deve ter um input chamado
x - Ele deve ter um input chamado
y - Ele deve ter um output chamado
z - Dentro do module, use
assignpara fazerzser igual ax OR y
O cabeçalho do module e seus três ports já estão no editor. A linha que você precisa adicionar é a instrução assign dentro do module.
Observação: em Verilog, OR é escrito com o símbolo de barra vertical |. Ele produz 1 (verdadeiro) se pelo menos uma das entradas for 1 (verdadeiro).
Experimente você mesmo
// O cabeçalho do módulo e suas portas já estão escritos para você
module or_gate(
input x,
input y,
output z
);
// Sua vez: use assign para definir z como x OR y
// Em Verilog, OR é escrito como |
endmodule
Esta 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