Como criar seu primeiro programa VHDL:Hello World!
Ao aprender uma nova linguagem de programação, sempre gosto de começar aprendendo a imprimir. Quando você domina a saída de “Hello World!”, você sabe que o ambiente está funcionando. Ele também mostra o esqueleto básico da linguagem, o código mínimo necessário para produzir qualquer saída.
Você pode estar pensando:mas VHDL é uma linguagem de descrição de hardware, como ela pode produzir qualquer texto? Você precisaria de uma tela conectada a um FPGA ou algo assim e todo tipo de lógica no meio, e isso não seria nada simples. Embora tudo isso seja verdade, vamos esquecer os FPGAs e ASICs por um momento e focar nossa atenção na linguagem VHDL.
Esta postagem do blog faz parte da série de tutoriais básicos de VHDL.
O VHDL pode ser pensado como uma linguagem de programação paralela e, portanto, podemos usar a abordagem desse programador para aprendê-lo. Como usamos a linguagem para descrever circuitos digitais, a única maneira de executá-la em nosso computador é usando um simulador , e o simulador é definitivamente capaz de emitir “Hello World!” para a tela.
Como instalar um simulador e editor VHDL gratuitamente
Exercício
Este tutorial em vídeo mostrará como criar seu primeiro programa VHDL:
O código final que criamos:
entity T01_HelloWorldTb is end entity; architecture sim of T01_HelloWorldTb is begin process is begin report "Hello World!"; wait; end process; end architecture;
A saída para o console do simulador quando pressionamos o botão de execução no ModelSim:
VSIM 2> run # ** Note: Hello World! # Time: 0 ns Iteration: 0 Instance: /t01_helloworld
Análise
Nas duas primeiras linhas, declaramos a entidade . A entidade de um módulo declara suas entradas e saídas. Para que seja possível rodar um módulo em um simulador, ele não pode ter entradas ou saídas. Portanto, nosso módulo não tem nada além de uma declaração de entidade vazia.
Em seguida, declaramos a arquitetura do módulo. Enquanto a entidade é a interface de um módulo para o mundo exterior, a arquitetura é sua implementação interna. Um módulo pode ter várias arquiteturas que podem ser usadas com a mesma entidade. Eu não me preocuparia muito com essas coisas neste momento, pois são recursos avançados de VHDL.
Dentro da arquitetura, declaramos um processo . Por enquanto, podemos pensar em um processo como uma thread em nosso programa, onde as coisas acontecem sequencialmente.
Dentro do processo, imprimimos “Hello World!” usando o
report
palavra-chave. Na próxima linha, há um único wait;
. Quando o simulador atingir esta linha, nada mais vai acontecer. O processo vai esperar aqui para sempre. Quando simulamos este projeto no ModelSim, pudemos ver que “Hello World!” foi impresso na saída do console. Depois disso, nada mais aconteceu.
Retirada
- Você pode pensar em um processo como um encadeamento de programa
- O
report
declaração imprime texto no console do simulador - A execução de um processo aguardará para sempre em um
wait;
declaração
Ir para o próximo tutorial »
VHDL
- Tutorial:Seu primeiro programa FPGA:um LED piscando
- C# Hello World - Seu primeiro programa em C#
- Programa Java Hello World
- Como criar uma lista de strings em VHDL
- Como criar um testbench orientado por Tcl para um módulo de bloqueio de código VHDL
- Como criar um controlador PWM em VHDL
- Como criar um buffer de anel FIFO em VHDL
- Como criar uma lista vinculada em VHDL
- Como usar um procedimento em um processo em VHDL
- Como os protótipos melhoram seu processo de fabricação