Дешифратор преобразует n-разрядный двоичный код на входе в логический сигнал, появляющийся на том выходе, десятичный номер которого соответствует двоичному коду.
Число входов и выходов в полном дешифраторе связано соотношением m= 2n, где n – число входов, а m – число выходов на втором этапе – переход от сокращённой формы к минимальной форме. Задача синтеза дешифратора решается аналогично предыдущей задаче.
В качестве примера рассмотрим задачу синтеза дешифратора 3´5 без стробирования с инверсными выходами и определенными входными двоичными наборами 1, 2, 4, 5, 7. Соответствующая таблица истинности имеет вид:
Таблица 10.4. Таблица истинности дешифратора примера
Аргументы (входы) | Функции (выходы) | ||||||
х2 | х1 | х0 | у7 | у5 | у4 | у2 | у1 |
(х3) | (х2) | (х1) | (у5) | (у4) | (у3) | (у2) | (у1) |
Система функций СКНФ имеет вид:
у0 = v Ú х1 Ú х0
у1 = v Ú х1Ú ![]() ![]() ![]() ![]() |
у2 = x3 Ú`x2Ú x1
у3 = `x3Ú x2Ú х1 (2)
у4 = `x3Ú x2Ú`x1
у5 = `x3Ú`x2Ú`x1
Следующим этапом является создание программного модуля, соответствующий условиям работы дешифратора. Сохраним модуль под именем DC.m (рис. 10.2).
Модульное программирование – другой, более развитый способ программного моделирования. Он позволяет моделировать системы и устройства любой сложности. Кроме того, при этом предоставляются значительно более удобные средства редактирования программы.
В терминах MATLAB подпрограммой является m -функция. После сохранения на жестком диске соответствующий файл называют m -файлом, который становится частью системы MATLAB и его можно вызывать как из командной строки, так и из другого m -файла.
Подпрограмма пишется на языке MATLAB в окне текстового редактора (Editor), которое открывается командой File/New/M-File (Futction). При этом, как и в Задании1 данной работы, прежде всего, определяют вид и структуру представления входных и выходных данных
Для приведенного примера данные целесообразно представлять в виде матриц:
где каждая строка соответствует одному из пяти определенных двоичных наборов. Что касается структуры входных наборов, то изменить ее без нарушения закономерности работы устройства нельзя. Поэтому она остается той же, что и в таблице истинности.
Далее на основании полученных матриц и аналитического описания работы устройства разрабатывается программа на языке MATLAB, которая вводится в командное окно системы. При этом следует пользоваться именами переменных, индексированными в естественной последовательности входов и выходов устройства (для табл. 10.3 – в скобках).
Рис. 10.2 Модуль процесса дешифрования
В командном окне системы MATLAB убедиться в достоверности полученного аналитического описания работы дешифратора. Например, рассмотренному дешифратору (1) соответствует следующее из возможных программных решений:
>> X=[1 0 0;0 1 0;0 0 1;1 0 1;1 1 1];
>> Y=DC(X)
Y =
5×5 logical array
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
В Simulink создать модель дешифратора 3х5 (рис. 10.3) и убедиться в достоверности проведенного синтеза.
Рис. 10.3 Модель синтезируемого дешифратора