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)