Tecnologias de PLDs e Elementos de Programação
Tecnologias de PLDs e Elementos de Programação
Elétrica / UNICAMP
Capítulo 3
Tecnologias e arquiteturas dos PLDs
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).
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.
[Link] 27 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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.
[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.
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).
[Link] 29 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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.
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.
[Link] 31 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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]:
[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).
Figura 3.6 - Arquiteturas básicas de PLDs: (a) PROM, (b) PLA e (c) PAL.
[Link] 33 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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.
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
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.
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].
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.
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].
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.
[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.
[Link] 38 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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].
[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].
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.
Figura 3.11 - EPLD da Altera: (a) Logic Array Block; (b) bloco de I/O.
[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].
[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].
[Link] 42 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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].
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 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.
[Link] 44 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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.
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).
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.
[Link] 47 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
[Link] 48 Julho/1994.
Dissertação de Mestrado – Eng. Elétrica / UNICAMP
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.