Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа / 2008-03-19-23-01-Дмитрий-.doc
Скачиваний:
76
Добавлен:
01.05.2014
Размер:
802.3 Кб
Скачать

3. Разработка в среде сапр MaxPlus II

Далее мы рассмотрим принцип построения дешифратора в среде МАХ+.

3.1. Разработка в текстовом редакторе.

subdesign new

(

x1,x2,x3:input; // описание входных переменных

y0,y1,y2,y3,y4,y5,y6,y7:output; //описание выходных переменных

)

Begin //тело функции

y0=!x3&!x2&!x1; //далее представлены функции выхода

y1=!x3&!x2&x1; // дешифратора

y2=!x3&x2&!x1;

y3=!x3&x2&x1;

y4=x3&!x2&!x1;

y5=x3&!x2&x1;

y6=x3&x2&!x1;

y7=x3&x2&x1;

end;

Здесь представлен текст программы, описывающий работу дешифратора.

Чтобы написать функцию нам нужно запустить МАХ+ выбрать NEWи появиться следующее диалоговое окно:

В котором вы выставляем TextEditorfileи жмём ОК.

У нас открывается поля для редактирования, в котором мы и набираем текс нашей программы. Название нашей функции должно полностью совпадать с именем файла.

У нас получается следующее:

После набора функции нам необходимо собрать и откомпилировать полученную программу и проверить на синтаксические ошибки. Выберем в горизонтальном меню Project->Save&Compile. На экране появиться следующее окно

Которое нам сообщает , что проект скомпилировался нормально, ошибок 0 , предупреждений 0. Таким образом у нас получилась написанная программу которая реализует принцип работы дешифратора. Проверка правильности работы осуществляется временной диаграммой ,которая будет представлена в следующем разделе.

3.2. Разработка в графическом редакторе

Для разработки дешифратора в графическом редакторе нам потребуется нажать NEW->bвыбратьGraphicEditorfile. После чего появиться рабочая область в которой мы собственно и будем рисовать дешифратор.

Для рисования дешифратора нам нужны только 2 элемента - это двухвходовая схема И и инвертор. Мы воспользуемся обычной библиотекой, которую можно вызвать двойным щелчком на поле для чертежа. После двойного щелчка появляется диалоговое окно, которые мы видим на рисунке сверху и выбираем библиотеку с именем prim. В котором мы находим нужные нам схемы, а также вход (INPUT) и выход (OUTPUT) нашей бедующей схемы. После всех построений у нас получается следующая схема:

После того как мы нарисовали дешифратор нам необходимо собрать и откомпилировать полученную программу и проверить на синтаксические ошибки. Выберем в горизонтальном меню Project->Save&Compile. На экране появиться следующее окно

Которое нам сообщает , что проект скомпилировался нормально, ошибок 0 , предупреждений 0. Таким образом у мы реализовали графически дешифратор. Проверка правильности работы осуществляется временной диаграммой ,которая будет представлена в следующем разделе.

4. Разработка временных диаграмм.

Временные диаграммы можно использовать для проверки работы функции, написанной в текстовом режиме и графическом режиме. Для создания временной диаграммы запускаем MAX+ выбираем в горизонтальном менюFILE->Newи появляется следующее диалоговое окно

Далее выбираем WaveformEditorFileи открывается окно редактирования временной диаграммы. При вызовеWaveformEditorFileдолжен быть обязательно открыта схема в графическом редакторе или текстовый редактор с заданной схемой для проверки.. В полеNameнажимаем правой кнопкой мыши и выскакивает контекстное меню в котором выбираемEnterNodesfromSNF. После чего выскакивает диалоговое окно. В нем нажимаем наListи переносим все переменные в правую часть.

После нажатия на ОК, у нас появляются эти переменные в поле Nameнашего окна. Далее можно сгруппировать входные сигналы, если это конечно можно делать при реализации схемы, в нашем случае можно. И подаём на них входные сигналы, которые представляют собой числа в двоичной системе от 0 до 7. После чего нам надо откомпилировать схему, мы нажимаем в горизонтальном менюFILE->project->Save&Compile. Сохранять временную диаграмму нужно с тем же именем ,что и файл в графическом или текстовом редакторе.

После компиляции у нас появляется сообщение, которое нам сообщает , что проект скомпилировался нормально, ошибок 0 , предупреждений 0. После нажатия на ОК мы переходим на нашу временную диаграмму и нажимаем кнопку ,на корой нарисована диаграмма и у нас получается следующее

На временной диаграмме показана работа дешифратора, с поступление на вход сигналов.

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

Вот временная диаграмма, которая полностью совпадает принципом работы дешифратора.

5. Схема дешифратора с управляющим сигналом

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

Представим схему дешифратора с управлением

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

Из диаграммы видно, что переключение выхода дешифратора происходит тогда, когда приходит синхросигнал на вход регистра. Также можно реализовать схему без регистра, тогда нужно подавать синхросигнал прямо в дешифратор, для этого мы заменим трёхвходовые схемы И на четырёхвходовые. И будем подавать синхросигнал на четвёртый дополнительный вход конъюнкции.

В этой схеме видно, что синхросигнал подаётся напрямую к конъюнкторам. Приведем временную диаграмму работы схемы.

Из диаграммы видно, что пока синхроимпульс равен 1, дешифратор работает верно, но как только синхроимпульс становиться равным 0, 1 пропадает со всех выходов дешифратора, это может служить как большим недостатком схемы, так как нарушается принцип работы дешифратора, так в некоторых схемах послужить и достоинством такого построения дешифратора с управлением.

Возможные другие варианты реализации.

Реализации дешифратора на 3 входа другими способами я думаю не оправдает себя, так как это наверное приведённою мною реализация самая простая, быстро действенная и требует минимальных аппаратурных затрат. Вот для построения дешифраторов с большим числом входов можно применять не линейную технологию построения дешифраторов, как представлено в данной курсовой работе, а матричную, т.е. например дешифратор на 4 входа и 16 выходов можно будет реализовать так

Таким образом, мы дешифратор разбиваем на 2 ступени, первые 2 двухвходовые дешифраторы выполняют функцию первой ступени, а конъюнкторы функцию второй ступени.

Применение прямоугольных дешифраторов может оказаться более выгодным, чем линейного, в тех случаях, когда велико число входов и нежелательно использовать требующиеся для построения линейного дешифратора элементы с большим числом входов. Однако прохождение сигналов последовательно через несколько ступеней приводит в матричном дешифраторе к большей задержке распространения сигнала.

Заключение

В ходе курсового проектирования были получены сведения об построении и функционировании дешифратора. В курсовой работе была реализована схема дешифратора с 3 входами и восьмью выходами, который был построен с помощью таблицы истинности. Получены основные навыки с работой САПР МАХ+, в которой была реализована схема дешифратора. Сначала в текстовом редакторе была написана функция работы дешифратора, затем в графическом редакторе была изображена схема дешифратора. С помощью временных диаграмм была проверена работа схем дешифратора написанная в графическом и текстовом редакторах. Также в МАХ+ была построена схема дешифратора с управлением и выполнена проверка работы этой схемы.

22