2010-05-29 11 views
6

Para programar FPGAS, ¿es posible escribir mi propio lugar & route routines? [El punto no es que el mío sería mejor; el punto es si tengo libertad para hacerlo] o ¿el lugar & envía la salida de la etapa a archivos de bits no documentados, esencialmente me obliga a usar herramientas propietarias?FPGA Place & Route

Gracias!

Respuesta

9

Ha habido alguna discusión sobre esto en comp.arch.fpga en el pasado. En general, se llega a la conclusión de que, a menos que desee atraer acciones legales intensas de las empresas de FPGA, probablemente no desee hacer algo como esto. Los formatos de archivos de bits son secretos celosamente guardados de las empresas de FPGA y es probable que tenga que entender el formato de archivo para hacer lo que quiere hacer. Eso implica que necesitaría realizar una ingeniería inversa del formato y eso (si hiciera pública su herramienta de cualquier forma) le generaría una demanda en poco tiempo.

Agregaré que probablemente haya archivos intermedios y que probablemente no leería o escribiría el bitfile mismo para hacer lo que quisiera hacer, pero esos archivos intermedios también suelen estar indocumentados. Lea el EULA para su herramienta de síntesis FPGA (ISE de Xilinx, por ejemplo): cualquier tipo de ingeniería inversa está estrictamente prohibida. Parece que la única forma en que alguna vez tendremos alternativas de código abierto en este espacio es que surja una arquitectura de FPGA de fuente abierta.

+6

Gracias. Y una arquitectura de FPGA de código abierto es MALO necesaria por muchas razones. La situación actual es casi como si solo aplicar iOS fuera el único sistema operativo del mundo. –

+0

Ya se están realizando intentos para arquitecturas FPGA de código abierto. Como ejemplo, tenemos "ZUMA: una arquitectura abierta de superposición FPGA" http://www1.cse.wustl.edu/~roger/565M.f12/4699a093.pdf parece como un comienzo interesante En realidad, esto podría ser aún más interesante http://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-43.pdf –

3

Estoy de acuerdo con annccodeal, pero para amplificar un poco, en Xilinx, puede haber algunas formas de hacerlo. El formato de archivo XDL permite (o se usa para permitir) la ubicación explícita y el enrutamiento. Además, debería ser posible crear una secuencia de comandos del editor de FPGA para implementar el enrutamiento personalizado.

En cuanto a la ubicación, hay una infraestructura abundante para restringir el mapeo tecnológico de la lógica a primitivas y para controlar la ubicación de esas primitivas. Por ejemplo, las restricciones de LUT_MAP pueden controlar la asignación de tecnología y las restricciones de LOC y RLOC pueden determinar la ubicación. En la práctica, estos permiten al diseñador experimentado un gran control sobre cómo se implementa un diseño sin requerir que dupliquen siglos de desarrollo de software para generar un flujo de bits directamente.

También puede encontrar interesante el software de investigación CAD de FPGA de última generación, como VPR. En mi opinión, se enfrentan al desafío de mantenerse al día con las herramientas propias del proveedor que deben hacer frente a los modernos FPGA heterogéneos con bloques divisibles de 6-LUT, DSP, etc.

Happy hacking.

Cuestiones relacionadas