Концептуально-практический волрос: сейчас все IP-cores для потоковой обработки данных (DSP FIR, FFT и прочее) реализуются с использованием шины AXI-stream - по крайней мере, в Xilinx Vivado DSP ядер с классической шиной "данные-и-стробы" уже нет.
(То, что другие типы ядер используют вообще "полноформатную" AXI4 - это отдельная проблема).
Собственно, вопросы:
- разве использование специфической шины не ведёт к дополнительным накладным расходам ресурсов ПЛИС?
- что делать, если надо реализовать какую-то bitwise-magic - вытащить статусный бит, инвертировать, "обрезать" разрядность и т.д.? Ранее всё это делалось достаточно нативно, поскольку линии данных доступны непосредственно. Получается, что на каждый "чих" теперь нужно реализовывать своё ядро с интерфейсами AXI и добавлять в интегратор (для Vivado)?
- собственно, как правильно реализовать поддержку AXI-stream? Толковых мануалов и примеров найти пока не удалось.
Аналогичные вопросы и по AXI (не stream). С готовыми ядрами всё красиво - собирается, настраивается, даже как-то "подтягиваются" драйвера в devicetree (хотя уже не всегда и не для всего). А вот как что-то своё, написанное на том же Verilog и нормально работающее в ISE, сделать совместимым с нетривиальной шиной - проблема...
|