Знакомство с пакетом OrCad 9.1. Урок 4. Редактор свойств Property Editor
Каждый объект схемы, будь то компонент, проводник, контакт, иерархический блок или порт, имеет некоторый набор характеристик, параметров или атрибутов. В пакете OrCAD они называются свойствами (properties).
Все статьи цикла:
- Знакомство с пакетом OrCad 9.1. Урок 1. Структура и возможности OrCAD 9.1, (Компоненты и технологии №1’2002)
- Знакомство с пакетом OrCad 9.1. Урок 2. Проектирование схем, (Компоненты и технологии №2’2002)
- Знакомство с пакетом OrCad 9.1. Урок 3. Проектирование иерархических блоков, (Компоненты и технологии №3’2002)
- Знакомство с пакетом OrCad 9.1. Урок 4. Редактор свойств Property Editor, (Компоненты и технологии №4’2002)
- Знакомство с пакетом OrCad 9.1. Урок 5. Как создать свою личную библиотеку, (Компоненты и технологии №5’2002)
- Знакомство с пакетом OrCad 9.1. Урок 6. Как создавать символы компонентов, (Компоненты и технологии №6’2002)
- Знакомство с пакетом OrCad 9.1. Урок 7. Как задавать внешние воздействия, (Компоненты и технологии №7’2002)
- Знакомство с пакетом OrCad 9.1. Урок 8. Моделирование схем, (Компоненты и технологии №8’2002)
- Знакомство с пакетом OrCad 9.1. Урок 9. Как проектировать схемы c шинными структурами, (Компоненты и технологии №9’2002)
Свойства записываются в следующем формате: <имя свойства> = <значение свойства>, например, Type = Input, Net Name = OUT1 или Graphic = 7404. Convert (рис. 1).
Большинство свойств, приведенных на рис. 1, на самом деле не видны на экране или высвечиваются только их значения. Здесь они специально визуализированы, чтобы пояснить назначение и форматы каждого. Добавим, что это далеко не полный перечень свойств объектов схемы.
Некоторые из них можно редактировать, оставаясь в режиме проектирования схемы, другие — системные (библиотечные) — недоступны для редактирования, например параметры контактов компонента. Они имеют атрибут R — только для чтения. К сожалению, этот атрибут не виден из редактора свойств Property Editor. В нем такие свойства помечаются иначе: их значения выделяются курсивом, например Source Package = 7404. Значение 7404 записано курсивом. Попробуйте удалить или отредактировать это число, и вы убедитесь, что оно не подвластно вашим действиям.
Поначалу редактор свойств может показаться неудобным и непонятным. Во всяком случае, так случилось со мной, — я даже некоторое время избегал пользоваться его услугами. Но потом все встало на свои места, и Property Editor превратился в привычный рабочий инструмент.
Редактор свойств вызывается несколькими способами. Проще всего дважды щелкнуть мышкой на том объекте, параметры которого вы собираетесь отредактировать. Можно поступить иначе. Выделите один или несколько объектов, требующих редактирования свойств, щелкните правой кнопкой и исполните команду Edit Properties… . Та же самая команда есть и в выпадающем меню. Но самый быстрый способ запустить редактор свойств — нажать комбинацию клавиш Ctrl+E.
Нарисуем схему, показанную на рис. 1, выделим все ее объекты (комбинация клавиш Ctrl+A) и вызовем редактор свойств (Ctrl+E).
На экране появится диалоговая панель Property Editor в виде электронной таблицы, напоминающей популярную программу Microsoft Excel (рис. 2).
Она содержит семь вкладок по числу типов объектов: Parts, Schematic Nets, Pins, Title Blocks, Globals, Ports и Aliases. Для каждого объекта схемы отводится одна строка, а в столбцах записываются их свойства. Следовательно, на пересечении строки и столбца (в ячейке или клетке) будет записано значение конкретного свойства для конкретного объекта. Например, в столбце Graphic для компонента с позиционным обозначением U1B (столбец Part Reference) указано значение 7404.Convert — логически эквивалентная форма графического изображения.
Просмотрите бегло содержимое каждой закладки и закройте панель.
Прежде чем начать работу с данным редактором, хочу обратить ваше внимание на одну особенность интерфейса — он не имеет столь привычной кнопки OK. А как без нее сохранить сделанные изменения?
Оказывается, все очень просто. Вносимые в таблицу свойств изменения будут автоматически перенесены на схему в момент еe закрытия или смены закладки. Если вы хотите увидеть внесенные изменения в текущий момент, нажмите на кнопку Apply (Применить).
Проделаем самую простую вещь — заменим для верхнего инвертора U1A (рис. 1) его графическое описание с нормального (Normal) на инверсное (Convert). Сделаем на данном компоненте двойной щелчок мышью и, когда откроется таблица редактора Property Editor с единственной строкой, выберем свойство Graphic.
Опять щелкнем левой кнопкой на значении 7404.Normal свойства Graphic и в выпадающем списке укажем новое значение: 7404.Convert. Переместим панель редактора свойств так, чтобы был виден редактируемый компонент, и нажмем на кнопку Apply. Тут же вы увидите внесенные изменения: индикатор инверсии (небольшая окружность) переместился с выхода УГО на его вход.
Проделаем еще один эксперимент. Выделим столбец Implementation Type и нажмем кнопку Display… На открывшейся диалоговой панели Display Properties укажем формат вывода данных на экран — Name and Value (показывать имя и значение), после чего нажмем OK. Под редактируемым символом появится строчка: Implementation Type = <none>. Описанными только что действиями мы визуализировали свойство и его значение. Впрочем, значения-то у него как раз и нет — <none>.
Теперь изменим его значение. Щелкнем левой кнопкой на клетке <none> и в открывшемся списке выберем значение VHDL. Закроем панель редактора свойств и сразу же увидим, что он отреагировал на наши изменения.
Наконец, отредактируем значение свойства Designator, заменив секцию A на секцию F, и сделаем активной другую закладку, например, Pins. В этот же момент редактор перенесет на схему сделанные изменения. Кстати, тут самое время обратить внимание, что все клетки (кроме первого столбца) на закладке Pins заполнены курсивом. Это значит, что в них ничего изменить нельзя.
Вы уже догадались, что именно кнопкой Display… были визуализированы все свойства, показанные на рис. 1. Но как же выполнить групповую операцию, чтобы не «мучиться» с каждым свойством в отдельности? Разместим в рабочем окне редактора схем новый компонент 7408 и попробуем вывести на экран все его свойства.
Дважды щелкнем на нем мышью и в открывшемся окне редактора свойств выделим всю строку. Как и в программе Excel, для этого достаточно наехать курсором на ее номер (до появления черной горизонтальной стрелки) и нажать левую кнопку мыши.
Теперь самое время воспользоваться кнопкой Display. Когда появится панель Display Properties, укажем формат Name and Value (показывать имя и значение) и нажмем OK. Все шестнадцать свойств появятся на экране (рис. 3).
Мы видим, что некоторые свойства, например Implementation или PCB Footprint, не имеют значений. Это означает, что соответствующие клетки редактора Property Editor пустые.
Если надо выделить не все свойства, а только некоторые из них, то такая работа выполняется при нажатой клавише Ctrl.
Табличный редактор Property Editor позволяет не только редактировать свойства объектов, но и создавать новые. Их называют пользовательскими (user property). Для этого существует кнопка New… . Щелкните на ней мышью и затем введите имя нового свойства (например, my_property).
В окне редактора свойств появится новый столбец с указанным именем. Обратите внимание, клетка, в которую предстоит ввести значение нового свойства, изначально заштрихована. Это говорит о том, что объект пока еще не обладает данным свойством. Если вы закроете панель, не задав новому свойству никакого значения, то оно потеряется при следующем запуске редактора.
Пользовательские свойства можно не только создавать, но и удалять (кнопка Delete Property). Если говорить более точно, то из электронной таблицы удаляется не само свойство, а лишь его значение. И только позднее, при новом запуске редактора, вы обнаружите, что он повыбрасывал «пустые» пользовательские свойства. На системные свойства действие кнопки Delete Property не распространяется (not deletable).
Вероятно, у вас уже появлялось желание избавиться от «лишних» свойств, к примеру от тех, которые не имеют значений. Их слишком много, они не помещаются на экран и приходится делать скроллинг.
Удалить их нельзя, это мы уже знаем. Но оказывается, системные свойства можно скрыть, сделав их невидимыми. Это делается так же, как и в таблицах Excel: вы «захватываете» мышью правую границу ненужного столбца и буксируете ее к левой, уменьшая ширину до нуля. Чтобы восстановить спрятанные свойства, достаточно дважды щелкнуть мышкой на заголовке любого столбца.
По умолчанию редактор расставляет свойства в алфавитном порядке. Если вы захотите перетасовать их по своему желанию, то надо выделить столбец, затем «прижать» его левой кнопкой мыши и отбуксировать в нужное место.
Однако вся проделанная работа может оказаться напрасной, если вы экспериментировали с фильтром <All>, а именно он устанавливается по умолчанию при запуске редактора свойств. При новом вызове редактор Property Editor возвращает все к первозданному виду, сохраняя, правда, пользовательские свойства (при условии, что им определены значения).
Имя рабочего (текущего) фильтра устанавливается в поле Filter by (вверху справа на панели Property Editor). Фильтр <All> показывает все возможные свойства объектов. Это, пожалуй, его единственное достоинство. Фильтр <All> нельзя удалить, но его «сервисные услуги» весьма ограничены. Щелкните правой кнопкой на заголовке любого столбца, и в открывшемся меню выделите строку Filters. Вы увидите, что все команды (кроме Add Filter…) для работы с фильтром <All> недоступны, в том числе и команда Remove Current Filter — удалить текущий фильтр.
Откройте в поле Filter by выпадающий список фильтров и выберите следующий по порядку фильтр Capture. Повторите описанные выше действия, и вы убедитесь, что теперь все команды «живые».
Подсчитайте число видимых свойств — теперь их десять. Вызовите вновь всплывающее меню и выполните команду Filters/Invert Filter (рис. 4). В окне редактора появятся шесть спрятанных свойств. Этот простой эксперимент показывает, что так же, как и в таблицах Excel, мы можем отдельные столбцы (свойства) делать невидимыми. Впрочем, для нас это уже не новость. Новым является способ, как это сделать быстрее.
Для названных целей существует команда из Filters menu, которая называется Filters/Hide. Выделите какой-нибудь столбец, например Value, и исполните названную команду: свойство станет невидимым. Командой Filters/Invert Filter посмотрим спрятанные свойства и убедимся, что столбец Value «перекочевал» в список скрытых свойств.
Проделаем обратную операцию: командой Filters/Show сделаем свойство Value видимым и снимем флажок с опции Invert Filter.
Другими словами, электронные таблицы можно приспосабливать под свои задачи, однако разумнее для этих целей создать свой собственный фильтр. Вызовем всплывающее Filters-меню и исполним команду Filters/Add Filter. В открывшемся окне введем его имя (например, my_filter).
По умолчанию в новом фильтре появятся все свойства выделенного объекта, и они получат статус Undefined (неопределенные). Командой Filters/Show отметим необходимые для нашего применения свойства, а остальные сделаем невидимыми, сняв флажок с опции Show Undefined. Теперь ненужные свойства «не путаются под ногами» и работать гораздо удобнее. Ну а если понадобится какое-то спрятанное свойство, ему всегда можно установить статус Show и сделать доступным для наблюдения и редактирования.
Некоторые особенности работы редактора свойств можно почувствовать только при работе с иерархическими схемами. Поэтому исключительно для учебных целей создадим простой проект multi_inv.opj, содержащий два инвертора 7404 (U1A, U2A) и два одинаковых иерархических блока HB1 и HB2, внутри которых находится по одному такому же инвертору (рис. 5). Для простоты мы даже не станем соединять их проводниками.
Обратите внимание, в обоих иерархических блоках используется один и тот же инвертор с позиционным обозначением U1A. Но ведь в реальной конструкции это два разных физических элемента. Несколько позже мы исправим обнаруженный дефект, а пока посмотрим на свойства инвертора, входящего в иерархические блоки HB1 и HB2. Для этого надо дважды щелкнуть на любой из копий схемы замещения иерархического блока (рис. 5), вызвав редактор Property Editor (рис. 6, а).
Верхняя и единственная строка таблицы (с номером 1) описывает свойства объекта определенного типа (Instance-property), в нашем примере — инвертора 7404, входящего в иерархический блок с именем inv. Ничего нового мы здесь не видим.
Слева от имени блока находится небольшой знак «плюс»
, щелкнув на котором, вы обнаружите все вхождения (размещения, местоположения) данного элемента в иерархической схеме (рис. 6, б). В нашем проекте их всего два — одна копия инвертора находится в блоке HB1, другая — в блоке HB2. Свойства, определяемые этими строками, в фирменной документации называются Occurrenceproperty — свойства конкретных экземпляров объекта. В таблице они выделяются строками желтого цвета.
И опять мы не видим ничего примечательного: информация в желтых строчках дублирует содержимое белой строки, то есть конкретные экземпляры при размещении их в иерархических блоках унаследовали все свойства от своего родителя — инвертора 7404.
А теперь выполним автоматическое присвоение позиционных обозначений в нашей иерархической схеме. Выделим в менеджере проекта строку multi_inv.dsn и исполним команду Tools/Annotate… . На открывшейся диалоговой панели в разделе Action (Действия) выберем опцию Unconditional reference update — обновление позиционных обозначений всех компонентов. В разделе Mode (Режим) укажем на опцию Update Occurrence (для всех вхождений объекта в проект).
Не обращайте внимания на предупреждение редактора о том, что выбранный режим не является предпочтительным, иначе позиционные обозначения инверторов в иерархических блоках HB1 и HB2 сохранят одно и то же имя.
Ну вот, наконец-то полученный результат устраивает нас: инверторы в блоках HB1 и HB2 помещены в разные секции U1C и U1D. Это видно и на принципиальной схеме (из-за экономии места она здесь не приводится), и в таблице редактора свойств (рис. 6, в).
Обратите внимание, редактор Property Editor автоматически открыл и желтые строки с Occurrence-свойствами. Он поступает так только в том случае, когда хотя бы одно индивидуальное свойство отличается от свойств «родителя», то есть имеет собственное (уникальное) значение. В нашем примере это единственное свойство — Designator = D для инвертора U1D в иерархическом блоке HB2. Редактор помечает такие свойства снятием штриховки. Все остальные Occurrence-свойства заштрихованы, то есть являются копиями с «родителя».
Выделите ячейку с уникальным свойством и нажмите клавишу Del. Щелкните на кнопке редактора Apply (Применить) и вы увидите, что в силу вновь вступило соответствующее родительское свойство.
Заканчивая разговор о редакторе свойств Property Editor, отмечу, что это очень мощный инструмент, и к нему следует относиться с должным уважением. Конечно, как и любой программный продукт, он не лишен недостатков, например, редактор не показывает весь проект, а только те объекты, которые расположены на активной странице схемы.
При знакомстве с редактором свойств весьма полезной может оказаться картинка его рабочего окна (рис. 7), на котором в наглядной форме показано многое из того, о чем шла речь на этом уроке. Надеюсь, на первых порах она поможет вам сориентироваться и в одном из самых запутанных вопросов, связанных с Instance- и Occurrence-свойствами. Вероятно, между этими понятиями такая же связь, как в объектно-ориентированных языках программирования между понятиями объект и экземпляр объекта.
У редактора свойств Property Editor есть два вполне приличных «помощника»: это табличный редактор Browse Spreadsheet editor и табличный редактор упаковочной информации компонентов Package Properties spreadsheet editor.
Редактор Browse Spreadsheet editor может работать в двух режимах: в режиме просмотра объектов проекта (Browse) и в режиме редактирования их свойств.
Чтобы вызвать редактор для работы в режиме просмотра, надо перейти в окно менеджера проекта, выделить схемную страницу, папку или весь проект целиком, а затем активизировать команду Edit/Browse Parts (или любую другую из разрешенного перечня). Редактор поинтересуется, какие свойства показывать: Instance или Occurrence. Укажем на Occurrence-свойства, хотя этот режим и не является предпочтительным.
На экране появится электронная таблица (рис. 8) со списком всех элементов нашего проекта. Обратите внимание, в этой таблице перечислены не только компоненты, входящие в основную иерархическую схему (HB1, HB2, U1A, U1B), но и все прочие элементы, являющиеся «начинкой» блоков HB1 и HB2 (U1C и U1D).
Если дважды щелкнуть на имени любого элемента в левом столбце, то активизируется или откроется окно со схемой, в котором находится выбранный компонент, он будет выделен и помещен в центральную часть окна.
Попробуйте что-нибудь отредактировать в этой электронной таблице, и вы испытаете разочарование: кроме сортировки списка по строкам, она ничего не позволяет сделать.
Чтобы появилась такая возможность, надо выделить один или несколько (с помощью клавиш Ctrl или Shift) объектов, которые вы собираетесь редактировать, а затем исполнить команду Edit/Properties… или нажать комбинацию клавиш Ctrl+E. На экране появится диалоговая панель Browse Spreadsheet (рис. 9), и теперь многие ячейки таблицы допускают редактирование.
Некоторые свойства по-прежнему не доступны ни для редактирования, ни для удаления. Ячейки с такими свойствами закрашиваются в черный цвет, если щелкнуть на них левой кнопкой мыши.
Удалять можно только те свойства, которые определил сам пользователь. Для их создания используется кнопка New, а для удаления — кнопка Remove.
Вероятно, вам уже не терпится узнать ответ на вопрос, в каких же ситуациях лучше использовать Browse-редактор, когда проявляются его преимущества по сравнению с Property-редактором?
Таких ситуаций три:
- Когда вам требуется просматривать не отдельный лист схемы, а весь проект.
- Когда вам хочется отредактировать одновременно свойства многих идентичных объектов.
- Когда вам надо редактировать только Occurrence-свойства.
Еще один «помощник» называется редактором упаковочной информации (Package Properties spreadsheet editor) или просто Package-редактор. Это тоже электронная таблица, которая вызывается из редактора компонентов Part and Symbol Editor.
Проще всего до нее добраться так. Выделим любой компонент нашей схемы, например U1A, и исполним команду Edit/Part, как будто мы собираемся его редактировать. Схемный редактор OrCAD Capture автоматически перейдет в нужный нам режим. Затем установим опцию Package из меню View и выполним еще одну уже знакомую нам команду Edit/Properties… (Ctrl+E).
Хотя мы «собрались редактировать» только одну секцию A, Package-редактор покажет всю упаковочную информацию компонента 7404 (рис. 10). По отсутствию кнопок New, Add, Remove можно сделать вывод, что в таблицу нельзя добавить ни строку, ни столбец (свойство). Ничего из нее нельзя и удалить. Допускается лишь вносить изменения в значения некоторых свойств. Так же, как и в Browse-редакторе недоступные, для редактирования ячейки при выделении заливаются черным цветом.
При более внимательном рассмотрении мы обнаружим в редакторе упаковочной информации две новые кнопки: Update и Validate.
Первая кнопка полезна в тех случаях, когда вы хотите распространить изменения, внесенные в одну секцию, и на все остальные.
Допустим, мы собираемся заменить имя входного контакта I на INPUT, а выходного контакта O на OUTPUT, и проделать эту работу для всех шести секций (Parts) от A до F компонента 7404. Нет никакой необходимости повторять эту рутинную работу многократно. Достаточно проделать ее для одной секции, а затем щелкнуть на кнопке Update. Все остальное выполнит сам редактор.
Проделайте этот простой эксперимент, и вы убедитесь, что Package-редактор великолепно справился с требуемым заданием.
Кнопка Validate (Проверить правильность) просматривает номера контактов и выясняет, нет ли среди них выводов с одинаковыми номерами (дублированных контактов). К сожалению, эта работа ограничивается рамками одной секции, а не всего компонента в целом.
К редактору Package Properties spreadsheet editor мы еще вернемся, когда будем проектировать графические описания компонентов (урок 6). Поэтому ответы на некоторые неясные вопросы можно отложить на ближайшее будущее.