Лабораторная работа №3 / Laba_3
.docСанкт-Петербургский Государственный
Электротехнический Университет «ЛЭТИ»
Лабораторная работа №3
Выполнил: студенты гр. 3372
Сивков А. А.
Проверил: Фахми Ш. С.
Санкт-Петербург,
2005 г.
Лабораторная работа №3
Цель работы: с помощью карт Карно построить минимизированную
функцию четырех переменных на основании таблицы истинности и реализовать ее в виде цифрового устройства. При подачи на вход устройства набора значений при котором функция принимает истинное значение должен загораться сегмент “а” семи-сегментного индикатора, при подачи на вход набора значений при котором функция принимает ложное должен загораться сегмент “d” семи-сегментного индикатора.
Задание: в виде цифрового устройства предложено реализовать функцию
которой соответствует следующая таблица истинности:
X1 |
X2 |
X3 |
X4 |
Y |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
Минимизируем данную функцию с использованием карт Карно.
-
Строим карту Карно. В клетки указываются значения функции Y на соответствующем наборе X1, X2 , X3, X4. Единицы, стоящие рядом образуют контур:
2. Упрощение.
Набор 1: y1 = (¬x1*¬x2*¬x3*¬x4) + (x1*¬x2*¬x3*¬x4) склеивание по х1, получаем y1 = ¬x2*¬x3*¬x4.
Набор 2: y2 = (¬x1*¬x2*x3*x4) + (¬x1*¬x2*¬x3*¬x4) склеивание по х4, получаем y2 = ¬x1*¬x2*x3.
Набор 3: y3 = (¬x1*x2*x3*¬x4) + (x1*x2*x3*¬x4) склеивание по х1, получаем y3 = x2*x3*¬x4.
Набор 4: y4 = (x1*¬x2*x3*x4) + (x1*¬x2*x3*¬x4) склеивание по х4, получаем y4 = x1*¬x2*x3.
3. Результат.
Y = y1+y2+y3+y4 = ¬x2*¬x3*¬x4+¬x1*¬x2*x3+ x2*x3*¬x4+ x1*¬x2*x3
Логическая схема устройства:
Проектирование цифрового устройства:
для реализации данного устройства необходимы следующие элементы:
CmdReg – регистр хранящий X1, X2, X3, X4.
lpm_inv – логическое НЕ
lpm_and – логическое И
lpm_or – логическое ИЛИ
Output – выход с CLS
Все эти элементы находятся в Module library программы Triscend Fastchip. Перетаскиваем эти элементы из Module library на CSL. Настраиваем входы и выходы элементов в соответствии с функциональной схемой устройства, при этом lpm_inv имеет пять входов, и пять выходов (в этом элементе инвертируются значения x1, x2, x3, x4 и y, на выходе получаем notx1, notx2, notx3, notx4, noty). Элемент lpm_and имеет 12 входов и четыре выхода (по 1 выходу на 3 входа), элемент lpm_or имеет 4 входа и 1 выход. В регистре CmdReg задаются значения x1, x2, x3, x4, значению регистра 0x05 соответствует последовательность 0, 1, 0, 1. Output используется для вывода значения y и noty соответственно на сегмент “a” и “g” семи-сегментного индикатора. Для того, чтобы присоединить выходы y и noty к ножкам 127 и 102 (pin 127 – вывод сигнала к сегменту “a” семи-сегментного индикатора, pin 102 – сегменту “d” ) необходимо в I/O editor (значок которого можно найти в правом углу) Output_A.0 перетащить на ножку 127, а Output_A.1 на 102.
Следующим этапом является Bind (приготовление проекта для использования в CSoC, проверка связей и т.д.), щелкаем на значок Bind в верху программы и ждем.
Загрузка проекта в устройство:
Из программы Fastchip запускаем программу Device link (одноименная кнопка на панели инструментов). Вводим IP адрес в Tools-> Device link options.
Нажимаем Configuration на панели инструментов -> Save and download.
Выводы: в результате выполнения лабораторной работы было реализовано
устройства, которое при задании на входе последовательности x1, x2, x3, x4 в которых функция Y = ¬x2*¬x3*¬x4+¬x1*¬x2*x3+ x2*x3*¬x4+ x1*¬x2*x3 принимает истинное значение “зажигает” сегмент “a” семи-сегментного индикатора, а при ложном значении “зажигает” сегмент d”.