Программа выполнения лабораторной работы 3
в САПР
OrCAD 9.1

Цель работы - научиться работать с САПР OrCAD 9.1 в режиме PCB Simulate проектов:

·  рисовать принципиальные схемы цифровой аппаратуры в графическом редакторе OrCAD Capture;

·  задавать внешние воздействия тремя возможными способами из программы моделирования OrCAD Simulate;

·  задавать описания внешних воздействий с помощью языка VHDL;

·  моделировать спроектированную схему с помощью программы моделирования OrCAD Simulate;

·  анализировать результаты моделирования и измерять временные интервалы, например, задержки распространения и другие временные параметры.

·  создавать символы компонентов и их VHDL – модели.

Перед началом работы создайте свою папку, например Lab3_OrCAD, в которой будут сохраняться все результаты выполненных заданий.

Обязательная (базовая) часть программы

ЗАДАНИЕ 1.

Рисование и моделирование схем на логическом уровне. Ориентировочное время выполнения задания – 60 мин. (1,5 балла).

Запустите графический редактор OrCAD Capture и нарисуйте в нём цифровую схему, которую вам предложит преподаватель, например, ту, что показана на рис.1. С этой целью проделайте следующие шаги:

Рис.1. Пример задания на проектирование и моделирование цифровой схемы

1.1. Создайте новый проект, набрав команду File/New/Project….

1.1.1. Введите его имя, например comparator.

1.1.2. Укажите его место на диске, например D:\Lab3_OrCAD\comparator. Если названной папки не существует, она будет создана автоматически.

НЕ нашли? Не то? Что вы ищете?

1.1.3. Задайте тип проекта, в нашем случае надо выбрать опцию: PC Board Wizard – моделирование и трассировка печатных плат (последней операцией мы заниматься не будем).

1.2. На панели PCB Project Wizard установите флажок Enable Project Simulation и выберите нижнюю кнопку Add VHDL-based digital simulation resources.

1.3. Добавьте к проекту две библиотеки - gate. olb и ls. vhd. В первой находятся графические изображения цифровых элементов, и, в частности, нужные нам компоненты 74ls04, 74ls08 и 74ls86 с логическими функциями НЕ, 2И, исключающее ИЛИ соответственно. Во второй – их математические VHDL – модели.

1.4. Сделайте активным окно SCHEMATIC1:PAGE1 (оба имени устанавливаются умолчанием и могут быть заменены пользователем). В этом окне нарисуйте схему, которая в нашем примере содержит всего шесть элементов.

1.4.1. Разместите элементы на чертеже (команда Place/Part…).

1.4.2. Соедините их проводниками (команда Place/Wire).

1.4.3. Задайте проводникам пользовательские имена – алиасы (команда Place/Net Alias). Не забывайте, что контур с именем надо «прислонить» к тому проводнику, который Вы именуете, чтобы он касался цепи левым нижним углом.

1.5. Сделайте активным окно менеджера проекта и запустите команду Tools/Simulate…. При этом автоматически создаётся список цепей (Netlist) моделируемой схемы в формате языка VHDL и предлагается на выбор способ моделирования. Выберите режим In Design.

1.6. Заданный тип проектов обрабатывается программой моделирования OrCAD Simulate. Она автоматически запускается из оболочки графического редактора OrCAD Capture и выдаёт запрос о загрузке схемы в текущий момент. Щёлкните на кнопке «Да». Если в проекте есть ошибки, они появятся в окне Session Log. Устранив их, повторно загрузите проект командой Simulate/Reload Project.

Полезно заглядывать в окно Session Log и при отсутствии явных ошибок, когда моделирование не даёт ожидаемых результатов. Реагируйте, прежде всего, на предупреждения, содержащие слово entity!

1.7. Задайте временные диаграммы на входах схемы, в данном случае на входах A и B.

С этой целью активизируйте команду Stimulus/New Interactive… и выберите закладку Clock (или любую другую). Нажав кнопку Browse…, укажите имя первого входного сигнала A и запрограммируйте его временную диаграмму. Те же операции проделайте для другого входа B.

1.8. Командой Simulate/Run запустите свой проект на моделирование, скорректировав при необходимости финальное время моделирования Run Time. Используйте всю ширину экрана монитора или окна моделятора. Объясните полученные результаты.

1.9. Измерьте задержки переключения выходных сигналов относительно входов (задержки pin to pin).

Докажите, что измеренные задержки равны сумме задержек на элементах.

С этой целью в окне менеджера проекта распахните библиотеку LS. VHD, найдите нужные вам элементы и узнайте, какие у них задержки.

Определите по схеме, какие элементы участвуют в измеренной вами задержке, и вычислите их суммарную величину. Результаты измерений и вычислений должны совпасть.

1.10. Повторите моделирование для минимальных и максимальных значений задержек. Объясните полученные результаты.

ЗАДАНИЕ 2.

Проектирование и моделирование цифровых схем на уровне регистровых передач (RTL – Register Transfer Level). Способы описания внешних воздействий. Ориентировочное время выполнения задания – 60 мин. (1,5 балла).

Нарисуйте в графическом редакторе OrCAD Capture цифровую RTL - схему с шинной структурой, которую вам предложит преподаватель. На рис.2 показан пример такой схемы.

Рис.2. Пример RTL - схемы для задания различных видов внешних воздействий

2.1. Исследуйте различные способы описания одиночных сигналов с помощью закладки Basic. В этом режиме временная диаграмма описывается как список событий, упорядоченный в хронологическом порядке.

Для каждого события (переключения) указывается его новое значение (в окне Set to) и момент времени, когда сигнал должен переключиться на новый уровень (в окне At). Окно Remove at в стандартных режимах программирования сигналов не используется.

Убедитесь, что кнопки Disable и Enable, позволяют отключать ненужные события и, при необходимости, вновь разрешать их.

Ориентировочное время выполнения этого пункта задания – 15 минут (0,4 балла).

2.2. Исследуйте описания периодических сигналов с помощью закладки Clock. В этом режиме временная диаграмма описывается как одна или несколько периодических последовательностей разной частоты, «склеенных» одна с другой (рис.3). Попробуйте запрограммировать сигналы CU и CD, показанные на этом рисунке.

Ориентировочное время выполнения этого пункта задания – 15 минут (0,4 балла).


Рис.3. Пример описания внешних воздействий с помощью закладки Clock

2.3. Исследуйте третий способ описания диаграмм на входах с помощью закладки Advanced. Это наиболее совершенный способ программирования входных сигналов. Не забывайте, что здесь время задаётся в относительных единицах. В окне Set to указывается желаемое значение сигнала, а в окне Wait for – время, в течение которого должен удерживаться заданный уровень относительно предыдущего переключения.

Режим Advanced даёт пользователю ещё две прекрасные возможности: описывать повторяющиеся участки временных диаграмм и задавать шинные сигналы. Причём для шинных сигналов можно использовать операции Increment и Decrement. Исследуйте все названные возможности.

Ориентировочное время выполнения этого пункта задания – 30 минут (0,7 балла).

Факультативная (рекомендуемая) часть программы

ЗАДАНИЕ 3.

Задание VHDL-описаний входных сигналов. Ориентировочное время выполнения задания – 60 мин. (1 балл).

Подготовьте схему, спроектированную в ЗАДАНИИ 1, для описания её внешних воздействий с помощью команды Test Bench. Для этого придётся дорисовать в ней входные и выходные порты, превратив её в стандартный VHDL – блок.

3.1. Запустите программу моделирования OrCAD Simulate и исполните команду Stimulus/Create Test Bench. Введите имя выходного VHDL – файла, например comp_tb1, где будут храниться наборы тестовых сигналов.

3.2. В автоматически сгенерированном VHDL – коде найдите архитектурное тело testbench и в указанное комментарием место -- Place stimulus вставьте VHDL – описания входных сигналов (рис.4).

Рис.4. Пример описания внешних воздействий с помощью VHDL – кода

Для создания VHDL – описаний внешних воздействий рекомендуется использовать шаблоны (заготовки), вызываемые по команде Edit/Samples.

3.3. Проверьте синтаксис отредактированного файла (команда Check Syntax), перегрузите свой проект (команда Simulate/Reload Project), выберите в качестве корневого объекта строку test SCHEMATIC1 и выполните моделирование (команда Simulate/Run).

3.4. Создайте ещё один файл, например comp_tb2 с другим набором тестовых векторов. Научитесь выбирать любой из них для проведения текущего эксперимента.

Ориентировочное время выполнения этого пункта задания – 30 минут (0,6 балла).

3.5. Создайте в графическом редакторе OrCAD Capture ещё одну папку для новой схемы, сделайте её корневой и скопируйте в неё схему, созданную по ЗАДАНИЮ 1. Добавьте в схему иерархический блок Stimulus для VHDL - описания входных сигналов (рис.5). Укажите имя выходного файла, в котором вы будете программировать входные сигналы, например Stimulus. vhd.

Описания внешних воздействий можно позаимствовать из предыдущего пункта задания.

Рис.5. Задание VHDL –описаний входных сигналов с помощью иерархического блока HB1

Выполните моделирование и убедитесь, что всё работает наилучшим образом.

Ориентировочное время выполнения этого пункта задания – 30 минут (0,4 балла).

ЗАДАНИЕ 4.

Проектирование и моделирование символов абстрактных компонентов для PCB Simulate проектов.

Ориентировочное время выполнения задания – 60 мин. (1,5 балла).

Получите у преподавателя конкретный вариант задания. Пример такого задания показан на рис.6.

4.1. Запустите графический редактор OrCAD Capture и установите в нём требуемую среду проектирования (формат А4, метрическую систему единиц, шаг сетки 2.5mm, привязку к узлам сетки).

Рис.6. Пример задания на проектирование абстрактных символов

4.2. Откройте свою библиотеку символов my_lib. olb и исполните команду контекстного меню New Part. Назначьте основные параметры компонента (имя, префикс позиционного обозначения DD и псевдоним). Для элементов с простой логикой установите флажок Create Convert View, чтобы создать логически эквивалентную форму.

4.3. Проектирование символа лучше всего начинать с ввода его контактов. Проследите, чтобы расстояние между ними равнялось 5mm (если на одной стороне символа выводов всего 2) или 2.5mm, если их более двух. Габаритные размеры символа определяются числом входных или выходных контактов, и, следовательно, после их ввода они будут установлены однозначно.

4.4. Отредактируйте атрибуты (свойства) контактов. Не забудьте установить для каждого вывода (Pin’a) его имя, форму (Shape), тип и номер. Для простых логических элементов имена выводов надо сделать невидимыми.

Если к абстрактному символу подводятся шинные (многозначные) контакты, как в показанном примере (рис.6), то их имена следует задавать в соответствии с правилами описания шин в пакете OrCAD, указывая ширину шины: D[3..0] и Q[3..0]. Надо стараться избегать длинных имён на условных графических изображениях – они неоправданно увеличивают габариты символов.

Поэтому лучше поступить так. После ввода всех имён (включая и шинные) надо сделать их не видимыми, а затем командой Place/Text… продублировать их названия, заменив длинные имена D[3..0] и Q[3..0] короткими D и Q.

При размещении текста (для более точного его позиционирования) отключите режим привязки объектов к узлам сетки.

4.5. Нарисуйте графику символа. Для простых символов не забудьте создать логически эквивалентное обозначение.

Сохраните спроектированный абстрактный символ и закройте свою библиотеку my_lib. olb. Вызовите созданный символ на чертёж схемы, чтобы убедиться, что он не имеет внешних дефектов.

Ориентировочное время выполнения этого пункта задания – 30 минут (0,7 балла).

4.6. Напишите для разработанного символа поведенческую VHDL-модель. Понятно, что она должна иметь такое же имя, как и сам символ (рис.7).

При разработке модели удобно пользоваться «заготовками» допустимых конструкций языка VHDL (команда Edit/Samples). Советую начинать с конструкции Design Unit, которая определяет структуру VHDL – модели.

4.7. Создайте новый проект для верификации спроектированного символа, например test_counter_4.opj, подключите к нему VHDL – модель, задайте диаграммы входных сигналов и промоделируйте схему.

Убедитесь, что счётчик правильно выполняет свои функции. Обязательно проверьте его работу во всех возможных режимах: сброс, параллельная загрузка, счёт. Измерьте задержки, с которыми входные сигналы передаются на выходы. Сравните их с теми, что были заданы вами в VHDL – модели.

Попробуйте сделать так, чтобы каждая операция в счётчике выполнялась со своей задержкой.

Рис.7. Поведенческая VHDL – модель 4-разрядного суммирующего счётчика

Ориентировочное время выполнения этого пункта задания – 30 минут (0,8 балла).