>>Y
3. В соответствии с номером варианта N табл. 7 для дешифратора 3 5 без стробирования с прямыми выходами для четных N и инверсными выходами для нечетных N на основе только анализа таблицы истинности и законов алгебры логики вывести систему минимальных ФАЛ.
Таблица 7. Закон функционирования дешифратора
|
Определен- |
|
Определен- |
|
Определенные |
|
ные |
|
ные |
|
входные |
N |
входные |
N |
входные |
N |
двоичные на- |
|
двоичные на- |
|
двоичные на- |
|
боры |
|
боры |
|
боры |
|
|
1 |
3, 4, 5, 6, 7 |
11 |
2, 4, 5, 6, 7 |
21 |
2, 3, 4, 5, 7 |
2 |
0, 4, 5, 6, 7 |
12 |
0, 3, 5, 6, 7 |
22 |
0, 3, 4, 5, 6 |
3 |
0, 1, 5, 6, 7 |
13 |
0, 1, 4, 6, 7 |
23 |
0, 1, 3, 5, 6 |
4 |
0, 1, 2, 6, 7 |
14 |
0, 1, 2, 5, 7 |
24 |
2, 3, 4, 5, 6 |
5 |
0, 1, 2, 3, 7 |
15 |
0, 1, 2, 3, 6 |
25 |
0, 2, 3, 5, 7 |
6 |
2, 3, 5, 6, 7 |
16 |
2, 3, 4, 6, 7 |
26 |
0, 1, 3, 4, 7 |
7 |
0, 3, 4, 6, 7 |
17 |
0, 3, 4, 5, 7 |
27 |
1, 3, 5, 6, 7 |
8 |
0, 1, 4, 5, 7 |
18 |
0, 1, 4, 5, 6 |
28 |
0, 2, 3, 4, 6 |
9 |
0, 1, 2, 5, 6 |
19 |
0, 1, 2, 4, 6 |
29 |
1, 2, 4, 6, 7 |
10 |
1, 2, 3, 5, 7 |
20 |
1, 2, 3, 4, 6 |
30 |
1, 2, 4, 5, 6 |
Данная задача решается аналогично предыдущей задаче. Тем не менее, имеет смысл кратко повторить рассуждения.
В качестве примера рассмотрим задачу синтеза дешифратора 3 5 без стробирования с инверсными выходами и определенными входными двоичными наборами 1, 2, 4, 5, 7. Соответствующая таблица истинности имеет вид:
Аргументы (вхо- |
|
Функции (выходы) |
|
||||
|
ды) |
|
|
|
|
|
|
х2 |
х1 |
х0 |
у7 |
у5 |
у4 |
у2 |
у1 |
(х3) |
(х2) |
(х1) |
(у5) |
(у4) |
(у3) |
(у2) |
(у1) |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Из таблицы видно, что y1 = 0, если х2 = х1 = 0, поскольку в других входных
наборах такой комбинации нет. Следовательно, y1 |
x2 |
x1. |
Повторяя приведенное рассуждение для остальных выходов, получаем: |
||
y2 x2 x0 , y4 x1 x0 , y5 x2 x1 |
x0 , y7 |
x2 x1. |
Окончательное решение сформулируем, исходя из удобства последующего моделирования:
y1 x3 x2 , y2 x3 x1, y3 x2 x1,
16
y |
x |
x |
x , |
y |
x |
(1)| x . |
4 |
3 |
2 |
1 |
5 |
3 |
2 |
4. Создать программный модуль (подпрограмму), соответствующий условиям работы дешифратора и сохранить его под именем DC<№ варианта>.m.
Модульное программирование – другой, более развитый способ программного моделирования. Он позволяет моделировать системы и устройства любой сложности. Кроме того, при этом предоставляются значительно более удобные средства редактирования программы.
В терминах MATLAB подпрограммой является m-функция. После сохранения на жестком диске соответствующий файл называют m-файлом, который становится частью системы MATLAB и его можно вызывать как из командной строки, так и из другого m-файла.
Подпрограмма пишется на языке MATLAB в окне текстового редактора (Editor), которое открывается командой File/New/M-File. При этом, как и в п.2 данной работы, прежде всего, определяют вид и структуру представления входных и выходных данных.
Для приведенного примера данные целесообразно представлять в виде матриц:
|
x |
11 |
x |
12 |
x |
13 |
|
y |
|
y |
|
y |
|
y |
|
y |
|
|
|
|
|
|
|
|
11 |
12 |
13 |
14 |
15 |
|
|||||||||
X |
. . |
. |
. |
. . |
. |
|
. |
, Y |
. |
. . |
. |
. . |
.(2). . . |
. . |
. |
. |
, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
x |
51 |
x |
52 |
x |
53 |
|
y |
51 |
y |
52 |
y |
53 |
y |
54 |
y |
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
где каждая строка соответствует одному из пяти определенных двоичных наборов. Что касается структуры входных наборов, то изменить ее без нарушения закономерности работы устройства нельзя. Поэтому она остается той же, что и в таблице истинности.
Тогда и в соответствии с (1) m-функцию можно записать в виде:
function Y=DC(X) for i=1:5
Y(i,1)=X(i,3)|X(i,2);
Y(i,2)=X(i,3)|X(i,1);
Y(i,3)=X(i,2)|X(i,1); Y(i,4)=~X(i,3)|X(i,2)|~ X(i,1); Y(i,5)=not(X(i,3)&X(i,2));
end; Y;
5. В командном окне системы MATLAB убедиться в достоверности полученного аналитического описания работы дешифратора.
Поскольку m-файл является самостоятельной моделью, его можно использовать для исследования поведения соответствующего устройства. С этой целью в командном окне достаточно задать исходные данные, после чего ввести его имя: <имя функции>=<имя m-файла>.
Для приведенного примера командные строки будут иметь вид:
>>X=[1 0 0;0 1 0;0 0 1;1 0 1;1 1 1]; >>y=DC(X)
17
6. Используя предыдущее устройство, синтезировать мультиплексор 5 1 без стробирования с прямым выходом.
Обобщенная структура мультиплексора на основе дешифратора показана на рис. 5, где логический элемент (ЛЭ) служит для организации мультиплексной линии.
D1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
x1 |
DC у1 |
|
|
|
|
ЛЭ |
|
|
|
|
ключ 1 |
|
|
||||
|
|
… |
… |
|
|
|
|
|
z |
|
|
|
|
|
|
|
|||
|
|
xn |
ym |
|
ключ m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dm
Рис. 5. Обобщенная структурная схема мультиплексора
Поскольку активным является только один выход дешифратора, открытым может быть лишь один из m ключей, соответствующий этому выходу. Отсюда определяется тип ЛЭ: сигнал на выходе закрытого ключа не должен изменять реакцию ЛЭ на сигнал с выхода открытого ключа. Таким образом, если в закрытом состоянии на выходе ключа 1, то ЛЭ должен быть типа И, а если 0 – то типа ИЛИ.
Тип логического элемента, используемого в качестве ключа, определяется аналогично, но в зависимости от активного сигнала на выходах дешифратора.
После этого остается записать минимальную ФАЛ z = f(y1, …, ym, D1, …, Dm), чем и завершается синтез данного устройства.
В частности, для приведенного примера активным сигналом на выходах дешифратора является 0. Следовательно, в качестве ключей должны использоваться логические элементы типа ИЛИ. Тогда на выходе закрытого ключа 1. Отсюда ЛЭ должен быть типа И. Следовательно, искомая ФАЛ имеет вид:
z ( y |
D ) ( y |
D ) ... ( y(3) |
D ). |
||
1 |
1 |
2 |
2 |
5 |
5 |
В случае дешифратора с прямыми выходами в качестве ключей следует использовать логические элементы типа И, а ЛЭ должен быть типа ИЛИ. В этих условиях искомая ФАЛ будет иметь вид:
z y1D1 y2 D2 ... y5D5.
7. Создать подпрограмму, соответствующую ФАЛ z = f(y1, …, ym, D1, …, Dm) и сохранить ее под именем K<№ варианта>.m.
Например, в соответствии с (2) и (3) m-функцию можно записать в виде:
function Z=K(Y,D) for i=1:5
Z(i)=(Y(i,1)|D(i,1))&(Y(i,2)|D(i,2))&(Y(i,3)|D(i,3))&(Y(i,4)|D
(i,4))&(Y(i,5)|D(i,5));
end; Z;
8. В командном окне системы MATLAB убедиться в достоверности полученного аналитического описания работы мультиплексора.
18
Наглядное отображение соответствия модели реальному мультиплексору можно получить, например, путем чередования 1 и 0 на информационных входах модели. В частности, подать на нечетные входы 1, а на четные – 0.
Но здесь есть еще одно обстоятельство: программные модули DC и K являются звеньями одной сложной системы, причем модуль K помимо связи с выходом модуля DC имеет самостоятельные информационные входы. Выходом из этой ситуации является последовательный вызов модулей в командном окне с предварительным объявлением соответствующих входных наборов.
С учетом сказанного для приведенного примера командные строки имеют вид:
>>X=[1 0 0;0 1 0;0 0 1;1 0 1;1 1 1]; >>Y=DC(X);
>>D=[1 0 0 0 0;1 0 1 1 1;0 0 1 0 0;1 1 1 0 1;0 0 0 0 1]; >>Z=K(Y,D)
9. Сделать вывод относительно приемов быстрого вывода минимальных ФАЛ для типовых КЦУ.
4. ТРИГГЕРЫ
Являются базовыми элементами сложных последовательностных цифровых устройств.
Подготовка к работе
По указанной выше литературе изучить: классификацию триггеров;
условное графическое обозначение и правила работы RS-, D-, JK-, T- и TV-триггеров.
Задания и методические указания к их выполнению
1. В соответствии с временными диаграммами рис. 6 получить прогноз работы RS-триггера с прямыми входами для четных номеров вариантов N и с инверсными входами – для нечетных N.
R
t
S
t
Рис. 6. Сигналы на входах RS-триггера
2. Создать модель как показано на рис. 7 и настроить параметры моделирования (см. п.1,в работы 2).
19
S |
|
NOT |
|
S |
Q |
|
|
NOT |
|
Q |
|
|
|
|
|
||||||
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
R |
|
|
|
R |
!Q |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
NOT |
|
|
NOT |
|
!Q |
||||
|
|
|
||||||||
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 7. Окно модели RS-триггера
Триггеры находятся в подразделе Flip Flops раздела Extras библиотеки Simulink Library Browser. В обозначении триггеров символ «!» означает инверсию.
Библиотечный RS-триггер имеет прямые входы. Для имитации инверсных входов необходимо, во-первых, заменить повторитель OR инвертором NOT, что легко сделать с помощью вкладки Main окна диалога блока Logical Operator (см. п.2,б работы 2). Данное окно открывается двойным щелчком компьютерной мыши по изображению блока. Во-вторых, по обоим выходам триггера установить инверторы NOT. Иначе при активных входах (R = S = 0) на выходах триггера будут не единицы, а нули, что характерно для RS-триггера с прямыми, но не инверсными входами. Таким образом, RS-триггер с инверсными входами на основе библиотечного триггера будет иметь вид:
Блоки Logical Operator выполняют функцию согласования блоков Clock с информационными входами блока S-R Flip-Flop по типу данных.
Блок Clock (генератор тактовых импульсов) находится в том же подразделе Flip Flops библиотеки. Для реализации временных сдвигов сигналов на входах S и R триггера в модели используется два таких блока. Один из них (Clock) настроен на условный период следования тактов, равный 2, а второй (Clock1) – на условный период, равный 1.
Для визуализации результатов моделирования работы устройства удобно использовать блок Scope (осциллограф), расположенный в подразделе Sinks раздела Simulink библиотеки. Для настройки его параметров на панели инструментов одноименного окна диалога (открывается двойным щелчком компьютерной
20