Os FPGAs não têm "portas" em si. Eles normalmente têm tabelas de consulta (LUTs). Normalmente, as LUTs são implementadas usando SRAMs. Por exemplo, os FPGAs Spartan 3 usam SRAMs de 16 bits; isto é, quatro entradas de endereço produzem um sinal de saída. A "programação" é feita carregando a SRAM com um padrão de bits que representa a tabela verdade, de modo que, por exemplo, para XOR com 2 entradas, você possui o endereço 00 = saída 0, endereço 01 = saída 1, endereço 10 = saída 1, endereço 11 = saída 0.
Isso tudo significa que os FPGAs realmente têm muitos, muitos portais extras e desnecessários para executar a mesma função lógica. Se você precisa de FPGAs para reprogramação e prototipagem rápida, isso é ótimo! De fato, algumas pessoas implementam o design primeiro no FPGA, o depuram e depois passam para um ASIC, que será menor, mais rápido e consumirá menos energia, enquanto faz o mesmo que o FPGA.
Microprocessadores modernos também são canalizados. Por exemplo, em um programa FPGA simples, um cálculo muito grande envolvendo várias adições e talvez algumas multiplicações e uma comparação podem ser realizadas no mesmo ciclo de clock. Fazer todo esse trabalho em um ciclo de relógio significa que o ciclo do relógio deve ser longo. Em uma implementação em pipeline (que é possível implementar em FPGAs e geralmente é usada para obter o fechamento do tempo), o grande cálculo é dividido em partes, e cada parte é executada em um ciclo de relógio muito mais curto. Ainda leva aproximadamente a mesma quantidade de tempo para fazer o cálculo, mas a vantagem é que, depois que a primeira peça é calculada e o primeiro dado parcial foi movido para a segunda peça, a primeira peça pode começar imediatamente a processar o segundo dado. O primeiro cálculo ainda levará muitos ciclos para ser concluído,
Então, em poucas palavras, os FPGAs têm lógica genérica enquanto a CPU tem lógica específica. O FPGA possui roteamento genérico, enquanto a CPU possui roteamento específico. O FPGA pode ser canalizado, mas a CPU é definitivamente canalizada.