- •Введение
- •1. Исследовательская часть
- •1.1. Описание работы команд
- •1.1.1. Команда rol
- •1.1.2 Команда and
- •1.1.3 Команда btc
- •1.2. Выбор элементной базы
- •1.2.1. Выбор логического элемента «и» (2-х битный)
- •1.2.2. Выбор логического элемента «и» (3-х битный)
- •1.2.3. Выбор логического элемента «или»
- •1.2.3.1. Выбор логического элемента «или-2»
- •1.2.3.2. Выбор логического элемента «или-3»
- •1.2.3.3. Выбор логического элемента «или-8»
- •1.2.4. Выбор логического элемента «не»
- •1.2.5. Выбор логического элемента «исключающее или»
- •1.2.6. Выбор компаратора
- •1.2.7. Выбор импульсного регистра
- •1.2.8. Выбор потенциального регистра
- •1.2.9. Выбор мультиплексора
- •1.2.10. Выбор дешифратора
- •2. Конструкторская часть
- •2.1 Описание заданных команд
- •2.1.1 Команда rol
- •2.1.2 Команда and
- •2.1.3 Команда btc
- •2.2. Описание управляющей части
- •3. Технологическая часть
- •3.1. Принцип управления
- •Заключение
- •Список используемой литературы
2.2. Описание управляющей части
Работа схемы начинается с заполнения ОП (все значения подаются из PatternGenerator’ов). Первые два PatternGenerator’а отвечают за заполнение ОП первоначальными данными. Оставшиеся два отвечают за выборку команд, первого и второго операндов, и номер ячейки ОП, в которую будет помещен результат.
Команды AND и BTC выполняются за 6 тактов. На первом такте происходит выборка команды. На втором выбор первого операнда и запись его значения в регистр RX. На третьем происходит выбор второго операнда и сохранение его в регистр RY, а также формируется результат операции. На 4 такте назначается номер ячейки оперативной памяти, в которую должен быть сохранен результат. За 5 и 6 такты происходит запись в ОП.
Команда ROL выполняется минимум в 6 тактов. На первом такте происходит выборка самой команды. На втором выбор первого операнда и запись его значения в регистр RX. На третьем происходит выбор второго операнда и сохранение его в регистр RY. На 4 такте назначается номер регистра, в который должен быть сохранен результат. В следующих такте происходит формирование результата и его запись в ОП. Каждый дополнительный сдвиг увеличивает время выполнения операции на два такта.
В схеме также присутствует два параллельных регистра, в которые под действием управляющих сигналов заносятся операнды, которые участвуют в выполнении команды.
Двенадцать мультиплексоров в управляющей части отвечают за направление выбранных операндов в заданный блок операции, что позволяет формировать результат в соответствии с командой.
Управляющая часть представлена на рисунке 53.
Рисунок 53 – Управляющая часть
3. Технологическая часть
3.1. Принцип управления
Для работы со схемой необходимо выбрать команду, первый и второй операнд, и регистр, в который нужно поместить результат. Совершается это посредством подачи управляющих сигналов из двух последних PatternGenerator’ов. Схема выполняет три команды: ROL, AND и BTC. Все команды, а также номер ячейки для сохранения заносятся в управляющие регистры.
Команды ROL, AND и BTC состоят из четырех частей. Первые два бита – это номер операции. Последующие три битов – это номер регистра, значение которого выступает первым операндом. Последние три бита – номер регистра второго операнда. Все эти биты заполняются в первой командном PatternGenerator’е. Первые три бита второго PatternGenerator’а – это номер регистра, в который будет записан результат выполнения операции.
Ниже приведены таблицы правил заполнения командных PatternGenerator’ов. Все данные заносятся сверху-вниз.
Первый PatternGenerator:
Таблица 35 – Выбор команды
Биты |
Команда |
01XXXXXX |
ROL |
10XXXXXX |
XCHG |
11XXXXXX |
BTC |
Таблица 36 – Выбор первого операнда
Биты |
Номера ячеек |
XX001ХXX |
Первый |
XX010ХXX |
Второй |
XX011ХXX |
Третий |
XX100ХXX |
Четвертый |
XX101ХXX |
Пятый |
XX110ХXX |
Шестой |
Таблица 37 – Выбор второго операнда
Биты |
Номера ячеек |
ХXXXX001 |
Первый |
ХXXXX010 |
Второй |
ХXXXX011 |
Третий |
ХXXXX100 |
Четвертый |
XХXXX101 |
Пятый |
ХXXXX110 |
Шестой |
Второй PatternGenerator:
Таблица 38 – Выбор ячейки сохранения
Биты |
Номера ячеек |
001ХXXXX |
Первая |
010ХXXXX |
Вторая |
011ХXXXX |
Третья |
100ХXXXX |
Четвертая |
101XХXXX |
Пятая |
110ХXXXX |
Шестая |
Приведем пример работы схемы, заполним регистры данных:
Таблица 39 – Содержимое регистров данных
Номер регистра |
Содержимое |
1 |
00000010 |
2 |
00001100 |
3 |
00000011 |
4 |
00000100 |
5 |
00000101 |
6 |
00000110 |
На рисунках 36, 37 показано заполнение четырех команд:
1
2
3