- •«Архитектура информационных систем» моделирование пользовательских элементов
- •Брянск 2013
- •Цель работы
- •Теоретическая часть
- •2.1. Особенности библиотечного метода проектирования
- •2.2. Сложности проектирования собственных компонентов
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список рекомендуемой литературы
- •Список заданий
- •Список заданий к лабораторной работе
Порядок выполнения работы
Рассмотрим порядок выполнения работы на примере выполнения следующего задания. Необходимо смоделировать с помощью OrCAD Capture 9.2 схему собственного элемента, сохранить его в библиотеку и протестировать.
1. Запустим программу OrCAD Capture.
2. Создадим новую библиотеку, выбрав в меню «File» закладку «New->Library». В правой части экрана открылось окно со стандартным названием «Library 1». Если нас не устраивает это имя, то его можно поменять на нужное. Для этого щёлкнем правой кнопкой мыши на строке с названием библиотеки и, когда откроется всплывающее меню, исполним команду «Save as…». Введём нужное имя и сохраним библиотеку. Если же нам нужно добавить элемент в уже имеющуюся библиотеку, то открываем ее, выбрав в меню «File» закладку «Open->Library» (рис. 1).
Рис.1. Переименование библиотеки.
3. Далее создадим иерархический символ в новом проекте, для этого в меню «File» выбираем закладку «New->Project». Откроется окно «New Project». Присвоим произвольное имя проекту, в разделе «Creating a New Project Using» выбираем «Analog or Mixed A/D», а в разделе «Location» задаем путь «C:\Temp», нажимаем «OK».
В открывшемся окне «Create PSpice Project» выбираем «Create a blank project» и нажимаем «OK».
3.1. Сделаем активным окно «SCHEMATIC1:PAGE1» (оба имени устанавливаются умолчанием и могут быть изменены пользователем).
Разместим блок в рабочем окне редактора Schematic Page Editor, исполнив команду «Place->Hierarchical Block…». На экране появится диалоговая панель с одноимённым названием (рис 2).
Рис.2. Создание повышенной иерархии блока.
3.2. В графе «Reference» зададим позиционное обозначение блока (условно обозначим его «Name1»).
3.3. В окне «Implementation Type» (способ реализации иерархического блока) конкретизируем его тип – «Schematic View».
3.4. В окне «Implementation name» укажем его имя (условно обозначим его «Name2»).
3.5. Нижнее окно «Path and filename» оставим пустым. В этом случае по умолчанию схема замещения блока будет размещена в каталоге текущего проекта.
3.6. В разделе Primitive поставим тип «No». Нажмем «OK»
3.7. Нарисуем в появившемся рабочем поле иерархический блок. Его размеры определяются числом входных или выходных контактов. Не следует делать блок излишне большим (рис 3).
Рис.3. Рабочая область блока в повышенной иерархии.
3.8. Разместим внутри нарисованного блока иерархические контакты, выполнив команду «Place->Hierarchical Pin…», зададим им имена и тип выводов (Input, Output). Если названная команда не доступна для исполнения, значит, не выделен блок, для которого необходимо задавать контакты.
3.9. Подведём к иерархическим контактам проводники, выполнив команду «Place->Wire» и зададим им пользовательские имена – элиасы, командой «Place->Net Alias…» (рис 4).
Рис.4. Иерархический блок полусумматора в повышенной иерархии.
3.10. Выделив блок, щёлкнем на нём правой кнопкой мыши и активизируем команду Descend Hierarchy (понизить уровень). Редактор понизит уровень иерархии и откроет новую схемную страницу. В открывшемся окне назовем страницу «Page1» и нажимаем «OK». На странице будут автоматически созданы порты, соответствующие входным и выходным контактам иерархического блока (рис 5).
Рис.5. Иерархический блок полусумматора в пониженной иерархии.
3.11. Рисуем схему замещения блока, используя команды «Place->Part» и «Place->Wire». Подключаем к внешним входам и выходам порты. (рис 6)
Рис.6. Иерархический блок полусумматора в пониженной иерархии.
4. Переместим созданный иерархический элемент в созданную библиотеку. Для этого:
4.1. Понизим иерархию, нажав правой кнопкой «мыши» в пустой точке рабочего поля, и выбрав «Ascend Hierarchy».
4.2. Двойным щелчком на иерархическом блоке вызовем редактор свойств Property Editor и в столбце Implementation Path укажем полный путь к этой библиотеке. Удобнее всего это сделать, щёлкнув на кнопке, справа от поля для ввода информации, отыскать нужную библиотеку и открыть её. Закрываем окно «Property Editor».
4.3. Снова выделяем иерархический блок и исполняем команду «File->Export Selection…». Появится диалоговая панель с тем же названием, в верхнее поле которой надо ввести имя иерархического блока, а в нижнее – полный путь и имя библиотеки, куда он будет экспортирован. Последнюю операцию удобно выполнять с помощью кнопки Browse, расположенной справа от поля Library. Нажмём на кнопку OK, чтобы поместить блок в указанную библиотеку (рис 7).
Рис.7. Экспортирование иерархического блока.
4.4. Схему замещения иерархического блока («Page1») можно просто скопировать (или переместить) из текущего проекта в библиотеку. Это легко сделать, используя метод буксировки "Drag-and-drop". Для этого, предварительно сохранив, закроем все окна, кроме главного окна библиотеки и окна проекта, в котором мы создавали иерархический символ, разместим их рядом. Затем "прижимаем" копируемую или перемещаемую папку «Name2» левой кнопкой мыши и, не отпуская её, перемещаем на строку с названием библиотеки. Во время копирования папки операцию следует выполнять с нажатой клавишей Ctrl, при перемещении – с отпущенной клавишей (рис 8).
Рис.8. Перенос графического файла в библиотеку.
4.5. Закрываем окно проекта.
5. Создадим внешнее описание иерархического символа:
5.1. Щёлкнем правой кнопкой мыши на имени библиотеки и выберем команду New Part – создать графический образ нового компонента. На экране появится диалоговая панель New Part Properties (рис 9).
Рис.9. Создание внешнего описание иерархического символа.
5.2. В поле «Name» вводим имя проектируемого символа «Name2». Затем в поле «Part Reference Prefix» прописываем необходимый префикс (HS, U, DD итп). Все остальные поля оставляем заполненными по умолчанию.
5.3. Нажимаем «Attach Implementation». Откроется диалоговая панель с тем же названием. В верхнее поле «Implementation Type» введём тип внутреннего описания: «Schematic View» – схема замещения, в следующее поле «Implementation» – имя папки, где она хранится («Name2»), нижнее поле оставим пустым, так как схема замещения находится в той же самой библиотеке, что и символ. Нажимаем «OK» два раза и видим рабочее окно графического редактора «Part and Symbol Editor», на котором пунктиром изображён шаблон будущего символа (рис 10).
Рис.10. Настройка Attach Implementation.
5.4. Выполняем команду «Place->pin». На экране появится диалоговая панель для задания параметров контакта. Введём его имя IN, номер 1, форму вывода Line и тип вывода Input. Создадим таким образом необходимое количество входов и выходов. В случае выходов вводим имя «Out» и тип вывода «Output».
5.5. Выполним команду «Place->Rectangle» и нарисуем контур символа «поверх» пунктирного прямоугольника. Командой «Place->Text…» обозначим функцию, выполняемую компонентом и разместим ее в центре прямоугольника. Чтобы сделать имена входов и выходов невидимыми, надо дважды щелкнуть левой кнопкой мыши в зоне размещения символа, не попав при этом на какой-либо объект. Появится диалоговая панель «User Properties», на которой следует выбрать строку «Pin Names Visible» и заменить значение «True» на «False». Сохранив, закрываем все окна, кроме главного окна библиотеки.
Готовый элемент изображен на рис. 11.
Рис. 11. Отрисовка компонента.
6. Примечание: во время использования созданного элемента будет необходимо сообщить редактору «OrCAD Capture», что символ не является примитивом, что на самом деле – это иерархический символ. Для этого дважды щёлкнем на нём левой кнопкой мыши, и, когда откроется окно редактора свойств «Property Editor», изменим значение свойства «Primitive» с «DEFAULT» (по умолчанию символ считается примитивом) на «NO».
