Menu
Coddy logo textTech

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

Partes de um módulo

ParteFinalidade
module palavra-chaveInicia a definição do módulo
module_nameNome do módulo
( )Lista de portas de input e output
input / outputDeclara a direção da porta
Corpo do móduloLógica e conexões internas
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:

  • É nomeado and_gate
  • Tem duas entradas (a, b)
  • Tem uma saída (c)
  • Contém uma instrução assign que define a lógica

Regras para a estrutura de um módulo

  1. Um módulo por arquivo é uma prática comum
  2. O nome do módulo deve descrever sua função
  3. As portas são listadas entre parênteses após o nome
  1. Entradas são sempre input (não podem ser escritas dentro)
  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 concluir este módulo.

O que fazer:

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

Pratique por conta própria: Compilador de Verilog online