Dispositivo Lógico Programável(PLD) Para reduzir o número de CI's(Circuitos Integrados) a serem usados num projeto digital, é necessário colocar mais funções em um mesmo chip. Isso tem sido feito com evolução das tecnologias de integração LSI e VLSI e ULSI (10.000 ou a 100.000 portas lógicas por CI) para funções padronizadas como memórias, microprocessadores, e assim por diante. Esses dispositivos contêm centenas e milhares de portas lógicas conectadas para operar de um modo determinado. O desenvolvimento recente dos Dispositivos Lógicos Programáveis ofereceu aos projetistas uma alternativa para substituição de um número grande de CI's padronizados por um único CI. A figura 1 mostra a evolução dos sistemas de hardware digital. Figura 1 Evolução do sistema de Hardware Digital Dispositivo lógico programável ou PLD, do inglês Programmable Logic Device, são circuitos integrados cujas conexões internas podem ser alteradas mediante programação pelo usuário de modo a realizar diferentes projetos de circuitos lógicos. Não apresentam uma função lógica definida, até que sejam configurados. Possuem um grande número de portas lógicas (AND, OR, NOT), flip-flops e registradores os quais estão ligados em um mesmo CI. E seu uso facilita prováveis mudanças de projeto. O fluxo de projeto é mostrado na Figura 2. 1 Profa. Luiza Maria Romeiro Codá
Figura 2 Fluxo de projeto de um dispositivo lógico programável (Figura Modificada de http://www.inf.ufrgs.br/~fglima/td/td16.pdf) A arquitetura de um dispositivo lógico programável consiste em uma matriz de células lógicas que podem ser interconectadas através de programação (software) para implementar diferentes projetos. Hoje em dia os PLDs são divididos em duas categorias SPLDs e HCPLDs, como mostra a figura 3. 2 Profa. Luiza Maria Romeiro Codá
Figura 3 Tipos de Dispositivos Lógicos Programáveis (PLD) Dispositivos lógicos Programáveis Simples (SPLDs) ou Arranjos Lógicos Programáveis: Consistem em circuitos que possuem uma estrutura interna baseada em um conjunto de portas AND-OR (o conjunto de portas AND e OR são chamados de arranjos). Sua estrutura é baseada em EPROM (ROM Programável); Dispositivos Lógicos Programáveis de Alta Complexidade (HCPLDs) ou Arranjos de Portas Programáveis: São reconfiguráveis ou reprogramáveis pelo usuário diversas vezes quanto necessária São dispositivos lógico-programáveis que possuem mais de 600 portas. Quanto maior o número de portas do PLD, maior será sua complexidade, principalmente no que se refere a estruturas de conexão. são divididos em : CPLD (Complex Programable Logic Devices) e FPGA (Field Programable Gate Array). 3 Profa. Luiza Maria Romeiro Codá
A diferença básica entre CPLD e FPGA reside no método de interligação das células. O Os CPLDs são não voláteis, ou seja, ao retirar a alimentação do CI este não perde o conteúdo armazenado. Já os FPGAs geralmente são baseados em SRAMs, ou seja, são voláteis, ao retirar a alimentação do CI o conteúdo é perdido sendo necessário ser acrescentada uma memória flash ao circuito implementado para armazenar as informações sobre o hardware que irá ser configurado no dispositivo FPGA. Atualmente os FPGA s oferecem capacidades lógicas de trabalho elevadas e são os responsáveis pela maior parte das mudanças ocorridas na maneira como os circuitos digitais são desenvolvidos. Evolução dos PLDs O dispositivo programável mais simples e que foi o primeiro chip a ser programado pelo usuário é o PROM (Programmable Ready Only Memory). Ele é constituído por um arranjo de portas AND e portas OR. O arranjo AND é fixo enquanto o arranjo de portas OR é programável(figura 4). Uma das principais aplicações desse primeiro tipo de PLD foi para implementar circuitos lógicos combinacionais. Figura 4 Representação do circuito interno de um dispositivo PROM Introduzido no mercado pela Philips na década de 70, o PLA (Programmable Logic Array) foi o primeiro dispositivo desenvolvido para implementar funções lógicas definidas. Um PLA é constituído por arranjos AND e OR, onde ambos são programáveis(figura 5). Por esse motivo o PLA é adequado para a implementação de funções na forma de soma de produtos, sendo muito versátil, pois tanto os arranjos AND como os OR podiam ter muitas entradas. Mas, como um 4 Profa. Luiza Maria Romeiro Codá
projeto nunca se utiliza todas as opções de soma de produtos, o PLA se tornou um dispositivo caro por fornecer essas opções sem que fossem todas utilizadas. Figura 5 Representação do circuito interno de um PLA PAL Matriz Lógica Programável (Programmable Array Logic:)) este dispositivo consiste em um arranjo AND programável, assim como um arranjo OR fixa (figura 6). Embora o PLA seja mais flexível do que a PAL, ela não foi bem aceita pelos projetistas. Em 1978 foi introduzido o dispositivo de lógica programável chamado PAL (Programmable Array Logic), o qual é constituído também por arranjos AND e OR, sendo que o arranjo AND é programável e o arranjo OR é fixo. Esta disposição barateou a fabricação dos dispositivos de lógica programável, pois apesar do PLA ser mais flexível do que a PAL, por possuir ambas matrizes AND e OR programáveis, não foi bem aceita pelos projetistas por causa de seu custo. Contudo para compensar a impossibilidade de programar os arranjos OR, as PALs foram fabricados com diferentes números de entradas e saídas, bem como vários tamanhos de portas OR. 5 Profa. Luiza Maria Romeiro Codá
Figura 6 Representação do circuito interno de um PAL PAL Sequencial ou GAL( Arranjo lógico genérico): são estruturas como a PAL, mas possuem macrocélulas de saídas as quais podem ser configuradas como lógica combinacional ou sequencial (registradores), como mostrada na Figura 7. Figura 7 representação do circuito de um PAL seuqncial Hoje, tanto os PLA s e PAL s, bem como outros dispositivos que surgiram a partir dessas estruturas e que possuem nomenclaturas diferentes, são classificados como SPLD s (Simple PLD s), cujas características principais são o baixo custo e o alto desempenho. CPLD s (Dispositivos lógicos Progrmáveis Complexos ou do inglês Complex PLD's) hoje visto como um tipo de Dispositivo Programável de Alta Complexidade (HCPLD), são dispositivos que utilizam em sua estrutura vários PLD s (PLA ou PAL). Cada PLA ou PAL formam células que são interligadas através de conexões programáveis, como mostra a Figura 8. Os diversos PLDs no CPLD podem serprogramados para lógica combinacional, lógica sequencial, ou ambos. 6 Profa. Luiza Maria Romeiro Codá
Figura 8 Representação das células programáveis de um CPLD. Outro dispositivo definido como um HCPLD é o FPGA- Field Programmable Gate Array, Figura 9, o qual é um dispositivo lógico programável que pode ser configurados via software para implementar circuitos digitais. Sua arquitetura. Sua arquitetura consiste em uma matriz com 3 tipos de elementos programáveis: CLB (Blocos Lógicos Configuráveis); IOB (Blocos de Entrada/Saída); Chaves de interconexão dos CLBs com os IOBs CLB (blocos lógicos configuráveis): são vários circuitos idênticos compostos por alguns Flip-flops e lógica combinacional extra, formando um arranjo bidimensional; sua função é gerar a lógica sequencial do circuito a ser implementado. IOB (Blocos de Entrada/Saída): São constituídos de buffers bidirecionais com saída em alta impedância; sua função é o interfaceamento das saídas dos CLBs com o exterior do FPGA, funcionar com pinos de entrada ou saída; Chaves de interconexão : são organizadas como canais de roteamento(interligação) horizontal e vertical entre linhas e colunas dos CLBs e IOBs 7 Profa. Luiza Maria Romeiro Codá
Blocos Lógicos Configuráveis Linhas de Roteamento Blocos de Entrada e Saída Matriz de Roteamento Figura 9 representação de um FPGA A típica estrutura interna de um bloco lógico configurável de um FPGA, Figura 10,, consiste em flip-flops, um determinado número de multiplexadores e uma estrutura de função combinatória para implementar as funções lógicas. Figura 10 estrutura interna de um bloco lógico configurável de um FPGA. 8 Profa. Luiza Maria Romeiro Codá
O FPGA Difere dos CPLDs pois não utiliza na sua estrutura PAL, GAL ou PLA. No seu lugar, possui módulos lógicos muito menores com uma interconexão programável local usada para conectálos dentro do CLB. O módulo lógico no FPGA pode ser configurado para lógica combinacional, lógica sequencial, ou ambos e utiliza o SRAM como look-up table(entradas lógicas = linhas de endereço; Saídas lógicas = Dados). Como os FPGAs utilizam tecnologia volátil SRAMdecem utilizar uma memória de configuração não-volátil incorporada no chip para armazenar os dados do programa e reconfigurar o dispositivo sempre que a alimentação é ligada. 9 Profa. Luiza Maria Romeiro Codá