У моей FPGA нет ресурсов маршрутизации?

9

У меня есть дизайн контроллера 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 в других проектах, но я никогда не сталкивался с таким поведением.

Редактировать:

Вот тепловая карта всех отрицательных значений провисания для среза (выделена красным) введите описание изображения здесь

Paebbels
источник
3
В Altera Quartus есть то, что называется областями LogicLock, которые позволяют вам ограничить раздел или часть логики определенной областью. Я предполагаю, что будет что-то подобное для Xilinx (хотя не уверен, как это будет называться). Если вы можете сделать это, вы должны ограничить ILA регионом, удаленным от вашей логики (чтобы он не вытеснял важные вещи), и добавить дополнительную конвейерную обработку (без ограничений для региона), чтобы помочь с синхронизацией.
Том Карпентер
2
Это также может быть случай ложных путей между синхронизирующим доменом ILA и любыми другими синхронизирующими доменами, вызывающими ложные пути, которые приводят к дополнительным усилиям установщика (приводя к тому, что реальные пути обрабатываются с меньшим приоритетом и, таким образом, к ошибкам синхронизации)
Том Карпентер
2
У меня были похожие проблемы с SignalTap (опять-таки Altera-эквивалент ILA), с ошибочными путями, вызванными, потому что чувствительные пути раздвигались логикой касаний, желая быть ближе к перехватываемым сигналам. Это происходило главным образом там, где была высокая плотность BRAM, потому что BRAM SignalTap вытесняли другие BRAM дальше друг от друга. Как только SignalTap был ограничен регионом, который был менее критически заполнен, проблемы исчезли.
Том Карпентер
@TomCarpenter Ограничения размещения называются PBlock :). Насколько я могу судить, в области SoFPGA или SATAC нет ILA-клеток, они разделены через 3 этапа FF на каждом из 151 сигнала трассировки. Зондированная конструкция работает в той же тактовой области, что и ILA (150 МГц). Все пути ограничены (без ограничений, без сбоев между часами). Все упомянутые ошибочные пути находятся в одном и том же часовом домене, либо в SATAC, либо в самом ILA. Я нашел отчет о перегрузке маршрутизации, который говорит, что около 54% ​​использования (Hor. И Vert.). Пожалуйста, посмотрите мой нег. слабая тепловая карта добавлена ​​к моему вопросу.
Пеббельс
1
Я обнаружил 2 проблемы: сначала Artix-7 на 15–50% медленнее, чем Kintex-7. Если я изменю класс скорости по умолчанию с -2 на -3, то все будет в порядке (запас прочности составляет 200 пс по сравнению с 670 пс без замедления. Таким образом, показатель скорости -3 улучшает путь в 6 600 нс почти на 0,970 нс! кажется, что чистое вложение сигналов трассировки вызывает более сильное разветвление, что вызывает проблемы синхронизации.Кроме того, маршруты трассировки проходят через тактовую область 100 МГц для 8-битного ЦП, что, в свою очередь, вызывает (один из 5 циклов) проблемы в этом часовом домене. Столь длинные линии / сквозные маршруты вызывают проблемы на других линиях
Paebbels

Ответы:

1

Вы можете получить подробный отчет, выполнив анализ дизайна в Xilinx Vivado. Выполните следующую команду в консоли tcl: «report_design_analysis». Она дает вам отчет о сроках, сложности и загруженности реализованного проекта. Вы также можете запустить этот отчет, перейдя в Инструменты-> Отчет-> Отчет Design_analysis.

В этом отчете вы можете увидеть, какие области вызывают заторы из-за размещения. Какие ломтики полностью используются или что такое аренда таких ломтиков и / или маршрутов.

Я надеюсь, что это помогло.

С уважением, KWQ

KashifWajid
источник
Спасибо за этот (мне неизвестный) отчет. Чем он отличается от моего последнего изображения (временная тепловая карта)?
Пеббельс