Estoy trabajando en un gran diseño FPGA, y estoy muy cerca de los límites de recursos del FPGA que estoy usando actualmente, el Xilinx LX16 en el paquete CSG225.
El diseño también está casi completo, sin embargo, por el momento ya no cabe en el FPGA. Puedo apagar las piezas para que se ajusten, sin embargo, necesito reducir el uso de recursos para completar el diseño y cumplir con los requisitos de tiempo y tamaño.
Me gustaría saber si nuestros informes tienen alguna herramienta que pueda ayudarme a identificar qué partes de mi diseño consumen más recursos. Mi diseño no está particionado, y está dividido en una docena o más de módulos VHDL.
Los informes de sincronización de Xilinx son fantásticos, pero ahora necesito saber dónde puedo obtener mi mejor inversión en términos de ahorro de espacio.
También me cuesta decir qué tipo de recursos se me están acabando o qué efectos tienen esos recursos.
Otra molestia es que a medida que el diseño se hace más grande, los componentes que solían cumplir con el tiempo comienzan a fallar porque su ubicación ya no es la ideal.
Actualmente, uso los informes de temporización estática posterior al lugar y en ruta, y uso SmartXplorer. Estoy usando estrategias de diseño para optimizar el tiempo.
Después de desactivar parte de mi diseño para que se ajuste, estos son algunos de los resultados:
utilización de registro de corte: 42% utilización de LUT de corte: 96% número de pares LUT-FF completamente utilizados: 38% ¿Significa esto que tengo poco uso de registros, pero mucho uso de puerta?
¿Existen herramientas para ayudar a los desarrolladores a optimizar el área, o al menos darles más información sobre su código?
Actualización: Después de mirar la Utilización a nivel de módulo, descubrí que tenía pequeñas cantidades de pegamento asíncrono en todo el lugar que ocupan aproximadamente el 30% del total de LUT. Los estoy usando como pegamento de dominio cruzado para autobuses de alta velocidad. Debería poder eliminarlos, ya que los relojes están estrechamente relacionados. (Entrada de 120 MHz, produce 100 MHz y 200 MHz a través de DCM)