Menu
Coddy logo textTech

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.)
  
endmodule

Partes de um Módulo

PartePropósito
Palavra-chave moduleInicia a definição do módulo
module_nameNome do módulo
( )Lista de portas de entrada e saída
input / outputDeclara a direção da porta
Corpo do móduloLógica interna e conexões
endmoduleEncerra a definição do módulo

Exemplo de Módulo Simples

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

Este módulo:

  • Chama-se and_gate
  • Possui duas entradas (a, b)
  • Possui uma saída (c)
  • Contém uma instrução assign definindo a lógica

Regras para Estrutura de Módulos

  1. Um módulo por arquivo é uma prática comum
  2. O nome do módulo deve descrever sua função
  3. As portas (Ports) são listadas entre parênteses após o nome
  1. Entradas são sempre input (não podem ser escritas internamente)
  2. Saídas são output (podem ser reg ou wire)
  3. <strong>endmodule</strong> deve fechar o módulo
challenge icon

Desafio

Preencha as partes que faltam para completar este módulo.

O que fazer:

  1. Adicione o nome do módulo my_and
  2. Adicione input para x
  3. Adicione input para y
  4. Adicione output para z
  5. 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;

endmodule
  • module / endmodule — iniciam e terminam a definição
  • input — sinal de entrada (somente leitura dentro do módulo)
  • output — sinal de saída (pode ser reg ou wire)
  • 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)
  
endmodule
quiz iconTeste seus conhecimentos

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