Introdução à programação VHDL: crie seu próprio hardware

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


VHDL é uma linguagem de descrição de hardware (HDL). Um HDL se parece um pouco com uma linguagem de programação, mas tem um propósito diferente. Em vez de ser usado para projetar software, um HDL é usado para definir um chip de computador. O VHDL pode ser usado para descrever qualquer tipo de circuito e é freqüentemente usado no design, simulação e teste de processadores, CPUs, placas-mãe, FPGAs, ASICs e muitos outros tipos de circuitos digitais..

História VHDL

O nome VHDL é um acrônimo aninhado. Significa VHSIC Hardware Description Language. VHSIC significa Circuito Integrado de Velocidade Muito Alta. Além de ser uma descrição de um processador rápido, era o nome de um programa do governo dos EUA na década de 1980, cuja missão era pesquisa e desenvolvimento no campo de circuitos integrados de alta velocidade (chips de computador rápidos).

Juntamente com os principais avanços na ciência dos materiais, algoritmos, design de chips, litografia e uma dúzia de outros campos relacionados, a VHSIC desenvolveu o VHDL.

O primeiro padrão oficial para o idioma veio do IEEE em 1987 e é conhecido como IEEE 1076. Houve várias edições desde então, a mais recente em 2008. Além do idioma “central” especificado em 1076, há um número de extensões codificadas em outras especificações:

  • IEEE 1076.1 VHDL analógico e sinal misto (VHDL-AMS)
  • Pacotes padrão IEEE 1076.1.1 VHDL-AMS (stdpkgs)
  • Pacote de Matemática IEEE 1076.2 VHDL
  • Pacote de Síntese IEEE 1076.3 VHDL (vhdlsynth)
  • Pacote de síntese IEEE 1076.3 VHDL – ponto flutuante (fphdl)
  • Momento IEEE 1076.4 (Iniciativa VHDL para bibliotecas ASIC: vital)
  • Interoperabilidade de síntese IEEE 1076.6 VHDL
  • Pacotes lógicos de valores múltiplos IEEE 1164 VHDL (std_logic_1164)

Projeto VHDL e sintaxe

O VHDL foi baseado no Ada e emprestado extensivamente dele, tanto na sintaxe quanto nos conceitos. Isso foi complementado com conceitos específicos de hardware, como lógica de valores múltiplos, paralelismo físico e um conjunto estendido de operadores booleanos. O VHDL também pode indexar matrizes em ordem crescente e decrescente, enquanto o Ada (e a maioria das outras linguagens de programação também) indexa apenas em ordem crescente.

A maioria das linguagens de programação é essencialmente processual – o computador executa um comando após o outro em sequência. VHDL é diferente. É uma linguagem de hardware que descreve uma estrutura física (real ou simulada). Essa estrutura é composta por um grande número de módulos e cada módulo atua ao mesmo tempo que todos os outros módulos..

Portanto, dentro de cada módulo, há um fluxo processual de instruções que se parece com um pequeno programa de software independente – com variáveis, fluxos de controle, condicionais, loops. Cada módulo possui uma ou mais entradas, juntamente com uma ou mais saídas. As entradas são especificadas em uma estrutura chamada entidade e a lógica independente é definida em uma arquitetura.

Considere a idéia de um “portão AND” onde temos duas entradas e uma saída. Se ambas as entradas estiverem “ativadas” (true, 1), a saída será “ativada”; caso contrário, a saída está “desligada”. Então, usando VHDL, definiríamos duas entradas e uma saída. Os valores aceitos dessas entradas e saídas seriam definidos em um módulo std_logic, que é importado como uma biblioteca em uma linguagem de programação regular. A arquitetura definiria o funcionamento interno do nosso “AND gate” para que funcione como acabamos de discutir.

O módulo std_logic é um tipo de valor específico de hardware interessante. É semelhante ao valor BOOLEAN presente nas linguagens de programação (um bit: verdadeiro ou falso), mas pode ter uma faixa de valores, pois representa um impulso elétrico real em um sistema físico:

  • U: não inicializado. Este sinal ainda não foi definido.
  • X: desconhecido. Impossível determinar esse valor / resultado.
  • 0: lógica 0
  • 1: lógica 1
  • Z: Alta impedância
  • W: Sinal fraco, não sei dizer se deve ser 0 ou 1.
  • L: Sinal fraco que provavelmente deve ir para 0
  • H: Sinal fraco que provavelmente deve ir para 1
  • -: Não liga.

É assim, em miniatura, como é construído um design VHDL completo. Módulos bastante simples e logicamente independentes da atividade de E / S são construídos e conectados entre si para formar máquinas computacionais capazes de executar diferentes tipos de tarefas. Um design VHDL pode descrever um computador de uso geral totalmente funcional ou codificar um único algoritmo, como a prova de trabalho de força bruta usada na mineração de Bitcoin.

É importante perceber que um design VHDL não é um programa – ele não é executado ou executado. Como um modelo, ele define uma arquitetura. Depois que um projeto é concluído, ele geralmente é simulado para teste em um banco de testes de software e, em seguida, sintetizado, o que significa que ele é traduzido em um projeto físico que pode ser implementado em um chip ou placa de circuito real.

Recursos para aprender VHDL

Existem muitos recursos para aprender VHDL. Reunimos algumas das melhores.

Recursos online

  • VHDL Primer: um tutorial sobre VHDL da Universidade da Pensilvânia.
  • VHDL na Wikipedia: a cobertura da Wikipedia sobre VHDL é surpreendente e lúcida, fornecendo uma ótima introdução ao idioma como um todo.
  • Livro de receitas VHDL: um livro on-line gratuito, a duração e o formato de um livro de curso universitário.
  • Tutorial VHDL: Aprenda por Exemplo: este venerável tutorial não é nada agradável de se olhar, mas as informações são ótimas e muito bem organizadas.
  • Guia de idiomas VHDL: este é um PDF que cobre o idioma em imensos detalhes (400 páginas) com links no documento para facilitar a navegação. Esta é uma ótima referência.
  • Guia do designer para VHDL: uma coleção de recursos, tutoriais e links. Inclui vídeos e um curso de certificação online.
  • Estrutura do módulo de lógica programável / VHDL
  • Noções básicas de VHDL – Curso on-line
  • Manual VHDL
  • Guia para iniciantes VHDL

Livros

Todos esses livros focam em VHDL:

  • O Guia do designer para VHDL, terceira edição
  • Projeto e simulação de circuitos com VHDL
  • Vhdl por exemplo
  • VHDL: noções básicas de programação
  • VHDL para engenheiros
  • VHDL por exemplo: Fundamentos de design digital
  • Projeto de circuitos com VHDL
  • Design digital usando VHDL: uma abordagem de sistemas

VHDL & Verilog Books

A principal “competição” da VHDL é a Verilog. As duas linguagens são usadas para o design de hardware; portanto, há vários livros que se concentram nos conceitos subjacentes de design e engenharia e usam VHDL e Verilog.

  • Design digital com design RTL, VHDL e Verilog
  • Design de chip HDL: um guia prático para projetar, sintetizar & Simulando Asics & FPGAs usando VHDL ou Verilog
  • Receitas de design para FPGAs, segunda edição: usando Verilog e VHDL
  • Fundamentos da programação HDL: VHDL e Verilog

Outros links VHDL importantes

Implementações e simuladores

  • Livre / Código Aberto
    • GHDL
    • NVC
    • Projeto HDL grátis
  • Comercial / Proprietário
    • VHDL Simili
    • Active-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Ferramentas

  • EDA Utils: uma grande coleção de utilitários para trabalhar com VHDL, bem como Verilog e outros HDLs.
  • EDA Playground: uma sandbox online para testar projetos VHDL.
  • Pacotes de Editor
    • Modo VHDL do Emacs
    • Plug-in VHDL para vim
    • Pacote VHDL para texto sublime
    • VHDL for Atom
    • VHDL for Notepad++

Você também deve saber…

VHDL é uma das duas principais linguagens de descrição de hardware. O outro é Verilog. A maioria dos designers de hardware está familiarizada com ambos, além de linguagens de sistema operacional de baixo nível, como Cand C++.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me