• Nenhum resultado encontrado

Figura 3.1: Arquitetura interna de um CPLD: pinos de entrada e sa´ıda interligados aos dispositivos GAL atrav´es de uma switch matrix que realiza tamb´em a interliga¸c˜ao dos dispositivos entre s´ı

j´a se encontram inclu´ıdos, o surgimento desses dispositivos criou um novo mercado, a computa¸c˜ao reconfigur´avel. Esse novo mercado refere-se ao aproveitamento do paralelismo inerente e capacidade de reconfigura¸c˜ao dos FPGAs.

3.2

Funcionamento interno

O funcionamento interno de um FPGA difere em muitos aspectos dos CPLDs. Nos CPLDs, as fun¸c˜oes l´ogicas s˜ao implementadas atrav´es da uni˜ao de v´arios disposi- tivos GAL, que s˜ao constitu´ıdos de interconex˜oes program´aveis e portas l´ogicas AND seguidas de uma porta l´ogica OR. Al´em disso, ´e utilizada uma matriz de interconex˜oes program´aveis, chamada de switch matrix para customizar a interliga¸c˜ao dos dispositivos GAL entre s´ı e com os pinos de entrada e sa´ıda. Na figura 3.1, temos a ilustra¸c˜ao da arquitetura interna de um CPLD descrita de forma simplificada.

Nos FPGAs, as fun¸c˜oes l´ogicas s˜ao fisicamente implementadas atrav´es do ma- peamento em tabelas de busca, chamadas de lookup tables. As tabelas por sua vez, s˜ao ligadas a flip-flops para possibilitar o projeto de fun¸c˜oes sequenciais. A adi¸c˜ao de multi- plexadores para realizar a sele¸c˜ao entre as sa´ıdas dos flip-flops ou diretamente das lookup

3.2 Funcionamento interno 42

Figura 3.2: Arquitetura interna de um FPGA: blocos l´ogicos configur´aveis (CLBs) for- mados por lookup tables, flip-flops e multiplexadores s˜ao interligados atrav´es de diversas

switch matrixes

tables resulta nos Blocos L´ogicos Configur´aveis (CLBs) que fazem parte da arquitetura interna dos FPGAs. Para que fun¸c˜oes l´ogicas complexas e de grande porte possam ser implementadas, os CLBs s˜ao interligados atrav´es de diversas interconex˜oes program´aveis (Switch Matrix). Na figura 3.2, temos a ilustra¸c˜ao da arquitetura interna de um FPGA. Outra diferen¸ca fundamental entre FPGAs e CPLDs est´a na tecnologia de armazenamento das interconex˜oes. Enquanto os CPLDs s˜ao n˜ao-vol´ateis (utilizam EE- PROM e Flash), a maioria dos FPGAs utilizam SRAM, e portanto, s˜ao vol´ateis. A vantagem de usar SRAM ´e a economia de espa¸co, mas como os FPGAs possuem uma grande quantidade de interconex˜oes, ´e necess´aria a utiliza¸c˜ao de uma ROM externa. Em- bora a maioria dos FPGAs sejam vol´ateis tamb´em existem os n˜ao-vol´ateis, que apesar de n˜ao serem t˜ao comuns, podem ser interessantes em aplica¸c˜oes onde a reprograma¸c˜ao n˜ao seja necess´aria.

3.2.1

Blocos l´ogicos configur´aveis

Os blocos l´ogicos program´aveis (ou CLBs, como s˜ao geralmente chamados) s˜ao constitu´ıdos de lookup tables e flip-flops e s˜ao interligados atrav´es de interconex˜oes program´aveis chamadas Switch Matrixes.

3.2 Funcionamento interno 43

Figura 3.3: Implementa¸c˜ao de uma fun¸c˜ao l´ogica combinacional de 3 bits em uma Lookup

Table com oito posi¸c˜oes de mem´oria: fun¸c˜ao l´ogica (esquerda), tabela da verdade (centro) e mapeamento em lookup table (direita)

As lookup tables s˜ao blocos constitu´ıdos por c´elulas de mem´oria que s˜ao utili- zados para implementar qualquer fun¸c˜ao l´ogica combinacional. Isso ´e poss´ıvel atrav´es do mapeamento dos resultados poss´ıveis de uma fun¸c˜ao l´ogica combinacional em cada c´elula de mem´oria em uma determinada posi¸cao. Na figura 3.3 temos a implementa¸c˜ao de uma simples fun¸c˜ao l´ogica combinacional de 3 bits em uma lookup table com 8 posi¸c˜oes de mem´oria. O n´umero de posi¸c˜oes de mem´oria necess´arias para a implementa¸c˜ao de uma fun¸c˜ao l´ogica combinacional ´e obtido atrav´es do seguinte c´alculo: 2n, onde n ´e o n´umero

de bits de entrada da fun¸c˜ao l´ogica. As posi¸c˜oes de mem´oria nas quais s˜ao mapeados os re- sultados de uma fun¸c˜ao l´ogica s˜ao geralmente dadas pelo valor em decimal da combina¸c˜ao de bits de entrada que geram aquele resultado.

No caso de fun¸c˜oes l´ogicas combinacionais de at´e 3 bits as lookup tables fun- cionam muito bem. A desvantagem dessa abordagem aparece quando o n´umero de bits de entrada cresce, j´a que o n´umero de posi¸c˜oes de mem´oria necess´arios para armazenar os resultados da fun¸c˜ao l´ogica cresce em uma escala exponencial em rela¸c˜ao ao n´unero de bits de entrada. Para verificar essa desvantagem, basta utilizarmos o c´alculo das posi¸c˜oes de mem´oria descrito acima. Dessa forma, podemos perceber que para implementar uma fun¸c˜ao l´ogica de 8 entradas (relativamente simples) utilizando uma abordagem de lookup tables, seria necess´ario um total de 256 posi¸c˜oes de mem´oria. Para a implementa¸c˜ao de uma fun¸c˜ao l´ogica com 16 bits de entrada, seriam necess´arias 65.536 posi¸c˜oes de mem´oria. A solu¸c˜ao para esse problema est´a na concatena¸c˜ao de lookup tables menores para a implementa¸c˜ao de fun¸c˜oes l´ogicas mais complexas. Na figura 3.4 temos um exemplo de implementa¸c˜ao de uma fun¸c˜ao l´ogica combinacional com 5 bits de entrada. Para

3.2 Funcionamento interno 44

Figura 3.4: Implementa¸c˜ao de uma fun¸c˜ao l´ogica combinacional de 5 bits de entrada utilizando duas lookup tables de 8 posi¸c˜oes de mem´oria cada

Figura 3.5: Dois CLBs (lookup tables, flip-flops e multiplexadores) interconectados por uma switch matrix (implementada atrav´es de multiplexadores)

facilitar a visualiza¸c˜ao, o circuito foi dividido em duas partes, onde a primeira representa o circuito que resulta no bit x e a segunda representa o circuito que resulta no bit w. Em FPGAs recentes a concatena¸c˜ao de lookup tables ´e realizada atrav´es de interconex˜oes program´aveis, ou seja, uma ou mais switch matrixes, assim como a interconex˜ao de CLBs com o objetivo de alcan¸car o m´aximo em capacidade de reprograma¸c˜ao.

As lookup tables somente implementam l´ogica combinacional. Portanto nas sa´ıdas de cada bloco de mem´oria existem flip-flops, que s˜ao respons´aveis por implementar fun¸c˜oes l´ogicas sequenciais. A sele¸c˜ao entre as sa´ıdas dos flip-flops ou diretamente das lookup tables ´e feita atrav´es de multiplexadores.

3.3 Linguagem de Descri¸c˜ao de Hardware 45

Documentos relacionados