Introdução aos FPGAs

Introdução aos FPGAs

No tutorial anterior, FPGA e microcontroladores foram comparados. O FPGA é uma das tecnologias que permite que um engenheiro embarcado acesse o projeto de hardware de um sistema embarcado. Suas maiores vantagens incluem multithreading, processamento em tempo real, amplo escopo para design ASIC personalizado (dentro dos blocos lógicos disponíveis no chip FPGA), capacidade de reutilização e solução de chip único. É altamente recomendável sujar as mãos em uma placa FPGA após algum trabalho em microcontroladores. Afinal, o projeto de hardware é apenas mais um gêmeo essencial do projeto de software na disciplina de engenharia embarcada.

Veja como qualquer engenheiro embarcado entusiasmado pode iniciar a jornada do FPGA –

Esclarecendo os pré-requisitos

Ao trabalhar em microcontroladores, todos os esforços giram em torno do projeto de software de um sistema embarcado com uma determinada arquitetura e conjunto de instruções. Quer o sistema seja codificado com linguagem assembly ou C incorporado, princípios de software semelhantes se aplicam ao desenvolvimento. O FPGA é uma abordagem totalmente diferente para design embarcado. Os chips FPGA contêm componentes lógicos programáveis, ou seja, blocos lógicos e chaves reconfiguráveis. Ao interconectar os blocos lógicos (portas lógicas e outros componentes digitais ou analógicos), uma solução de sistema em chip completa e personalizada pode ser desenvolvida. Portanto, o FPGA tem tudo a ver com design digital e desenvolvimento integrado de hardware. Portanto, é necessário que antes de começar com FPGA, tenhamos noções básicas de eletrônica digital e design digital fortes e claras. Feito isso, é hora de aprender Verilog ou VHDL, pois a lógica programável está toda codificada neles.

Escolhendo uma placa FPGA

Depois de ter algum conhecimento de eletrônica digital, VHDL e Verilog, um engenheiro tem uma ideia conceitual do projeto digital. Agora, ele está pronto para sujar as mãos. Então, a primeira coisa a fazer é adquirir uma placa FPGA. Embora as placas microcontroladoras estejam disponíveis por poucos dólares, nenhuma placa FPGA custa menos de US$ 50. Só é possível comprar uma prancha adequada na faixa de preço entre US$ 50 e US$ 100. O alto preço das placas FPGA é um dos motivos pelos quais elas não são tão populares quanto os microcontroladores entre os entusiastas da eletrônica. No entanto, o preço de uma placa FPGA é coberto após uso prolongado, pois essas placas são reutilizáveis ​​e os designs digitais podem ser testados nelas centenas de vezes sem complicações.

Existem diferentes tipos de placas FPGA disponíveis. As placas FPGA podem ser categorizadas nas três categorias a seguir –

1) FPGA baseado em SRAM

2) FPGA baseado em Flash

3) FPGA baseado em anti-fusível

FPGA baseado em SRAM – Essas placas FPGA possuem memória estática para armazenar dados de configuração. A placa lê os dados de configuração de um chip de memória externo denominado modo Master ou de um processador denominado modo escravo. No modo escravo, normalmente os dados de configuração são passados ​​para a memória estática via JTAG. Existem também muitas placas FPGA disponíveis que vêm com memória flash interna. Como a memória estática é de natureza volátil, os dados de configuração são carregados na memória na inicialização.

Placa de desenvolvimento Xilinx Papilio Pro FPGA

Figura 1: Placa de desenvolvimento Papilio Pro FPGA da família Xilinx Spartan 6

Placas FPGA baseadas em Flash – Essas placas FPGA possuem memória flash dedicada para armazenar dados de configuração. Eles não possuem SRAM ou qualquer memória volátil. Essas placas são diferentes do FPGA baseado em SRAM com flash interno. Em FPGA baseado em SRAM com flash interno, os dados de configuração são carregados na inicialização na memória interna. No FPGA baseado em Flash, os dados de configuração permanecem na memória flash interna e não são perdidos no desligamento. Essas placas também são eficientes em termos de energia em comparação com FPGA baseado em SRAM. Alguns dos FPGA populares baseados em Flash incluem placas Igloo e ProASIC3 da Actel.

Placa de desenvolvimento FPGA baseada em Flash Actel ProASIC3

Figura 2: ProASIC3 Baseado em Flash Placa de desenvolvimento FPGA da Actel

Placas FPGA baseadas em antifusíveis – Essas placas FPGA contêm antifusíveis que podem ser queimados para conduzir corrente. Uma vez que o antifusível esteja queimado, ele não poderá ser alterado. Portanto, essas placas FPGA são programáveis ​​uma única vez e não podem ser reutilizadas. O Accelerator da Actel é um bom exemplo de placas FPGA baseadas em Anti-Fuse.

Para iniciar o desenvolvimento, um FPGA baseado em SRAM (como Papilio Pro) ou um FPGA baseado em Flash (como ProASIC3) deve ser preferido. Papilio Pro é uma placa FPGA popular comumente usada. Custa cerca de US $ 75 e está facilmente disponível. O Papilio Pro funciona com 3,3 V, portanto pode exigir um conversor lógico para fazer interface com dispositivos de 5V. Possui 48 pinos de E/S e vem com uma porta USB e um conversor FTDI integrado para interface com um computador.

Configurando o ambiente de desenvolvimento

Cada placa FPGA requer seu próprio conjunto de ferramentas de desenvolvimento, que geralmente estão disponíveis gratuitamente em seu fornecedor. Assim como para o desenvolvimento no Papilio Pro, o carregador Papilio da Gadget Factory e o ISE Design Suite da Xilinx são as ferramentas de desenvolvimento necessárias. Para baixar o ISE Design Suite é necessário criar uma conta no site da Xilinx. A criação e download da conta podem ser feitos gratuitamente. O download é uma versão de avaliação de uso gratuito apenas por um período de tempo. O ambiente de desenvolvimento pode ter poucos GB, portanto pode demorar algum tempo para baixá-lo.

Começando o estilo Verilog

Depois que as ferramentas de desenvolvimento estiverem instaladas, pode-se começar a codificar com VHDL. Pode-se criar um novo projeto no Project Navigator e especificar o local e o diretório de trabalho. Em seguida, é necessário especificar os detalhes do produto nas configurações do projeto. Assim, o Papilio Pro pertence à família Spartan 6 e possui um nome de dispositivo e um nome de pacote específicos. Essas especificações podem ser verificadas na documentação oficial da placa ou examinadas na etiqueta do chip. A seleção da linguagem de programação deve ser Verilog. O próximo passo é adicionar o código-fonte.

Código-fonte VHDL típico

Figura 3: Código-fonte VHDL típico

O código-fonte é compilado em dois arquivos – um é o código Verilog com extensão .V e o outro é o arquivo de restrições do usuário com extensão .ucf. O código Verilog usa rótulos para especificar conexões de E/S e conexões de fio para especificar conexões de hardware entre blocos lógicos. O arquivo UCF contém informações sobre o chip específico e vários parâmetros e restrições.

Para adicionar código-fonte, 'Nova Fonte' precisa ser selecionado no menu Projeto e o tipo de arquivo para a nova fonte deve ser selecionado 'Módulo Verilog'. Para adicionar o arquivo UCF, 'Nova Fonte' precisa ser selecionado no menu Projeto e o tipo de arquivo para a nova fonte deve ser selecionado 'Arquivo de Restrições de Implementação'. Após a criação do código fonte e do arquivo UCF, o arquivo de configuração com extensão .bit pode ser criado clicando duas vezes em “Gerar arquivo de programação”. O arquivo de programação pode ser aberto no Papilio Loader. Agora a placa FPGA pode ser conectada ao PC e o arquivo de programação pode ser carregado na placa usando o Papilio Loader. À medida que o arquivo de programação é gravado na placa, a placa começa a operar de acordo.

Navegador de Projetos ISE

Figura 4: Navegador de Projetos ISE

Então, pegue uma placa de desenvolvimento como o Papilio Pro e configure o ambiente de desenvolvimento. Podem ser necessários componentes adicionais para diferentes aplicações. Portanto, colete os componentes, conecte-os ao cabeçalho de E/S e comece com vários experimentos de código Verilog.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.