- •Введение
- •Разработка общей структуры микро-эвм
- •Функциональный состав
- •Описание взаимодействия всех блоков микро-эвм
- •Разработка основных устройств микро-эвм
- •Запоминающие устройства. Функциональный состав и временные диаграммы.
- •Постоянное запоминающее устройство (пзу)
- •Оперативное запоминающее устройство (озу)
- •Разработка устройства управления
- •Разработка алу
- •Операционная часть
- •Блок роНов
- •Разработка контроллера прямого доступа памяти (кпдп)
- •Реализация кпдп
- •Разработка системы прерываний
- •Разработка принципиальной схемы устройства
- •Описание работы устройства на вентильно-регистровом уровне
- •Описание временной диаграммы работы устройства
- •Оптимизация микро-эвм
- •Заключение
- •Список используемой литературы
Разработка устройства управления
Центральным блоком во всей системе микро-ЭВМ является устройство управления, на нем сходятся все логические связи. Именно блок устройства управления осуществляет управление всеми составляющими микро-ЭВМ. Разработка данного блока наиболее трудоемкий процесс, так как этот блок должен учитывать работу всех остальных блоков. Правильная работа устройства управления определяет, насколько правильно будет работать вся схема в целом.
Устройства управления делятся на:
– УУ с жесткой, или схемной логикой;
– УУ с программируемой логикой (микропрограммные УУ).
В устройствах управления первого типа для каждой команды, задаваемой кодом операции, строится набор комбинационных схем, которые в нужных тактах вырабатывают необходимые управляющие сигналы.
В микропрограммных УУ каждой команде ставится в соответствие совокупность хранимых в специальной памяти слов - микрокоманд. Каждая из микрокоманд содержит информацию о микрооперациях, подлежащих выполнению в данном такте, и указание, какое слово должно быть выбрано из памяти в следующем такте.
Устройство управления состоит из блоков таких как: регистр на 10 бит, счетчик на 10 бит с предустановкой, мультиплексор на 10 бит, элемент ИЛИ на 10 бит с управляющим сигналом, счетчик на 4 такта, блок управления прерыванием, блок управления выходными сигналами.
Схема регистра на 10 бит приведена в приложении Д стр.49, а условно-графическое обозначение приведено на рисунке 2.7. Листинг VHD файла для счетчика на 10 бит с предустановкой приведен в листинге 2.4, а условно-графическое обозначение приведено на рисунке 2.8. Схема мультиплексора на 10 бит приведена в приложении Д стр.50, а условно-графическое обозначение приведено на рисунке 2.9. Схема элемента ИЛИ на 10 бит с управляющим сигналом приведена в приложении Д стр.51, а условно-графическое обозначение приведено на рисунке 2.10. Схема счетчика на 4 такта приведена на рисунке 2.12, а условно-графическое обозначение приведено на рисунке 2.12. Схема блока управлением прерываний приведена в приложении Д стр.52, а условно-графическое обозначение приведено на рисунке 2.13. Схема блока управлением выходными сигналами приведена в приложении Д стр.53, а условно-графическое обозначение приведено на рисунке 2.14. Схема устройства управления приведена в приложении Д стр.54, а условно-графическое обозначение приведено на рисунке 2.15.
Рисунок 2.7 – Условно-графическое изображение регистра на 10 бит
Листинг 2.4 VHD файл счетчика на 10 бит с предустановкой
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.all;
entity uu_count_10 is
port (
clk, set: in bit;
adr: in integer range 1023 downto 0;
e: in bit;
d : out integer range 1023 downto 0
);
end uu_count_10;
architecture uu_count_10 of uu_count_10 is
begin
process (clk, set, adr)
variable d_out:integer range 1023 downto 0;
begin
if (clk'event and clk='1' and e='1') then d_out:=adr;
elsif (clk'event and clk='1' and e='0' and set='1') then d_out:=d_out+1;
end if;
d<=d_out;
end process;
end uu_count_10;
Рисунок 2.8 – Условно-графическое изображение счетчика на 10 бит с предустановкой
Рисунок 2.9 – Условно-графическое изображение мультиплексора на 10 бит
Рисунок 2.10 – Условно-графическое изображение элемента ИЛИ на 10 бит
Рисунок 2.11 – Схема счетчика на 4 такта
Рисунок 2.12 – Условно-графическое изображение счетчика на 4 такта
Рисунок 2.13 – Условно-графическое изображение блока управлением прерываний
Рисунок 2.14 – Условно-графическое изображение блока управлением выходными сигналами
Рисунок 2.15 – Условно-графическое изображение устройства управления
Устройство управления работает по сигналу синхронизации clk. Входной сигнал HLT служит для остановки работы всего устройства, если HLT равен «1», то устройство прекращает работу, если HLT равен «0», то происходит обычная работа устройства. Сигнал HOLD служит для уведомления устройства управления, что сейчас будет происходить прямой доступ к памяти со стороны внешнего устройства, если HOLD равен «1», то устройство управления прекращает работу, пока будет происходить работа в КПДП.
Все множество сигналов устройства управления можно условно разделить на:
– внутрисхемные сигналы;
– внешние сигналы.
К внутрисхемным сигналам относят сигналы, которые запускают, в зависимости от кода команды, тот или иной алгоритм выполнения данной команды.
К внешним сигналам отнесем:
– сигналы управления ПЗУ (выбор значения по адресу);
– сигналы управления ОЗУ (выбор значения по адресу, запись значения по адресу);
– сигналы управления АЛУ;
– сигналы управления РОН (выбор значения по адресу, запись значения по адресу);
Так как все команды находятся в памяти, то вся работа состоит в выборе данных команд из памяти, их разбор и формирование управляющих сигналов для операционного блока. Рассмотрим формат команд, которые хранятся в памяти:
Каждая команда состоит из двух слов по 10 бит каждое;
первое слово:
– 7-9 биты – код операции (например, 0 – нет операции, 1 – MOV, 2 – ADC, 3 - OR, 4 – JMP, 5 – STI, 6 – CLI);
– 5-6 биты – код прерывания (при командах CLI и STI);
– 4-6 биты – регистр общего назначения (его номер);
– 2-3 биты – префикс команды (10 - запись результата в память, 01 – запись результата в РОН).
− 0-1 биты – префикс команды (01 –арифметическая команда, 10 – логическая команда в АЛУ).
второе слово:
содержит адрес ячейки ОЗУ, в которую может происходить запись или чтение.
Также в памяти могут храниться и данные.
Теперь перейдем непосредственно к рассмотрению принципа работы узла местного управления фазами выполнения команд. Данный узел состоит из счетчика и дешифратора. При запуске микро-ЭВМ начальный адрес программы является 0. По данному адресу считывается команда, анализируется код операции и сопутствующие значения. Затем выставляется следующий адрес ПЗУ.
На втором такте синхронизации считываются данные из ПЗУ по адресу, выставленному на предыдущем такте, и в зависимости от кода операции эти данные могут быть:
– адресом для перехода в ПЗУ (команда JMP);
– данные, предназначенные для записи в РОН (команда MOV reg, adr);
– адрес для записи в ОЗУ (команда MOV adr, reg);
– номера регистров общего назначения АЛУ, участвующие в операциях ADC и OR.
Теперь рассмотрим выполнение каждой из команд подробней.
Самой простой для выполнения является команда JMP. После считывания необходимого адреса перехода, во втором такте синхронизации происходит переход по заданному адресу ПЗУ на необходимую команду. При этом вырабатывается только сигнал синхронизации для ПЗУ, необходимый для считывания данных.
При выполнении команд MOV, ADC и OR существует два варианта: запись информации в РОНы или в ОЗУ. За выбор необходимого режима отвечает 2-3 биты в коде команды (01 – запись в РОН, 10 – запись в ОЗУ). При записи в РОНы на выход подаются данные, код операции и номер РОНа, в который они записываются. При записи в ОЗУ подается сигнал we, предназначенный для ОЗУ.
При выполнении операций ADC или OR, в двух младших битах дублируется какая команда выполняется(01 –арифметическая команда, 10 – логическая команда).
Диаграмма работы УУ приведена в приложении Д стр.55.
