Quais são as diferenças e semelhanças entre fpga, asic e microcontroladores gerais?

e

preencheram a maioria dos pontos.

Eu acrescentaria mais um item ... segurança.

O FPGA é programado na inicialização / inicialização com o código necessário para operar. Alguns dispositivos mantêm isso em chips externos ao FPGA. Este é um possível ponto de vazamento para o código operacional. Para aliviar esse vazamento, alguns fabricantes oferecem criptografia da decodificação de memória, com a chave privada inserida no FPGA, mas não acessível de outra maneira.

Matriz de portas programável em campo - Wikipedia

O ASIC é bastante seguro contra a maioria dos ataques, já que o design é inserido no chip.

Os microcontroladores também possuem memória de programa no chip e são considerados razoavelmente seguros contra a maioria dos ataques. No entanto, queimar os fusíveis de trava não é uma proteção absoluta.

O artigo a seguir discute o potencial de exfiltração de código sob várias condições e níveis de determinação.

Quebrando a proteção contra cópia em microcontroladores

Atenciosamente, Tony Barry

Um ASIC, um IC ou chip específico de aplicativo é direcionado para um caso de uso (ou casos de uso). Isso significa que é uma funcionalidade projetada especificamente que pode ser vendida em grande volume. Um ASIC consiste em funcionalidade analógica e / ou digital conectada aos blocos do chip. Essas almofadas são conectadas através de fios de ligação aos pinos visíveis fora de um chip. Exemplos são drivers de motor de passo na indústria automotiva, modems xDSL em eletrônicos de consumo, VPUs para processamento de visão e aprendizado profundo. Um ASIC é um design fixo (daí o objetivo certo pela primeira vez por razões de custo). O roteamento da lógica é final, mas na maioria das vezes, pequenos bugs podem ser corrigidos com portas sobressalentes (boa tática para prever isso) e um novo conjunto de máscaras parcial (reconectando).

Um FPGA é um ASIC. Um FPGA pode ser reconfigurado. Muitos designs digitais diferentes podem ser colocados no mesmo chip baixando um novo fluxo de bits FPGA. Um FPGA possui células e interconexão que são determinadas por esse fluxo de bits. O fluxo de bits faz as conexões necessárias dentro para implementar seu design. Como o FPGA é configurável construído sobre um ASIC, eles são menos ideais em portas por mm2, potência e velocidade do que ter o mesmo design no ASIC. Mas para desenvolvimento, prototipagem (para ASIC) e produtos de baixo volume, o FPGA é uma solução mais barata que um ASIC. Um ASIC é rentável apenas em alto volume, especialmente na tecnologia mais recente.

Um microcontrolador geral é um controlador que pega instruções programadas e as executa. Eles variam de muito simples a muito complexo. O principal é que você escreve um programa e o controlador o executa. Todo controlador possui um conjunto de instruções que permite usar os recursos do controlador. Aritmética, por exemplo, adicione e subtraia. Um design de microcontrolador descrito em HDL (linguagem de descrição de hardware) pode ser direcionado para um FPGA, você pode configurar o FPGA e usar o FPGA com o design do microcontrolador. Você também pode colocar mais processamento de dados ao lado do microcontrolador no FPGA. O microcontrolador também pode ser direcionado para um ASIC. Vários microcontroladores, PIC vem à mente, são apenas um microcontrolador em um chip, pronto para ser colocado em um PCB, por exemplo. Os microcontroladores são muito usados ​​no sistema em projetos de chips (FPGA e / ou ASIC) porque o programa executado no microcontrolador pode ser alterado. Para o ASIC, geralmente o programa para um controlador reside em uma EEPROM fora do ASIC, mas também existem ASICs com, por exemplo, memória flash na matriz.

No nível mais alto, matrizes de portas programáveis ​​em campo (

FPGA

s) são chips de silício reprogramáveis. Usando blocos lógicos pré-criados e recursos de roteamento programáveis, você pode configurar esses chips para implementar a funcionalidade de hardware personalizada sem precisar pegar uma tábua de pão ou ferro de soldar. Você desenvolve tarefas de computação digital em software e as compila em um arquivo de configuração ou fluxo de bits que contém informações sobre como os componentes devem ser conectados. Além disso, os FPGAs são completamente reconfiguráveis ​​e assumem instantaneamente uma nova "personalidade" quando você recompila uma configuração diferente de circuitos. A adoção de chips FPGA em todos os setores é motivada pelo fato de que os FPGAs combinam as melhores partes de ASICs e sistemas baseados em processador.

Um circuito integrado específico da aplicação (

ASIC

) é um tipo de circuito integrado desenvolvido especialmente para uma aplicação ou finalidade específica. Comparado a um dispositivo lógico programável ou a um circuito integrado lógico padrão, um ASIC pode melhorar a velocidade porque foi projetado especificamente para fazer uma coisa e faz essa coisa bem. Também pode ser menor e usar menos eletricidade. A desvantagem desse circuito é que pode ser mais caro projetar e fabricar, principalmente se forem necessárias apenas algumas unidades. Um ASIC pode ser encontrado em praticamente qualquer dispositivo eletrônico e seus usos podem variar de renderização personalizada de imagens a conversão de som. Como os ASICs são todos feitos sob medida e, portanto, disponíveis apenas para a empresa que os projetou, eles são considerados como tecnologia proprietária.

O consumo de energia no FPGA é maior. Você não tem controle sobre a otimização de energia. É aqui que a ASIC vence a corrida!

Você precisa usar os recursos disponíveis no FPGA. Assim, o FPGA limita o tamanho do design.

No ASIC, você pode implementar circuitos analógicos, projetos de sinais mistos. Isso geralmente não é possível no FPGA.

FPGAs são bons para produção em baixa quantidade. À medida que a quantidade aumenta, o custo por produto aumenta em comparação com a implementação do ASIC

UMA

microcontrolador

é um sistema independente com periféricos, memória e um processador que pode ser usado como um sistema embutido. A maioria dos microcontroladores programáveis ​​usados ​​hoje são incorporados a outros produtos ou máquinas de consumo, incluindo telefones, periféricos, celulares e aparelhos domésticos para sistemas de computadores. Por esse motivo, outro nome para um microcontrolador é "controlador incorporado". Alguns sistemas embarcados são mais sofisticados, enquanto outros têm requisitos mínimos de memória e duração de programação e baixa complexidade de software. Os dispositivos de entrada e saída incluem solenoides, monitores LCD, relés, interruptores e sensores para dados como umidade, temperatura ou nível de luz, entre outros. Os microcontroladores são classificados por vários parâmetros, incluindo bits, tamanho do flash, tamanho da RAM, número de linhas de entrada / saída, tipo de embalagem, tensão e velocidade de alimentação.

Links de referência:

  • Matriz de portas programável em campo - Wikipedia
  • Circuito integrado específico da aplicação - Wikipedia
  • Microcontrolador - Wikipedia

Um circuito integrado específico da aplicação (

ASIC

) é apenas um personalizado

circuito integrado

. Ele pode ser construído para ser um FPGA, microprocessador, fonte de alimentação ou qualquer combinação de outras coisas. As empresas geralmente as produzem, em vez de usar uma combinação de componentes prontos para uso, pois atendem melhor a sua aplicação específica, mais barata ou menor. Eles geralmente são caros para preparar (para projetar como serão produzidos em massa), mas mais baratos por unidade, por isso são bons quando uma empresa pretende fazer um milhão de algo ou fazer algo que nenhum outro chip pode Faz.

Um FPGA é um chip que possui uma enorme pilha de portas lógicas que podem ser conectadas programaticamente para fazer algo útil. Um chip de memória externo alimenta o FPGA para "configurá-lo". Os FPGAs usam uma variedade de linguagens lógicas funcionais, como Verilog e VHDL. Você pode até programar um FPGA para ser um microprocessador, chamado de

softcore

. Depois de remover a energia, volte a ser apenas uma coleção inútil de portas lógicas.

Os FPGAs não podem fazer tanto quanto um ASIC, pois operam apenas na lógica e não, por exemplo, na regulação de energia. Mas eles podem ser atualizados e ajustados sem precisar pagar sempre por um novo design de chip. Os softcores são frequentemente usados ​​porque podem ser “ajustados” para fornecer uma função de hardware / software especializada e mais poderosa, como criptografia, gráficos poderosos ou processamento de sinal digital.

Os FPGAs também são úteis para “prototipar” uma ideia antes de passar o design para um ASIC.

Microcontroladores são apenas processadores com a maioria ou todos os circuitos de suporte incorporados. Eles geralmente têm RAM interna, memória reprogramável como

INSTANTÂNEO

,

FRAM ou MRAM

, um oscilador para o relógio, interfaces de comunicação,

EEPROM

,

GPIO

, temporizadores, sensor de temperatura e, às vezes, comparadores,

conversores analógico-digital

,

PWM

lógica, reguladores de tensão, cronômetros de vigilância, rádios bluetooth e muitos, muitos mais. Alguns desses recursos podem ser implementados em um FPGA, alguns deles são fornecidos no hardware do FPGA, e alguns deles não podem ser encontrados em um FPGA.