- •Пермь-2001 Задание на курсовое проектирование.
- •Необходимо выполнить:
- •Введение.
- •Абстрактный синтез автомата с памятью
- •04 6 7 6
- •Построение диаграммы переходов
- •A b c d Кодирование строк.
- •Реализуемая таблица переходов
- •Построение таблиц переходов – выходов и возбуждения
- •Структурный синтез цифрового автомата.
- •Синтез автомата на эвм с помощью пакета Proekt24.
- •Sintez - proekt24
- •Сравнение ручного синтеза с машинным. Ручное решение:
- •Анализ расхождения ручного синтеза с машинным
- •Список литературы
- •Часть 1.Автор Коган т.И. Пермское высшее военное командно-инженерное Краснознаменное училище ракетных войск им. Маршала Советского Союза в.И. Чуйкова.
- •Часть 2.Автор Коган т.И. Пермское высшее военное командно-инженерное Краснознаменное училище ракетных войск им. Маршала Советского Союза в.И. Чуйкова.
- •3) Конспект аудиторных лекций по теории автоматов.
Структурный синтез цифрового автомата.
Блок схема цифрового автомата.
Сигналы управления памятью:
J0(y1y2abc) = 16 [00, 01,02, 04, 10, 14, 15]
K0(y1y2abc) = [23, 25, 26, 27, 32, 34, 36,37]
J1(y1y2abc) = 04[00, 01, 02, 23, 25, 26,27]
K1(у1y2abc) = 37 [10, 14, 15, 16, 32, 34,36]
Выходные сигналы:
Z1(y1y2abc) = 26[00, 01, 02 , 054, 10, 14, 15, 16, 23, 25, 27, 32, 36, 37]
Z2(y1y2abc) =01, 02, 10, 15, 23, 25, 32,34 [00, 04, 14, 16, 26, 27, 36, 37]
Минимизация функции методом поразрядного сравнения
для функции Z1(y1y2abc):
242 (0 2 6 4)
(2 6)(0 2 4 6) (1 0 - -0) y1y2c
для функции Z2(y1y2abc):
0
3
0
-
0
0
-
5
1
1 (1
375) (1
375)
1
0
(-1- -1) y2c
1
2
4
(1
045) (4576)(0-1--)y1a
14
2
2 (2
640)
(2
3 )(-001-)y2ab
2
1,3
2
-
7
27(0 7) (5 7) (--1-1) ac
0
(3
267) (0 1) (1-00-)y1ab
3
3
0,1
(y2ab)
(y1a)(y1ab)(y2c)(ac)
Z2(y1y2abc)
для функции J0(y1y2abc):
1
-
2 (07) (26)
12(---10)bc
для функции J1(y1y2abc):
0
-
0
(07)0)
(--000)a b c
00
для функции K1(y1y2abc):
3
0 (07)
(67)(--11-)ab
3
1
для функции K0(y1y2abc):
K0(y1y2abc) 0 - т.к нет рабочих наборов.
Структурный синтез автомата.
Так как синтез автомата с памятью будет проводится на элементах И-НЕ, то для этого все функции преобразуются (берем двойную инверсию).
J0(y1y2abc) bc
J1(y1y2abc) a b c
K1(y1y2abc) ab
Z1(y1y2abc) y1ab
(y2ab)
(y1a) (y1ab) (y2c) (ac)
Z2(y1y2abc)
Физический синтез автомата
Для создания кодового замка я решил воспользоваться серией микросхем К555. Эта серия имеет небольшое быстродействие и сравнительно небольшой ток потребления, также в серии присутствуют все необходимые логические элементы, и что есть микросхема на два JKтриггера в одном корпусе.
Характеристические параметры серии К555:
Средний потребляемый ток I= 5mA.
Время задержки t=50 нс.
Уровень единицы U1=2.5 В
Уровень нуля U0=0.5 В
Необходимые микросхемы:
К555ЛА3 – 2И-НЕ
К555ЛА4 – 3И-НЕ
К555ТВ9 – JK-триггер
Синтез автомата на эвм с помощью пакета Proekt24.
Результаты проведенного синтеза:
Sintez - proekt24
PAMJAT = 'JK' - унивеpсальныe тpиггеpа'
STR = 12, STO = 8, XRAZV = 1, XRAZB = 3, ZRAZB = 2
Схема построена на 'И-НЕ' элементах
База входного слова: a,b,c;
База выходного слова: z1,z2;
Пеpвичная таблица пеpеходов-выходов:
======================================================
¦N.вн.¦ Вх.слова ¦вых. ¦
¦сост.¦ 0 1 2 3 4 5 6 7 ¦¤1¤0 ¦
¦=====+========================================+=====¦
¦ 1 ¦ 2 1 - 6 - 7 - - ¦ 0 0 ¦
¦ 2 ¦ 2 8 3 - 9 - - - ¦ 0 0 ¦
¦ 3 ¦ 10 - 3 6 - - 4 - ¦ 0 0 ¦
¦ 4 ¦ - - 12 - 5 - 4 11 ¦ 0 0 ¦
¦ 5 ¦ - - - - 5 - - - ¦ 1 0 ¦
¦ 6 ¦ - - - 6 - - - - ¦ 0 1 ¦
¦ 7 ¦ - - - - - 7 - - ¦ 0 1 ¦
¦ 8 ¦ - 8 - - - - - - ¦ 0 1 ¦
¦ 9 ¦ - - - - 9 - - - ¦ 0 1 ¦
¦ 10 ¦ 10 - - - - - - - ¦ 0 1 ¦
¦ 11 ¦ - - - - - - - 11 ¦ 0 1 ¦
¦ 12 ¦ - - 12 - - - - - ¦ 0 1 ¦
======================================================
Матpица объединеных стpок:
=========================================================
¦Nстp.¦N стp. ¦
¦мин. ¦пеpв.табл. ¦
¦табл.¦ 1 2 3 4 5 6 7 8 9 10 11 12 ¦
¦=====+=================================================¦
¦ 1 ¦ 1 0 0 1 1 1 1 0 0 0 1 1 ¦
¦ 2 ¦ 0 1 0 0 0 0 0 1 1 0 0 0 ¦
¦ 3 ¦ 0 0 1 0 0 0 0 0 0 1 0 0 ¦
=========================================================
Матрица показывает какие строки объединяются и в какое состояние.
Минимизиpованная таблица пеpеходов:
=========================================
¦N.вн.¦ Вх.слова ¦
¦сост.¦ 0 1 2 3 4 5 6 7 ¦
¦=====+=================================¦
¦ 1 ¦ 2 1 1 1 1 1 1 1 ¦
¦ 2 ¦ 2 2 3 - 2 - - - ¦
¦ 3 ¦ 3 - 3 1 - - 1 - ¦
=========================================
Число в клетке показывает направление перехода.
Матpица выходов:
=========================================
¦N.вн.¦ Вх.слова ¦
¦сост.¦ 0 1 2 3 4 5 6 7 ¦
¦=====+=================================¦
¦ 1 ¦ 00 00 01 01 10 01 00 01 ¦
¦ 2 ¦ 00 01 00 -- 01 -- -- -- ¦
¦ 3 ¦ 01 -- 00 01 -- -- 00 -- ¦
=========================================
Матрица выходов определяет состояния выходных функций для каждого такта
Pеализуемая таблица пеpеходов:
===============================================
¦N.вн.¦ Вх.слова ¦Вн. ¦
¦сост.¦ 0 1 2 3 4 5 6 7 ¦сост.¦
¦=====+=================================+=====¦
¦ 1 ¦ 2 1 1 1 1 1 1 1 ¦ 00 ¦
¦ 2 ¦ 2 2 3 1 2 - 1 - ¦ 01 ¦
¦ 3 ¦ 3 - 3 2 - - 2 - ¦ 11 ¦
¦ 4 ¦ - - - - - - - - ¦ 10 ¦
===============================================
Реализуемая таблица переходов показывает направления переходов после противогоночного кодирования.
Конечная матрица выходов:
=========================================
¦N.вн.¦ Вх.слова ¦
¦сост.¦ 0 1 2 3 4 5 6 7 ¦
¦=====+=================================¦
¦ 1 ¦ 00 00 01 01 10 01 00 01 ¦
¦ 2 ¦ 00 01 00 01 01 -- 00 -- ¦
¦ 3 ¦ 01 -- 00 01 -- -- 00 -- ¦
¦ 4 ¦ -- -- -- -- -- -- -- -- ¦
=========================================
Конечная матрица выходов показывает состояния выходов автомата в тактах реализуемой таблицы переходов.
Базис: y1,y2,a,b,c
'JK' - универсальные триггера'
уравнения возбуждения элементов памяти:
J1 = y2*~a*b*~c;
K1 = c + a;
J2 = ~a*~b*~c;
K2 = ~y1*b*c + ~y1*a*b;
уравнения выходов:
z1 = ~y2*a*~b*~c;
z2 = ~y2*~a*b + b*c + a*c + y2*c + y2*a*~b + y1*~b;
Теперь выводим на элементах И-НЕ
'JK' - универсальные триггера'
уравнения возбуждения элементов памяти:
J1 = ~( ~( y2*~a*b*~c ) );
K1 = ~( ~(c) * ~(a) );
J2 = ~( ~( ~a*~b*~c ) );
K2 = ~( ~(~y1*b*c) * ~(~y1*a*b) );
уравнения выходов:
z1 = ~( ~( ~y2*a*~b*~c ) );
z2 = ~( ~(~y2*~a*b) * ~(b*c) * ~(a*c) * ~(y2*c) * ~(y2*a*~b) *
~(y1*~b) );