¿Por qué se utilizan más las FPGA basadas en SRAM que las FPGA basadas en NVM?

Los FPGA basados ​​en SRAM necesitan cargar el flujo de bits nuevamente después de apagarse. Mientras tanto, el basado en no volátiles no necesita eso.

Me pregunto, ¿por qué se realizan más experimentos e investigaciones de seguridad en SRAM FPGA que en NVM? Parece que la tecnología volátil se usa más independientemente de sus límites de seguridad (cuando se trata de garantizar un arranque seguro).

(PD: no tengo estadísticas, es una observación personal)

No estoy seguro de sus estadísticas, pero los FLASH FPGA son relativamente nuevos en comparación con los SRAM. Entonces esa podría ser una razón si sus datos son ciertos.
Has comparado el costo? Me imagino que los no volátiles son más caros.
@EugeneSh No tengo estadísticas, es una observación personal (lo actualicé como PD en la pregunta para no confundir a la gente)
El último proyecto que toqué usó sram porque lo reconfiguraron muchas veces para una funcionalidad diferente

Respuestas (5)

El principal impulsor es el hecho de que SRAM es altamente compatible con el mismo proceso físico que se utiliza para implementar la lógica real. De hecho, la mayoría de los FPGA en estos días se basan en LUT (tablas de búsqueda), que en realidad son solo pequeños bits de RAM.

Por otro lado, el proceso requerido para construir EEPROM (memoria no volátil) requiere pasos adicionales: crear puertas flotantes con un espesor de óxido especial, etc. Este proceso NO es directamente compatible con el proceso lógico/SRAM. Esto significa que los FPGA no volátiles son algo así como un compromiso en ambas áreas.

Además de la respuesta de Dave Tweed con respecto a los procesos de fabricación involucrados, la mayoría de los FPGA basados ​​en flash todavía usan SRAM para impulsar su estructura. El flujo de bits se carga en la SRAM desde la memoria flash como en una FPGA más convencional, la única diferencia es que la memoria flash es interna. Esta arquitectura es evidente cuando observa sus hojas de datos y notas. En particular, algunos dispositivos como Lattice MachXO2/3 admiten la reprogramación de su flash mientras el dispositivo está funcionando, lo que solo es posible porque el dispositivo en realidad se ejecuta desde SRAM en lugar de hacerlo directamente desde el flash. Entonces, un FPGA "basado en flash" necesita el flash además de la SRAM, lo que significa que necesita más área de matriz.

Con respecto a la seguridad, tiene razón al señalar que el proceso de inicio de FPGA puede ser un punto débil en términos de permitir que se capture el flujo de bits. Para ayudar a cerrar esta brecha, muchos FPGA ahora incorporan soporte para el cifrado de flujo de bits, que se basa en una clave segura almacenada en una memoria dedicada dentro del FPGA. Una imagen de flujo de bits se cifra con esta clave, se carga en la memoria de configuración y luego, cuando se inicia la FPGA, lee el flujo de bits cifrado y lo descifra a medida que lo carga en su (Algunos microcontroladores que requieren memoria externa tienen capacidades similares, y los principios son en gran medida los mismos.)

En realidad, su primer párrafo es cierto para un conjunto relativamente limitado de FPGA. Muchos FPGA basados ​​en flash se anuncian como "instantáneas" (un argumento de venta fuerte en muchas aplicaciones), lo que significa que no hay transferencia interna: las celdas flash controlan las conexiones y la lógica directamente.
Por lo que he visto, incluso los dispositivos de "encendido instantáneo" todavía tienen que cargar CRAM, simplemente sucede mucho más rápido (supongo que debido a una interfaz más amplia del flash interno) que en partes que requieren flash externo. Por ejemplo, el MAX10 es de "encendido instantáneo", pero vea la página 28 aquí: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Pero si tiene una referencia que muestra un CRAM- menos arquitectura me interesaría aprender sobre ella.
Mire Actel (ahora Microsemi): tanto sus dispositivos antifusibles como los basados ​​​​en flash son de copia cero.

Más que nada, depende de sus requisitos. Si bien el tamaño, el peso y la potencia (SWaP) son los principales impulsores de los circuitos integrados en general, si no está obligado a desarrollar un ASIC debido a esos requisitos, el rendimiento es su siguiente consideración, lo que puede llevarlo de nuevo a un ASIC de todos modos. pero es posible que pueda usar un FPGA si puede pagar las compensaciones de SWaP.

  • Los FPGA basados ​​en FLASH no requieren "tiempo" para configurarse, ya que son "instantáneas". Su diseño puede requerir esto.
  • La tecnología FLASH es de menor potencia que SRAM
  • El FPGA basado en FLASH no necesita BOOT PROM, por lo tanto, un chip frente a dos (o más).
  • Es posible que tenga un requisito para encender en el estado anterior.
  • Basado en FLASH ofrece más soluciones tolerantes a la radiación. Hay formas de lidiar con los requisitos de radiación, o SEU en general, en FPGA basados ​​en SRAM, pero Microsemi ofrece "tecnología reforzada".

Los FPGA basados ​​en FLASH (Actel, ahora Microsemi), tradicionalmente, no han tenido la densidad o el rendimiento que uno podría lograr con los FPGA basados ​​en SRAM, por lo que, si el rendimiento fuera el factor determinante, elegiría Xilinx o Altera (ahora Intel), o tal vez Lattice.

Esencialmente, lo impulsan los requisitos de su sistema y su IC específicamente. Desde el principio, aborda estos requisitos y realiza un estudio comercial de los diferentes FPGA (hoja de cálculo). SWaP y el rendimiento, seguidos por el costo recurrente, son las principales consideraciones que desea iterar con su equipo (sistemas, CCA, tal vez incluso SW) que se retroalimentan a su ingeniero jefe/gerente de proyecto. Otras inquietudes, como la confiabilidad, la capacidad de fabricación, etc., generalmente las brindan otros miembros del equipo de esas organizaciones respectivas, pero generalmente no significan mucho sin su intercambio inicial y, por lo general, no impedirán su elección.

Hay artículos en la web si busca "SRAM vs FLASH FPGA", pero es probable que aprenda más de un estudio comercial en comparación con sus requisitos utilizando las hojas de datos que cualquier otra cosa.

Para abordar el aspecto de la seguridad, la mayoría de los FPGA SRAM modernos se pueden configurar con un flujo cifrado , generalmente con estándares de cifrado modernos como AES de 256 bits. Podría decirse que es tan seguro como almacenar la configuración internamente: un adjunto dedicado que pueda extraer la clave privada de un chip destapado también podrá leer la memoria flash interna.

Los FPGA basados ​​en flash se usan normalmente cuando la implementación es bastante simple (por lo que no se necesita un FPGA SRAM grande) o cuando se requiere un inicio instantáneo.

Yo diría que los FPGA basados ​​en flash también pueden abordar los problemas de seguridad. Consulte el artículo de EEtimes sobre la mitigación de ataques mediante el análisis de potencia diferencial (DPA): eetimes.com/document.asp?doc_id=1327477
@boink Cierto, los FPGA más antiguos en particular eran bastante vulnerables ( ejemplo ), pero espero que la situación ya haya mejorado. El artículo al que se refiere parece anunciar las contramedidas de DPA.

Otro aspecto aún no mencionado: SRAM no se degrada con el uso. Flash lo hace y limitará la vida útil de su FPGA si no se usa con cuidado. Además, los chips flash dedicados pueden optimizarse mucho más para su propósito y tener un ciclo de desarrollo más rápido, por lo que es probable que se mejoren con respecto al flash integrado.