doom13 0 December 18, 2015 Posted December 18, 2015 · Report post Железо уже оговорено, к сожалению. Вы упомянули про altlvds-rx. А если скорость порядка 800 Mbps, разве altlvds-rx адекватно будет воспринимать данные? Для CV заявлено (cv_51001.pdf), но надо ещё в какой доке глянуть: 875 Mbps LVDS receiver and 840 Mbps LVDS transmitter, но для Вашего случая оно не подходит, если только ставить "правильный" АЦП. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 21, 2015 Posted December 21, 2015 · Report post Для CV заявлено (cv_51001.pdf), но надо ещё в какой доке глянуть: , но для Вашего случая оно не подходит, если только ставить "правильный" АЦП. А ситуация с асинхронным кодом патовая? Может у Вас есть ещё какие мысли? На самом деле стоит две задачи: В первом случае принять сигнал с сериалайзера, т.е. организовать десериалайзер. Во втором случае будет необходимо принять сигнал с АЦП lts 2193. Первая задача вроде как промежуточная. Также для отладки всего этого есть в наличии отладочная плата Cyclone V GX Starter Kit Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 21, 2015 Posted December 21, 2015 · Report post Я так и не понял, железо уже есть или можно ещё что-то менять? Если железо есть, то пробуйте использовать ядро Custom PHY, в GUI ставте для SYNC PATTERN настройки, которые оно позволяет выбрать, а в топ модуле подправте вручную и пробуйте скомпилить. Во втором случае будет необходимо принять сигнал с АЦП lts 2193. Если правильно понял, что АЦП это LTC2193, то никакой внешний сериалайзер не нужен, заводите сигналы прямо на FPGA и используете ядро ALT_LVDS RX. Клоки - на клоковую ногу FPGA (которую можно протянуть до PLL), достаточно будет DATA CLOCK OUT. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 21, 2015 Posted December 21, 2015 · Report post Я так и не понял, железо уже есть или можно ещё что-то менять? Если железо есть, то пробуйте использовать ядро Custom PHY, в GUI ставте для SYNC PATTERN настройки, которые оно позволяет выбрать, а в топ модуле подправте вручную и пробуйте скомпилить. Если правильно понял, что АЦП это LTC2193, то никакой внешний сериалайзер не нужен, заводите сигналы прямо на FPGA и используете ядро ALT_LVDS RX. Клоки - на клоковую ногу FPGA (которую можно протянуть до PLL), достаточно будет DATA CLOCK OUT. Железо выбрано. Сейчас колдую над custom PHY. При чем я отошёл от сериалайзера и подаю на вход просто последовательность единиц с генератора импульсов, при этом решил попробовать режим bitslip. Вывел его на кнопку, при нажатии код смещается, как я понял, так и должно быть. Но все идёт нормально только до 8ого бита, потом код скачет вверх, пропуская много позиций. Хотелось бы, конечно, проверить режим с выравниванием слова по последовательности, но я не располагаю таким генератором, с которого я подаю сначала синхро-последовательность, а потом какой-то код. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 21, 2015 Posted December 21, 2015 · Report post Про АЦП Вы не ответили, это LTC2193??? Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 21, 2015 Posted December 21, 2015 · Report post Про АЦП Вы не ответили, это LTC2193??? Да, именно. Прошу прощения. Попробовал в топ модуле подправить, компилятор ругается. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 21, 2015 Posted December 21, 2015 · Report post Попробовал в топ модуле подправить, компилятор ругается. Возможно ещё что-то завязано на эти параметры. Да, именно. Прошу прощения. Тогда тут не нужен внешний трансивер. Для приёма достаточно завести все сигналы АЦП в FPGA (линии данных канала АЦП для 4-line mode и тактовую АЦП DATA CLOCK OUT) и при максимальной частоте тактирования АЦП 125 MHz получится всего 500 Mbps на линию. Для 800 Mbps от канала АЦП можно использовать 2-line mode (а если FPGA держит приведённые выше характеристики, то будет достаточно и 1-line mode). PS: ALT_LVDS вполне подходит. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 23, 2015 Posted December 23, 2015 · Report post Возможно ещё что-то завязано на эти параметры. Тогда тут не нужен внешний трансивер. Для приёма достаточно завести все сигналы АЦП в FPGA (линии данных канала АЦП для 4-line mode и тактовую АЦП DATA CLOCK OUT) и при максимальной частоте тактирования АЦП 125 MHz получится всего 500 Mbps на линию. Для 800 Mbps от канала АЦП можно использовать 2-line mode (а если FPGA держит приведённые выше характеристики, то будет достаточно и 1-line mode). PS: ALT_LVDS вполне подходит. А в этом случае, не проясните ли мне почему в altlvds_rx максимальный возможный фактор дессериализации равен 10? Как я понимаю, чтобы принять 16битную последовательность нужно поставить каскадно два приёмника по 8 бит Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 23, 2015 Posted December 23, 2015 · Report post А в этом случае, не проясните ли мне почему в altlvds_rx максимальный возможный фактор дессериализации равен 10? Как я понимаю, чтобы принять 16битную последовательность нужно поставить каскадно два приёмника по 8 бит У Вашего АЦП есть режимы 4-line/2-line/1-line mode, где фактор десериализации будет соответственно 4/8/16 (вот только 16 выбрать не получится, тут только если делать свой приёмник). Используйте 4-line mode, чтоб можно было работать на максимальной частоте тактирования АЦП. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 23, 2015 Posted December 23, 2015 · Report post У Вашего АЦП есть режимы 4-line/2-line/1-line mode, где фактор десериализации будет соответственно 4/8/16 (вот только 16 выбрать не получится, тут только если делать свой приёмник). Используйте 4-line mode, чтоб можно было работать на максимальной частоте тактирования АЦП. Так вот задача то и заключается в принятии сигнала по 1 линии. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 23, 2015 Posted December 23, 2015 · Report post Так вот задача то и заключается в принятии сигнала по 1 линии. Если учесть, что согласно даташиту на ALTLVDS_RX: In Cyclone series, the SERDES circuitry is always implemented in logic cells. то, как вариант, можно попробовать сделать свой приёмник для Вашего случая. Когда-то давно делал такое, а потом нашёл ALTLVDS_RX, который работает намного лучше. В настоящей системе используется ALTLVDS_RX, который принимает 800 Mbps с одной линии, так что пробуйте. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 23, 2015 Posted December 23, 2015 · Report post Если учесть, что согласно даташиту на ALTLVDS_RX: то, как вариант, можно попробовать сделать свой приёмник для Вашего случая. Когда-то давно делал такое, а потом нашёл ALTLVDS_RX, который работает намного лучше. В настоящей системе используется ALTLVDS_RX, который принимает 800 Mbps с одной линии, так что пробуйте. Буду пробовать, только жаль что на отладочной плате высокочастотные выводы железно завязаны на аппаратные высокоскоростные трансиверы. Не могли бы прояснить ещё один момент: как я понимаю в altlvds_rx на пин inclock я завожу свою фреймовую частоту? Немного не по теме, но хочу поделиться: был на семинаре, так вот там упоминался интерфейс jesd204b. Знакомы с ним? Это чисто моё любопытство) Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 December 23, 2015 Posted December 23, 2015 · Report post Буду пробовать, только жаль что на отладочной плате высокочастотные выводы железно завязаны на аппаратные высокоскоростные трансиверы. Не могли бы прояснить ещё один момент: как я понимаю в altlvds_rx на пин inclock я завожу свою фреймовую частоту? Если хотите использовать вход трансивера, то тут altlvds_rx прицепить не получится. Мне кажется, что должен быть способ настроить Custom PHY для Вашего случая. Сами заложили в своём устройстве соединение между FPGA через трансиверы в режиме half duplex и предполагал использовать Custom PHY (по документации всё должно работать, но железа пока ещё нет, а так проект скомпилился, не помню, правда, какие настройки для шины данных там задавал). На inclock заводится либо frame clock либо bit clock (можно оба, но это избыточно), если только один АЦП на плате, то разницы нет, если несколько и надо будет их все синхронизировать - тогда bit clock. Заводится на ногу, которую можно забросить на PLL. Немного не по теме, но хочу поделиться: был на семинаре, так вот там упоминался интерфейс jesd204b. Знакомы с ним? Это чисто моё любопытство) У нас DDS с этим интерфейсом используется, но запускал его коллега. Quote Share this post Link to post Share on other sites More sharing options...
warrior-2001 0 December 24, 2015 Posted December 24, 2015 · Report post jesd204b - это готовый стандарт. Использую его в AD9656. Написал сам. Если бы была ПЛИС 5 серии - поставил бы ядро альтеровское. Quote Share this post Link to post Share on other sites More sharing options...
Алексей_1990 0 December 24, 2015 Posted December 24, 2015 · Report post jesd204b - это готовый стандарт. Использую его в AD9656. Написал сам. Если бы была ПЛИС 5 серии - поставил бы ядро альтеровское. И в какую нынче цену такое ядро? Если хотите использовать вход трансивера, то тут altlvds_rx прицепить не получится. Мне кажется, что должен быть способ настроить Custom PHY для Вашего случая. Сами заложили в своём устройстве соединение между FPGA через трансиверы в режиме half duplex и предполагал использовать Custom PHY (по документации всё должно работать, но железа пока ещё нет, а так проект скомпилился, не помню, правда, какие настройки для шины данных там задавал). На inclock заводится либо frame clock либо bit clock (можно оба, но это избыточно), если только один АЦП на плате, то разницы нет, если несколько и надо будет их все синхронизировать - тогда bit clock. Заводится на ногу, которую можно забросить на PLL. У нас DDS с этим интерфейсом используется, но запускал его коллега. На самом деле, уже много режимов перепробовал для трансивера, ничего даже приближенного к правде не выдавалось. Quote Share this post Link to post Share on other sites More sharing options...