Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт_Курсач.doc
Скачиваний:
8
Добавлен:
05.09.2019
Размер:
536 Кб
Скачать

4 Функциональная схема операционного автомата

Функциональную схему ЦВУ можно построить, используя в качестве исходных данных:

- структурную схему ЦВУ (рисунок 1);

- состав функциональных узлов ОА;

Сформированная функциональная схема ЦВУ приведена в приложении А. Она была построена по следующей методике.

Функциональные блоки и узлы имеют информационные входы-выходы, а также входы управления и синхронизации. Сначала соединим в соответствии со структурной схемой ЦВУ и порядком следования слов информации в микрооперациях информационные выводы функциональных блоков и узлов, а затем сформируем цепи управления и синхронизации.

Функциональная ГСА микропрограммы (рисунок 2) описывает алгоритм работы ЦВУ безотносительно к его структуре. Структура ЦВУ может вносить ограничения на возможность параллельного выполнения микроопераций. Микрооперации называются структурно несовместимыми, если из-за ограничений, порождаемых структурой ЦВУ, они не могут быть выполнены совместно - в одном такте. Структурная несовместимость микроопераций связана с использованием микрооперациями общего оборудования, единственность которого исключает возможность совместного выполнения микроопераций.

Порядок выполнения микрооператоров во времени определяется последовательностью микрокоманд, формируемой управляющим автоматом СО. Необходимо определить коды микрокоманд (комбинации значений управляющих сигналов – микроприказов). Например, чтобы выполнить микрооперацию Rg[]:= AdrROM[], достаточно в соответствующем такте задать LD=1 для регистра адреса (таблица 4).

Каждой микрооперации можно поставить в соответствие свой набор микроприказов, но при этом коды микрокоманд будут избыточными. Число разрядов в кодах микрокоманд можно сократить, если для совместимых во всех микрооператорах микроопераций использовать один микроприказ.

Таблица 5 – Коды микрокоманд

Микрооператоры

Микрокоманды

GPR[]:=W[]

Y4

Inc(AdrROM)

Y0

RAM(AdrRAM)[]:=W[]

Y3

W[]:=ALU[]

OVF

ZF

Y1

CTR[] = DROM[]

Y2

По полученным результатам формируются цепи управления и синхронизации ЦВУ. Для этого необходимо объединить синхровходы всех синхронных функциональных узлов в общую цепь синхронизации Clk и подать микроприказы на соответствующие управляющие входы функциональных узлов (см. приложение А)

5 Разработка управляющего автомата

Функция управляющего автомата задаётся кодированной ГСА микропрограммы. Кодированную ГСА получают путём замены в содержательной ГСА микрооператоров (наборов совместимых микроопераций) на коды микрокоманд и логических условий на идентификаторы осведомительных сигналов. Кодированная ГСА микропрограммы приведена на рисунке 10.

Построение управляющего автомата начинается с отметки внутренних состояний на кодированной ГСА. Отметка состояний должна соответствовать закону функционирова­ния автомата Мура или Мили, то есть выполняется для них различным образом.

Будем полагать, что автомат начинает работу с состояния s0 . Затем автомат переходит в состояния, предписанные законом функционирования, и формирует микрокоманды Y, соответствующие текущим значениям сигналов Х.

Поскольку в автомате Мура выходные сигналы связаны только с состоя­нием автомата, то каждой операторной вершине также нужно поставить в соответст­вие одно из состояний автомата. На рисунке 4 показана отметка внутренних состояний для управляющего автомата Мура.

Рисунок 2 – Кодированная ГСА СО

Объявим внутренние входные и выходные переменные центрального управляющего автомата СО.

SUBDESIGN CO

(

c,rst,en,cop[3..1]:input;

y[4..0] :output;

)

которым будут сопоставляться внешние сигналы следующим образом

y[4..0] = co(.c=!clk, .rst=Reset_b, .en=bt_clk, .cop[3..1]=cop[3..1])

Для исключения состязаний используем инверсный сигнал Clk (синхросигнал Clk управляет работой всех других синхронных узлов и блоков ЦВУ). Так как сигнал от кнопки сброса Reset_b имеет активный низкий уровень, то для инициализации необходим сигнал !Rst. С учетом изложенного управляющие входы автомата

code.clk = clk;

code.reset = !rst;

code.ena = vcc;

Для описания характеристических функций конечного автомата (переходов и выходов) использовано такое средство языка AHDL, как оператор Case. Описание центрального управляющего автомата Мура приведено в приложении Б.