Estoy buscando determinar la plausibilidad de la ingeniería inversa de un diseño de un FPGA. Supongamos que una empresa fabrica su diseño revolucionario en FPGAs y he logrado adquirir uno. Mi objetivo es eliminar la configuración del chip y reconstruir el Netlist, preferiblemente en EDIF. Sé que la seguridad del diseño de FPGA es una preocupación importante, por lo que me hace creer que el diseño se eliminó con éxito de un FPGA en el pasado ... Supongo que no hay una forma "estándar" de lograr esto, pero ¿hay alguna forma conocida / documentada que no haya encontrado todavía?
Lo que sé hasta ahora es que hay tres tipos principales de FPGA: SRAM, Flash y anti-fusible .
- Los chips Anti-fusible tienen su diseño grabado permanentemente con alto voltaje; la complejidad de la reingeniería del diseño parece demasiado grande, por lo que solo nos olvidaremos de ellos por ahora.
- Los chips Flash tienen el diseño almacenado de forma no volátil dentro del FPGA. Aunque se considera 'en vivo durante el encendido', el diseño se carga desde la memoria flash interna al FPGA. Si se puede acceder a este flash, parece que podemos eliminar los datos de configuración y construir la lista de redes desde allí.
- Los chips SRAM almacenan el diseño en alguna memoria externa (como una EEPROM o alguna RAM). Parece que esta memoria generalmente está configurada con una interfaz JTAG que me dice que no debería ser demasiado difícil eliminar la configuración.
Soy consciente de que en estos días la mayoría de los FPGA tienen sus datos de configuración cifrados en el dispositivo. Este es un problema aparte y, por el momento, ignorémoslo.
Una vez que se adquiere la configuración de texto plano, parece haber un problema de formato. Parece que la mayoría de las herramientas CAD tienen sus propios formatos de flujo de bits. Hasta ahora me he topado
- SVF - Formato vectorial serie
- XSVF - Formato de vector serial mejorado
- STAPL - Altera
- JAM
- JIC - Configuración indirecta de JTAG
- SOF - Archivo de objetos SRAM
- POF - Archivo de objeto de programa
- RBF - Archivo binario sin formato
- TTF - Archivo de texto tabular
- BIN
- BIT - Xilinx
- PDB - Actel
El objetivo es terminar con una lista de redes en formato EDIF. He escuchado que hay traductores en la mayoría de las herramientas comunes, pero no puedo encontrar cuál, si alguno de los formatos anteriores es lo que se usa para convertir a EDIF. . ¿Son estos archivos de configuración las herramientas de CAD que se utilizan para representar una lista de redes o primero deben convertirse en otra cosa? Si es así, ¿cada una de las herramientas respectivas proporciona medios para hacerlo?