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

Лабораторная работа №3

.doc
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
355.33 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. Ульянова (Ленина)

Кафедра САПР

Отчет по лабораторной работе №3:

«Минимизация булевых функций»

По дисциплине «Схемотехника»

Выполнил: Дюсебаев Т.

Гр. 3372

Проверил: Фахми Ш. С.

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

1. Минимизация булевых функций

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

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

2. Карта Карно

Это двумерная табличная форма представления булевой функции, позволяющая в графической наглядной форме легко отыскать минимальные ДНФ логических функций. Каждой клетке в таблице сопоставляется терм СДНФ минимизируемой функции, причем так, что любым осям симметрии таблицы соответсвуют зоны, взаимно инверсные по какой-либо переменной. Такое расположение клеток в таблице позволяет легко определить склеивающиеся термы СДНФ (отличающиеся знаком инверсии только одной переменной): они располагаются в таблице симметрично. В таблице (рис. 1.5, б) представлена карта Карно для функции двух переменных – импликации. Все 4 клетки соответсвуют всем возможным конъюнкциям СДНФ функции 2-х переменных. Единичные значения функции показывают те термы, которые присутствуют в СДНФ этой функции. Расположение термов для карты Карно функции 2-х переменных (рис. 1.5,а) таково, что соседние клетки соответствуют склеивающимся термам, отличающимся только одной переменной: в один конъюнкт эта переменная входит без отрицания, а в другой – с отрицанием. В соответствии с рис. 1.5, б импликацию можно представить минимальной ДНФ:

xy

xy

1

0

1

1

а

Рис. 1.5. Карта Карно для импликации x=>y

На рис. 1.6, а представлена карта Карно функции f(x1, x2, x3) =

Ее таблица истинности представлена ниже. ДНФ функции из рис. 1.6 равна

x1

x2

x3

F(x1, x2, x3)

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

1

0

0

0

1

0

1

1

Рис. 1.6

Цель работы: Минимизировать заданную булеву функцию, используя Карты Карно и реализовать минимизированную функцию в среде Triscend FastChip 2.6.

Описание: Таблица истинности заданной функции выглядит следующим образом:

x1

x2

x3

x4

F(x1, x2, x3, x4)

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1

1

1

1

0

0

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

1

1

Воспользуясь картами Карно для данной функции

x1x2

00

01

11

10

00

0

1

1

0

01

1

0

0

1

11

1

1

1

0

10

0

1

1

0

получаем конъюнкты минимизированной функции:

-

-

-

-

Соответственно минимизированная функция:

Логическая схема для этой функции выглядит следующим образом:

Для проектирования нашей функции в среде Triscend FastChip 2.6 нам понадобятся логические элементы И, НЕ и ИЛИ. В библиотеке Triscend FastChip 2.6 они называются LPM_AND, LPM_NOT и LPM_OR соответственно. Мы переименовали их в нашей работе для удобства следующим образом: and_One, and_Two, or_One_Two, or_Three_Four и т.д. Для соединения всех этих элементов в логическую схему необходимо проименовать их входы и выходы таким образом, чтобы имя выхода элемента совпадало с именем входа элемента с которым он должен быть соединен:

  • Ко входам логической схемы подключается Регистр комманд (Command Register), который в библиотеке Triscend FastChip 2.6 называется CmdReg_A:

  • Выходы подключаются к выходному регистру (Output_A).

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

С помощью I/O Editor’a подключаем нужные нам выходы к ножкам кристалла:

В данной работе единственный выход подключен к ножке номер 15 (светодиод).

Завершающий этап осуществляется в Triscend FastChip Device Link Utility. В пункте меню Tools -> Device Link Options прописывается IP-адрес компьютера, к которому подключена плата. Далее в меню configuration задаем частоту (32 КГц):

Для проверки работоспособности логической схемы:

- на входы подаются наборы переменных при которых функция равна 1, и если все правильно, светодиод должен гореть.

- на входы подаются наборы переменных при которых функция равна 0, и если все правильно, светодиод не должен гореть.

Выводы:

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

  • Также получили дополнительные сведения о среде Triscend FastChip 2.6 и ее возможностях в процессе проектирования логических схем.