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

  1. 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 gtkwave

  2. Criando 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.vhdl
    library 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;

  3. 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 contador

  4. Escrevendo 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.vhdl
    library 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;

  5. 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.vcd

  6. Visualizando 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.

Hashtags

#VHDL #GHDL #GTKWave #Simulação #DesignDigital #EngenhariaElétrica