Qual é a diferença entre um CPLD e um FPGA?
Qual é a diferença entre um CPLD e um FPGA?
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.
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.