Jump to content

    
Sign in to follow this  
КонстантинТ

Косяки трассировки DDR3

Recommended Posts

Добрый день.

 

Неделю ковыряю плату с DDR3 разведеную китайцами по рефренсу. Все симптомы неустойчивой работы памяти, те тесты памяти в загрузчике проходят, но только даешь нагрузку процу (2 процессора+ медиа процессор), валятся сегментэшини и усе виснет. Питание ядра вычистил по полной, ни пульсаций, ни особых шумов.

 

Предыстория платы такая, 4 слоя, сигнальные слои наружные. Китайцы взяили реф, все что касается трассировки DDR3 - скопипастили. Только в рефе во внутреннм питающем слое, все что находтся под DDR3 сигналами - один

потенциал - питание DDR3 (1,5 вольта). У китайцев - разорваный полигон и их пресекают плейны 1 вольт - ядро,12 вольт - основное питание, 3,3 вольта- питание периферии. На цветной картинке (китайская разводка)

 

1. Синий - 1.5В питание DDR3

2. Зеленый -12В основное питание.

3.Красные полигоны - 1В ядро и 3.3 вольта - периферия.

 

На второй картинке (черен-белая) - референс. Центральный полигон - питание DDR3. Есть подозрение, что из-за этого память сбоит. Что народ думает по этому поводу?

 

 

Приложил файл, как идут сигнальные линии DDR3 над полигонами (у китайцев).

post-6345-1369312183_thumb.jpg

post-6345-1369312351_thumb.jpg

post-6345-1369312785_thumb.jpg

Share this post


Link to post
Share on other sites

А могут ли китайцы подтвердить, что у них она тоже сбоит? Потому как в ДДР3 такие разрывы плэйнов могут быть уже критичными.

А могут быть и программные баги, когда несколько задач, делящие доступ к памяти, друг другу "переходят дорогу". Тем более тесты именно памяти проходят нормально... У нас была такая ситуация, когда долго грешили на память, а в итоге оказалось, что таки в софте была проблема.

Share this post


Link to post
Share on other sites
А могут ли китайцы подтвердить, что у них она тоже сбоит? Потому как в ДДР3 такие разрывы плэйнов могут быть уже критичными.

А могут быть и программные баги, когда несколько задач, делящие доступ к памяти, друг другу "переходят дорогу". Тем более тесты именно памяти проходят нормально... У нас была такая ситуация, когда долго грешили на память, а в итоге оказалось, что таки в софте была проблема.

 

Нет, они только развели,а я этих калек запускаю. По софту - тоже осталось подозрение, посмотрю, то там в кернеле. Там еще интересно, в проце есть внутрення калибровка DDR3 линий. Смотрю по логам и сравниваю с рефом - все примерно одинаково. Вот и грешу на плэйны. В похожей плате (то же от них), пришлось снизить питание, чтобы убрать помехи от импульсных стабилизаторов, тогда она как-то заработала.

 

Share this post


Link to post
Share on other sites

Народ думает что это экстремальный экстрим, разводить DDR3 в четырех слоях, да еще и порезать полигоны опорного слоя. Как будто время остановилось и законы физики перестали работать :)

А чего шестислойку делать не стали.

Как вариант, можно загнать в 3D модель, крупные косяки с импедансом вылезут однозначно.

Чтоб проверить питание, можно попытаться подключить внешнее линейное питание вместо всех основных шин потребления и посмотреть как работать будет. Возвратные токи можно организовать конденсаторами на границах полигонов. Вдруг прокатит.

Edited by fractcon

Share this post


Link to post
Share on other sites
Народ думает что это экстремальный экстрим, разводить DDR3 в четырех слоях, да еще и порезать полигоны опорного слоя. Как будто время остановилось и законы физики перестали работать :)

А чего шестислойку делать не стали.

Как вариант, можно загнать в 3D модель, крупные косяки с импедансом вылезут однозначно.

Чтоб проверить питание, можно попытаться подключить внешнее линейное питание вместо всех основных шин потребления и посмотреть как работать будет. Возвратные токи можно организовать конденсаторами на границах полигонов. Вдруг прокатит.

Решение принимал не я. Мне пришли готовые платы. Ядро уже отрезал, кинул снаружи, немного лучше.

Share this post


Link to post
Share on other sites

Не экстрим. При правильной трассировке все работает, проверено. Но резать несколькими границами трассы ДДР3 мы не стали, пустили в обход.

Share this post


Link to post
Share on other sites
Не экстрим. При правильной трассировке все работает, проверено. Но резать несколькими границами трассы ДДР3 мы не стали, пустили в обход.

На рефе в четырех слоях работает DDR3 1600. Тут - 1300 не хочет.

 

Вторую плату от них запустил (1600 МГц), там правда не 4,а две DDR3 стоят, но разрывов в плэйне нет. Трассировал другой разработчик.

Share this post


Link to post
Share on other sites
Не экстрим. При правильной трассировке все работает, проверено. Но резать несколькими границами трассы ДДР3 мы не стали, пустили в обход.

+1. Я бы тоже резать полигоны не стал. А 4 слоя - это нормально. Теоретически можно попробовать понять путем моделирования в чем-то типа ансиса... Практически - да, в первую очередь налепить конденсаторов на разрывы...

Share this post


Link to post
Share on other sites
+1. Я бы тоже резать полигоны не стал. А 4 слоя - это нормально. Теоретически можно попробовать понять путем моделирования в чем-то типа ансиса... Практически - да, в первую очередь налепить конденсаторов на разрывы...

Те блокировку между питающими? Или с питающих на землю?

Share this post


Link to post
Share on other sites

Между, чтобы переменная составляющая пошла "поперек" полигонов через эти кондеры. Хотя что будет тогда с остальными питаниями - это вопрос...

Share this post


Link to post
Share on other sites
Те блокировку между питающими? Или с питающих на землю?

Ну да, на землю, она же есть хоть одна непрерывная? Если нету, то совсем плохо... Разве что снаружи проводами или плетенкой какой-нибудь соединить.... брр...

Share this post


Link to post
Share on other sites
Ну да, на землю, она же есть хоть одна непрерывная? Если нету, то совсем плохо... Разве что снаружи проводами или плетенкой какой-нибудь соединить.... брр...

Проще уж положить их на полочку, будет неиссякаемый источник запчастей. :cranky:

 

Share this post


Link to post
Share on other sites

Привет.

 

примерно такая же проблема и 2 недели сроку ей. как то даже удивился увидев Вашу тему :)

 

тоже платка с ddr3. в юбуте тест памяти проходит. проходит тест памяти и через jtag отладчик. ядро грузится норм и вроде как работает.

 

Если не сложно опишите поподробней как и при каких условиях у вас происходит падение ядра и почему подозрения на ddr3? и сам лог падения увидеть. (он один и тотже всегда или разный?)

 

У нас ядро падает если запустить пинг с компа на платку вот с такими парамерами: ping 192.169.1.1 -s 65000 -f

 

Конечно первая мысль что причиной падения является сетевая часть. но каким то чудесным образом платка начинает жизнь если оперативку занять делом. например непрерывно копировать файлик (с помощью скрипта) из одной директории в другую.

 

Даже видно через потребление. сам пинг видимо не сильно напрягает оперативку и потребление в данном режиме стандартное (ядро регулярно валится при входящем флуд-пинге). как только запускается скрипт с копированием, то потребление вырастает на 1вт.(ядро живет)

 

Если у вас есть сетевая часть то можете выполнить такой же тест?

 

спасиб!

Share this post


Link to post
Share on other sites
Привет.

 

примерно такая же проблема и 2 недели сроку ей. как то даже удивился увидев Вашу тему :)

 

тоже платка с ddr3. в юбуте тест памяти проходит. проходит тест памяти и через jtag отладчик. ядро грузится норм и вроде как работает.

 

Если не сложно опишите поподробней как и при каких условиях у вас происходит падение ядра и почему подозрения на ddr3? и сам лог падения увидеть. (он один и тотже всегда или разный?)

 

У нас ядро падает если запустить пинг с компа на платку вот с такими парамерами: ping 192.169.1.1 -s 65000 -f

 

Конечно первая мысль что причиной падения является сетевая часть. но каким то чудесным образом платка начинает жизнь если оперативку занять делом. например непрерывно копировать файлик (с помощью скрипта) из одной директории в другую.

 

Даже видно через потребление. сам пинг видимо не сильно напрягает оперативку и потребление в данном режиме стандартное (ядро регулярно валится при входящем флуд-пинге). как только запускается скрипт с копированием, то потребление вырастает на 1вт.(ядро живет)

 

Если у вас есть сетевая часть то можете выполнить такой же тест?

 

спасиб!

Это память. потому что чистили питание, никаких эффектов. На другой плате, где немного лучше разведена память, она работает, но регулярно валится после нагрева, хотя реф нагревали до 100 градусов и все устойчиво. Они скопировали трассировку из рефа, но стакапы совсем другие. Поэтому, без контроля целостности там делать нечего.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this