10
|
+
|
-
|
-
|
0
|
|
|
|
+
v1v2
|
Q1 Q2 Q3
|
|
000
|
001
|
011
|
010
|
110
|
111
|
101
|
100
|
00
|
0
|
1
|
-
|
+
|
|
|
|
0
|
01
|
+
|
-
|
-
|
+
|
|
|
|
0
|
11
|
|
|
|
|
|
|
|
|
10
|
+
|
-
|
-
|
0
|
|
|
|
+
|
Схемная реализация. На основании
полученных выше выражений составляем схему абстрактного автомата. На количество
входов логических элементов ограничения не налагаем.
Рис. 1.4. Схема автомата на JK-триггерах.
.4 Проверка по первой части курсового проекта
97 ЛапинРИ
5430200097=1,5/2,6/3/4/7,8;=y2y1y2y3y2y1y1y2;;
Var#97 Fio:ЛапинРИ
Chiffr:5430200097results:
Automaton equivalence classes:
Correct!output sequence: Correct!
******END******
1.5 Моделирование работы абстрактного автомата
. Листинг программы на языке С++:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>
int cAC=15;
//цвет активного меню
const
int cNOTAC=0;
//цвет не активного меню
const
int cDISP=1;
//цвет дисплея
int
arrs1[3][8]={{3,4,2,7,3,4,5,5},{2,8,4,1,6,8,3,3},{4,1,7,3,4,5,6,2}};
int
arry1[3][8]={{3,1,3,1,3,1,3,3},{2,3,2,3,2,3,2,2},{1,2,1,2,1,2,1,1}};
int
arrs2[3][8]={{3,4,2,7,0,0,1,0},{2,7,4,1,0,0,3,0},{4,1,7,3,0,0,2,0}};
int
arry2[3][8]={{3,1,3,1,0,0,3,0},{2,3,2,3,0,0,2,0},{1,2,1,2,0,0,1,0}};
void
calc(int);tabl(int);obtabl(char,char,char,char,char,char,int);PrintMenu(int,int,int,int);main()
{i,c;flag=0;sScr[4000];
{name[51];x;y;
}[3]={
{ " 1. Исходные
данные
",2, 5 },
{ " 2. Минимизированный
автомат
",2, 7 },
{ " 3. Выход
",2, 9 }
};(7);(cDISP);();(16,15,64,26);(16,15,64,26);(4);(15);(2,2);("
ГЛАВНОЕ
МЕНЮ
");(cNOTAC);(2);(i=0; i<3; i++)
{(menu[i].x,menu[i].y);
cprintf("%s",menu[i].name);
}
textcolor(cAC);
//изменение цвета активной строки меню
gotoxy(menu[flag].x,menu[flag].y);
cprintf("%s",menu[flag].name);(3,5);(1)
{=getch();(16,15,64,26);(2);(c)
{
case 72 :
//движение по меню вверх
textcolor(cNOTAC);
gotoxy(menu[flag].x,menu[flag].y);
cprintf("%s",menu[flag].name);
gotoxy(3,menu[flag].y);
flag--;
//переменная, определяющая № подсвеченной строки
if(flag<0)=2;(cAC);
gotoxy(menu[flag].x,menu[flag].y);
cprintf("%s",menu[flag].name);(3,menu[flag].y);;
80 : //движение по меню вниз
textcolor(cNOTAC);
gotoxy(menu[flag].x,menu[flag].y);
cprintf("%s",menu[flag].name);
gotoxy(3,menu[flag].y);++;
if(flag>2)=0;(cAC);
gotoxy(menu[flag].x,menu[flag].y);
cprintf("%s",menu[flag].name);(3,menu[flag].y);;13:(1,1,80,50,&sScr);(cDISP);(1,1,80,50);();(flag)
{0:1:(flag);;2:;
}();(1,1,80,50,sScr);(16,15,64,26);(3,menu[flag].y);
default:(3,menu[flag].y);
}
}
}
//определение функции вывода главного меню на
экран
void PrintMenu(int x1,int y1,int
x2,int y2)
{i,j;(x1,y1,x2+1,y2+1);(1,1);<<"\311";
// верхний
левый
угол(i=2;
i<x2-x1+1; i++)
{
gotoxy(i,1);
cout<<"\315";
// верхняя горизонтальная линия
gotoxy(i,y2-y1+1);
cout<<"\315";
// нижняя горизонтальная линия
}
gotoxy(x2-x1+1,1);
cout<<"\273";
// верхний правый угол
for(j=2; j<y2-y1+1; j++)
{(1,j);<<"\272";
// левая вертикальная линия
gotoxy(x2-x1+1,j);
cout<<"\272";
// правая вертикальная линия
}
gotoxy(1,y2-y1+1);
cout<<"\310";
// левый нижний угол
gotoxy(x2-x1+1,y2-y1+1);
cout<<"\274";
// правый нижний угол
}
void
calc(int
flag)
{s[9],x[8],y[8],i;
{();
if(flag==0)
{<<"\n\n Абстрактный автомат Мили
задан таблицей переходов/выходов\n\n";(8);<<"\n\nЭта таблица
определяет функцию переходов автомата s(t+1) =
П[x(t),s(t)] и функцию выходов
y(t)=B[x(t),s(t)].";<<"Здесь: s(t) - состояние, x(t) - входной,
y(t) - выходной символ автомата в
момент времени t";
}
{<<"\n\n Минимизированное число
состояний абстрактного
автомата\n\n";<<" Таблица
переходов минимизируемого автомата\n\n";
tabl(5);
}(i=0;i<8;i++)[i]=y[i]=0;<<"\n\nВведите
x через пробел (8 значений) и 0
(если введено меньше 8 значений):\nx = ";
for(i=0;i<8;i++)
{>>x[i];
if(x[i]==0);
}<<"\nВведите начальное состояние
автомата s0: ";
cin>>s[0];(i=0;i<8;i++)
{(x[i]==0);(flag==0)
{[i]=arry1[x[i]-1][s[i]-1];[i+1]=arrs1[x[i]-1][s[i]-1];
}
{[i]=arry2[x[i]-1][s[i]-1];[i+1]=arrs2[x[i]-1][s[i]-1];
}
}<<"\n\nФункция выходов y: ";
for(i=0;i<8;i++)
{(y[i]==0);<<"y"<<y[i];
}
cout<<"\n\nЦепочка
состояний s: ";
for(i=0;i<8;i++)
{(s[i+1]==0);<<"s"<<s[i];
}<<"\n\n\nПродолжение
- Enter. ESC - Выход в главное меню.";
}(getch()!=27);
}tabl(int c)
{('\311','\315','\313','\315','\315','\273',c);<<"
\272 x(t) \272";(c==5)<<" s(t)
\272";<<" s(t) \272";('\272','
','\314','\313','\315','\271',c);<<" \272 \272";(int
i=0;i<c;i++)
{(c==5&&i==4)<<"
s7 \272";<<" s"<<i+1<<" \272";
}(i=0;i<3;i++)
{('\314','\315','\316','\316','\315','\271',c);<<"
\272 x"<<i+1<<" \272";(int j=0;j<c;j++)
{(c==5)
{(j==4)<<"
s"<<arrs2[i][6]<<"/y"<<arry2[i][6]<<"
\272";<<"
s"<<arrs2[i][j]<<"/y"<<arry2[i][j]<<"
\272";
}<<"
s"<<arrs1[i][j]<<"/y"<<arry1[i][j]<<"
\272";
}
}('\310','\315','\312','\312','\315','\274',c);
}
obtabl(char a,char b,char c,char
d,char e,char f,int k)
{<<"\n
"<<a;(int i=0;i<6;i++)<<b;<<c;(int j=0;j<k;j++)
{(i=0;i<7;i++)<<e;<<d;
}<<"\b"<<f<<"\n";
}
2. Интерфейс программы
Рис. 1.5. Вид главного меню программы.
Рис. 1.6. Реакция исходного автомата на входное
воздействие x2x1x3x1x3x3x1x2.
Рис. 1.7. Реакция минимизированного автомата на
входное воздействие x2x1x3x1x3x3x1x2.
2. Микропрограммные автоматы на базе логических
матриц
.1 Задание на вторую часть курсового проекта
2.2 Синтез микропрограммного автомата
Абстрактный синтез МПА
1. Составление графа
функционирования по ТМА.
Состояниям Yi,
в ТМА сопоставляются операторные вершины в графе функционирования ГФ. Связи
между вершинами в ГФ, т. е. его ветви находятся по ТМА следующим образом.
). Задаемся некоторой вершиной Yi
и находим в ТМА строку Yi.
). Если клетка YiYi
не пуста, то вершина Yi
должна иметь петлю. (Однако, на ГФ петли изображать не принято, но они
подразумеваются. В этом случае на ГСА вслед за операторной вершиной Yi
должна следовать ждущая вершина.)
Если в клетке YiYi указано
временное условие , задающее
выдержку времени, то символ ti указывается в скобках в
вершине Yi. Это
означает, что микрокоманда должна отрабатываться в течение временного интервала
ti.
Если в клетке YiYi указано
логическое условие то
микрокоманда Yi должна
выполняться до тех пор, пока не станет zi=1.
Следовательно, ветвь, выходящая из вершины Yi, помечается
символом zi. Наконец,
если клетка YiYi пустая, то
непосредственно за микрокомандой Yi, должна отрабатываться
следующая микрокоманда, определяемая информацией, записанной в другие клетки
строки Yi. (При этом
на ГСА вслед за операторной вершиной Yj ждущая
вершина уже не включается).
). Если в строке Yi некоторая
клетка YiYj не пуста и
в ней записано некоторое условие zi, то на ГФ проводится ветвь
из вершины Yi в вершину Yj, эта ветвь
помечается символом zi и т. д.
Рис. 2.1. Граф функционирования МПА.
. Составление граф-схемы алгоритма ГСА по графу
функционирования.
Если на ГСА отметить некоторыми
символами состояния автомата, то будет получена так называемая отмеченная ГСА.
Отметка осуществляется согласно следующим правилам:
) Вход вершины, следующей за
начальной операторной вершиной, обозначается некоторым символом, например а0.
) Этим же символом отмечается
вход конечной вершины, если она существует (в данном случае такой вершины нет,
так как заданный граф циклический, т. е. замкнутый).
3) Входы всех вершин, следующих за операторными,
помечаются различными символами, например а1, а2, а3 ...
Рис. 2.2. Граф-схема алгоритма ГСА.
3. Построение абстрактной таблицы переходов.
В абстрактной таблице переходов
пять столбцов: номер строки N,
текущее аn и будущее аn+1
состояния, входные {Z} и выходные
{Y} сигналы. Каждая
строка таблицы соответствует одному пути перехода автомата. Если необходимо
сохранить некоторое состояние МПА неизменным, то аn
и аn+1 принимаются
равными.
Таблица. 2.1.
N
|
an
|
an+1
|
{Z}
|
{Y}
|
|
|
|
|
|
1
|
a0
|
a0
|
y0
|
|
2
|
a0
|
a1
|
z0
|
y3(t3)
|
3
|
a1
|
a2
|
1
|
y1(t1)
|
4
|
a2
|
a3
|
1
|
y6(t6)
|
5
|
a3
|
a4
|
1
|
y4 (t4,z4)
|
6
|
a4
|
a4
|
z4
|
y4 (t4,z4)
|
7
|
a4
|
a5
|
y11
|
|
8
|
a5
|
a3
|
1
|
y6(t6)
|
Структурный синтез МПА
1. Рациональное кодирование состояний автомата.
Максимальный индекс аi
равен 5, следовательно, необходимо не менее трех двоичных разрядов (Q4, Q2, Q1)
для кодирования всех аi.
Правило кодирования состояний аi
с целью минимизации величины Σ К:
чем чаще встречается ai
в столбце аn+1 абстрактной
таблицы переходов, тем с меньшим числом единиц должна использоваться комбинация
для кодирования этого состояния.
Таблица. 2.2.
Состояние
ai
|
Число
повторений
|
K(an+1)
|
|
|
Q4
|
Q2
|
Q1
|
a0
|
1
|
0
|
1
|
1
|
a1
|
1
|
0
|
0
|
1
|
a2
|
1
|
0
|
1
|
0
|
a3
|
2
|
0
|
0
|
0
|
a4
|
2
|
1
|
0
|
0
|
a5
|
1
|
1
|
0
|
1
|
. Построение структурной таблицы переходов
(табл. 2.3.).
Сравнивая текущее значение Qi
в кодовой комбинации k(an)
с будущим значением Qi
в комбинации k(an+1),
находим сигналы переходов δ.
Таблица. 2.3.
N
|
an
|
an+1
|
{Z}
|
{Y}
|
K(an)
|
K(an+1)
|
δ
|
|
|
|
|
|
Q4
|
Q2
|
Q1
|
Q4
|
Q2
|
Q1
|
Q4
|
Q2
|
Q1
|
1
|
a0
|
a0
|
y0
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
|
2
|
a0
|
a1
|
z0
|
y3(t3)
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
-
|
1
|
3
|
a1
|
a2
|
1
|
y1(t1)
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
+
|
-
|
4
|
a2
|
a3
|
1
|
y6(t6)
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
-
|
0
|
5
|
a3
|
a4
|
y4 (t4,z4)
|
0
|
0
|
0
|
1
|
0
|
0
|
+
|
0
|
0
|
6
|
a4
|
a4
|
z4
|
y4 (t4,z4)
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
7
|
a4
|
a5
|
y1110010110+
|
|
|
|
|
|
|
|
|
|
|
8
|
a5
|
a3
|
1
|
y6(t6)
|
1
|
0
|
1
|
0
|
0
|
0
|
-
|
0
|
-
|
. Вывод логических выражений для функций выходов
и переходов.
Для нахождения перечисленных функций
целесообразно составить промежуточные контермы КN,
где индекс N соответствует номеру строки. Контермы составляются по абстрактной
и структурной таблицам переходов следующим образом: для N-й строки образуется
конъюнкция из сигналов Qi
(в текущий момент времени) и входных сигналов zi,
взятых со знаками инверсии либо без них.
Функции возбуждения будем искать для D
- триггеров, объединяя контермы, для которых операторы δ
помечены
знаками «1» и «+».
Таблица. 2.4.
Kn
|
Контермы
|
Функции
выходов
|
K1 y0=K1; y1=
K3 ;y3 =K2 ;= K5 v K6 ;y6= K4 v K8 ;
y11= K7 ;
|
|
|
K2
|
|
|
K3
|
|
|
K4
|
|
|
K5
|
Функции
возбуждения
|
|
K6 D4= K5 v K6
v K7;
D2= K1 v K3;
D1= K1 v K2 v K7;
|
|
|
K7
|
|
|
K8
|
|
|
Схемная реализация МПА
Обратимся к табл.2.4, где
приведены функции выходов МПА и функции возбуждения триггеров. Из этой таблицы
видно, что произвольная функция уi,
Tj может быть
представлена как дизъюнкция ряда контермов. Таким образом, матричная схема МПА
должна содержать две матрицы (рис.2.3): M1
- для формирования контермов и M2
- для выработки выходных величин в виде дизтермов.
Кроме того, структурная схема на рис.2.3 содержит
триггерный регистр Рг, объект управления ОУ, цифровую линию задержки ЦЛЗ
(таймер), генератор прямоугольных импульсов ГПИ и счетчик числа микрокоманд
СТМ.
Матрица M2
вырабатывает микрокоманды {У}, управляющие ОУ, и функции возбуждения {А} -
триггерами Рг. Совокупность сигналов {Z}
характеризует состояние ОУ, а совокупность сигналов {Q}
- состояние элементов памяти МП А. Из перечисленных сигналов матрица М1
формирует контермы {К}. ЦЛЗ управляется кодами {В}, соответствующими
отрабатываемой в данный момент микрокоманде, так что импульсы f
от ГПИ проходят на вход синхронизации С регистра с требуемой задержкой ti.
Рис. 2.3. Структурная схема МПА.
Функциональная схема МПА представлена на
рис.2.4. В любом рабочем состоянии МПА лишь на одном выходе матрицы M1, и,
следовательно, на одном входе матрицы M2 может действовать единичный сигнал.
Поэтому первую из них назовем матрицей-дешифратором, а вторую -
матрицей-шифратором. Регистр образован из трех D-триггеров.
ЦЛЗ формирует временные интервалы заданной длительности ti,
требуемой для отработки микрокоманд yi.
ЦЛЗ управляется непосредственно сигналами у1, y3,
y4, y6.
Совокупность сигналов {Z} оповещает о состоянии
ОУ и поступает по цепи обратной связи, как и совокупность сигналов {Q} на
входные (вертикальные) шины M1; из перечисленных сигналов {Q}, {Z} образуются
контермы Ki на горизонтальных
шинах матриц.
Рис. 2.4. Функциональная схема МПА на базе ПЛМ.
.3 Синтез счётчика числа микрокоманд
Абстрактный синтез счётчика
. Выбор количества триггеров. Т.к. N=10, то
требуется y=]log210[=4 триггера. Обозначим их А, Б, В, Г.
. Кодирование внутренних состояний.
Рис. 2.5. Граф переходов счетчика
С помощью четырёх триггеров можно получить Nmax=2q=16
внутренних состояний КА. В данном случае 6 из них являются лишними, поэтому
возьмём только первые 10. Счетчик работает в коде Грея.
. Составление таблиц переходов. На основании
графа переходов составим таблицу переходов (табл. 2.5.), указывая текущие и
будущие состояния триггеров, а также значение операторов перехода.
Таблица. 2.5.
N10
|
А
|
Б
|
В
|
Г
|
Текущие
состояния в момент n
|
Будущие
состояния в момент n+1
|
Операторы
перехода δ
|
|
|
|
|
|
А
|
Б
|
В
|
Г
|
А
|
Б
|
В
|
Г
|
А
|
Б
|
В
|
Г
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
+
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
+
|
-
|
2
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
+
|
-
|
0
|
3
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
+
|
4
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
+
|
-
|
0
|
-
|
5
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
+
|
6
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
+
|
-
|
7
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
1
|
+
|
-
|
0
|
8
|
1
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
+
|
9
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
-
|
-
|
0
|
-
|
. Составляем обобщённые карты Карно. Так как
счётчик содержит 4 разряда, то составляем четыре карты: А, Б, В и Г, в клетки
которых заносим значения операторов перехода для соответствующих разрядов.
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
0
|
0
|
0
|
0
1
|
+
|
0
|
0
|
0
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ0
00 11 11 0
|
|
|
|
|
0
0
|
0
|
+
|
1
|
1
|
0
1
|
0
|
0
|
-
|
1
|
1
1
|
0
|
0
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
0
|
0
|
+
|
0
1
|
1
|
1
|
1
|
1
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ0
00 11 11 0
|
|
|
|
|
0
0
|
+
|
1
|
-
|
0
|
0
1
|
0
|
-
|
1
|
+
|
1
1
|
+
|
-
|
|
|
1
0
|
|
|
|
|
Структурный синтез счётчика.
. Выбор элементной базы и типа триггеров. В
качестве запоминающих устройств выбираем универсальные синхронные JK-
триггеры, а элементная база - ИЛИ-НЕ.
. Вывод логических выражений для сигналов
возбуждения JK- триггеров.
АБ/ВГ
|
0
0
|
0
1
|
1
0
|
0
0
|
0
|
0
|
0
|
0
|
0
1
|
+
|
0
|
0
|
0
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
0
|
0
|
0
|
0
1
|
+
|
0
|
0
|
0
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
0
|
0
|
+
|
0
1
|
1
|
1
|
1
|
1
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
0
|
0
|
+
|
0
1
|
1
|
1
|
1
|
1
|
1
1
|
1
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
+
|
1
|
1
|
0
1
|
0
|
0
|
-
|
1
|
1
1
|
0
|
0
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
0
|
+
|
1
|
1
|
0
1
|
0
|
0
|
-
|
1
|
1
1
|
0
|
0
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
+
|
1
|
-
|
0
|
0
1
|
0
|
-
|
1
|
+
|
1
1
|
+
|
-
|
|
|
1
0
|
|
|
|
|
АБ/ВГ
|
0
0
|
0
1
|
1
1
|
1
0
|
0
0
|
+
|
1
|
-
|
0
|
0
1
|
0
|
-
|
1
|
+
|
1
1
|
+
|
-
|
|
|
1
0
|
|
|
|
|
. Схемная реализация счётчика. На
основании полученных выше выражений составляем схему счетчика по модулю 10 на JK-триггерах
(рис.2.6).
Рис. 2.6. Схема счетчика на JK-триггерах
Синтез преобразователя кода
Необходимо синтезировать преобразователь кода
Грея в код управления семисегментным индикатором. Сам индикатор представляет
собой полупроводниковый прибор, в котором имеются семь сегментов, выполненных
из светодиодов. Включением и выключением отдельных сегментов можно получить
светящееся изображение отдельных цифр. Расположение сегментов индикатора
показаны на рис. 2.7.
Рис. 2.7. Расположение сегментов индикатора.
Для составления таблицы истинности возьмем
последовательно числа от 0 до 5 в коде Грея (по числу микрокоманд yi).
. Таблица истинности преобразователя кода.
Таблица 2.6.
N10
|
Код
Грея
|
Сегменты
|
|
Q1
|
Q2
|
Q3
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
2
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
3
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
1
|
4
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
5
|
1
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
1
|
. Минимизированные логические выражения в базисе
И-НЕ}
a
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
1
|
1
|
1
|
1
|
x
|
x
|
0
|
1
|
b
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
1
|
0
|
1
|
1
|
x
|
x
|
1
|
1
|
c
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
0
|
1
|
1
|
1
|
x
|
x
|
1
|
0
|
d
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
0
|
1
|
0
|
1
|
x
|
x
|
0
|
0
|
e
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
0
|
0
|
0
|
1
|
x
|
x
|
1
|
1
|
f
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
1
|
0
|
1
|
1
|
1
|
x
|
x
|
1
|
0
g
|
Q2Q3
|
Q1
|
0
0
|
0
1
|
1
1
|
1
0
|
0
|
0
|
0
|
1
|
1
|
1
|
x
|
x
|
1
|
1
|
. Схемная реализация
Рис. 2.8. Схема преобразователя кода Грея в
семисегментный код
.4 Разработка цифровой линии задержки (таймера)
Таймер выполняет функции управляемой кодом
цифровой линии задержки (ЦЛЗ): задерживает импульс на временной интервал,
пропорциональный заданному коду. Подобную ЦЛЗ можно построить на базе счетчика
импульсов с принудительной установкой (рис.2.9).
Рис. 2.9. Цифровая линия задержки (таймер).
В момент подачи рабочего импульса на управляющий
вход V счетчика СТ в него заносится число N0 по информационным входам D1, D2,
D3, D4. Одновременно рабочий импульс f
от генератора прямоугольных импульсов ГПИ в схеме на рис.2.4. взводит RS-триггер
таким образом, что конъюнктор открывается и начинает пропускать высокочастотные
импульсы F=1/T0 на счетный вход счетчика С. В момент переполнения последнего
появляется сигнал t, который опрокидывает RSтриггер
и запирает конъюнктор. Следовательно, на счетчик проходит число импульсов,
равное (Nmax +1) - N0, где Nmax емкость счетчика (максимально набираемое им
число). Таким образом, задержка сигнала (от момента подачи рабочего импульса на
вход V до момента появления импульса t на выходе счетчика) зависит от исходного
числа N0. Назначение шифратора CD - трансформировать входную информацию (сигналы
y1, y3,
y4, y6)
в соответствующее число N0, определяемое заданием. Для составления таблицы
истинности шифратора возьмем последовательно числа N0
от 0 до 3 (по числу микрокоманд yi
с временным условием ti).
. Таблица истинности шифратора.
Таблица 2.7.
N0
|
Входы
|
Выходы
|
|
x3
|
x2
|
x1
|
x0
|
К1
|
К0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
2
|
0
|
1
|
0
|
0
|
1
|
0
|
3
|
1
|
0
|
0
|
0
|
1
|
1
|
Функции выходов шифратора:
K0=x0
v x1;
K1=x2
v x3;
. Схемная реализация.
Рис. 2.10. Схема шифратора.
3. Список литературы
1.
Теория автоматов: учебно-методический комплекс / сост. Г.И. Анкудинов, И.В.
Иванова. - СПб.: Изд-во СЗТУ, 2008. - 227 с.
.
Анкудинов Г.И., Анкудинов И.Г., Хамидуллин P.P.
Теория автоматов: Учеб. пособие,- СПб.: СЗТУ. 2002. - 112 с.
3. ГОСТ 2.001-93 ЕСКД. Общие положения;
. ГОСТ 2.051-2006 ЕСКД. Электронные документы.
Общие положения;
Похожие работы на - Абстрактный автомат Мили
| |