Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Содержание
. Постановка задачи
. Разработка алгоритма работы управляющего автомата.
. Тестирование программы
. Разработка УА с жесткой логикой.
.1 Общие сведения.
.2 Абстрактный синтез.
.2 Структурный синтез.
.3 Построение кодированной ПТП, синтез функций возбуждения и выходов.
.4 Реализация управляющего автомата с жёсткой логикой на заданной элементной базе.
.5 Расчет максимальной частоты следования синхросигнала.
.6 Описание работы
. Управляющий автомат с программируемой логикой.
.1 Построение кодированной ГСА
.2 Таблица прошивки ПЗУ
.3 Структура МПА с программируемой логикой.
.4 Описание работы принципиальной схемы УА с программируемой логикой.
Список использованной литературы
1. Постановка задачи
В данной курсовой работе необходимо разработать управляющий автомат с жесткой / программируемой логикой для выполнения операции: y = (a - b)/с.
Управляющий автомат связан с операционным автоматом. В данном случае в качестве операционного автомата выступает микропроцессорная система, базирующаяся на каком-то конкретном микропроцессоре. В качестве данного микропроцессора выберем шестнадцатиразрядный микропроцессор Intel 80286. Т.е. все операнды должны иметь размер 16 бит, так как регистры имеют разрядность 16 бит. Но так как в заданной операции присутствует деление, то разрядность делимого (а) должна быть в два раза больше разрядности делимого (с). Все операнды хранятся в ОЗУ в дополнительном коде.
С учетом вышесказанного разработаем алгоритм и программу на ассемблере для выполнения заданной операции.
Листинг программы приведен в приложении 1.
Схема алгоритма приведена в приложении 2.
Этапы работы:
1. Составление алгоритма работы операционного автомата.
. Построение таблицы переходов для автомата Мура, синтез СКУ и СВФ.
3. Построение автомата Мили, синтез СКУ и СВФ.
. Минимизация числа состояний выбранного автомата.
. Построение функций возбуждения и выходов.
. Оценка автомата с точки зрения максимального быстордействия.
. Разработка принципиальной схемы управляющего автомата с жёсткой логикой.
. Разработка функциональной схемы МПА с программируемой логикой.
. Разработка таблицы прошивки ПЗУ МПА с ПЛ.
. Разработка принципиальной схемы МПА с ПЛ.
По заданию необходимо разработать алгоритм вычисления значения по формуле . Деление должно быть реализовано с помощью простейших микроопераций сложения и сдвига. Исходные данные представлены в формате целого со знаком.
Исходные значения - целые переменные А, В, С. Алгоритм начинается с записи значения переменной А в один из РОН-ов. Потом из этого регистра вычитается значение переменной В. Возможно в результате вычитания получится переполнение, которое фиксируется с помощью проверки соответствующего флага, и производится выход из алгоритма. Знак результата кодируется 0 или 1 и сохраняется в стэке.
После этого производится собственно деление (a-b)/c, которые находятся в памяти. В качестве алгоритма деления используется алгоритм деления целых чисел без знака. Знак результата формируется при завершении алгоритма извлечением из стэка кода этого знака (0 или 1). Соответственно проверяя условие получаем положительный или отрицательный результат.
Значение признака С и знака остатка |
Комментарий микрооперации в следующем такте |
Значение очередной цифры частного |
Пробное вычитание(в см ) |
||
С=0, остаток<0 |
Деление состоится Сдвиг влево на 1р. |
- |
После пробного вычитания |
||
С=0, остаток<0 |
Сложение( в сумматор посылаетя У), затем сдвиг влево на 1р. |
0 Zi=Ci |
С=0, остаток>=0 Вычитание (в сумматор посылаетя ), затем сдвиг влево на 1р. 1
Zi=Ci |
3. Тестирование программы
Ниже приведен листинг LOG - файла при обработке переполнения разрядной сетки при вычитании чисел: (A-B)
Turbo Debugger Log
Variables28912 (70F0h)
b 36860 (8FFCh)
c 's' 115 (73h)
ost ' ' 0 (00h)
rez ' ' 0 (00h)
start @5F9C:0000
CPU 80486
ds:0000 F0 70 FC 8F 73 00 00 00 Ёp№Пs
ds:0008 00 00 00 00 00 00 00 00
ds:0010 B8 9B 5F 8E D8 8B 1E 00 ¬Ы_О+Л-
ds:0018 00 2B 1E 02 00 70 70 83 +-_ ppГ
CPU 80486
ax 5F9B
bx 0000
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0005
CPU 80486=0=0=0=0=0=0=1=0 80486
ax 0001
bx E0F4
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0089
CPU 80486=1=0=1=1=0=1=1=028912 (70F0h)
b 36860 (8FFCh)
c 's' 115 (73h)
ost ' ' 0 (00h)
rez ' ' 0 (00h)
start @5F9C:0000
CPU 80486
ax 5F9B
bx E0F4
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0005
Далее приведен листинг LOG - файла при обработке исключительной ситуации - делении на ноль
Turbo Debugger Log208 (D0h)
b 65516 (FFECh)
c ' ' 0 (00h)
ost ' ' 0 (00h)
rez ' ' 0 (00h)
start @5F9C:0000
CPU 80486
ax 5F9B
bx 00D0
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0009
CPU 80486=0=0=0=0=0=0=1=080486
ds:0000 D0 00 EC FF 00 00 00 00 ¦ ь
ds:0008 00 00 00 00 00 00 00 00
ds:0010 B8 9B 5F 8E D8 8B 1E 00 ¬Ы_О+Л-
ds:0018 00 2B 1E 02 00 70 70 83 +-_ ppГ
CPU 80486
ax 0001
bx 00E4
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 027E
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0089
CPU 80486=0=1=0=0=1=0=1=080486
ds:0000 D0 00 EC FF 00 00 00 00 ¦ ь
ds:0008 00 00 00 00 00 00 00 00
ds:0010 B8 9B 5F 8E D8 8B 1E 00 ¬Ы_О+Л-
ds:0018 00 2B 1E 02 00 70 70 83 +-_ ppГ
Variables208 (D0h)
b 65516 (FFECh)
c ' ' 0 (00h)
ost ' ' 0 (00h)
rez ' ' 0 (00h)
Далее приведен листинг LOG - файла показывающего правильность алгоритма работы программы:
Turbo Debugger Log208 (D0h) 20 (14h) '_' 19 (13h) ' ' 0 (00h) ' ' 0 (00h) @5F9C:0000 80486
ax 5F9B
bx 00D0
cx 0000
dx 0000
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 0009
CPU 80486
ds:0000 D0 00 14 00 13 00 00 00 ¦
ds:0008 00 00 00 00 00 00 00 00
ds:0010 B8 9B 5F 8E D8 8B 1E 00 ¬Ы
ds:0018 00 2B 1E 02 00 70 70 83 +80486=0=0=0=0=0=0=1=0208 (D0h) 20 (14h) '_' 19 (13h) '_' 17 (11h) ' ' 9 (09h) @5F9C:0000 80486
ax 0000
bx 1109
cx 0000
dx ED13
si 0000
di 0000
bp 0000
sp 0280
ds 5F9B
es 5F63
ss 5F73
cs 5F9C
ip 007B
CPU 80486
ds:0000 D0 00 14 00 13 11 09 00 ¦
ds:0008 00 00 00 00 00 00 00 00
ds:0010 B8 9B 5F 8E D8 8B 1E 00 ¬Ы
ds:0018 00 2B 1E 02 00 70 70 83 +80486=0=1=0=0=1=0=1=0
Для построения УА с жесткой логикой использовался следующий фрагмент исходной схемы алгоритма:
4.1 Общие сведения
Автомат с жесткой логикой строится на базе использования ЛЭ и элементов памяти. Изменить алгоритм работы такого автомата нельзя, не изменяя соединения между элементами. Для таких автоматов характерны высокое быстродействие, определяемое только задержками используемых ЛЭ и элементов памяти, пропорциональный рост обьема оборудования в зависимости от сложности реализуемого алгоритма и малые удельные затраты оборудования при реализации простых микропрограмм. Однако автоматы с жесткой логикой не обладают гибкостью при внесении изменений в алгоритм их функционирования, необходимость в которых особенно часто возникает в процессе проектирования цифровых устройств.
4.2 Абстрактный синтез
Построение ПТП ЦА МУРА:
N п/п |
Si(t) |
Xij |
Sj(t+1) |
1 |
S0(y0) |
1 |
S1(y1) |
2 |
S1(y1) |
1 |
S2(y2) |
3 |
S2(y2) |
1 |
S3(y3) |
4 |
S3(y3) |
X1 |
S4(y4) |
x1 |
S5(y5) |
||
5 |
S4(y4) |
1 |
S6(y6) |
6 |
S5(y5) |
1 |
S7(y7) |
7 |
S6(y6) |
1 |
S8(y8) |
8 |
S7(y7) |
1 |
S9(y8) |
9 |
S8(y8) |
1 |
S10(y9) |
10 |
S9(y8) |
1 |
S11(y10) |
11 |
S10(y9) |
1 |
S12(y1) |
12 |
S11(y10) |
1 |
S13(y1) |
13 |
S12(y1) |
1 |
S14(y11) |
14 |
S13(y1) |
1 |
S15(y11) |
15 |
S14(y11) |
X2 |
S2(y2) |
x2 |
S16(y3) |
||
16 |
S15(y11) |
X2 |
S2(y2) |
x2 |
S16(y3) |
||
17 |
S16(y3) |
1 |
Sk(yk) |
СКУ ЦА Мура имеет вид:
s1(t+1)=s0(t+1)=s1|s14*X2|s15*X2(t+1)=s2(t+1)=s3*X1(t+1)=s3*x1(t+1)=s4(t+1)=s5(t+1)=s6(t+1)=s7(t+1)=s8(t+1)=s9(t+1)=s10(t+1)=s11(t+1)=s12(t+1)=s13(t+1)=s14*x2|s15*x2=s16
CBФ имеет вид:
y1=s1|s12|s13=s2=s3|s16=s4=s5=s6=s7=s8|s9=s1010=s11
y11=s14|s15
Выполняется минимизация числа состояний. При этом используется метод пар.
Выписываем классы 1-эквивалентных состояний, чтобы перейти от автомата Мура к автомату Мили.
1.s0,s10,s11:(1-y1)
. s6,s7: (1-y8)
. s12,s13: (1-y11)
4. s14,s15: (X2-y2,x2-y3)
Строится таблица пар:
1 экв. |
1 |
X2 |
x2 |
0--10 |
1--12 |
|
|
0--11 |
1--13 |
|
|
10--11 |
12--13 |
|
|
6--7 |
8--9 |
|
|
12--13 |
14--15 |
|
|
14--15 |
|
2--2 |
16--16 |
После минимизации получим:
a0=s0, a1=s1, a2=s2, a3=s3, a4=s4, a5=s5, a6=s6, a7=s7, a8=s8, a9=s9,=s10,s11; a11=s12,s13; a12=s14,s15; s13=s16; a14=sk
После минимизации строим ПТП ЦА Мили
Ai(t) |
Xi,j(t) |
Aj(t+1) |
Yi,j(t+1) |
A0 |
1 |
A1 |
Y1 |
A1 |
1 |
A2 |
Y2 |
A2 |
1 |
A3 |
Y3 |
A3 |
X1 |
A4 |
Y4 |
x1 |
A5 |
Y5 |
|
A4 |
1 |
A6 |
Y6 |
A5 |
1 |
A7 |
Y7 |
A6 |
1 |
A8 |
Y8 |
A7 |
1 |
A9 |
Y8 |
A8 |
1 |
A10 |
Y9 |
A9 |
1 |
A10 |
Y10 |
A10 |
1 |
A11 |
Y1 |
A11 |
1 |
A12 |
Y11 |
A12 |
X2 |
A2 |
Y2 |
x2 |
A13 |
Y3 |
|
A13 |
1 |
A14 |
Yk |
4.2 Структурный синтез
Чтобы найти вариант кодирования состояний автомата близкий к оптимальному, построим диаграмму Вейча для 4 переменных.
Оптимальным является тот вариант, когда при переходе из одного состояния автомата в другое переключается наименьшее число триггеров (самый лучший вариант - один триггер).
Q1 |
Q3 |
q3 |
|||
A1 |
A0 |
A14 |
A13 |
Q2 |
|
A2 |
A6 |
A8 |
A12 |
q2 |
|
q1 |
A3 |
A4 |
A10 |
A11 |
|
A5 |
A7 |
A9 |
------ |
Q2 |
|
Q4 |
q4 |
Q4 |
В итоге получим следующее значения кодов состояний
A0 |
0001 |
A8 |
0111 |
A1 |
0000 |
A9 |
1011 |
A2 |
0100 |
A10 |
1111 |
A3 |
1100 |
A11 |
1110 |
A4 |
1101 |
A12 |
0110 |
A5 |
1000 |
A13 |
0010 |
A6 |
0101 |
A14 |
0010 |
A7 |
1001 |
Неиспользованная кодовая группа - 1010
4.3 Построение кодированной ПТП, синтез функций возбуждения и выходов
По заданию на курсовое проектирование, при разработке УА с жесткой логикой нужно использовать JK - Триггер.
Q(t) |
а |
Q(t+1) |
J |
K |
0 |
а |
0 |
0 |
* |
0 |
а |
1 |
1 |
* |
1 |
а |
0 |
* |
1 |
1 |
а |
1 |
1 |
0 |
Строится кодированная ПТП ЦА Мили
Кодированная таблица переходов |
|||||||||||||
ai |
ai(t) |
xi,j(t) |
aj(t+1) |
yi,j(t) |
Qjk |
||||||||
Q1Q2Q3Q4 |
aj |
Q1Q2Q3Q4 |
j1 |
k1 |
j2 |
k2 |
j3 |
k3 |
j4 |
k4 |
|||
a0 |
0001 |
1 |
a1 |
0000 |
y1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
a1 |
0000 |
1 |
a2 |
0100 |
y2 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
a2 |
0100 |
1 |
a3 |
1100 |
y3 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
a3 |
1100 |
X1 |
a4 |
1101 |
y4 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
x1 |
a5 |
1000 |
y5 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
||
a4 |
1101 |
1 |
a6 |
0101 |
y6 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
a5 |
1000 |
1 |
a7 |
1001 |
y7 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
a6 |
0101 |
1 |
a8 |
0111 |
y8 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
a7 |
1001 |
1 |
a9 |
1011 |
y8 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
a8 |
0111 |
1 |
a10 |
1111 |
y9 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
a9 |
1011 |
1 |
a10 |
1111 |
y10 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
a10 |
1111 |
1 |
a11 |
1110 |
y1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
a11 |
1110 |
1 |
a12 |
0110 |
y11 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
a12 |
0110 |
X2 |
a2 |
0100 |
y2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
x2 |
a3 |
0010 |
y3 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
||
a13 |
0010 |
a14 |
a14 |
0011 |
yk |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
Исходя из этой таблицы строятся функции возбуждения и выходов:
Функции возбуждения:
qj1=a2|a3&(x1|X1)|a5|a7|a8|a9|a10
qk1=a4|a11
qj2=a1|a2|a3*X1|a4|a6|a8|a9|a10|a11|a12&X2
qk2=a3&x1|a12&x2=a6|a7|a8|a9|a10|a11|a13=a12&X2=a3&X1|a4|a5|a6|a7|a8|a9|a134=a0|a10
Функции выходов:
y1=a0|a10=a1|X2&a12=a2|x2&a12=X1&a3=x1&a3=a4=a5=a6|a7=a8=a9=a11=a13
По заданию, нужно разработать УА с жесткой логикой по критерию максимального быстродействия. Элементы типа И-ИЛИ-НЕ обладают высоким быстродействием.
Поэтому, минимизация функций возбуждения и функций выходов будет вестись с помощью диаграмм Вейча через нахождение МДНФ - отрицание заданной функции.
Функции возбуждения после минимизации будут иметь вид:
qj1=Q1Q2|q3Q4|q2Q3q4
qk1=Q1|Q3Q4|q3q4|Q2q4
qj2=q1Q3Q4x1|Q2Q3q4|Q1Q2Q3|Q1q3Q4x2
qk2=q4|q1Q4X1|Q2Q4|Q1q2Q3|q2q3X2|q1q2q3
qj3=q2Q3|Q3Q4|Q1q2Q4|Q1Q2q3q4
qk3=Q3|q4|Q2q3|q3x2|q1q3
qj4=Q1Q2q4|Q1q3Q4|q2q3Q4|q2Q4X1
qk4=q1Q2|q2Q3|Q3Q4|q2Q4|Q1q3
Функции выходов после минимизации будут иметь вид:
y1=q1Q2|q2Q3|Q3Q4|q2Q4|Q1q3
y2=q1|Q2q3|q3x2|q4|q2Q3
y3=q1|Q2|q4|q3Q4X2
y4=q3|q4|Q2|Q3x1
y5=q3|q4|Q4X1|Q2
y6=Q1|Q2|Q4|q3
y7=Q1|q2|q4
y8=q3|Q4|Q1Q2|q1q2
y9=Q2|Q4|Q3|q1
y10=q2|Q1|Q3
y11=Q1|Q3|q4
yk=q2|Q3|q4
4.4 Реализация управляющего автомата с жёсткой логикой на заданной элементной базе
Данный автомат может быть реализован разными путями. По заданию необходимо разработать автомат с максимальным быстродействием.
Состояния автомата закодированы четырьмя разрядами, значит нужно использовать 4 триггера. Автомат должен быть синхронизирован, причём динамически.
Микросхемы логики выберем из серий К155, К555 .
Рассмотрим примененный в нашей работе вариант структурного синтеза.
Выходы триггеров подключаются на логике вместе с управляющими сигналами На ЛЭ реализуются функции возбуждения и функции выходов.
Выходы управляющего автомата формируются следующим образом: с выходов логических элементов они поступают на разъем. Все выходы автомата формируются по позитивной логике, то есть 0 соответствует отсутствию сигнала, а 1 - присутствию.
Схема электрическая принципиальная УА с жесткой логикой представлена в приложении 3.
Используемые микросхемы:
К155ЛН1 - 6-не
К155ТМ2 - D-триггер
К155ТВ1 - JK-триггер
К155ЛИ1 - 2и
К555ЛИ3 - 3и
К155ЛЕ4-3или-не
К155ЛР3 - 2-2-2-3И-4ИЛИ-НЕ
К155ЛР4 - 4 - 4И - 2 ИЛИ - НЕ
К155ЛД1 - 2 логических расширителя по ИЛИ
.5 Расчет максимальной частоты следования синхросигнала
Структура автомата подразумевает, что сигнал “пуск” происходит после сигнала “инициализация”. Для цели инициализации при включении питания предусмотрена цепь R1-C1, которая обеспечивает установку триггера управления . R1=1кОм, С1=1мкФ
Уровень логической единицы для микросхем формируем резистором R1, сопротивление которого 1 кОм.
Для логических элементов серии К155 tзд. max = 25 нс.
Для микрросхемы К155ЛР4 tзд. max = 39 нс
Для триггера К155ТВ1 tзд. max = 40 нс. Для микрросхемы К155ЛР3 tзд. max = 33 нс.
Чтобы схема установилась при инициализации, требуется не менее 25нс+40нс+25нс=90нс
По принципиальной схеме (см. приложение 3) рассчитаем минимальный период следования импульсов синхронизации (рассматриваются элементы J04, I10, J13 (лист 1).
T = tТВ1 + tли3 + tлр3+3* tЛД = 40 + 25 + 39+7.5 = 106 (нс)
Частота f = 1 / T = 1 / 106 нс = 9 433 762 (Гц)
.6 Описание работы
При включении питания на вход конъюнктора (D1.1) , пока поступает 0 (происходит зарядка конденсатора С1 через сопротивление R1) происходит инициализация, устанавливающая JK-триггеры (D5-D8) в начальное состояние. Также этот сигнал поступает на триггер управления(D2), устанавливая его через R-вход в 0, что заставляет через элементы К155ЛИ1(D9,D10) отключить выходы схемы, т. е. У-ки не формируются. Затем конденсатор С1 заряжается и 1-ца поступает на входы R,S всех триггеров не изменяя состояния, функции возбуждения триггеров не формируются и схема не работает. Автомат находится в начальном состоянии и “ждёт” сигнала “пуск”.
Сигнал “пуск” соответствует нулевому импульсу, поступающему на вход S триггера D2 (ТМ2). На входе R данного триггера - пассивный сигнал, значит триггер установится в 1. Эта 1 с выхода триггера поступает на элементы (D9-D10), подключая выходы схемы, схема устанавливается в начальное состояние . В момент прихода сигнала «пуск» на выходе триггера D2 (TM2) формируется 1-ый уровень, который поступает на элемент ЛИ3, разрешающий проход синхроимпульса на входы синхронизации триггеров ТВ1 (D5-D8). При приходе синхроимпульса логика сформирует соответствующие функции возбуждения и выходные сигналы. По первому нарастающему фронту синхроимпульса триггеры D5-D8(ТВ1) перейдут под воздействием функций возбуждения в состояние, соответствующее следующему состоянию УА и т.д.
При появлении конечного состояния на выходе на котором формируется Y12, появляется нулевой уровень, который поступает на вход элемента D4.3 (ЛН1), что приводит к появлению 0 на входе элементов D3.1, D3.2 (ЛИ3). Запрещается проход синхроимпульса. Производится инициализация схемы по пункту 1.
Управляющие автоматы с программируемой логикой строятся на основе принципа программного управления, использующего операционно-адресную структуру управляющих слов.
Микрооперация - слово ПЗУ, записанное по определенному адресу и содержащее информацию о микрооперациях, которые должны выполняться в данном такте работы операционного устройства, и информацию об адресе следующей микрокоманды. Для кодирования информации о выполняемых в одном такте микрооперациях, в микрокоманде выделяются поля операционные поля Y1..Yn, число которых определяет максимальное число выполняемых микроопераций в одном такте. Длина каждого операционного поля определяется количеством двоичных разрядов, используемых для кодирования сигналов микроопераций.
Для принудительной адресации микрокоманд адрес следующей МК указывается в каждой МК с возможностью его модификации в зависимости от значения ЛУ. В нашем случае, формат микрокоманды следующий:
По заданию требуется разработать управляющий автомат с программируемой логикой с принудительной адресацией.
Задание формата микрокоманд.
Всего в алгоритме 45 вершины, включая выдачу сигнала начала, и сигнала окончания работы. Следовательно нам потребуется ПЗУ с количеством >32 адресов. Существует ПЗУ 32х8 (К155РЕ3), его и будем использовать(4 шт) .
Рассмотрим формат управляющей МК.
Формат МК включает пять полей:
РСЛ[0/5] - АДРПЕР - адрес перехода, причем разряд РСЛ[5] используется для принудительной модификации адреса.
РСЛ[6/8] - поле логического условия ЛУ .
Для кодирования ЛУ используются 4 комбинации , а пятая (все нули) - для организации безусловного формирования пятого разряда адреса;
РСЛ[9/15] - поле управляющего сигнала (необходимо 6 бита)
РСЛ |
АДРПЕР |
ЛУ |
Y |
0 5 6 8 9 15
5.1 Построение кодированной ГСА
5.2 Таблица прошивки ПЗУ
N |
АДРПЕР |
ЛУ |
Y |
ВЕРШИНА |
0 |
000001 |
000 |
000000 |
0 |
1 |
000010 |
000 |
000001 |
1 |
2 |
00010Х |
001 |
000010 |
2 |
3 |
000011 |
000 |
100001 |
43,авария |
4 |
00011Х |
010 |
000011 |
3 |
5 |
000011 |
000 |
011111 |
41 |
6 |
001000 |
000 |
000101 |
5 |
7 |
000110 |
000 |
000100 |
4 |
8 |
00101Х |
010 |
000110 |
6 |
9 |
001101 |
000 |
001000 |
8 |
10 |
001001 |
000 |
000111 |
7 |
11 |
001100 |
000 |
001001 |
9 |
12 |
001101 |
000 |
001000 |
10 |
13 |
00111Х |
011 |
001010 |
11 |
14 |
01000Х |
001 |
001011 |
12 |
15 |
000011 |
000 |
011111 |
41 |
16 |
010010 |
000 |
001101 |
14 |
17 |
010000 |
000 |
001100 |
13 |
18 |
010011 |
000 |
001110 |
15 |
19 |
010100 |
000 |
001111 |
16 |
20 |
01011Х |
100 |
010000 |
17 |
21 |
011000 |
000 |
010010 |
19 |
22 |
010101 |
000 |
010001 |
18 |
23 |
000011 |
000 |
011111 |
41 |
24 |
011001 |
000 |
010011 |
20 |
25 |
011010 |
000 |
010100 |
21 |
26 |
011011 |
000 |
010010 |
22 |
27 |
01110Х |
100 |
010101 |
23 |
28 |
011110 |
000 |
010110 |
24 |
29 |
100110 |
000 |
010111 |
25 |
30 |
011111 |
000 |
011000 |
26 |
31 |
100000 |
000 |
010001 |
28 |
32 |
100001 |
000 |
010011 |
30 |
33 |
100010 |
000 |
010101 |
32 |
34 |
10010Х |
011 |
011010 |
34,35 |
35 |
101010 |
000 |
011011 |
37 |
36 |
011011 |
000 |
010010 |
22 |
37 |
100011 |
000 |
010101 |
36 |
38 |
100111 |
000 |
011001 |
27 |
39 |
101000 |
000 |
010001 |
29 |
40 |
101001 |
000 |
010000 |
31 |
41 |
100010 |
000 |
010101 |
33 |
42 |
10110Х |
011 |
011010 |
38 |
43 |
101110 |
000 |
100000 |
42 |
44 |
101101 |
000 |
011101 |
39 |
45 |
101011 |
000 |
011110 |
40 |
46 |
101111 |
000 |
100000 |
42 |
47 |
110000 |
000 |
100010 |
44 |
48 |
000000 |
000 |
100011 |
45, КОН |
Логические условия кодируются 3 разрядами:
5.4 Структура МПА с программируемой логикой
Функциональная схема МПА представлена ниже.
Пуск автомата производится подачей сигнала РА:=0. По сигналу «чтение» производится выборка слова из ПЗУ и занесение его в регистр слова РСЛ, который состоит из 15-разрядов. Кодуправляющих полей Y1 поступают на схему дешифратора DC, выходы которого подключены к схеме образования управляющих сигналов СхОУ.
Адрес следующей МК формируется по сигналу РА:=КМ(АДРПЕР, MS1). По этому сигналу содержимое РСЛ[0/4] переписывается в РА[0/4], а в РА[5] через мультиплексор MS1 записывается значение ЛУ.
Если содержание поля ЛУ равно нулю, тогда запись происходит РА[5] соответственно из РСЛ[5]. Признаком конца МК (конец алгоритма) будет нулевое содержание полей АДРПЕР, ЛУ1.
5.5 Описание работы принципиальной схемы УА с программируемой логикой
При появлении нулевого уровня на входе «Инициализации», происходит появление 0 на выходе элемента D1.1 (ЛИ4). Это приводит к установлению триггера D2.1 (ТМ2) в 1. На прямом выходе триггера появляется 1, а на инверсном - 0. С инверсного выхода, 0 поступает на асинхронный вход сброса регистров D3, D12, D13 (ИР13). Так как триггер находится в устойчивом состоянии, постоянный уровень 0 приведет к постоянному состоянию «сброшенности» регистров, то есть они не будут работать.
При появлении сигнала ПУСК на входе R триггер D2.1 (TM2) устанавливается в единичное состояние. На инверсном выходе триггера будет 1. Этот сигнал разрешает работу всех регистров D3, D12, D13 (ИР13).
В конце работы алгоритма в РСЛ[0] должен сформироваться сигнал завершения работы. Данный сигнал закодирован одной 1, поэтому мы снимаем его с 35 выхода дешифратора D18(ИД3). Посылаем этот сигнал на элемент, который с него запрещает прохождение синхроимпульса и устанавливает триггер D2.1 в единичное состояние. Далее происходит инициализация схемы (пункт 1).
1 Сергеев Н.П., Вашкевич Н.П. «Основы вычислительной техники». Учебное пособие.
2 Справочник по интегральным микросхемам. / под ред. Б.В. Тарабрина.
3 Майко Г.В.«ASSEMBLER для IBM PC».