|
Демпферные резисторы в линиях контроллер-SDRAM, Насколько они необходимы? |
|
|
|
Sep 27 2005, 10:43
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Никогда не брался до этого за конструкции с такими частотами, соответственно и не изучал подобных вопросов  . Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они? SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет  , так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов? Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу? И еще: может быть у кого-то есть пример подобной разводки - был бы очень благодарен  .
|
|
|
|
|
Sep 27 2005, 11:42
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Большое спасибо за ответы по существу  . Кстати, Цитата из личного опыта на 100 МГц работает это тоже на двухслойке делалось?
|
|
|
|
|
Sep 27 2005, 12:28
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750

|
Цитата(AndyBig @ Sep 27 2005, 14:43) Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они? SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет  , так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов? Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу? А что за рекомендация по волновому сопротивлению линий для SDRAM? Это же просто LVTTL! Да и 80 МГц - это не частота. У меня было два проекта с SDRAM: в одном стоял SO-DIMM модуль (на котором есть согласующие резисторы), в другом просто микросхемы SDRAM без каких-либо резисторов. В обоих случаях частота была 100 МГц, но на четырехслойке. Так что наличие резисторов вовсе не является необходимым. С другой стороны если хотите подстраховаться, то почему бы не поставить в схему на все сигналы маленькие резисторные сборки, которые немного съедят места на плате, но позволят поэкспериментировать с разными номиналами, в т.ч. и 0 Ом. По поводу длины линий. По-моему нет никакого смысла в удлинении клока, ну улучшите вы время setup, а время clock-to-out увеличится, зачем это надо? Если же делать все "по науке", тогда надо в первую очередь просмотреть времянку контроллера и памяти, и только потом думать, надо ли чего задерживать, а если надо, то делать "не в полтора раза длиннее", а учитывать абсолютную длину проводников на плате. Но в данном случае выравнивать длины сигналов вообще не нужно, т.к. на типовом FR4 задержка распространения составляет примерно 50 пс/см. В моем устройстве с модулем SO-DIMM длина линий не выравнивалась вообще, и разница в длине линий шины данных доходила до 5,5 см (!), но это получается менее 300 пс, и все прекрасно работало. Линии управляющих сигналов задерживать вообще неправильно, они же защелкиваются вместе с адресом/данными!
|
|
|
|
|
Sep 27 2005, 13:11
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Цитата(AndyBig @ Sep 27 2005, 13:43) SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. при соотношении !/2 (80/160) все в кэше будет лежать, можно master clock понижать и дальше. DK работает при 1/3. В отладочной плате EVM9200 http://www.ucrouter.ru/hardware.htmlбез резисторов я понижаю до 1/4: http://www.ucrouter.ru/reply.php?page=4&id=341,376
|
|
|
|
|
Sep 27 2005, 14:07
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Цитата(AndyBig @ Sep 27 2005, 16:34) В том-то и дело, что все в кэш не влезет. снижать частоту памяти. Нельзя так говорить. Прочитайте где нибудь про работу кэша. Но если кратко - если процессору надо считать что-то из SDRAM он лезет в кэш, если попадания нет, просиходит сначала заполнеие строки кэша. При этом происходит чтение не слова (4 байт) а нескольких слов (строки кэша), в разных реализациях по разному, 4,16 итд слов.Степень попадания в кэш делают достаточно большой, обычно более 95%. Программа по сути всегда выполняется их кэша. Для памяти данных это не так очевидно. Но как правило (по моим наблюдениям ) количество переменных в функции обычно не превышают десяток и адресуются они к последовательным участкам памяти.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|