При трассировке сложных печатных плат, с использованием высокоскоростных интерфейсов, инженерам необходимо четко контролировать длину критических сигналов, ведь на высоких частотах каждый неучтенный миллиметр проводника будет сильно влиять на целостность сигнала, а значит и на работу вашего устройства в целом.
В этой статье я попытаюсь объяснить логику работы инструментов Tuning Meter и Target Lengths, так как они не всегда рассчитывают значения длины проводников одинаково.
Как всегда, все самое интересное под катом.
Обзор
- Как рассчитывается допустимый диапазон длины проводника и верхний / нижний его пределы?
- Tuning meter vs. Target Lengths
- Почему существуют различия между длинами в Target Length и тем, что отображается в Tuning Meter?
В этой статье термин FromTos (FT) используется для описания физического соединения между двумя выводами (контактами), это понятие также используется в Constraints Manager (CM).
Пример 1: Соединение точка-точка
Это самый простой пример — двухточечное соединение для цепи, состоящей из 2х контактов. Минимальная и максимальная длина проводника устанавливается в Constraint Manager, как показано на рисунке ниже.
* Важное примечание #1: Когда длина определена с помощью минимальной / максимальной длины, настройка допуска по умолчанию в CM (Setup Settings – Design Configuration: Default Tolerances) НЕ применяется!
Как в диалоговом окне Target Lengths, так и в Tuning Meter будет отображаться текущая (Current) длина и диапазон (Range), в данном случае от 1800th до 1900th. Поскольку фактическая длина разведенного проводника меньше 1800th, в столбце «Решение» (Solution) отображается 1800th.
Пример 2: Топология типа MST без переходных отверстий
Второй пример — 3-контактная цепь, топология типа MST (Minimum Spanning Tree), без межслойных переходов:
В этом случае «Диапазон» (Range) отображается как 1800:1900, как мы и задали в CM. Этот проводник оттрассирован с длиной 1805,95th, что является наименьшей возможной длиной для данного случая. Таким образом, в столбце Solution отображается самая короткая достижимая длина в 1805,95th.
Короче говоря, решение зависит от текущей длины проводника и заданного диапазона:
- Если значение «Current» меньше чем нижняя граница ограничения => Solution = нижняя граница диапазона
- Если значение «Current» больше чем верхняя граница ограничения => Solution = верхняя граница диапазона
- Если значение «Current» находится в пределах нашего диапазона => Solution = текущая длина проводника
Чтобы обновить значение Solution в окне Target Length нажмите иконку Refresh Solution.
Пример 3: 3-контактная цепь с пользовательской топологией
Данная цепь аналогична цепи, использованной в примере 2, но теперь мы для нее задали пользовательскую топологию.
Топология, заданная как пользовательская (Custom), по сути, представляет собой цепочечную (Chained) топологию, содержащую два FTs, один от пина 16 микросхемы IC5 до пина 9 микросхемы IC3 и другой от пина 9 микросхемы IC3 до пина 12 микросхемы IC3.
Используются такие же минимальные/максимальные пределы (1800: 1900).
Как мы можем видеть на картинке ниже, трасса проходит внутри контактной площадки IC3-9, а затем уже выводится из пэда. Этот кусок трассы, который встроен в площадку, также будет влиять на общую длину проводника. Кроме того, поскольку теперь есть два FTs, сегмент трассы, который выделен ниже, является частью обоих FTs — это общая, так называемая длина «пенька» (stub length) — максимальное расстояние от трассы до вывода при Т-образном соединении.
* Важное примечание #2: Сегменты трасс, которые встроены в пэды, влияют на общую длину трассы и учитываются при трассировке.
Ниже вы можете увидеть поперечное сечение трассировки нашей пользовательской топологии:
Расчет целевого диапазона зависит от того, находится ли длина FT внутри или вне этого диапазона. Так как min/max значения длин проводника в CM задано как 1800: 1900 th, то весь диапазон составляет 100 th, или 1850 ± 50 th. Два сегмента трассы отображаются зелеными в столбце «Current», потому что их общая длина находится в пределах допуска:
363,02 + 1509,63 = 1872.65 th.
Два FT перечислены в отдельных строках, так как каждый сегмент трассы может быть подстроен индивидуально.
Обратите внимание, что значения «Current» соответствуют сумме длин сегмента трассы и длины «пенька»:
Для FT1 = 294,880 th + 68,144 th = 363,04 th
Для FT2 = 1441,486 th + 68,144 th = 1509,63 th
Итак, каков же достижимый диапазон подстройки для каждого сегмента трассы? Так как одновременно может настраиваться только одна цепь, при настройке сегмента FT2 может быть изменена длина только того участка трассы, которая НЕ имеет общих сегментов с FT1.
Обратите внимание, что диапазон каждого отдельного участка совпадает по величине с диапазоном, определяемым минимальным/максимальным значениями в Constraint Manager, т.е. 100th или ± 50 th.
Когда алгоритм определяет диапазон подстройки для отдельных сегментов FT, он задает верхнюю границу сегмента, беря максимальное значение диапазона, определенного в CM, в данном случае 1900 th, и вычитает из него длину трасс других сегментов, входящих в эту цепь. Помните, что длина общей заглушки (stub lenght) не учитывается, следовательно мы получаем следующее:
- для FT1 верхняя граница рассчитывается как 1900 th — 1441,486 th = 458,514 th. Целевой диапазон для FT1 получается [358,51: 458,51].
- для FT2, соответственно, 1900 th — 294.880 th = 1605.120 th. Целевой диапазон для FT2 получается [1505.120: 1605.120]
Пример 4: 3-контактная упорядоченная цепь с переходными отверстиями и общим сегментом трассы
В этом примере влияние длины самого переходного отверстия не учитывается (т.е. Via Length Factor в меню Setup > Setup Parameters > Via Definitions равен нулю).
Используется такая же минимальная/максимальная длина [1800: 1900], что и в примерах выше. FTs (сегменты трассы) определяются аналогичным способом в CM, где FT1 идет от IC2-3 (нижний слой) к IC3-18 (верхний слой), а FT2 идет от IC55-18 к IC2-3.
Обратите внимание, что есть общая трасса, которая имеет длину 46.278 th с переходным отверстием (с 1 на 8 слой), но мы пока не учитываем длину перехода. Как общая трасса (показана красным цветом), так и короткая трасса (показана синим цветом ) встроены в соответствующие пэды. Длина от переходного отверстия на верхнем слое до центра площадки IC3:18 составляет 21,278 th.
Определение целевых диапазонов выполняется по аналогии с предыдущим примером. Ширина диапазона задается на основе ограничения Min/Max — 100 th или ± 50 th.
Для FT1 центральное значение диапазона вычисляется как: 1850 th — 21,278 th = 1828,72 th. Таким образом, целевой диапазон для FT1 получается 1828,72 th ± 50 th, или [1778,72: 1878,72].
Для FT2 центральное значение диапазона находится как: 1850 th — 93,26 th — 1663,57 th = 93,17 th, следовательно, целевой диапазон составляет 93,17 th ± 50 th, или [43.17: 143.17].
Теперь давайте рассмотрим случай, когда длина FT находится вне диапазона. В этом случае расчет основан на текущей длине и отклонении, которое является отрицательным, если трасса слишком короткая, и положительным, если трасса слишком длинная. Отклонение рассчитывается путем вычитания значения «Solution» из значения «Current», как показано на рисунке ниже.
Меняем в CM диапазон на [1840: 1900] или 1870 ± 30th.
В этом конкретном случае обратите внимание на отрицательное отклонение. Это означает, что оба FT слишком короткие, и алгоритм расчета целевого диапазона примет это во внимание.
Для FT1 нижнее целевое значение (TL) определяется путем добавления (отрицательного) отклонения к текущей длине, поскольку это будет самое близкое соответствие, поэтому
TL1 = 1803,11 + 15,05 = 1818,16 th.
Так как у нас допуск ± 30 th, следовательно, целевой диапазон получается [1818.16: 1878.16].
Аналогично для FT2: TL2 = 67,56 + 0,56 = 68,12 th, диапазон получается [68,12: 128,12].
Пример 5: 3-контактная упорядоченная цепь с переходными отверстиями и общим сегментом трассы (с учетом коэффициента длины переходного отверстия)
В последнем примере вводится коэффициент длины Via. Этот параметр можно настроить через меню Setup > Setup Parameters на вкладке Via Definitions.
В данном примере у нас следующий стэк слоев:
Примечание: Толщину материалов можно найти в редакторе стэка (Stackup Editor).
Трасса подключается к ПО на 1 слое и выходит на слой 3. Другое соединение переходит со слоя 3 на слой 8.
Обратите внимание, что для расчета длины ПО, толщина меди начального и конечного слоев НЕ учитывается.
В поперечном сечении топология сигнала будет иметь следующий вид:
С коэффициентом длины ПО Via Lenghth Factor = 0 и ограничением минимальной/максимальной длины [1800: 1900], целевой диапазон в окне Target Length будет выглядеть так, как показано на рисунке ниже.
Значение «Current» в данном случае — это просто длина проводника, поэтому:
FT2 = 93,264 + 1680,948 + 46,278 = 1820,49
FT1 = 21,278 + 46,278 = 67,556
Когда мы установим коэффициент длины ПО Via Lenghth Factor = 1, у нас в окне Target Length будет следующий результат:
Так как коэффициент Via Lenghth Factor = 1, то система добавит к длине соответствующих сегментов трассы длину перехода между слоями, и текущая длина этих сегментов FromTos увеличится:
Current2 = Трасса + ПО1 + ПО2 = 1820,49 + 27,7 + 86,5 = 1934,69
Current1 = Трасса + Сквозное ПО = 67,556 + 114,9 = 182,46
И, поскольку длины сегментов теперь слишком велики, верхняя граница диапазона (TU) рассчитывается как:
TU1 = Current1 — Deviation1 = 1934,69 th — 77,1 th = 1857,59 th, следовательно, весь диапазон составляет [1757,59: 1857,59]
TU2 = Current2 — Deviation2 = 182,46 — 7,27 = 175,19 th, диапазон составляет [75,19: 175,19].
Заключение
Рассмотренные примеры показывают как работает алгоритм расчета целевой длины проводника с учетом его топологии, а также влияния фактора длина переходных отверстий в инструментах Target Length и Tuning Meter.