Разработка сложных процессорных систем на примере модуля SMARC. Продолжение

в 8:27, , рубрики: Без рубрики
Приветствую!

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 1

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

  • выбор стека платы,
  • документация от производителя процессора,
  • трассировка полигонов питания,
  • расчет волнового сопротивления.

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

Выбор стека платы


Как я уже писал в прошлой статье, для проектирования модуля использовался Template на шести слоях. Повторюсь, шаблон не имеет никаких интерфейсов, только голый процессор, память и их минимальная обвязка. Он содержит рекомендованную производителем CPU трассировку DDR (в моем случае LPDDR4x), а также трассировку основных цепей питания. Если разводку оперативной памяти нужно сохранить полностью, то по питанию придется многое переделывать (об этом было в прошлой статье). Далее вы сами дорабатываете схему в соответствии с необходимым набором интерфейсов.

Оперативная память для данного процессора разведена во внешних слоях (Top/Bottom). Под каждым из них обязательный опорный слой GND. Это необходимо для согласования волнового сопротивления. Полигоны в этих слоях желательно оставить цельными на всей площади платы (если не получается, то обязательно под CPU и DDR). Итого занято четыре слоя. Проанализировав все питающие цепи, пришел к выводу, что для их разводки мне потребуется еще два слоя. Основная сложность состоит в том, что плата довольно узкая и утыкана микросхемами выходных интерфейсов.

Почему не получится сделать на шести слоях как в шаблоне? Вывод всех пинов процессора сделан в двух внешних слоях. Они веером расходятся до микросхем и разъемов, не пересекаясь. При этом большие габариты печатной платы позволяют максимально отодвинуть переходные отверстия питающих цепей от процессора. Для примера приведу четвертый слой Template, который отведен для питания.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 2
Рис.1. Слой питания Template.

Мощные полигоны питания VCC_DDR, VDD_CPU, VDD_LOGIC, VDD_NPU и VDD_GPU полностью занимают еще один слой. То есть становится понятно, что ни в одном, кроме внешних слоев, ничего не вывести. Ниже показано, как это сделано на референсе.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 3
Рис.2. Вывод интерфейсов на референсе RK3568 (DDR3).

Тут сложно разобраться без подсветки сигналов, но все равно видно, что в красном (Top) и синем (Bottom) слоях выводятся проводники целыми широкими шинами. Также оставлены «окна» для переходных отверстий от питаний процессора (Рис. 2.) к PMIC.

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

Если взять для примера Top моего модуля, то видно, что ни одна шина (не считая памяти) не идет прямо в разъем или микросхему. Это происходит как раз из-за необходимости перемешивания проводников в разъеме (по стандарту SMARC).

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 4
Рис.3. Слой Top модуля SMARC RK3568.

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

Примечание: можно было остановиться на восьми слоях. Этого вполне достаточно для данного проекта. В качестве опорных для дифференциальных сигналов можно использовать слои питания, но их неоднородность может повлиять на качество сигналов.

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

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 5
Рис.4. Восемь слоев платы в разрезе.

Документация от производителя


Я хотел бы уделить особое внимание документу «Hardware Design Guide». Он содержит множество схемотехнической информации. Если у вас есть проект Evaluation Board, то новой информации там не будет, разве что пояснения к конкретным решениям. На схемах показано, какие конденсаторы на шинах питания должны быть под процессором и памятью, какие могут быть вынесены. Приведены примеры подключения различной оперативной памяти с информацией о сигналах и согласующих компонентах. Описан принцип подключения сброса CPU (через PMIC либо отдельный супервизор питания). Сделан большой акцент на интерфейсы и их защиту от статики. Вторая часть документа — это PCB. Тут стоит задержаться, так как раздел содержит много полезной информации.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 6

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

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 7
Рис.5. Согласования длин внутри пары и между парами.

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

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 8
Рис.6. Зазор диффпара — полигон.

Расстояние от дифференциальной пары до края опорной плоскости должно быть не менее 40mil. Если сигналы не получается уместить внутри одного опорного полигона либо в качестве опорного используется слой питания (из нескольких полигонов), то сигнальные линии должны пересекать границу полигонов под углом 90 градусов. Нужно учитывать, что это может привести к ухудшению качественных показателей сигнала.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 9
Рис.7. Диффпара и опорный слой.

При согласовании линий внутри дифференциальной пары рекомендуется использовать инструмент «Sawtooth». Картинка ниже поможет правильно подобрать параметры. Здесь w — ширина проводника, S — зазор между проводниками внутри пары. Если сегменты пилы будут высокими и/или короткими, это приведет к рассогласованию сигнала. При увеличении S1 будет теряться связь между проводниками. При значительном уменьшении ширины сегмента между ними начнет расти связь, при которой сигнал проходит не только через проводник, но и сквозь сегмент.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 10
Рис.8. Согласование длины внутри диффпары.

Корректировку длины следует выполнить в начале рассогласования линии. В данном случае расхождение длины начинается слева (нижний проводник короче верхнего на рисунке 9). В этом месте необходимо добавить сегменты увеличения длины.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 11
Рис.9. Место согласования диффпары.

Примечание: дифференциальные пары ведутся под углами, большими или равными 135 градусам.

Картинка ниже описывает, к чему нужно привести топологию. Тут вроде тоже все понятно. Дифференциальная пара должна быть максимально симметрична. В этом случае корректировки не будет либо она будет минимальна. Внутри диффпары не должно быть элементов топологии.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 12
Рис.10. Соседние элементы на плате и переходные отверстия.

При смене слоя (опорной плоскости) при трассировке дифференциальных пар необходимо рядом с сигнальными переходными отверстиями (на расстоянии не более 30mil) симметрично установить экранирующие Via.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 13
Рис.11. Обеспечение возвратного тока сигнальных переходных отверстий.

После того, как выровнены все длины внутри каждой дифференциальной пары, необходимо произвести их выравнивание друг относительно друга (по каждому интерфейсу). Обычно для этого используется инструмент «Accordion», который тоже имеет несколько параметров.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 14
Рис.12. Инструмент «Accordion» для выравнивания диффпар.

Здесь H — это высота подъема проводника над ближайшей опорной плоскостью. На рисунке 12: слева — одиночный проводник, справа — дифференциальная пара.

Примечание: контроль длин выполняется не только для интерфейсов с дифференциальными парами, но и для групп одиночных проводников, таких как: RGMII, SDIO, SPI, I2S и т.д.

Есть один неочевидный момент. Материал, который используется для диэлектрика в печатных платах, имеет неоднородную структуру. Он содержит волокна и эпоксидную смолу, которые имеют различную диэлектрическую проницаемость.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 15
Рис.13. Неоднородность диэлектрика ПП.

При высоких скоростях и длинных линиях рекомендуется использовать один из способов снижения влияния эффекта плетения стекловолокна.

  • Изменить угол наклона печатной платы на 10-35 градусов. Это могут сделать на производстве, повернув текстолит относительно топологии.
  • Необходимо вести трассы под углом относительно платы.

Примечание: у Altium Designer есть хорошие вебинары, где описаны принципы трассировки и согласования дифференциальных сигналов и групп одиночных проводников.

Трассировка полигонов питания


Теперь перейдем к трассировке полигонов. Как я писал ранее, я начал с контроллера питания. «Hardware Design Guide» показывает, как сделать полигоны PMIC и какое должно быть количество переходных отверстий питания/земли. Также есть рекомендации по диаметрам отверстий и пояскам.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 16
Рис.14. Вывод питания из PMIC.

Очень важным моментом является правильный вывод feedback. Приведу пример части схемы питания VDD_GPU, на которой есть пояснение (картинка под схемой), где показано как должен проходить сигнал FB относительно полигона и где должен соединяться с питанием.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 17
Рис.15. Схема питания VDD_GPU.

Теперь как это выглядит на PCB. Левая часть картинки — это PMIC (пунктирный проводник на верхнем слое ныряет в слой полигонов). Правая — слой питания под процессором. Смысл заключается в том, чтобы взять сигнал feedback как можно ближе от точки входа полигона в CPU.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 18
Рис.16. Прохождение сигнала FB VDD_GPU.

Примечание: сигнал feedback не должен соединяться с полигоном на протяжении всей длины — соединение должно происходить в одной точке.

Для сохранения целостности полигона допускается прокладывание дополнительных трасс, чтобы убрать образовавшиеся разрывы.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 19
Рис.17. Восстановление целостности полигона.

Для обеспечения наилучшего питания необходимо правильно расставить переходные отверстия и конденсаторы под процессором. Слева слой Top (не знаю, почему он у них синий), справа Bottom.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 20
Рис.18. Расстановка переходных отверстий и конденсаторов.

Примечание: в слое Top под процессором сделан вырез в полигоне, поэтому соединение «пятаков» питания и земли выполнены проводниками.

В итоге у меня получилась примерно такая картина. Есть тонкие места (в прямом и переносном смысле), но я пока так и не придумал, как это улучшить.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 21
Рис.19. Распределение полигонов питания.

Расчет импедансов


Для высокоскоростных интерфейсов (дифференциальных) волновое сопротивление обычно варьируется от 85 до 100 Ом. Соблюдать его нужно в пределах 10%. Таким образом получается, если сделать все проводники 90 Ом, это удовлетворит требованиям, но где-то на пределе. Производитель печатных плат тоже закладывает зазор в 10% при контроле импедансов и может получиться так, что 100-омная линия из 90-омной станет 80-омной. Если учесть, что трассы не идеальны, а на пути появляются переходные отверстия из слоя в слой, ухудшающие параметры сигнала, может получиться так, что целостность сигнала будет нарушена. На высоких скоростях это может стать фатальным.

Для расчета волнового сопротивления есть отличная программа «PCB Controlled Impedance Si8000». Ниже пример расчета для 100-омной линии во внешних слоях.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 22
Рис.20. Расчет импедансов во внешних слоях.

Слева указана выбранная структура и расположение проводников диффпары на плате. Программа учитывает максимальное количество параметров проводников, начиная от расстояния до опорного слоя и заканчивая диэлектрической проницаемостью маски.

Примечание: нужно понимать, что H1 — это расстояние до ближайшего опорного полигона, а не толщина платы. На многослойных печатных платах это расстояние можно увеличить, сделав вырез в первом от топологии слое, тогда опорным станет следующий.

Для сигналов, идущих во внутренних слоях, есть своя структура. Для примера ниже вариант расчета 90-омной линии. Тут учитываются расстояния до верхнего и нижнего полигонов.

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение - 23
Рис.21. Расчет импедансов во внутренних слоях.

Примечание: толщина линий трассы не должна совпадать с толщинами других проводников, не относящихся к интерфейсу с заданным волновым сопротивлением. Это условие упростит процесс согласования с производством.

В следующей, заключительной, статье (обещаю, что она будет попроще):

  • задание на расчет импедансов и получение рабочего стека,
  • процесс выравнивания дифференциальных пар,
  • экранирование определенных сигналов,
  • мультипликация платы для производства.

Спасибо за внимание и успехов!

Автор: the_bat

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js