CPLD, características e especificações desta lógica programável

CPLD, características e especificações

FPGAs se tornaram famosos nos últimos anos, pois têm uma infinidade de aplicações diferentes e são a lógica programável por excelência. Mas eles têm uma contrapartida nos CPLDs, que são muito melhores para certas tarefas e, ao mesmo tempo, muito mais baratos. O que são CPLDs e como eles são diferentes dos FPGAs?

Para entender o que são CPLDs, devemos primeiro entender a evolução que o hardware teve e, especificamente, sua integração ao longo do tempo. Devemos entender integração como a união progressiva de vários dispositivos em um, aproveitando o crescimento do número de dispositivos ou transistores por área.

Integração de circuitos ao longo do tempo

Fichas TTL

Os primeiros computadores eram enormes; na verdade, ocupavam mais de uma sala em muitos casos. O motivo disso? As arquiteturas foram construídas com vários chips chamados TTL ou 7400 chips em homenagem à série Texas Instruments, que foi a mais amplamente utilizada. Em que consistem? Bem, em elementos básicos para a construção de circuitos, que podem variar de simples portas lógicas a sistemas sequenciais como um contador binário. Os projetos foram feitos conectando vários desses elementos para obter uma arquitetura específica.

Mas o avanço do que chamamos de Lei de Moore trouxe consigo maiores densidades de transistor e a capacidade de integrar circuitos inteiros de vários chips TTL em um único chip. No final dos anos 1960, as pessoas começaram a falar sobre integração em grande escala, LSI, que consistia em ser capaz de integrar projetos de 1000 a 10,000 transistores em um único chip. Este nível de escala permitiu o que antes era um CPU composto de vários chips diferentes a serem unificados em um. Daí surgiram as primeiras CPUs para computadores domésticos, como o Intel 8080 e seu Zilog clone o Z80, o MOS 6502 e o Motorola 6800.

Mas, como os “minicomputadores”, grandes como uma geladeira ou até mesmo um armário, as CPUs mais novas exigiam o uso de circuitos adicionais para acelerar certas tarefas. Os primeiros modelos começaram a usar chips TTL para determinadas funções, mas com o tempo a integração de todo o circuito em um único chip também foi adotada, como acontecia com as CPUs. Isso levou à criação da lógica programável, com a qual as empresas aceleraram a construção dos circuitos que acompanhavam o processador.

No início não havia lógica programável, mas ROMS

Tecnicamente, uma ROM serve apenas para armazenar dados que só podem ser lidos, mas os chips de função fixa podem ser criados usando ROMS. Um chip de função fixa é aquele que sempre executa a mesma tarefa em dados de entrada que podem variar.

Como você implementa uma função fixa em uma ROM? Simples, como no RAM memória este tem um decodificador que seleciona um dado de saída. Na verdade, não é calcular nada, mas por exemplo, sabendo qual é o resultado de certas operações aritméticas ou certas funções, elas podem ser codificadas como saídas em uma ROM e acelerar certos cálculos.

O problema? Em uma ROM não podemos codificar o funcionamento da lógica combinacional e nem a sequencial, logo tornou-se necessário criar um tipo de lógica mais complexa para integração dos circuitos e com ela a redução de custos.

PLA e PAL, os predecessores do CPLD

PLA antecessor CPLD

A evolução para o uso de ROMS para integração de função fixa foi a criação dos Arrays Lógicos Programáveis ​​ou PLA, um dispositivo composto por uma série de portas lógicas AND que estão ligadas a uma série de portas OR e cada uma possuindo uma de eles um complementar NÃO para inverter o resultado. Com isso, você pode criar funções lógicas combinacionais que começam com o uso de uma porta AND ou NAND e terminam com uma porta OR. Os circuitos PLA têm N entradas que correspondem a portas lógicas N AND e saídas M que correspondem a portas lógicas OR.

PLA antecessor CPLD

Outro tipo de lógica programável era chamada de PAL, Programmable Array Logic, onde apesar da semelhança do nome não funcionavam da mesma forma, pois as portas OR eram fixas e não programáveis ​​e, portanto, eram menos versáteis, mas muito mais baratas.

Zx80 vs zx81.

O impacto do uso de PAL e PLA? Foi muito importante, pois permitiu a implementação de circuitos combinacionais e sequenciais em um único chip. Por exemplo, sistemas de vídeo baseados em uma grande quantidade de chips TTL foram integrados em um único processador. Dois exemplos claros do uso de chips PAL e PLA são encontrados por um lado no Sinclair ZX81 em comparação com o ZX80 e no sistema de vídeo do Apple Macintosh, onde conseguiram integrar todo o circuito de vídeo em um único chip, reduzindo custos em relação ao Apple Lisa criado pela própria Apple.

Mas PALs e PLAs logo ficaram desatualizados e novos tipos de lógica programável apareceram com o tempo. Hoje os que mais se destacam são os FPGAs, mas não são os mais usados, mas os CPLDs.

O que é um CPLD e como ele se compara a um FPGA?

CPLD FPGA comparados.

Um CPLD, cuja sigla significa Complex Programmable Logic Device, como um FPGA é um tipo de lógica programável, mas cuja operação deriva de ROMS, PLA e PAL. Portanto, sua arquitetura e operação são totalmente diferentes dos FPGAs.

Por meio das diferenças com um FPGA você entenderá o que são CPLDs e onde e como são usados.

  • FPGAs estão mais bem preparados para simular hardware que depende de tempo, ciclos de clock, enquanto um CPLD é mais projetado para circuitos combinacionais e, portanto, não depende de uma sequência de etapas por ciclo.
  • Em um CPLD, o tempo que leva para uma função sintetizada nele será sempre o mesmo, em um FPGA não. Conseqüentemente, os CPLDs são usados ​​para projetar circuitos combinacionais.
  • FPGAs são considerados produtos de ponta e, portanto, com um custo elevado. O CPLD, pelo contrário.
  • FPGAs podem funcionar em velocidades de clock muito mais altas do que um CPLD.
  • Um FPGA precisa ser reprogramado a cada vez que é ligado, pois é desprogramado ao ser desligado, um CPLD funciona como uma ROM e não perderá sua configuração ao desligar o equipamento. Isso significa que os FPGAs são baseados em RAM em sua arquitetura e os CPLDs em ROM.

Portanto, nunca veremos algo complexo como uma CPU implementada em um CPLD, pois eles não foram projetados para isso. Hoje, os CPLDs são frequentemente integrados às placas de desenvolvimento FPGA, portanto, é comum combinar os dois tipos de circuitos programáveis.

Como funciona um CPLD?

Um CPLD nada mais é do que uma versão aprimorada e, portanto, mais complexa de um dispositivo PLD. O que são dispositivos PLD? Já os dissemos antes e eles são o que era conhecido como PLA em seus dias.

Um CPLD nada mais é do que uma série de PLA como uma função de entrada, mas suas portas OR não geram uma saída, mas sua saída é distribuída por meio de uma matriz que se conecta a outra série de funções PLA, que pode dar uma saída ou alimentação de resultado de volta na direção oposta.

Em um CPLD, portanto, todas as funções lógicas possíveis são codificadas nos diferentes PLAs que são combinados para atingir a função final que se deseja obter. Em geral, no projeto de novos processadores, os CPLDs são usados ​​para simular a lógica combinacional e a função fixa, enquanto os FPGAs são usados ​​para a lógica sequencial e elementos mais complexos, como ALUs. A título de curiosidade, as instruções das unidades de decodificação de CPUs e GPUs costumam ser implementadas primeiro no CPLD, já que, no fundo, nada mais são do que circuitos combinacionais.