Перейти к содержанию
    

помогите правильно задать констрейны

пришла идея описать входные клоки вот так:

 

create_clock -name {clk_a} -period 2.000 -waveform { 0.000 1.000 } [get_ports {clk_a}]

create_clock -name {clk_d} -period 2.000 -waveform { 0.500 1.500 } [get_ports {clk_d}]

create_clock -name {clk_b} -period 2.000 -waveform { 1.000 2.000 } [get_ports {clk_b}]

create_clock -name {clk_c} -period 2.000 -waveform { 1.500 2.500 } [get_ports {clk_c}]

 

не знаю верно или нет, но вроде бы так они стоят именно сдвинутыми на 0.5 нс.

Однако общую картину это не исправило. Где-то в DDR происходит разная задежка между каналами при выдачи данных. То есть, например, данные из первого канала DDR приемники обрабатывают два такта, а из второго - три

 

 

Вот здесь я описывал сигналы, гуляющие по плате, и пытался словить их в нужное время внутри ПЛИС.

http://electronix.ru/forum/index.php?showtopic=91823

спасибо за ссылку, попробую изучить

Изменено пользователем AiS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на вход FPGA поступают данные от 4х АЦП с частотой 500МГц (по обеим фронтам частоты 250МГц)

Частоты АЦП (Fd_1, Fd_2, Fd_3, Fd_4) сдвинуты друг относительно друга на 0.5 нс.

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

Откуда берете тактовую частоту для DDR-приемников?

Если в с выхода АЦП (DRY для ADS5463), то для такой схемы (и без сдвига фазы тоже) для похожих АЦП надо использовать внешний сигнал.

Они не умеют синхронизироваться - в дш ADS5463 аглицким по-белому написано "при параллельном включении для приема данных использовать внешнюю синхронизацию", т.е.

сигнал DRY может иметь разную фазу (со сдвигом на 180гр) для разных АЦП.

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

faa, хотите сказать, что даже если частоты дискретизации были синхронизованы на входах АЦП, на выходах они могут быть какие угодно?
Изменено пользователем AiS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

faa, хотите сказать, что даже если частоты дискретизации были синхронизованы на входах АЦП, на выходах они могут быть какие угодно?

Хочу сказать только то, что если CLKIN на всех АЦП (для ADS5463) во одной фазе, то импульсы на выходах DRY могут быть на разных АЦП в противофазе (ес-но с частотой CLKIN / 2).

На практике подтверждено, причем повторяемости практически нет - процесс случаен.

 

Стр.28 дш:

Referencing Figure 1, the polarity of DRY with respect to the sample N data output transition is undetermined

because of the unknown startup logic level of the clock divider that generates the DRY signal (DRY is a

frequency divide-by-two of CLK). Either the rising or the falling edge of DRY will be coincident with sample N and

the polarity of DRY could invert when power is cycled off/on. Data capture from the transition and not the polarity

of DRY is recommended, but not required. If the synchronization of multiple ADS5463/ADS54RF63 devices is

required, it might be necessary to use a form of the CLKIN signal rather than DRY to capture the data.

 

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно узнать откуда эта информация?У меня в ds такого нет.На 28-й странице описывается опора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно узнать откуда эта информация?У меня в ds такого нет.На 28-й странице описывается опора.

у меня на 36 стр

 

faa, спасибо за комментарий, завтра буду все проверять, может действительно в этом причина

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно узнать откуда эта информация?У меня в ds такого нет.На 28-й странице описывается опора.

На ADS5463 и ADS54RF63 дш разные.

UPD: были :)

Теперь в одном. На стр.36

Studying the timing characteristics, it can be seen that the ADS54RF63 offers more tightly controlled timing parameters

than the ADS5463. Depending on the setup/hold requirements of the FPGA in use, it may be possible to use the

DRY from a single ADS54RF63 to latch data into the FPGA from multiple ADS54RF63. This would prove much

more difficult with the ADS5463 at full clock speed due to more restrictive timing parameters.

 

Мы, ЕМНИП, обсуждали в прошлой ветке.

 

спасибо за комментарий, завтра буду все проверять, может действительно в этом причина

Я уперся в этот факт экспериментально - видимо читал дш по диагонали :(

Но схемотехника позволяла обойти этот момент - обошли ;)

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

faa, похоже ноги нашей проблемы растут именно отсюда (еще раз спасибо, что обратили мое внимание!!!). опять-таки у меня дш на ads5463 хранился еще за 2006 год, а там этой инфы не было, соответственно можно было еще очень долго причину искать.

если не секрет, как именно обходили? использовали входные клоки для приема? нам уже поздно так делать, плата смонтирована...

 

я вот пока хочу попробовать подцепить 500МГц на матрицу и через внутренний PLL организовать частоты для приема данных с каждого АЦП

Изменено пользователем AiS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вот пока хочу попробовать подцепить 500МГц на матрицу и через внутренний PLL организовать частоты для приема данных с каждого АЦП

Думаю не стоит этого делать.Посчитайте,какой у Вас получится SNR при том джиттере, который имеет PLL FPGA.

Если же использовать созданный клок только для приёма данных то да,у Вас появится инструмент для изменения фазы клока относительно данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

faa, похоже ноги нашей проблемы растут именно отсюда (еще раз спасибо, что обратили мое внимание!!!). опять-таки у меня дш на ads5463 хранился еще за 2006 год, а там этой инфы не было, соответственно можно было еще очень долго причину искать.

если не секрет, как именно обходили? использовали входные клоки для приема? нам уже поздно так делать, плата смонтирована...

 

я вот пока хочу попробовать подцепить 500МГц на матрицу и через внутренний PLL организовать частоты для приема данных с каждого АЦП

С клок-дистрибутера (ad9517) был заведен LVDS тактовый сигнал на ПЛИС (причем на каждый канал свой ;)).

Можно попытаться завести тактовый сигнал для входных триггеров с PLL. И сдвиг по фазе для попадания в окно данных можно подобрать.

Я так делал на 3 спартане на DCM.

 

UPD: Подать на один, с него на вторичные по числу АЦП, чтобы фазу двигать по каждому каналу индивидуально.

Если ресурсы ПЛИС позволяют, конечно.

Заодно этим же сдвигом фазы можно будет компенсировать разбег длин дорожек от каждого АЦП к ПЛИС (если они не выравнивались).

Только не забудьте, что в корпусе ПЛИС от вывода до кристалла тоже есть связи. И их длина тоже очень сильно разбегается (для V5-FF676 от 2 до 22 мм).

А 22 мм это почти 150пс задержки распространения.

 

Думаю не стоит этого делать.Посчитайте,какой у Вас получится SNR при том джиттере, который имеет PLL FPGA.

А причем тут этот джиттер и SNR?

АЦП затактированы, как я понял, нормально с клок-дистриба.

А этот джиттер будет влиять на точность попадания в окно данных с выхода АЦП.

А там окно вполне приличное. На 400МГц у меня получилось от 750пс чуть не до 1.4нс.

Можно подвигать фазу в ПЛЛ. Или задержку покрутить во входных блоках (если на там есть). А можно и то и то порегулировать. И гарантировано попасть в это окно.

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А причем тут этот джиттер и SNR?

Не так понял топик-стартера,уже откорректировал сообщение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всем спасибо за советы и ответы!

 

причину нестабильности правильно описал faa вот здесь http://electronix.ru/forum/index.php?s=&am...st&p=951533

так как было поздно делать переразводку, дабы принимать данные по входным клокам, сделала проще: подала выходные синхроимпульсы первого АЦП на PLL и дабы ничего не переделывать в проекте сформировала 250 мегагерцовые частоты для остальных каналов со сдвигом в 0.5 наны между каналами.

По включении один канал все еще отставал на такт, но на этот раз это оказалась стабильная задержка. TimeQuest показал, что не успевает сформироваться сигнал разрешения записи в память для данного канала. мультицикл помог разрешить эту проблему.

Проблема правильного описания сдвига между входными частотами отпала сама собой, после заведения PLL. Хотя, судя по всему, для первоначальной схемы вот это является верным:

create_clock -name {clk_a} -period 4.000 -waveform { 0.000 2.000 } [get_ports {clk_a}]

create_clock -name {clk_d} -period 4.000 -waveform { 0.500 2.500 } [get_ports {clk_d}]

create_clock -name {clk_b} -period 4.000 -waveform { 1.000 3.000 } [get_ports {clk_b}]

create_clock -name {clk_c} -period 4.000 -waveform { 1.500 4.500 } [get_ports {clk_c}]

 

На данный момент все работает!

Изменено пользователем AiS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...