Tutoriais VHDL: 13 Conceitos Importantes

Neste tutorial de VHDL, discutiremos alguns dos conceitos básicos relacionados à tecnologia VHDL e alguns exemplos com codificação. O tutorial VHDL é segmentado da seguinte maneira:

TÓPICOS DA DISCUSSÃO

A. O que é VHDL?

B. História e padronização

C. Procedimentos de projeto VHDL

D. Algumas regras e informações básicas sobre VHDL

E. Sintaxes e alguns conceitos importantes para escrever códigos VHDL

F. Simuladores VHDL para Tutorial VHDL

VHDL || O que é VHDL?

A forma completa de VHDL significa Linguagem de descrição de hardware de circuito integrado de alta velocidade (VHSIC-HDL).

Como o nome sugere, VHDL é uma linguagem de descrição de hardware ou um tipo especial de linguagem de programação que descreve as implementações de hardware de sistemas e circuitos digitais. É uma linguagem fortemente tipada e deve-se lembrar que não é uma linguagem de programação.  

História e Padronização

O Departamento de Defesa dos Estados Unidos tem uma contribuição significativa para o campo tecnológico moderno. Isso gerou muitas grandes ideias e inovações. A US Defense também desenvolveu o VHDL no ano de 1983. Ele foi desenvolvido para a documentação do comportamento dos circuitos integrados específicos da aplicação.

Posteriormente, algumas ideias foram implementadas a partir das linguagens de programação Ada. O VHDL foi padronizado pela primeira vez no ano de 1987. Ele foi adicionado a vários tipos de dados de vários tipos, incluindo strings e numéricos e lógicos.

estandardização

VHDL ou para linguagem de descrição de hardware de circuito integrado de velocidade muito alta (VHSIC-HDL) é padronizada pelo padrão IEEE 1076. Ele está sendo atualizado desde seu nascimento e passou por muitas revisões. Vejamos algumas das revisões padrão e atualizações principais.

RevisõesAtualizações
IEEE 1076 - 1987Revisão e padronização da US Defense.
IEEE 1076 - 1993Surgiu com o melhor lançamento, e é a versão mais usada.
IEC 61691 -1 - 1- 1: 2004IEC adotou a versão IEEE 1076-2002
IEEE 1076-2008Atualizado com algumas mudanças importantes, como - Introdução de genéricos em pacotes e uso de nomes externos
IEC 61691 -1 - 1- 1: 2011IEC adotou a versão IEEE 1076-2008
Verifique a padronização SUA PARTICIPAÇÃO FAZ A DIFERENÇA, Tabela Tutorial VHDL - 1

Projeto de VHDL

O projeto VHDL tem algumas unidades de projeto. Eles são conhecidos como - Entidade, Arquitetura, Configuração e Pacote.

Entidade: Entidade define vistas externas de um modelo que é um símbolo.

Arquitetura: A arquitetura define a funcionalidade de um modelo que é esquemático.

Configuração: A configuração é usada para associar a arquitetura a uma entidade.

Pacote: Pacote é a coleção de informações que podem ser referenciadas por módulos VHDL. Um pacote VHDL consiste em duas partes. Eles são - declaração do pacote e corpo do pacote.

1200px Vhdl assinado adder source.svg
Um código básico desenvolvido no Tutorial VHDL, Crédito de imagem - Vhdl_signed_adder.pngRev RagnarokGenericName trabalho derivado: Bernard ladenthinFonte de somador assinado VhdlCC BY-SA 3.0

Declaração de Entidade

A estrutura geral da declaração da entidade é fornecida abaixo -

ENTIDADE < nome da entidade > IS

          Declarações genéricas

          Declarações de porta

ENTIDADE FINAL <nome da entidade>;

  • pode ser alfabético / numérico ou alfanumérico.
  • Declarações genéricas serve para passar informações para um modelo.
  • Port Declarations é para descrever os pinos de entradas e saídas.
  • Uma entidade pode ser fechada de várias maneiras.
    • ENTIDADE FINAL <nome da entidade>;
    • ENTIDADE FINAL;
    • END;

Declarações de porta

Uma estrutura geral para declarações de porto é fornecida abaixo -

ENTIDADE < nome da entidade > IS

          Declarações genéricas

          - Declarações de porta:

PORT (

          SINAL CLK, CL: EM POUCO;

          q: PARA FORA

          - observe que não há ponto-e-vírgula na última linha das declarações.

          );

ENTIDADE FINAL <nome da entidade>;

A estrutura da declaração do porto: object_name : ;

  • Classe: Classe é o que pode ser feito com um objeto. Aqui, a classe é um sinal. Um ponto a ser lembrado que o SINAL não é escrito durante a escrita do programa; em vez disso, é assumido e não obrigatório.
  • Nome_objeto: É o identificador.
  • Modo: Ele especifica a direção.

DENTRO - Entrada

FORA - saída

ENTRADA - Bidirecional

AMORTECEDOR - Saída com feedback interno

  • Tipo: O tipo especifica o que pode estar contido dentro de um objeto.

Declarações genéricas

Uma estrutura geral de declarações genéricas é fornecida abaixo -

ENTIDADEnome_da_entidade> IS

          GENÉRICO (

                    CONSTANTE tplh, tphl: tempo := 5 ns;

                    tphz, tplz: TIME := 3ns;

                    valor_padrão: INTEIRO: = 1;

                    cnt_dir: STRING := "ACIMA"

                    - observe que não há ponto-e-vírgula na última linha das declarações.

                    );

          Declarações de porta

          END ENTITYnome_da_entidade>;

  • Os valores genéricos podem ser substituídos durante a compilação.
  • O genérico deve possuir a tenacidade a uma constante durante a compilação de um programa.  

Observe que a palavra-chave CONSTANT é assumida e não necessária para a gravação.

Arquitetura

  • Analogia-esquemática: A analogia esquemática fornece a descrição da funcionalidade de um modelo e o tempo associado a ele.  
  • A arquitetura de um modelo deve estar associada a uma ENTITY.
  • Uma Entidade pode ter muitas arquiteturas associadas a ela.
  • As declarações de arquitetura são executadas simultaneamente.
  • Alguns estilos de arquitetura -
  • Comportamental: o modelo comportamental descreve como os projetos operam.

RTL: RTL descreve como os projetos podem ser implementados usando registradores.

Funcional: não inclui tempo.

  • Estrutural: Implementação de estrutura de nível de portão.
  • Fluxo de dados: Implementação da tabela verdade.
  • A arquitetura termina com -
    • ARQUITETURA FINAL ;
    • ARQUITETURA FINAL
    • FIM;

Uma estrutura geral para escrever uma arquitetura:

ARQUITETURA <identificador> OF <entidade_identificador> IS

          SINAL sinal_1: INTEIRO: = 1;

          CONSTANTE cnst: = BOOLEANO: = verdadeiro;

          O processo TYPE É (W X Y Z);

          - Declarações de atributos

          - Especificações de atributos

          - Declarações de subprograma

          - Corpo do subprograma

INÍCIO

          Declarações de processo

          Chamadas de procedimento simultâneas

          Atribuição de sinal

          Gerar declarações

ARQUITETURA FINAL <identificador>;

IMG18 1024x576 1
Esquema RTL de um AND Gate, do Tutorial VHDL

Configuração     

Conforme discutido, um anterior configuration é usado para associar a arquitetura a uma entidade. A associação ou combinação é necessária porque uma ENTITY não pode funcionar até que a arquitetura seja associada a ela. Uma estrutura geral de configuração é fornecida abaixo.

CONFIGURAÇÃO  < identificador > OF < nome da entidade > IS

          PARA < arquitetura_nome >

                    PARA < nome da instância >: Nome do componente > USO < entidade > ( arquitetura >)

                    END PARA;

                    PARA < nome da instância >: Nome do componente > USO < nome_da_configuração >

                    FIM PARA;

          FIM PARA;

FINALIZAR CONFIGURAÇÃO < identificador >;

PACK

Os pacotes VHDL são uma unidade completa de um sistema inteiro. É o principal objetivo da implementação do VHDL. Um pacote tem duas partes. Como dito anteriormente, as declarações e o corpo do pacote formam um pacote completo.

O VHDL oferece dois pacotes integrados.

Algumas regras e informações básicas sobre o Tutorial VHDL

Vamos discutir sobre dar uma olhada em algumas informações básicas antes de mergulharmos para explorar o tutorial de VHDL.

1. Palavras-chave reservadas: VHDL tem algumas palavras-chave reservadas (que não podem ser usadas para declarar uma variável).

2. Partes: O VHDL possui duas etapas ou partes para a criação de um modelo. Um é Simulação e o outro é síntese e simulação.

3. Linguagem que diferencia maiúsculas de minúsculas: VHDL não é uma linguagem com distinção entre maiúsculas e minúsculas (na maior parte).

4. Comentários: Para comentar uma declaração no editor de código VHDL, comece a frase com -, por exemplo:

- Este é um comentário em VHDL.

5. Rescisão: Os códigos VHDL e cada linha de códigos são encerrados com um ponto e vírgula (sempre que necessário). 

6. Sensibilidade do Espaço: VHDL não é sensível a espaços em branco.

Sintaxes e alguns conceitos importantes do tutorial VHDL para escrever códigos VHDL

  1. Array com exemplos
  2. Processo com exemplos
  3. Implementação IF - THEN - ELSIF com exemplos.
  4. Declaração CASE
  5. PARA LOOP

A. Matriz

Array armazena valor. É um tipo de dado definido pelo usuário para armazenar valor. Uma matriz pode conter variáveis ​​do tipo sinal, constantes.

Uma estrutura geral para declarar uma matriz é fornecida abaixo:

TIPO nome_array IS ARRAY (alcance) OF tipo de dados;

Por exemplo,

TIPO lambdageeks É ARRAY (0 a 9) DE std_logic_vector (0 ATÉ 9);

B. Declaração do Processo

O processo é uma instrução simultânea e sincronizada. Ele apresenta as declarações cronológicas. Vários processos são executados paralelamente se o modelo for necessário.

Um processo consiste em duas partes. Eles são a execução do processo e então aguardam a próxima condição.

SINTAXE:

processo sensibilidade_lista

          declarações

começar

          declarações_cronológicas;

fim do processo;

C. IF - THEN - implementação ELSIF

Essas instruções são usadas para implementar uma condição e seus resultados.

Uma condição if pode ter um número infinito de ramificações de acordo com o requisito. Um número considerável de condições elsif também é possível. Mas, em um loop if, só pode haver uma condição else. Um loop if é encerrado pela instrução end if. Se a condição fornecida for verdadeira, ele entrará no loop e executará a instrução. Se falhar, vá para a instrução else ou elsif.

A sintaxe das instruções é fornecida a seguir.

SINTAXE

          if expressão_booleana condicional então

                    declaração 1

          Elsif expressão_booleana condicional então

                    declaração 2

          . . .

          outro

                    declaração 3

          final if;

D. Declaração CASE

A instrução Case descobre qual instrução será executada. Uma instrução case também pode ser ramificada como loops IF-ELSE.

SINTAXE

[rótulo]: casas < expressão condicional > is

          quando < escolha> =>

                    declaração 1

          quando <escolha> =>

                    declaração 2

          ...

          quando <escolha> =>

                    afirmação

final casas [rótulo];

E. Loop FOR

Um loop for é uma execução contínua de instruções de acordo com as condições de limitação.

Para cada loop FOR, precisamos de um iterador que realizará as operações no loop for. Também é conhecido como identificador. É um número inteiro por padrão e não há necessidade de declarar o iterador. É um dos loops mais comumente usados ​​para fazer modelos complexos. É mais familiar do que os loops while.

SINTAXE

[rótulo]: para iterador in alcance laço

          Declaração 1

          Declaração 2

          ...

          Declaração n

laço final [rótulo];

Simuladores VHDL para Tutorial VHDL

Alguns dos famosos simuladores VHDL usados ​​para a implementação de VHDL estão listados abaixo.

  1. Xilinx Vivado: O simulador mais famoso de VHDL é o Xilinx Vivado. Xilinx fornece dispositivos lógicos programáveis. Usaremos este simulador na próxima parte do Tutorial VHDL. 
  2. Cadência incisiva: A versão anterior era conhecida como NC-VHDL.
  3. VHDL Simulação: Symphony EDA o desenvolve. É gratuito para os consumidores. 
  4. GHDL: Um dos famosos simuladores VHDL gratuitos. 
  5. Boot: A organização Freerangefactory desenvolveu o simulador. 
  6. NVC: Nick Gasson desenvolveu o compilador VHDL de código aberto. 
  7. Parque EDA: Outra versão gratuita baseada no navegador da web. 
  8. Sinopse VCS-MX.
Simuladores para VHDL, usaremos XILINX para o nosso crédito de imagem do tutorial de VHDL - ™ / ®Xilinx, Inc., Logotipo da Xilinx, marcado como domínio público, mais detalhes sobre Wikimedia Commons

Faça seu primeiro projeto usando VHDL. Confira a próxima parte do Tutorial VHDL.

Para mais artigos relacionados à eletrônica, clique em aqui!

Deixe um comentário