ASN 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба aabmail А скорость передачи высокая? Может лучше обойтись без сопровождающей тактовой вообще? Использовать что-то типа NRZI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба Большое всем спасибо за ответы. С IODELAY в S6 не работал, потому про них не скажу. Но раз вы хотите/знаете на сколько вам надо по вращать фазу данных в IODELAY, что вам мешает сделать то же самое с клоком в DCM, как вам советует Timmy? Я понял, что Timmy имеет ввиду, говоря от PLL/DLL c нулевой задержкой. Но в моем случае обе платы считывают данные с source synchronous АЦП по общему клоку. Если повернуть фазу одного клока, то поплывет чтение с АЦП. Про кривость IODELAY понятно. Если вы внешний тактовый сигнал в плисах напрямую заводите на тактовые входы регистров, то самый простой (минимум изменений) способ это "привязать" выходные сигналы к спаду, а входные к фронту тактового сигнала. Т.е. на передающей стороне состояние меняется по спаду, а на приемной стороне защелкивание производится по фронту. Но нужно учесть, что если изменятся условия подключения плат между собой и к генератору тактового сигнала, то и ситуация может поменяться на противоположную. Тогда рабочим может оказаться ваш текущий вариант. Опишите подробнее клоковое дерево всей вашей системы, тогда проще будет подсказать решение. Попробую передавать/принимать синхроимпульс по спаду клока. aabmail А скорость передачи высокая? Может лучше обойтись без сопровождающей тактовой вообще? Использовать что-то типа NRZI. Тут не передача данных, а только синхроимпульс ~1 кГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба Но в моем случае обе платы считывают данные с source synchronous АЦП по общему клоку. У вас в кристалле 1 DCM? Да и у одного и того же DCM аж 6 выходов, каждый из которых можно настроить на свою фазу. Работать с АЦП и всей логикой можно на одном клоке, а для захвата данных можно переключаться между всеми клоками мультиплексором.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба У вас в кристалле 1 DCM? Да и у одного и того же DCM аж 6 выходов, каждый из которых можно настроить на свою фазу. Работать с АЦП и всей логикой можно на одном клоке, а для захвата данных можно переключаться между всеми клоками мультиплексором.. По данному синхроимпульсу запускается чтение АЦП. Хотелось бы, чтобы синхроимпульс был бы в том же клоковом домене, что и АЦП. Работать с АЦП и всей логикой можно на одном клоке, а для захвата данных можно переключаться между всеми клоками мультиплексором.. Не совсем понял, что Вы имеете ввиду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба По данному синхроимпульсу запускается чтение АЦП. Хотелось бы, чтобы синхроимпульс был бы в том же клоковом домене, что и АЦП. При использовании разных выходов одного и того же DCM, не нужно даже никаких дополнительных констрейнов прописывать - домен для роутера условно остаётся одним и тем же, и переходы между клоками будут обсчитаны правильно. Для успешного роутинга достаточно элементы на пересечении клоков располагать близко и, по возможности, исключить между ними логику. Не совсем понял, что Вы имеете ввиду. Я имел ввиду, что всё работает на одном клоке, а регистриратор синхроимпульса на нужном Вам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба При использовании разных выходов одного и того же DCM, не нужно даже никаких дополнительных констрейнов прописывать - домен для роутера условно остаётся одним и тем же, и переходы между клоками будут обсчитаны правильно. Для успешного роутинга достаточно элементы на пересечении клоков располагать близко и, по возможности, исключить между ними логику. Я имел ввиду, что всё работает на одном клоке, а регистриратор синхроимульса на нужном Вам. Примерно понятно. Т.е. заводим отдельный клоковый домен только для регистрации синхроимпульса. Implementation tool должен сам просчитать констрейны (раз они с одного DCM исходят), и при переходе на основной клоковый домен синхроимпульс всегда будет попадать в одно тайминговое окно. Ок. :-) Вы еще про мультиплексор написали. Я про него не понял. Куда его вставлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба Вы еще про мультиплексор написали. Я про него не понял. Куда его вставлять? Мультиплексор, это если в процессе регистрации синхроимпульса собираетесь переключаться между заранее сдвинутыми на фиксированную фазу выходами DCM. Но если собираетесь переключаться, то констрейны прописывать уже придётся. А в целом всё верно. P.S. : можно, судя по документам, двигать фазу посредством drp - лично для S6 не делал.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 22 декабря, 2015 Опубликовано 22 декабря, 2015 · Жалоба Мультиплексор, это если в процессе регистрации синхроимпульса собираетесь переключаться между заранее сдвинутыми на фиксированную фазу выходами DCM. Но если собираетесь переключаться, то констрейны прописывать уже придётся. А в целом всё верно. P.S. : можно, судя по документам, двигать фазу посредством drp - лично для S6 не делал.. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpiter 0 3 января, 2016 Опубликовано 3 января, 2016 · Жалоба Кривость IODELAY в том, что шаги могут различаться до 150ps, плавают в три раза по PVT, длина задержки не более полпериода, в старых ревизиях чипа были глюки, создаёт дополнительную задержку около 2 нс. DDR 2\3 controller разве не использует IODELAY? При таких глюках он бы не работал. Для работы IODELAY надо объявлять еще IDELAYCTR и заводить 200MHz внешнего стабильного клока. Если ошибаюсь, поправите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 января, 2016 Опубликовано 3 января, 2016 · Жалоба DDR 2\3 controller разве не использует IODELAY? При таких глюках он бы не работал. Для работы IODELAY надо объявлять еще IDELAYCTR и заводить 200MHz внешнего стабильного клока. Если ошибаюсь, поправите. DCM или PLL для чего? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpiter 0 3 января, 2016 Опубликовано 3 января, 2016 · Жалоба DCM или PLL для чего? Для задачи ТС считаю неправильным делать на iodelay. Резануло про кривость iodelay. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 января, 2016 Опубликовано 3 января, 2016 · Жалоба Для задачи ТС считаю неправильным делать на iodelay. Резануло про кривость iodelay. и я про это :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 4 января, 2016 Опубликовано 4 января, 2016 · Жалоба DDR 2\3 controller разве не использует IODELAY? При таких глюках он бы не работал. Для работы IODELAY надо объявлять еще IDELAYCTR и заводить 200MHz внешнего стабильного клока. Если ошибаюсь, поправите. Поправлю, IDELAYCTR есть только в Виртексах и семёрках, а тут речь про Спартан, там всё не так. Хотя в Спартане действительно можно использовать IODELAY для выравнивания в DDR2 контроллере, поскольку задержки короткие и есть возможность его откалибровать. И при условии новой ревизии чипа, без сбоев времени задержки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться