Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
01.05.2014
Размер:
3.18 Mб
Скачать

Министерство образования

Российской Федерации

Санкт-Петербургский государственный

электротехнический университет

Кафедра МО ЭВМ

Отчет

по лабораторной работе №2

«Минимизация логической функции»

Выполнил: Строкина Н.В.

Группа: 4351

Факультет КТИ

Преподаватель: Фахми Ш.С.

Санкт-Петербург

2019

Техническое задание.

1.

Даны X1, X2. X3, X4 – входные сигналы, Y – выходной сигнал.

Различных комбинаций входных сигналов 24

(каждый сигнал – либо ноль, либо единичка),

поэтому строк в таблице тоже 16. Необходимо

следующим образом сформировать

выходной сигнал: случайным образом

выбираем девять наборов входных сигналов

и в соответствующих строках выходного сигнала ставим единички.

X4

X3

X2

X1

Y

1

0

0

0

0

0

2

0

0

0

1

1

3

0

0

1

0

1

4

0

0

1

1

0

5

0

1

0

0

1

6

0

1

0

1

0

7

0

1

1

0

1

8

0

1

1

1

0

9

1

0

0

0

1

10

1

0

0

1

1

11

1

0

1

0

0

12

1

0

1

1

1

13

1

1

0

0

0

14

1

1

0

1

1

15

1

1

1

0

0

16

1

1

1

1

1

Проделав выше описанные действия, я получила:

2. Для того чтобы минимизировать выходной сигнал Y, будем использовать Карты Карно. Строится таблица, которая не зависит от формулы, а зависит от числа переменных. В нашем случае переменных четыре, значит, у нас будет четыре строки и четыре столбца .

00

01

11

10

00

1

1

01

1

1

11

1

1

10

1

1

1

Минимизированная функция находится следующим образом:

- в те клетки таблицы, которые соответствуют нашему варианту, ставятся единички;

- четное число единичек, расположенных симметрично какой-либо оси, объединяются в группы;

- в моей таблице получилось пять групп, на таблице они выделены;

- из полученных групп составляем конъюнкции нашей минимизированной функции:

1) если группа занимает два столбца или две строки, то из них выбирается тот элемент, который не изменяется;

2) если группа занимает один столбец или строку, то из них выбираются все элементы;

Таким образом, я получила минимизированную функцию:

Практическое задание.

MaxPlus (этапы проектирования)

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

1) Сборка

Запускаем программу MaxPlus, нажимаем левой кнопкой мыши на значок, на котором изображен чистый лист, то есть создаем новый документ. Появляется окошко с запросом, в каком редакторе будем работать, в этой работе я выбрала графический редактор. На экране появился чистое поле, с помощью правой кнопки мыши выбираем из библиотеки поочередно элементы, которые будут составлять нашу схему. Мне понадобиться четыре входа (input), пять выходов ( output, четыре для инвертирования входов и пятый – искомая функция), четыре инвертирующих элемента (not), пять конъюнкций (and2, and3,and3, and4, and4) и одна дизъюнкция (or). Каждому входу и выходу задается уникальное имя. С помощью линий соединяю соответствующие элементы. Таким образом, схема готова и имеет следующий вид:

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

2) Построение временных диаграмм

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

Временная диаграмма для моей функции имеет вид:

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

FastChip (этапы проектирования)

После того как FastChip был запущен, необходимо создать новый проект. Нажимаем File->New Project или Ctrl+N . Появится диалоговое окошко, в котором необходимо ввести имя проекта и выбрать процессор (Available Devices -> 32-bit -> A7S ->A7S20 ->208-pin PQFP -> 60 Mhz (Part TA7S20-60Q).

После этого выберем графический способ описания проекта, откроем библиотеку (Configurable System Logic (CSL) -> Module Library). Из данной библиотеки выбираем необходимые элементы и переносим их в область рядом. Для реализации данного проекта выберем следующие элементы:

1. Вход X, состоящий из четырех элементов (X1,X2,X3,X4) –

(Basic Functions – I/O Pads – Input v.2);

2. Выход Y - (Basic Functions – I/O Pads – Output v.2);

3. Инвертор notX, инвертирующий четыре входных элемента – (Basic Functions – LPM modules – Gates – LPM_INV);

4. Конъюнктор and1

(Basic Functions – LPM modules – Gates – LPM_AND)

5. Конъюнктор and2

(Basic Functions – LPM modules – Gates – LPM_AND)

6. Конъюнктор and3

(Basic Functions – LPM modules – Gates – LPM_AND)

7. Конъюнктор and4

(Basic Functions – LPM modules – Gates – LPM_AND)

8. Конъюнктор and5

(Basic Functions – LPM modules – Gates – LPM_AND)

  1. Дизъюнктор or

(Basic Functions – LPM modules – Gates – LPM_OR)

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

Нужно установить LPM_Size (вкладка Properties) – размерность элемента, LPM_Width – количество таких элементов, Data – данные и Result – результат.

Для наших элементов зададим следующие характеристики:

Name

LPM_size

LPM_width

Data

Result

X

-

4

X – {X1, X2, X3, X4}

Y

-

4

Y

notX

-

4

{X1, X2, X3, X4}

{notX1, notX2, notX3, notX4}

and1

2

1

{X1, X4}

and1

and2

4

1

{notX4,notX3,notX2,X1}

and2

and3

4

1

{notX4,X3,notX2,notX1}

and3

and4

3

1

{notX4,X2,notX1}

and4

and5

3

1

{X4,notX3,notX2}

and5

or

5

1

{and1, and2, and3,

and4, and5}

Y

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

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

Например, конъюнкция and1:

или инвертор notX:

Расстановка выводов системы на кристалле.

Теперь мы можем назначить выводы системы на кристалле. Для этого откроем Constraints -> I/O Editor. Появится окошко, в котором слева будет приведен список входных и выходных контактов, а справа - плата используемого процессора. Далее, перетаскивая контакты, соединяем их с выводами на плате, мы можем использовать только белые выводы. Так мы подключили схему к процессору.

Затем необходимо определить тип памяти и ее параметры. Для этого в редакторе I/O (Constraints -> I/O Editor) нажмем кнопку MIU. В появившемся окне выберем память 256К16 и нажмем OK.

Для компиляции необходимо создать связи. Это делается с помощью команды Bind (Ctrl+B). Выберем Effort level и нажмем OK. Окно закроется и появится другое – “Binding – Please wait”, в котором отражаются этапы связывания. После завершения процесса появится соответствующее сообщение – “Command completed succesfully in 28 seconds – 1 warning”. Затем надо закрыть это окно, через несколько секунд появится окно текущего проекта.

Окончательный продукт создании связей – файл инициализации lab3.csl, позже он будет необходим для загрузки в CsoC.

7

Соседние файлы в папке Лабораторная работа 2