Трассировка печатной платы. Часть 2. Задание исходных данных
Евгений Махлин
Введение
Процесс трассировки является, пожалуй, самым трудоемким в разработке печатной платы. В реализации всех требований, необходимых для выполнения трассировки, большое значение имеют несколько факторов:
- правильно составленное техническое задание на трассировку;
- высокая квалификация инженера-конструктора печатных плат;
- использование передовых средств автоматизированного проектирования.
Редактор печатных плат Cadence Allegro позволяет выполнять работу по трассировке печатных плат любой сложности с максимальной эффективностью и минимальными затратами по времени.
После выполнения процесса Fanout, о котором мы говорили в предыдущей статье, начинаем трассировку с задания исходных данных.
Задание параметров для сигналов
Процесс задания параметров для сигналов можно разделить на две основных стадии:
- Создание групп сигналов по характеристикам их удаленности как друг от друга, так и одной группы сигналов от другой. Величины расстояний определяются либо на основе рекомендации производителя компонента, либо на основе стандартов, описывающих соответствующие интерфейсы (PCI, PCI-X, DDR2, DDR3 и др.), либо на основе расчетов по целостности сигнала. Эта опция в Allegro называется Net Spacing Type.
- Определение физических параметров сигналов (ширина линии сигнала на определенном слое печатной платы). Эти параметры определяют путем расчетов, исходя из количества слоев платы, структуры платы, порядка и толщины слоев, а также заданного волнового сопротивления (рис. 1). Эта опция называется Net Physical Type.
Рис. 1. а) Порядок слоев печатной платы с указанием физических характеристик сигналов; б) расчет характеристик сигналов при помощи программы Polar для разных типов волнового сопротивления
Передача требований к параметрам сигналов из схемы в печатную плату
Разумеется, существуют дополнительные характеристики сигналов, требования к которым задаются либо инженером-схемотехником на уровне схемы, либо инженером-конструктором непосредственно в печатной плате. Наиболее распространенные из них:
- определение шин сигналов (Bus);
- дифференциальные пары;
- максимальное количество переходных отверстий в 1 сигнале;
- длина сигнала;
- длина сигнала на внешних слоях;
- длина «стабов» (ответвлений от основной линии сигнала);
- характеристики параллелизма сигналов, проходящих в 1 слое;
- соответствие групп сигналов по длине.
Как было сказано выше, реализовано это может быть на уровне схемы, выполненной, например, в популярном в России схемном редакторе OrCAD (рис. 2а).
Рис. 2. Свойства сигналов в: а) OrCAD; б) Allegro
В случае, когда свойства внесены в OrCAD на уровне файла схемы DSN, после генерации списка соединений (Net List) и занесения его в Allegro эти свойства автоматически появляются в памяти проекта, и инженер-конструктор может начать работать с группами элементов. Опытный разработчик всегда может сказать, какие свойства он бы хотел видеть на уровне схематики, а какие ему будет удобно внести самому.
Все соединения, заведенные в схему, представляются как виртуальные линии, соединяющие ножки компонентов, так называемые Rats Net. Можно увидеть как все сигналы списком (рис. 3), так и отдельные сигналы, их группы, а также сигналы, принадлежащие компоненту или отдельной ножке компонента (рис. 4).
Рис. 3. Rats Net для сигналов на печатной плате
Рис. 4. Опции для отображения групп Rats Net
Для удобства можно делать так называемые «связки» линий, как в автоматическом режиме, так и в интерактивном (функция Bundle) (рис. 5). В этом случае сигналы представлены группой, как единый «пучок», что облегчает визуальное восприятие таких сигналов на плате.
Рис. 5. Связки сигналов на плате (Bundles)
Дифференциальные пары
Процесс трассировки обычно начинается с проведения дифференциальных пар (Differential Pairs, DP), если они есть в проекте. Их можно задать и в схеме, и непосредственно на плате (о задании параметров мы говорили выше). Как внести значения, мы рассмотрим далее в разделе, посвященном редактору правил Constraint Manager. Отметим лишь, что в Allegro можно достаточно быстро определять параметры дифференциальных пар, как глобально, так и по слоям, создав соответствующий «закон», а затем только присваивая его нужным группам сигналов.
Возможности Allegro позволяют вести 2 сигнала в дифференциальной паре, одновременно обеспечивая заданную ширину линии и расстояние между ними в выбранном слое (рис. 6).
Рис. 6. а) Rats Net для дифференциальных пар; б) трассировка дифференциальной пары
В интерактивном режиме можно выбрать такие опции, как огибание объектов в процессе трассировки, соблюдение дистанции до других объектов, сдвиг переходных отверстий. При выполнении операции «слайд-сдвига» сдвигаются две линии одновременно. При необходимости можно проводить и отдельно каждую линию. Для этого нужно только выбрать опцию трассировки одного сигнала (Single Trace Mode) (рис. 7).
Рис. 7. Режим одиночной трассировки сигнала в DP
Если все параметры для DP введены, то в режиме реального времени можно видеть, соответствует реальное состояние трассировки DP заданным значениям или нет. Это касается как разницы в длине внутри DP, так и длины всей DP или ее части, и соответствия длины каждого члена в DP внутри группы сигналов, определенной по параметрам разницы по длине (Match Group) (рис. 8). При соответствии параметрам пользователь видит зеленое табло, при несоответствии — красное; если трассировка не завершена или отключен режим проверки на ошибки, то желтое. Этот «светофор» позволяет очень быстро оценить положение вещей и внести изменения в процесс трассировки, не прибегая к дополнительным действиям.
Рис. 8. Параметры DP в режиме реального времени
Трассировка одиночных сигналов производится также в ручном или интерактивном режиме. Находясь в режиме трассировки, нажатием правой кнопки мыши можно вызвать дополнительное меню (рис. 9), позволяющее отменить предыдущее действие, добавить переходное отверстие, изменить активный слой, поменять слой, войти в режим изменений толщины сигнала на заданном участке (Neck Mode) и т. д.
Рис. 9. Меню правой кнопки мыши в режиме трассировки
Дополнительные функции трассировки — подрезание и замещение
И еще о двух полезных функциях трассировки.
Одна из них связана с «подрезанием» групп сигналов активным сигналом (тот сигнал, трассировка которого производится в настоящий момент). Очень удобно, когда нужно изменить направление движения уже проведенных сигналов, не выходя из режима трассировки. Это достигается включением режима Clip Danglings Line в разделе Options (рис. 10).
Рис. 10. Режим подрезания соседних сигналов
Вторая опция связана с интерактивным замещением вновь проведенного участка сигнала взамен предыдущего, без выполнения дополнительных команд по удалению ненужных участков. Это происходит при использовании функции Replace Etch (рис. 11).
Рис. 11. Функция замещения вновь проведенного участка: а) до завершения команды; б) после завершения команды
Весьма активно в процессе трассировки инженер использует функцию динамического редактирования, когда при изменении траектории сигнала можно сдвинуть или изменить положение соседних сигналов, сохраняя при этом заданные расстояния между объектами трассировки. Можно подключить при этом функции сдвижки переходных отверстий (Shove Vias) и сглаживания дефектов разводки (Smooth) (рис. 12).
Рис. 12. Динамический редактор трассировки
Выравнивание задержек
Когда перед конструктором печатных плат стоит задача выравнивания сигнала по длине в группе, уместно воспользоваться функцией задержки сигнала (Delay Tune) (рис. 13).
Рис. 13. Функция Delay Tune
Выделяя нужный сигнал курсором, в опциях можно выбрать стиль выравнивания сигнала (рис. 14):
- Какова форма «змейки» (Accordion, Trombone, Saw tooth).
- Будет ли выполнено выравнивание относительно центра линии или нет.
- Шаг выравнивания (1X space), где Х — ширина линии.
- Прямой угол, под 45° или скругление.
- Разрешены ли ошибки во время выравнивания или нет.
Рис. 14. Стили выравнивания сигналов: а) Accordion; б) Trombone; в) Saw tooth
И после этого сразу появляется интерактивное окно, сигнализирующее о состоянии сигнала относительно заданных параметров по длине. Суммарное положение группы сигналов отражено в таблице Constraint Manager, о чем мы поговорим в следующий раз.
Когда позволяет пространство, на плате можно «захватить» группу сигналов, чтобы трассировать их одновременно, включая или не включая интерактивное соблюдение дистанции, согласно заданным условиям (рис. 15).
Рис.15. Одновременная трассировка группы сигналов
Вызвав подменю правой кнопкой, можно выбрать режим выбора расстояний между сигналами (Route Spacing) (рис. 16). Таким образом, можно сэкономить место, уменьшив расстояние до минимума (Minimum DRC) или установив свое (User defined).
Рис. 16. Режим выбора расстояний между сигналами
Локальные области с особыми правилами
Бывает так, что возникает необходимость задать так называемые локальные области на печатной плате, в которых действуют другие законы как по расстоянию между сигналами, так и по их ширине. Особенно часто это применяется в области компонентов BGA, где расстояние между переходными отверстиями не позволяет провести сигнал с необходимой шириной или невозможно сохранить заданное расстояние.
В Allegro за это отвечает так называемая «область ограничений» (Constraint Region) (рис. 17).
Рис. 17. Область ограничений в меню палитры изображений
Определив размеры заданной области ограничений, можно задать внутри этой области необходимые законы соблюдения расстояний от сигнала до переходного отверстия, до ножки компонента, а также собственно ширины линии, если это необходимо (рис. 18).
Рис. 18. Область ограничений для BGA-компонента
Далее в процессе трассировки программа автоматически выдерживает заданные параметры внутри области ограничений (рис. 19).
Рис. 19. Автоматическое выдерживание толщины сигнала внутри области
Очень важное место в трассировке сигна лов занимает определение полигонов и работа с ними. САПР Allegro предоставляет в этом направлении широкое поле деятельности и большие возможности. Начнем с того, что само определение полигонов выполняется достаточно просто и может быть реализовано несколькими способами.
Одно из преимуществ редактора Allegro — то, что почти любую из функций САПР можно выполнить несколькими способами, в зависимости от ситуации, требований и ограничений, накладываемых на конкретную разработку. Это может быть вызов функции нажатием кнопки мыши, из контекстного меню, основного меню, горячей клавишей или же вызовом макрокоманды.
Редактор Allegro дает возможность в начале работы над полигонами определить их необходимые параметры для проекта в целом. Существует два типа полигонов, по их свойствам: динамический и статический. Основная разница заключается в том, что в динамическом полигоне освобождение всех объектов, не принадлежащих данному сигналу, происходит автоматически. В статическом это приходится делать вручную. При необходимости можно переводить полигон из одного состояния в другое.
Позитивные и негативные полигоны
Еще одно основное разделение полигонов — это так называемые «позитивные» и «негативные» полигоны. Разница заключается в том, что для позитивных полигонов освобождение от объектов осуществляется согласно заданным параметрам расстояний от объектов (отверстий, ножек, сигналов и других полигонов) до данного полигона. Этих полигонов может быть несколько на одном слое, и можно изменять параметры расстояний для каждого полигона в отдельности.
В негативном полигоне освобождение осуществляется за счет определения отступа, Anti Pad, то есть виртуального расстояния для высвобождения, определяемого для каждого типа сквозного отверстия. Негативные полигоны, как правило, используются только на внутренних слоях для цепей «земли» и питания (GND, VCC). Преимущества негативных полигонов состоят в экономии памяти и увеличении быстродействия компьютера. Недостаток состоит в том, что невозможно освободить полигон в каждом конкретном случае на заданное расстояние. Это важно, если мы имеем дело с сигналами высокого напряжения, когда расстояние между объектами трассировки меняется. Выбор вида полигона осуществляется на уровне определения порядка слоев печатной платы (рис. 20).
Рис. 20. Выбор негативного типа полигона
Если мы говорим о полигоне, который определяется для всей платы (сигналы GND, VCC), то его можно определить, скопировав область, разрешенную для трассировки (Route Keep In), на нужный слой, задать ей тип «полигон» (динамический или статический), а затем сжать или расширить полигон по размеру при необходимости. Потом можно присвоить этому полигону требуемую цепь — «земли» или питания (рис. 21).
Рис. 21. а) Создание полигона путем копирования границ трассировки (Route Keep In); б) созданный полигон в слое L2-GND1
Как было сказано выше, для позитивных динамических полигонов параметры задаются в начале проекта глобально (рис. 22).
Рис. 22. а) Стиль заполнения полигона (Shape Fill); б) выбор типа и параметров (Gerber); в) определение типа освобождения полигона: согласно DRC или с добавкой к заданному значению (Clearances); г) параметры термосоединения (Thermal Relief)
Создать полигон можно, не только используя меню для создания стандартных форм (прямоугольник, круг), но и произвольно.
Полигоны можно копировать из слоя в слой, присваивая им другие цепи, менять им статус с динамического на статический и обратно, объединять полигоны, принадлежащие к одному сигналу, в один полигон (Merge Polygon), а также выполнять с ними другие необходимые действия.
Как уже было сказано, в динамическом режиме высвобождение полигона от объектов происходит автоматически, но иногда приходится осуществлять «косметические» действия или, если речь идет о статическом полигоне, освобождать объекты в ручном режиме. Для этого существует команда Manual Void в меню Shape (рис. 23).
Рис. 23. Меню для создания и редактирования полигонов
Выбирая полигон, конструктор вызывает подменю и определяет необходимый режим высвобождения полигона (рис. 24).
Рис. 24. Режимы высвобождения полигона
Полученные высвобождения (Voids) можно потом переносить на другое место или копировать. Результаты действия этой команды вы можете видеть на рис. 25.
Рис. 25. Варианты Voids, полученные разными способами
Копирование фрагментов и разделение проекта на части
Разумеется, фрагменты трассировки можно копировать с места на место, переносить из слоя в слой и даже менять местами, то есть, по сути, работать с ними как с группами элементов.
Еще одна замечательная функция, существующая в Allegro, позволяет существенно сократить время разработки как всего проекта в целом, так и процесс трассировки в частности. Речь идет о Design Partition или параллельном проектировании (рис. 26).
Рис. 26. Опция для параллельного проектирования
Смысл этой функции состоит в том, что проектировщики могут разделить плату на несколько областей для размещения, трассировки и т. д. Проект может быть разделен вертикально (на разделы) с «мягкими» границами или горизонтально (по слоям). В результате разработчик может работать над своим фрагментом проекта, а «мастер» может видеть все разделы и производить обновление разделов, чтобы контролировать процесс проектирования в целом (рис. 27).
Рис. 27. Менеджер управления процессом параллельного проектирования
Автотрассировка в программе Specctra
Ведя речь о трассировке в среде Allegro, нельзя не упомянуть о связи редактора с программой автоматической трассировки Specctra. В любой момент можно осуществить экспорт печатной платы в трассировщик Specctra, произвести необходимые действия по автоматической трассировке и импортировать результат обратно в Allegro (рис. 28).
Рис. 28. Меню экспорта-импорта в программу автоматической трассировки Speсctrα
Однако заметим, что для современных скоростных плат с высокой плотностью соединений возможности автоматической трассировки в Specctra, к сожалению, весьма ограниче ны, поэтому в таких случаях мы используем прекрасные возможности Allegro для ручной трассировки, чтобы выполнить проекты заказчиков грамотно, качественно и в короткий промежуток времени.
Зная язык написания подпрограмм (SKILL), специалисты нашего дизайн-центра пишут и используют в своей работе вспомогательные программы, что делает работу над проектами еще более эффективной. Скажем, один из последних выполненных по заказу канадского клиента проектов, трассировка сложнейшей печатной платы с BGA-компонента-ми и памятью типа DDR2 — проект, который при обычной ручной трассировке делался бы 2-3 месяца, а к автотрассировке вообще был непригоден, в итоге выполнен нашими разработчиками за 1 месяц. Это удалось сделать благодаря использованию всех возможностей редактора Allegro и подпрограмм, ускоряющих выполнение рутинных операций.
Заключение
Можно суммировать преимущества трассировки в Allegro следующим образом:
- В отличие от аналогов, редактор печатных плат Allegro учитывает реальную геометрическую форму проводников, что позволяет значительно повысить плотность монтажа. Возможность использования современных технологий — лазерных микроотверстий — дает разработчику инструмент для обеспечения сверхмалых межслойных переходных отверстий (microvia) диаметром 50-100 мкм.
- Технология Allegro включает в себя мощные функции прокладывания проводников в интерактивном режиме. Можно автоматически добавлять на плату переходные отверстия с учетом технологии ее изготовления и топологии новых проводников. Многоуровневый механизм отмены выполненных операций позволяет вернуться к наиболее удачной, по мнению разработчика, топологии.
- Прокладку проводников можно вести в различных стилях (ортогональном, диагональном, с произвольными углами), а также в оптимальном с точки зрения производства и предотвращения перекрестных искажений варианте. Для наиболее критических участков платы или цепей могут быть разработаны специфические правила проектирования и ограничения.
- Автотрассировщик Allegro базируется на современной технологии бессеточного проектирования, при которой достигается наибольшая эффективность использования всей области трассирования печатной платы. Система с легкостью обрабатывает компоненты с шахматным расположением контактных выводов. Используемые алгоритмы трассировки по диагонали, работающие в сеточном и бессеточном режимах, обрабатывают компоненты нестандартных размеров, которые ранее требовали трассировки вручную.
В результате достигается наивысшая скорость проектирования при максимальном использовании площади и минимальном числе слоев печатной платы.