Pull to refresh

Comments 17

А не было нюансов с синтезом структур разными компиляторами? Все-таки спектр весьма широк, от максплюса 15-летней давности, как я понимаю, и до вивады.
Максплюс не используется. Тетрады появились в процессе перехода на Xilinx. ISE и Vivado работаютс нормально, хотя нюансы всегда есть.
При этом следует помнить, что реализация регистров на чтение потребует реализации мультиплексора, который является пожирателем ресурсов ПЛИС. Рекомендуется наибольшее число регистров помещать в группу командных и по минимуму – в группу непосредственных.

Можно заменить мультиплексор последовательным выводом. Если у вас PCIe, то ± несколько десятков байт от остальных прочитанных регистров роли не сыграют.

P.S. Я правильно понял, что вся эта идея с тетрадами появилась как метод обхода ограничения на разрядность адреса? Если да, то возможно имеет смысл это как-то отразить в заголовке статьи или в первом абзаце. Иначе возникает некоторое недоумение о цели статьи как таковой.
Кроме PCI Express есть ещё ряд модулей с параллельными шинами. Теневое ОЗУ кардинально решило проблему.
С ОЗУ понятно — нет смысла держать в рассыпухе те регистры, у которых значения меняются только при явной записи. Но я про ваши «непосредственные» регистры речь веду.
Чтобы избежать ограничения на частоту, можно заменить мультиплексирование на защёлкивание в цепочку сдвиговых регистров (на FF-ах) с последующим последовательным сдвигом в выходную шину. Этот метод заодно решит вопрос разных частот для внутренностей и вывода, а также с высокой вероятностью избавит от необходимости добавлять регистры на шину (за вычетом самого сдвигового регистра, но от только один нужен, а не 2-4 как на ваших примерах).
Регистры можно объединить в цепочку, но это усложняет проект. На данный момент проблемы в этом месте нет. Обычно используется около 20 регистров в группе командных и 4-8 регистров в группе непосредственных.
Интерфейс ADM — кем то используется, кроме авторов? Что означает аббревиатура ADM?
И если это популярный интерфейс, то в чем его преимущества перед, скажем, amba axi?
UFO landed and left these words here
А если не секрет, что не понравилось в нашем проекте?
UFO landed and left these words here
Насколько я знаю, больше никто не использует. Хотя однажды меня спрашивали про клон нашего модуля на TigerShack. Кажется его делала фирма из Питера. Название ADM — Analog Digital Module. Преимущества перед axi есть. Во первых он появился до массового распространения axi. Во вторых он гораздо компактней, конечно это следствие того что он не является универсальным.
Кажется, я должен извиниться: модули — Вы ведь имели ввиду процессорные модули, не RTL-IP ядра? А ADM — внешний интерфейс, а не для SoC? В таком случае, сравнивать надо не с AXI (это просто не корректно), а с VME — стандартом де-факто для промышленных систем конца прошлого века.
Спасибо, было любопытно услышать про новый интерфейс.
Понятие «Интерфейс ADM» объединяет несколько сущностей:
  1. Форм фактор субмодуля и разъём. Предложен в 1996 году, с некоторыми изменениями существует до сих пор
  2. Структура базового модуля. В первом варианте, который называется «Интерфейс ADM, Классическая реализация» использовалось внешнее FIFO и ПЛИС Altera. Во втором варианте, который называется «Интерфейс ADM. Прогрессивная реализация» используется только ПЛИС Xilinx без внешнего FIFO. Именно во втором варианте используются тетрады.
  3. Структура ПЛИС. Тетрады находятся внутри
  4. Организация ПО. И здесь очень много завязано на тетрады

Сейчас мы выпускаем модули в форм-факторе FMC, но организация ПЛИС осталась прежней. Там так же используются тетрады.
Так что сравнивать с AXI можно. В данный момент я занимаюсь тем, что подключаю тетрады к Zynq, как раз через AXI.
P.S. базовые модули для шины VME у нас тоже есть.
Не хватает сочных подробностей про то как все это наследие использовать в своих разработках. Какие есть требования и ограничения к сигналам.
Ну и очень любопытно было бы всем почитать про программную архитектуру для поддержки тетрад.
У меня есть несколько OpenSource проектов, в частности DS_DMA. Ссылка в на сайт моём профиле. Там можно посмотреть как используются тетрады в реальном проекте. Программы можно посмотреть на GitHub: https://github.com/andorok/DaqTools_Tutorial
Sign up to leave a comment.

Articles