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

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

|
Никогда не брался до этого за конструкции с такими частотами, соответственно и не изучал подобных вопросов  . Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они? SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет  , так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов? Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу? И еще: может быть у кого-то есть пример подобной разводки - был бы очень благодарен  .
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 30)
|
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%. Программа по сути всегда выполняется их кэша. Для памяти данных это не так очевидно. Но как правило (по моим наблюдениям ) количество переменных в функции обычно не превышают десяток и адресуются они к последовательным участкам памяти.
|
|
|
|
|
Sep 27 2005, 14:29
|

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

|
Цитата(AndyBig @ Sep 27 2005, 17:16) Но когда требуется, к примеру, инкрементировать каждое значение огромного массива данных, кэш очень мало помогает. Почему? Обратились к первому элементу массива не попали в кэш, считали строку кэша, содержащую несколько элементов массива, инкрементировали эти элементы, не обращаясь в к внещней SDRAM, потом снова не попали в кэш, вытолкнули первую строку. На инткрементирование нескольких элементов попадающих в строку ушло два обращения к памяти.
|
|
|
|
|
Sep 27 2005, 15:41
|

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

|
Цитата(AndyBig @ Sep 27 2005, 18:01) Обращений было столько, сколько слов было считано. Под обращением я имею в виду выставление адреса строки, адреса колонки, чтение/запись самой строки кэша (нескольких слов). Cамо слово действительно читается за 1 Master clock, без этих операций. Но нас то интересует на сколько MasterClock-ов будет занята шина. При включенном кэше обращение к SDRAM сводится к операциям между кэшем и SDRAM. А он, как правила, общается целиком строками.
|
|
|
|
|
Sep 29 2005, 19:11
|
Местный
  
Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987

|
Начиная где-то с PCI-ных 33 МГц, а может, и при гораздо меньших частотах, вопрос о том, ставить или нет согласующие резисторы даже не должен возникать - конечно ставить. Начиная с тактового сигнала - это в первую очередь. Его, к тому же, надо разводить по методу точка-точка от источника (это замечание важно, если у вас несколько потребителей). Затем по приоритету идут сигналы управления. А на частотах выше 66 МГц профессионально выполненный дизайн мог бы и на линиях данных-адреса согласующие сопротивления иметь. Поверьте: дешевле заложить это сейчас, чем потом страдать от плохого качества сигналов при попытках отловить нестабильно проявляющиеся "демонические" баги (это те, вначале были, потом, вроде, самоликвидировались, а перед завершением работ на ночном прогоне опять вдруг появились :-)). Наука утверждает, что на таких частотах дорожки на печатной плате надо рассматривать как длинные линии. Так давайте же их и будем так рассматривать, а значит, проявлять к ним должное уважение. Ударим согласующим резистором по бездорожью, т.е., по плохому сигналу!  ... Напоследок приведу пару примеров из собственного опыта. 1. Резко отрицательный. Линия тактирования последовательного канала нескольких DSP от TI была разведена в виде развесистого дерева, согласующих резисторов нету вовсе, частота тактирования - всего 2 МГц!! (из-за этого, собственно, мы и пренебрегли всеми элементарными правилами. И как скоро оказалось - очень зря!). Вот уж была проблема, так проблема: время от времени, совершенно случайно и редко к тому же (просто беда для дебагирования), происходили сбои в передаче данных по последовательному каналу. Неделю или даже больше мы потратили на последовательное сужение круга подозреваемых, и в конце концов виновник был найден. Им оказался малюсенький такой горбик на фронте клока, наблюдавшийся в точке прихода клока к конкретному DSP (в дополнение ко всему, не все DSP еще и были подвержены этой проблеме с искажением данных!). А возникал этот горбик из-за отсутствия согласования и многочисленных отражений в нашей весьма неоднородной линии передачи тактового сигнала (развесистое дерево). Решить проблему удалось, подрезав кое-где дорожки и напаяв навесные провода, разводящие клоки от источника к каждому потребителю персонально, через согласующие резисторы (хорошо плата прототипная была, допускалась еще одна итерация в разработке, а не то...). 2. Положительный. Коммуникационный контроллер с SDRAM, работающей на частоте 50 или 66 МГц. Согласующие резисторы на линиях управления и клоков, клоки разведены по методу точка-точка. Все стабильно работало, несмотря на то, что шина данных и адреса представляла из себя довольно рискованную развесистую и несколько длинноватую конструкцию (по другому было чипы не расположить, получалось только еще хуже).
|
|
|
|
|
Sep 30 2005, 06:08
|

Знающий
   
Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283

|
Цитата(Paul @ Sep 30 2005, 09:12) Все вышесказанное про топологию и резисторы напоминает гадание на кофейной гуще. Самое надежное будет промоделировать линии (хотя бы одну) на предмет отражений в любом профессиональном САПРе (Cadence SPB, Hyperlinx, ADS и т.д.). Попробуйте промоделировать поведение сигнала проходящего через переходные отверстия. Так что моделировать безусловно надо, но некоторая доля "гадания на кофейной гуще" останется.
--------------------
Иван Сусанин - первый полупроводник
|
|
|
|
|
Sep 30 2005, 07:04
|

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

|
Цитата Поверьте: дешевле заложить это сейчас, чем потом страдать от плохого качества сигналов Именно поэтому я и начал выяснять все эти вопросы еще на этапе проектирования схематики - хотелось бы заложить максимум защиты от всяческих бяк до разводки и отдачи в производство платы  . Промоделировать в Hyperlynx-е я обязательно попробую. Правда, придется еще позадавать вопросы и по самому Hyperlynx - я в нем за пол-дня так и не смог до конца разобраться  . А вообще - огромное спасибо всем ответившим, в этой новой для меня области я узнал очень много нового и полезного  .
|
|
|
|
|
Oct 5 2005, 04:37
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470

|
Цитата(AlexandrY @ Oct 4 2005, 22:40) В мобилах и SDRAM и DDRAM делают без всяких резисторов. А частоты там бывают под 100 МГц. Резисторы вообще если стявят, то не для согласования, а чтобы убрать перенапряжения на фронтах, а то некоторые чипы от них умирают. Даже элементарная логика говорит, что если согласовывать, например шины данных, то на обоих концах надо ставить резисторы, а ставят почему-то только в одном месте. Это очевидно, не для согласования. Чем гадать зачем и почему, проведите моделирование какой-либо шины, и сами увидите, какие резисторы помогают, а какие нет, ставить один или несколько. Перенапряжение здесь непри чем, а резисторы ставят на линиях именно для согласования и чем выше частота, тем лучше надо согласовывать. Зачем это нужно и как это делать многократно описано в книгах по SI.
|
|
|
|
|
Oct 5 2005, 08:02
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470

|
Цитата(AlexandrY @ Oct 5 2005, 10:43) Моделировать здесь смешно. Вы убьете кучу времени на разработку, перепроверку своей модели, поиск моделей IO-портов компонентов (многих их которых просто не найдете), и придете к выводу, что согласовывать тут нечего. Согласование - это термин все таки в данном контексте неуместный. Плыты с плотной компоновкой меньше всего нуждаются в согласовании. У Вас сильно устаревшие данные. Все нормальные производители предоставляют модели своих компонентов. На все компоненты, работающие на частотах более 10 МГц, модели доступны. Искать только надо уметь. Согласовывать везде есть чего, если хочешь получить нормальный результат, просто где-то это более важно, а где-то нет. А на частотах более 50 МГц согласование обязательно, или хотя бы проверка согласования. Не надо также забывать, что многие современные микросхемы имеют в своем составе элементы согласования - фиксированные или управляемые внешними сигналами. Плотная компоновка как раз наиболее критична к качеству линий. Близко расположенные проводники обладают существенной взаимной связью, которая может привести к негодности платы. А на счет кучи времени - учите матчасть и набирайтесь опыта - не понадобится куча времени.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|