Tengo un diseño de controlador Serial-ATA que funciona en casi cualquier tipo de dispositivo de la serie 7 de Xilinx, excepto en 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 conocidos como ChipScope), no se cumple el tiempo.
¿Qué hice para relajar la situación? - Agregué 2 etapas de canalización en cada núcleo de ILA - Agregué 1 etapa de canalización entre el transceptor GTP y la lógica - Usé retiming, remap y ubicación amplia como estrategia de implementación alternativa
Estas imágenes muestran el flujo de diseño normal. Los núcleos ILA están lejos del controlador SATA (SATAC) y la CPU de 8 bits ( SoFPGA ), pero el controlador todavía tiene rutas fallidas (esa es la única región con rutas fallidas).
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é retiming, remap y estrategias de ubicación más amplias. El resultado es este:
El fallo de tiempo es casi el mismo...
PD El diseño usa solo 178 de >300 BlockRAM. 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 Slice (coloreados en rojo)
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 brinda el informe de tiempo, complejidad y congestión del diseño implementado. También puede ejecutar este informe yendo a Herramientas->Informe->Diseño de informe_análisis.
En este informe, puede ver qué áreas están causando congestión debido a la ubicación. Qué Slices se utilizan por completo o cuál es la renta de dichos Slices y/o rutas.
Espero que esto haya sido de ayuda.
Saludos, KWQ
tom carpintero
tom carpintero
tom carpintero
Paebbels
Paebbels