Qual é a diferença entre um CPLD e um FPGA?
fpga
programmable-logic
Sanjeev Kumar
fonte
fonte
Respostas:
CPLDs geralmente são usados apenas para substituir uma quantidade relativamente pequena de lógica discreta. Ou seja, coisas como um monte de decodificadores de endereços e circuitos de interface de barramento. CPLDs contêm muito pouca memória; Em geral, o número de flip-flops é da mesma ordem de magnitude dos pinos de E / S (ou seja, um CPLD de 32 macrocélulas possui ~ 30 pinos e ~ 30 flip-flops). A lógica combinatória em um CPLD é implementada em uma matriz lógica programável, que geralmente não é útil em velocidades muito altas. As CPLDs também são geralmente baseadas em flash ou possuem memória flash interna, simplificando os requisitos de design da placa e melhorando a proteção contra engenharia reversa. CPLDs também não são construídos com processos lógicos "avançados".
Os FPGAs são projetados para computação de alto desempenho e interface de alta largura de banda. Internamente, eles usam uma arquitetura muito diferente das CPLDs. Os FPGAs têm muito mais estado interno (registradores e bloqueiam a RAM) do que os pinos de E / S. A lógica combinatória é implementada em tabelas de pesquisa de alta velocidade que podem executar várias centenas de MHz. Os LUTs e outros componentes estão interconectados com uma rede de roteamento de alto desempenho. Os FPGAs também contêm núcleos rígidos especializados que fornecem implementações eficientes de vários componentes. RAM de bloco e multiplicadores / fatias de DSP são muito comuns. Os FPGAs também podem conter MACs Ethernet, núcleos de processador rígido, interfaces PCI Express e outros blocos especializados. Os transceptores de vários gigabits também são um recurso comum dos FPGAs avançados que permitem a transferência de dados em até 50 Gbit / s por par de pinos. Os FPGAs geralmente não contêm memória não volátil, portanto, é necessária memória flash externa para carregar a configuração. A criptografia pode ser implementada para melhorar a segurança do projeto com uma chave suportada por bateria armazenada no FPGA.
fonte
Diferenças:
Capacidade - o CPLD geralmente possui menos capacidade de lógica. O maior CPLD pode estar em um nível semelhante ao menor FPGA no mercado convencional.
Armazenamento da imagem - o CPLD pode inicializar sozinho, enquanto a maior parte do FPGA precisa buscar o fluxo de bits de configuração do armazenamento não volátil, porque eles são baseados em SRAM. Isso afeta a segurança do sistema.
Recurso - O CPLD fornece apenas portas, ou células ditas, que podem executar todos os tipos de algoritmos lógicos. Além disso, o FPGA também incorporou muitos blocos rígidos, como BlockRAM, DSP, TEMAC, PCIe, MGT, microprocessador, etc, para criar um único chip de FPGA capaz de construir um sistema integrado de recursos completos.
fonte