Порядок работы с системой автоматической трассировки печатных плат Specctra
Дмитрий Иоффе
Работая автоматически, без участия инженера, система автоматической трассировки печатных плат Specctra (ныне Allegro PCB Router) может добиться лишь очень скромных успехов. Запуск системы, например, из меню Route/Autorouters редактора печатных плат САПР PCAD 200х может надолго разочаровать в средствах автоматической трассировки: если так работает одна из лучших систем, то каковы же не самые лучшие… На практике работа со Specctra строится из многих интерактивных сеансов, последовательно приближающихся к желаемому
результату. В этой статье предлагается несколько приемов, позволяющих уменьшить затраты времени на рутинные операции при работе со Specctra на следующих стадиях:
- подготовка входного проекта для Specctra;
- предварительная настройка Specctra при помощи do-файла;
- запуск Specctra;
- передача результата работы со Specctra в САПР разработки печатных плат.
Подготовка входного проекта
В Specctra нет средств создания проекта. Входной проект в формате Specctra должен быть создан в САПР подготовки печатных плат. Рассмотрим его создание на примере двух САПР: PCAD 200х и OrCAD.
В PCAD 200x не предусмотрена возможность явного создания проекта для Specctra. Штатный способ работы с ней предполагает такую последовательность действий:
- вызвать Specctra (как и какую-либо другую программу автоматической трассировки) через меню Route/Autorouters редактора печатных плат РСВ;
- подождать завершения ее работы;
- после закрытия Specctra получить в РСВ разведенную печатную плату.
Тем не менее входной проект для Specctra при этом, конечно же, создается. Делает это утилита
командной строки accel2sp.exe, расположенная в каталоге с исполняемыми файлами PCAD 200х. Чтобы создать проект для Specctra, этой программе при вызове надо передать в качестве аргумента командной строки имя файла печатной платы, созданного в PCAD 200x РСВ. В результате появится файл входного проекта для Specctra, имеющий то же имя, что и наш файл с печатной платой, и расширение dsn. Это текстовый файл, но редактировать его в текстовом редакторе фирма Cadence настоятельно не рекомендует.
Для автоматизации этой процедуры можно создать командный файл. Пусть исполняемые файлы PCAD 200x лежат в папке D:Program FilesP-CAD 2002, а наш файл с платой называется myproject.pcb. Тогда создадим в каталоге с нашим проектом командный файл с именем, например, myprojectbat, состоящий из такой строки:
«D:Program FilesP-CAD 2002accel2sp.exe» myproject.pcb
Теперь мы можем создать входной проект для Specctra двойным щелчком мыши в Проводнике по имени myprojectbat.
Еще эффективнее можно организовать работу в файловом менеджере FAR (www.farmanager.com). В этой программе можно ассоциировать с каким-либо типом файлов не одно, а несколько действий, назначив для каждого действия определенное сочетание клавиш. Нажмем в FAR клавишу F9, выберем из меню раздел «Команды», а в нем пункт «Ассоциации файлов». Нажмем клавишу Insert, чтобы создать группу ассоциаций для файлов РСВ. Появится окно редактирования ассоциаций
файлов. Заполним его так, как показано на рис. 1.
Теперь по нажатию сочетания клавиш Alt+F4 из любого файла *.pcb будет генерироваться одноименный входной проект для Specctra *.dsn.
В системе OrCAD тоже есть специальная утилита для получения входного проекта Specctra из файла печатной платы с расширением max, созданного в редакторе печатных плат OrCAD Layout. Она называется tospec.exe и находится в каталоге Layout. Ее можно вызвать из оболочки Layout через команду меню File/Export/ Layout to Specctra или непосредственно из Проводника или файлового менеджера. Аналогично ей можно передать при запуске имя файла *.тах и получить для Specctra файл проекта. По умолчанию этот файл будет иметь расширение cct, так как расширение dsn используется в системе OrCAD для файлов редактора схем Capture. Имя и расширение файла проекта для
Specctra можно также задать при запуске утилиты во втором параметре:
D:Cadence oolslayout_plus ospec.exe myprojectmax myprojectcct
или ввести в диалоговом окне, появляющемся после запуска утилиты (рис. 2).
Предварительная настройка Specctra при помощи do-файла
Do-файл — это текстовый файл, который содержит команды для Specctra. Каждая команда занимает одну строку. Этот файл можно создавать и редактировать в любом редакторе для неформатированного текста, например в Блокноте. Руководства по Specctra содержат описание огромного количества команд, которое в начале изучения системы может вызвать ощущение безнадежности. Однако не все начинающие знают, что можно обходиться вообще без do-файла, управляя Specctra через ее достаточно понятное меню. Каждая команда, вызываемая
из меню, отображается в белом поле в нижней части окна Specctra. Оттуда эти команды можно копировать и заготовлять впрок для будущего do-файла. (Контекстное меню в этом поле не работает, для копирования надо использовать сочетание клавиш Ctrl+C или Ctrl+Insert.) Кроме того, все команды протоколируются в файле с расширением did, который создается в каталоге проекта в каждом сеансе работы со Specctra, и при необходимости можно достать команды оттуда.
Выбор команд для оптимизации автоматической трассировки — это сложный процесс, граничащий с искусством и вызывающий множество споров. Он зависит от особенностей проекта, опыта и предпочтений разработчика. Желающие ознакомиться с существующими по этому поводу мнениями могут посмотреть, например, раздел на форуме www.electronix.ru, посвященный разводке печатных плат. Здесь мы рассмотрим только несколько команд, которые помогут рационально организовать работу со Specctra.
Эти команды я отобрал исходя только из своего опыта и буду очень рад, если кто-нибудь из читающих этот текст что-нибудь добавит или исправит и напишет мне об этом на [email protected].
Команды для предварительной настройки можно разделить на две группы: команды, которые можно использовать при работе со всеми проектами, и команды для работы с конкретным проектом. Их можно сохранить в одном do-файле или в двух разных и загружать вместе со Specctra при каждом запуске. Отметим, что в одном сеансе работы со Specctra можно выполнять неограниченное количество do-файлов, запуская их через пункт меню File/Execute Do File.
Вот небольшая подборка команд, которые можно использовать для всех проектов. 1) Нажатием клавиши F9 восстановить панорамирование средней кнопкой мыши:
defkey (F9)(bind_mouse_button M zoompan)
Комментарий. Команда defkey назначает «горячие клавиши». В данном случае мы назначили клавише F9 функцию восстановления панорамирования средней кнопкой мыши. Если нажать на среднюю кнопку (или колесо) мыши и очертить мышью прямоугольник снизу вверх (слева направо или справа налево — безразлично), то Specctra отобразит содержимое этого прямоугольника во все рабочее поле. А если аналогично очертить прямоугольник, ведя мышь сверху вниз, то в рабочее поле попадет больший участок платы, причем степень уменьшения масштаба будет прямо пропорциональна размерам прямоугольника. Щелчок средней кнопкой по какой-либо точке изображения платы перемещает эту точку в центр рабочего поля. Это очень удобно, но временами по
непонятным причинам такое поведение средней кнопки мыши отменяется, о чем Specctra честно сообщает в своем протоколе. Восстановить этот режим можно длинной командой bind_mouse_button M zoom_pan, набрав ее в командной строке Specctra (белое поле ввода под рабочей областью, слева от которого надпись Command). Иногда панорамирование начинает «слетать» после нескольких движений мышью, поэтому полезно назначить этой команде «горячую клавишу».
2) Нажатием сочетания клавиш Ctrl+W показать предыдущее поле зрения:
defkey (w Ctrl) (zoom previous)
3) Нажатием сочетания клавиш Shift+P защитить от редактирования все существующие на данный момент проводники:
defkey (p shift) (protect all wires)
И так далее. По образу и подобию этих команд можно составить много других, настроив по своему вкусу рабочую среду Specctra. Команды часто включают фразы на простом английском языке, поэтому они интуитивно понятны и легко составляются. Вот только очень не советую назначать «горячую клавишу» для команды delete all wires! Эта команда не подлежит откату.
Для каждого конкретного проекта целесообразно создать свой do-файл, загружаемый вместе с проектом. В нем можно без возвращения к САПР подготовки печатных плат изменять приоритеты цепей, вводить и редактировать классы цепей и делать множество других полезных вещей. Вот примеры команд для работы с конкретным проектом:
1) Нажатием сочетания клавиш Ctrl+S сохранить результат работы в файле сеанса <имя npoeKTaXses:
defkey (s ctrl)(write session .myproject.ses)
Это заменяет вызов пункта меню File/ Write/Session.
2) Определить ширину проводников по умолчанию равной 0,2 мм:
rule pcb (width 0.2)
3) Показать требуемую область рабочего поля:
zoom coord 99.2 75.8 172.1 148.2
Эту команду удобно использовать во время расстановки компонентов, так как по умолчанию Specctra после запуска показывает все компоненты, в том числе еще не расставленные и находящиеся далеко за границей платы. Числа в команде представляют собой координаты углов требуемой области и, конечно, для каждого случая будут своими. Их можно списать из протокола после панорамирования.
На сайте автора по адресу http://www.dsioffe.narod.ru/myspecctra/do.zip можно найти архив с полными текстами двух описанных do-файлов.
Запуск Specctra
В руководстве по Specctra предлагается очевидный способ запуска программы как обычного приложения: из Проводника или меню Пуск ОС Windows запускается файл specctra.exe. При этом появляется диалоговое окно, в котором оператор вводит имя проекта или сохраненного сеанса работы (обязательно) и, если нужно, имена необходимых дополнительных файлов (рис. 3). Это простой и понятный путь, но многократный ручной ввод параметров отнимает много времени и чреват ошибками.
Для автоматизации запуска Specctra можно создать командный файл. Пусть файл specctra.exe лежит в каталоге D:Cadence toolsspecctrain, в каталоге проекта — do-файл для подготовки работы с этим проектом myproject.do, а в корневом каталоге диска С: расположен do-файл для настройки среды specctrastart.do. Тогда командный файл может выглядеть таким образом (должно быть записано в одну строку):
start D:Cadence oolsspecctrainspecctra.exe myproject.cct -do c:specctrastart.do -do myprojectdo
Здесь без какого-либо ключа в Specctra передается имя файла проекта myproject.cct, а с ключами -do — имена do-файлов. Для загрузки в Specctra файла сеанса понадобится по этому же образцу создать второй командный файл, в котором myproject.cct надо будет заменить на myproject.ses. Оба эти файла должны находиться в каталоге проекта.
Если не использовать в начале строки команду start, то после запуска Specctra
и до конца сеанса останется открыто пустое окно командного файла. Мелочь, а неприятно.
И, опять же, довести идею до совершенства поможет файловый менеджер FAR. Откроем еще раз окно редактирования ассоциаций файлов, показанное на рис. 1, чтобы создать новую ассоциацию. В строке «Одна или несколько масок файлов» введем *.dsn,*.cct,*.ses. В строке «Описание ассоциации» — например, Файлы Specctra. А в строке «Команда, выполняемая по Enter» — такую строку:
D:Cadence oolsspecctrainspecctraexe !.! -do c:specctrastart.do -do !.do
Эта строка, скорее всего, не поместится целиком в поле ввода FAR, но это не имеет значения. Теперь, если мы выберем в FAR файл для Specctra любого вида: *.dsn, *.cct или *.ses, то, нажав на клавишу Enter, мы загрузим в Specctra этот файл, одноименный с ним do-файл и файл c:specctrastart.do. Одним нажатием.
Передача результата работы со Specctra в САПР разработки печатных плат
Для передачи результата работы со Specctra в САПР для подготовки печатных плат мы должны объединить исходный проект с результатом нашей работы, сохраненным в файле сеанса Specctra с расширением ses. Для этого в составе САПР имеются специальные конвертеры. Рассмотрим эту передачу снова на примере PCAD 200х и OrCAD.
В PCAD 200х конвертер называется sp2accel.exe. Эта программа также находится в каталоге с исполняемыми файлами PCAD 200х. Имя файла сеанса передается ей первым и без ключа, а имя файла исходного проекта — с ключом -orig. Таким образом, для нашего проекта мы можем создать в каталоге проекта командный файл, состоящий из следующей строки:
«D:Program FilesP-CAD 2002sp2accel.exe» myproject.ses -orig myproject.pcb
Из этого следует, что строка ассоциации для файлов ses в FAR будет иметь вид:
«D:Program FilesP-CAD 2002sp2accel.exe» !.! -orig Lpcb
Чтобы она не пересекалась с ассоциацией, созданной нами для загрузки файлов в Specctra, ее можно ввести в то же окно для какой-либо другой клавиши или сочетания клавиш, например для Alt+F4.
Результат передачи конвертер сохраняет под именем проекта, но с расширением рс_. Для дальнейшей работы надо удалить или переименовать исходный файл проекта, а затем изменить у полученного файла расширение рс_ на pcb.
В OrCAD конвертер называется specin.exe. Он также расположен в каталоге Layout и может быть вызван или отдельно с передачей ему последовательно имени файла сеанса Specctra и имен исходного и выходного файлов *.тах, или же через меню оболочки Layout File/Import/Specctra to Layout. Работа с ним очевидна и после всего изложенного не требует дополнительных пояснений. Диалоговое окно этой программы показано на рис. 4.
Следует особо отметить, что до окончания работы со Specctra исходный файл проекта не должен редактироваться. В противном случае объединение с ним сеанса Specctra может оказаться невозможным.
Заключение
Мы ознакомились с основными этапами работы со Specctra. При этом получился своеобразный «Design Flow», где на трансляцию файла из САПР подготовки печатных плат, загрузку проекта в Specctra и обратную трансляцию требуется по одному двойному щелчку мыши или по одному нажатию клавиши в FAR.
После прочтения этой статьи может возникнуть вопрос: зачем уделять столько внимания организации входа в Specctra и выхода из нее? Повторюсь: за один запуск программы получить приемлемый результат более чем маловероятно. Неизбежно потребуются перестановки компонентов, удаление части проложенных проводников, их повторная разводка и многое другое, вплоть до изменения принципиальной электрической схемы. Более того, повторное выполнение одних и тех же команд трассировки в одном сеансе работы и в двух разных дает
разные результаты, причем в одном сеансе — часто худшие. Поэтому для повторной автоматической трассировки имеет смысл сохранить результат текущего сеанса в файле ses, завершить сеанс и открыть файл ses в следующем сеансе. Очевидно, что быстрый и безошибочный обмен данными с САПР подготовки печатных плат и такой же запуск Specctra помогут сэкономить время и нервы.
Буду очень рад, если читатели поделятся своим опытом, что-то дополнят или укажут на ошибки и неточности. Я с удовольствием размещу материалы читателей в разделе своего сайта http://www.dsioffe.narod.ru/myspecctra/myspecctra.htm, посвященном Specctra.