Introdução
Neste tutorial, abordaremos o desenvolvimento de um projeto simples utilizando VHDL (VHSIC Hardware Description Language), focando em iniciantes que desejam entender os fundamentos da descrição de hardware e como implementar suas ideias em projetos reais. Usaremos o GHDL, um compilador VHDL que permite a simulação e a geração de executáveis a partir de códigos VHDL. Também utilizaremos o GTKWave, uma ferramenta de visualização de formas de onda, que nos ajudará a analisar os resultados da simulação de maneira intuitiva. Este guia prático é perfeito para estudantes e profissionais que desejam iniciar sua jornada no design digital usando VHDL e compreender o básico da sintaxe, estrutura de projetos, e ferramentas de simulação. Vamos lá!
Etapas
Instalação do GHDL e GTKWave
Antes de começar, precisamos instalar o GHDL e o GTKWave. Você pode baixar o GHDL diretamente do repositório no GitHub ou usar um gerenciador de pacotes dependendo do seu sistema operacional. Para o GTKWave, você pode encontrar a versão mais recente também em seu site oficial. Verifique as instruções específicas para o seu sistema operacional e siga os passos para a instalação.
commands# Para instalar o GHDL no Ubuntu, execute:
sudo apt install ghdl
# Para instalar o GTKWave no Ubuntu, execute:
sudo apt install gtkwaveCriando o Arquivo do Projeto VHDL
Crie uma nova pasta para o seu projeto, por exemplo `projeto_vhdl`. Dentro dessa pasta, crie um arquivo `exemplo.vhdl` que conterá o código VHDL para um contador simples. Ao final, você terá um contador que incrementa um valor a cada pulsação de clock.
exemplo.vhdllibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity contador is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; count : out INTEGER); begin process(clk, reset) begin if reset = '1' then count <= 0; elsif rising_edge(clk) then count <= count + 1; end if; end process; end contador;
Compilando o Código VHDL com GHDL
Com o seu código VHDL pronto, você precisa compilá-lo usando o GHDL. Navegue até a pasta do seu projeto no terminal e execute os seguintes comandos. Certifique-se de que não há erros de sintaxe no seu código.
commands# Navegue até o diretório do seu projeto
cd projeto_vhdl
# Compile o arquivo VHDL
ghdl -a exemplo.vhdl
# Gere o arquivo executável para simulação
ghdl -e contadorEscrevendo um Testbench para Simulação
Para testar o seu contador, você precisa de um testbench que gere os sinais de clock e reset. Crie um novo arquivo chamado `testbench.vhdl` na mesma pasta do seu projeto.
testbench.vhdllibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; entity testbench is end testbench; architecture behavior of testbench is signal clk : STD_LOGIC := '0'; signal reset : STD_LOGIC := '0'; signal count : INTEGER; component contador Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; count : out INTEGER); end component; begin uut: contador port map (clk => clk, reset => reset, count => count); clk_process :process begin clk <= '0'; wait for 10 ns; clk <= '1'; wait for 10 ns; end process; stim_process:process begin reset <= '1'; wait for 20 ns; reset <= '0'; wait; end process; end behavior;
Compilando e Executando o Testbench
Agora que você tem o testbench, compile o arquivo usando o GHDL e execute a simulação. A execução gerará um arquivo `.vcd` que poderemos visualizar no GTKWave.
commands# Compile o testbench
ghdl -a testbench.vhdl
# Gere o executável para o testbench
ghdl -e testbench
# Execute a simulação e gere o arquivo VCD
ghdl -r testbench --vcd=saida.vcdVisualizando os Resultados com GTKWave
Após executar a simulação, você pode visualizar os resultados no GTKWave. Execute o GTKWave e carregue o arquivo `saida.vcd` gerado.
commands# Execute o GTKWave
gtkwave saida.vcd
Conclusão
Neste tutorial, abordamos o desenvolvimento de um projeto simples em VHDL utilizando o GHDL e o GTKWave. Passamos pela instalação do GHDL e do GTKWave, criação de um arquivo VHDL para um contador simples, compiling do VHDL, elaboração de um testbench, e análise dos resultados da simulação usando a ferramenta GTKWave. Esperamos que este guia tenha lhe proporcionado uma compreensão mais clara do uso do VHDL e das ferramentas de simulação, além de estabelecer uma base sólida para projetos futuros mais complexos. Agora, você está pronto para explorar mais sobre design digital com VHDL.