Os Dispositivos L´ogico Program´aveis (PLDs) foram introduzidos na metade dos anos 70 com o objetivo de implementar circuitos l´ogicos combinacionais que possu´ıssem aspectos program´aveis. Em contraste com os microprocessadores, que podem executar programas implementados em linguagens de programa¸c˜ao cl´assicas mas possuem um hard- ware fixo, os PLDs surgiram com o objetivo de levar a reprograma¸c˜ao a um n´ıvel de hardware. Isso significa que os PLDs s˜ao dispositivos utilizados para a implementa¸c˜ao de aplica¸c˜oes generalizadas, mas que o hardware pode ser reconfigurado para se adequar a um tipo espec´ıfico de circuito.
Os primeiros PLDs foram batizados de PAL (Programmable Array Logic), e apesar de inovadores, possuiam apenas circuitos combinacionais, n˜ao sendo poss´ıvel a im- plementa¸c˜ao de circuitos sequenciais. Para que este problema fosse resolvido, logo ap´os
3.1 Hist´orico 39 o lan¸camento dos PAL foram introduzidos PLDs com circuitos flip-flops embutidos nas sa´ıdas dos dispositivos, os quais foram chamados de Registered PLDs. Dessa forma, se tornava poss´ıvel a implementa¸c˜ao de fun¸c˜oes sequenciais ao inv´es de puramente combina- cionais.
No in´ıcio dos anos 80, foi adicionado `as sa´ıdas dos PLDs l´ogica combinacio- nal extra, que continha portas l´ogicas e circuitos multiplexadores. Essa nova tecnologia tamb´em era program´avel, permitindo v´arios modos de opera¸c˜ao, al´em disso, permitia um sinal de retorno das sa´ıdas dos dispositivos para o circuito interno. Esse novo tipo de estrutura foi chamado de Generic PAL (GAL). Todos esses dispositivos (PAL, Registered PLD e GAL) s˜ao hoje conhecidos como SPLDs (Simple PLDs).
Rapidamente, diversos dispositivos GAL foram produzidos em um mesmo chip, possibilitando a implementa¸c˜ao de circuitos mais complexos e al´em disso, v´arias funcio- nalidades e propriedades (como suporte a diversos padr˜oes l´ogicos) foram adicionadas aos circuitos. Essa nova estrutura ficou conhecida como CPLD (Complex PLD). Os CPLDs s˜ao circuitos l´ogico program´aveis bastante populares, devido a caracter´ısticas como alta performance e baixo custo (em [Pedroni, 2004], ´e visto que CPLDs com pre¸co abaixo de um dolar podem ser encontrados no mercado).
Na metade dos anos 80, os FPGAs foram introduzidos no mercado pela Xilinx. Estes dispositivos diferem dos CPLDs em muitos aspectos, como por exemplo tecnologia de armazenamento (CPLDs utilizam mem´orias EEPROM e Flash, enquanto os FPGAs utilizam SRAM, portanto estes ´ultimos s˜ao mais vol´ateis), n´umero de propriedades em- butidas e custo. Al´em disso, os FPGAs foram desenvolvidos com o objetivo de suprir a cadˆencia de dispositivos l´ogico program´aveis direcionados para a implementa¸c˜ao de circuitos complexos e de grande porte.
Nos anos 90, os FPGAs se tornavam mais e mais sofisticados em termos de tamanho e caracter´ısticas adicionais. Nessa ´epoca, o principal mercado atingido por esses dispositivos foi o de telecomunica¸c˜oes e redes, e a principal aplica¸c˜ao era a de processa- mento de grandes blocos de dados. Como os FPGAs continuaram a crescer, no final dos anos 90 eles j´a eram utilizados em aplica¸c˜oes industriais e automotivas
Recentemente, FPGAs de alto desempenho contendo milh˜oes de dispositivos l´ogicos tˆem sido lan¸cados no mercado. Algumas das caracter´ısticas embutidas nesses dis- positivos s˜ao n´ucleos de microprocessamento e interfaces de entrada e sa´ıda de alta veloci-
3.1 Hist´orico 40 dade. Com isso, os FPGAs podem ser utilizados para implementar circuitos complexos e de grande porte em quase que qualquer aplica¸c˜ao, desde dispositivos de telecomunica¸c˜oes, dispositivos wireless definidos por software, radar, imagem e processamento digital de sinais ([Maxfield, 2004]). Mais especificamente, os FPGAs est˜ao se destacando em quatro grandes ´areas da engenharia e eletrˆonica: o projeto de prot´otipos de ASICs (Applica-
tion Specific Integrated Circuit, circuitos integrados voltados para aplica¸c˜oes espec´ıficas), processamento digital de sinais, microcontroladores e chips de comunica¸c˜ao em camada f´ısica.
Prot´otipos de ASICs: FPGAs tˆem sido utilizados para implementar circuitos que eram implementados somente em ASICs, como forma de um prot´otipo, j´a que o tempo e custo de projeto de ASICs ´e bastante superior ao de FPGAs.
Processamento digital de sinais: Anteriormente, a maioria das aplica¸c˜oes em pro- cessamento digital de sinais eram implementadas em microprocessadores especiais chamados Digital Signal Processors (DSPs) mas com o aumento de caracter´ısticas adicionais em FPGAs tais como multiplicadores embutidos, mem´oria externa e ro- teamento aritm´etico dedicado, o n´umero de aplica¸c˜oes de DSPs implementadas em FPGAs vem crescendo continuamente. Al´em disso, aliar todas essas caracter´ısticas com o paralelismo dos FPGAs podem resultar em ganhos de desempenho nos FP- GAs em rela¸c˜ao aos DSPs ([Maxfield, 2004]).
Microcontroladores: A grande maioria de aplica¸c˜oes envolvendo fun¸c˜oes de controle s˜ao implementadas em dispositivos chamados Microcontroladores. Por´em, comoo custo dos FPGAs tem ca´ıdo gradualmente, al´em do fato que os FPGAs possuem mais que o necess´ario para a implementa¸c˜ao de fun¸c˜oes de controle, estes dispositivos est˜ao se tornando cada vez mais interessantes para a implementa¸c˜ao de aplica¸c˜oes em controle.
Comunica¸c˜ao em camada f´ısica: A utiliza¸c˜ao de FPGAs na comunica¸c˜ao entre ca- mada f´ısica e protoc´olos de camadas de mais alto n´ıvel j´a ´e tradicional. O que chama a aten¸c˜ao ´e que com o avan¸co dos FPGAs, hoje em dia um dispositivo pode conter multiplos transceivers de alta velocidade. Isso quer dizer que as fun¸c˜oes de rede e comunica¸c˜oes podem ser concentradas em um ´unico chip.