Я работаю над улучшением и очисткой уже функционирующего большого дизайна FPGA с 64-битной шиной данных. Один из возникших вопросов:
«Должны ли мы перевести все наши автобусы на AXI4Lite / APB, или мы должны оставить их как есть?»
Некоторые из них AXI4Lite, а некоторые APB.
Те, кто в команде AXI4Lite, утверждают, что многие сторонние IP-блоки FPGA используют шину AXI; с другой стороны, коллеги предполагают, что шина APB может использовать меньше ресурсов (FF и LUT), хотя я не смог это подтвердить.
Я на стороне выбрать один и придерживаться его .
Какие есть причины выбирать одну над другой? Существуют ли сценарии, когда одной шине может потребоваться больше ресурсов, чем другой? Есть ли веская причина для перехода на один над другим?
Ответы:
Существенная разница между
AXI-Lite
иAPB
заключается в том, что AXI реализует независимые адреса чтения и записи. Таким образом, есть немного больше управляющей сигнализации и, вероятно, увеличение ресурсов маршрутизации / буферизации на ~ 33%.я мог бы ожидаю, что ваши существующие периферийные устройства APB используют 32-битную шину данных, поэтому преобразование в AXI будет менее тривиальным, чем вы ожидаете - если у вас нет подходящих интерфейсов AXI, которые уже можно использовать повторно.
Переход на AXI должен улучшить пропускную способность, а если вы в состоянии перейти на 100%, следует упростить постоянную поддержку. Если рассматриваемые периферийные устройства имеют низкую активность или вам нужно сохранить APB в своем проекте (для отладочных компонентов или аналогичных), то попытка миграции выглядит менее вероятно, что даст хороший результат.
Стоит отметить, что процессоры Cortex-M по-прежнему используют AHB, а APB используется как для отладки, так и (гораздо реже) конфигурационных интерфейсов некоторых периферийных устройств.
источник