Uploaded by ezm00759

Курсовой проект "Проектирование процессора ЭВМ"

advertisement
Национальный исследовательский ядерный университет «МИФИ»
Институт Интеллектуальных Кибернетических Систем
Кафедра «Компьютерные системы и технологии»
Пояснительная записка
к курсовому проекту
на тему «Проектирование процессора ЭВМ»
Студент гр. Б18-503 _Приходченко_ВВ_ /_______________ /
Руководитель ___Ядыкин_ИМ_______ / _______________ /
Руководитель ____Новиков_ГГ______ / _______________ /
Москва 2021
2
Содержание
Проектирование блока операций ................................................................. 5
1
1.1
Формат операндов и регистров ................................................................. 5
1.2
Алгоритм выполнения операций .............................................................. 5
1.2.1
Алгоритм операции умножение ......................................................... 5
1.2.2
Алгоритм операции сдвиг вправо....................................................... 7
1.3
Примеры ...................................................................................................... 8
1.3.1
Примеры операции умножение .......................................................... 8
1.3.1.1 Примеры без коррекции результата ................................................ 8
1.3.1.2 Примеры с коррекцией результата .................................................. 9
1.3.2
Примеры операции сдвиг вправо ..................................................... 10
1.4
Функциональная схема блока операций ................................................ 12
1.5
Синтез логических элементов блока операций ..................................... 13
1.5.1
Регистр RA первого операнда ........................................................... 13
1.5.2
Регистр RB второго операнда ........................................................... 14
1.5.3
Регистр RR результата ....................................................................... 14
1.5.4
Триггер TZF флага ............................................................................. 15
1.5.5
Триггер TCF флага ............................................................................. 15
1.5.6
Комбинационная схема КС1 ............................................................. 16
1.5.7
Комбинационная схема КС2 ............................................................. 17
1.5.8
Комбинационная схема КС3 ............................................................. 17
1.5.9
Сумматор SM ...................................................................................... 18
1.6
Управляющие сигналы и сигналы-признаки блока операций ............. 19
1.7
Микропрограммы выполнения операций .............................................. 20
1.7.1
Логическая схема блока операций ................................................... 20
1.7.2
Микропрограмма операции умножение .......................................... 21
1.7.3
Микропрограмма операции сдвиг вправо ....................................... 26
Проектирование схемного местного устройства управления ................. 31
2
2.1
Модифицированные алгоритмы выполнения операций ...................... 31
2.2
Функциональная схема МУУ .................................................................. 34
2.3
Синтез датчика состояний DS ................................................................. 34
2.3.1
Графы переходов DS .......................................................................... 34
3
2.3.2
Таблица переходов DS ....................................................................... 35
2.4
Синтез КС2 ................................................................................................ 36
2.5
Логическая схема МУУ ........................................................................... 37
2.6
Функциональное моделирование АЛУ .................................................. 38
2.7
Временные параметры ............................................................................. 47
2.8
Размещение на кристалле ........................................................................ 50
Проектирование блока управления командами........................................ 51
3
3.1
Система памяти ......................................................................................... 51
3.2
Форматы команд и способы адресации.................................................. 51
3.2.1
Форматы команд................................................................................. 53
3.3
Алгоритм работы БУК ............................................................................. 54
3.4
Функциональная схема БУК ................................................................... 55
3.5
Тестирование БУК .................................................................................... 59
3.6
Результаты моделирования БУК ............................................................. 62
Проектирование блока выработки микрокоманд ..................................... 66
4
4.1
Модифицированный алгоритм работы БУК.......................................... 67
4.2
Определение формата микрокоманд ...................................................... 68
4.3
Функциональная схема БМК ................................................................... 68
4.4
Логическая схема БМК ............................................................................ 69
4.5
Составление микропрограммы................................................................ 70
Результаты моделирования процессора .................................................... 71
5
5.1
Результаты функционального моделирования процессора ................. 71
5.2
Размещение на кристалле ........................................................................ 76
5.3
Временные параметры ............................................................................. 77
Заключение ............................................................................................................ 80
4
Проектирование блока операций
Формат операндов и регистров
Целые числа с фиксированной запятой представлены в дополнительном коде. Под
запись числа-операнда отводится четыре разряда. Самый левый разряд используется для
представления знака.
Целое число Х с фиксированной запятой представляется в виде:
𝑛
𝑋 = ± ∑ 𝑥𝑖 2𝑛−𝑖 = ±(𝑥1 ∗ 2𝑛−1 + 𝑥2 ∗ 2𝑛−2 + ⋯ + 𝑥𝑛 ∗ 20 ),
(1.1)
𝑖=1
где 𝑥𝑖 , 𝑖 = ̅̅̅̅̅
1, 𝑛 – цифры записи числа.
Число Х в дополнительном коде, состоящее из 4 разрядов, где первый разряд задает
знак числа, может быть представлено в виде:
[𝑋]д = {
0. 𝑥1 𝑥2 𝑥3 ,
1. ̅̅̅
𝑥1 𝑥
̅̅̅2 ̅̅̅
𝑥3 + 1,
𝑥0 = 0,
𝑥0 = 1,
𝑋≥0
,
𝑋<0
(1.2)
соответственно число, состоящее из 8 разрядов, представлено в виде:
[𝑋]д = {
0. 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 ,
1. 𝑥
̅̅̅1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 𝑥
̅̅̅4 ̅̅̅
𝑥5 𝑥
̅̅̅6 ̅̅̅
𝑥7 + 1,
𝑥0 = 0,
𝑥0 = 1,
𝑋≥0
,
𝑋<0
(1.3)
В регистрах операнд и результата числа представлены как показано в таблице 1.1.
Таблица 1.1 – Таблица представления чисел в регистрах
𝑥0
𝑥1
RR0
RR1
Старший Старший
Знаковый Значащий
RA0
RA1
RB0
RB1
Старший Старший
Знаковый Значащий
𝑥2
RR2
𝑥3
RR3
RA2
RB2
RA3
RB3
Младший
Значащий
𝑥4
RR4
𝑥5
RR5
𝑥6
RR6
𝑥7
RR7
Младший
Значащий
Алгоритм выполнения операций
1.2.1 Алгоритм операции умножение
Операция выполняется по алгоритму умножения чисел в дополнительном коде со
старших разрядов множителя и сдвигом суммы частичных произведений влево с одним
корректирующим шагом. При нулевом значении текущего разряда множителя такт
суммирования не пропускается. Первый операнд – множимое, второй – множитель.
Результат формируется в 8-ми разрядной сетке и помещается в пару смежных ячеек памяти
с четным и нечетным адресами.
5
Запись приведенного выше алгоритма без учета коррекции в случае отрицательного
множителя:
[𝐴]д × [𝐵]д = ((… ((0 + [𝐴]д 𝑏𝑛 )2−1 + ⋯ + [𝐴]д 𝑏2 )2−1 + [𝐴]д 𝑏1 )2−1
(1.6)
Коррекция в случае отрицательного множителя производится на первом шаге
алгоритма.
Данный метод умножения может быть представлен в виде схемы алгоритма на
рисунке 1.2.1.
Рисунок 1.2.1 – Схема алгоритма умножения
6
1.2.2 Алгоритм операции сдвиг вправо
Второй операнд сдвигается вправо на число двоичных разрядов, определяемое
адресом первого операнда. Адрес первого операнда не является адресом данных; два его
разряда показывают на сколько разрядов нужно произвести сдвиг. В сдвиге участвуют все
4 разряда второго операнда. В освобождающиеся старшие разряды вводятся нули.
Очередной выдвигаемый бит устанавливает флаг CF. Устанавливается также
флаг ZF – флаг нуля (1 – результат нулевой, 0 – результат ненулевой).
Алгоритм заключается в сдвиге регистра результата, в младшие разряды которого
изначально заносится значение регистра второго операнда, вправо на число разрядов,
указанное в первом операнде. Причем сначала проверяется, равно ли число в регистре
результата нулю, а значение флага CF устанавливает седьмой разряд RR до сдвига.
Алгоритм логического сдвига вправо может быть представлен в виде схемы на
рисунке 1.2.2.
Рисунок 1.2.2 – Схема алгоритма логического сдвига вправо
7
Примеры
1.3.1 Примеры операции умножение
Примеры без коррекции результата
Пример 1:
A = 0.110 = + 6
B = 0.010 = + 2
0.
0
0.
0.
0.
0.
0.
0.
0.
0.
0.
0
0
0
0
0
0
0
0
0
b0 = 0
b1 = 0
b2 = 1
+
+
b3 = 0
0
1
x 0
0
0
0
0
0
нет коррекции
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
A=+6
B=+2
RR
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
RR * 2+1
1
0
x 0
1
0
0
0
0
нет коррекции
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
A=–8
B=+6
RR
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RR * 2+1
RA
RR
RR * 2+1
RA
RR
RR * 2+1
RR
RR * 2+1
RA
RR
RR * 2+1
RR
RR = 0.0001100 = + 12
Пример 2:
A = 1.000 = – 8
B = 0.110 = + 6
0.
0
0.
1.
1.
1.
1.
1.
1.
0.
1.
0
1
1
1
1
1
1
0
1
b0 = 0
b1 = 1
b2 = 1
b3 = 0
+
+
RR = 1.1010000 (дк) = 1.0110000 (пк) = – 48
8
RR
Примеры с коррекцией результата
Пример 3:
A = 1.001 = – 7
B = 1.101 = – 3
0.
0
0.
0
1
x 1
0
0
0
коррекция
0
0
0
0.
0.
1.
0.
0.
0.
0.
0.
1.
0.
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
b0 = 1
+
b1 = 1
b2 = 0
b3 = 1
+
+
+
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
RA = – 7
RB = – 3
RR
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
̅̅̅̅
RA
+1
RR
RR * 2+1
RA
RR
RR * 2+1
1
0
0
1
0
0
1
0
0
RA = – 1
RB = – 8
RR
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
̅̅̅̅
RA
+1
RR
RR * 2+1
RR
RR * 2+1
RA
RR
RR = 0.0010101 = + 21
Пример 4:
A = 1.111 = – 1
B = 1.000 = – 8
0.
0
0.
0
1
x 1
0
0
0
коррекция
0
0
0
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
b0 = 1
+
b1 = 0
b2 = 0
b3 = 0
+
+
+
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
RR = 0.0001000 = + 8
9
RR
RR * 2+1
RR
RR * 2+1
RR
Пример 5:
A = 1.000 = – 8
B = 1.000 = – 8
0.
0
0.
0
1
x 1
0
0
0
коррекция
0
0
0
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
b0 = 1
+
b1 = 0
b2 = 0
b3 = 0
+
+
+
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RA = – 8
RB = – 8
RR
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
̅̅̅̅
RA
+1
RR
RR * 2+1
RR
RR * 2+1
RR
RR * 2+1
RR
RR = 0.1000000 = + 64
1.3.2 Примеры операции сдвиг вправо
Пример 1:
А = 0011
0
0
+
i = RA(мл) = 3
В = 1010
0
0
0
0
0
1
0
0
1
1
1
0
RA = 3
RB = 10
0
0
0
0
0
0
0
0
0
0
0
0
TZF = 0, TCF = 0
0
1
1
0
0
0
0
1
1
0
0
0
RR
RB
RR
1
RR * 2-1
0
RR * 2-1
1
RR * 2-1
i=i-1=2
0
0
i=i-1=1
0
0
i=i-1=0
0
0
0
0
PHI2 = 0
TCF = RR7 = 0
0
0
0
1
0
PHI2 = 0
TCF = RR7 = 1
0
0
0
0
1
PHI2 = 0
TCF = RR7 = 0
0
0
0
0
0
PHI2 = 0
RR = 0001
10
Пример 2:
А = 0000
0
0
+
i = RA(мл) = 0
В = 1001
0
0
0
0
0
0
0
1
0
0
0
0
0
1
RA = 0
RB = 9
0
0
0
0
0
0
0
0
0
0
0
0
TZF = 0, TCF = 0
0
1
1
0
0
0
0
0
0
0
1
1
RR
RB
RR
PHI2 = 0
RR = 1001
Пример 3:
А = 0010
0
0
+
i = RA(мл) = 2
i=i-1=1
В = 0001
0
0
0
0
0
0
1
0
0
1
RA = 2
RB = 1
0
0
0
0
0
0
0
0
0
0
0
0
TZF = 0, TCF = 0
0
0
0
0
0
0
0
0
0
0
1
1
RR
RB
RR
0
RR * 2-1
TZF = 1
0
0
0
0
0
0
PHI2 = 0
TCF = RR7 = 1
0
0
0
0
0
PHI2 = 1
RR = 0000
Пример 4:
A = 0010
0
0
+
i = RA(мл) = 2
B = 0000
0
0
0
0
0
0
0
0
0
0
1
0
0
0
RA = 2
RB = 0
0
0
0
0
0
0
0
0
0
0
0
0
TZF = 0, TCF = 0
0
0
0
0
0
0
0
0
0
0
0
0
RR
RB
RR
PHI2 = 1
RR = 0000
11
TZF = 1
Функциональная схема блока операций
На рисунке 1.4 представлена функциональная схема блока операций.
Рисунок 1.4 – Функциональная схема блока операции
12
В таблице 1.4 указано функциональное назначение блоков-элементов БО.
Таблица 1.4 – Таблица функционального назначения блоков-элементов
Обозначение
RA
Назначение
Регистр первого операнда (множителя/количества сдвигов),
4 разряда
RB
Регистр второго операнда (множимого/сдвигаемого),
4 разряда,
арифметический сдвиг влево на 1 разряд
RR
Регистр результата,
8 разрядов,
логический сдвиг вправо SRI = 0,
арифметический сдвиг влево,
установка в «0»
TZF
Триггер флага равенства нулю ZF
TCF
Триггер флага переноса CF
KC1
Формирование 0, 𝑅𝐴, ̅̅̅̅
𝑅𝐴,
4 разряда
KC2
Формирование RB и передача RВ, RR,
4 разряда
KC3
Формирование флага RR = 0,
4 разряда
SM
Сумматор,
8 разрядов
Синтез логических элементов блока операций
1.5.1 Регистр RA первого операнда
Регистр RA является четырехразрядным регистром хранения. Он выполняет функции
хранения и параллельной загрузки первого операнда. Для его реализации наиболее
подходящим является регистр FD4CE, представленный на рисунке 1.5.1. Выбор функции
регистра происходит с помощью управляющего входа Y1, как показано в таблице 1.5.1
Таблица 1.5.1 – Таблица управляющих сигналов RA
Y1 (CE)
1
0
Назначение
Загрузка
Хранение
Рисунок 1.5.1 – Логическая
схема RA
13
1.5.2 Регистр RB второго операнда
Регистр RB является четырехразрядным регистром сдвига. Он выполняется функции
хранения, параллельной загрузки данных и арифметического сдвига влево на 1 разряд. Для
его реализации наиболее подходящим является регистр SR4CLE, представленный на
рисунке 1.5.2. Выбор функции регистра происходит с помощью управляющих входов Y2 и
Y3, как указано в таблице 1.5.2. Значение старшего разряда RB0 равно значению сигналапризнака PHI1, который используется в алгоритме умножения.
Таблица 1.5.2 – Таблица управляющих сигналов RB
Y2 (CE)
0
0
1
Y3 (L)
0
1
0
Назначение
Хранение
Загрузка
Сдвиг влево на 1 разряд
Рисунок 1.5.2 – Логическая схема RB
1.5.3 Регистр RR результата
Регистр RR является восьмиразрядным регистром сдвига. Он выполняет функции
хранения, параллельной загрузки данных, логического сдвига влево на 1 разряд (SLI = 0) и
логического сдвига вправо на 1 разряд (SRI = 0). Для его реализации наиболее подходящим
является регистр SR8RLED. Выбор функции регистра происходит с помощью
управляющих входов Y4-7, как указано в таблице 1.5.3. Логическая схема RR представлена
на рисунке 1.5.3.
Таблица 1.5.3 – Таблица управляющих сигналов RR
Y4(L)
X
1
0
0
0
Y5(LEFT)
X
X
0
0
1
Y6(CE)
X
X
0
1
1
Y7(R)
1
0
0
0
0
Назначение
Установка в «0»
Загрузка
Хранение
Сдвиг влево на 1 разряд
Сдвиг вправо на 1 разряд
14
Рисунок 1.5.3 – Логическая схема RR
1.5.4 Триггер TZF флага
Триггер TZF выполняет функции хранения и передачи одного разряда данных –
значение флага ZF (равенство результата нулю). Для его реализации наиболее подходящим
является DV-триггер (элемент FDRE), представленный на рисунке 1.5.4. На вход
DV-триггера подается значение, формируемое на выходе комбинационной схемы КС3. На
выходе формируется значение флага ZF. На вход CE подан управляющий сигнал Y12 для
изменения состояния триггера только во время выполнения операции сдвига. Сигнал Y13
сбрасывает значение флага ZF в ноль.
Рисунок 1.5.4 – Логическая схема триггера TZF
1.5.5 Триггер TCF флага
Триггер TCF выполняет функции хранения и передачи одного разряда данных –
значение флага ZF. Для его реализации наиболее подходящим является D-триггер (элемент
FDC), представленный на рисунке 1.5.5. На вход D-триггера подается значение
седьмого разряда регистра результата RR. На выходе формируется значение флага CF. На
вход CE подан управляющий сигнал Y14 для изменения состояния триггера только во время
выполнения операции сдвига. Управляющий сигнал Y13 сбрасывает значение
флага ZF в ноль.
Рисунок 1.5.5 – Логическая схема триггера TCF
15
1.5.6 Комбинационная схема КС1
С помощью комбинационной схемы КС1 формируется отрицательное значение
операнда 𝑅𝐴, которое необходимо для коррекции при выполнении алгоритма умножения.
На вход комбинационной схемы КС1 поступает код первого операнда 𝑅𝐴, а на выходе
̅̅̅̅, в зависимости от управляющих входов Y8 и Y9, как указано в
формируется 0, 𝑅𝐴 или 𝑅𝐴
таблице 1.5.6. На рисунке 1.5.6.1 представлена эталонная диаграмма Вейча, используемая
для минимизации функций возбуждения на рисунке 1.5.6.2. На рисунке 1.5.6.4
представлена часть логическая схема КС1, а на рисунке 1.5.6.3 ее элемент.
Таблица 1.5.6 – Таблица управляющих сигналов КС1
Входы
Выход
Y8
Y9
RAi
Fi
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
Формирование «0»
̅̅̅̅
Формирование RA
𝐹𝑖 = 𝑌1 ̅̅̅̅
𝑌2 ̅̅̅̅̅
𝑅𝐴𝑖 + 𝑌1 ̅̅̅̅
𝑌2 𝑅𝐴𝑖
6
7
5
4
̅̅̅̅
𝑌1
2
3
1
0
𝑅𝐴𝑖
𝑌1
X
X
0
1
̅̅̅̅
𝑌1
0
1
0
0
𝑅𝐴𝑖
𝐹𝑖 = 𝑌1 ̅̅̅̅̅
𝑅𝐴𝑖 + 𝑌2 𝑅𝐴𝑖
̅̅̅̅̅
𝑅𝐴𝑖
Рисунок 1.5.6.2 – Минимизация функции
возбуждения Fi
Рисунок 1.5.6.3 – Логическая схема
элемента КС1
Рисунок 1.5.6.2 – Логическая схема КС1
16
̅̅̅̅̅
𝑅𝐴𝑖
Рисунок 1.5.6.1 – Эталонная
диаграмма Вейча для 3-х
переменных
̅̅̅̅
𝑌2
𝑌2
̅̅̅̅̅
𝑅𝐴𝑖
𝑌1
̅̅̅̅̅
𝑅𝐴𝑖
Формирование RA
̅̅̅̅
𝑌2
𝑌2
Назначение
Комбинационная схема КС1 представлена четырьмя мультиплексорами М2_1, на
адресные входы которых поданы управляющие сигналы Y8 и Y9, а на управляющие разряды
RAi соответственно.
1.5.7 Комбинационная схема КС2
Комбинационная схема КС2 формирует значение операнда RВ. На вход
комбинационной схемы КС2 поступает код второго операнда RВ и код младших разрядов
RR, а на выходе формируется RB или RR, в зависимости от управляющего входа Y10.
Y10 = 1, тогда происходит передача RR.
Y10 = 0, тогда происходит передача RB.
Рисунок 1.5.7.1 – Логическая схема
элемента КС2
Рисунок 1.5.7.2 – Логическая схема КС2
Комбинационная схема КС2, представленная на рисунке 1.5.7.2, состоит из 4-х
мультиплексоров М2_1, представленных на рисунке 1.5.7.1, на адресные
входы которых поданы разряды RB и RR соответственно, а на управляющий
вход – управляющий сигнал Y10.
1.5.8 Комбинационная схема КС3
В комбинационной схеме КС3 происходит проверка результата на равенство нулю
при выполнении операции сдвига. На ее входы подается код младших разрядов RR, а на
выходе формируется 0 или 1 в зависимости от переданного числа. Так как в операции
сдвига операнды беззнаковые, то за равенство нулю числа принято равенство нулю всех его
17
переданных разрядов. Для реализации комбинационной схемы КС1 используется
логический элемент NOR4, как показано на рисунке 1.5.8, на выходе которого
формируется 1 только в случае равенства всех входов нулю. С помощью комбинационной
схемы КС3 формируется сигнал-признак PHI2 – признак равенства нулю результата после
операции сдвига.
Рисунок 1.5.8 – Логическая схема КС3
1.5.9 Сумматор SM
На сумматоре SM производится сложение двух восьмиразрядных чисел. Поэтому был
выбран сумматор ADD8, представленный на рисунке 1.5.9, на вход CI которого передан
управляющий сигнал Y11. Сигнал Y11 служит для совершения корректирующего шага при
выполнении операции умножения. В таблице 1.5.9 указано соответствие передаваемых
разрядов на сумматор.
Таблица 1.5.9 – Таблица соответствия передаваемых разрядов на сумматор SM
Разряд
Передаваемое
значение
Разряд
Передаваемое
значение
X7 (ст)
X6
КС1_F0
КС1_F0
Z7 (ст)
Z6
RR0
RR1
Слагаемое X
X5
X4
КС1_F0
КС1_F0
Слагаемое Y
Z5
Z4
RR2
RR3
X3
X2
X1
X0 (мл)
КС1_F0
КС1_F1
КС1_F2
КС1_F3
Z3
Z2
Z1
Z0 (мл)
KC2_F0
KC2_F1
KC2_F2
KC2_F3
Рисунок 1.5.9 – Логическая схема сумматора SM
18
Управляющие сигналы и сигналы-признаки блока операций
В таблице 1.6.1 представлены управляющие сигналы БО и их назначение.
В таблице 1.6.2 представлены сигналы-признаки БО и их назначение.
Таблица 1.6.1 – Таблица управляющих сигналов блока операций
Элемент
Сигнал
Назначение
Регистр RA
Y1
Загрузка A в RA
Y2
Логический сдвиг влево RB на 1 разряд
Y3
Загрузка B в RB
Y4
Загрузка значений на входах в RR
Y5
Y7
Логический сдвиг вправо RR на 1 разряд
Разрешение сдвига RR
Арифметический сдвиг влево RR на 1 разряд
Установка RR в «0»
Y8
Формирование ̅̅̅̅
RA
Y9
Формирование RA
КС2
Y10
Передача RR
SM
Y11
Корректирующий шаг
Триггер TZF
Y12
Загрузка значения признака равенства нулю в TZF
Y13
Установка TZF и TCF в «0»
Y14
Загрузка значения сдвигаемого разряда в TCF
Регистр RB
Регистр RR
KC1
Триггер TCF
Y6
Таблица 1.6.2 – Таблица сигналов-признаков блока операций
Элемент
Сигнал
Назначение
Регистр RB
PHI1
KC3
PHI2
Текущий разряд множителя RB4-i
Признак равенства младших разрядов RR нулю
19
Микропрограммы выполнения операций
1.7.1 Логическая схема блока операций
На рис. 1.7.1 представлена логическая схема блока операций.
Рисунок 1.7.1 – Логическая схема блока операций
20
1.7.2 Микропрограмма операции умножение
На рисунке 1.7.2.1 представлен алгоритм микропрограммы операции умножение с
микрооперациями. В ячейках микроопераций указаны управляющие сигналы, которые во
время микрооперации равны единице, а также сигналы-признаки, которые могут
измениться.
На рисунках 1.7.2.2–1.7.2.6 представлены результаты
моделирования блока операций алгоритма умножения для примеров.
функционального
Рисунок 1.7.2.1 – Алгоритм микропрограммы операции умножения
21
Рисунок 1.7.2.2 – Функциональное моделирование БО алгоритма умножения (пример 1)
22
Рисунок 1.7.2.3 – Функциональное моделирование БО алгоритма умножения (пример 2)
23
Рисунок 1.7.2.4 – Функциональное моделирование БО алгоритма умножения (пример 3)
24
Рисунок 1.7.2.5 – Функциональное моделирование БО алгоритма умножения (пример 4)
25
Рисунок 1.7.2.6 – Функциональное моделирование БО алгоритма умножения (пример 5)
1.7.3 Микропрограмма операции сдвиг вправо
На рисунке 1.7.3.1 представлен алгоритм микропрограммы операции сдвиг вправо с
микрооперациями. В ячейках микроопераций указаны управляющие сигналы, которые во
время микрооперации равны единице, а также сигналы-признаки, которые могут
измениться.
На рисунках 1.7.3.2–1.7.3.5 представлены результаты функционального
моделирования блока операций алгоритма сдвига вправо для примеров.
26
Рисунок 1.7.3.1 – Алгоритм микропрограммы операции сдвига вправо
27
Рисунок 1.7.3.2 – Функциональное моделирование БО алгоритма сдвига вправо (пример 1)
28
Рисунок 1.7.3.3 – Функциональное моделирование БО алгоритма сдвига вправо (пример 2)
29
Рисунок 1.7.3.4 – Функциональное моделирование БО алгоритма сдвига вправо (пример 3)
30
Рисунок 1.7.3.5 – Функциональное моделирование БО алгоритма сдвига вправо (пример 4)
Проектирование схемного местного устройства управления
Модифицированные алгоритмы выполнения операций
Для реализации местного устройства управления необходимо изменить алгоритмы
операций, связав микрокоманды в состояния Pi датчика состояний и заменив индекс I
счетчика на флаг FC, который равен истине при завершении счета .
На рисунках 2.1.1 и 2.1.2 представлены модифицированные
микропрограмм операций умножения и сдвига вправо соответственно.
31
алгоритмы
Рисунок 2.1.1 – Модифицированная схема алгоритма умножение
32
Рисунок 2.1.2 – Модифицированная схема алгоритма сдвиг вправо
33
Функциональная схема МУУ
На рисунке 2.2.1 представлена функциональная схема местного устройства
управления с «жесткой» логикой. В таблице 2.2.1 описано назначение всех
блоков-элементов МУУ.
Рисунок 2.2.1 – Функциональная схема местного устройства управления
Таблица 2.2.1 – Таблица функционального назначения блоков-элементов МУУ
Обозначение
Схема пуска и
останова
Счетчик циклов
Датчик
состояний DS
КС1
КС2
КС3
Назначение
Формирование сигнала EN операции
Формирование сигнала FC конца сдвига / счета
Формирование состояния МУУ
Формирование кода перехода для DS
Формирование управляющих сигналов Y1-Y14, YC, сигнала конца
операции SKO
Формирование количества сдвигов регистра RB
Синтез датчика состояний DS
2.3.1 Графы переходов DS
Датчик состояний DS синтезируется на основе D-триггеров. Каждый D-триггер
представляет одно состояние DS, причем используется кодирование «1 из N». На
рисунках 2.3.1 и 2.3.2 представлены графы переходов состояния DS для операций
умножения и сдвига вправо соответственно.
34
Рисунок 2.3.1 – Граф переходов операции умножение
Рисунок 2.3.2 – Граф переходов операции сдвиг вправо
2.3.2 Таблица переходов DS
В таблице 2.3.2 представлены переходы датчика состояний DS, на основе которых
формируются сигналы, подаваемые на входы D-триггеров.
Таблица 2.3.2 – Таблица переходов датчика состояний DS
Переход COP0
P0 -> P1
0
P1 -> P2
0
P1 -> P3
0
P2 -> P3
0
P3 -> P2
0
P0 -> P1
1
P1 -> P2
1
P2 -> P2
1
PHI1
X
1
0
X
X
X
X
X
PHI2
X
X
X
X
X
X
X
0(x)
FC
X
X
X
X
0(х)
X
X
0(x)
P3
0
0
0
0
1
0
0
0
P2
0
0
0
1
0
0
0
1
P1
0
1
1
0
0
0
1
0
COP0 = 0 – операция умножение
COP0 = 1 – операция сдвиг вправо.
Логические выражения для входов D-триггеров:
𝐷0 = 0
𝐷1 = 𝑃0
̅̅̅̅̅̅̅̅ + 𝑃1 𝐶𝑂𝑃0 + 𝑃2 𝐶𝑂𝑃0 + 𝑃3 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅
𝐷2 = 𝑃1 𝑃𝐻𝐼1 𝐶𝑂𝑃0
= (𝑃1 + 𝑃2) 𝐶𝑂𝑃0 + (𝑃1 𝑃𝐻𝐼1 + 𝑃3) ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅ + 𝑃2 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅ = 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅(𝑃1 ̅̅̅̅̅̅̅
𝐷3 = 𝑃1 ̅̅̅̅̅̅̅
𝑃𝐻𝐼1 𝐶𝑂𝑃0
𝑃𝐻𝐼1 + 𝑃2)
35
P0
1
0
0
0
0
1
0
0
D3
0
0
1
1
0
0
0
0
D2
0
1
0
0
1
0
1
1
D1
1
0
0
0
0
1
0
0
D0
0
0
0
0
0
0
0
0
Синтез КС2
Комбинационная схема 2 формирует управляющие сигналы Y1-Y14 для управления
блоками БО, YC для управления (декремент) счетчиком циклов и сигнал конца операции
SKO в зависимости от текущего состояния Pi и кода операции COP0, что указано в
таблице 2.4.
Таблица 2.4 – Таблица управляющих сигналов на выходах КС2
COP0
0 (умножение)
1 (сдвиг вправо)
P0
Y1, Y3, Y7
Y1, Y3, Y7
P1
Y2 & ̅̅̅̅̅̅̅
PHI1,
̅̅̅̅̅̅̅,
Y6 & PHI1
YC & ̅̅̅̅̅̅̅
PHI1,
Y4 & PHI1,
Y10 & PHI1,
Y8 & PHI1,
Y11 & PHI1
Y4, Y13
P2
Y2, Y6, YC
̅̅̅,
Y14 & ̅̅̅̅̅̅̅
PHI2 & ̅FC
̅̅̅̅̅̅̅
̅
̅
̅
̅
Y6 & PHI2 & FC,
̅̅̅̅̅̅̅ & FC
̅̅̅̅,
Y5 & PHI2
̅̅̅̅̅̅̅
̅̅̅,
YC & PHI2 & ̅FC
Y12 & PHI2,
SKO & (PHI2 + FC)
P3
Y4, Y10,
Y9 & PHI1,
SKO & FC
-
Логические выражения для управляющих сигналов Y1-Y14, YC и сигнала конца
операции SKO:
𝑌1 = 𝑃0
𝑌2 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 & ̅̅̅̅̅̅̅
𝑃𝐻𝐼1 & 𝑃1 + 𝑃2 & ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0
𝑌3 = 𝑃0
̅̅̅̅̅̅̅̅ & 𝑃𝐻𝐼1 & 𝑃1 + 𝐶𝑂𝑃0 & 𝑃1 + 𝑃3 & 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅
𝑌4 = 𝐶𝑂𝑃0
𝑌5 = 𝐶𝑂𝑃0 & ̅̅̅̅̅̅̅
𝑃𝐻𝐼2 & ̅̅̅̅
𝐹𝐶 & 𝑃2
̅̅̅̅̅̅̅̅ & 𝑃𝐻𝐼1
̅̅̅̅̅̅̅ & 𝑃1 + 𝑃2 & 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅ + 𝐶𝑂𝑃0 & 𝑃𝐻𝐼2
̅̅̅̅̅̅̅ & 𝐹𝐶
̅̅̅̅ & 𝑃2
𝑌6 = 𝐶𝑂𝑃0
𝑌7 = 𝑃0
̅̅̅̅̅̅̅̅ & 𝑃𝐻𝐼1 & 𝑃1
𝑌8 = 𝐶𝑂𝑃0
𝑌9 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 & 𝑃𝐻𝐼1 & 𝑃3
̅̅̅̅̅̅̅̅ & 𝑃𝐻𝐼1 & 𝑃1 + 𝑃3 & 𝐶𝑂𝑃0
̅̅̅̅̅̅̅̅
𝑌10 = 𝐶𝑂𝑃0
𝑌11 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 & 𝑃𝐻𝐼1 & 𝑃1
𝑌12 = 𝐶𝑂𝑃0 & 𝑃𝐻𝐼2 & 𝑃2
𝑌13 = 𝐶𝑂𝑃0 & 𝑃1
̅̅̅̅̅̅̅ & 𝐹𝐶
̅̅̅̅ & 𝑃2
𝑌14 = 𝐶𝑂𝑃0 & 𝑃𝐻𝐼2
𝑌𝐶 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 & ̅̅̅̅̅̅̅
𝑃𝐻𝐼1 & 𝑃1 + 𝑃2 & ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 + 𝐶𝑂𝑃0 & ̅̅̅̅̅̅̅
𝑃𝐻𝐼2 & ̅̅̅̅
𝐹𝐶 & 𝑃2
𝑆𝐾𝑂 = 𝐶𝑂𝑃0 & (𝑃𝐻𝐼2 + 𝐹𝐶) & 𝑃2 + ̅̅̅̅̅̅̅̅
𝐶𝑂𝑃0 & 𝑃3 & 𝐹𝐶
36
Логическая схема МУУ
На рисунке 2.5 представлена синтезированная логическая схема местного устройства
управления.
Рисунок 2.5 – Логическая схема местного устройства управления
37
Функциональное моделирование АЛУ
На рисунках 2.6.1–2.6.9 представлены результаты функционального моделирования
АЛУ для примеров.
Рисунок 2.6.1 – Функциональное моделирование АЛУ алгоритма умножения (пример 1)
38
Рисунок 2.6.2 – Функциональное моделирование АЛУ алгоритма умножения (пример 2)
39
Рисунок 2.6.3 – Функциональное моделирование АЛУ алгоритма умножения (пример 3)
40
Рисунок 2.6.4 – Функциональное моделирование АЛУ алгоритма умножения (пример 4)
41
Рисунок 2.6.5 – Функциональное моделирование АЛУ алгоритма умножения (пример 5)
42
Рисунок 2.6.6 – Функциональное моделирование АЛУ алгоритма сдвига вправо (пример 1)
43
Рисунок 2.6.7 – Функциональное моделирование АЛУ алгоритма сдвига вправо (пример 2)
44
Рисунок 2.6.8 – Функциональное моделирование АЛУ алгоритма сдвига вправо (пример 3)
45
Рисунок 2.6.9 – Функциональное моделирование АЛУ алгоритма сдвига вправо (пример 4)
46
Временные параметры
Получен отчет статического анализа времени предварительной установки с помощью
программы «Timing Analyzer», который представлен на рисунке 2.7.2. По полученным
данным можно судить о минимальном периоде работы АЛУ, вычисленном на рисунке 2.7.1.
Рисунок 2.7.1 – Оценка временных параметров АЛУ программой «Timing Analyzer»
Рисунок 2.7.2 – Отчет статического анализа времени предварительной установки
Программа определила критический путь на микрооперации суммирования в
операции умножение: 𝑅𝑅 ∶= 𝑅𝑅 + 𝑅𝐴.
Критический путь, который указан на рисунке 2.7.2:
𝐶 → 𝐷𝑆(𝑃3) → 𝑌9 → 𝐾𝐶10[0] → 𝑆𝑀[6] → 𝑅𝑅[1]
При установке периода работы генератора в 35.8 нс возникает ошибка времени
предустановки регистра RR, показанная на рисунке 2.7.5. На рисунке 2.7.4 показана
временная диаграмма работы АЛУ при заданных на рисунке 2.7.3 параметрах.
47
Рисунок 2.7.3 – Окно настроек периода и частоты генератора
0.7ns
Рисунок 2.7.4 – Временная диаграмма работы АЛУ при периоде 35.8 нс
Критический путь равен:
4(𝑃3) + 10.9(𝑌9) + 4.3(𝐾𝐶1_𝐹0) + 10.1(𝑆𝑀6) + 5.8(𝑅𝑅1) = 35.1 нс
Рисунок 2.7.5 – Сообщение об ошибке
48
Временная диаграмма работы АЛУ без возникновения ошибок с установленным
периодом 36.0 нс показана на рисунке 2.7.6.
Рисунок 2.7.6 – Временная диаграмма работы АЛУ при периоде 36.0 нс
В таблице 2.7 представлены временные параметры работы АЛУ, определенные
программой и вычисленные с помощью временного моделирования.
Таблица 2.7 – Таблица временных параметров АЛУ
Параметр
Timing Analyzer
Временное
моделирование
Минимальный период работы
генератора, нс
36.2
36.0
Максимальная частота
генератора, МГц
27.6
27.8
Максимальное число тактов
операции умножения
8
Максимальное число тактов
операции сдвига вправо
6
Максимальное время
выполнения операции
умножения, нс
289.6
288.0
Максимальное время
выполнения операции сдвига
вправо, нс
217.2
216.0
Количество операций
умножения в секунду, млн
3.5
3.5
Количество операций сдвига
вправо в секунду, млн
4.6
4.6
49
Размещение на кристалле
На рисунке 2.8.1 представлена схема подключения АЛУ к стенду.
Рисунок 2.8.1 – Схема подключения АЛУ к стенду
Для подключения к стенду необходимо указанное на рисунке 2.8.2 количество
элементов.
Рисунок 2.8.2 – Отчет о количестве элементов
На рисунке 2.8.3 представлена схема размещения элементов на кристалле ПЛИС.
Рисунок 2.8.3 – Схема размещения на кристалле ПЛИС
50
Проектирование блока управления командами
Система памяти
Оперативная память (ОП) имеет организацию 16х8 ячеек. В каждой ячейке хранится
2 слова по 4 разряда. Соответственно, емкость ОП равна 32 словам. На рисунке 3.1.1
представлена организация оперативной памяти.
Регистровая память (РП) имеет организацию 8х4 ячеек. В каждой ячейке хранится 1
слово. Соответственно, емкость РП составляет 8 слов. Физическая и логическая адресации
в регистровой памяти совпадают.
Адресация
физической памяти
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Адресация
логической памяти
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
7…0
7...4 (ст)
3…0 (мл)
Рисунок 3.1.1 – Организация оперативной памяти
Форматы команд и способы адресации
В проектировании используются следующие типы адресаций: непосредственная,
прямая, прямая регистровая, относительная и косвенная. Команды являются
двухадресными.
В линейных командах первый операнд в операции умножения хранится в нечетных
ячейках ОП и указывается в команде с помощью прямого адреса. В операции сдвига вправо
первый операнд задается непосредственной адресацией. В зависимости от признака
адресации PA2 второй операнд хранится либо в РП (PA2 = 0), либо в ОП (PA2 = 1).
Причем для операции умножения второй операнд размещается только в нечетных ячейках
ОП или РП, а для операции сдвига вправо операнд может находиться в любой
ячейке ОП и РП. В случае хранения операнда в ОП адресация является косвенной
автоинкрементной (вариант 2).
Результат операций записывается по адресу второго операнда.
В командах перехода для передачи адреса смещения используется относительная
адресация.
51
На рисунке 3.2 представлены используемые способы адресации.
Рисунок 3.2 – Способы адресации
Непосредственная адресация – операнд непосредственно задан в коде команды.
Прямая и прямая регистровая адресации – адрес, указанный в команде, является
исполнительным адресом операнда. Для операции умножения адрес, указанный в ячейке
РП, должен быть четным.
Косвенная автоинкрементная адресация (вариант 2) – исполнительный адрес
выбирается из ячейки памяти по косвенному адресу, который определяется содержимым
регистра, указанным в команде. Для операции умножения исполнительный адрес должен
быть четным.
Относительная адресация – исполнительный адрес вычисляется как сумма смещения
со знаком, заданного в команде в дополнительном коде, и текущего значения счетчика
команд.
В таблице 3.2 представлен выбранный способ кодирования четырех операций.
Таблица 3.2 – Таблица кодирования операций
COP1
0
0
1
1
COP0
0
1
0
1
Операция
Умножение
Сдвиг вправо
Условный переход
Безусловный переход
52
3.2.1 Форматы команд
В линейных командах первый операнд в операции умножения всегда задается прямой
(операция умножения) или непосредственной (операция сдвига вправо) адресацией. Второй
операнд в зависимости от признака PA2 указывается в команде либо с помощью
прямой регистровой адресации (PA2 = 0), либо с помощью косвенной автоинкрементной
адресации (вариант 2) (PA2 = 1). Для операции умножения накладываются ограничения
на четность передаваемого в команде адреса второго операнда, а также на четность
исполнительного адреса.
В команде условного перехода если CF = 1, то адрес в счетчике команд складывается
со смещением, переданным в команде.
Число разрядов в регистре команд РК должно быть кратно 4-м. Необходимое
количество разрядов равно 11-ти, поэтому РК состоит из 3-х четырехразрядных регистров
хранения, что составляет 12 разрядов. Размещение данных в регистре команд представлено
на рисунке 3.2.1.3.
Рисунок 3.2.1.3 – Расположение команд в регистре команд
53
Алгоритм работы БУК
На рисунке 3.3 представлен алгоритм работы блока управления командами. Так как
3–0 разряды РК необходимы только для операции умножения, то 3-я часть РК считывается
только при COP0 = 0. После записи слова в регистр команд счетчик команд СК
увеличивается на единицу. Каждый операнд считывается в соответствующий буферный
регистр за одно обращение к памяти. В случае выполнения операции умножения при
признаке PA2 = 0 в регистровую память результат записывается за 2 обращения к памяти.
Рисунок 3.3 – Алгоритм работы БУК
54
Функциональная схема БУК
На рисунке 3.4.1 представлена функциональная схема БУК.
Рисунок 3.4.1 – Функциональная схема БУК
55
В таблице 3.4.1 описано назначение ее блоков-элементов, в таблице 3.4.2 указано
назначение управляющих сигналов, задействованных в БУК.
Таблица 3.4.1 – Таблица назначения блоков-элементов БУК
Элемент
КС1
КС2
КС3
КС4
КС5
КС6
КС7
КС8
КС9
КС10
КС11
КС12
ИЛИ
SM1
SM2
СК
РК1
РК2
РК3
RIA
BR1
BR2
OP
RP
Назначение
Передача признака адресации второго операнда PA2 в БМК
Передача первого операнда на BR1 в зависимости от типа адресации
Передача адреса A1 первого операнда, исполнительного адреса RIA,
адреса со счетчика команд СК или адреса косвенной
автоинкрементной адресации из RP для адресации в OP
Формирование управляющего сигнала для КС5
Передача младших разрядов RR из АЛУ или нечетной ячейки OP
в нечетную ячейку OP
Передача младших разрядов RR из АЛУ или четной ячейки OP
Передача старших разрядов RR из АЛУ или данных с КС6
в четную ячейку OP
Передача второго операнда на BR2 в зависимости от типа адресации
Передача адреса для второго операнда в RP
Передача младших или старших разрядов RR
Передача младших или старших разрядов RR или адреса косвенной
автоинкрементной адресации из RP в ячейку RP
Выбор ячейки OP
Формирование нечетного или четного адреса
Сумматор, формирующий адрес перехода
Сумматор, формирующий адрес косвенной автоинкрементной
адресации
Счетчик команд
Регистр команд 1
(11–8 разряды)
Регистр команд 2
(7–4 разряды)
Регистр команд 3
(3–0 разряды)
Регистр исполнительного адреса
Базовый регистр первого операнда
Базовый регистр второго операнда
Оперативная память
Регистровая память
56
Таблица 3.4.2 – Таблица управляющих сигналов
Элемент
РК1
РК2
РК3
OP
RP
RIA
BR1
BR2
Управляющий сигнал
YC1
YC2
YC3
YC4
YC5
YC6
YC7
YC8
YC9
YC10
ИЛИ
YC11
КС10
YC12
ИЛИ
YC13
СК
YC14
KC3
YC15
SM2
YC16
Назначение
Загрузка данных в РК1
Загрузка данных в РК2
Загрузка данных в РК3
Увеличение СК на 1
Загрузка данных в СК
Загрузка данных в OP
Загрузка данных в RP
Загрузка данных в RIA
Загрузка данных в BR1
Загрузка данных в BR2
0: выбор четного адреса RIA
1: выбор нечетного адреса RIA
0: выбор старших разрядов RR
1: выбор младших разрядов RR
0: передача RM20
1: передача «1»
00: передача адреса A1 с
регистра команд
01: передача адреса косвенной
автоинкрементной адресации из RP
10: передача исполнительного
адреса RIA
11: передача адреса со
счетчика команд СК
Увеличение адреса косвенной автоинкрементной
адресации на 1
На рисунке 3.4.2 представлена логическая схема блока управления командами.
Для синтеза счетчика команд СК были выбраны элементы CB4CLE и FTCLE, так как
необходимо 5 разрядов. Элемент FTCLE отвечает за хранение старшего разряда счетчика.
По этой же причине для синтеза регистра исполнительного адреса RIA были выбраны
элементы FD4CE и FDCE, который отвечает за хранение старшего разряда регистра.
Регистр команд RK синтезирован на основе 3-х элементов FD4CE.
Регистровая и оперативная памяти синтезированы на основе памяти с произвольным
синхронным доступом SYNC_RAM.
57
Рисунок 3.4.2 – Логическая схема БУК
58
Тестирование БУК
Для проведения тестирования блока управления командами разработан алгоритм,
представленный на рисунке 3.5.1. Цикл от G1 до B1 совершается 2 раза для проверки всех
необходимых условий.
Рисунок 3.5.1 – Блок-схема алгоритма тестирования работы БУК
Алгоритм тестирования гарантирует:
•
проверку всех ветвей алгоритма работы БУК
•
проверку условия перехода при условном переходе (CF = 1)
•
проверку расположения команд разной длины в четных и нечетных
ячейках ОП (A0, A2 для 12-разрядной команды; A8, A11 для 8-разрядной
команды)
•
проверку возможного расположения операндов в четных и нечетных
словах ОП и ячейках РП (Cнч, Zчт и Dнч для умножения; Zчт, Zнч и Dнч, Dчт
для сдвига вправо)
•
запись результата в четные и нечетные слова ОП и ячейки РП (Счт,нч и Dчт,нч
для умножения; Zчт, Zнч и Dчт, Dнч для сдвига вправо)
•
считывание для проверки записи из четных и нечетных слов ОП и ячеек РП
(Счт,нч, Zчт,нч и Dчт,нч)
59
В таблице 3.5.1 представлены начальные значения операндов, загружаемые в память.
В таблицах 3.5.2 и 3.5.3 приведены карты загрузки оперативной и регистровой памяти.
Оперативная память используется полностью, в регистровой используется 4 ячейки.
Таблица 3.5.1 – Таблица начальных значений программы тестирования
Переменная
Адрес в памяти
Cчт(OP)
Cнч(OP)
Dчт(RP)
Dнч(RP)
Zчт(OP)
Zнч(OP)
N1
N2
N3
N4
i(R)
j(R)
k(R)
A24(OP)
A25(OP)
R0(RP)
R1(RP)
A30(OP)
A31(OP)
R2(RP)
R3(RP)
R4(RP)
Значение
DEC
+3
-7
+3
+6
-6
-3
+1
+2
0
+3
9
12
13
BIN
0011
1001
0011
0110
1010
1101
0001
0010
0000
0011
1001
1100
1101
HEX
3
9
3
6
A
D
1
2
0
3
9
C
D
Таблица 3.5.2 – Карта загрузки ОП
Физический
адрес
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Адрес слова
A0
A2
A4
A6
A8
A10
A12
A14
A16
A18
A20
A22
A24
A26
A28
A30
Содержимое памяти
7-4
3-0
HEX
0011
0000
30
1010
0011
A3
1100
0000
C0
0101
0000
50
1100
0010
C2
0000
0110
06
1011
1010
BA
0010
0100
24
0000
0111
07
1100
0
C0
0001
1000
18
0001
1000
18
0011
1001
39
0001
1110
1E
0001
1111
1F
1010
1101
AD
Таблица 3.5.3 – Карта загрузки РП
Номер регистра
R0
R1
R2
R3
R4
Содержимое памяти
BIN
HEX
0011
3
0110
6
1001
9
1100
C
1101
D
Операнд
Dчт
Dнч
i =9
j = 12
k = 13
60
Пояснение
Команда умножения
Команда умножения
Команда сдвига
Безусловный переход
Команда сдвига
Условный переход
Команда сдвига
Команда сдвига
A24 (Cчт)
A24 (Cчт)
Cчт,нч
A30 (Zчт)
A31 (Zнч)
Zчт,нч
В таблице 3.5.4 представлена программа тестирования. Стрелками отмечено
считывание тех ячеек памяти, в которые производилась загрузка в предыдущих шагах.
Таблица 3.5.4 – Таблица программы тестирования
№
A0
Первый
операнд
Cчт(OP) :=
A24
0.011 (+3)
ОП
Второй операнд
Результат операции
MUL
i(R2) := (9 + 1) * 2 = 20
Cнч(M[i(R2)](OP))(OP)
-> A20 -> A25
1.001 (-7)
i(R2) = 20
Cчт,нч(M[i(R2)](OP))(OP)
-> A20 -> A24, A25
1.1101011 (-21)
A3
Zчт(OP) :=
A30
1.010 (-6)
MUL
Dнч(R1) :=
0.110 (+6)
Dчт,нч(R0, R1) :=
1.1011100 (-36)
A6
N1
0001 (1)
SH
Dчт(R0) :=
1101
Dчт(R0) :=
0110
Безусловный переход в A11: CK := CK + 1 = 10 + 1 = 11
j(R3) := (12 + 1) * 2 = 26
j(R3) = 26
N2
Zчт(M[j(R3)](OP))(OP)
Zчт(M[j(R3)](OP))(OP)
A11
SH
0010 (2)
->A26 -> A30
-> A26 -> A30
1010
0010
A13 Условный переход по CF = 1 в A0: CK := CK – 15 = 15 – 15 = 0
Флаг
CF = 0
A8
MUL
i(R2) := (10 + 1) * 2 = 22
Cнч(M[i(R2)](OP))(OP)
:= -> A22 -> A25
1.011 (-5)
i(R2) = 22
Cчт,нч(M[i(R2)](OP))(OP)
-> A22 -> A24, A25
0.0001010 (+10)
Zчт(OP) :=
A30
0.010 (+2)
MUL
Dнч(R1) :=
1.100 (-4)
Dчт,нч(R0, R1) :=
1.1111000 (-8)
N1
0001 (1)
SH
Dчт(R0) :=
1111
Dчт(R0) :=
0111
A0
Cчт(OP) :=
A24
1.110 (-2)
A3
A6
A8
CF = 1
CF = 1
Безусловный переход в A11: CK := CK + 1 = 10 + 1 = 11
j(R3) := (13 + 1) * 2 = 28
j(R3) = 28
N2
Zнч(M[j(R3)](OP))(OP)
Zнч(M[j(R3)](OP))(OP)
A11
SH
0010 (2)
-> A28 -> A31
-> A28 -> A31
1101
0011
A13 Условный переход не выполняется, так как CF = 0
A15
N3
0000 (0)
SH
A17
N4
0011 (3)
SH
Dчт(R0) :=
0111
k(R4) := (13 + 1) * 2 = 28
Zнч(M[k(R4)](OP))(OP)
-> A28 -> A31
0011
61
Dчт(R0)
0111
k(R4) = 28
Zнч(M[k(R4)](OP))(OP)
-> A28 -> A31
0000
CF = 0
CF = 0
CF = 0
Результаты моделирования БУК
На рисунках 3.6.1–3.6.4 представлены результаты функционального моделирования БУК, проведенного по алгоритму тестирования.
Рисунок 3.6.1 – Функциональное моделирование БУК, 1-3 команды
62
Рисунок 3.6.2 – Функциональное моделирование БУК, 4-7 команды
63
Рисунок 3.6.3 – Функциональное моделирование БУК, 8-11 команды
64
Рисунок 3.6.4 – Функциональное моделирование БУК, 12-14 команды
65
Проектирование блока выработки микрокоманд
Блок выработки микрокоманд спроектирован как микропрограммное устройство
управления с принудительным способом задания адреса следующей микрокоманды (МК).
В каждой МК указан адрес следующей микрокоманды, необходимые признаки,
формируемые в АЛУ, и управляющие сигналы.
При отсутствии ветвления в алгоритме работы БУК следующей микрокомандой будет
та МК, которая указана в поле следующей МК, как показано на рисунке 4.1. В случае
наличия ветвления на 2 направления, представленного на рисунке 4.2, если условие не
выполнилось, то происходит переход в следующую микрокоманду. В противоположном
случае записывается адрес, который указан в МК.
Рисунок 4.1 – Выбор адреса следующей МК при отсутствии ветвления
Рисунок 4.2 – Выбор адреса следующей МК при наличии ветвления
Данный способ задания адреса следующей МК был выбран для сокращения
количества пустых тактов, соответственно и уменьшения количества тактов выполнения
длинной операции. Недостатком принудительной адресации является больший размер
используемой памяти.
66
Модифицированный алгоритм работы БУК
Рисунок 4.1.1 – Модифицированный алгоритм микропрограммы выполнения команд
67
На рисунке 4.1.1 приведена блок-схема модифицированного алгоритма
микропрограммы волнения команд. Слева от блока указан номер текущей микрокоманды,
а слева в блоке номер следующей. Между идущими подряд условными блоками добавлены
NOP-блоки пустых тактов. Одной микрокомандой считается условный блок с
предшествующим действием, такие МК показаны пунктирной линией.
Всего 22 микрокоманды, поэтому необходима управляющая память глубиной
32 разряда.
Определение формата микрокоманд
Формат микрокоманды разработан в соответствии с выбранным способом
принудительного задания адреса следующей МК.
В микрокоманде указываются управляющие сигналы, адрес перехода и необходимые
для работы БУК признаки, формируемые в АЛУ. При отсутствии ветвления в МК не
указываются проверяемые признаки, а в обратно случае должен быть указан хотя бы один.
Для указания управляющих сигналов выбрано горизонтальное кодирование МК.
Длина микрокоманды составляет 26 разрядов, указанных на рисунке 4.2.1:
5 разрядов А4-А0 для задания адреса следующей МК, 4 разряда для кода операции (COP1,
COP0) и необходимых признаков (CF и PA2), 17 разрядов для управляющих
сигналов YC16-YC1 и сигнала начала операции SNO.
Рисунок 4.2.1 – Формат микрокоманд
Функциональная схема БМК
На рисунке 4.3.1 представлена функциональная схема БМК.
Рисунок 4.3.1 – Функциональная схема БМК
68
В таблице 4.3 описано функциональное назначение каждого блока-элемента БМК.
Таблица 4.3 – Таблица назначения блоков-элементов БМК
Название
Назначение
KC1
В случае ветвления при выполнении условия
формирует нечетный адрес следующей МК
KC2
Формирование управляющих сигналов YC1-Y16
ИЛИ
Передача младшего разряда адреса, сформированного
при наличии ветвления, или выработанного
управляющей памятью
RAMK
Регистр микрокоманд, хранит текущую МК
ROM
Управляющая память
SPO
По сигналу START, SNO или SKO запускает или
останавливает выполнение тестовой программы
Логическая схема БМК
На рисунке 4.4.1 представлена логическая схема БМК. Регистр микрокоманд собран
на регистре FD4CE и триггере FDCE, так как необходимо 5 разрядов для адресации в ROM.
Управляющие сигналы и SNO экранированы сигналом EN_BMK работы БМК.
Рисунок 4.4.1 – Логическая схема БМК
69
Составление микропрограммы
На рисунке 4.5.1 представлена карта загрузки управляющей памяти БМК для тестирования процессора. Используется управляющая
память ROM, синтезированная на основе постоянного запоминающего устройства размером 32х26 ячеек.
Рисунок 4.5.1 – Карта загрузки управляющей памяти
70
Результаты моделирования процессора
Результаты функционального моделирования процессора
На рисунках 5.1.1–5.1.5 представлены результаты функционального моделирования процессора.
Рисунок 5.1.1 – Функциональное моделирование процессора, 1-2 команды
71
Рисунок 5.1.2 – Функциональное моделирование процессора, 3-6 команды
72
Рисунок 5.1.3 – Функциональное моделирование процессора, 7-8 команды
73
Рисунок 5.1.4 – Функциональное моделирование процессора, 9-12 команды
74
Рисунок 5.1.5 – Функциональное моделирование процессора, 13-14 команды
75
Размещение на кристалле
Для проведения тестирования процессора его схема была загружена на ПЛИС. На рисунке 5.2.1 приведена схема подключения
процессора к стенду.
Рисунок 5.2.1 – Схема подключения процессора к стенду
76
На рисунке 5.2.2 указано количество элементов для подключения процессора к стенду
и загрузки его на кристалл ПЛИС.
Рисунок 5.2.2 – Отчет о количестве элементов
Схема размещения элементов процессора на кристалле ПЛИС представлена на
рисунке 5.2.3.
Рисунок 5.2.3 – Схема размещения на кристалле ПЛИС
Временные параметры
На рисунке 5.3.2 представлен отчет времени предварительной установки, полученный
с помощью программы «Timer Analyzer». По полученным данным, представленным на
рисунке 5.3.1, данным можно судить о минимальном периоде работы генератора, который
равен 71.6 нс. Максимальная частота работы генератора, соответственно, равна 13.9 МГц.
77
Рисунок 5.3.1 – Оценка временных параметров процессора программой «Timer Analyzer»
Рисунок 5.3.2 – Критический путь, найденный «Timing Analyzer»
Программа определила критический путь на микрооперации чтения из оперативной
памяти по адресу, полученному из регистровой памяти, и записи этих данных в 3-ю часть
регистра команд: 𝑅𝐾3 ∶= 𝑟𝑑(𝑟𝑑(𝑅2 + 1)𝑟𝑝 + 1)𝑜𝑝
Критический путь, указанный на рисунке 5.3.2:
𝐶 → 𝑅𝐴𝑀𝐾 → 𝑅𝑂𝑀 → 𝑅𝑃 → 𝑆𝑀2 → 𝑂𝑃 → 𝑅𝐾
БМК
БУК
𝐶 → 𝑅𝐴𝑀𝐾 → 𝑅𝑂𝑀(𝑌𝐶13) → 𝐾𝐶2 → ИЛИ(𝑌𝐶13) → 𝐾𝐶9 → 𝑅𝑃 → 𝑆𝑀2 → 𝐾𝐶3 → 𝑂𝑃 → 𝐾𝐶12 → 𝑅𝐾
БМК
БУК
78
В таблице 5.3 приведено сравнение временных параметров работы процессора для
4-х выполняемых операций. Самой быстровыполнимой является операция условного или
безусловного перехода. Самой затратной по времени является операция умножения.
Таблица 5.3 – Таблица временных параметров процессора
Параметр
Минимальный
период работы
генератора, нс
Максимальная
частота работы
генератора, МГц
Максимальное число
тактов операции
Максимальное время
выполнения
операции, нс
Количество
операций в
секунду, млн
Умножение
Значение
Условный
Сдвиг вправо
переход
Безусловный
переход
71.6
13.9
19
15
4
4
1360.4
1074.0
286.4
286.4
0.7
0.9
3.5
3.5
79
Заключение
В курсовом проекте с помощью системы проектирования «Xilinx» был спроектирован
процессор, соответствующий техническому заданию, выполняющий четыре операции:
1.
2.
3.
4.
Умножение
Сдвиг вправо
Условный переход
Безусловный переход
В процессе разработки спроектирована функциональная и логиеческая схемы блока
операций, выполняющих умножение чисел в дополнительном коде со старших разрядов
множителя и сдвига суммы частичных произведений влево с одним корректирующим
шагом и логический сдвиг вправо второго операнда на число разрядов, указанное в первом.
Для задания управляющих сигналов в БО спроектирована функциональная и логическая
схемы местного устройства управления с «жесткой» логикой.
Для тестирования арифметико-логического устройства разработаны 5 тестов
операции умножения и 4 теста операции сдвига вправо, предусматривающие прохождение
по всем ветвям алгоритмов выполнения операций. Выполнено функциональное
моделирование АЛУ, его загрузка на кристалл ПЛИС и подключение к стенду. Временные
параметры АЛУ были найдены с помощью программы «Timing Analyzer» и
самостоятельно
с
помощью
временного
моделирования.
Программа
показала, что минимальный период работы генератора равен 36.2 нс, а временное
моделирование – 36.0 нс. Максимальная частота работы равна 27.6 МГц и 27.8 МГц
соответственно. АЛУ может выполнять 3.5 млн операций умножения и 4.6 млн операций
логического сдвига вправо в секунду.
Спроектированы функциональная и логическая схемы блока управления командами
на основе алгоритма выполнения команды. Доюавлены команды безулосного и условного,
срабатывающего по флагу CF после операции сдвига вправо, переходов. Для выработки
управляющих сигналов для БУК были разработаны функцинальная и логическая схема
блока выработки микрокоманд. Выбран принудительный способ задания адреса
следующей микрокоманды.
Для тестирования процессора разработана тестовая программа, содержащая
14 команд, которая проверяет прохождение всех ветвей агоритма выполнения команды, а
также загрузку и чтение данных из четных и нечетных ячеек оперативной и регистровой
памяти для всех операций. Выполнено функциональное моделирования БУК в частности и
процессора в целом. Произведено размещение процессора на кристалле ПЛИС и его
подключение к стенду, а затем временное моделирование для оценки временных
параметров. С помощью программы «Timing Analyzer» найден минимальный период работы
генератора, равный 71.6 нс и соответственная максимальная частота – 13.9 МГц. Самой
быстровыполнимой является операция перехода, которую за 1 секунду можно сделать
3.5 млн. Самой долговыполнимой оказалась операция умножения. Их за секунду можно
совершить всего 0.7 млн. Операций сдвига вправо можно сделать 0.9 млн в секунду.
80
Список литературы
1. Зуев В.И.; Ковригин Б.Н; Тышкевич В.Г.; Любенцов В.М.; Ядыкин И.М.
Проектирование процессора ЭВМ : учеб. пособие, В.И. Зуев [и др.]; Под ред. Б.Н.
Ковригина, М.: МИФИ, 2006 – 80с.
2. Цильке Б.Я.; Орлов С.А. Организация ЭВМ и систем : учебник для вузов, СПб.:
Питер, 2001. – 668 с.
3. Гуров В.В.; Чуканов В.О. Основы теории и организации ЭВМ : ученое пособие
для вузов, В.В. Гуров, В.О. Чуканов, Москва: Бином. Лаборатория знаний,
2010. – 272 с.
4. Хамахер К.; Вранешич З., Заки С. Организация ЭВМ : Хамахер К. Вранешич З.
Заки С. СПб.: Питер, 2003. – 848 с.
5. Ковригин Б.Н. Введение в инструментальные средства проектирования и
отладки цифровых устройств на ПЛИС : учебно-методическое пособие, Б.Н.
Ковригин, М.: МИФИ, 2006. – 292 с.
6. Таненбаум Э. Архитектура компьютера : Э. Таненбаум, СПб.: Питер,
2009. – 704 с.
7. Угрюмов Е.П. Цифровая схемотехника : Учеб. пособие для вузов, Угрюмов Е.П.,
СПб.: БХВ-Петербург, 2015. – 816 с.
81
Download