Master VHDL:introdução abrangente para design FPGA e ASIC
Tutorial – Introdução ao VHDL
VHDL é uma sigla horrível. Significa V HSIC H hardware D descrição L linguagem. Uma sigla dentro de uma sigla, incrível! VHSIC significa V ery H ah S fiz xixi eu C integrado ircuito. Portanto, VHDL expandido é V Circuito Integrado de Alta Velocidade H hardware D descrição L linguagem. UFA, isso é demais. VHDL é uma das duas linguagens usadas pela educação e pelas empresas para projetar FPGAs e ASICs. Você pode se beneficiar primeiro com uma introdução aos FPGAs e ASICs se não estiver familiarizado com essas peças fascinantes de circuitos. VHDL e Verilog são as duas linguagens que os designers digitais usam para descrever seus circuitos e são diferentes por design das linguagens de software tradicionais, como C e Java.
Para o exemplo abaixo, criaremos um arquivo VHDL que descreve um portão E. Para relembrar, um And Gate simples tem duas entradas e uma saída. A saída é igual a 1 somente quando ambas as entradas são iguais a 1. Abaixo está uma imagem do And Gate que iremos descrever com VHDL.
Um E Portão
Vamos lá! A unidade fundamental do VHDL é chamada de sinal . Por enquanto, vamos supor que um sinal pode ser 0 ou 1 (na verdade, existem outras possibilidades, mas chegaremos a isso). Aqui está alguma lógica VHDL básica:
05
A primeira linha do código define um sinal do tipo std_logic e é denominado and_gate. Std_logic é o tipo mais comumente usado para definir sinais, mas há outros que você aprenderá. Este código irá gerar uma porta AND com uma única saída (and_gate) e 2 entradas (input_1 e input_2). A palavra-chave “e” é reservada em VHDL. O operador <=é conhecido como operador de atribuição. Ao analisar verbalmente o código acima, você pode dizer em voz alta:“O sinal and_gate GET input_1 e-ed com input_2.”
Agora você deve estar se perguntando de onde vêm input_1 e input_2. Bem, como o nome indica, eles são entradas para este arquivo, então você precisa informar as ferramentas sobre eles. As entradas e saídas de um arquivo são definidas em uma entidade . Uma entidade contém uma porta que define todas as entradas e saídas de um arquivo. Vamos criar uma entidade simples:
15
Esta é a sua entidade básica. Ele define uma entidade chamada example_and e 3 sinais, 2 entradas e 1 saída, todos do tipo std_logic. Uma outra palavra-chave VHDL é necessária para completar isso:arquitetura . Uma arquitetura é usada para descrever a funcionalidade de uma entidade específica. Pense nisso como um trabalho de tese:a entidade é o índice e a arquitetura é o conteúdo. Vamos criar uma arquitetura para esta entidade:
22
O código acima define uma arquitetura chamada rtl da entidade example_and. Todos os sinais utilizados pela arquitetura devem ser definidos entre as palavras-chave “is” e “begin”. A lógica da arquitetura real está entre as palavras-chave “início” e “fim”. Você está quase terminando este arquivo. Uma última coisa que você precisa informar às ferramentas é qual biblioteca usar. Uma biblioteca define como certas palavras-chave se comportam em seu arquivo. Por enquanto, basta ter como certo que você precisa ter estas 2 linhas no topo do seu arquivo:
36
Parabéns! Você criou seu primeiro arquivo VHDL. Você pode ver o arquivo completo aqui:
44
Parece que você teve que escrever muito código apenas para criar um portão estúpido? Em primeiro lugar, e os portões não são estúpidos. Em segundo lugar, você está correto; VHDL é uma linguagem muito detalhada. Acostume-se com o fato de que fazer algo que era muito fácil em software levará muito mais tempo em um HDL como Verilog ou VHDL. Mas basta pedir a algum software para tentar gerar uma imagem em um monitor VGA que exiba o Jogo da Vida de Conway e ver sua cabeça girar de espanto! A propósito, esse vídeo é criado com VHDL e FPGA. Você será capaz de fazer isso em breve!
A seguir discutiremos outra palavra-chave fundamental do VHDL:processo.
VHDL
- Como criar seu primeiro programa VHDL:Hello World!
- Como um sinal é diferente de uma variável em VHDL
- Como usar um procedimento em um processo em VHDL
- Master VHDL:introdução abrangente para design FPGA e ASIC
- Como criar um processo cronometrado em VHDL
- Como usar um procedimento em VHDL
- Declaração de Procedimento - Exemplo de VHDL
- Questionário básico de VHDL – parte 2
- Verificação aleatória restrita
- Introdução ao VUnit