Задания и методические указания к их выполнению. 1. В соответствии с номером варианта N табл


1. В соответствии с номером варианта N табл. 5 для приоритетного шифратора 5´3 без стробирования с прямыми входами для четных N и инверсными входами для нечетных N на основе только анализа таблицы истинности и законов алгебры логики вывести систему минимальных ФАЛ.

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

В качестве примера рассмотрим задачу синтеза приоритетного шифратора 5´3 без стробирования с прямыми входами и требуемыми двоичными наборами на выходе 0, 2, 4, 5, 7.


В соответствующей таблице истинности (табл. 6) приведена двойная индексация аргументов: без скобок отвечает номерам выходных двоичных наборов, а в скобках – естественной последовательности входов. Аналогично для функций: без скобок отвечает номерам двоичных разрядов, а в скобках – естественной последовательности выходов.

Имена переменных в скобках удобны при программном моделировании, поскольку в MATLAB нумерация элементов матриц начинается с 1.

Как видно из табл. 6, , если или равны 1. Действительно, остальные аргументы могут принимать значение как 0, так и 1. Вследствие этой неоднозначности определяющую роль в значении они выполнять не могут. Таким образом, .

Далее, первое сверху единичное значение (см. табл. 6) определяется аргументами , а второе – только . На этом основании можно записать ФАЛ в ДНФ: . Отсюда после применения законов двойной инверсии и двойственности окончательно получаем: .

Рассуждая аналогично, нетрудно получить минимальную ФАЛ для последнего выхода устройства: .

2. В командном окне системы MATLAB с помощью соответствующей программы убедиться в достоверности полученного аналитического описания работы шифратора.

Программирование в командном окне является еще одним способом моделирования. Однако приемлем он лишь для относительно простых устройств.

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

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

Например, с учетом сказанного и в соответствии с табл. 6 матрицы входных (X) и выходных (Y) данных будут иметь вид:

Далее на основании полученных матриц и аналитического описания работы устройства разрабатывается программа на языке MATLAB, которая вводится в командное окно системы. При этом следует пользоваться именами переменных, индексированными в естественной последовательности входов и выходов устройства (для табл. 6 – в скобках).

Например, рассмотренному шифратору соответствует следующее из возможных программных решений:

>>X=[1 0 0 0 0;1 1 0 0 0;1 1 1 0 0;1 1 1 1 0;1 1 1 1 1];

>> for i=1:5

Y(i,3)=X(i,5)|X(i,4);

Y(i,2)=X(i,5)|not(X(i,4))&not(X(i,3))&X(i,2);

Y(i,1)=X(i,5)|X(i,4)|X(i,3);

end;

>>Y

3. В соответствии с номером варианта N табл. 7 для дешифратора 3´5 без стробирования с прямыми выходами для четных N и инверсными выходами для нечетных N на основе только анализа таблицы истинности и законов алгебры логики вывести систему минимальных ФАЛ.

Таблица 7. Закон функционирования дешифратора

N Определенные входные двоичные наборы N Определенные входные двоичные наборы N Определенные входные двоичные наборы
  3, 4, 5, 6, 7   2, 4, 5, 6, 7   2, 3, 4, 5, 7
  0, 4, 5, 6, 7   0, 3, 5, 6, 7   0, 3, 4, 5, 6
  0, 1, 5, 6, 7   0, 1, 4, 6, 7   0, 1, 3, 5, 6
  0, 1, 2, 6, 7   0, 1, 2, 5, 7   2, 3, 4, 5, 6
  0, 1, 2, 3, 7   0, 1, 2, 3, 6   0, 2, 3, 5, 7
  2, 3, 5, 6, 7   2, 3, 4, 6, 7   0, 1, 3, 4, 7
  0, 3, 4, 6, 7   0, 3, 4, 5, 7   1, 3, 5, 6, 7
  0, 1, 4, 5, 7   0, 1, 4, 5, 6   0, 2, 3, 4, 6
  0, 1, 2, 5, 6   0, 1, 2, 4, 6   1, 2, 4, 6, 7
  1, 2, 3, 5, 7   1, 2, 3, 4, 6   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, если х 2 = х 1 = 0, поскольку в других входных наборах такой комбинации нет. Следовательно,

Повторяя приведенное рассуждение для остальных выходов, получаем:

Окончательное решение сформулируем, исходя из удобства последующего моделирования:

(1)

4. Создать программный модуль (подпрограмму), соответствующий условиям работы дешифратора и сохранить его под именем DC<№ варианта>.m.

Модульное программирование – другой, более развитый способ программного моделирования. Он позволяет моделировать системы и устройства любой сложности. Кроме того, при этом предоставляются значительно более удобные средства редактирования программы.

В терминах MATLAB подпрограммой является m -функция. После сохранения на жестком диске соответствующий файл называют m -файлом, который становится частью системы MATLAB и его можно вызывать как из командной строки, так и из другого m -файла.

Подпрограмма пишется на языке MATLAB в окне текстового редактора (Editor), которое открывается командой File/New/M-File. При этом, как и в п.2 данной работы, прежде всего, определяют вид и структуру представления входных и выходных данных.

Для приведенного примера данные целесообразно представлять в виде матриц:

(2)

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

Тогда и в соответствии с (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)

6. Используя предыдущее устройство, синтезировать мультиплексор 5´1 без стробирования с прямым выходом.


Обобщенная структура мультиплексора на основе дешифратора показана на рис. 5, где логический элемент (ЛЭ) служит для организации мультиплексной линии.

Поскольку активным является только один выход дешифратора, открытым может быть лишь один из m ключей, соответствующий этому выходу. Отсюда определяется тип ЛЭ: сигнал на выходе закрытого ключа не должен изменять реакцию ЛЭ на сигнал с выхода открытого ключа. Таким образом, если в закрытом состоянии на выходе ключа 1, то ЛЭ должен быть типа И, а если 0 – то типа ИЛИ.

Тип логического элемента, используемого в качестве ключа, определяется аналогично, но в зависимости от активного сигнала на выходах дешифратора.

После этого остается записать минимальную ФАЛ z = f (y 1, …, y m, D 1, …, D m), чем и завершается синтез данного устройства.

В частности, для приведенного примера активным сигналом на выходах дешифратора является 0. Следовательно, в качестве ключей должны использоваться логические элементы типа ИЛИ. Тогда на выходе закрытого ключа 1. Отсюда ЛЭ должен быть типа И. Следовательно, искомая ФАЛ имеет вид:

(3)

В случае дешифратора с прямыми выходами в качестве ключей следует использовать логические элементы типа И, а ЛЭ должен быть типа ИЛИ. В этих условиях искомая ФАЛ будет иметь вид:

7. Создать подпрограмму, соответствующую ФАЛ z = f (y 1, …, y m, D 1, …, D m) и сохранить ее под именем 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 убедиться в достоверности полученного аналитического описания работы мультиплексора.

Наглядное отображение соответствия модели реальному мультиплексору можно получить, например, путем чередования 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. Сделать вывод относительно приемов быстрого вывода минимальных ФАЛ для типовых КЦУ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: