Arquitetura de Computadores FPGA Field Programmable Gate Array Alex Vidigal Bastos
Sumário Dispositivos Reconfiguráveis Field Programmable Gate Arrays Funcionamento Desenvolvimento Ferramentas
Dispositivos Reconfiguráveis São dispositivos que podem ser programados para ter o comportamento de um circuito lógico; Podem ser reconfigurados diversas vezes para terem diferentes comportamentos lógicos;
Dispositivos Reconfiguráveis São dispositivos que podem ser programados para ter o comportamento de um circuito lóǵico; Podem ser reconfigurados diversas vezes para terem diferentes comportamentos lógicos;
Dispositivos Reconfiguráveis Fazem parte desta categoria: Dispositivos como Programmable Array Logic (PAL) Generic Array Logic (GAL), Complex Programmable Logic Device (CPLD) Field Programmable Gate Array (FPGA).
Dispositivos Reconfiguráveis FPGA é o dispositivo que possui maior flexibilidade devido a abundância e o tamanho reduzido de suas unidades básicas, o que permite a configuração de sistemas complexos;
São os dispositivos lógicos programáveis capazes de serem configurados para reproduzir o comportamento de um hardware. Estes dispositivos são formados por blocos lógicos programáveis que são conectados por interligações programáveis.
Permitem a criação de circuitos lógicos em FPGA, sendo limitados pela área e a memória disponíveis. O uso de FPGAs visa obter o desempenho de aplicações em dispositivos dedicados (ASIC) com a flexibilidade de aplicações em software.
Flexibilidade dada pela facilidade de configuração através de uma descrição de hardware escrita em Verilo ou VHDL. Essas linguagens permitem a descrição do comportamento de um circuito lógico e facilita a criação de novas aplicações de hardware devido ao alto nível de abstração que fornece ao programador.
Os FPGAs são compostos basicamente por três tipos de componentes: CLB (Configuration Logical Blocks) São blocos lógicos configuráveis construídos com flip-flops e lógica combinacional que permitem a construção de elementos lógicos funcionais;
IOB (Input/Output Blocks) Fazem a interface entre CLBs, funcionando como buffers de entrada e saída; Switch Matrix Representam a conexão entre os blocos lógicos. Permitem a conexão de CLBse IOBs usando trilhas com as conexões programáveis;
Funcionamento Podemos considerar nossa aplicação para o FPGA como um circuito lógico que pode ser descrito como uma combinação de portas conectadas; Um arranjo complexo de portas lógicas e unidades de memória podem executar operações complexas;
Funcionamento
Funcionamento
Funcionamento Podemos considerar que ao invés de uma tabela verdade, a tabela acima representa uma memória que armazena 1 bit (S) e é endereçada por 3 bits (A, B, C); Desta forma, podemos ter o comportamento do circuito acima endereçando a memória representada pela tabela acima com os sinais de entrada do circuito.
Funcionamento
Funcionamento Para permitir a configuração de arranjos complexos de portas lógicas, são utilizados milhares de CLBs conectados por comutadores programáveis que definem as conexões de fluxos de sinais durante a execução de uma configuração no FPGA.
Funcionamento
Desenvolvimento
Ferramentas Para a implementação é necessário que a ferramenta dê suporte ao dispositivo reconfigurável alvo, visto que é necessário conhecer a arquitetura do FPGA. Ex: Xiling Ise WebPACK Altera QuartusII Web Edition
Field Programmable Gate Arrays Ferramentas Altera Quartus II Windows/Linux
Desempenho O ganho de velocidade com o uso de FPGAs vem do fato que o hardware programado é personalizado para um algoritmo em particular;
Spartan3 FPGA
Spartan3 FPGA
Four-Digit, Seven-Segment LED Display
Four-Digit, Seven-Segment LED Display
Four-Digit, Seven-Segment LED Display
Four-Digit, Seven-Segment LED Display
Perguntas?