Зачем нужен «Помощник формирования правил»
Вполне очевидно, что текстовый способ задания правил проектирования обладает неоспоримым преимуществом: гибкостью и практически неограниченными возможностями расширения. Чтение и понимание текста правил для человека, который осознал основные принципы построения строк, даже просто прочитав предыдущую статью, не должны создавать особых проблем. Попробуйте сделать это самостоятельно, изучив фрагмент описания правил на рис. 1.
Другое дело, если вам предложат самостоятельно написать подобные правила. Надо держать в памяти ключевые слова и конструкции, имена цепей, слоёв, регионов и т.д. Думается, что справиться с этим может только очень опытный пользователь.
«Помощник формирования правил», сокращённо Помощник, позволяет пользователю, особенно начинающему, сконструировать строки правил, обеспечивая доступ к шаблонам языковых структур и данным проекта, необходимым для формирования правила. Надо сразу подчеркнуть, что Помощник не является заменой текстового редактора, его задача именно помочь создать новую строку правил. На рис. 1 показан редактор правил со свёрнутым Помощником. В этом режиме область текстового редактора в рамках окна максимизируется, что позволяет одним взглядом охватить значительную часть правил (а для простых проектов и весь набор правил). Рисунок 2 представляет полностью развёрнутый Помощник, а рис. 3 – частично свёрнутый, где присутствует только небольшая панель управления строками правил.
Панель управления строками позволяет удалить текущую активную строку правил (номер подсвеченной строки показывается в панели), задать приоритет правила, передвигая активную строку вверх/вниз по тексту (помним, что приоритет правил, расположенных ближе к началу текста, выше), а также создать новую строку с шаблоном выбранного типа правила (новая строка создаётся перед текущей активной, кроме строки установления единиц измерения длины, которая по умолчанию всегда формируется на первой строке).
На рис. 4 представлен список шаблонов строк, формируемых при создании строки в порядке, соответствующем порядку, представленному на рис. 3, в выпадающем списке типов правил. Заметим, что текстовый редактор подсвечивает строки правил с ошибками. Сразу видно, что шаблон – это не законченное правило, а общая синтаксическая конструкция для правила определённого типа. Даже для продвинутых пользователей, предпочитающих создавать текстовое описание правил непосредственно в редакторе, использование шаблона позволит ускорить формирование строки и избежать лишних ошибок в синтаксисе, создав шаблон и заполнив его уже в редакторе.
Разбираем, как сформировать простое правило
В полностью развёрнутом виде Помощник позволяет заполнить поля только что созданного шаблона. Для каждого типа правил предусмотрена своя диалоговая форма. Мы не будем здесь рассматривать все поддерживаемые формы, важно понять основные принципы. На рис. 5 (a–h) представлены шаги по заполнению шаблона правил «Максимальное число ПО в цепи» (одного из самых простых). На рис. 5а мы видим две строки с шаблоном соответствующего правила.
Верхняя строка была создана заранее для сравнения. Нижняя строка только что создана, и Помощник позволяет редактировать поля шаблона с помощью специальной диалоговой формы. В строке Цепь: собраны управляющие элементы для заполнения поля предиката, обозначенные в шаблоне как <Nets>.
Рисунок 5b показывает результат нажатия кнопки Добавить для случая, когда в качестве выбранной цепи выбрано значение Любая.
Рисунок 5с показывает результат изменения числа разрешённых переходных отверстий с «0» на «1». Заметим, что изменение значений параметров автоматически отражается в полях параметров строки шаблона.
Сразу же отображается и текст комментария. Для полей предикатов поведение другое. Это принципиальное ограничение, которое связано с тем, что текстовое представление может поддерживать сложно структурированные логические выражения, отражение которых один в один с помощью простого пользовательского интерфейса не всегда возможно. Строка правила в варианте на рис. 5b и 5с уже функциональна и не содержит ошибок, что сразу же отражается на подсветке.
Рисунок 5d иллюстрирует нажатие кнопки Очистить, которая возвращает поле предиката в состояние, соответствующее изначальному шаблону.
Рисунки 5e, 5f, 5g показывают процесс заполнения поля предиката цепи: сначала происходит выбор цепей и классов цепей в списке (список оформлен как фрагмент логического выражения в соответствии с синтаксисом языка описания правил).
После подтверждения в списке выбор цепей отражается как логическое выражение, которое можно добавить в поле предиката строки правил.
В данном примере был выбран класс цепей «Power» и цепь «GND», результирующее логическое выражение в предикате выглядит как (NetClass="Power" || Net="GND").
Рисунок 5h показывает результат дополнительного выбора цепей «MDDR_DQ5» и «MDDR_DQ0».
После выбора этих цепей и добавления окончательное логическое выражение в поле предиката строки выглядит следующим образом:
(NetClass="Power" || Net="GND") || (Net="MDDR_DQ5" || Net="MDDR_DQ0"),
т.е. добавление нового фрагмента логического выражения обрамляется скобками. В данном случае это может показаться излишним, но при формировании предикатов, например, в формах для зазоров (рис. 6), это часто принципиально необходимо.
Формируем правило «Зазоры»
Форма для создания строки правил, задающих Зазоры, предполагает формирование трёх полей предикатов. Первые два предиката осуществляют фильтрацию объектов цепей по типу объекта и имени цепи (имени класса). Третий предикат определяет место применения правил с учётом фильтрации по слоям (классам слоёв), регионам и областям заданного стека слоёв (рис. 6a). Как мы уже показали на предыдущем примере, выбор объектов для формирования предикатов реализован таким образом, чтобы уже в процессе выбора объекты проекта были интегрированы в конструкции языка. Так, пользователь, выбирая тип объекта «Трек», сразу же видит, что фильтрация по трекам осуществляется выражением IsTrack (6b), фильтрация по цепи «GND» – выражением Net="GND" (6c), по слою «SIGNAL_TOP» – выражением Layer="SIGNAL_TOP" (6d), по региону «Region0» – Region="Region0" (6e) и т.д. Таким образом достигаются цели прямого доступа к данным проекта, соблюдения и изучения формата языка.
Выбор, сделанный в выпадающем списке, отражается в виде результирующего выражения, где выбранные пункты объединяются через операцию «Или» (||) (рис. 6f). А вот выражения из разных списков (в рамках одного предиката) объединяются через операцию «И» (&&). Для примера, на рис. 6f после нажатия Добавить для всех трёх предикатов сформируется строка:
Clearance: (((IsTrack || IsVia) && (NetClass="Power" || Net="GND")); Any) on (((Layer="SIGNAL_TOP" || LayerClass="SIGNAL_BOTTOM") && Region="Region0")) = {Min:0,3; Nom:0,5}.
Здесь как раз видно, что поля из левых и правых списков объединяются по «и», а также становится понятным, зачем каждое выражение обрамляется скобками. Отметим также, что в случае выбора всех пунктов списка (значения Любая, Любой) в обоих полях при добавлении формируется выражение Any. На рисунках ниже представлены два варианта дополнения первого предиката и результирующие строки после добавления.
Результирующая строка для Варианта 1 (рис. 7):
Clearance: (((IsTrack || IsVia) && (NetClass="Power" || Net="GND")) || (IsMetal && Net="GND"); Any) on (((Layer="SIGNAL_TOP" || LayerClass="SIGNAL_BOTTOM") && Region="Region0")) = {Min:0,3; Nom:0,5}.
Результирующая строка для Варианта 2 (рис. 8):
Clearance: (((IsTrack || IsVia) && (NetClass="Power" || Net="GND")) || IsMetal); Any) on (((Layer="SIGNAL_TOP" || LayerClass="SIGNAL_BOTTOM") && Region="Region0")) = {Min:0,3; Nom:0,5}.
Заметим, что в последнем случае выбор цепи «Любая», в соответствии с правилами языка, просто не отображается, добавляется только || IsMetal.
Ещё несколько правил
На примере двух правил мы показали основные принципы работы с помощником формирования строки правил. Мы не будем разбирать формы для всех правил, при понимании изложенных выше принципов работа с ними не должна вызвать затруднений, отметим только часть из них, имеющую некоторые особенности.
Форма для задания правил выравнивания в группах сигналов (рис. 9a) позволяет конструировать выражение предиката на основании имён групп. Форма для задания ограничений на сигналы (рис. 9b) работает с именами сигналов, сгенерированными на основе имён пары выводов, задающих сигнал. Отличительная особенность этой формы – возможность выбрать альтернативный вариант набора параметров. Обе формы имеют возможность задания единиц измерения (связано это с тем, что ограничения могут быть выражены как в единицах измерения длины, так и во временны́х единицах).
Формы для задания правил разрешения Т-соединений (рис. 10a) и разрешённых стилей переходных отверстий (рис. 10b) имеют разные способы задания параметров.
В формах для задания ширин треков (рис. 11a) и параметров дифференциальных пар (рис. 11b) особой специфики нет, но они одни из самых используемых и самых насыщенных параметрами.
Важное замечание
В настоящее время Помощник позволяет только создавать новые строки правил. При переходе на уже существующую строку правил выдаётся сообщение о том, что редактирование ранее созданного правила возможно только в текстовом виде (рис. 12).
В дальнейшем предполагается допустить возможность частичного редактирования (по крайней мере, параметров), но, как мы говорили, возможности языка описания правил гораздо шире, чем любого пользовательского интерфейса.
Итак, в этой статье мы рассмотрели «Помощник формирования правил» для нового текстового редактора правил проектирования топологии печатных плат, появившегося в версии Delta Design 4.0. Пользовательский интерфейс Помощника позволяет сформировать набор правил, достаточный для любого проекта печатных плат. При этом текстовый редактор остаётся базовым инструментом работы с правилами. Продвинутые пользователи могут использовать все возможности языка. Но и для них Помощник будет весьма полезен, обеспечивая доступ к данным проекта, формируя корректные конструкции правил, которые можно впоследствии оптимизировать.
© СТА-ПРЕСС, 2025