Моделирование цифрового сигнала
Моделирование дискретных сигналов и логических схем.
Цель занятия
1. Ознакомиться с возможностями программы Microcap 9.0.
2. Научиться моделировать и цифровые сигналы, и простейшие логические схемы.
Постановка задачи
1. Построить модель генератор дискретных сигналов.
2. Построить модель логической функции, согласно приведенному заданию.
Содержание отчета
1. Постановка задачи для конкретного варианта.
2. Временные характеристики заданной модели.
Методические указания
Моделирование цифрового сигнала.
Для моделирования аналогового сигнала в программе Microcap предназначены компоненты раздела Stimulus Generators (Component → Digital Primitives → Stimulus Generator).
В разделе Stimulus Generator содержатся следующие основные компоненты:
Dclock – генератор тактовых импульсов.
Stim1 – программируемый генератор цифровых сигналов, с одним выходом.
Stim2 – программируемый генератор цифровых сигналов, с двумя выходами.
Stim4 – программируемый генератор цифровых сигналов, с четырьмя выходами.
Stim8 – программируемый генератор цифровых сигналов, с восемью выходами.
Stim16 – программируемый генератор цифровых сигналов, с шестнадцатью выходами.
Программирование компонентов Stim ведется путем задания временных интервалов для уровней логического «0» и логической «1».
Для создания сигнала переключения с логического нуля на логическую единицу (рис. 1) необходимо выполнить следующие действия.
Рисунок 1 Переключение с уровня логического "0" на уровень логической "1"
1. Создать новую схему.
2. Поставить элемент Stim1 (Component → Digital Primitives → Stimulus Generator → Stim1).
3. В появившемся окне параметров найти поле ввода программного текста. В поле ввода программного текста стоит начальная директива .define _.
4. В поле ввода программного текста вписать следующий текст:
.define Switch
+0ns 0 (с момента 0нс от начала – уровень логического «0»)
+100ns 1 (с момента 100нс от начала – уровень логической «1»)
5. Закрыть окно параметров.
6. Запустить Transient-анализ. Временной диапазон поставить до 1мкс. По оси X поставить время (T). По оси Y – d(1) – цифровой сигнал на узле №1.
Для создания одной цифровой единицы (рис. 2.) программный текст будет выглядеть следующим образом:
.define D1
+0ns 0 (с момента 0нс от начала – уровень логического «0»)
+100ns 1 (с момента 100нс от начала – уровень логической «1»)
+200ns 0 (с момента 200нс от начала – уровень логического «0»)
Рисунок 2 Логическая единица
Временные задержки можно задавать не только от 0, но и от последнего изменения.
.define D1
+0ns 0 (с момента 0нс от начала – уровень логического «0»)
++100ns 1 (через 100нс – уровень логической «1»)
++100ns 0 (еще через +100нс – уровень логического «0»)
Для создания нескольких повторяющихся цифровых последовательностей используются циклические конструкции.
Для создания последовательности 010101 (рис. 3) программный текст будет выглядеть следующим образом:
.define D01
+0ns 0
+label=start (начало цикла)
++100ns 1 (через 100нс переключение в 1)
++100ns 0 (еще через 100нс переключение в 0)
++100ns goto start 3 times (повторить тело цикла еще три раза)
Рисунок 3 Цифровая последовательность (010101)
Если необходимо воздать бесконечную последовательность, то программный текст модифицируется следующим образом:
.define D01
+0ns 0
+label=start (начало цикла)
++100ns 1 (через 100нс переключение в 1)
++100ns 0 (еще через 100нс переключение в 0)
++100ns goto start -1 times (повторить тело цикла бесконечное число раз)