Материал: Моделирование цифровых устройств в системе МАТLAB + Simulink (90

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

вокне Simulation stop time (конечное время моделирования) панели инструментов задать необходимое время моделирования – количество тактов работы устройства. Обычно оно определяется числом определенных состояний устройства и подсчитывается, начиная с нуля;

впункте меню Simulation выбрать команду Configuration Parameters…(конфигурация параметров …). В списке Solver (разрешение) открывшегося окна выбрать discrete (no continuous states) (дискретное (не непрерывные состояния)) и кнопкой ОК закрыть данное окно.

2. Построение модели.

Модель должна содержать блок ввода исходных двоичных наборов, структурную схему устройства и блок регистрации результатов моделирования. Все эти блоки располагаются в рабочем поле окна модели в указанном порядке слева направо путем перетаскивания их компьютерной мышью из соответствующих разделов и/или подразделов библиотеки Simulink. В данной работе целесообразны следующие блоки:

а) From workspace (из рабочего поля) – находится в подразделе Sources (источники) раздела Simulink (окно Simulink Library Browser). Блок читает значения аргументов ФАЛ (входные двоичные наборы) из командного окна MATLAB.

При моделировании схемы устройства с числом входов (аргументов ФАЛ) k >1 требуется k блоков From workspace.

Для настройки параметров блока используется соответствующее окно диалога (открывается двойным щелчком компьютерной мышью по его изображению или командой …Parameters… контекстного меню), где:

–в строке Data ввести имя аргумента в строгом соответствии с форматом его записи в командном окне MATLAB;

–в строке Sample time задать шаг изменения времени (тактов), в случае цифровых устройств равный 1;

–в списке Form output after-final data value by (значение данных после по-

следнего такта) выбрать Setting to zero (установить в 0). Значения аргументов записываются в виде матрицы:

 

0 …

1

 

0

Х

= ……………….. ,

 

n-1 1

… 0

 

 

 

 

 

номер х0

… хN-1

 

 

такта

 

 

аргументы ФАЛ

 

где n – число определенных двоичных наборов, а N – количество аргументов ФАЛ (входов устройства). При этом, во-первых, достаточно указать только определенные двоичные наборы, что вполне оправдано. Во-вторых, соответствующие такты модели имеют сквозную нумерацию (0, 1, 2, …) в независимости от номеров определенных двоичных наборов.

11

При вводе в командное окно MATLAB значения каждого аргумента (столбца матрицы) располагаются в соответствующем векторе-строке. Каждый элемент этого вектора представляется в формате:

<номер такта><пробел><значение аргумента в такте> и отделяется от соседнего элемента символом «;».

Пример матриц входных двоичных наборов для частично определенного устройства с двумя входами a, b и одним выходом y приведен в табл. 4;

б) Logical Operator (логический оператор) – расположен в подразделе Logic and Bit Operations (логика и побитные операции) раздела Simulink библиотеки. Блок реализует логические элементы типа И (AND), ИЛИ (OR), НЕ (NOT), И-

Таблица 4. Пример матриц исходных данных для блоков

НЕ

(NAND),

ИЛИ-НЕ

(NOR), исключающее ИЛИ

 

 

 

 

From workspace

 

 

 

 

(XOR).

 

 

 

 

 

 

 

 

 

 

 

Исходная таблица

 

 

 

№

 

Для

настройки пара-

 

 

истинности

 

такта

 

 

 

 

 

 

 

Аргумен-

 

Командное окно (Command Window)

метров

блока на вкладке

мо-

Функция

 

ты

 

Main

(главная)

соответст-

дели

 

 

 

b

 

a

y

 

 

 

 

вующего окна диалога вы-

0

0

 

0

0

>>A=[0 0;1 0;2 1];

 

 

 

 

 

 

0

 

1

~

>>B=[0 0;1 1;2 1];

полнить следующие дейст-

 

 

>> Y' % вывод результата в строку

1

1

 

0

0

вия:

 

 

 

 

ans =

 

 

 

 

 

 

 

 

– в

списке

Operator

 

 

 

 

 

 

выбрать нужный оператор;

– в строке Number of input ports задать нужное количество входов;

в) To workspace (в рабочее поле) – находится в подразделе Sinks (приемники) раздела Simulink библиотеки. Блок регистрирует результаты моделирования, но лишь по одному из выходов устройства или по одной его шине. При этом в случае шины данные представляются в блоке матрицей, i-я строка которой соответствует i-у такту работы устройства. В случае же отдельного выхода устройства данные представляются вектором-столбцом.

Для настройки параметров блока в соответствующем окне диалога выполнить следующие действия:

–в строку Variable name (имя переменной) ввести имя выходной переменной (ФАЛ);

–в списке Save format выбрать Array (массив);

–снять флаг Log fixed-point data as a fi object.

Наконец, блоки соединяются путем протягивания компьютерной мышью с нажатой левой ее клавишей выхода одного блока к входу другого. Соединение организуются с помощью левой клавиши мыши (протягивание от выхода одного блока до входа другого или наоборот), а узел с разветвлением – правой клавишей. Так, модель для примера, приведенного в табл. 4, показана на рис. 4.

12

Запуск модели на исполнение

Рис. 4. Моделирование логического элемента И

3. Запуск модели на исполнение и просмотр результатов моделирования. Созданная модель запускается на исполнение кнопкой Start Simulation, рас-

положенной на панели инструментов окна модели (см. рис. 4).

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

Другим и более простым способом просмотра результатов является их вывод в командное окно MATLAB как показано в табл. 4, где апостроф в имени выходной переменной означает транспонирование матрицы или векторастолбца блока To workspace.

7.Сравнить результаты моделирования с исходной таблицей истинности

исделать вывод относительно достоверности проведенного синтеза.

3. ТИПОВЫЕ КЦУ

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

Подготовка к работе

По указанной выше литературе изучить:

условное графическое обозначение и правила работы типовых КЦУ: дешифраторов, шифраторов и мультиплексоров;

особенности синтеза указанных типовых КЦУ; принципы и методы построения многоразрядных дешифраторов и муль-

типлексоров на базе соответствующих интегральных микросхем.

Задания и методические указания к их выполнению

13

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

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

 

Требуемые

 

Требуемые

 

Требуемые

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

 

 

 

 

 

 

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

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

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

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

Таблица 6. Таблица истинности шифратора примера

 

Аргументы (входы)

 

 

Функции

 

х7

х5

х4

х2

х0

у2

 

у1

у0

(х5)

(х4)

(х3)

(х2)

(х1)

(у3)

 

(у2)

(у1)

0

0

0

0

1

0

 

0

0

0

0

0

1

~

0

 

1

0

0

0

1

~

~

1

 

0

0

0

1

~

~

~

1

 

0

1

1

~

~

~

~

1

 

1

1

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

Как видно из табл. 6, y0 1 , если x5 или x7 равны 1. Действительно, осталь-

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

образом, y0 x5 x7 .

14

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

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

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

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

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

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

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

 

1 0 0 0 0

 

0 0 0

 

X

1 1 0 0 0

, Y

0 1 0

.

 

1 1 1 1 1

 

1 1 1

 

 

 

 

 

 

Далее на основании полученных матриц и аналитического описания работы устройства разрабатывается программа на языке 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;

15

Источник: https://studfile.net/preview/16724885/