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

Есть две 12-ти битные шины DDR между FPGA, шина AB и шина CD. Частота клока - 300МГц. Для контроля на передающей стороне сейчас отправляется содержимое двоичного счётчика, а на приёмнике стоит счётчик ошибок. Сответственно 4 приёмных регистра SDR - rega,regb,regc,regd. Видно что шина CD принимается совсем без ошибок. А в шине AB наблюдаются странные регулярные ошибки. В шине А бит номер 6 не меандр! В шине B присутствуют странные регулярные "иголки". Если эти же прошивки залить в другую такую же плату - обе шины работают без ошибок. Методом замены шин на передатчике пришёл к выводу что глючит именно приёмная часть (ну или совместно с платой). Питание? Всё обвешано прилично,номинал в норме. Что посоветуете, коллеги? Логически обосновать такое поведение у меня не получилось.

На левом рисунке в строке 6 - флаг ошибки. Подвигал немного фазу клока в приёмнике - эффект нулевой.

post-18832-1493209256_thumb.png

post-18832-1493209262_thumb.png

post-18832-1493209270_thumb.png

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


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

Приветствую!

 

Немного подвигать этого мало.

 

Нужно пройти задержкой весь период входного клока и для каждого бита определить границы окна задержки в которых он уверенно принимается.

 

Ну а затем по результатам смотреть - куда и на сколько сдвигать всю шину и достаточно ли этого будет.

А может надо будет двигать отдельные биты в шине. чтобы совместить окна.

 

Удачи! Rob

 

 

 

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


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

Приветствую!

 

Немного подвигать этого мало.

 

Нужно пройти задержкой весь период входного клока и для каждого бита определить границы окна задержки в которых он уверенно принимается.

 

Ну а затем по результатам смотреть - куда и на сколько сдвигать всю шину и достаточно ли этого будет.

А может надо будет двигать отдельные биты в шине. чтобы совместить окна.

 

Удачи! Rob

Спасибо!

Таки только расфазировка бит думаете? Если это так то печально - для каждой платы делать свою калибровку очень длительный процесс. И прошивки для каждой платы свои... Завтра попробую подвигать шестой бит в шине А.

 

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


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

Приветствую!

 

Немного подвигать этого мало.

 

Нужно пройти задержкой весь период входного клока и для каждого бита определить границы окна задержки в которых он уверенно принимается.

 

Ну а затем по результатам смотреть - куда и на сколько сдвигать всю шину и достаточно ли этого будет.

А может надо будет двигать отдельные биты в шине. чтобы совместить окна.

 

Удачи! Rob

Нужно смотреть как выровнены линии в шинах по длине, ну а далее задержки

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


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

Нужно написать автомат автокалибровки и калибровать линк при каждом старте. Тогда и частоту до 500 - 600 можно будет вытянуть

 

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


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

Нужно написать автомат автокалибровки и калибровать линк при каждом старте. Тогда и частоту до 500 - 600 можно будет вытянуть

А как это? В аррии есть возможность изменять параметр iodelay без перекомпиляции? Я этого не знал. Если это действительно так то это очень упростит задачу. Поделитесь методом?

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


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

Приветствую!

 

Думать в этом случае можно о многих причинах так как их (причин а не дум) может быть великое множество. Иногда совсем не очевидных.

Поэтому для начала надо начинать с простого - чтобы составить ясную картину проблемы.

 

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

Удачи! Rob.

 

 

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


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

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

ALTIOBUF megafunction

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

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


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

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

ALTIOBUF megafunction

Спасибо! Старею, рано или поздно это должно было случиться...

 

_Anatoliy

DCI включили?

Это что?

 

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

Бит не один, больше склоняюсь таки к времянкам.

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


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

Возможно это остатки флюса после пайки! Плату промывали? Непропай или микротрещина в шарике BGA - тоже вариант.

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


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

Пересмотрел весь UG на ALTIOBUF и нигде не нашёл спецификации на интерфейс управления. Как изменять величину задержки по последовательному порту IP?

 

А с другой стороны у меня длительность "глазка" 1600ps , а дискрета изменения задержки для D1 равна 517ps. Всего 3 отсчёта на глазок, имхо не очень большая степень свободы.

Хотелось бы услышать мнение тех кто реально этим занимался. Как эта технология ведёт себя в серии,если без автоматики? Ведь я уже прошёл через этот путь, подобрал оптимальные задержки, две платы запустились без проблем а на третьей "проявился" вот этот дефект. Такой большой разброс параметров микросхем? Правда для третьей платы мы покупали у другого поставщика , уж не знаю насколько это важно.

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


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

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

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

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

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

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

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

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

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

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