Comments 17
Данная статься статья именно об этом.
А не было нюансов с синтезом структур разными компиляторами? Все-таки спектр весьма широк, от максплюса 15-летней давности, как я понимаю, и до вивады.
При этом следует помнить, что реализация регистров на чтение потребует реализации мультиплексора, который является пожирателем ресурсов ПЛИС. Рекомендуется наибольшее число регистров помещать в группу командных и по минимуму – в группу непосредственных.
Можно заменить мультиплексор последовательным выводом. Если у вас PCIe, то ± несколько десятков байт от остальных прочитанных регистров роли не сыграют.
P.S. Я правильно понял, что вся эта идея с тетрадами появилась как метод обхода ограничения на разрядность адреса? Если да, то возможно имеет смысл это как-то отразить в заголовке статьи или в первом абзаце. Иначе возникает некоторое недоумение о цели статьи как таковой.
Кроме PCI Express есть ещё ряд модулей с параллельными шинами. Теневое ОЗУ кардинально решило проблему.
С ОЗУ понятно — нет смысла держать в рассыпухе те регистры, у которых значения меняются только при явной записи. Но я про ваши «непосредственные» регистры речь веду.
Чтобы избежать ограничения на частоту, можно заменить мультиплексирование на защёлкивание в цепочку сдвиговых регистров (на FF-ах) с последующим последовательным сдвигом в выходную шину. Этот метод заодно решит вопрос разных частот для внутренностей и вывода, а также с высокой вероятностью избавит от необходимости добавлять регистры на шину (за вычетом самого сдвигового регистра, но от только один нужен, а не 2-4 как на ваших примерах).
Чтобы избежать ограничения на частоту, можно заменить мультиплексирование на защёлкивание в цепочку сдвиговых регистров (на FF-ах) с последующим последовательным сдвигом в выходную шину. Этот метод заодно решит вопрос разных частот для внутренностей и вывода, а также с высокой вероятностью избавит от необходимости добавлять регистры на шину (за вычетом самого сдвигового регистра, но от только один нужен, а не 2-4 как на ваших примерах).
Интерфейс ADM — кем то используется, кроме авторов? Что означает аббревиатура ADM?
И если это популярный интерфейс, то в чем его преимущества перед, скажем, amba axi?
И если это популярный интерфейс, то в чем его преимущества перед, скажем, amba axi?
Насколько я знаю, больше никто не использует. Хотя однажды меня спрашивали про клон нашего модуля на TigerShack. Кажется его делала фирма из Питера. Название ADM — Analog Digital Module. Преимущества перед axi есть. Во первых он появился до массового распространения axi. Во вторых он гораздо компактней, конечно это следствие того что он не является универсальным.
Кажется, я должен извиниться: модули — Вы ведь имели ввиду процессорные модули, не RTL-IP ядра? А ADM — внешний интерфейс, а не для SoC? В таком случае, сравнивать надо не с AXI (это просто не корректно), а с VME — стандартом де-факто для промышленных систем конца прошлого века.
Спасибо, было любопытно услышать про новый интерфейс.
Спасибо, было любопытно услышать про новый интерфейс.
Понятие «Интерфейс ADM» объединяет несколько сущностей:
Сейчас мы выпускаем модули в форм-факторе FMC, но организация ПЛИС осталась прежней. Там так же используются тетрады.
Так что сравнивать с AXI можно. В данный момент я занимаюсь тем, что подключаю тетрады к Zynq, как раз через AXI.
P.S. базовые модули для шины VME у нас тоже есть.
- Форм фактор субмодуля и разъём. Предложен в 1996 году, с некоторыми изменениями существует до сих пор
- Структура базового модуля. В первом варианте, который называется «Интерфейс ADM, Классическая реализация» использовалось внешнее FIFO и ПЛИС Altera. Во втором варианте, который называется «Интерфейс ADM. Прогрессивная реализация» используется только ПЛИС Xilinx без внешнего FIFO. Именно во втором варианте используются тетрады.
- Структура ПЛИС. Тетрады находятся внутри
- Организация ПО. И здесь очень много завязано на тетрады
Сейчас мы выпускаем модули в форм-факторе FMC, но организация ПЛИС осталась прежней. Там так же используются тетрады.
Так что сравнивать с AXI можно. В данный момент я занимаюсь тем, что подключаю тетрады к Zynq, как раз через AXI.
P.S. базовые модули для шины VME у нас тоже есть.
Не хватает сочных подробностей про то как все это наследие использовать в своих разработках. Какие есть требования и ограничения к сигналам.
Ну и очень любопытно было бы всем почитать про программную архитектуру для поддержки тетрад.
Ну и очень любопытно было бы всем почитать про программную архитектуру для поддержки тетрад.
У меня есть несколько OpenSource проектов, в частности DS_DMA. Ссылка в на сайт моём профиле. Там можно посмотреть как используются тетрады в реальном проекте. Программы можно посмотреть на GitHub: https://github.com/andorok/DaqTools_Tutorial
Sign up to leave a comment.
Интерфейс ADM – что такое «Тетрада»