Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
МОСКОВСКИЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)
Факультет КИБЕРНЕТИКИ Кафедра «Компьютерные системы и технологии» |
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
на тему:
Проектирование процессора ЭВМ
Студент гр. К 121 (Козлов Д.П.)
Руководитель (Ковригин Б.Н.)
2008 г.
Оглавление
Техническое задание на проектирование процессора 3
Глава 1. Проектирование блока операций 4
1.1. Описание алгоритмов выполнения операций, примеры, схемы алгоритмов 4
1.2. Функциональная схема блока операций 9
1.3. Синтез узлов блока управления 11
1.4. Логическая схема блока операций 15
1.5. Условное графическое обозначение блока операций 17
1.6. Таблицы управляющих сигналов и сигналов признаков 18
1.7. Схемы алгоритмов микропрограмм выполнения операций 19
1.8. Распечатки результатов моделирования блока операций для тестовых примеров 20
Глава 2. Проектирование схемного местного устройства управления 28
2.1. Условное графическое обозначение МУУ 28
2.2. Граф переходов распределителя сигналов МУУ 29
2.3. Функциональная схема МУУ 31
2.4. Синтез отдельных узлов МУУ 33
2.5. Логическая схема МУУ 34
Глава 3. Отработка арифметико-логического устройства 36
3.1. Схема соединения БО и МУУ 36
3.2. Распечатки результатов размещения схемы АЛУ на кристалле 37
3.3. Распечатки результатов моделирования АЛУ 38
3.4. Определение параметров системы синхронизации и времени выполнения операций 46
Глава 4. Проектирование блока управления командами 50
4.1. Форматы команд и способы адресации 50
4.2.Схема алгоритма выполнения команд 51
4.3. Функциональная схема БУК 51
4.3. Логическая схема БУК 51
4.5. Условное графическое обозначение БУК 55
4.6. Таблица управляющих сигналов и сигналов-признаков 55
4.7. Схема алгоритма микропрограмм выполнения команд 56
4.8. Тесты для отработки БУК 58
4.9. Таблицы загрузки оперативной и регистровой памяти 59
4.10. Распечатки результатов моделирования БУК 59
Глава 5. Проектирование блока микрокоманд 61
5.1. Условное графическое обозначение БМК 61
5.2. Формат микрокоманды 61
5.3. Функциональная схема микропрограммного устройства управления 62
5.4. Логическая схема микропрограммного устройства управления 62
5.5. Карта загрузки микропрограммного устройства управления 62
Глава 6. Отработка процессора 66
6.1. Схема соединения составных блоков процессора 66
6.2. Тесты для отработки процессора 67
6.3. Распечатки результатов размещения схемы процессора на кристалле 67
6.4. Распечатки результатов моделирования процессора 68
Заключение 69
1.1. Описание алгоритмов выполнения операций, примеры, схемы алгоритмов
Блок операций выполняет операцию умножения чисел в дополнительном коде с младших разрядов множителя и сдвигом множимого влево (школьный метод) с одним корректирующим шагом. При нулевом значении текущего разряда множителя такт суммирования пропускается. Первый операнд (A) множимое, второй (B) множитель. Результат формируется в восьмиразрядной сетке. Обозначим абсолютные величины A и B через |A| и |B|. Если B положителен то в его основных разрядах (без разряда знака) содержится величина |B|, если же он отрицателен, то в его основных разрядах содержится величина 1-|B|. В процессе умножения используются только разряды, представляющие цифровую часть множителя (без разряда алгебраического знака), но во всех суммированиях, выполняемых по ходу умножения, множимое А будет участвовать полностью с учетом знака. Так как цифровые разряды в изображении множителя B представляют либо величину |B| (если B > 0), либо величину 1- |B| (если B < 0), то результат (псевдопроизведение) этого процесса умножения будет равен либо
(если
либо
В первом случае получаем сразу готовое произведение, во втором случае
(если B < 0) нужно выполнить один корректирующий шаг вычитание из псевдопроизведения множимого A. При выполнении вычитания обычным образом учитываются алгебраические знаки псевдопроизведения и множимого. Данный алгоритм можно представить следующей формулой (для цифровой части множителя без учета возможной коррекции результата):
где
Схема алгоритма представлена на рис. 1.1.
Проиллюстрируем этот способ умножения при различных сочетаниях знаков сомножителей.
1 |
0 |
1 |
1 |
Множимое |
|||||
. |
1 |
0 |
1 |
Цифровая часть множителя |
|||||
1 |
1 |
1 |
1 |
0 |
1 |
1 |
|||
1 |
1 |
0 |
1 |
1 |
0 |
0 |
|||
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Псевдопроизведение |
||
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Коррекция |
||
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Результат |
2)
0 |
0 |
1 |
1 |
Множимое |
|||||
. |
1 |
0 |
1 |
Цифровая часть множителя |
|||||
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|||
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|||
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Псевдопроизведение |
||
1 |
1 |
0 |
1 |
0 |
0 |
0 |
Коррекция |
||
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Результат |
1 |
0 |
1 |
1 |
Множимое |
|||||
. |
1 |
0 |
1 |
Цифровая часть множителя |
|||||
1 |
1 |
1 |
1 |
0 |
1 |
1 |
|||
1 |
1 |
0 |
1 |
1 |
0 |
0 |
|||
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Результат |
0 |
0 |
1 |
1 |
Множимое |
|||||
. |
1 |
0 |
1 |
Цифровая часть множителя |
|||||
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|||
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|||
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Результат |
1 |
0 |
1 |
1 |
Множимое |
|||||
. |
0 |
0 |
0 |
Цифровая часть множителя |
|||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Псевдопроизведение |
||
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Коррекция |
||
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Результат |
6)
1 |
0 |
0 |
0 |
Множимое |
|||||
. |
0 |
1 |
1 |
Цифровая часть множителя |
|||||
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|||
1 |
1 |
1 |
0 |
0 |
0 |
0 |
|||
1 |
1 |
0 |
1 |
0 |
0 |
0 |
Псевдопроизведение |
||
1 |
0 |
0 |
0 |
0 |
0 |
0 |
Коррекция |
||
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Результат |
Операция вычитания: второй операнд (B) вычитается из первого операнда (A). Устанавливается признак результата: 0 разность равна нулю, 1 разность меньше нуля, 2 разность больше нуля, 3 переполнение. Рассмотрим примеры данной операции. Схема алгоритма приведена на рис. 1.2
1)
+ + 0 |
0. |
1 |
1 |
0 |
0 |
0. |
1 |
0 |
1 |
0 |
1. |
0 |
1 |
1 |
2)
+ 1 |
1. |
1 |
0 |
0 |
1 |
1. |
0 |
1 |
1 |
1 |
0. |
1 |
1 |
1 |
3)
+ 0 |
0. |
1 |
0 |
1 |
0 |
0. |
0 |
0 |
1 |
0 |
0. |
1 |
1 |
0 |
4)
+ 1 |
1. |
1 |
0 |
1 |
0 |
0. |
0 |
0 |
1 |
1 |
1. |
1 |
1 |
0 |
5)
+ 0 |
0. |
0 |
0 |
0 |
0 |
0. |
0 |
0 |
0 |
0 |
0. |
0 |
0 |
0 |
Рис. 1.1. Алгоритм операции умножения
Рис. 1.2. Алгоритм операции вычитания
1.2. Функциональная схема блока операций
На рис. 1.3 приведена функциональная схема блока операций.
Рис. 1.3. Функциональная схема блока операций
1.3. Синтез узлов блока управления
Определение набора функциональных узлов:
Выбор элементов в системе Xilinx Foundation F4.1i:
Реализация комбинационной схемы KS1:
При Y5=1 на выход подается инверсный операнд А, также Y5 идет на вход CI сумматора, чтобы на выходе сумматора получилась сумма с отрицательным дополнительным кодом операнда А. При Y5=0 на выход подается операнд А. Реализация комбинационной схемы KS1 представлена на рис. 1.4. УГО схемы приведено на рис. 1.5.
Рис. 1.4. Реализация комбинационной схемы KS1
Рис. 1.5. УГО схемы KS1
Реализация комбинационной схемы KS2:
При Y6=1 на выходы подается регистр результата RR, при Y6=0 на выходы подается инверсный, расширенный знаковым разрядом до восьми разрядов, код операнда B. Инверсный Y6 также подается на вход CI сумматора, для того чтобы на выходе сумматора получить сумму с отрицательным дополнительным кодом операнда B. Реализация комбинационной схемы KS2 представлена на рис. 1.6. УГО представлено на рис. 1.7.
Рис. 1.6. Реализация комбинационной схемы KS2
Рис 1.7. УГО схемы KS2
Реализация комбинационной схемы KS3:
Комбинационная схема KS3 формирует признак результата для его записи в триггеры признака результата. Таблица истинности приведена в табл. 1.1. Реализация комбинационной схемы KS2 представлена на рис. 1.8. УГО представлено на рис. 1.9.
Таблица 1.1
Таблица истинности комбинационной схемы KS3
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
PR0 |
PR1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
X |
X |
X |
0 |
1 |
0 |
0 |
X |
X |
X |
1 |
0 |
1 |
0 |
X |
X |
X |
1 |
1 |
0 |
1 |
X |
X |
X |
Рис. 1.8. Реализация комбинационной схемы KS3
Рис. 1.9. УГО схемы KS3
1.4. Логическая схема блока операций
На рис. 1.10 приведена логическая схема блока операций.
Рис. 1.10. Логическая схема блока операций
1.5. Условное графическое обозначение блока операций
Условное графическое обозначение блока операций приведено на рис. 1.11.
Рис. 1.11. Условное графическое обозначение блока операций
1.6. Таблицы управляющих сигналов и сигналов признаков
В табл. 1.2 и 1.3 дается описание управляющих сигналов и возможных микроопераций
Таблица 1.2
Управляющие сигналы
Y |
Описание |
Y1 |
Разрешение записи в регистр RA |
Y2 |
Сдвиг кода влево в RA |
Y3 |
Разрешение записи в регистр RB |
Y4 |
Сдвиг кода влево в RB |
Y5 |
0 передача кода из RA на SM 1 передача на SM |
Y6 |
0 передача на SM 1 передача кода из RR на SM |
Y7 |
Разрешение записи в регистр RR |
Y8 |
Установка в «0» регистра RR |
Y9 |
Разрешение записи в триггеры PR0 и PR1 |
Таблица 1.3
Сигналы обратной связи и сигналы признаков
F |
Описание |
F1 |
Текущий разряд множителя (B) |
1.7. Схемы алгоритмов микропрограмм выполнения операций
Алгоритм микропрограммы умножения показан на рис. 1.12. Алгоритм микропрограммы вычитания показан на рис. 1.13.
Рис. 1.12. Алгоритм микропрограммы умножения
Рис. 1.13. Алгоритм микропрограммы вычитания
1.8. Распечатки результатов моделирования блока операций для тестовых примеров
На рис. 1.14 1.20 приведены результаты моделирования схемы блока операций при выполнении операций умножения и вычитания для примеров, приведённых в пп. 1.1.
1 |
0 |
1 |
1 |
||||
. |
1 |
0 |
1 |
||||
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Рис. 1.14. Временные диаграммы работы блока операций. Операция умножения (пример 1).
2)
0 |
0 |
1 |
1 |
||||
. |
1 |
0 |
1 |
||||
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Рис. 1.15. Временные диаграммы работы блока операций. Операция умножения (пример 2).
1 |
0 |
1 |
1 |
||||
. |
1 |
0 |
1 |
||||
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Рис. 1.16. Временные диаграммы работы блока операций. Операция умножения (пример 3).
0 |
0 |
1 |
1 |
||||
. |
1 |
0 |
1 |
||||
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Рис. 1.17. Временные диаграммы работы блока операций. Операция умножения (пример 4).
1 |
0 |
1 |
1 |
||||
. |
0 |
0 |
0 |
||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Рис. 1.18. Временные диаграммы работы блока операций. Операция умножения (пример 5).
1 |
0 |
0 |
0 |
||||
. |
0 |
1 |
1 |
||||
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Рис. 1.19. Временные диаграммы работы блока операций. Операция умножения (пример 6).
Рис. 1.20. Временные диаграммы работы блока операций. Операция вычитания.
2.1. Условное графическое обозначение МУУ
В данном проекте разрабатывается местное устройство управления с «жёсткой» логикой. Задача МУУ управлять блоком операций при выполнении команд умножения и вычитания. Для этого МУУ формирует на выходе управляющие сигналы. МУУ работает под управлением ЦУУ, от которого принимает синхросигналы, сигналы начала операции и сброса. С блока операций МУУ принимает сигнал признака, анализируемого разряда; код операции с ЦУУ: 0 для вычитания и 1 для умножения. После окончания операции на выходе МУУ формируется сигнал конца операции.
Условное графическое обозначение МУУ показано на рис. 2.1.
SKO
F1
C
SNO
RESET
KOP
МУУ
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Рис. 2.1. Условное графическое обозначение МУУ
2.2. Граф переходов распределителя сигналов МУУ
Рассмотрим алгоритм операции умножения (см. рис. 1.9). Сначала идет загрузка операндов в регистры и обнуления регистра результата, что соответствует вершине Р0. В блоке D2 идет анализ текущего разряда операнда B, вершина Р1. В случае если F1=1, происходит суммирование RR и RA и производится сдвиг RA и RB, если F1=0, то просто производится сдвиг RA и RB (т.к. такт суммирования пропускается). После прохода по всем разрядам операнда B, в F1 оказывается знак операнда B (т.к. в регистре RB производится циклический сдвиг). Если F1=1, то датчик сигналов переходит в вершину Р2 и производится коррекция RR:=RR-RA, если F1=0, то коррекция не нужна и вырабатывается сигнал конца операции FINISH. Как видно из алгоритма сигнал конца операции FINISH может вырабатываться в вершине Р1 (без коррекции) или в вершине Р2 (с коррекцией).
Рис. 2.2. Графы переходов операций умножения и вычитания
2.3. Функциональная схема МУУ
Основная цель МУУ управление вычислительным процессом в блоке операций. Управляющие сигналы формируются комбинационной схемой KS2: их значения зависят от текущего состояния датчика состояния (номер вершины графа), от признаков (знак и анализируемый разряд) с БО, а при выполнении циклических операций состояния счётчика циклов.
Датчик состояний набор из 3 D-триггеров с входом CE, формирующий унитарный код (1 из n). Комбинационная схема KS1 управляет переходом DS в следующее состояние, которое зависит от выполняемой операции, признаков с БО, текущего состояния DS и состояния счётчика.
Счётчика циклов используется только для операции умножения: он обеспечивает циклическую обработку всех 3 разрядов множителя. KS4 формирует единичное сигнал FC при состоянии счётчика равного 2. KS3 разрешает работу счётчика во время операции умножения.
Схема пуска и останова блокирует устройство управления в случае, если никакая операция не выполняется. На входы синхронизации всех элементов непрерывно поступают тактовые импульсы, а значения управляющих сигналов до START и после FINISH считаются неопределёнными, т.е. возможно повреждение информации, хранящейся в регистрах. Чтобы этого не произошло, сигнал EN подаётся на схемы формирования управляющих сигналов и, в случае EN=0, обнуляет их.
Функциональная схема МУУ показана на рис. 2.3.
Рис. 2.3. Функциональная схема местного устройства управления
2.4. Синтез отдельных узлов МУУ
Выполним синтез комбинационных схем, входящих в состав МУУ (табл.2.1). Рассмотрим графы и проанализируем все переходы между вершинами.
Таблица 2.1
Таблица переходов DS
Переход |
COO |
F |
FC |
P0 |
P1 |
P2 |
D0 |
D1 |
D2 |
P0 P1 |
0 |
X |
X |
1 |
0 |
0 |
0 |
1 |
0 |
P1 P2 |
0 |
X |
X |
0 |
1 |
0 |
0 |
0 |
1 |
P0 P1 |
1 |
X |
X |
1 |
0 |
0 |
0 |
1 |
0 |
P1 P1 |
1 |
X |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
P1 P2 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
Примечание: X состояние может быть произвольным.
Левая часть таблицы определяют состояние до перехода, а правая часть сигналы на входах D-триггеров датчика для формирования следующего состояния.
Значение 0 сигнала COO соответствует операции вычитания, 1 умножению.
Логические выражения (функции возбуждения) для сигналов управления триггерами датчика состояний (вырабатываются схемой KS1) имеют вид:
Определим условия, при которых управляющие сигналы принимают единичные значения, и запишем результаты в табл. 2.2. На основе таблицы составим логические выражения для всех управляющих сигналов.
Таблица 2.2
Значения управляющих сигналов на выходах KS2
COO |
P0 |
P1 |
P2 |
0 (вычитание) |
|||
1 (умножение) |
Сигнал Y8 можно подавать при обоих операциях, т.к. начальное значение регистра результата в операции вычитания не важно.
Получим следующие выражения для управляющих сигналов:
Для реализации DS используем D-триггеры. Триггер P0 будет иметь асинхронный вход установки в единицу, все остальные в ноль.
Загрузка нового состояния в триггеры DS будет происходить относительно фронта 0/1 сигнала C.
На вход счётчика циклов будем подавать сигнал CE, формирующийся следующим образом:
2.5. Логическая схема МУУ
Логическая схема местного устройства управления показана на рис. 2.4.
Рис. 2.4. Логическая схема местного устройства управления
3.1. Схема соединения БО и МУУ
Схема соединения БО и МУУ показана на рис. 3.1.
Рис. 3.1. Схема соединения БО и МУУ
3.2. Распечатки результатов размещения схемы АЛУ на кристалле
Для размещения схемы АЛУ на кристалле необходимо задействовать (выбрать «драйверы») все её входы. Последующая отладка схемы будет выполняться с помощью макроэлемента CHECKER, который сам использует несколько конфигурируемых блоков и блоков ввода-вывода; клавишные регистры необходимы для задания операндов.
Размещение схемы АЛУ на кристалле при стандартных настройках реализации показано на рис. 3.2. Было занято 30 из 196 логических блоков (15%), 25 из 61 блоков ввода-вывода (40%). Оптимизировано 16 блоков; 53 блока и 48 соединительных линий удалены в результате оптимизации.
Рис. 3.2. Размещение схемы АЛУ на кристалле
3.3. Распечатки результатов моделирования АЛУ
На рис. 3.3 3.9 приведены результаты моделирования схемы АЛУ при выполнении операций умножения и циклического сдвига вправо для примеров, приведённых в пп. 1.1.
Результат: 00001111
Рис. 3.3. Временные диаграммы работы АЛУ. Операция умножения (пример 1)
2)
Результат: 1110111
Рис. 3.4. Временные диаграммы работы АЛУ. Операция умножения (пример 2)
Результат: 11100111
Рис. 3.5. Временные диаграммы работы АЛУ. Операция умножения (пример 3)
Результат: 0001111
Рис. 3.6. Временные диаграммы работы АЛУ. Операция умножения (пример 4)
Результат: 00101000
Рис. 3.7. Временные диаграммы работы АЛУ. Операция умножения (пример 5)
Результат: 00101000
Рис. 3.8. Временные диаграммы работы АЛУ. Операция умножения (пример 6)
Рис. 3.9. Временные диаграммы работы АЛУ. Операция вычитания
3.4. Определение параметров системы синхронизации и времени
выполнения операций
Рассмотрим отчет формируемый Xilinx для нашей схемы АЛУ. Минимальный расчётный период сигнала С равен 29.200 нс (или что соответствует 34.247 МГц). Проверим эти данные на временном моделировании на 1 примере умножения, т.к. требуется коррекция (т.к. операнд B отрицательный) и его последний разряд равен 1. Результат моделирования схемы на частоте 38.461 МГц показан на рис. 3.10. При увеличении частоты до 38.759 МГц работа схемы нарушается, как показано на рис. 3.11. Для операции вычитания рабочая частота выше и равна 56.818 МГц.
Критическим путем будем называть цепочку переходных процессов из-за которых нарушается нормальная работа схемы. Найдем критический путь для операции умножения. Он проявляется на умножении A=0.010 и B=0.010 на 2 такте во время которого выполняется сложение на сумматоре при частоте 40 МГц. Сообщение о недостаточном времени предварительной установки представлено на рис. 3.12.
Рис. 3.12. Сообщение о недостаточном времени предварительной установки
Это сообщение означает, что регистру результата не хватает времени предварительной установки для того чтобы записать значение на входе Q6. Данный путь представляет собой следующую цепочку переключений: C (синхросигнал) переключается датчик состояний и вырабатывается сигнал Y6 Y6 вместе с Y5 (который не меняется) идут на схему OR2 сигнал с OR2 идет на вход CI сумматора SUM на выходе сумматора меняется значение и регистру результата RR не хватает времени предварительной установки, чтобы записать это значение. Критический путь с измеренными задержками показан на рис. 3.14.
Рис. 3.10. Временное моделирование АЛУ (операция умножения) на частоте 38.461 МГц
Рис. 3.11. Временное моделирование АЛУ (операция умножения) на частоте 38.759 МГц
Рис. 3.14. Диаграмма «критического» пути для операции умножения
4.1. Форматы команд и способы адресации
Команды двухадресные формата «регистр-память». Первый операнд хранится в РП и указывается в команде с помощью прямого адреса. Второй операнд хранится в ОП и указывается в команде с помощью косвенной относительной адресации. Результат длинной операции записывается по адресу 2-го операнда, короткой по адресу 1-го операнда. Каждая команда располагается в 3-х словах.
Прямая адресация:
В данной адресации код адреса в команде является исполнительным адресом обращения к памяти. Схема прямой адресации представлена на рис. 4.1.
Рис. 4.1. Схема прямой адресации
Косвенная относительная адресация:
Адресация, при реализации которой косвенный адрес (адрес по которому находится операнд) вычисляется как сумма фиксированного смещения в команде и текущего значения счетчика команд. Когда выполняется сложение с содержимым счетчика команд, последний уже указывает адрес очередной команды. Схема косвенной относительной адресации представлена на рис. 4.2.
Рис. 4.2. Схема косвенной относительной адресации
Операция условного перехода:
Команда содержит четырехразрядный код маски (КМ) и адрес перехода. Каждый разряд КМ (после первого адреса) соответствует одному из 4-х значений признака результата (ПР): 0,1,2,3. Если значение ПР соответствует КМ (пример: ПР=2 и КМ=XX1X, где X равно 0 или 1), то адрес в счетчике команд замещается адресом перехода. В качестве адреса перехода используется прямой адрес. Команда перехода размещается в 3-х словах.
Форматы команд:
Линейная команда (умножение и вычитание):
11 |
9 |
8 |
5 |
4 |
0 |
|||
КОП |
Р1 |
СМ2 |
||||||
3 |
4 |
5 |
Нелинейные команды:
Условный переход:
11 |
9 |
8 |
5 |
4 |
0 |
|||
КОП |
КМ |
Апер |
||||||
3 |
4 |
5 |
Останов:
11 |
9 |
8 |
0 |
|||||
КОП |
X |
|||||||
3 |
9 |
4.2.Схема алгоритма выполнения команд
Схема алгоритма выполнения команд представлена на рис. 4.3.
4.3. Функциональная схема БУК
Функциональная схема БУК представлена на рис. 4.4.
Счетчик команд 5 разрядный счетчик с загрузкой и сбросом в 0. Выбран 5 разрядным потому что он должен адресовать полубайт в ОП т.к. команда может располагаться как в 1-ом так и во 2-ом полубайте.
Регистр команд (РК1, РК2, РК3) 3 4-ех разрядных регистра. Реализован в виде 3-ех регистров т.к. команда считывается за 3 такта.
ОП память 16х8.
РП память 16х4.
Регистр исполнительного адреса (РИА) 5-разрядный регистр. Выбран 5 разрядным т.к. адрес полубайта кодируется 5 разрядами.
Буферные регистры (БР1, БР2) 2 4-ех разрядных регистра (т.к. разрядность операндов равна 4).
КС1 выбирает старший или младший полубайт из ОП для подачи на РК
КС2 коммутация либо СК, либо РИА на адресные входы ОП
КС3 выбирает старший или младший полубайт из ОП для подачи на БР1
КС4 коммутация либо суммы СК и СМ2 из РК, либо старших 5 разрядов из ОП на РИА
КС5 вырабатывает FP (флаг перехода) при соответствии маски (КМ) признаку результата (ПР)
4.3. Логическая схема БУК
Логическая схема БУК представлена на рис. 4.5. Реализация элементов и КС представлена там же.
Рис. 4.3. Схема алгоритма выполнения команд
Рис 4.4. Функциональная схема БУК
Рис 4.5. Логическая схема БУК
4.5. Условное графическое обозначение БУК
Условное графическое обозначение БУК приведено на рис. 4.6.
Рис 4.6. Условное графическое обозначение БУК
4.6. Таблица управляющих сигналов и сигналов-признаков
В табл. 4.1 и 4.2 дается описание управляющих сигналов и возможных микроопераций.
Таблица 1.2
Управляющие сигналы
Y |
Описание |
YC1 |
Увеличение счетчика команд на 1 |
YC2 |
Разрешение записи в счетчик команд |
YC3 |
Разрешение записи в регистр RK1 |
YC4 |
Разрешение записи в регистр RK2 |
YC5 |
Разрешение записи в регистр RK3 |
YC6 |
0 передача СК на адресные входы ОП 1 передача РИА на адресные входы ОП |
YC7 |
Разрешение записи в ОП |
YC8 |
Разрешение записи в РИА |
YC9 |
Разрешение записи в РП |
YC10 |
Разрешение записи в Р2 |
YC11 |
Разрешение записи в Р1 |
YC12 |
0 передача суммы СК и СМ2 на РИА 1 передача ОП на РИА |
Таблица 1.3
Сигналы обратной связи и сигналы признаков
F |
Описание |
RK10,RK9 |
00 вычитание 01 умножение 10 условный переход 11 останов |
FP |
0 условие перехода не удовлетворяет маске 1 условие перехода удовлетворяет маске |
4.7. Схема алгоритма микропрограмм выполнения команд
Схема алгоритма микропрограмм выполнения команд представлена на рис. 4.7.
Рис 4.7. Схема алгоритма микропрограмм выполнения команд
4.8. Тесты для отработки БУК
Требования к тестовой программе:
1) Она должна пройти по всем веткам алгоритма
2) Она должна извлекать операнды как в 0 так и в 1 полубайте
3) Она должна выполнять проверку записи результата
4) Она должна извлекать команды начало которых находится как в 0 так и в 1 полубайте
Схема тестовой программы:
Схема тестовой программы представлена на рис. 4.8.
Рис. 4.8. Схема тестовой программы
Выбор операндов:
Умножение:
А=1.011
В=1.000
R=00101000
Вычитание:
А=0.010 (1-ый полубайт результата умножения)
B=0.010
R=0.000 ПР=0
А=0.000 (результат предыдущей операции вычитания)
B=0.010
R=1.110 ПР=1
Маска перехода:
КМ=1000
Описание:
Первой операцией выполняется умножение для того чтобы можно было проверить правильность записи результата. В качестве операндов выбраны операнды из тестового примера №5. Затем выполняется операция вычитания 1-ым операндом которого является первый полубайт результата умножения. Признак результата этой операции равен 0, результат записывается по адресу первого операнда. Далее выполняется операция условного перехода с маской КМ=1000. т.к. ПР=0 удовлетворяет маске перехода выполняется переход на операцию вычитания. 1-ым операндом является результат предыдущей операции вычитания, а второй операнд остается таким же. Признак результата этой операции равен 1. Далее выполняется операция условного перехода. Условный переход не происходит т.к. ПР=1 не удовлетворяет маске перехода. После этого выполняется операция останова. Команды располагаются в ОП памяти друг за другом, что обеспечивает проверку правильности считывания команды. 1-ый операнд умножения располагается во 2-ом полубайте, а 1-ый операнд вычитания в 1-ом полубайте это обеспечивает проверку правильности извлечения операндов.
4.9. Таблицы загрузки оперативной и регистровой памяти
В табл. 4.3 и 4.4 представлены таблицы загрузки оперативной и регистровой памяти.
4.10. Распечатки результатов моделирования БУК
На рис. 4.9 представлены результаты моделирования БУК.
Таблица 4.3
Таблица загрузки оперативной памяти
Физический адрес |
Содержание |
Пояснение |
|
старшие |
младшие |
||
0 |
0010 |
0100 |
умножение |
1 |
1101 |
0000 |
умножение/вычитание |
2 |
1000 |
1110 |
вычитание |
3 |
0101 |
0000 |
условный переход |
4 |
0011 |
0110 |
условный переход/останов |
5 |
0000 |
0000 |
останов |
6 |
0000 |
0000 |
|
7 |
0000 |
0000 |
|
8 |
1001 |
1000 |
адрес 2-го операнда умножения |
9 |
0000 |
1000 |
2-ой операнд умножения (результат умножения) |
10 |
1001 |
0000 |
адрес 2-го операнда вычитания |
11 |
0000 |
0000 |
|
12 |
0000 |
0000 |
|
13 |
0000 |
0000 |
|
14 |
0000 |
0000 |
|
15 |
0000 |
0000 |
Таблица 4.4
Таблица загрузки регистровой памяти
Физический адрес |
Содержание |
Пояснение |
0 |
0000 |
|
1 |
0000 |
|
2 |
1011 |
1-ый операнд умножения |
3 |
0000 |
|
4 |
0110 |
1-ый операнд вычитания (результат вычитания) |
5 |
0000 |
|
6 |
0000 |
|
7 |
0000 |
|
8 |
0000 |
|
9 |
0000 |
|
10 |
0000 |
|
11 |
0000 |
|
12 |
0000 |
|
13 |
0000 |
|
14 |
0000 |
|
15 |
0000 |
5.1. Условное графическое обозначение БМК
Условное графическое обозначение БМК приведено на рис. 5.1.
Рис. 5.1. Условное графическое обозначение БМК
5.2. Формат микрокоманды
Для данного БМК был выбран естественный порядок выполнения микрокоманд (МК). В операционной МК был выбран способ горизонтального кодирования, при котором в каждом разряде записывается значение управляющего сигнала, вырабатываемого в данной команде. Разрядность операционной МК определяется количество управляющих сигналов (12), включая сигнал SNO плюс поле признака МК. Итого 14 разрядов.
Разрядность управляющей МК определяется количеством сигналов признаков + безусловный переход и поле признака МК и разрядностью адреса микрокоманды. Под адрес было выделено 5 разрядов, т.к. количество микрокоманд равно 17. Итого 10 разрядов.
Следовательно разрядность микрокоманды будет определятся операционной МК т.к. у нее больше разрядов. Форматы микрокоманд представлены ниже.
Операционная микрокоманда:
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Р=0 |
SNO |
YC12 |
YC11 |
YC10 |
YC9 |
YC8 |
YC7 |
YC6 |
YC5 |
YC4 |
YC3 |
YC2 |
YC1 |
Управляющая микрокоманда:
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Р=1 |
X |
БП |
FP |
RK10 |
RK9 |
А след. микрокоманды |
5.3. Функциональная схема микропрограммного устройства управления
Функциональная схема микропрограммного устройства управления представлена на рис. 5.2.
Счетчик микрокоманд 5-разрядный счетчик с загрузкой и сбросом в 0. Выбран 5-разрядным т.к. должен адресовать все ячейки ПЗУ.
Постоянное запоминающее устройство (ПЗУ) память 32х14. Выбрана такой организации для того чтобы туда вместились все микрокоманды.
Схема пуска останова (СПО) вырабатывает сигнал разрешения работы схемы.
КС1 вырабатывает сигнал разрешения загрузки.
КС2 вырабатывает сигнал для СПО.
КС3 вырабатывает управляющие сигналы.
5.4. Логическая схема микропрограммного устройства управления
Логическая схема микропрограммного устройства управления представлена на рис. 5.3. Реализация всех элементов и КС представлена там же.
5.5. Карта загрузки микропрограммного устройства управления
В табл. 5.1 приведена карта загрузки ПЗУ микропрограммного устройства управления.
Рис. 5.2. Функциональная схема микропрограммного устройства управления
Рис. 5.3. Логическая схема микропрограммного устройства управления
Карта загрузки микропрограммного устройства управления
Таблица 5.1
Адрес |
P=1 |
X |
X |
X |
X |
БП |
FP |
RK10 |
RK9 |
A4 |
A3 |
A2 |
A1 |
A0 |
УМК |
P=0 |
SNO |
YS12 |
YS11 |
YS10 |
YS9 |
YS8 |
YS7 |
YS6 |
YS5 |
YS4 |
YS3 |
YS2 |
YS1 |
ОМК |
|
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Комментарий |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
РК1:=(СК) СК:=СК+1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
РК2:=(СК) СК:=СК+1 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
РК3:=(СК) СК:=СК+1 |
3 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Переход на нелинейную команду |
4 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
БР1:=(Р1) РИА:=СК+СМ2 |
5 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
РИА:=(РИА) |
6 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
БР2:=(РИА) начало выполнение в АЛУ |
7 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
Переход на запись результата для операции умножения |
8 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Запись результата в РП |
9 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
БП на начало цикла |
10 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
Запись результата в ОП |
11 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
БП на начало цикла |
12 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
Переход на останов |
13 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Условный переход |
14 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
БП на начало цикла |
15 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
СК:=Апер |
16 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
БП на начало цикло |
6.1. Схема соединения составных блоков процессора
Схема соединения составных блоков процессора представлена на рис. 6.1.
Рис. 6.1. Схема соединения составных блоков процессора
6.2. Тесты для отработки процессора
В качестве теста для отработки процессора была взята тестовая программа, рассмотренная в БУК. Схема данной программы представлена на рис. 4.8. Подробное описание хода выполнения программы представлено в п. 4.8 (см. с. 58).
6.3. Распечатки результатов размещения схемы процессора на кристалле
Результат размещения схемы процессора на кристалле представлен на рис. 6.2.
Рис.6.2. Результат размещения схемы процессора на кристалле
Схема на кристалле занимает 7300 путей, 224 цепи и 846 соединений (100% покрытие).
Путь соединенная последовательность цепей и логических элементов. Путь имеет начальную и конечную точки, которые по-разному зависят от типа пути.
Цепь 1) логическое соединение двух или более контактов элементов.
2) электрическое соединение между компонентами или цепями.
Минимальный период: 52.517 нс.
Максимальная частота: 19.041 МГц.
Протокол размещения процессора на кристалле приведен в листинге 6.1.
Листинг 6.1. Протокол размещения процессора на кристалле
Design Summary:
---------------
Number of errors: 0
Number of warnings: 3
Number of CLBs: 104 out of 196 53%
CLB Flip Flops: 74
4 input LUTs: 155 (8 used as route-throughs)
3 input LUTs: 29 (4 used as route-throughs)
32X1 ROMs: 14
16X1 RAMs: 12
Number of bonded IOBs: 20 out of 61 32%
IOB Flops: 0
IOB Latches: 0
Number of secondary CLKs: 1 out of 4 25%
Number of RPM macros: 1
Total equivalent gate count for design: 4131
Additional JTAG gate count for IOBs: 960
Timing summary:
---------------
Timing errors: 0 Score: 0
Constraints cover 7300 paths, 224 nets, and 846 connections (100.0% coverage)
Design statistics:
Minimum period: 52.517ns (Maximum frequency: 19.041MHz)
Maximum combinational path delay: 61.568ns
Maximum net delay: 13.043ns
6.4. Распечатки результатов моделирования процессора
Распечатки результатов моделирования процессора представлены на рис. 6.3.
В результате выполнения технического задания сделано следующее:
Результаты моделирования процессора:
Предельная частота работы процессора равна 19.041МГц
Операция умножения выполняется за Nmax = 16 тактов (T = 842 нс)
Операция вычитания за 13 тактов (T = 684 нс)
Операция условного перехода за 8 тактов (T = 421 нс)
Техническое задание на проектирование процессора полностью выполнено.