Circuito

Implementação de uma Porta Lógica no Kit DE1

Para começar, vamos abrir o projeto da semana anterior. Clique no menu File, mova o cursor até o penúltimo item, Recent Projects, e clique sobre o item mostrado, que é o projeto criado.

Agora, precisamos acrescentar um arquivo de código para ser o topo de hierarquia, ou seja, a entidade que é conectada diretamente aos pinos do FPGA. Clique no menu File, depois New… Depois, selecione VHDL File, e clique OK. Então, um editor será aberto no próprio Quartus II.

Copie o código a seguir, explicado na sequência.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity test_project is
    port(
         iA        : in  std_logic;    -- entrada A
         iB        : in  std_logic;    -- entrada B
         oY        : out std_logic     -- saida Y
        );
end test_project;

architecture behavioral of test_project is
begin
    oY <= iA and iB;    -- porta 'E' de duas entradas
end behavioral;

Nas duas primeiras linhas, estamos indicando qual biblioteca (IEEE) e qual pacote dentro dela (IEEE.STD_LOGIC_1164.ALL) vamos usar. Esse pacote define o comportamento das funções lógicas e de seus possíveis valores:

  • ‘U’: não inicializado;
  • ‘X’: desconhecido;
  • ‘0’: nível lógico baixo;
  • ‘1’: nível lógico alto;
  • ‘Z’: alta impedância;
  • ‘W’: desconhecido fraco;
  • ‘L’: nível lógico baixo fraco;
  • ‘H’: nível lógico alto fraco;
  • ‘-‘: não importa.

Por enquanto, não se preocupe com eles. Para facilitar, vamos trabalhar com ‘0’ e ‘1’, padrões da eletrônica digital.

Em seguida, vem a declaração da entidade de topo de hierarquia. Se ela tiver o mesmo nome do projeto, ela é associada automaticamente. Então, dentro de ‘port( );’ vêm os pinos da entidade. Perceba que todos são do tipo std_logic e que as entradas recebem a designação in e a saída, out.

Por fim, o comportamento da entidade é definido em architecture. A única cláusula dessa parte implementa a porta ‘E’: a saída oY deve receber a lógica E entre as entradas iA e iB.

Então, devemos fazer a síntese do código para que seja possível atribuir os pinos físicos do FPGA aos da entidade. Para isso, clique no botão destacado na imagem a seguir.

Botão de Síntese
Botão de Síntese

Para verificar o que foi implementado, após uma síntese bem sucedida, clique no menu Tools, mova o mouse até Netlist Viewers e clique em RTL Viewer. Você deverá ver uma imagem como a seguinte.

RTL Viewer
RTL Viewer

Na tela anterior, é possível dar zoom in segurando CTRL e girando o scroll do mouse para cima. Dê zoom out segurando CTRL e girando o scroll para baixo.

Então, feche o RTL Viewer e abra o Pin Planner com o atalho CTRL+Shift+N. Você verá uma tela parecida com a seguinte.

Pin Planner
Pin Planner

A parte destacada na figura é a que deverá ser configurada. Para conectar os pinos da entidade aos do FPGA, um Location deverá ser definido. Entretanto, para sabermos onde ligar, deveremos recorrer ao manual da placa. Na página 28, na Tabela 4.1, pode-se ver que a chave SW0 está ligada ao PIN_L22, a chave SW1, ao PIN_L21 e, na página 29, na Tabela 4.3, que o LEDR0 está ligado ao PIN_R20. Então, vamos associar iA ao location PIN_L22, iB ao PIN_L21 e oY ao PIN_R20, usando a coluna Location do Pin Planner. Ele deverá estar configurado da seguinte maneira

Pinos Designados
Pinos Designados

Então, feche o Pin Planner, salve o projeto e compile usando o atalho CTRL+L.

Quando o processo terminar, ligue a placa à fonte de alimentação e ao computador, usando o cabo USB. O Windows adicionará o dispositivo, mas não será capaz de instalar o driver. Então, abra o Gerenciador de Dispositivos, encontre o USB-Blaster, clique com o botão direito e, depois, com o esquerdo em Atualizar Driver. Clique em Procurar software de driver no computador, clique no botão Procurar… e aponte para o caminho C:\altera\13.0sp1\quartus\drivers\usb-blaster\ e clique em Avançar. Após a instalação, volte ao Quartus e abra o Programmer clicando em Tools e, depois, em Programmer. Clique no botão Hardware Setup, então clique duas vezes sobre USB-Blaster e, então, em Close. Agora, clique em Start.

Assim que a programação estiver completa, você poderá usar as chaves SW0 e SW1 como entradas da porta E, verificando sua saída no LEDR0. Veja o vídeo demonstrativo, a seguir.

Anúncios

Um comentário sobre “Implementação de uma Porta Lógica no Kit DE1

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s