EnglishPortugueseSpanish
Rua Pais Leme, 524 - 9° andar - Edifício Passarelli - São Paulo-SP 11 3521-0801
EnglishPortugueseSpanish

Projetos em fpga

Clique nas imagens para ampliar

Projetos em FPGA

FPGA, ou Field Programmable Gate Array (Matriz de Portas Programáveis em Campo), é um dispositivo programável em nível de portas lógicas que serve para a implementação de circuitos digitais.

Projetos em FPGA são realizados tanto com a intenção de se obter um produto final, quanto como suporte para prototipagem rápida de projetos de circuitos integrados digitais.

Em contraposição ao ASIC, que tem função definida por construção, uma FPGA pode ser programada pelo usuário final após a fabricação do dispositivo (daí o “Programável em Campo”). Portanto, projetos em FPGA podem ser realizados para a implementação de uma infinidade de circuitos, abrangendo desde pequenos blocos de lógica de apoio (“glue logic”), até complexos sistemas com microcontroladores embarcados.

E diferentemente de um microcontrolador (ou microprocessador) que executa software de forma serial, a programação de uma FPGA consiste na reconfiguração do seu hardware, através do roteamento de sinais entre os diversos elementos lógicos de que ela é composta. Isso permite o processamento serial e/ou paralelo dos sinais.

Internamente, uma FPGA é composta por três tipos de elementos:

  • IOB (Input/Output Block), ou bloco de entrada/saída. São circuitos responsáveis pelo interfaceamento entre os blocos internos da FPGA e os seus pinos externos.
  • CLB (Configurable Logic Block), ou bloco de lógica configurável. São blocos compostos por elementos combinacionais (look-up tables – LUTs – usadas para implementar a função de portas lógicas) e flip-flops que podem ser configurados por programação.
  • Switch Matrix (Matriz de chaveamento ou de interconexões). São chaves dispostas em linhas e colunas e responsáveis por conectar os diversos CLBs entre si e com as entradas e saídas da FPGA.

Projetos em FPGA consistem na definição do conteúdo dessa matriz de interconexão, ou seja, na definição do roteamento dos diversos elementos constitutivos da FPGA. O conteúdo dessa matriz deve ser armazenado de forma não-volátil em alguma memória que pode ser interna ou externa à própria FPGA. No segundo caso, é preciso haver algum procedimento de boot, utilizando-se por exemplo um microcontrolador externo, que carregue o valor da memória para a FPGA no momento da sua inicialização.

Em sistemas complexos envolvendo microcontroladores e PFGAs, é possível a reconfiguração da FPGA durante o funcionamento do sistema, adicionando-se assim um grau extra de flexibilidade ao projeto sem ter que incluir hardware adicional.

No outro extremo, projetos em FPGA podem incluir um microcontrolador implementado a partir dos elementos da própria FPGA e com isso obter, em um único circuito integrado (a FPGA), vários blocos lógicos, mais ou menos complexos, e a capacidade de executar software.

Projetos em FPGA são realizados segundo um fluxo que inclui:

Descrição do circuito em RTL (Register Transfer Level) em uma linguagem para descrição de hardware (Hardware Description Language), sendo as mais utilizadas o Verilog e o VHDL.

Síntese lógica. Etapa que gera o netlist e informações de atrasos dos sinais, ambos necessários para as simulações.

Simulações comportamentais e elétricas para verificação do funcionamento do circuito.

Placement and routing. Etapa de mapeamento do circuito sintetizado para os elementos físicos da FPGA.

Power e Time analysis. Para verificar se o circuito gerado não apresenta corridas críticas entre os sinais e se as especificações de tempo e potência estão sendo atendidas.

Programação da FPGA.

Se os projetos em FPGA ainda incorporarem um microcontrolador, será necessário a escrita do software / firmware que será executado no mesmo.

A equipe de projetos do LSI-TEC emprega regularmente FPGAs como elemento de suporte no projeto de circuitos integrados. Nesse contexto, projetos em FPGA são realizados para testes e caracterizações das partes digitais dos circuitos integrados. Isso permite validar o seu funcionamento e ainda realizar testes com elementos externos do sistema de forma mais rápida, antecipando os resultados que seriam conseguidos apenas após uma fabricação de prototipagem, bem mais demorada e cara.

Além de implementar partes digitais dos circuitos, projetos em FPGA também são realizados para a geração de sinais de controle, elementos de interface e outros recursos de testbenches. Nesse caso, a FPGA é utilizada para a realização dos testes em elementos do sistema, incluindo circuitos integrados, em vez de ser ela mesma uma implementação alternativa de partes do chip.

Finalmente, em alguns casos, projetos antigos já desenvolvidos em FPGA precisam ser portados para um formato ASIC devido à possibilidade de obsolescência do componente no mercado. Esse serviço também é prestado pelo LSI-TEC aos seus clientes.

A Design House do LSI-TEC conta com equipe experiente em Projetos em FPGA e na programação de software / firmware embarcado e está apta para ajudá-lo a definir a melhor solução tecnológica para o seu produto.

Entre em contato: walter.santana@lsitec.org.br | hugo.puertas@lsitec.org.br

Para saber mais sobre Projetos em fpga

Ligue para 11 3521-0801 ou clique aqui e entre em contato por email.

Gostou? compartilhe!

Solicite um orçamento



Regiões onde o LSI-TEC atende Projetos em fpga:


  • Aclimação
  • Bela Vista
  • Bom Retiro
  • Brás
  • Cambuci
  • Centro
  • Consolação
  • Higienópolis
  • Glicério
  • Liberdade
  • Luz
  • Pari
  • República
  • Santa Cecília
  • Santa Efigênia
  • Vila Buarque
  • Brasilândia
  • Cachoeirinha
  • Casa Verde
  • Imirim
  • Jaçanã
  • Jardim São Paulo
  • Lauzane Paulista
  • Mandaqui
  • Santana
  • Tremembé
  • Tucuruvi
  • Vila Guilherme
  • Vila Gustavo
  • Vila Maria
  • Vila Medeiros
  • Água Branca
  • Bairro do Limão
  • Barra Funda
  • Alto da Lapa
  • Alto de Pinheiros
  • Butantã
  • Freguesia do Ó
  • Jaguaré
  • Jaraguá
  • Jardim Bonfiglioli
  • Lapa
  • Pacaembú
  • Perdizes
  • Perús
  • Pinheiros
  • Pirituba
  • Raposo Tavares
  • Rio Pequeno
  • São Domingos
  • Sumaré
  • Vila Leopoldina
  • Vila Sonia
  • Aeroporto
  • Água Funda
  • Brooklin
  • Campo Belo
  • Campo Grande
  • Campo Limpo
  • Capão Redondo
  • Cidade Ademar
  • Cidade Dutra
  • Cidade Jardim
  • Grajaú
  • Ibirapuera
  • Interlagos
  • Ipiranga
  • Itaim Bibi
  • Jabaquara
  • Jardim Ângela
  • Jardim América
  • Jardim Europa
  • Jardim Paulista
  • Jardim Paulistano
  • Jardim São Luiz
  • Jardins
  • Jockey Club
  • M'Boi Mirim
  • Moema
  • Morumbi
  • Parelheiros
  • Pedreira
  • Sacomã
  • Santo Amaro
  • Saúde
  • Socorro
  • Vila Andrade
  • Vila Mariana
  • Água Rasa
  • Anália Franco
  • Aricanduva
  • Artur Alvim
  • Belém
  • Cidade Patriarca
  • Cidade Tiradentes
  • Engenheiro Goulart
  • Ermelino Matarazzo
  • Guianazes
  • Itaim Paulista
  • Itaquera
  • Jardim Iguatemi
  • José Bonifácio
  • Moóca
  • Parque do Carmo
  • Parque São Lucas
  • Parque São Rafael
  • Penha
  • Ponte Rasa
  • São Mateus
  • São Miguel Paulista
  • Sapopemba
  • Tatuapé
  • Vila Carrão
  • Vila Curuçá
  • Vila Esperança
  • Vila Formosa
  • Vila Matilde
  • Vila Prudente
  • São Caetano do sul
  • São Bernardo do Campo
  • Santo André
  • Diadema
  • Guarulhos
  • Suzano
  • Ribeirão Pires
  • Mauá
  • Embu
  • Embu Guaçú
  • Embu das Artes
  • Itapecerica da Serra
  • Osasco
  • Barueri
  • Jandira
  • Cotia
  • Itapevi
  • Santana de Parnaíba
  • Caierias
  • Franco da Rocha
  • Taboão da Serra
  • Cajamar
  • Arujá
  • Alphaville
  • Mairiporã
  • ABC
  • ABCD
  • Bertioga
  • Cananéia
  • Caraguatatuba
  • Cubatão
  • Guarujá
  • Ilha Comprida
  • Iguape
  • Ilhabela
  • Itanhaém
  • Mongaguá
  • Riviera de São Lourenço
  • Santos
  • São Vicente
  • Praia Grande
  • Ubatuba
  • São Sebastião
  • Peruíbe