Fpga
No final da década de 1950, período em que o termo “software” surgiu, o significado deste era bem definido, referindo-se aos bits representados num programa executado pelo processador, enquanto o termo “hardware” referia-se a todos os componentes físicos os quais podiam ser tocados. Durante as décadas seguintes, os projetos de software evoluíram para requerer habilidades muito diferentes as de conexões de componentes em circuitos físicos.
Implementação de Circuitos
Atualmente, os projetistas de sistemas embarcados, a fim de se alcançar otimização de desempenho, desenvolvem aceleradores ou co-processadores, que são microprocessadores customizados com circuitos digitais. Um circuito é uma simples conexão de componentes, podendo ser componentes de baixo nível, como portas lógicas, ou de alto nível, como processadores.
FPGAs como softwares
Um circuito programado no FPGA é nada mais nada menos que um software, pois o FPGA é um chip pré-fabricado, no qual projetistas programam seus circuitos particulares simplesmente configurando uma seqüência de bits. Ele possui pequenas memórias cada uma com quatro entradas e duas saídas, conhecidas como tabelas. Um circuito com uma quantidade acima de quatro entradas pode ser dividido (particionado) em sub-circuitos de quatro entradas, cada um mapeado para um LUT, bloco lógico configurável. Um multiplexador e um registro programável, os quais controlam as seleções de linhas do multiplexador, escolhem se a saída CLB vem do LUT ou do flip-flop. Resumindo, os CLBs são pré-conectados a switches crossbar-like, onde registros programáveis determinam o caminho atual e enfim