Bem, sozinho a partir do texto:
- um ASIC é um IC específico da aplicação (circuito integrado)
- um FPGA é um array de gate programável em campo
o que significa que ASICs executam operações codificadas (elas nunca poderão ser usadas para quaisquer outras operações para as quais não foram projetadas), enquanto FPGAs são reprogramáveis "no campo", ou seja, pelo usuário. Então, uma implicação é que você poderia projetar seu algoritmo em um FPGA (porque é basicamente um quadro branco lógico) e ajustá-lo até que ele faça exatamente o que você quer, então você pode fazer um ASIC que implemente a mesma lógica, e nunca qualquer outra. Você pode usar o mesmo FPGA para implementar outros algoritmos quantas vezes quiser.