- •Курсовая работа по теории автоматов
- •Часть 1: автомат Мили (кодовый замок)
- •Часть 2: автомат Мура (двоичный счетчик)
- •Часть 3: микропрограммный автомат на ппзу
- •Этапы проектирования и реализации цифровых устройств.
- •I. Первая часть курсового проекта. Этап 1. Идея.
- •Этап 2. Техническое задание.
- •Этап 3. Составление таблицы переходов и выходов автомата.
- •Этап 4. Кодирование элементов.
- •Этап 5. Выбор типа элементарных автоматов.
- •Этап 6. Заполнение кодированной таблицы переходов и выходов.
- •Этап 7. Составление системы булевых уравнений.
- •Этап 8. Минимизация системы булевых уравнений.
- •Э тап 9. Составление функциональной схемы. Этап 10. Разработка принципиальной схемы. Выбор технологии.
- •Этап 4. Кодирование элементов.
- •Этап 5. Выбор типа элементарных автоматов.
- •Этап 6. Заполнение кодированной таблицы переходов и выходов.
- •Этап 7. Составление системы булевых уравнений.
- •Этап 8. Минимизация системы булевых уравнений.
- •Этап 9. Составление функциональной схемы.
- •Этап 10. Разработка принципиальной схемы.
- •III. Третья часть курсового проекта Этап 1. Идея.
- •Этап 2. Техническое задание.
- •Этап 3. Кодирование элементов.
- •Этап 4. Составление таблицы переходов и выходов.
Этап 2. Техническое задание.
состояния
{A}
Нужно определить множества значений на входе и на входе, а также множество состояний, в которых может находиться наше устройство.
На входе мы получаем значения {MO, SE3, SE2, SE1, SE0}.
На выходе мы должны получить значение управляющих сигналов {уi}.
Для простоты будем полагать, что операнды находятся в РОНах, и результат запишем туда же.
Множество состояний определим с помощью таблицы потактового выполнения операции.
Наша операция, определенная по PIN-коду (10001) — S=AVB.
A: A1
B: A2
S: A3
Ожидание.
Первый такт. Пересылка. Пересылка операнда А из РОН А1 в БР у17=0 (чтение), у10=1 (приём), у11=1 (с шины В)
Второй такт. Пересылка. Адресуем А2, открываем его и записываем в РС. Пересылка операнда В из РОН А2 в РС. у17=0, у12=0, у13=0
Третий такт. Выполнение. Выполнение операции в АЛУ, запись результата в РР. КОП → АЛУ, у7=1 (приём на РР результата), формирование NZV-флагов → РССП
Четвертый такт. Пересылка. Пересылка результата операции на АЛУ по адресу А3. у17=0 (запись в РОН)
Пятый такт. Увеличение счетчика. Формируется +1 в САК (счетчике адресов команд). Сброс МПА в исходное состояние. Переход в состояние ожидания.
Всего у нас шесть состояний микропрограммного автомата.
Этап 3. Кодирование элементов.
{X} → {MO, SE3, SE2, SE1, SE0} → {10001}
{A} →
-
Такт 0
000
Такт 1
001
Такт 2
010
Такт 3
011
Такт 4
100
Такт 5
101
Закодируем адреса регистров РОН: А1 = 0010 (№2), А2 = 0001 (№1), А3 = 1001 (№9).
Блок-схема алгоритма выполнения операции в РАЛУ:
Этап 4. Составление таблицы переходов и выходов.
такт |
КОП |
сигналы управления |
адрес регистра |
такт |
||||||||||||||||||||
Q2 |
Q1 |
Q0 |
y1 |
y2 |
y3 |
y4 |
y5 |
y6 |
y7 |
y8 |
y9 |
y10 |
y11 |
y12 |
y13 |
y14 |
y15 |
y16 |
y17 |
Q3 |
Q2 |
Q1 |
Q0 |
№ |
0 |
0 |
0 |
- |
- |
- |
- |
- |
- |
0 |
- |
- |
0 |
1 |
1 |
1 |
- |
- |
- |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
- |
0 |
- |
- |
1 |
1 |
1 |
1 |
- |
- |
- |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
- |
0 |
- |
- |
0 |
1 |
0 |
0 |
- |
- |
- |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
- |
1 |
- |
- |
0 |
1 |
1 |
1 |
- |
- |
- |
0 |
0 |
0 |
0 |
0 |
3 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
- |
0 |
- |
- |
0 |
1 |
1 |
1 |
- |
- |
- |
1 |
1 |
0 |
0 |
1 |
4 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
- |
0 |
- |
- |
0 |
1 |
1 |
1 |
- |
- |
- |
0 |
0 |
0 |
0 |
0 |
5 |
Все сигналы, управляющие режимом регистров, должны находиться в состоянии хранения на нулевом такте.
Полученная таблица является ТИ для функций у6 — у17.
Управление мультиплексорами в рассмотрение не берем, а константу у11 опустим (её легко можно заменить постоянной подачей ВУ).
Таким образом, наши функции — это у7, у10, у12, у13, у17.
Очевидно, что логические уравнения для этих функций получаются не слишком простыми. Поэтому мы реализуем МПА на перепрограммируемом постоянном запоминающем устройстве (ППЗУ/PROM).
М
ПА
состоит из ППЗУ (PROM) с L+M адресными
битовыми входами, (N+L)-разрядного регистра
и тактового генератора Г.
Часть входных разрядов ППЗУ (N—M) используется для формирования выходных сигналов, а остальные m разрядов участвуют совместно с L входными сигналами в формировании адреса ППЗУ в следующем такте тактового генератора.
В МПА необходимо применять только те регистры, которые имеют динамический способ приема информации. В противном случае (в случае использования регистра с потенциальным способом приема информации, при переходе регистра в режим пропускания информации на выход (при установке СИ=1) замкнется обратная связь по адресу и возникнет неконтролируемая автогенерация.
При этом tприёма информации < tзадержки ППЗУ + tзадержки регистров
Максимальная тактовая частота
Tmin = tзадержки ППЗУ + tзадержки регистров
Fmin = 1/Tmin
В нашем ППЗУ будет находиться его прошивка, а программа полностью связана с линейностью памяти. Можно прямо в микропрограмме явным образом указать, где находится следующая команда. Это позволяет отказаться от использования счетчика адресов команд.
Возможные режимы работы МПА:
Последовательный перебор адресов ППЗУ. (аналог счетчика САК в ЦП)
Останов в заданном адресе ППЗУ с произвольным количеством тактов ожидания изменения входного сигнала.
Переход на другой адрес при изменении входного сигнала (одного или нескольких)
Циклическое прохождение, т.е. перебор одних и тех же адресов ППЗУ.
Отключение реакции на входные сигналы в течение какого-либо числа тактов.
Если состояний немного (до десяти), автомат можно задать графом и автоматными таблицами переходов и выходов (что мы и делали до этого). Если это не удается, строят ленты автомата — временные диаграммы. Они показывают фазовые отношения между входным и выходным сигналами. По ним выбирают временные сечения, которые рассматривают как вершины графа, то есть как состояния автомата.
Мы будем проектировать МПА, работающий в соответствии со следующей временной диаграммой.
П
ри
подаче на вход ВУ, МПА должен вырабатывать
три выходных сигнала, вложенных один
в другой. Во время формирования выходной
последовательности МПА не должен
реагировать на входной сигнал, а после
её окончания должен ожидать следующего
ВУ на входе.
Временные сдвиги (такты) должны быть по 1мкс каждый.
Тактовая частота — 1 МГц при Q=T/tипм=2 (меандр).
Составим кодированную таблицу переходов и выходов:
t |
t+1 |
||||
выход1 |
выход2 |
выход3 |
выход1 |
выход2 |
выход3 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Составим прошивку ППЗУ:
Необходимо реализовать следующие режимы работы:
Последовательный перебор адресов при формировании отработки выходной последовательности.
Останов с ожиданием изменения входного сигнала.
Отключение реакции на входной сигнал путем дублирования последовательного перебора в зоне адресов, соответствующих изменению входного сигнала.
Адрес ППЗУ |
Данные ППЗУ |
Режим работы |
Ячейка |
||||||||
Вход |
Адрес (смещение) |
Выходы |
Смещение (сл. выходы) |
||||||||
1 |
2 |
3 |
|||||||||
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
Ожидание входного сигнала |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
Отработка входной последовательности при условии, что входной сигнал = «1» |
8 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
9 |
|
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
10 |
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
11 |
|
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
12 |
|
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
Ожидание снятия входного сигнала |
13 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
Отработка входной последовательности при снятии входного сигнала |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
2 |
|
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
3 |
|
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
4 |
|
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
Переход на ожидание входного сигнала |
5 |
Функциональная схема.
Согласно временной диаграмме, выходная последовательность состоит из 6 тактов, включая единичные уровни. Поэтому требуется 3 отдельных входа ППЗУ, что дает 8 различных адресов. Кроме этого есть один входной сигнал. Следовательно, количество адресных разрядов ППЗУ — четыре, что дает 16 ячеек, а количество разрядов в каждой ячейке должно быть равно 6.
3 разряда — формирование выхода. 3 разряда — формирование следующего адреса.
Количество разрядов в регистре равно 6 + 1 входной сигнал — итого 7.
На схеме Г — тактовый генератор.
Принципиальная схема.
Замечание: крестом обозначены выходы с открытым (оторванным) коллектором. К ним должны быть присоединены резисторы R1 — R6.
Схема дешифратора ДШ:
Схема генератора Г:
Теперь осталось только записать прошивку в ППЗУ. Так мы реализуем ТИ для данного автомата.
Для прошивки используем 12 ячеек памяти (6 основных + 6 дублированных на тот случай, если вход уберут раньше, чем закончить работать программа) с адресами вида 0хххх (нижний банк памяти) от 0 до 16.
