Jump to content
    

AD9208 EVAL подключение по FMC к FPGA

  Всем привет. Успешно использовал для приёма в ПЛИС сигналов от мезонина AD9695 EVAL. Были свои минусы модели (не было возможности пропустить через FMC в ПЛИС сигнал sysref). Назрела необходимость использовать другой замечательный КИТ от Analog DEVICES - AD9208 3000EBZ EVAL. Посмотрел все необходимые характеристики, всё устраивает, даже появилась возможность сигнал sysref прогнать через мезонин и пустить в ПЛИС. Начал копаться более глубоко, нашёл схематик и там столкнулся с очень странным моментом.  На моём старом ките, для работы трансиверов JESD можно было подать на входной коннектор SMA на мезонине сигнал "EXT_REFCLK_TO_FPGA" и пропустить его через FMC на ножку "GBTCLK0_M2C_P", после чего благополучно в ядре назначить его как PHY CLK для трансиверов (Рис.1). 

image.thumb.png.a7059e8d213a5124b5826a38aff4a474.pngimage.thumb.png.be866fc7bd09a8d742eb0b852e58de8c.png

Рис.1 

   На новый КИТ AD9208 EVAl на сайте Analog DEVICES я скачал архив файлов, там был схематик для AD9689 EVAL, как я понял это совместимый пин в пин с моим АЦП и плата носитель у них одна. Так вот в скаченном схематике немного изменилась схема. Входной клок для ПЛИС с коннектора на мезонине теперь называется "GLBLCLK_TO_FPGA" (Рис.2)

image.thumb.png.43fdf9690098b85c6cc8764b89de61cf.png

Рис.2

Подключается же данный сигнал на ножку "LA00_P_CC" на разъёме FMC (Рис.3), который не является высокоскоростным входом для тактирования трансиверов JESD ... Подключить его к JESD, я думаю, мне компилятор не позволит.. Интересно то, что старый сигнал "EXT_REFCLK_TO_FPGA" остался на старом "правильном" месте, но при этом он обрублен и больше никуда по схеме не идёт...

image.thumb.png.608204201dc43e49d12eeafd5fe6ab03.png

Рис.3

Так вот мой вопрос. Это какая то опечатка, ошибка на схеме? Или реально так перелопатили КИТ, что теперь брать клок через мезонин невозможно?  Приложу обе схемы: старого кита AD9695 и нового AD9208 (AD9689 так как это одно и тоже).

SCH_9695ce01a.pdf

SCH_9689ce02c.pdf

 

image.png

Edited by Kronac

Share this post


Link to post
Share on other sites

1 hour ago, Kronac said:

при этом он обрублен и больше никуда по схеме не идёт

Прозвонить можете?
Или  - возможно ли использование на мезонине SYSREF_TO_FPGA вместо GLBLCLK_TO_FPGA  - т.е.  на мезонине подключить клок к другому SMA коннектору - подключит ли его компилятор куда нужно? 

Share this post


Link to post
Share on other sites

42 minutes ago, Yuri124 said:

Прозвонить можете?
Или  - возможно ли использование на мезонине SYSREF_TO_FPGA вместо GLBLCLK_TO_FPGA  - т.е.  на мезонине подключить клок к другому SMA коннектору - подключит ли его компилятор куда нужно? 

Прозвонить, к сожалению, пока не могу, так как кит ещё не куплен. Сейчас на стадии закупки и вот неожиданно возник вопрос, подойдёт ли данный кит? Или с ним не выйдет работать так, как задумывалось изначально... Обнаружил странный момент на схеме, по этому собственно и создал данную тему.

 

По поводу использования SYSREF_TO_FPGA, он подключён на клоковый вход "CLK0_M2C" на FMC, но всё же это не высокоскоростной вход для трансиверных клоков. Компилятор такое не съест, на сколько я знаю...

image.thumb.png.e2f963009f971b3f6cba32aecb1bf419.png

Уточню ещё. Сложность в том, что в системе, в которой собираюсь использовать AD9208 EVAL, на плате носителе с ПЛИС нет возможности подать хоть какие то сигналы из вне (штатными способами, без конструктивной переделки), имеются только FMC коннекторы, по этому сигналы SYSREF и  PHY_CLK для JESD намеревался получать от мезонина через FMC...

Share this post


Link to post
Share on other sites

10 minutes ago, Kronac said:

всё же это не высокоскоростной вход для трансиверных клоков

когда-то делал свою плату, и заводил клоки для трансиверов в двух вариантах - как на ките на спец. вход для этого банка трансиверов и, поскольку место позволяло -  на всякий случай разместил на плату доп. генератор на другой клоковый вход (который при синтезе проекта Квартус развел). Потом в железе заработали оба варианта.

Попробуйте предложить синтезатору этот, имеющийся на новом ките, вход, и посмотрите - сможет ли развести, появятся ли предупреждения.
Как вариант - если разводка платы позволяет - самому допаять (переместить) сигналы на нужный вход FPGA (нужные контакты коннектора).

Share this post


Link to post
Share on other sites

 

2 minutes ago, Yuri124 said:

когда-то делал свою плату, и заводил клоки для трансиверов в двух вариантах - как на ките на спец. вход для этого банка трансиверов и, поскольку место позволяло -  на всякий случай разместил на плату доп. генератор на другой клоковый вход (который при синтезе проекта Квартус развел). Потом в железе заработали оба варианта.

Попробуйте предложить синтезатору этот, имеющийся на новом ките, вход, и посмотрите - сможет ли развести, появятся ли предупреждения.
Как вариант - если разводка платы позволяет - самому допаять (переместить) сигналы на нужный вход FPGA (нужные контакты коннектора).

Спасибо, попробую конечно, но раньше когда пробовал подобный трюк, компилятор (что Quartus, что vivado) меня сразу посылал. Передвинуть, перепаять, допаять конечно всегда можно, но это уже второй шаг, когда других вариантов уже не будет =) Пока хочется отделаться малой кровью.

Share this post


Link to post
Share on other sites

 

20 hours ago, Yuri124 said:

когда-то делал свою плату, и заводил клоки для трансиверов в двух вариантах - как на ките на спец. вход для этого банка трансиверов и, поскольку место позволяло -  на всякий случай разместил на плату доп. генератор на другой клоковый вход (который при синтезе проекта Квартус развел). Потом в железе заработали оба варианта.

Попробуйте предложить синтезатору этот, имеющийся на новом ките, вход, и посмотрите - сможет ли развести, появятся ли предупреждения.
Как вариант - если разводка платы позволяет - самому допаять (переместить) сигналы на нужный вход FPGA (нужные контакты коннектора).

Ну при попытке в лоб подменить пин pll_ref_clk для JESD на старом проекте, квартус выдал сразу ошибку... Буду сейчас разбираться что не так.. 

image.thumb.png.7689994cd2c05883dbaa2d24020848f0.png

В моём проекте входной пин "device_clk" с высокоскоростного входа шёл в ip ядро JESD и на PLLку где я формировал с него link_clk и sysref. С высокоскоростным пином такая штука работала, с обычным по ходу квартус так не может.. =)  image.thumb.png.9d0882e29c3632938c781c0ed4444b14.png

Edited by Kronac

Share this post


Link to post
Share on other sites

On 12/9/2021 at 1:03 PM, Yuri124 said:

когда-то делал свою плату, и заводил клоки для трансиверов в двух вариантах - как на ките на спец. вход для этого банка трансиверов и, поскольку место позволяло -  на всякий случай разместил на плату доп. генератор на другой клоковый вход (который при синтезе проекта Квартус развел). Потом в железе заработали оба варианта.

Попробуйте предложить синтезатору этот, имеющийся на новом ките, вход, и посмотрите - сможет ли развести, появятся ли предупреждения.
Как вариант - если разводка платы позволяет - самому допаять (переместить) сигналы на нужный вход FPGA (нужные контакты коннектора).

Можно спросить, как у Вас это вышло? Для интереса убрал из проекта ПЛЛ, клок с пина напрямую подаю в ядро JESD, попробовал все клоки, какие есть на моей ARRIA 10, если клок не является трансиверным выделенным клоком (на рисунке синим выделены), то какой бы клок или стандарт я не использовал, Quartus не разрешает такую разводку... 

 

image.thumb.png.0bc0052315181b2e75b4425aeeaacc40.png

Share this post


Link to post
Share on other sites

4 часа назад, Kronac сказал:

Можно спросить, как у Вас это вышло? Для интереса убрал из проекта ПЛЛ, клок с пина напрямую подаю в ядро JESD, попробовал все клоки, какие есть на моей ARRIA 10, если клок не является трансиверным выделенным клоком (на рисунке синим выделены), то какой бы клок или стандарт я не использовал, Quartus не разрешает такую разводку... 

На аррии-5 я заводил клоки для JESD как на выделенные для этого клоковые входы, так и через PLL ПЛИС с любого другого его клока. Обязательное условие при этом - сделать отдельный pll для каждого ядра JESD.

Share this post


Link to post
Share on other sites

1 hour ago, Lmx2315 said:

На аррии-5 я заводил клоки для JESD как на выделенные для этого клоковые входы, так и через PLL ПЛИС с любого другого его клока. Обязательное условие при этом - сделать отдельный pll для каждого ядра JESD.

Интересно.. Ну я до этого пытался напрямую клок подать без ПЛЛ сразу в ядро с пина (пропустив через Clock_Source) . Сейчас попробовал этот вариант, пропустить клок через ПЛЛ и ничего не меняя с той же частотой подать на ядро JESD, но результат тот же, что и раньше.. (ядро JESD одно у меня) Возможно в Арии 10 что то поменялось в этом плане... =)

image.thumb.png.7fd06ad20ec58916422d6a1d82db1b8d.png

1 hour ago, Lmx2315 said:

На аррии-5 я заводил клоки для JESD как на выделенные для этого клоковые входы, так и через PLL ПЛИС с любого другого его клока. Обязательное условие при этом - сделать отдельный pll для каждого ядра JESD.

А какой тип ПЛЛ при этом у Вас был? может я не ту ПЛЛ поставил или не так настроил её? Я ставил стандартную IOPLL.

Share this post


Link to post
Share on other sites

18 часов назад, Kronac сказал:

А какой тип ПЛЛ при этом у Вас был? может я не ту ПЛЛ поставил или не так настроил её? Я ставил стандартную IOPLL.

Я везде использовал PLL intel FPGA IP.

Share this post


Link to post
Share on other sites

On 12/12/2021 at 11:51 AM, Lmx2315 said:

Я везде использовал PLL intel FPGA IP.

 Посмотрел в Chip Planner Arria V и мою Arria 10. Действительно в старой арии не было высокоскоростных ATX PLL / fPLL. Были только обычные PLL которые были прям у трансиверов, что позволяло такой подход и можно было завести на клоки ПЛЛек и всё было хорошо.

image.thumb.png.7d2ccb5839b5fac9a593c3c156375bc0.png 

К сожалению у новых Arria 10 всё совсем иначе и работать с трансиверами или ATX PLL/fPLL можно исключительно используя высокоскоростные трансиверные клоки... 

image.thumb.png.5b4729669bda9e43b43eb7f56f0fe07a.png

 

Share this post


Link to post
Share on other sites

10 minutes ago, Kronac said:

К сожалению у новых Arria 10 всё совсем иначе и работать с трансиверами или ATX PLL/fPLL можно исключительно используя высокоскоростные трансиверные клоки... 

Похоже  что это не так 
 

Quote

Intel® Arria® 10 Transceiver PHY User Guide

Arria3.2. Input Reference Clock Sources

10 transceiver PLLs have five possible input reference clock sources, depending on jitter requirements:
• Dedicated reference clock pins
• Reference clock network
The output of another fPLL with PLL cascading (59)
• Receiver input pins
Global clock or core clock (59) For the best jitter performance, Intel recommends placing the reference clock as close as possible, to the transmit PLL. For protocol jitter compliance at data rates > 10 Gbps, place the reference clock pin in the same triplet as the transmit PLL.
...
Figure 175. Input Reference Clock Sources
...
Note:
• In Arria 10 devices, the FPGA fabric core clock network can be used as an input reference source for any PLL type.
• To successfully complete the calibration process, the reference clocks driving the PLLs (ATX PLL, fPLL, CDR/CMU PLL) must be stable and free running at start of FPGA configuration. Otherwise, recalibration is necessary.

Так что вам надо смотреть как правильно сконфигурить  источник референс клока 

Share this post


Link to post
Share on other sites

А попробуйте написать производителю кита - в чем подвох - что на схеме этот нужный Вам клок обозначен, но никуда не подключен. Возможно глюк в описании.

А может быть и не глюк, а ошибка в том ките, и в новой версии это поправят. может быть...

Как-то у меня был глюк с Квартусом - при переводе проекта с одного чипа (китового) на более мелкий (реально используемый) вроде как проект скомпилировался, но не работал PCIe - не поступал на трансиверы клок с разъема PCIe, при этом об ошибках не сообщал. Помогло следующее - убрал в проекте назначения всех пинов этого интерфейса, перекомпилировал, потом снова назначил сигналы (клок) на нужные мне ноги (те же самые) - и после следующей комиляции заработало.

Не может ли и здесь быть чего-то подобного - помнит с предыдущего проекта что-то, и нужно как-то сбросить (руками прибить)...  Дать ему автоматом развести как хочет, а потом назначить этот клок опять  на нужный вход.

Share this post


Link to post
Share on other sites

On 12/13/2021 at 4:05 PM, RobFPGA said:

Похоже  что это не так 
 

Так что вам надо смотреть как правильно сконфигурить  источник референс клока 

Спасибо большое. Прочитал мануал подробнее. Сначала получилось подать клок через каскадирование ПЛЛ-ек. Входной пин завёл на стандартную IOpll, её выход уже подал на fPLL. Подход интересный, но боюсь представить что станет с клоком, когда он пройдёт весь этот тракт.. Долго бился над тем, чтобы подать пин напрямую на вход fractional PLL. В мануале такая возможность действительно имеется, но Квартус отчаянно сопротивлялся =)... Потом уже в другом мануале (хэндбук на Аррию 10) нашёл, что мне нужно использовать между входным пином и fPLL  "ALTCLKCTRL" и  только после этого квартус съел это всё и компильнулся. Не знаю на сколько это работоспособно, но то, что это компилится уже радует. Теперь у меня есть запасной план, на случай если не будет трансиверного клока.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...