У меня есть дизайн контроллера Serial-ATA, работающий практически на любых устройствах серии Xilinx 7, за исключением устройства Artix-7, которое вызывает у меня головную боль ...
Чистая конструкция (SATA 6,0 Гбит / с, тактовая частота 150 МГц) может быть реализована на моем Artix-7 200T. Если я добавлю ядра ILA (ранее известные как ChipScope), время не будет соблюдено.
Что я сделал, чтобы смягчить ситуацию: - добавил 2 этапа конвейера в каждом ядре ILA - добавил 1 этап конвейера между приемопередатчиком GTP и логикой - использовал ретайминг, переназначение и широкое размещение в качестве альтернативной стратегии реализации
Эти изображения показывают нормальный дизайн потока. Ядра ILA находятся далеко от SATAController (SATAC) и 8-битного CPU ( SoFPGA ), но у контроллера все еще есть ошибочные пути (это единственная область с ошибочными путями).
Такое ощущение, что Artix-7 не хватает ресурсов маршрутизации в некоторых областях. Как я могу получить отчет с указанием такого подозрения?
Я также попытался использовать ретайминг, переназначение и более широкие стратегии размещения. Результат таков:
Ошибка синхронизации почти такая же ...
PS В проекте используется только 178 из> 300 BlockRAM. Я использовал Xilinx ISE, чтобы использовать почти все BlockRAM в других проектах, но я никогда не сталкивался с таким поведением.
Редактировать:
Вот тепловая карта всех отрицательных значений провисания для среза (выделена красным)