Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по ОФЭВМ №1.doc
Скачиваний:
12
Добавлен:
16.12.2014
Размер:
221.18 Кб
Скачать

2. Задание по работе

  1. Получить вариант задания у преподавателя.

  2. Построить развёртку куба соответствующей размерности на плоскости.

  3. Нанести на развёртку заданные кодовые наборы и произвести их склейку.

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

  5. Построить многоуровневую логическую схему в заданном базисе.

  6. Составить тестовые наборы, контролирующие все параллельные цепи логической схемы.

  7. Выполнить задание по УИР.

8. Составить отчёт по работе.

3. Задание по уир

Задание по УИР выполняется по согласованию с преподавателем для получения отличной оценки.

В

1

а

в

с

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

Рис.2. Изображение элемента «или» с входами а, в, с

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

Работа программы демонстрируется при отчёте по работе.

4. Варианты заданий

В качестве варианта задания каждый студент составляет произвольную таблицу для семи переменных, содержащую 12 строк. Эта таблица задаёт булеву функцию семи переменных: a, b, c, d, e, f, g. Для этой функции необходимо выполнить все пункты задания.

5. Методические указания

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

Рассмотрим третью и пятую строки таблицы 1. Переменную «а» можно выбросить из рассмотрения, при любом её значении 0 или 1 булева функция должна быть истинной на этих двух наборах. Рассмотрим вторую и шестую строки таблицы 1. Аналогично можно выбросить из рассмотрения переменную d в этих двух строчках. Таким образом, в первых двух наборах будет на одну переменную меньше. Их можно заменить одним набором Х01111, где Х означает пропуск соответствующей переменной. Два других набора заменяются, соответственно, на 000Х11. Отметим, что мы выбрасывали переменную из двух наборов, если они различались только значением одной переменной.

Кодовый набор, не содержащий ни одного Х, называют кубом нулевого порядка. Кодовый набор, содержащий один Х, называют кубом первого порядка. Кодовый набор, содержащий n Х, называют кубом n-го порядка. Для разыскания всех возможных парных комбинаций, различающихся по одной переменной, построим развёртку куба на плоскости. Пусть каждый набор соответствует вершине куба, тогда множество наборов образует множество вершин куба, соединив которые мы получим развёртку куба на плоскости. В нашем случае шесть переменных, которые могут задать куб шестого порядка, имеющего 64 вершины. Развёртку куба получают по следующему правилу.

Булеву функцию одного переменного зададим кубом первого порядка, который изображается на плоскости как 0----1. Расстояние между точками будем называть кодовым. В данном случае оно равно 1, так как для перехода из одной точки в другую нужно изменить значение лишь одной переменной. Область изменения булевой функции двух переменных будет задана уже четырьмя точками. Найдём две новые точки как зеркальное отображение относительно штриховой линии. Над штриховой линией всем переменным дописывается слева 0, а под ней всем переменным слева дописывается 1. По горизонтали и вертикали кодовое расстояние между точками будет равно 1.

00 01

10 11

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

000 001 101 100

010 011 111 110

Этот процесс можно продолжать до получения куба нужного порядка, например, четвёртого:

0000 0001 0101 0100

0010 0011 0111 0110

1010 1011 1111 1110

1000 1001 1101 1100

Рис.3 Развёртка куба четвёртого порядка

Развёртка куба позволяет увидеть все кодовые расстояния, равные единице, чем она и полезна. Чтобы ей воспользоваться, необходимо нанести на неё все заданные наборы. Следует заметить, что объединение двух наборов позволяет исключить одну переменную; объединение четырёх наборов, имеющих кодовые расстояния 1 для всех сочетаний пар, позволяет исключить две переменные. Объединение восьми наборов позволяет исключить три переменные, и так далее.

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

000011 000111 001111 101111 111111 111011

000Х11 Х01111

110111 110011

1101Х1 11ХХ11

110101

Отсюда минимальная форма булевой функции, заданной таблицей 1, будет иметь вид:

Х01111

11ХХ11

F = 1101Х1

000Х11

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

a

b

e

f

a

b

c

d

f

a

b

c

e

f

b

c

d

e

f

1

F

Цена схемы по Квайну составляет 23 входа, не считая три инвертора для переменных а, b, c. До минимизации цена схемы равнялась 60, без учёта шести инверторов.

5.2. Построение многоуровневых комбинационных схем

Рассмотренные логические схемы носят название двухуровневых. Хотя двухуровневые схемы очень просты, для их реализации требуются логические элементы с большим числом входов. При ограничении на число входов логических элементов приходится переходить к многоуровневым схемам. Под многоуровневой схемой будем понимать комбинационные схемы, в которых происходит последовательное чередование элементов «и» и «или». Для перехода к многоуровневой схеме необходимо сделать вынесение общих частей термов полученной минимальной формы. Для чего необходимо провести факторизацию минимальной формы, обычно называемую  разбиением. В минимальную форму введём дополнительные строчки, содержащие символы , обозначающие столбцы, содержащие неодинаковые значения переменных.

Для нашего примера получим

1 1    1

х х 1

F = 0 1 х

 0   1 1

0 0 х

х 1 1

Если в  строке записаны 0 или 1, то это означает, что под этой строкой до следующей  строки стоят нули или единицы, соответственно. Разбиение минимальной формы  строками произвольно. Так, например, минимальную форму можно разбить в следующем порядке:

    1

1 1   

х х 1

F = 0 1 х

 0   1

х 1 1

0 0 х

В последнем разбиении первая  строка является общей для всего разбиения. Разбиение  строками позволяет применить формальное правило перехода к многоуровневым схемам:

  1. Если есть общая  строка, то выход схемы снимается с элемента «и», входами которого будут: общая часть  строки и выход элемента «или», который реализует остальное.

  2. Если нет общей  строки, то выход снимается с элемента «или», входами которого служат выходы элементов «и», реализующими остальную часть. Эти правила необходимо применять попеременно и многократно.

Рассмотрим первое разбиение. Общих  строк оно не содержит. Применяя первое и второе правила, получим многоуровневую схему (смотри рис. 4).

с

d

a

c

e

d

a

b

f

b

e

f

e

1

1

1

Рис.4. Многоуровневая схема для случая отсутствия

общей  строки

В

с

d

c

d

a

c

торое разбиение имеет общую строку, и поэтому выход схемы будет сниматься с элемента «и» (смотри рис.5.). Как видно из этих примеров, построение многоуровневой схемы всегда надо начинать с конца. Сравнивая эти примеры, можно заключить, что различные разбиения приводят к различным реализациям. Переход к многоуровневым схемам не всегда даёт выигрыш по количеству затраченных элементов, но, переходя к многоуровневой схеме, мы имеем возможность уменьшить число входов у логических элементов. В последней схеме использованы логические элементы с коэффициентом объединения по входу, равным 3. Кроме того, переход к многоуровневой схеме упрощает дальнейший переход к схемам, построенным в заданном базисе.

e

f

1

1

1

a

b

b

e

Рис 5.Многоуровневая комбинационная схема для случая общей строки

5.3. Переход к заданному базису

Элементы «и», «или», «не» образуют полный базис, поскольку позволяют реализовать любую булеву функцию. Кроме этих элементов полный базис образуют элементы «и-не» и «или-не». При проектировании логических схем два последних базиса предпочтительнее, поскольку они полностью однородны и, следовательно, технологичнее.

Пусть мы располагаем элементами «и-не» или элементами «или-не», тогда, очевидно, нам придётся реализовывать элементы «и», «или» и «не» только на элементах заданного базиса «и-не» или «или-не».

Основой для перехода в заданный базис является правило Де-Моргана:

(a  b) = a b

(a  b) = a  b

Переход от универсального базиса к заданному определяется таблицей 2.

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

Схема на рис.3 в базисе «и-не» будет иметь вид, представленный на рис.6. Та же схема в базисе «или-не» будет иметь вид, представленный на рис.7.

Переход от универсального базиса в заданный

Таблица 2.

Универсальный базис

Базис «и-не»

Базис «или-не»

а

а

а

а

а

а

1

а

в

ав

а

в

ав

а

в

ав

1

а

в

ав

1

а

в

ав

1

а

в

ав

Таким образом, операция логического умножения эквивалентна операции логического сложения для инвертированных сигналов и наоборот, как это следует из правила Де-Моргана.

c

d

a

c

e

d

e

&

&

&

&

a

b

f

b

e

f

&

&

&

&

Рис.6. Комбинационная схема в базисе «и-не»

c

d

a

c

e

d

1

1

1

1

1

1

1

1

1

e

a

b

c

b

e

f

F

Рис.7. Комбинационная схема в базисе «или-не»

5.4. Построение тестовых комбинаций

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

а

&

3

4

5

&

&

1

2

Рис.7. Фрагмент комбинационной схемы

В данном фрагменте три входа, обозначенные 1,2, «а» и один выход -5. Проверим цепь 1-3-4-5.

Пусть на вход 1 подаётся проверочный сигнал, представляющий собой последовательное чередование 0 и 1. На вход 2 подаём логическую единицу, тогда на выходе элемента «и» будет наблюдаться чередование 0 и 1 в соответствии с сигналом на входе 1. Иными словами, наличие единицы на входе 2 обеспечивает прохождение сигнала с входа 1 к выходу 3. Чтобы сигнал с выхода 3 прошёл дальше, необходимо переменную «а» положить равной 1, тогда на выходе логического элемента будет чередование 0 и 1, в зависимости от сигнала на входе один. Это чередование значений пройдёт к выходу схемы 5 и может быть зафиксировано. Таким образом, если на вход 2 и вход «а» подать единицы, а по первому входу подавать переменный сигнал, то с выхода 5 также будет сниматься переменный сигнал, если все задействованные цепи в порядке.

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

Для рассмотренного фрагмента можно составить таблицу тестовых комбинаций.

Тестовые наборы для проверки параллельных цепей фрагмента комбинационной схемы

Таблица 3

Входы

Цепи

1

2

«а»

1-3-4-5

s

1

1

2-3-4-5

1

s

1

а-4-5

0

x

х

0

s

s

Анализируя таблицу 3, приходим к выводу, что цепи 4-5 нельзя проверить по отдельности тестовыми наборами, так как элементы 4 и 5 соединены последовательно. Остальные же цепи проверяются по отдельности. Например, если при проверке цепи установили, что цепь 1-3-4-5 имеет неисправность, а проверка цепи 2-4-5 неисправность не обнаружила, - значит, неисправен элемент 1.