Você gostou do post,
e
quer mais?
Me paga um café! :) PIX consultoria@carlosdelfino.eti.br
Curta o post no final da página, use o Disqus, compartilhe em sua rede social. Isso me ajuda e motiva
Obrigado.

O que são HDLs? qual sua história e onde é usado?.

Revisado em: Janeiro de 2021.

Inicialmente eu pretendia escrever um artigo só para falar de VHDL e FPGA, com foco neste último, mas com a escrita, o artigo foi ficando grande e com meu aprendizado resolvi dividi-lo para que eu não precisasse resumir muito. Além disso, mudei a linguagem de sintetização para Verilog, mais especificamente SystemVerilog, assim irei escrever mais um artigo específico sobre ela.


Não espere que a leitura deste texto seja agradável e simples, será usada muitas abreviações e para clareza não irei descrever todas elas, portanto procure outros artigos no site que as descrevam (algumas farei um link) ou procure no google, se achar relevante use os comentários para pedir mais detalhes, quando eu tiver tempo atualizo com as principais demandas.


Este artigo é puramente teórico para introduzir os conceitos sobre FPGA e VHDL, para que nos outros possamos nos dedicar apenas aos exemplos. Portanto para hobistas e makers em geral não é preciso dominar o conceito para fazer testes e experimentos a nível de distração, como eu mesmo fiz nos primeiros contatos com a tecnológia.

Terminologia

  • HDL - Hardware Description Language
  • VHDL - VHDL (VHSIC Hardware Description Language ou Very High Speed ASIC Description Language)
  • Verilog - Linguagem de sinteização mais amigável e amplamente usada atualmente (pelo menos até 2021)
  • SystemVerilog - Linguagem de sintetização que amplia a Verilog com recursos similares ao C/C++.
  • VHSIC - Very High Speed Integrated Circuit
  • Register Transfer Level (RTL) - Um típo de modelagem comportámental, com o proposito de síntese do hardware.
    • O Hardware está implícito ou é inferido
    • Sintetizável
  • Síntese - Traduz HDL para um circuito e então otimiza a representação do circuito.
  • Processo – Unidade básica de execução no VHDL

VHSIC

VHSIC (Very High Speed Integrated Circuit) foi um programa do governo americano onde investiu U$ 1 Bilhão (Um Bilhão de Dólares). O objetivo do programa desenvolvido pelo Departamento de Defesa Americano (DoD) era atender demandas de hardware de alto desempenho e qualidade para os serviços da Aeronáutica e Marinha Militar e o Exército, sendo um programa de interesse militar, resolvendo assim a crise do ciclo de vida dos projetos eletrônicos.

O Programa envolvia o desenvolvimento de soluções e materiais para produção de circuitos, seu empacotamento, teste e algoritmos, além de criar uma grande coleção de ferramentas de projeto auxiliado por computador (Computer-aided design - CAD), originando assim o VHDL (VHSIC Hardware Description Language) como descrito a seguir.

VHDL

A VHDL do inglês VHSIC Hardware Description Language já que condiz com HDL que é a linguagem usada pelo programa VHSIC do DoD.

VHDL é uma Linguagem de descrição de hardware, inicialmente proposta para ASICS e hoje usada também para FPGA (mais detalhes logo a baixo). Além disso, permiti a sintetização do hardware conforme programado e é possível também descrever o processo de simulação do funcionamento proposto.

Criada com base na linguagem ADA, para que não seja necessário criar uma nova linguagem do zero, porém o VHDL sofreu diversas revisões depois de sua especificação e padronização pelo IEEE, ela foi criada por engenheiros de Hardware Integrados da Texas Instruments, Engenheiros especialistas em projetos de sistemas computacionais da IBM e pela empresa Intermetrics conforme descrito acima quando foi feito o projeto do VHSIC.

Em uma das revisões do VHDL apresentadas, foi adicionado a capacidade de espanção por uma linguagem estruturada como o C/C++. Lembrando que VHDL é uma linguagem totalmente paralela, já que descreve o funcionamento de um hardware e suas instruções não são executadas sequencialmente.

Além da VHDL hoje temos também o Verilog que é uma linguagem baseada em C e não iremos falar dela nesta série de artigo inicialmente, mas futuramente poderei adicionar um artigo especifico sobre ela.

PSL

Em 2008 foi incorporado ao VHDL um subset básico do PSL (Property Specification Language), uma “lógica temporal” que estende a “lógica temporal linear” com uma faixa de operadores para facilitar a expressão com expressivo poder.

PSL é vastamente usado pela insdutria de projeto de hardware e verificação onde ferramentas de verificação e simulação lógica são usadas para atender ou uma data fórmula PSL que mantem um certo projeto.

Inicialmente desenvolvida pela Accellera para especificar propeedade ou asserções sobre projeto de hardware. Desde 2004 está padronizada como IEEE 1850 e lançada em 2005.

Linha do Tempo

  • 1980 - O Departamento de Defesa dos Estados Unidos (DoD) fundou o projeto para criar uma linguagem padrão de descrição de hardware sobre o programa Very High Speed Integrated Circuit (VHSIC).
  • 1981 - Projeto iniciado
  • 1983-85 - Projeto implementado pela Intermetrics, IBM e Texas
  • 1986 - O Projeto foi transferido para o IEEE
  • 1987 - O Institute of Electrical and Electronics Engineers (IEEE) ratifica a linguagem como um padrão IEEE de número 1076 e é liberado a VHDL 87.
  • 1993 - A Linguagem VHDL foi revisada e atualizada para IEEE 1076 ‘93, também foi publicado com o ISBN 1-55937-376-8, liberado a VHDL 93.
  • 2000 - feita a revisão IEEE 1076-2000 onde foi introduzido tipos protegidos.
  • 2002 - IEEE 1076-2002 revisão da 1076-2000. Regras para portas buffers foram flexibilizadas.
  • 2004 - o IEC adota a IEEE 1076-2002 como sendo IEC 61691-1-1:2004
  • 2005 - Verilog foi definido e padronizado como IEEE 1364-2005
  • 2009 - Liberado o IEEE 1076-2008 previamente conhecida como 1076-200x, sendo uma revisão maior, incorpora um subset básico do PSL (Property Specification Language) permite generics em pacotes e subprogramas e introduz o uso de nomes externos.
  • 2011 - IEC adota ultima revisão como IEC 61691-1-1:2011

Outros padrões relacionados

  • IEEE 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)
  • IEEE 1076.2 VHDL Math Package
  • IEEE 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric_std)
  • IEEE 1076.3 VHDL Synthesis Package - Floating Point (fphdl)
  • IEEE 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)
  • IEEE 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) Packages

Detalhes sobre a Linguagem

  • Possui dois grupos de construção:
    • Síntese
    • Simulação
  • A Linguagem é construída sobre palavras reservadas.
  • Em boa parte a linguagem não é case-sensitive.
  • Cada declaração VHDL é terminada com ;, lembre-se do pascal/delphi;
  • É insensível a espaços, use para indentação para facilitar a leitura.
  • Comentários são iniciados com “–” até o eol (fim de linha)

Unidades que compõem o VHDL

  • Entity
    • Usado para definir uma entidade, visão externa do modelo. I.e. symbol;
  • Architecture
    • Usado para definir a função de um modelo. I.e. schematic
  • Configuration
    • Usado para associar uma arquitetura (Architecture) com uma entidade (Entitiy)
  • Package
    • Coleção de informações que podem ser referênciadas por modelos VHDL; I.e. Library
    • Consiste em duas partes, Pacote de Declarações e Pacote Body.

Verilog e SystemVerilog

Irei escrever um artigo para este site especificamente sobre as duas linguagens e que será porta de entrada para meus estudos de FPGA, este artigo pode ser encontrado no link /fpga/verilog, aguarde.

FPGA

Para ler mais sobre FPGA, e os chips usados em meus estudos, vá para o link /fpga/.

Estou trabalhando neste artigo, pode demorar para conclui-lo, mas se desejar informações poste nos comentários.

Referências

  • https://en.wikipedia.org/wiki/Field-programmable_gate_array
  • https://en.wikipedia.org/wiki/VHDL
  • https://www.elprocus.com/fpga-architecture-and-applications/
  • https://en.wikiversity.org/wiki/Understanding_FPGA_Design
  • https://www.ics.uci.edu/~jmoorkan/vhdlref/Synario%20VHDL%20Manual.pdf
  • https://ieeexplore.ieee.org/document/5967868 entre outros relativos
  • https://www.eeweb.com/profile/gina-smith/articles/beginners-guide-to-understanding-fpga-development

Não deixe de me pagar um café, faz um PIX: consultoria@carlosdelfino.eti.br de qualquer valor.


Carlos Delfino

Escrito por:

Desenvolvedor e consultor para projetos com Microcontroladores e Mobile

Google LinkedIn Digg Reddit StumbleUpon

Atualizado em