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:
- Entradas (sinais que chegam)
- Saídas (sinais que saem)
- Comportamento (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 módulo simples que execute a operação OR.
O que fazer:
- O módulo deve se chamar
or_gate - Ele deve ter uma entrada chamada
x - Ele deve ter uma entrada chamada
y - Ele deve ter uma saída chamada
z - Dentro do módulo, use
assignpara fazerzser igual ax OR y
O cabeçalho do módulo e suas três portas já estão no editor. A linha que você precisa adicionar é a instrução assign dentro do módulo.
Observação: em Verilog, OR é escrito com o símbolo de barra vertical |. Ele gera 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 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