Dispositivo lógico programável: diferenças entre revisões
m Revertidas edições por 194.65.224.217 para a última versão por TXiKiBoT (Huggle) |
|||
Linha 106: | Linha 106: | ||
[[uk:ПЛІС]] |
[[uk:ПЛІС]] |
||
[[zh:可程式邏輯裝置]] |
[[zh:可程式邏輯裝置]] |
||
atuyamasr |
Revisão das 13h55min de 28 de março de 2011
Um dispositivo lógico programável (Programmable logic device - PLD) é um componente electrónico utilizado para construir circuitos digitais.
Ao contrário de uma porta lógica, que tem uma função fixa, um PLD tem uma função indefinida quando do seu fabrico. Antes de se utilizar um PLD num circuito, este deve ser programado.
É impossível discutir a tecnologia PLD sem mencionar algumas das empresas envolvidas no seu desenvolvimento. No entanto, não é o fim deste artigo listar todos os fabricantes de PLD's. Inclusão ou omissão de uma companhia em particular neste artigo poderia ser mal interpretada.
Usando a ROM como um PLD
Antes das PLD's serem inventadas, as memórias ROM foram utilizadas para várias funções lógicas combinatórias arbitrárias com um certo numero de entradas. Consideramos uma ROM com m de entradas (Linhas de endereço) e n de saídas (Linhas de Dados). Quando usadas como memória, as ROM contêm palavras de n-Bits cada. Agora imagine que as entradas são ligadas não a um endereço M-Bits mas sim a M-sinais lógicos independentes. Teoricamente irão existir funções boleanas possiveis destes m sinais, mas a estrutura da ROM permite apenas n destas funções nos pinos de saída. A ROM torna-se equivalente a n de circuitos lógicos independentes, cada qual gerando um função das m entradas.
A vantagem em usar ROMs desta forma é que qualquer função concebível com m entradas pode aparecer em qualquer uma das n saídas, tornando o dispositivo lógico disponivel para aplicações mais abrangentes. Também as PROMs (Rom programavel), EPROMs(PROM apagável)e as EEPROMs (PROM apagável eléctricamente) podem ser programadas utilizando um programador PROM comum sem requisitos especializados de Hardware e Software.
No entanto há algumas desvantagens:
- Normalmente são mais lentas que os circuitos lógicos dedicados;
- Não dão uma cobertura segura para transmissões lógicas assíncronas;
- Consomem mais energia e devido a pequena fracção utilizada da sua capacidade levam uma ineficiência do espaço em uso.
Por si só não podem ser utilizadas para lógica sequencial, porque não contém flip-flops. Um registo TTL externo foi utilizado para projectos sequenciais tais como máquinas de estados.
EPROMs comuns, por exemplo 2716, continuam a ser utilizadas algumas vezes desta forma como passatempo de técnicos de circuitos electrónicos. Esta utilização algumas vezes é chamada de "PAL dos pobres".
Primórdios da lógica programável
Em 1970, a Texas Instruments desenvolveu um circuito integrado programável por máscara baseado na memória associativa da IBM. Este componente, o TMS2000 era programado alterando-se a camada de metal durante a fabricação. O TMS2000 tinha até 17 entradas e 18 saídas com 8 flip-flops JK como memória. A Texas criou o termo Programmable Logic Array (PLA) para este dispositivo.
Em 1973, a National Semiconductor introduziu um dispositivo PLA programável por máscara (DM7575) com 14 entradas e 8 saídas sem registradores de memória. Foi mais popular que o da Texas, mas o custo de fazer a máscara de metal limitou seu uso. Este dispositivo foi significativo porque era a base para o array lógico programável em campo (field programmable logic array) produzido pela Signetics em 1975, o 82S100. (A Intersil na realizade adiantou-se à Signetics mas o baixo aproveitamento arruinou seu dispositivo).
Em 1971, a General Electric (GE) estava desenvolvendo um dispositivo lógico programável baseado na nova tecnologia PROM . Este dispositivo experimental era melhor em relação ao ROM da IBM por permitir lógica multiníveis. A Intel tinha acabado de introduzir a PROM apagável por ultravioleta com gate flutuante e os pesquisadores da GE incorporaram esta tecnologia. O dispositivo da GE foi o primeiro PLD regravável, precedento a EPLD da Altera por mais de uma década. A GE obteve muitas das primeiras patentes em dispositivos lógicos programáveis.
Em 1974 a GE fez um acordo com a Monolithic Memories para desenvolver um dispositivo lógico programável por máscara incorporando as inovações da GE. O dispositivo foi chamado 'Programmable Associative Logic Array' or PALA. O MMI5760 foi finalizado em 1976 e podia implementar circuitos multiníveis ou sequenciais de mais de 100 portas lógicas. O dispositivo era apoiado por ambiente de projeto da GE onde as equações booleanas eram convertidas em padrões para a máscara do dispositivo. Este componente nunca chegou a ser comercializado.
PAL - (Matriz lógica programável)
A MMI introduziu um dispositivo em 1978. A arquitetura era mais simples que o FPLA Signetics porque omitia a matriz programável OR. Isto tornava os componentes mais rápidos, menores e mais baratos. Estavam disponiveis em encapsulamento DIP de 20 pinos 300mil enquanto que as FPLA vinham em encapsulamentos de 28 pinos 600mil. O manual da PAL desmestifica o processo de construção. O software de design PALSM converte equações booleanas de engenharia em padrões fusiveis necessários para programar o componente. Os componentes PAL rapidamente foram produzidos por National Semiconductors, Texas Instruments e AMD. Após a MMI ter êxito com a PALs de 20 pinos, a AMD introduziu a PAL de 24 pinos 22V10 com funcionalidades adicionais. Após comprar MMI EM 1987, a AMD consolidou a operação com Vantis, e este negócio foi comprado por Lattice Semiconductor em 1989.
GALs (generic array logic)
Uma invasão das PAL foi a GAL inventada pela Lattice semiconductor em 1985. Este componente tem as mesmas propriedades lógicas das PAL mas podem ser apagadas e reprogramadas. A GAL é muito útil no estágio de prototipagem de um projecto, quando alguns erros logicos podem ser corridos pela reprogramação. As GAL programadas e reprogramadas usando um programador PAL ou usando uma técnica de um circuito enbuntido em algums chips.
Um componente similantes PEEL(programmable electrically erasable logic) foi produzido pela ICT(International CMOS Technology)
CPLDs
As PALs e GALs estão disponiveis somente em tamanhos pequenos, equivalentes a algumas centenas de portas lógicas. Para circuitos lógicos maiores pode-se usar Complex PLD ou CPLDs. Este contém o equivalente a muitas PALs ligadas por interconexão programadas, tudo num circuito integrado. Os CPLDs podem substituir milhares ou até centenas de milhares portas lógicas. Algumas CPLDs são programadas usando o programador PAL, mas este método torna-se inconveniente para dispositivos com centenas de pinos. O segundo método de programação é soldar o componente à sua placa de circuito impresso, e depois ligar um cabo de série de dados ao PC. O CPLD contém um circuito que descodifica os dados e configura-o para realizar a função lógica específica. Cada fabricante tem um nome proprietário para este sistema de programação. Por exemplo, a Lattice Semicondutor chama-lhe "programação in-system". No entanto este sistema proprietário começa a abrir caminho para uma normalização através da Joint Test Action Group (JTAG).
FPGA (field programmable gate array)
Enqunto as PAL's se foram desenvolvendo para GAL's e CPLD's, uma linha de desenvolvimento separado ocorreu. Este tipo de componente é baseado na tecnologia gate array (porta matriz) e é chamado de field programmable gate array (FPGA). Os primeiros exemplos de FPGA's foram a matriz 82s100 e a sequela 82s105 produzido pela Signetics nos finais de 1970. O 82s100 foi uma matriz de termos AND. O 82s105 também tinha funções flip-flop.
O FPGA usa uma rede de portas lógicas, semelhante a uma matriz gate ordinário, mas cujo a programação é feita pelo cliente e não pelo fabricante. O termo "campo programavel" pode ser estranho para alguns, mas "campo" é apenas um termo da engenharia utilizada para indicar o mundo de fora da fabrica, onde vivem os clientes.
FPGA's são normalmente programadas depois de terem sido soldadas a placa de circuito, de forma semelhante aos CPLD's maiores. Nos FPGA's grandes a configuração é volatil, e tem que ser recarregada no componente quando lhe é aplicada energia eléctrica ou diferentes funcionalidades são requeridas. A configuração é normalmente guardada numa configuração PROM EEPROM são programaveis embutidamente (tipicamente por JTAG).
FPGA's e CPLD's oferecem boas escolhas para tarefas particulares. Algumas vezes a decisão é mais económica do que técnica, ou pode depender da experiencia ou preferencia pessoal do engenheiro.
Outros tipos de PLDs
Atualmente há muito interesse nos sistemas reconfiguráveis. Há circuitos microprocessadores que contêm algumas funções predefinidas e outras e outras funções que podem ser alteradas pelo código que corre no processador. Projectar sistemas autoconfiguráveis exige uma aprendizagem por parte dos engenheiros de novos métodos, e provavelmente requererá o desenvolvimento de novas ferramentas de software. As PLDs vendidas actualmente contêm um microprocessador com uma função fixa, (chamada core) envolvida por lógica programavel. Estes componentes permitem ao projetista concentrar-se em novas funcionalidades do seu projeto, sem se preocupar como funciona o microprocessador.
Como a PLD guarda a configuração
Um PLD é uma combinação de dispositivos logicos e de memoria. A memoria é usada para guardar o padrão que é dado ao chip durante a programação. Muitos dos métodos para armazenar dados no circuito integrado foram adpatados para serem usados em PLDs. Isto Inclui:
- Anti-fusiveis Silicio
- SRAM
- Calulas EPROM, EEPROM
- Memória Flash
Anti-fusiveis Silicio são elementos de armazenamento na PAL o 1º tipo de PLD. Estas conecções são criadas aplicando uma tensão electrícas ao longo da area de silicio modificada,dentro do chip. São Chamados anti-fusiveis porque trabalham de forma contrária aos fusiveis normais que começam a funcionar até serem quebrados pela corrente elétríca.
SRAM ou Static RAM é um tipo de memória volátil ou seja o seu conteudo perde-se quando se desliga a energia electríca. PLDs baseadas em SRAM tem que ser promgradas cada vez que a energia é ligada isto normalmente é feito por outra parte do circuito. Uma célula EPROM é um transistor MOS (semicondutor de óxido metálico) que pode ser comutada por uma carga eléctrica permanente aplicada no seu eletrodo 'gate'. Isto é feito por um programador PAL expondo o chip a fortes doses de raios ultravioletas por um dispositivo chamado apagador EPROM. Uma menória FLASH é não-volátil, retendo a informação mesmo que a energia eléctrica seja desligada. Pode ser apagada e reprogamada sempre que quisermos.Isto torna-se útil para memória PLD. Em 2005, a memória das CPLD'S eram eléctricamente programavel e apagaveis e não volateis. Pelo fato de serem muito pequenas não justificam a configuração interna das células SRAM. Cada vez que arrancam, as células EPROM são mais caras devido ao seu invólucro cerámica com uma janela de quartzo.
Linguagens de programação
Muitos dispositivos programáveis PAL,aceitam na entrada um formato de ficheiro comum, normalmente conhecido por "ficheiro JEDEC". Para assistir na criação desde ficheiros,foram criados programas de computador, especiais, chamados compiladores lógicos, Estes são análogos aos computadores de Software. as linguaguens utilizadas como código fonte para compiladores lógicos, são chamados linguagens de descrição de hardware ou HDLs.
PALASM e ABEL são muito usados para componentes pouco complexos enquanto verilog e VHDL são linguagens populares para PLDs mais complexos.
Sendo mais limitado o ABEL é ainda usado por razões históricas, mas para novos projetos, mesmo de baixa complexidade, a VHDL é mais popular. atuyamasr