Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz
Conceito PLD - Programmable Logic Device; Circuito integrado com grande número de portas lógicas configuráveis, flip-flops e registradores; Permite substituir um grande número de circuitos integrados padronizados por um único componente; A programação do componente pode ser feita através da conexão entre os blocos lógicos de acordo com a necessidade do usuário.
Vantagens Menos componentes discretos; Menor consumo de energia; Menor espaço em placa; Gabinetes menores; Processos de fabricação mais rápidos e baratos; Maior confiabilidade; Menos circuitos integrados e menos conexões sujeitas a falhas; Facilidade de manutenção.
Lógica Programável
Lógica Programável Uma função lógica pode ser representada usando: Soma de produtos; Produto de somas; Teorema de de Morgan; Leis da Álgebra Booleana. Para implementá-las necessário utilizar componentes eletrônicos contendo arranjos uniformes E-OU (ou OU-E) programados para a obtenção da função desejada.
Lógica Programável Os softwares utilizados para descrever as funções lógicas permitem a descrição através de diversos modos: Diagramas esquemáticos; Tabelas verdades; Equações booleanas; Linguagem de descrição de hardware; Formas de ondas de sinais de entrada e saída; Qualquer outra opção fornecida pelo fabricante do componente.
Lógica Programável Após a definição, simulação e validação do funcionamento, haverá um hardware específico que irá programar o dispositivo; Os dispositivos possuem elementos de programação que permitem conectar, ou não, dois pontos estratégicos do circuito; Elos fusíveis; Antifusíveis; Células SRAM; Transistores EPROM e EEPROM.
Lógica Programável Alguns destes dispositivos podem ser de programação única, outros reprogramados. As denominações dos fabricantes para estes dispositivos programados pelo usuário são: PROM; PLE; PAL; PLA; EPLD; FPGA.
Princípio de Funcionamento
Princípio de Funcionamento O PLD básico é constituído de várias conexões (elos fusíveis), e que podem ser queimados; Idéia básica utilizada pelos PLDs: Arranjo de portas AND e de portas OR, cujas entradas podem ser interconectadas para produzir funções nas saídas das variáveis de entrada.
Princípio de Funcionamento Para se obter o termo O1 AB AB, deve-se queimar os fusíveis 1 e 4 da porta O1
Arquitetura Básica PROM ; Programmable Read Only Memory; Constituída de dois arranjos: AND: pré-definido em fábrica; OR: programável. Podem gerar qualquer função lógica possível das variáveis de entrada.
Arquitetura Básica PAL: Programmable Array Logic; Constituída de dois arranjos: AND: programável; OR: permanente. Todas as combinações são programéveis.
Arquitetura Básica Fusível de Polaridade: Recurso utilizado para inverter um bit de saída;
Classificação
Classificação Circuitos Integrados de Silício Circuitos Integrados Padrões CIs de Aplicações Específicas (ASICs) CIs de Função Fixa Microprocessad ores CIs Programáveis Semi-Custom Full Custom Gate Arrays Cell Based
Classificação Circuitos integrados padrões; Compostos pelos circuitos integrados de funções fixas, que correspondem aos componentes digitais básicos, pelos microprocessadores, pelos circuitos integrados reconfiguráveis, ou programáveis (PLDS).
Classificação Circuitos integrados de aplicação específica (ASIC) São subdivididos em circuitos integrados "FULL CUSTOM" e "SEMICUSTOM". Os componentes SEMICUSTOM se dividem nos arranjos de portas (Gate Arrays) e nos arranjos de células (Cell Based).
Estruturas
Estruturas Estrutura de arranjo de blocos: Gate arrays;
Estruturas Macro-células: Construídas com blocos e células compondo uma biblioteca de funções. Podem incluir áreas de memória RAM e ROM, arranjos lógicos programáveis (PLA) e grandes blocos funcionais, como microcontroladores e microprocessadores;
Estruturas Gate arrays; São arranjos regulares de blocos que possuem células periféricas para possibilitar interligações de entrada e saída. Podem ser arranjados em blocos, em filas, ou em matriz de blocos (sea-ofgates).
Estruturas Standard Cells; São compostos de uma biblioteca de células padrões arranjadas em arquitetura de filas e com canais de roteamento desenvolvido de acordo com a necessidade do usuário. Algumas vezes somente se desenvolvem camadas de metais, outras vezes há a necessidade de se desenvolver todas as camadas no componente.
Tipos
Tipos PAL; Programmable Array Logic (ou PLD); Matrizes de ANDs e ORs. Pode incluir flip-flops de entrada/saída. CPLD (Complex Programmable Logic Device); Matriz de múltiplas PALs; Conexão programável entre blocos; FPGA (Field Programmable Gate Array); Matriz de células lógicas simples; Conexão através de matriz de roteamento.
Tipos
Tipos CPLD Constituído por Logic Elements (LE) que possuem: Flip-flops: implementam registradores; Lógicas para interconexão entre Logic Elements adjacentes (Carry Chain e Cascade Chain) e LUTs (Look-Up Table). LUT é uma memória pré-programada que fornece uma saída, dado um conjunto de variáveis de entrada.
Tipos
Tipos FPGA Field Programmable Gate Array; São circuitos programáveis compostos por um conjunto de células lógicas ou blocos lógicos alocados em forma de uma matriz; A funcionalidade e o seu roteamento são configuráveis por software; A palavra field indica que a configuração do circuito pode ser feita pelo usuário final.
Tipos
Tipos Definição de Blocos Lógicos; Em algumas arquiteturas os Blocos Lógicos possuem recursos seqüenciais tais como flipflops ou registradores. A Xilinx chama seu Bloco Lógico de CLB (Configurable Logic Block); A Actel usa o termo LM (Logic Modules); A Altera utiliza o termo LE (Logic Element) para as séries 8000 e 10000 e Macrocell para as séries 5000, 7000 e 9000.
Tipos Definição de Roteamento; A interconexão entre os blocos é feita através de uma rede de duas camadas de metal; As conexões físicas entre os fios são feitas: Com transistores de passagem controlados por bits de memória; Com chaves de interconexão (switch matrix).
Tipos
Tipos Altera MAX7000S; Bloco LAB (Logic Array Block) é formado por 16 macrocélulas, onde é executada a lógica; 4 entradas especiais CLK1, CLK2, OE, CLEAR permitem às macrocélulas executar as funções programadas; Entradas e saídas das macrocélulas são interligadas por meio da rede PIA (Programmable Interconnect Array); Blocos de controle (I/O Control Blocks) interligam as entradas e saídas com as macrocélulas e PIA;
Tipos
Macrocélulas Macrocélulas; Cada macrocélula possui uma matriz de 36 entradas (Logic Array) interligadas através de uma função AND programável; 4 das funções AND são combinadas num só sinal numa matriz de seleção de termo de produto (Product Term Select Matrix); O sinal gerado pela combinação de operações lógicas AND e OR é enviado aos registradores e circuitos lógicos adicionais.
Macrocélulas Macrocélulas; Esta seção pode ser usada como um biestável tipo D, T, JK ou RS ou pode ser contornada (bypass); O projetista não tem necessidade de conhecer todo o roteamento e desenvolvimento lógico, uma vez que é tarefa do software.
Macrocélulas
Parallel Expanders
CPLD x FPGA
CPLD x FPGA Armazenamento dos dados; CPLD não perde os dados da programação sem a alimentação (com tecnologia EEPROM); FPGA é volátil - tem de ser reprogramado sempre ao religar a alimentação. Requer memória EEPROM série ou flash, acoplada à placa. Capacidade CPLD 600 até 12.000 portas (lógica combinacional, contadores e máquinas de estados); FPGA de 5.000 a 1.000.000 portas maior complexidade (contém ASIC).
CPLD x FPGA
PLDs x Microcontroladores Aplicação/Projeto Microcontrolador Lógica programável Interface analógica Sim Precisa circuito externo Execução tarefa <1µs Alto custo ou usando múltiplos µc em paralelo Sim Execução tarefa >1µs Sim Sim Execução tarefas complexas/simultâneas Sim, lenta e seqüencialmente Sim, alta velocidade e em paralelo N o pinos de E/S Até 45 Até 1.100 (34 a 190) Preço (U$D, FOB) 1 a 10 1 a 20 (típico) Programação in-circuit Depende do modelo Sim Oscilador (clock) Sim, interno e externo Precisa circuito externo Freqüência de operação KHz a 20 MHz 0 a 200 MHz
Bibliografia
Bibliografia ALTERA. Datasheet MAX 7000. Disponível em: <http://www.altera.com>. Acesso em 20 abr. 2004. EINSFELDT, Augusto. Lógica programável. São Paulo: Revista Saber Eletrônica, n. 350, mar 2002. TERROSO, Anderson Royes. Dispositivos lógicos programáveis (FPGA) e VHDL. Disponível em: <http://www.aterroso.com>. Acesso em: 20 abr. 2004. TOCCI, Ronald e WIDMER, Neal. Sistemas digitais. São Paulo: Prentice Hall, 2003. ZAPELINI, Wilson B. Dispositivos Lógicos Programáveis (PLDs). Florianópolis: CEFETSC, 2004 (apostila).