0% acharam este documento útil (0 voto)
3 visualizações23 páginas

Tecnologias de PLDs e Elementos de Programação

Enviado por

patrick alves
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações23 páginas

Tecnologias de PLDs e Elementos de Programação

Enviado por

patrick alves
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Dissertação de Mestrado – Eng.

Elétrica / UNICAMP

Capítulo 3
Tecnologias e arquiteturas dos PLDs

As formas de implementação de ASICs personalizáveis após o encapsulamento, ou PLDs,


surgiram em meados da década de 70, com o desenvolvimento da tecnologia PROM (fusíveis).

O componente PLD é um circuito integrado que pode ser configurado pelo próprio usuário, em
bancada de trabalho, para desempenhar uma determinada função lógica. Diferentemente dos CIs
personalizáveis por máscaras, todos os PLDs de uma mesma família não apresentam distinções até
conclusão das etapas de fabricação de encapsulamento (package).

A rapidez na prototipação de circuitos integrados de aplicação específica através do uso de PLDs


é uma de suas principais caracteríticas, porém resulta em perda de flexibilidade de projeto devido à
dependência com as arquiteturas pré-fabricadas e de características de timing bem definidas.

O fator de utilização, ou seja, a quantidade de funções lógicas implementadas em relação a


capacidade lógica do componente, tem aumentado com o desenvolvimento de ferramentas de CAD
cada vez mais eficientes. A perda de capacidade lógica disponível e, conseqüentemente, de área de
pastilha não utilizada é inevitável. Porém, esta redução de flexibilidade e do fator de utilização, ou
taxa de ocupação, é compensada com o baixo custo de desenvolvimento do ASIC e a sua rápida
obtenção.

O fato do usuário personalizar PLDs na própria bancada de trabalho deve-se à utilização de


elementos ou dispositivos de programação, existentes na arquitetura destes componentes, para
definir a funcionalidade das células lógicas configuráveis, como também o roteamento de sinais
internos.

Os elementos de programação comumente encontrados são os dispositivos EPROM e E2PROM,


células SRAM, fusíveis e anti-fusíveis [28]. Alguns destes dispositivos permitem reprogramabilidade,
de forma que há PLDs que podem ser configurados inúmeras vezes e outros cuja programação é
inalterável, conforme será visto adiante.

Outras características, como volatilidade e tamanho dos dispositivos, serão apresentados neste
capítulo. Serão citadas, também, as inúmeras denominações que os fornecedores e a própria literatura
utilizam para referenciar os PLDs. É comum encontrar nomes como EPLDs, FPGAs, FPLAs, PLAs,
PALs, PMLs e tantos outros, referindo-se aos componentes programáveis pelo usuário, de maneira
genérica. Este capítulo tentará esclarecer estas denominações, propondo uma taxonomia que visa situar
o usuário ou projetista segundo as arquiteturas e tecnologias de programação utilizadas.

Por enquanto, a maneira mais ditática de apresentar os componentes personalizáveis após o


encapsulamento é dividi-los em dois grupos: os componentes com arquiteturas básicas, que foram os
primeiros a surgir por volta dos anos 70 (primeira geração), e os componentes com arquiteturas
avançadas, ou segunda geração, surgida no final dos anos 80, que tornam possível a implementação
de ASICs com mais de 10.000 gates equivalentes [29].

[Link] 27 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.1 Elementos de programação


Os elementos de programação, utilizados para personalizar os PLDs, são elementos (chaves) que
permitem conectar, ou não, dois pontos estratégicos, definindo os caminhos de roteamento de sinais
e/ou as funções dos blocos lógicos configuráveis. Estes dispositivos são a base para a construção de
componentes personalizáveis após o encapsulamento pois, através da sua programação, configura-se o
PLD a fim de que ele realize determinadas funções lógicas.

Para melhor entendimento do funcionamento e da eficiência destes elementos, há várias


características elétricas e físicas que devem ser consideradas como resistividade do dispositivo (maior
causador da degradação de sinais internos), tamanho da área ocupada na pastilha, potência necessária
para programação dos dispositivos. Estas características muitas vezes são transparentes para o usuário,
que nem toma conhecimento das mesmas ao trabalhar como os PLDs. Porém duas são de grande
importância, principalmente para a compreensão das vantagens de certas famílias de componentes e
sua aplicabilidade:

• volatilidade: corresponde a dependência da configuração dos elementos de programação em


relação a sua tensão de alimentação; componentes formados por elementos voláteis perdem a sua
configuração na ausência do sinal de alimentação;

• reprogramabilidade: corresponde a possibilidade de reconfiguração do elemento de


programação e, conseqüentemente, do componente depois que ele já tenha sido programado alguma
vez.

A característica de reprogramabilidade, por si mesma, já declara sua importância. Utilizar


componentes reprogramáveis para implementar ASICs significa tornar praticamente inexistentes os
riscos de projeto. Além disso, permite a possibilidade de futuras alterações no funcionamento do
circuito praticamente sem modificar o ambiente externo onde o ASIC está colocado.

A volatilidade, por outro lado, é uma característica que pode ser tanto benéfica como prejudicial
ao sistema implementado. De uma maneira geral é mais vantajoso utilizar um componente que não
precise ter sua configuração reestabelecida a cada ausência de tensão de alimentação. Este
carregamento de configuração acarreta no uso de um sistema comptucional permanentemente ligado
ao PLD ou de uma memória não-volátil auxiliar.

Entretanto, os componentes voláteis possuem áreas de aplicabilidade incontestáveis: para tarefas


não simultâneas realizadas por uma mesma máquina é muito mais útil o uso destes componentes e
diversas memórias de carregamento de configuração, havendo um ganho de área em relação a
implementação de vários circuitos para cada uma das tarefas.

Outra aplicação dos PLDs com elementos de programação voláteis é a implementação de


algoritmos de software em hardware. Há estudos para utilizar estes componentes on-line para realizar
tarefas, previamente descritas em linhas de programas, ao invés de compilá-las em linguagens como
Pascal ou C++, por exemplo. Alguns resultados apresentaram um ganho de até 100 vezes em
desempenho destes algoritmos [30,31].

Os PLDs disponíveis comercialmente apresentam como elementos de programação fusíveis


(PROM), anti-fusíveis, células SRAM, dispositivos EPROM ou E2PROM [32,33].

[Link] 28 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.1.1 Fusível
Os fusíveis, ou dispositivos PROM - Programmable Read-Only Memory, foram os primeiros
elementos de programação desenvolvidos e utilizados. Eles são formados por material condutivo de
baixo ponto de fusão e mantêm conectados dois pontos (duas trilhas de metal, por exemplo) a menos
que sejam queimados, provocando seu rompimento, e isolando estes pontos.

Os fusíveis são elementos não-voláteis, não permitem reprogramabilidade e ocupam pequena


área de pastilha, suficiente para colocar o material a ser queimado e garantir a isolação dos pontos após
a programação (figura 3.1a). Porém, eles são construídos em tecnologia bipolar que por sua vez não
permite a alta integração de transistores como ocorre com a tecnologia MOS. Não se tem
conhecimento de componentes comerciais que fazem uso de fusíveis MOS.

Por terem sido os primeiros elementos de programação criados e dominados, os fusíveis foram
durante muitos anos os responsáveis pela existência de PLDs, no caso os componentes da primeira
geração como os PALs. Porém, o fato de serem não reprogramáveis e serem fabricados em tecnologia
bipolar, de menor densidade de transistores do que o MOS, faz com que os estes elementos não
acompanhem a evolução dos componentes programáveis.

3.1.2 Anti-fusível
Os anti-fusíveis apresentam um princípio de funcionamento contrário aos dos fusíveis [33,34].
Um material de baixa condutividade é colocado entre dois pontos a serem programados, isolando-os.
Com a queima destes elementos, através da passagem de corrente, o material anti-fusível tem sua
resistividade reduzida a valores muito baixos, passando de alguns megaohms para algumas centenas de
ohms, permitindo desta forma a conectividade dos pontos citados (figura 3.1b).

Os anti-fusíveis, do mesmo modo que os fusíveis, são elementos não-voláteis, não


reprogramáveis e que utilizam pequena área de silício (aproximadamente a área de um ponto conexão
entre os níveis de metalização). A vantagem dos anti-fusíveis com relação aos fusíveis é que eles são
fabricados com tecnologia MOS, que é a principal responsável pela integração de sistemas digitais
cada vez maiores e de melhor desempenho.

Figura 3.1 - Corte transversal do fusível (a) e do anti-fusível (b).

[Link] 29 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.1.3 Célula SRAM


As células SRAM (Static Random Access Memory) são usadas para controlar transistores de
passagem, transmission gates ou multiplexadores que, por sua vez, realizam as conexões dos pontos
estratégicos para configuração do PLD (figura 3.2) [30]. Os transistores de passagem e transmission
gates permitem conectar ou isolar dois pontos, de acordo com o dado armazenado na célula SRAM,
enquanto que o uso de multiplexadores permite inúmeras combinações possíveis entre pontos
estratégicos. Esta última forma é útil para selecionar, dentre diversos sinais que chegam a uma célula
lógica configurável, qual sinal será utilizado como variável de entrada.

A célula SRAM consiste de dois inversores realimentados sendo, portanto, um dispositivo


volátil, facilmente reprogramável e que ocupa a área equivalente de aproximadamente seis transistores
MOS: cinco transistores da célula SRAM, propriamente dita, mais a chave de conexão (transistor de
passagem, transmission gate ou multiplexador), conforme a figura 3.3.

Figura 3.2 - Formas de programação com SRAM: (a) pass transistor,


(b) transmission gate e (c) multiplexador.

Figura 3.3 - Célula SRAM CMOS: representação simbólica (a),


lógica (b) e elétrica (c).

3.1.4 Dispositivos EPROM e E2PROM


O dispositivo EPROM (Erasable Programmable Read-Only Memory) é um transistor MOS
com dois gates: além do convencional ou principal, para controle do canal do transistor, há um gate
flutuante, completamente isolado por óxido, que pode armazenar uma certa carga [35].

O gate flutuante situa-se entre o gate principal e o canal do transistor (figura 3.4). Se o gate
flutuante esta descarregado, o estado do transistor é definido pelo gate principal, tal como o transistor

[Link] 30 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

MOS usual. Caso o gate flutuante esteja carregado o canal é mantido cortado (chave desligada), pois
qualquer sinal colocado no gate principal é neutralizado por esta carga.

Para descarregar a carga armazenada no gate flutuante deve-se expor o componente à luz
ultravioleta. Esta luz altera as propriedades do óxido que envolve o gate flutuante permitindo a
passagem de elétrons através dele. Logo, o dispositivo EPROM é um elemento reprogramável, não-
volátil e ocupa a área de aproximadamente um transistor MOS.

O dispositivo E2PROM (Electrically Erasable Programmable Read-Only Memory) apresenta


um princípio de funcionamento semelhante ao EPROM, porém a descarga do gate flutuante é feita
eletricamente [36,46]. Assim, o dispositivo E2PROM também é reprogramável, não-volátil e ocupa
praticamente o dobro da área de pastilha correspondente ao EPROM.

Um resumo das características dos elementos de programação apresentados pode ser visto na
tabela 3.1. Quanto a reprogramabilidade, os elementos SRAM e E2PROM são reprogramáveis in-
circuit, ou seja, não há necessidade de retirá-los do ambiente de trabalho (placa de circuito impresso)
para reprogramá-los, enquanto que o elemento EPROM deve ser exposto à luz ultravioleta para apagar
a sua configuração.

Quanto ao tamanho dos dispositivos de programação, os fusíveis e anti-fusíveis são


aproximadamente do tamanho de uma conexão entre níveis de metalização, porém o fusível é
realizado com tecnologia bipolar cujos transistores são muito maiores do que os transistores MOS, de
modo que o PLD com fusíveis não possuem grande capacidade de implementação lógica.

Figura 3.4 - Dispositivo de programação EPROM.

Tabela 3.1 - Quadro comparativo dos elementos de programação.


Elementos volátil reprogramável tamanho
fusível (PROM) não não pequeno
anti-fusível não não pequeno = VIA
SRAM sim sim 6 trans. MOS
EPROM não sim 1 trans. MOS
EEPROM não sim 2 trans. MOS

[Link] 31 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.2 Arquiteturas básicas


Qualquer função, seja combinacional ou seqüencial, pode ser representada em forma de soma-
de-produtos, usando as leis de De Morgan e teoremas da álgebra booleana, para manipulação lógica
(figura 3.5).

Figura 3.5 Representação em soma-de-produtos de uma função lógica:


(a) representação simbólica, (b) mapa de Karnaugh,
(c) equação booleana e (d) implementação PROM.

As arquiteturas da primeira geração de PLDs estão baseadas neste conceito de soma-de-


produtos. Estes componentes são constituídos basicamente por um array de portas lógicas AND
(array AND), conectado aos sinais de entrada do CI, seguido por um array de portas lógicas OR
(array OR), que fornecem os sinais de saída do circuito. As entradas do CI são combinadas no array
AND, onde são gerados os termos produtos, e estes, por sua vez, são enviados ao array OR, onde são
somados, resultando nas somas-de-produtos responsáveis pela implementação da lógica requerida.

Um ou ambos os arrays AND e OR podem ser programáveis. Os primeiros PLDs, lançados no


mercado, utilizavam fusíveis (PROM) como dispositivos de programação. Atualmente, os
componentes da primeira geração podem ser encontrados com dispositivos EPROM ou E2PROM.

De acordo com a possível programação dos arrays AND e/ou OR, os PLDs com arquitetura
básica podem ser classificados em três categorias (figura 3.6) [37,38]:

• PROM: apresenta o array AND fixo e o array OR programável;


• PAL: apresenta o array AND programável e o array OR fixo;
• PLA: ambos os arrays AND e OR são programáveis.

[Link] 32 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

Para melhor representar os arrays AND e OR foi criado o conceito de "linha de produto" e
"linha de soma", onde todas as entradas das portas lógicas AND e OR são representadas por uma linha
apenas (figura 3.7).

Os componentes da primeira geração permitem implementar circuitos de baixa complexidade,


em torno de 1.000 portas equivalentes. Quando o circuito é mais complexo, não havendo lógica
suficiente disponível em um único PLD, este circuito pode ser particionado em vários componentes.
Características adicionais para registro de dados e outras facilidades podem ser encontrados nestes
PLDs, porém sua capacidade lógica está limitada devido ao tamanho dos arrays AND e OR. Para cada
entrada ou saída adicionada ao componente os arrays AND e OR praticamente duplicam suas
dimensões, aumentando excessivamente os tempos de propagação do sinais através dos arrays e a
quantidade de dispositivos de programação necessários.

Figura 3.6 - Arquiteturas básicas de PLDs: (a) PROM, (b) PLA e (c) PAL.

Logo, os fabricantes estão restritos ao desenvolvimento de ferramentas de CAD para simulação e


programação destes PLDs, e dependentes da evolução tecnológica do processo de fabricação, para
aumentar a capacidade lógica dos componentes. Para circuitos até 500 portas equivalentes,
aproximadamente, pequeno volume de produção e desenvolvimento de protótipos), os PLDs da
primeira geração dominam o mercado consumidor.

Figura 3.7 - Representação simbólica utilizada em PLDs.

[Link] 33 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.2.1 PROM (Programmable Read-Only Memory )


Os componentes PROMs têm tido um excelente desenvolvimento em tamanho e velocidade
desde a sua introdução pela Monolithic Memories, com o lançamento da primeira memória PROM
bipolar de 1K bit no mundo, em meados dos anos 70. O PROM pode ser utilizado eficientemente tanto
como memória de alta velocidade, para armazenagem de dados, como para substituir circuitos lógicos
combinacionais ou seqüenciais.

Não se deve confundir PLDs de arquitetura PROM com elementos de programação PROM
(fusíveis). O componente PROM, ou melhor, o PLD com arquitetura básica PROM pode fazer uso de
elementos de programação PROM, EPROM ou E2PROM, apresentados anteriormente.

Quando utilizado como memória, o array AND fixo do componente PROM decodifica o
endereço da memória, enquanto que o array OR programável fornece o valor na saída definido pelo
usuário. O componente PROM é chamado também de PLE (Programmable Logic Element) quando
for utilizado para substituição de lógica aleatória [37]. Nesta aplicação cada porta lógica do array
AND corresponde a um termo produto, com variáveis fixas, previamente decodificadas neste array.
As saídas são as somas dos produtos definidas pelo usuário no array OR programável.

Desta forma os PLEs, ou PROMs, devem apresentar todos os termos produtos possíveis de
serem gerados com as variáveis de entrada (array AND fixo). Logo, a estrutura destes PLDs é
eficiente para implementar circuitos de lógica aleatória que requeiram um grande número de
combinações de entradas e de termos produtos por saída. Há, também, PLEs com registradores para
facilitar a implementação de circuitos seqüenciais e máquinas de estados que requeiram um grande
número de variáveis nas equações de cada estado.

Apesar da principal vantagem dos componentes PROMs ser esta decodificação prévia de todas
as combinações de entrada já definidas no array AND, isto faz com que o número de variáveis de
entrada permitido seja limitado, pois o tamanho dos arrays AND e OR devem ser dobrados a cada
adição de nova entrada na arquitetura. A aritmética funciona assim: um PROM com X entradas e Y
saídas requer um array OR de Y portas lógicas OR com 2x entradas cada.

Por exemplo, um PROM de 10 entradas e oito saídas exige um array OR com 8 portas lógicas
OR, cada uma contendo 210 entradas, o que corresponde a 8.192 posições de fusíveis. Para aumentar
uma entrada no componente PROM o array OR dobraria de tamanho passando para 16.384 posições
de fusíveis de interconexão.

Estatisticamente, há um número limitado de termos produto nas equações booleanas que


descrevem o funcionamento de um circuito. Assim, a flexibilidade do array OR programável
existente nos componentes PROMs, decorrentes da disponibilidade de todos os termos produto
possíveis, é normalmente desnecessária.

Porém, a implementação de certas funções que exigem um grande número destes termos
produto, tais como funções OR exclusivo (XOR), é mais eficiente com este componente (figura 3.5).
Por exemplo, um XOR de cinco entradas deve ser implementado utilizando 16 termos produto. Isto
pode exceder o número de termos produto disponíveis em um PAL ou utilizar muitos termos produto
em um PLA, que são maiores e mais lentos que o PROM. Este compromisso entre flexibilidade, custo
e desempenho sempre deve ser considerado na escolha do componente adequado a uma determinada
aplicação.

[Link] 34 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

Os componentes PROM apresentam, atualmente, maior desenvolvimento para aplicação em


memórias. Os PLEs tendem a desaparecer do mercado mundial, devido à maior eficiência do uso de
arquiteturas PAL para implementação de lógica aleatória de pequena complexidade, conforme será
visto mais adiante.

3.2.2 PLA (Programmable Logic Array )


Por apresentar ambos os arrays AND e OR programáveis, o PLA é o componente que permite
maior flexibilidade na implementação das somas-de-produtos.

A arquitetura do PLA contém um dispositivo de programação por função lógica a mais do que
as arquiteturas PAL e PROM, correspondendo a um acréscimo em área de pastilha e uma diminuição
da velocidade de funcionamento. Porém, o PLA é muito eficiente para circuitos seqüenciais, onde sua
flexibilidade permite implementar máquinas de estado maiores.

Por causa desta característica, há uma família de PLAs, chamada PLS (Programmable Logic-
based Sequencer), cujos componentes apresentam algumas características próprias que facilitam a
implementação de circuitos para aplicações específicas em seqüenciadores (figura 3.8) [39]. Para
permitir a implementação de máquinas de estado mais complexas, os PLSs perdem um pouco da sua
generalidade, tornando-se ineficientes para aplicações gerais.

Figura 3.8 - PLS: um PLA específico para implementação de máquinas de estado.

A possibilidade de programação do array AND evita a restrição encontrada nos PROMs, onde
este array deve ser suficiente para permitir todas as possíveis combinações de entrada. Isto ocorre,
como já foi dito, porque apenas um número limitado de termos produto é requerido nas equações
lógicas de um circuito. Eliminando combinações redundantes com técnicas de minimização lógica, tais

[Link] 35 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

como mapas de Karnaugh e álgebra booleana, pode-se reduzir ainda mais o número de termos
produto em certas aplicações. Desta forma quase todas as combinações de entrada podem ser
decodificadas em um PLA.

Devido à longa história dos PLAs, sua nomenclatura pode gerar pequenas confusões. Os
primeiros fabricantes de PLAs programáveis pelo usuário chamaram seus produtos de FPLA (Field
Programmable Logic Array) para distinguir dos PLAs personalizados por máscaras [25].

Porém, os fabricantes acabaram simplificando a nomenclatura e, assim, tanto os PLAs


mascaráveis quanto os que são programáveis pelo usuário recebem o mesmo nome. Normalmente,
PLAs personalizáveis por máscaras são gerados automaticamente com ferramentas de CAD.

Os PLAs programáveis pelo usuário tendem a perder seu nicho de mercado para os PALs da
mesma forma que os PROMs, devido a maior eficiência dos PALs para implementação de ASICs com
menos de 1.000 portas equivalentes. A única área de aplicação não concorrida com demais PLDs de
baixa complexidade (primeira geração) é aquela para a qual estão voltados os PLSs.

3.2.3 PAL (Programmable Array Logic )


Os componentes de maior sucesso entre os PLDs da primeira geração são os PALs,
Programmable Array Logic [40,41]. Para aplicações de baixa complexidade, onde os PLDs de
arquitetura básica encontram seu nicho de mercado, os PALs apresentam-se mais eficientes na
utilização da área da pastilha, velocidade de funcionamento e custos de projeto e implementação. Até
o surgimento da segunda geração de PLDs, os PALs também foram os mais eficientes na
implementação de circuitos de média complexidade e baixo volume de produção. Neste caso,
particionava-se automaticamente o circuito em diversos PALs devido à limitação de funções lógicas
implementáveis nestes componentes.

O fato do array AND ser programável em um PAL torna possível para o componente ter muitas
entradas, enquanto que o array OR fixo o mantém pequeno e rápido, porém com número limitado de
termos produto por saída (figuras 3.9 e 3.10) [38].

Figura 3.9 - Exemplo de programação de um PAL.

Os PALs são encontrados em diferentes tecnologias, tais como TTL, CMOS e ECL. Os
componentes CMOS permitem as mesmas funções dos TTLs e podem ser utilizados com a mesma

[Link] 36 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

pinagem, com benefício de menor consumo de potência. Eles ainda permitem a reprogramabilidade
pois podem ser configurados com dispositivos EPROM ou E2PROM. Os PALs TTL são mais rápidos
e estão disponíveis apenas em tecnologia PROM. Os componentes ECL, por sua vez, destinam-se a
aplicações de alta velocidade e requerem considerações de projeto completamente diferentes de PALs
CMOS e TTL, não podendo ser substituídos por componentes destas tecnologias.

Figura 3.10 - PAL: array AND programável, array OR fixo.

[Link] 37 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

De acordo com o consumo podemos classificar os PALs CMOS em dois tipos: zero power e low
power. O componente zero power corresponde àquele que, quando em estado quiescente, praticamente
não consomem potência. O componente low power é mais rápido e, mesmo em estado quiescente,
drena uma quantidade de corrente nominal, porém menor do que os bipolares equivalentes. A
diferença básica é que, a cada variação de sinal no componente zero power, existe um consumo apenas
durante a transição e em seguida o componente retorna a condição estática onde, praticamente, não há
consumo de potência. Isto torna o circuito mais lento. Existem componentes que possuem um termo
produto específico para permitir a escolha de um dos modos de funcionamento.

Devido ao seu sucesso, muitos projetistas passaram a usar as denominações PAL e PLD como
sinônimos. Enquanto existia apenas a primeira geração de componentes programáveis pelo usuário,
esta troca de nomenclatura não causava muita confusão pois os componentes PLAs e PROMs eram
inexpressivos para implementação de lógica aleatória. Porém, devido ao surgimento da segunda
geração e suas inúmeras denominações, aconselha-se destinar o termo PLD para referir-se,
genericamente, aos componentes personalizáveis após o encapsulamento.

Para grandes volumes de produção, o PAL pode ser substituído por um componente
personalizado por máscaras, chamado HAL (Hardwired Array Logic) [25]. O componente HAL troca
os fusíveis do PAL por uma etapa final de máscara, que metaliza permanentemente as conexões
lógicas. Esta alternativa aproxima o PAL de aplicações que são atraentes para os pré-difundidos. O
HAL combina o mais baixo custo variável para grandes volumes de produção dos pré-difundidos,
discutidos anteriormente, com as facilidades de prototipação dos PALs. Esta conversão para
componentes mascaráveis pode ser apropriada uma vez que o circuito já encontra-se validado com
PALs.

3.3 Arquiteturas avançadas


Conforme apresentado, a primeira geração de circuitos de lógica programável pelo usuário
baseia-se na implementação de funções lógicas através de equações booleanas na forma de soma-de-
produtos. Mostrou-se também que os componentes PROMs apresentam número limitado de entradas,
enquanto que os PALs estão restritos a um pequeno número de termos produto por saída. Os PLAs,
por sua vez, são mais flexíveis na implementação das equações em soma-de-produtos, porém mais
lentos devido à propagação dos sinais através de dois arrays programáveis. Apesar destes
componentes se complementarem, tanto estrutural quanto funcionalmente, os PALs apresentam-se
mais eficientes dentre os PLDs com arquitetura básica.

Todavia, os fabricantes de PALs, PLAs e PROMs dependem da evolução do processo de


fabricação para conseguir aumentar a capacidade de integração destes componentes, sem perder em
desempenho elétrico. Por conseqüência, é necessário limitar o tamanho dos arrays AND e OR e a
quantidade de elementos de programação, a fim de manter os atrasos de propagação de sinais em
ordens de grandeza aceitáveis.

Objetivando aumentar a capacidade de implementação lógica dos PLDs, surgiram novas


arquiteturas, cujas princípios de configuração diferem do simples uso de equações na forma de soma-
de-produtos para descrição do funcionamento dos circuitos [29]. Esta segunda geração de
componentes personalizáveis após o encapsulamento mostra-se eficiente na implementação de
circuitos com mais de 1.000 portas equivalentes, quando o volume de produção e o tempo para
obtenção do ASIC inviabilizam o uso de CIs personalizáveis por máscaras.

[Link] 38 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

Dentre os componentes da segunda geração, a quantidade de denominações recebidas pelos


PLDs é ainda maior do que na primeira. Inicialmente, os componentes serão divididos em três
categorias segundo as denominações utilizadas pelos próprios fabricantes: EPLDs, FPGAs e folded-
arrays. Isto não quer dizer que esta seja a melhor forma de classificá-los. Após a descrição suscinta
destas categorias, será mais fácil discutir e propor uma melhor taxonomia para os PLDs.

Os EPLDs (Erasable Programmable Logic Devices) são uma evolução natural da arquitetura
dos tradicionais PALs, com um array de portas lógicas AND programável e outro com portas lógicas
OR fixas. Os primeiros componentes foram lançados por volta de 1988 [81,82].

Estes componentes diferem dos PALs por apresentarem arrays de interconexão programáveis,
diversas realimentações de sinais, macrocélulas com grande capacidade de manipulação lógica e
armazenagem de dados, blocos de I/O (entradas e saídas do CI) independentes das macrocélulas e
arrays de expansão de termos produto. Os EPLDs são encontrados com tecnologias EPROM e
E2PROM, sendo a empresa Altera Corp. o seu principal fabricante [18,42,43].

Os FPGAs (Field Programmable Gate Arrays), referenciados também por alguns fabricantes
como LCAs (Logic Cell Arrays), utilizam como elementos de programação células de memória RAM
estática (SRAM) e anti-fusíveis. Os FPGAs recebem esta denominação por assemelharem-se muito
com a arquitetura gate array dos pré-difundidos, com áreas de configuração lógica e canais de
roteamento [11,12]. A Actel Corp. é a principal fornecedora dos componentes com anti-fusíveis,
enquanto que a Xilinx, a Cuncurrent Logic e a Algotronix são fabricantes que utilizam células SRAM
em seus produtos [44,45].

Finalmente, os componentes folded-arrays, fornecidos pela Signetics Corp. e pela Exel Corp.,
são PLDs que utilizam arrays programáveis contendo apenas portas lógicas OR ou AND,
realimentadas, para implementação da lógica do circuito. Nos folded-arrays, ao invés de somas de
produtos, o funcionamento lógico é descrito apenas com somas (funções OR) ou produtos (funções
AND). Para saída de sinais, ainda podem ser encontradas algumas características adicionais, como
registro de dados ou sinais tri-state. Estes componentes utilizam tecnologias PROM e EPROM
[39,46].

Da mesma forma que as arquiteturas evoluíram para aumentar a capacidade de integração dos
PLDs, as ferramentas de suporte necessárias para a implementação de ASICs sobre os componentes
programáveis tiveram que acompanhar esta evolução, a fim de permitir um bom fator de utilização dos
PLDs [47].

3.3.1 EPLD (Erasable Programmable Logic Device)


O princípio de funcionamento dos componentes EPLDs tem origem nos PALs, com arrays
ANDs programáveis e arrays OR fixos. Porém, o que diferencia um EPLD de um PAL é que,
enquanto no PAL existe apenas um array AND programável, no EPLD existem vários sub-circuitos
com arquitetura e capacidade semelhante a um PAL, interconectados por um array programável. Com
isso, os sub-circuitos podem funcionar independentemente ou serem interligados dentro do
componente. Pode-se fazer a analogia de que um EPLD corresponde a uma placa de circuito impresso,
contendo vários PALs interligados pelas trilhas de roteamento da placa.

A tecnologia de programação utilizada nestes componentes é EPROM ou E2PROM. Logo, é


permitida a reprogramabilidade, apagando-se a configuração anterior por luz ultra-violeta ou

[Link] 39 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

eletricamente. O principal fabricante é a empresa Altera Corp., que faz uso do processo CMOS 0,8
micra da Cypress Semiconductor Corp. para construir os dispositivos de programação. A arquitetura
descrita neste trabalho baseia-se nos componentes da Altera [18], observando-se que os EPLDs de
outros fabricantes possuem um princípio de funcionamento semelhante [42,43].

A implementação das funções lógicas é realizada em sub-circuitos chamados de Logic Array


Blocks (LABs) [48]. Cada LAB contém uma ou mais macrocélulas, blocos de I/O e um circuito de
expansão de termos produto (figura 3.11a).

Uma macrocélula (célula lógica) é formada por um array de portas lógicas AND conectadas por
portas OR para a implementação de soma-de-produtos (figura 3.12). O sinal da macrocélula pode ser
armazenado em flip-flops ou enviados novamente ao array AND, permitindo realimentação de sinais.
Os sinais de controle dos flip-flops permitem inúmeras facilidades para implementação do circuito no
EPLD.

Os blocos de I/O funcionam independentemente da macrocélula, ao contrário do que ocorre com


os PALs, onde o uso de um bloco de I/O para entrada de sinais impede o uso lógica disponível na
macrocélula. Isto é conseguido com a existência de uma célula tri-state entre o bloco de I/O e a
macrocélula (figura 3.11b).

Figura 3.11 - EPLD da Altera: (a) Logic Array Block; (b) bloco de I/O.

O circuito de expansão de termos produto é encontrado somente nos EPLDs e corresponde a


um array extra de portas lógicas AND, que pode ser utilizado para suprir a falta de termos produto no
array da macrocélula ou para implementar flip-flops para armazenagem de dados. Com isso, o array
AND utilizado na macrocélula é otimizado para conter um número médio de termos produto existentes
em uma equação booleana, definidos estatisticamente.

Os LABs estão interligados entre si através do array de interconexão programável (PIA -


Programmable Interconection Array), formado por dispositivos EPROM ou E2PROM e trilhas de
metal fixas. Este array de interconexão é o principal responsável pela alta capacidade de integração
permitida pelos EPLDs (figura 3.13). O fabricante garante, ainda, que o atraso de propagação de sinais
através do PIA são fixos e bem definidos, devido a capacitância equivalente das trilhas de metal do
array serem semelhantes. Desta forma, simplifica-se a análise de sincronismo de sinais dentro do
componente.

[Link] 40 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

A Altera possui várias famílias de EPLDs que diferem entre si na disposição interna dos LABs e
do PIA. A família mais utilizada é a MAX5000 que integra até 384 flip-flops e possui até 84 pinos de
I/O configuráveis, equivalendo a mais de 10.000 portas equivalentes utilizáveis [17,18,48].

Figura 3.12 - Macrocélula (célula lógica) de um EPLD.

É importante observar os tipos de encapsulamentos para os EPLDs pois eles interferem na


reprogramabilidade: o encapsulamento cerâmico apresenta janela para exposição à luz ultra-violeta, e
o encapsulamento plástico não possui esta janela, impedindo a reprogramação do componente. O
encapsulamento plástico é utilizado quando o circuito já se encontra validado, a fim de reduzir o preço
do componente.

3.3.2 FPGA (Field Programmable Gate Array)


Os FPGAs, ou LCAs, são componentes personalizáveis após o encapsulamento que tiveram sua
origem nas arquiteturas da abordagem gate array (CIs personalizáveis pela metalização) [49], com
áreas de configuração lógica separadas por canais de roteamento e blocos de I/O na periferia do
circuito.

O princípio da arquitetura do FPGA é dispor os elementos lógicos em áreas específicas e


interligá-los por trilhas de metal fixas, enquanto que na abordagem gate array estas trilhas de metal
são definidas pelas máscaras de processo de fabricação do circuito. O que possibilita a roteabilidade
nos FPGAs são as chaves de passagem, que conectam as trilhas de metal fixas entre si e/ou nas células
lógicas configuráveis. Estas chaves podem ser anti-fusíveis ou transistores controlados por células de
memória SRAM.

Devido a sua origem, FPGAs e EPLDs apresentam características bem distintas de


funcionamento e desempenho elétrico. Nos FPGAs a célula lógica configurável é mais genérica, com a
possibilidade de configuração de inúmeras funções lógicas com até 5 variáveis de entrada, enquanto

[Link] 41 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

que nos EPLDs as macrocélulas são específicas para a implementação de equações booleanas na forma
de soma-de-produtos, com a possibilidade de registro do sinal de saída.

Outra diferença entre EPLDs e FPGAs é a forma de interligação dos blocos lógicos. Nos FPGAs
as chaves de passagem permitem o uso de tantas trilhas quantas forem necessárias para o roteamento
do sinal, enquanto que nos EPLDs utiliza-se o array de interconexão programável (PIA).
Diferentemente do caso dos FPGAs, este array permite qualquer roteamento de sinal entre os LABs,
utilizando-se, por exemplo, para a família MAX 5000 da Altera, sempre três trilhas fixas de metal: a
de saída de um LAB, a de entrada de outro, e a terceira para ligar as duas anteriores. Isto faz com que
os atrasos de propagação dos sinais, através dos canais de roteamento nos FPGAs, sejam variáveis e
dependentes do próprio roteamento gerado pelo software de programação, enquanto que nos EPLDs
estes atrasos são sempre fixos e previsíveis, simplificando as simulações lógicas [17].

Os FPGAs disponíveis comercialmente podem ser divididos em dois grupos, segundo os


elementos de programação utilizados: FPGAs com anti-fusíveis e FPGAs com células SRAM.

Figura 3.13 - Arquitetura de um EPLD da família MAX 5000 da Altera.

[Link] 42 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

a) FPGAs com anti-fusíveis


Os anti-fusíveis surgiram na década de 80, revolucionando os elementos de programação
utilizados em PLDs por serem construídos em tecnologia MOS. Estes dispositivos assemelham-se em
tamanho com os fusíveis, sendo, portanto, menores do que os EPROMs, E2PROMs e células SRAM,
possibilitando maior densidade de integração. Porém, da mesma forma que o dispositivo PROM
(fusível), os anti-fusíveis apresentam a desvantagem de não permitirem reprogramação.

Os FPGAs com anti-fusíveis são fabricados pelas empresas Crosspoint, Actel e QuickLogic
[51,52]. A Actel foi a primeira empresa a tirar proveito destes elementos de programação, utilizando
uma arquitetura praticamente idêntica a abordagem gate array dos pré-difundidos, com linhas de
células lógicas (ou módulos lógicos, como são denominados pela empresa) separadas por canais de
roteamento.

Cada módulo lógico do FPGA da Actel corresponde a dois multiplexadores 2x1 ligados na
entrada de um terceiro multiplexador 2x1. Com isso, tem-se cerca de sete entradas e saída única em
cada módulo. De acordo com a escolha das entradas e a fixação das restantes nos níveis lógicos 0 ou 1,
o bloco lógico realiza todas as funções lógicas de duas entradas, a maioria das funções com três
entradas e muitas funções com quatro entradas (figura 3.14a). Por exemplo, para implementar um flip-
flop tipo D com set e reset, que utiliza cerca de 14 pares de transistores MOS em um gate array, são
necessários dois módulos lógicos deste FPGA [53].

Os módulos lógicos estão dispostos um ao lado do outro, compondo linhas de configuração


lógica. Entre estas linhas lógicas encontram-se trilhas de metal pré-difundidas e com variadas
extensões. Estes espaços da arquitetura, entre as linhas lógicas, são definidos como canais de
roteamento, da mesma forma que nos gate arrays (figura 3.14b).

As entradas e saídas das linhas lógicas estão disponíveis em trilhas verticais, implementadas com
um segundo nível de metalização. As entradas estão conectadas a trilhas verticais que se prolongam
apenas até o canal de roteamento adjacente, enquanto que as saídas estão disponíveis em trilhas
verticais que cruzam todos esses canais. Há também trilhas verticais de metal2 cruzando os módulos
lógicos com a finalidade de permitir a passagem do sinal de um canal de roteamento para outro.

Figura 3.14 - FPGA da Actel: (a) módulo lógico; (b) arquitetura básica.

[Link] 43 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

Os anti-fusíveis são dispositivos bidirecionais e encontram-se situados nos cruzamentos de


trilhas verticais e horizontais de roteamento, permitindo a troca dos níveis de metal para propagação de
sinais.

Há anti-fusíveis também entre trilhas adjacentes, horizontais ou verticais, a fim de permitir


longos caminhos em um mesmo sentido, como também para evitar capacitâncias parasitas e
desperdícios de trilhas para a ligação de pontos próximos (figura 3.15). Devido à resistência destes
dispositivos de programação, evita-se a passagem de um determinado sinal por mais de três anti-
fusíveis, a fim de evitar a degradação excessiva do nível de tensão deste sinal.

Os blocos para entrada e saída de sinais (blocos de I/O) também são configuráveis por anti-
fusíveis, assumindo as funções de circuitos de entrada, saída ou bidirecionais, e estão dispostos na
periferia do componente.

Figura 3.15 - Detalhe dos anti-fusíveis do FPGAs da Actel.

b) FPGAs com SRAM


O primeiro FPGA a utilizar células SRAM para sua configuração foi lançado em 1987. Este
componente, da empresa Xilinx possuía aproximadamente 1000 portas equivalentes [54]. Atualmente,
os FPGAs com SRAM podem chegar a 20.000 portas equivalentes de capacidade de implementação
lógica [45,55,56].

[Link] 44 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

A tecnologia SRAM, conforme visto anteriormente, é volátil, ou seja, na ausência de tensão de


alimentação no componente os dados das células de memória e, conseqüentemente, da configuração
do FPGA, são perdidos. Isto obriga ao usuário carregar, via circuito externo ou memória auxiliar, a
configuração do componente toda vez que ele for ligado. Porém, devido a esta característica, é muito
fácil utilizar estes FPGAs para implementar um circuito multi-tarefa, dentro de um sistema onde tais
tarefas não ocorram simultaneamente, bastando utilizar inúmeras memórias auxiliares e recarregar
periodicamente o componente.

Entre os fabricantes de FPGAs com SRAM encontram-se a Concurrent Logic, a Algotronix, a


Xilinx e até mesmo a Altera, principal fabricante de EPLDs [18,45,56,57]. Os componentes da Xilinx
são os que dominam atualmente o mercado dos PLDs com células de memória SRAM e, por isso, sua
arquitetura será apresentada neste ítem [58]. Os demais FPGAs são compostos dos mesmos blocos
básicos, diferenciando-se, praticamente, apenas na disposição destes blocos dentro do circuito e nas
suas características funcionais (figuras 3.16a e 3.16b).

A implementação das funções lógicas no componente é feita com células lógicas, ou blocos
lógicos configuráveis (como são denominados pelo fabricante), posicionados em áreas estratégicas do
circuito. Estes blocos apresentam uma parte combinacional programável, capaz de implementar
qualquer função lógica com suas variáveis de entrada.

A configuração da parte combinacional é feita através de estruturas look-up table, utilizando


células SRAM [31]. Nos blocos lógicos encontram-se também registradores e multiplexadores, com o
objetivo de permitir a armazenagem de dados e a posibilidade de escolha de saída síncrona ou
assíncrona de sinais (figura 3.17a). Estes blocos podem apresentar dois ou mais sinais de saída,
diferentemente dos FPGAs com anti-fusíveis da Actel, que apresentam apenas um sinal de saída por
bloco lógico (figura 3.14a).

Figura 3.16 - Arquitetura básica de FPGAs com SRAM:


(a) Xilinx; (b) Concurrent Logic.

Entre os blocos lógicos configuráveis encontram-se canais de roteamento, com trilhas de metal
fixas, interligadas entre si e com os blocos lógicos por meio de transistores de passagem (figura 3.17a).
Células SRAM definem o estado ON ou OFF dos transistores de passagem (chaves), formando o

[Link] 45 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

caminho percorrido pelos sinais. Estas chaves estão dispostas em forma de arrays, posicionados
estrategicamente nos cruzamentos de trilhas horizontais e verticais.

Uma deficiência encontrada nesta arquitetura é a degradação do nível de tensão dos sinais devido
à utilização freqüente de muitos transistores de passagem por um mesmo sinal. Isto obriga este sinal,
após percorrer determinadas distâncias, a passar por "repetidores" ou amplificadores a fim de reforçá-
lo (figura 3.18b). Porém, o uso de "repetidores" resulta no aumento dos atrasos de propagação deste
sinal através do canal de roteamento.

Figura 3.17 - FPGA da Xilinx: (a) bloco lógico; (b) bloco de I/O.

Para interconexão de blocos lógicos vizinhos existem trilhas de metal cruzando os canais de
roteamento e conectando diretamente estes blocos, sem utilizar os transistores de passagem. O mesmo
ocorre com sinais roteados a longas distâncias, que podem utilizar trilhas de roteamento global,
evitando a passagem por muitas chaves e a conseqüente degradação do seu nível de tensão (figura
3.18a).

Por fim, há os blocos de I/O configuráveis, posicionados na periferia do componente e


utilizados para controle de entrada e saída de sinais, sejam eles síncronos ou assíncronos (figura
3.17b).

Figura 3.18 - FPGA da Xilinx: (a) detalhe do canal de roteamento; (b) representação de um
roteamento com o uso de circuito "repetidor".

[Link] 46 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.3.3 Folded-arrays
Os PLDs conhecidos por folded-arrays fazem uso de um array realimentado programável,
formado apenas por portas lógicas AND ou OR para implementação das funções lógicas do circuito.

Apesar da semelhança do seu array programável com os arrays AND e OR dos PLDs da
primeira geração, o princípio de implementação das funções lógicas é através de simples somas ou
produtos, ao invés de soma-de-produtos. A álgebra booleana, da mesma forma que permite o
equacionamento de qualquer função na forma de soma-de-produtos, possibilita a transformação de
somas em produtos e vice-versa, de modo que qualquer equação lógica, resultante da soma-de-
produtos, pode ser representada por simples somas ou produtos.

Os principais fabricantes de folded-arrays são a Exel Corp. e a Signetics Corp. A diferença entre
eles está no uso de portas lógicas OR ou AND, no array programável (figuras 3.19a e 3.19b)
[39,46,59]. Utiliza-se, atualmente, dispositivos PROM e EPROM para configurar estes componentes.

A arquitetura básica de um folded-array é formada apenas pelo array programável e por pinos
de entrada, saída ou bidirecionais. Nos pontos de saída podem ser encontradas portas lógicas tri-state,
para manter a saída em alta impedância, e portas para definição da polaridade do sinal de saída (portas
lógicas OR exclusivo).

Existem componentes que possuem flip-flops, além do array programável, cujos sinais de saída
podem ser enviados aos pinos de I/O ou realimentados para o array programável (figura 3.20). Desta
forma, facilita-se a implementação de máquinas de estado e circuitos com lógica síncrona.

Um resumo das arquiteturas de CIs personalizáveis após o encapsulamento apresentadas pode


ser visto na tabela 3.2 [19,28,30].

Figura 3.19 - Exemplo de implementação lógica utilizando-se apenas funções


somas ou produtos: (a) Exel; (b) Signetics.

[Link] 47 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

Figura 3.20 - Arquitetura básica de um folded-array da Signetics.

Tabela 3.2 - Quadro comparativo de PLDs.


PLDs arquitetura elemento de alguns fabricantes
programação
PROM array AND fixo e fusível e Motorola,
array OR program. EPROM National.
PLA arrays AND e fusível e Signetics/Philips,
OR programáveis EPROM Latice.
PAL array AND program. e fusível, AMD/MMI,
array OR fixo. EPROM e Signetics/Philips,
EEPROM Intel.
EPLD macrocélula (PAL), EPROM e Altera,
array interconexão, EEPROM Plus Logic,
expansor de produtos, AMD/MMI,
blocos de I/O. Xilinx.
FPGA c/ antifusível módulos lógicos, anti-fusível Actel,
linhas de roteamento, Crosspoint,
blocos de I/O. QuickLogic.
FPGA c/ SRAM blocos lógicos, células SRAM Xilinx,
canais de roteamento, Concurrent Logic,
blocos de I/O, Algotronix,
repetidores. Altera.
folded-array array AND ou OR. fusível e Signetics/Philips,
EPROM Exel.

[Link] 48 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP

3.4 Taxonomia dos PLDs


Foi apresentado ao longo deste capítulo a variedade de nomenclaturas utilizadas pelos
fabricantes e pela literatura para referenciar os componentes de lógica programável, ou CIs
personalizáveis após o encapsulamento.

Para esta forma de implementação não existe ainda uma taxonomia definida, como ocorre com
os CIs personalizáveis por máscaras [12,13]. Os PLDs da primeira geração, devido ao seu tempo de
existência, apresentam uma classificação segundo a possibilidade de programação dos arrays AND e
OR [38,60] bastante utilizada pelos fabricantes e usuários, embora alguns insistem em utilizar o termo
genérico PLD para citar os componentes PALs.

A segunda geração, por sua vez, tem uma história bastante recente e o lançamento de novos
componentes com arquiteturas e princípios de funcionamento inéditos é ainda bastante freqüente. Isto
dificulta encontrar uma classificação coerente onde possam ser encaixados os PLDs que estão para
serem lançados no mercado.

Alguns simplificam esta discussão generalizando toda a segunda geração como componentes
FPGAs [19,30]. Outros tentam encontrar critérios como a complexidade das células lógicas
configuráveis, as características dos elementos de programação utilizados, ou mesmo os princípios de
síntese e mapeamento lógico adotados na utilização das CLs [29,83]. Mas estas tentativas não têm sido
adotadas pelos fabricantes que continuam fazendo uso de nomenclaturas próprias e confundindo o
usuário no momento da escolha do componente mais adequado a sua aplicação.

Observa-se uma tendência de ser utilizada a sigla FPGA para aqueles PLDs que utilizam como
elementos de programação células de memória SRAM ou anti-fusíveis, e a sigla EPLD para os
componentes com dispositivos EPROM e E2PROM. Outra divisão possível é segundo as
características das CLs utilizadas. A primeira vista parece existir duas linhas para a compilação da
lógica dos circuitos: através de equações booleanas na forma de soma-de-produtos, simples somas ou
simples produtos, e através de células lógicas genéricas formadas por portas lógicas universais,
multiplexadores ou estruturas look-up table.

Entretanto, o mais importante para o usuário, independente da taxonomia adotada por ele
mesmo, é que no momento da adoção de determinado componente para a implementação de seu ASIC
sejam consideradas características básicas como a volatilidade e a reprogramabilidade dos elementos
de programação, e as características dos canais de roteamento que poderão permitir ao projetista a
realização de conexões manuais e interferir fortemente na análise de timing do circuito.

[Link] 49 Julho/1994.

Você também pode gostar