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

Согласование ПЛИС <=> DDR SDRAM

Добрый день всеуважаемый ALL!

 

Есть пара чипов DDR SDRAM и ПЛИС. Общепринятая схема включения DDR SDRAM содержит резисторы последовательной терминации, резисторы подтяжек к напряжению терминации и параллельно резисторам подтяжек к напряжению терминации фильтрующие конденсаторы к напряжению терминации в количестве один конденсатор на два резистора. Короче, на 16Mx16 чип требуется порядка 100 :cranky: дискретных элементов. Конечно, положение немного спасают малогабаритные резисторные и конденсаторные сборки, но в любом случае, дополнительных элементов очень много :(

 

Вот, собственно, и возник вопрос - какими из дискретных элементов можно пожертвовать ввиду очень коротких дорожек от ПЛИС до памяти, а какие из них относятся к схеме включения SSTL-II выводов.

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


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

Добрый день всеуважаемый ALL!

 

 

Вот, собственно, и возник вопрос - какими из дискретных элементов можно пожертвовать ввиду очень коротких дорожек от ПЛИС до памяти, а какие из них относятся к схеме включения SSTL-II выводов.

 

Я бы не ставил последовательные резисторы, обязательно при этом используя SSTL2-1 а не SSTL2-II выход. Обязательно промоделируйте в HyperLynx, это несложно. Другое дело, что на этих резисторах очень удобно щупами ставать... Также для одной микросхемы вовсе необязательно ставить конденсаторы на терминацию так часто. И одного на 5 линий достаточно. ТОлько не забудьте небольшие танталы тоже поставить по 33-47 мкф (одного-двух хватит). Также по всем питаниям (и терминации) знатоки рекомендуют обычные алюминиевые трухольные электролиты типа 470 - 1000 мкф 6 В. И ПЛИСке тоже это не повредит.

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


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

Спасибо, Gorby. Половину фильтрующих конденсаторы уже почикали :) Будем надеяться, что оно будет работать нормально.

 

На сколько я понял, резисторы подтяжек к напряжению терминации являются обязательными - верно?

 

Танталы в непосредственной близости от микросхем памяти предусмотрели, правда из-за нехватки места поставили по одному 22uF super low-esr на корпус, будем надеяться, что им хватит :)

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


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

Здесь и схема, и Гербер. Все (серийно) работает (Spartan3 + DDR SDRAM)

http://www.elphel.com/3fhlo/10333/10333c.pdf

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


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

Здесь и схема, и Гербер. Все (серийно) работает (Spartan3 + DDR SDRAM)

http://www.elphel.com/3fhlo/10333/10333c.pdf

 

Я очень рад, что работает. Только не забываем, что Спартан 3 умеет управлять импедансом своих выходов, что позволяет не ставить последовательные согласующие резисторы даже если они там и нужны были бы например для 2-го Спартана.

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


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

Здесь и схема, и Гербер. Все (серийно) работает (Spartan3 + DDR SDRAM)

http://www.elphel.com/3fhlo/10333/10333c.pdf

 

Вот, собственно, Ваша схема и вызывает наибольшее количество вопросов. Вся теория, которую видел до сих пор, говорит о необходимости подтягивающих резисторов к напряжению терминации, а у Вас их нет :cranky: При чем в документации на микроновскую память было сказано, что это не столько согласование, как елемент включения выходного драйвера в режиме SSTL-II. Вот это-то и вызывает самое большое недоумение - как оно работает? Однозначно - против практики не попрешь.

 

В любом случае, наш Cyclone-II не умеет управлять импедансом своих выходов, а потому резисторы последовательной терминации мы все же поставим, а потом попробуем включить плату не запаивая подтягивающих резисторных сборок и их фильтрующих конденсаторов. Если будет у нас работать, то в окончательной версии платы почикаем подтяжки и уменьшим размеры платы или освободим немного места :)

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


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

2 v_mirgorodsky

А Cyclone-II может управлять выходным током драйвера. Наример у Spartan2 можно пин сконфигурить на 2/4/6/8/12/16/24 мА. В принципе, этого уже достаточно чтобы согласовать.

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


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

2 v_mirgorodsky

А Cyclone-II может управлять выходным током драйвера. Наример у Spartan2 можно пин сконфигурить на 2/4/6/8/12/16/24 мА. В принципе, этого уже достаточно чтобы согласовать.

 

Как бы да, но дискретность для Cyclone II достаточно большая, следовательно согласование будет не всегда точным, как в случае со Spartan-ом. Потому, наверное, мы таки оставим series termination резисторы и попробуем взлететь без резисторов подтяжек. Парралельно попробуем вместо согласующих последовательных резисторов поставить закоротки и посмотреть как это оживет. Просто отлаживать дизайн без надлежащей терминации может оказаться мучительно - при возникновении ошибок не понятно на кого грешить - плохое согласование сигналов или лажа в VHDL-коде.

 

:bb-offtopic:

BTW, есть ли у кого материаллы по трассировке DDR памяти? Я как бы понимаю, что вопросы разводки обсуждаются в другом форуме, но считаю что для полноты дискусси было бы полезно оставить какую-то часть материала в этой ветке.

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


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

У меня тут в небольшом проекте тоже Cyclone EP1C3 и одна микросхемка 8x SDRAM. Длина всех дорожек шины данных, DQS и DM от FPGA до SDRAM примерно одинаковая - по 15 мм. Шина адреса и управления чуть подлиннее - по 25 мм.

Двухслойка, вся сигнальная разводка в верхнем слое без переходных отверстий, снизу - полигоны земли и толстые дорожки питания, никаких резисторов, тактовая 80 МГц - работает надежно. Проверил повышением частоты тактирования до 120 МГц - продолжает работать без сбоев, так что 80 МГц в серии проблем не вызывает.

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


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

Вот, собственно, Ваша схема и вызывает наибольшее количество вопросов. Вся теория, которую видел до сих пор, говорит о необходимости подтягивающих резисторов к напряжению терминации, а у Вас их нет :cranky: При чем в документации на микроновскую память было сказано, что это не столько согласование, как елемент включения выходного драйвера в режиме SSTL-II. Вот это-то и вызывает самое большое недоумение - как оно работает? Однозначно - против практики не попрешь.

Извините - долго не отвечал, не так часто здесь бываю. Если что пишите на elphel.com - на info или andrey

Параллельная терминация уже есть внутри Spartan-3 http://direct.xilinx.com/bvdocs/publications/ds099.pdf

Посмотрите поиском по строке "Split resistors with output driver impedance" - там будет картинка. Еще можно поскакать поиском по строке "Digitally Controlled Impedance" - там будет явно написано, что необходимые резисторы уже внутри. Так что схема работает не только "по практике", но и по теории тоже - давно прошли времена, когда работает-не работает приходилось проверять на макетке.

 

PS. У нас проблемы с сервером, так что схемы, на которые я ссылался, теперь не по http://www.elphel.com/3fhlo/10333/10333c.pdf, а по http://www2.elphel.com/3fhlo/10333/10333c.pdf

 

Андрей

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


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

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

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

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

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

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

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

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

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

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