Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Verilog

Domine o Verilog: Tutorial Completo para Projeto de Circuitos Digitais

Nos primórdios dos circuitos integrados, engenheiros precisavam sentar e desenhar fisicamente transistores e suas conexões no papel para projetá-los de forma que pudessem ser fabricados em silício. Circuitos maiores e mais complexos exigiam mais engenheiros, tempo e outros recursos e logo surgiu a necessidade de uma maneira melhor de projetar circuitos integrados.

O VHDL foi desenvolvido para aprimorar o processo de projeto, permitindo que engenheiros descrevessem a funcionalidade do hardware desejado e deixassem ferramentas de automação converter esse comportamento em elementos de hardware reais, como portas combinacionais e lógica sequencial. O Verilog foi desenvolvido para simplificar o processo e tornar a Hardware Description Language (HDL) mais robusta e flexível. Hoje, Verilog é a HDL mais popular usada e praticada em toda a indústria de semicondutores.

Como o Verilog é Útil?

O Verilog cria um nível de abstração que ajuda a esconder os detalhes de sua implementação e tecnologia.

Por exemplo, o projeto de um flip-flop tipo D exigiria o conhecimento de como os transistores precisam ser organizados para alcançar um FF disparado por borda positiva e quais os tempos de subida, descida e clk-Q necessários para travar o valor em um flop, entre muitos outros detalhes orientados à tecnologia. Dissipação de potência, timing e a capacidade de conduzir redes e outros flops também exigiriam um entendimento mais profundo das características físicas de um transistor.

O Verilog nos ajuda a focar no comportamento e deixar o resto para ser resolvido depois.

Exemplo

O código a seguir ilustra como um código Verilog se parece. Vamos nos aprofundar nos detalhes do código no próximo artigo. Por enquanto, vamos apenas entender que o comportamento de um contador é descrito. O código essencialmente faz o contador contar para cima se o sinal up_down for 1, e para baixo se seu valor for 0. Também reseta o contador se o sinal rstn se tornar 0, tornando este um reset active-low.

module ctr (
    input up_down, clk, rstn,
    output reg [2:0] out
);
    always @ (posedge clk)
        if (!rstn)
            out <= 0;
        else begin
            if (up_down)
                out <= out + 1;
            else
                out <= out - 1;
        end
endmodule

O exemplo simples acima ilustra como todos os detalhes de implementação física foram escondidos enquanto ainda fornece uma ideia clara de como o contador funciona.

ctr é um module que representa um contador up/down, e é possível escolher a implementação física real do projeto a partir de uma ampla variedade de diferentes estilos de flops otimizados para área, potência e desempenho. Eles geralmente são compilados em bibliotecas e estarão disponíveis para seleção dentro de ferramentas EDA em uma etapa posterior do processo de projeto.

Agora que você sabe o que é Verilog, vamos começar a aprender Verilog!

Verilog

  1. Domine a Programação em C: Tutorial Completo para Iniciantes
  2. Dominando Concatenação Verilog: Guia Prático
  3. Entendendo Atribuições em Verilog: Tipos, Sintaxe e Boas Práticas
  4. Verilog Blocking vs Non-Blocking: Diferenças Essenciais Explicadas
  5. Dominando Funções em Verilog para Design RTL Eficiente
  6. Entendendo Tasks em Verilog: Funções vs Tasks, Sintaxe e Uso
  7. Gerador de Clock Verilog: Guia de Design e Implementação
  8. Dominando Funções Matemáticas do Verilog para Design de Hardware Eficiente
  9. Dominando $timeformat do Verilog: Precisão e Controle de Exibição
  10. Domine o Design de PCB Rapidamente com Ultiboard: Um Tutorial Abrangente