Eu tenho um design de controlador Serial-ATA trabalhando em quase todos os tipos de dispositivos Xilinx da série 7, exceto no dispositivo Artix-7, que me causa dores de cabeça ...
O design puro (relógio de design SATA 6.0Gb / s, 150 MHz) pode ser implementado no meu Artix-7 200T. Se eu adicionar núcleos ILA (anteriormente conhecido como ChipScope), o tempo não será atingido.
O que fiz para relaxar a situação: - adicionamos 2 estágios de pipeline em cada núcleo do ILA - adicionamos 1 estágio de pipeline entre o transceptor GTP e a lógica - usaram retiming, remap e ampla colocação como estratégia de implementação alternativa
Estas imagens mostram o fluxo normal do projeto. Os núcleos ILA estão distantes do SATAController (SATAC) e da CPU de 8 bits ( SoFPGA ), mas o controlador ainda possui caminhos com falha (essa é a única região com caminhos com falha).
Parece que o Artix-7 está sem recursos de roteamento em algumas áreas. Como posso obter um relatório indicando essa suspeita?
Também tentei reformular, remapear e estratégias de posicionamento mais amplas. O resultado é este:
A falha de tempo é quase a mesma ...
PS O design usa apenas 178 de> 300 BlockRAMs. Usei o Xilinx ISE para usar quase todos os BlockRAM em outros designs, mas nunca encontrei esse comportamento.
Editar:
Aqui está um mapa de calor de todos os valores negativos de folga por fatia (colorido em vermelho)