Tengo un diseño de controlador Serial-ATA que funciona en casi cualquier tipo de dispositivos de la serie Xilinx 7, excepto el dispositivo Artix-7, que me da dolores de cabeza ...
El diseño puro (SATA 6.0Gb / s, reloj de diseño de 150 MHz) se puede implementar en mi Artix-7 200T. Si agrego núcleos ILA (anteriormente conocido como ChipScope), no se cumple el tiempo.
¿Qué hice para relajar la situación? - Agregué 2 etapas de canalización en cada núcleo ILA - Agregué 1 etapa de canalización entre el transceptor GTP y la lógica - Usé el reajuste, la reasignación y la colocación amplia como estrategia de implementación alternativa
Estas imágenes muestran el flujo de diseño normal. Los núcleos ILA están muy lejos del SATAController (SATAC) y la CPU de 8 bits ( SoFPGA ), pero el controlador todavía tiene rutas defectuosas (esa es la única región con rutas defectuosas).
Parece que el Artix-7 no tiene recursos de enrutamiento en algunas áreas. ¿Cómo puedo obtener un informe que indique tal sospecha?
También probé estrategias de reajuste, reasignación y colocación más amplia. El resultado es este:
La falla de tiempo es casi la misma ...
PD El diseño usa solo 178 de> 300 BlockRAMs. Usé Xilinx ISE para usar casi todos los BlockRAM en otros diseños, pero nunca encontré tal comportamiento.
Editar:
Aquí hay un mapa de calor de todos los valores de holgura negativos por sector (coloreado en rojo)
Respuestas:
Puede obtener un informe detallado haciendo un análisis de diseño en Xilinx Vivado. Ejecute el siguiente comando en la consola tcl: "report_design_analysis" Le proporciona el informe de tiempo, complejidad y congestión del diseño implementado. También puede ejecutar este informe yendo a Herramientas-> Informe-> Informe Diseño_análisis.
En este informe, puede ver qué áreas están causando congestión debido a la colocación. Qué rebanadas se utilizan por completo o cuál es el alquiler de dichas rebanadas y / o rutas.
Espero que esto haya sido de ayuda.
Saludos, KWQ
fuente