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

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

>>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

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