Tutorial VHDL 1: Introdução ao VHDL

O que é VHDL?

  • VHDL é uma forma abreviada de linguagem de descrição de hardware VHSlC, onde VHSIC significa Circuitos Integrados de Muito Alta Velocidade
  • É uma linguagem de descrição de hardware – significa que descreve o comportamento de um circuito digital e também pode ser usada para derivar ou implementar um hardware de circuito/sistema digital.
  • Ele pode ser usado para síntese de circuitos digitais e também para simulação.
  • É usado para construir sistemas/circuitos digitais usando dispositivos lógicos programáveis ​​como CPLD (Complex Programmable Logic Device) ou FPGA (Field Programmable Gate Array)
  • O programa VHDL (código) é usado para implementar circuito digital dentro de CPLD / FPGA, ou pode ser usado para fabricar ASIC (Application Specific Integrated Circuit)
  • É muito útil no desenvolvimento de microprocessadores ou microcontroladores sofisticados e sofisticados como ASIP (Application Specific Instruction Processor) ou PSoC (Programmable System on Chip)

Agora, antes de entrar em mais detalhes sobre o VHDL, vamos primeiro ver como e por que houve necessidade do VHDL.

Por que VHDL?

  • Na década de 1980, o DoD (Departamento de Defesa) dos EUA iniciou o programa VHSIC
  • Diferentes empresas de design de hardware começaram a desenvolver seus ICs com seu próprio HDL. Todas as empresas tinham seus próprios e diferentes HDL
  • Portanto, o problema é que todas essas empresas diferentes não podem trocar seus códigos e designs com outras.
  • Além disso, todas as empresas fornecem o design do chip ao DoD com diferentes HDL
  • Portanto, havia uma exigência de linguagem de descrição de hardware padronizada para projeto, documentação e verificação de circuitos/sistemas digitais.

Vantagens do VHDL

  • É independente de fornecedor
  • É portátil
  • É reutilizável
  • Ele suporta design hierárquico – todo um sistema grande e complexo pode ser modelado como uma interconexão de pequenos componentes e, novamente, os componentes podem ser modelados posteriormente como uma interconexão de subcomponentes.
  • Todas as instruções do programa VHDL são executadas simultaneamente (a menos e até que as instruções sejam colocadas dentro de procedimento, função ou processo)
  • É legível por humanos e também por máquina
  • É padrão IEEE e ANSI
  • Suporta diferentes metodologias de design, como top-down, bottom-up, mix, etc.
  • Pode ser usado para projetar circuitos digitais combinacionais, sequenciais ou mistos usando três métodos diferentes 1) fluxo de dados 2) comportamental 3) estrutural

Breve história da origem do VHDL

  • Em 1985 a primeira versão do VHDL 7.2 foi desenvolvida pela IBM, TEXAS INST. e Intermatrix sob um contrato do DoD
  • Em 1987 foi padronizado pelo IEEE com o padrão IEEE 1076. Depois disso, o novo padrão IEEE 1164 foi fornecido ao VHDL, que hoje é usado em todos os lugares.
  • ANSI também reconhece VHDL, e o manual de referência padrão de VHDL é disponibilizado pelo IEEE que possui uma descrição oficial deste VHDL

Agora, depois de obter informações suficientes sobre VHDL, vamos prosseguir com o projeto de circuitos digitais usando VHDL.

Aqui, mais uma vez, antes de prosseguir, aconselho todos vocês a lerem dois livros muito bons sobre VHDL.

  • Projeto de circuitos usando VHDL por VA Pedroni
  • Uma cartilha VHDL de J Bhaskar

Esses livros fornecerão informações completas sobre VHDL e servirão como companheiros em sua jornada para aprender VHDL. As informações fornecidas acima também foram retiradas desses dois livros. Também aconselho você a consultar esses livros continuamente à medida que avança nesta série de tutoriais VHDL.

Então eu acho que agora todos vocês estão muito animados para aprender VHDL. Vamos primeiro ver como projetar um circuito digital usando meios VHDL, “Qual é o fluxo do projeto VHDL?”

Fluxo de projeto VHDL

  1. O fluxo de design VHDL começa com a escrita do programa VHDL. Várias empresas de manufatura como XILINX, Altera, etc. fornecem suas próprias ferramentas de desenvolvimento de software como XILINX ISE, Altera Quartus, etc. Neste código VHDL, o circuito é descrito em RTL (Resister Transfer Level)
  2. Este código VHDL é compilado e gera Netlist no nível Gate. O compilador converte código VHDL de alto nível em RTL para Gate Level
  3. Esta Netlist é ainda mais otimizada para obter Netlist otimizada novamente no nível Gate. A otimização é feita para melhor velocidade e menos espaço. A simulação do projeto é feita nesta fase
  4. Finalmente, um dispositivo físico é implementado em CPLD/FPGA, ou a MASK final é preparada para ASIC a partir desta Netlist otimizada por local e software de rota (fitter). mais uma vez o dispositivo final pode ser simulado e verificado

Este é o fluxo de projeto de circuito digital usando VHDL. Agora, como VHDL também é um tipo de linguagem de programação, ele também possui sua estrutura de programa (semelhante a outras linguagens de programação, como a estrutura de programa C). Então, como próximo passo, vamos aprender qual é a estrutura do programa VHDL.

Estrutura do programa VHDL

  • Todos os programas VHDL consistem em pelo menos dois componentes: Entidade e Arquitetura
  • Pode ter componentes adicionais como configuração, declaração de pacote, corpo, etc., conforme os requisitos

A estrutura do programa VHDL é semelhante a:

Declaração da biblioteca:

  • A biblioteca contém todo o código usado com frequência. Isso nos permitirá reutilizá-los continuamente. Além disso, isso pode ser compartilhado com outros designs
  • Começa com a palavra-chave LIBRARY seguida do nome da biblioteca
  • Existem três bibliotecas normalmente usadas em todos os códigos VHDL
    1. IEEE – especifica sistema lógico multinível
    2. std – biblioteca de recursos para ambiente de design VHDL
    3. work – usado para salvar nosso trabalho de projeto e arquivo de programa (.vhd)
  • Entretanto, no código do programa, precisamos declarar apenas a biblioteca IEEE porque as outras duas bibliotecas são bibliotecas padrão
  • Agora, para adicionar pacotes de biblioteca e sua parte, a palavra-chave USE é usada com o nome da biblioteca, pacotes de biblioteca e partes do pacote. Por exemplo, na biblioteca IEEE, o pacote é std_logic_1164 e para somar toda a sua parte podemos escrever

BIBLIOTECA ieee
USE ieee.std_logic_1164.all

  • Portanto, todos os programas VHDL começam com as duas instruções acima para declaração de biblioteca

Declaração da entidade:

  • A entidade define conexões de entrada-saída do circuito digital com as quais pode interagir com outros componentes/circuitos
  • Ele declara o número de entradas dadas ao circuito e o número de saídas retiradas do circuito.
  • Além disso, ele declara quaisquer sinais intermediários usados ​​no próprio circuito.
  • A declaração da entidade começa com a palavra-chave ENTITY. O usuário deve fornecer o nome desejado à entidade, geralmente relacionada a um circuito que está sendo projetado como 'mux,' 'decodificador,' 'adicionador,' 'contador' etc. (a regra geral para qualquer programa VHDL é que o nome do arquivo do programa deve ser o mesmo que o nome da entidade)
  • Dentro da entidade, os pinos de entrada e saída de um circuito são declarados usando a palavra-chave PORT
  • PORT (significa pinos de interface) são declarados com port_name, port_mode e port_type
    1. port_name – é um nome definido pelo usuário do pino de entrada-saída
    2. port_mode – existem quatro tipos de modo de porta IN, OUT, INOUT e BUFFER. IN indica um pino de entrada que pode ser somente leitura. OUT indica um pino de saída e seu somente gravação. Ambos os pinos são unidirecionais. O pino INOUT é bidirecional e pode ser lido e gravado. BUFFER é usado para a saída intermediária
    3. port_type – pode ser BIT, BIT_VECTOR, STD_LOGIC, etc.
  • Após declarar todas as interfaces, a declaração da entidade termina com a palavra-chave END seguida do nome da entidade
  • Vejamos um exemplo de entidade para uma porta AND de duas entradas.

  • Da mesma forma, podemos escrever uma entidade para meio somador como

Arquitetura:

  • Arquitetura declara as funcionalidades do circuito digital
  • Fornece detalhes internos de uma entidade, o que significa como as entradas e saídas estão interconectadas
  • Ele descreve o comportamento do circuito, significa como o circuito gera a saída necessária a partir de determinadas entradas
  • A declaração da arquitetura começa com a palavra-chave ARCHITECTURE seguida por nome_arquitetura e nome_entidade
  • A palavra-chave BEGIN indica o início do corpo da arquitetura. O corpo inclui instruções sequenciais ou simultâneas que descrevem a funcionalidade do circuito
  • O corpo da arquitetura termina com a palavra-chave END seguida por Architecture_name
  • Aqui está a arquitetura de 2 portas AND de entrada (a entidade é fornecida acima).

  • Da mesma forma, vamos escrever uma arquitetura para meio somador.

  • Existem três estilos diferentes de modelagem para arquitetura corporal
    1. Estilo de fluxo de dados – neste estilo de modelagem o circuito é descrito usando instruções simultâneas
    2. Estilo comportamental – neste estilo de modelagem o circuito é descrito usando instruções sequenciais
    3. Estilo estrutural – neste estilo de modelagem o circuito é descrito usando diferentes componentes interconectados
  • Pode haver mais um estilo de modelagem que é o estilo de modelagem mista – uma combinação de quaisquer dois ou todos os três estilos fornecidos acima

Isso completa os fundamentos do VHDL, seu fluxo de design e estrutura do programa. No próximo tutorial veremos diferentes programas VHDL para circuitos digitais e diferentes estilos de modelagem para programas VHDL.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.