Автор работы: Пользователь скрыл имя, 27 Февраля 2013 в 06:15, курсовая работа
Целью курсовой работы является синтез цифрового автомата на заданных элементах памяти и заданных на определенном логическом базисе и, как результат проделанной работы полное сходство в значениях временных диаграмм.
Задан цифровой автомат. Произвести синтез данного автомата на D триггере и Multiplexor (MUX).
Автомат задается множеством из объектов: , где -множество входных сигналов, -множество выходных сигналов, -множество внутренних состояний автомата, -функция переходов (определяет следующее состояние автомата), -функция выхода (определяет текущее значение выхода), -начальное состояние автомата.
1.Задание на курсовую работу_______________________________________ 4
2.Номер варианта с индивидуальным заданием_________________________5
3.Основные единицы, сокращения, термины___________________________6
4.Задание I_______________________________________________________9
5.Задание II_______________________________________________________9
6.Задание III_____________________________________________________ 10
7.Задание IV_____________________________________________________11
8.Задание V______________________________________________________12
9.Задание VI_____________________________________________________ 13
10.Задание VII___________________________________________________ 15
11.Задание VIII___________________________________________________17
12.Выводы_______________________________________________________22
13. Список литературы_____________________________________________23
Задание IV
Произведем эффективное кодирование состояний автомата с учетом типа триггера входящих в память автомата.
По Баранову:
Z1 |
0 1 1 |
2 |
Z2 |
0 0 0 |
3 |
Z3 |
0 0 1 |
3 |
Z4 |
1 0 1 |
2 |
Z5 |
0 1 0 |
3 |
Z6 |
1 0 0 |
3 |
Z7 |
1 1 0 |
1 |
Закодируем входы автомата
0 0 | |
0 1 | |
1 0 |
Y |
|
1 | |
0 |
Таблица переходов для триггера
D | |
C=1 | |
0 -> 0 |
|
0-> 1 |
1 |
1-> 0 |
0 |
1-> 1 |
Задание V
Закодируем таблицу переходов/выходов в двоичном виде
00 |
|||||||
01 |
- |
- | |||||
10 |
- |
- | |||||
11 |
- |
- |
- |
- |
- |
- |
- |
Задание VI
Произведем синтез КС автомата
000 |
001 |
011 |
010 |
110 |
111 |
101 |
100 | |
00 |
0 |
0 |
0 |
1 |
1 |
Х |
1 |
0 |
01 |
1 |
1 |
Х |
0 |
Х |
Х |
0 |
0 |
11 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
10 |
1 |
0 |
1 |
0 |
Х |
Х |
Х |
1 |
;
;
С (днф) = 21
С (кнф) = 30
000 |
001 |
011 |
010 |
110 |
111 |
101 |
100 | |
00 |
1 |
1 |
0 |
1 |
0 |
Х |
1 |
0 |
01 |
1 |
0 |
Х |
1 |
Х |
Х |
1 |
1 |
11 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
10 |
0 |
0 |
0 |
0 |
Х |
Х |
Х |
Х |
;
;
С(днф)= 17
С(кнф) = 16
000 |
001 |
011 |
010 |
110 |
111 |
101 |
100 | |
00 |
0 |
1 |
0 |
0 |
0 |
Х |
0 |
1 |
01 |
0 |
1 |
Х |
0 |
Х |
Х |
0 |
1 |
11 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
10 |
1 |
1 |
1 |
0 |
Х |
Х |
Х |
1 |
;
;
С(днф) = 14
С(кнф) = 14
Выходная функция
000 |
001 |
011 |
010 |
110 |
111 |
101 |
100 | |
00 |
1 |
1 |
0 |
0 |
1 |
Х |
0 |
0 |
01 |
1 |
0 |
Х |
1 |
Х |
Х |
1 |
1 |
11 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
10 |
0 |
0 |
0 |
1 |
Х |
Х |
Х |
0 |
;
.
С (днф)= 22
С(кнф)=22
Задание VII
С помощью графического редактора представим принципиальную схему автомата. Для удобства используем мультиплексор на основе функций F1 и F2.
Таблицы кодировок:
для
δ3 δ2 δ1 |
λ2 λ1 | |||
0 0 |
0 1 |
1 0 |
1 1 | |
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 |
0 0 1 0 0 1 1 Х |
1 1 0 Х 0 0 Х Х |
1 0 0 1 1 Х Х Х |
Х Х Х Х Х Х Х Х |
Vx |
λ2+λ1 λ1
λ2 λ2
1 1 |
Vx |
0 λ1 1 0 1 |
δ3 δ2 δ1 |
λ2 λ1 | |||
0 0 |
0 1 |
1 0 |
1 1 | |
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 |
1 1 1 0 0 1 0 X |
1 0 1 X 1 1 X X |
0 0 0 0 X X X X |
Х Х Х Х Х Х Х Х |
для
δ3 δ2 δ1 |
λ2 λ1 | |||
0 0 |
0 1 |
1 0 |
1 1 | |
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 |
0 1 0 0 1 0 0 X |
0 1 0 X 1 0 X X |
1 1 0 1 1 X X X |
Х Х Х Х Х Х Х Х |
Vx |
λ2 1 0 λ2 1 0 0 1 |
Для выходной функции
δ3 δ2 δ1 |
λ2 λ1 | |||
0 0 |
0 1 |
1 0 |
1 1 | |
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 |
1 1 0 0 0 0 1 Х |
1 0 1 Х 1 1 Х Х |
0 0 1 0 0 Х Х Х |
Х Х Х Х Х Х Х Х |
Vx |
λ2+λ1 0 λ1 λ1 1 |
В результате получили функции:
F1= λ2+λ1
F2=
Задание VIII
Структурное моделирование автомата с помощью графического редактора и редактора временных диаграмм.
Текстовый файл (структурный):
Subdesign structmux
(alf[1..0], clk, set: input;
z[2..0], bt: output;)
Variable
td[2..0]: DFF;
dlt[2..0]: NODE;
dg[2..0] : NODE;
F1, F2 :NODE;
Begin
F1=alf[1]#alf[0];
F2=!alf[1]&!alf[0];
CASE dlt[] is
WHEN 0 => dg[2]=F1;
WHEN 1 => dg[2]=alf[0];
WHEN 2 => dg[2]=F2;
WHEN 3 => dg[2]=alf[1];
WHEN 4 => dg[2]=alf[1];
WHEN 5 => dg[2]=!alf[0];
WHEN 6 => dg[2]=VCC;
WHEN 7 => dg[2]=VCC;
END CASE;
CASE dlt[] is
WHEN 0 => dg[1]=!alf[1];
WHEN 1 => dg[1]=F2;
WHEN 2 => dg[1]=!alf[1];
WHEN 3 => dg[1]=GND;
WHEN 4 => dg[1]=alf[0];
WHEN 5 => dg[1]=VCC;
WHEN 6 => dg[1]=GND;
WHEN 7 => dg[1]=VCC;
END CASE;
CASE dlt[] is
WHEN 0 => dg[0]=alf[1];
WHEN 1 => dg[0]=VCC;
WHEN 2 => dg[0]=GND;
WHEN 3 => dg[0]=alf[1];
WHEN 4 => dg[0]=VCC;
WHEN 5 => dg[0]=GND;
WHEN 6 => dg[0]=GND;
WHEN 7 => dg[0]=VCC;
END CASE;
CASE dlt[] is
WHEN 0 => bt=!alf[1];
WHEN 1 => bt=F2;
WHEN 2 => bt=F1;
WHEN 3 => bt=GND;
WHEN 4 => bt=alf[0];
WHEN 5 => bt=alf[0];
WHEN 6 => bt=VCC;
WHEN 7 => bt=VCC;
END CASE;
td[2].d=dg[2];
td[1].d=dg[1];
td[0].d=dg[0];
td[ ].CLK=clk;
td[ ].ClRn=set ;
td[ ].PRn=vcc;
dlt[ ]=td[ ].q;
z[ ]=dlt[ ];
END;
Векторный файл:
Unit us;
Start 0;
Stop 180us;
Interval 10us;
Radix BIN;
Inputs clk;
Pattern
0 1;
Inputs set;
Radix BIN;
Pattern
0> 0
20> 1;
Inputs alf[1..0];
Radix OCT;
Pattern
0> 0
120> 2
140> 1
160> 2;
Radix OCT;
Outputs z[2..0];
Radix BIN;
Outputs bt;
Определение тестовой последовательности входных сигналов:
clk |
|||||||||
set |
|||||||||
α2α1 |
X |
0 |
0 |
0 |
0 |
0 |
2 |
1 |
2 |
δ3δ2δ1 |
0 |
2 |
6 |
4 |
1 |
3 |
5 |
2 |
0 |
β |
Х |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
Описание автомата с помощью оператора Machine:
Subdesign machine1
(CLK, RS, a2, a1: input;
y, z[2..0] :output;)
Variable
aa: MACHINE OF BITS (z[2..0]) WITH STATES( S2=b"000",S5=b"010",S7=b"110", S6=b"100", S3=b"001", S1=b"011", S4=b"101" );
BEGIN
aa.clk=CLK;
aa.reset=RS;
TABLE
aa, a2, a1=> y, aa;
S1, 0, 0=> 0, S2;
S1, 1, 0=> 0, S4;
S2, 0, 0=> 1, S5;
S2, 0, 1=> 1, S7;
S2, 1, 0=> 0, S4;
S3, 0, 0=> 1, S1;
S3, 0, 1=> 0, S4;
S3, 1, 0=> 0, S3;
S4, 0, 0=> 0, S7;
S4, 0, 1=> 1, S5;
S5, 0, 0=> 0, S7;
S5, 0, 1=> 1, S5;
S5, 1, 0=> 1, S2;
S6, 0, 0=> 0, S3;
S6, 0, 1=> 1, S1;
S6, 1, 0=> 0, S4;
S7, 0, 0=> 1, S6;
END TABLE;
END;
Векторный файл:
PATTERN
0> 1
20> 0;
RADIX BIN;
INPUTS a2 a1;
PATTERN
0> 0 0
20> 0 0
40> 0 0
60> 0 0
80> 0 0
100> 0 0
120> 1 0
140> 0 1
160> 1 0
180> 1 0;
RADIX BIN;
OUTPUTS y;
RADIX OCT;
OUTPUTS z[2..0];