AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Никогда не брался до этого за конструкции с такими частотами, соответственно и не изучал подобных вопросов :). Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они? SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет :), так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов? Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу? И еще: может быть у кого-то есть пример подобной разводки - был бы очень благодарен :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Эти резисторы решают задачу по устранению так называемого 'звона' который появляется от крутого фронта сигнала (импульс) на высоких частотах. Что касается длины проводника, то уровень перекрестных помех и влияние их друг на друга - увеличиваются. Так что тут как 'Бог на душу' придется. Старайтесь вести шины - одноя трассой не создавая 'паутины'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Camelot 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Линии данных, клока, и контрольных сигналов должны иметь примерно одинаковую длину. Если длина линий не превышает 7 сантиметров, то можно и не выравнивать (из личного опыта на 100 МГц работает). Резюк согласования ставил только на линию клока возле СДРАМ (33 Ом). Подтяжки на WEn, RASn и т.п., ставил возле СДРАМ чипа (5К6). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба А ширина/промежуток дорожек? Их можно вести по пол-миллиметра? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба А ширина/промежуток дорожек? Их можно вести по пол-миллиметра? <{POST_SNAPBACK}> Хоть микроны. Лишь бы замыкания не было... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Camelot 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Ведите 0.3, дешевые двухслойки делают с такой точностью. Минимальное расстояние между проводниками соответственно тоже 0.3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Большое спасибо за ответы по существу :). Кстати, из личного опыта на 100 МГц работает это тоже на двухслойке делалось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Camelot 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Нет, это была 4x слойка, но в Вашем случае все будет тоже ОК (старайтесь придерживаться одной длины линий и чтоб было меньше переходных отв). Поставте возле каждой ноги питания СДРАМ - кондеры 0.1 мкф (можно поставить 1 на на 10 мкф ближе к микросхеме) и выполните после разводки заливку земли с одной стороны и питания с другой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
popeye 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Использую 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 пс, и все прекрасно работало. Линии управляющих сигналов задерживать вообще неправильно, они же защелкиваются вместе с адресом/данными! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Кондеры по питанию - это святое :). Линии я тоже, конечно, постараюсь выдержать одной длины и по возможности без переходных. Кстати, а как лучше будет развести общие линии на два чипа SDRAM? Разветвлением или последовательно от одной к другой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Спасибо за прояснение ситуации. Я уже понял - задерживать никакие сигналы не буду, резисторные сборки предусмотрю на все линии (в крайнем случае, действительно, нулевки можно поставить). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба В том-то и дело, что все в кэш не влезет. Кроме того, что прошивка будет грузиться в SDRAM, необходимо еще будет обрабатывать довольно большьшие массивы данных (до мегабайта, а в дальнейшем, возможно, и больше). Так что желательно было бы не снижать частоту памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба В том-то и дело, что все в кэш не влезет. снижать частоту памяти. Нельзя так говорить. Прочитайте где нибудь про работу кэша. Но если кратко - если процессору надо считать что-то из SDRAM он лезет в кэш, если попадания нет, просиходит сначала заполнеие строки кэша. При этом происходит чтение не слова (4 байт) а нескольких слов (строки кэша), в разных реализациях по разному, 4,16 итд слов.Степень попадания в кэш делают достаточно большой, обычно более 95%. Программа по сути всегда выполняется их кэша. Для памяти данных это не так очевидно. Но как правило (по моим наблюдениям ) количество переменных в функции обычно не превышают десяток и адресуются они к последовательным участкам памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndyBig 5 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Это верно для выполнения обычной циклической программы, оперирующей с ограниченным объемом данных. Но когда требуется, к примеру, инкрементировать каждое значение огромного массива данных, кэш очень мало помогает. Все равно все эти данные должны быть считаны из внешней памяти и возвращены обратно в нее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться