Проектирование процессорного модуля
Рассмотрение общих вопросов функционирования операционных автоматов. Изучение схемы и принципов работы устройств управления с программируемой логикой. Проектирование и тестирование операционного устройства и управляющего автомата процессорного модуля.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.06.2011 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ПЕРЕЧЕНЬ УСЛОВНЫХ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ
ОА - операционный автомат
УА - управляющий автомат
УУ - устройство управления
ГСА - граф-схема алгоритма
Р-автомат - управляющий автомат в программируемой логикой
ВВЕДЕНИЕ
Высокий уровень внедрения компьютерных систем в жизнь человека требует от специалистов по компьютерной технике все больше практических знаний и умений в построении сложных компьютерных систем.
В современном мире информации становится все больше: контент производится пользователями компьютеров ежесекундно и в огромном количестве. Вместе с количеством информации растет и ее ценность. Соответственно, человечеству необходимо все больше устройств обработки информации, выполняющих разнообразные задачи и имеющих следующие характеристики: высокую отказоустойчивость, надежность, производительность.
Очевидно, что задача обработки информации является комплексной и может быть разбита на несколько подзадач: организация именно обработки информации, повышение надежности системы, улучшение функциональных характеристик. Все эти задачи обуславливают потребность в профессиональных инженерах, которые будут заниматься проектированием электронных систем, выполняющих обработку инфорамции.
Обработка информации - очень обобщенный термин, который включает в себя множество всевозможных операций. Совокупность многих операций и закон их последовательного выполнения могут быть описаны граф-схемой алгоритма (ГСА), в которой присутствуют операторные (изменение информации) и условные вершины (реализация ветвлений алгоритма).
В процессе выполнения данного курсового проекта будет осуществлено проектирование процессорного модуля - независимого устройства, которое может выполнять два заданных действия над операндами. Результатом проекта будет схема устройства, отвечающего требованиям к системам обработки информации.
1. АНАЛИЗ ЗАДАНИЯ
Электронная система, реализующая сложный алгоритм обработки данных, может быть условно разделена на две функционально связанные подсистемы - управляющий и операционный автомат. Взаимодействие двух этих подсистем приведено на рис. 1.1.
Рисунок 1.1 - Декомпозиция электронной системы на операционный и управляющий автомат
Управляющий автомат определяет порядок реализации вычислительных операций и отображает граф-схему функционирования электронной системы. Входной информацией для управляющего автомата является множество осведомительных сигналов {X} и множество внешних флагов ветвления {F}, результатом функционирования - множество признаков выполняемых микроопераций {Y}.
Операционный автомат осуществляют вычислительные действия над операндами. Структурно операционный автомат состоит из элементов памяти (регистров), осуществляющих хранение значений операндов, и комбинационных схем, отвечающих за выполнение микроопераций. Входной информацией для операционного автомата являются линии данных {D} и множество выполняемых в данном такте микроопераций {Y}, выходами являются линии результата {R} и выработанные признаки результата {X}, используемые в управляющем автомате.
Согласно полученного задания необходимо реализовать процессорный модуль, выполняющий алгоритмы следующих действий: умножение целых двоичных беззнаковых чисел, начиная с младших разрядов множителя, преобразование двоично-десятичного числа в двоичное.
На рисунках 1.2 и 1.3 приведены ГСА действий, которые должен выполнять проектируемый процессорный модуль. Микрооперации в операционных вершинах ГСА изменены таким образом, чтобы необходимые действия выполнялись над операндами заданной разрядности (n = 8 бит).
Для выполнения поставленной задачи необходимо объединить две ГСА, т.к. проектируемый процессорный модуль должен выполнять две операции. Для выбора одной из операций в объединенную ГСА, которая изображена на рисунке 1.4 добавлена условная вершина, проверяющего состояние регистра COP (code of operation). Данные в СОР являются, как и операнды, входной информацией для проектируемого процессорного модуля.
Таким образом, при проектировании процессорного модуля необходимо использовать объединенную ГСА, описывающую алгоритмы выполнения предусмотренных действий. Процессорный модуль будет логически разбит на две подсистемы - ОА и УА, которые будут проектироваться как независимые устройства.
Размещено на http://www.allbest.ru/
Рисунок 1.2 ГСА Умножение целых двоичных беззнаковых чисел, начиная с младших разрядов множителя
Размещено на http://www.allbest.ru/
Рисунок 1.3 ГСА деление целых двоичных беззнаковых чисел без восстановления остатка
Рисунок 1.4 Объединенная ГСА
2. ПРОЕКТИРОВАНИЕ ОПЕРАЦИОННОГО АВТОМАТА
2.1 Общие вопросы функционирования операционных атоматов
Функции ОА сводятся к вводу-выводу и хранению слов информации, выполнению микроопераций и вычислению логических условий. Чтобы реализовать эти действия, необходим набор элементов, достаточный для построения структур с заданными функциями. Такой набор элементов называется структурным базисом ОА.
Основными операционными элементами, используемыми в ОА, являются:
- управляемые шины, обеспечивающие передачу информации;
- регистры;
- комбинационные схемы, используемые для выполнения преобразований и формирования логических условий.
В общем виде структура ОА представлена на рисунке 2.1, где Ф - комбинационные схемы, выполняющие преобразование, S - память, Ш - комбинационные схемы, формирующие осведомительные сигналы.
Рисунок 2.1 - Общая структура ОА
2.2 Структурная организация М-автоматов
Согласно заданию, ОА для проектируемого процессорного модуля должен быть типа М. М-автоматом называется такой ОА, который синтезируется на основе принципа обобщения комбинационных схем, используемых для выполнения всех микроопераций. М-автомат имеет наименьшие аппаратные затраты, однако недостатком М-автомата является то, что он не может выполнять больше одной микрооперации преобразования за один такт работы. Следовательно, производительность М-автомата невысока.
Принцип обобщения комбинационных схем обуславливает структуру автомата, представленную на рисунке 2.2.
Рисунок 2.2 - Обобщенная структура ОА типа М
В такой структуре микрооперации, связанной с преобразованием yp: Sk: = цm (Si,Sj), ставится в соответствие следующий набор операторов:
ai: A1:=Si;
bi: A2:=Sj;
цm: z:= цm (A1,A2);
dk: Sk: =z;
yp= {ai, bi, цm, dk}.
2.3 Проектирование М-автомата
Разработка структуры М-автомата подразумевает выполнение следующих этапов:
1. Для автомата выберем регистры, которые будут хранить результаты микроопераций:
A(16 :0), B(8 : 0), C(7 : 0), CnT(3 :0), COP.
2. Распределим регистры по двум шинам А1 и А2:
Arg1 = {A,B}, Arg1(16 : 0);
Arg2 = { B,С}, Arg2(8 : 0).
3. Определим микрооперации, выполняемые М-автоматом:
Таблица 2.1 - Операции для М-автомата
Y |
Микрооперация |
Arg1 |
Arg2 |
Z |
Результат |
|
y1 |
COP:=D3 |
- |
- |
COP:=D3 |
||
y2 |
A(7:0):=D1 |
- |
- |
A:=D1 |
||
y3 |
B(7:0):=D2 |
- |
- |
B:=D2 |
||
y4 |
C(7:0):=0 |
- |
- |
C:=0 |
||
y5 |
CnT(3:0):=8 |
- |
- |
CnT:=8 |
||
y6 |
C(7:0):=C(7:0)+A(7:0) |
A |
C |
Z=Arg2(7:0)+Arg1(7:0) |
C:=Z |
|
y7 |
B(7:0):=R1(C(0).B(7:1)) |
B |
C |
Z=R1(Arg2(0).Arg1(7:1)) |
B:=Z |
|
y8 |
C(7:0):=R1(CF.C(7:1)) |
- |
C |
Z=R1(CF.Arg2(7:1)) |
C:=Z |
|
y9 |
CnT:=CnT-1 |
- |
- |
CnT:=CnT-1 |
||
y10 |
R(15:0):=C(7:0).B(7:0) |
- |
- |
R:=C |
||
y11 |
A(16:0):=0.D1(15:0) |
- |
- |
A:=D1 |
||
y12 |
B(8:0):=0.D2(7:0) |
- |
- |
B:=D2 |
||
y13 |
A(16:8):=A(16:8)++1 |
A |
B |
Z=Arg1(16:8)++1 |
A:=Z |
|
Y14 |
TgA:=A(16) |
- |
- |
TgA:=A |
||
y15 |
A(16:0):=L1(A(15:0).0) |
A |
- |
Z=L1(Arg1(15:0).0) |
A:=Z |
|
y16 |
IRQ1:=1 |
- |
- |
IRQ1:=1 |
||
y17 |
IRQ2:=1 |
- |
- |
IRQ2:=1 |
||
y18 |
A(16:8):=A(16:8)+B(8:0) |
A |
B |
Z=Arg1(16:8)+Arg2(8:0) |
A:=Z |
|
y19 |
C(7:0):=L1(C(6:0).) |
A |
C |
Z=L1(Arg2(6:0). |
C:=Z |
|
y20 |
R1(7:0):=C(7:0) |
- |
- |
R1:=C |
||
y21 |
R2(7:0):=A(15:8) |
- |
- |
R2:=A |
4. Выделим классы эквивалентных микроопераций и найдем для них обобщенные микрооператоры:
5. Построим схему М-автомата уровня регистровых передач:
Рисунок 2.3 - Схема М-автомата уровня регистровых передач
3. ПРОЕКТИРОВАНИЕ УПРАВЛЯЮЩЕГО АВТОМАТА
3.1 Общие вопросы функционирования устройств управления с программируемой логикой (Р-автоматы)
Под УУ понимается совокупность блоков и узлов процессора, обеспечивающих координированные работы всех устройств ЭВМ и управление ими для всех принятых режимов. УУ, реализуя программы, организовывают все необходимые действия по приёму, оценке и преобразованию исходной информации с целью получения и выдачи необходимых результатов. Т. о. УУ может считаться преобразованием первично-командной информации, представленной командами системы, во вторично-командную информацию, представленную формируемыми УУ, исполнительными адресами, кодами и управляющего сигнала, воздействие которых на соответствующие узлы и блоки приводит к выполнению заданных операций. Управляющий автомат может быть построен на основе принципа программного управления, использующего операционно-адресную структуру управляющих слов. Управляющее слово определяет порядок функционирования устройства в течение одного такта и называется микрокомандой. Совокупность микрокоманд образует массив МК[0…P], отдельные микрокоманды в котором выделяются посредством адреса, равного номеру 0, 1, … Р элемента массива МК. Микрокоманда содержит информацию о микрооперациях, которые должны выполняться в данном такте работы устройства, и информацию об адресе следующей микрокоманды. Также в микрокоманде должны быть указаны логические условия, значение которых влияет на выбор адреса следующей микрокоманды. Согласно задания, необходимо спроектировать Р-автомат с принудительной адресацией и сокращенным форматом микрокоманды. В таком случае, для формирования адреса следующей микрокоманды отводится единственное поле B. Если поле Х = 0, то значение B, безусловно, определяет адрес следующей микрокоманды. Если Х 0, то адрес следующей микрокоманды равен (В+хХ), где хХ - значение логического условия с номером Х. В результате этого реализуется условный переход: если хХ=0, то к микрокоманде с номером В, если хХ=1, то к микрокоманде с адресом (В+1). Указанный порядок формирования адресов реализуется схемой на рисунке 3.1. Исполнительный адрес Вi+1=Вi+ хХ формируется сумматором.
Рисунок 3.1 - Структурная схема УА с принудительной адресацией и сокращенным форматом микрокоманды
3.2 Уточненная граф-схема алгоритма
Для проектирования управляющего автомата необходимо использовать уточненную ГСА, которая учитывает тип операционного автомата.
Преобразование объединенной ГСА в уточненную включает следующие действия:
1. замена микроопераций их условными обозначениями yi;
2. разделение операционных вершин с n микрооперациями преобразования на n операционных вершин, т.к. ОА типа М не может выполнять больше одной микрооперации преобразования за один такт работы;
3. разметка состояний управляющего автомата по правилам:
- состояние, следующее за условной вершиной при равенстве xj = 0, должно иметь метку Ai (i-ый номер);
- состояние, следующее за условной вершиной при равенстве xj = 1, должно иметь метку Ai+1((i+1)-ый номер).
Рисунок 3.2 - Уточненная (размеченная) ГСА
3.3 Проектирование управляющего автомата с принудительной адресацией с сокращенным форматом микрокоманды
Разработка структуры УА подразумевает выполнение следующих этапов:
1. Опеределение формата микрокоманды:
Y1 |
… |
YV |
X |
В |
Рисунок 3.3 - Формат микрокоманды
2. Строится матрица совместимости:
Таблица 3.1 - матрица совместимости микроопераций S
y/y |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
|
1 |
||||||||||||||||||||||
2 |
1 |
1 |
1 |
|||||||||||||||||||
3 |
1 |
1 |
1 |
|||||||||||||||||||
4 |
1 |
1 |
1 |
1 |
1 |
|||||||||||||||||
5 |
1 |
1 |
1 |
1 |
1 |
|||||||||||||||||
6 |
||||||||||||||||||||||
7 |
1 |
1 |
||||||||||||||||||||
8 |
1 |
1 |
||||||||||||||||||||
9 |
1 |
1 |
1 |
1 |
||||||||||||||||||
10 |
||||||||||||||||||||||
11 |
1 |
|||||||||||||||||||||
12 |
1 |
|||||||||||||||||||||
13 |
||||||||||||||||||||||
14 |
1 |
1 |
1 |
1 |
1 |
|||||||||||||||||
15 |
1 |
1 |
1 |
|||||||||||||||||||
16 |
||||||||||||||||||||||
17 |
||||||||||||||||||||||
18 |
||||||||||||||||||||||
19 |
1 |
1 |
||||||||||||||||||||
20 |
1 |
|||||||||||||||||||||
21 |
1 |
Далее необходимо выписать функции матрицы включения:
1) S1?Y1=O, y1 € Y1
2)S2?Y1=O, y2 € Y1
3)S3?Y1=y2, S3?Y2=O, y3 € Y2
4)S4?Y1=y2, S4?Y2=y3, S4?Y3=O, y4 € Y3
5)S5?Y1=y2, S5?Y2=y3, S5?Y3=y4, S5?Y4=O, y5 € Y4
6)S6?Y1=O, y6 € Y1
7) S7?Y1=O, y7 € Y1
8) S8?Y1=y7, S8?Y2=O, y8 € Y2
9) S9?Y1=y7, S9?Y2=y8, S9?Y3=O, y9 € Y3
10)S10?Y1=O, y10 € Y1
11)S11?Y1=O, y11 € Y1
12) S12?Y1=y11, S12?Y2=O, y12 € Y2
13) S13?Y1=O, y13 € Y1
14) S14?Y1=O, y14 € Y1
15) S15?Y1=y14, S15?Y2=O, y15 € Y2
16) S16?Y1=O, y16 € Y1
17) S17?Y1=O, y17 € Y1
18) S18?Y1=O, y18 € Y1
19) S19?Y1=y14, S19?Y2=O, y19 € Y2
20) S20?Y1=O, y20 € Y1
21) S21?Y1=y20, S21?Y2=O, y21 € Y2
Таким образом подмножества непересекающихся микроопераций будут следующими:
Y1 = {y1,y2,y6,y7,y10,y11,y13,y14,y16,y17,y18,y20};
Y2 = {y3,y8,y12,y15,y19,y21};
Y3 = {y4,y9};
Y4 = {y5}.
Получим матрицу включений R для полученных подмножеств микроопераций:
Таблица 3.2 - Матрица включений R
Y\y |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
|
Y1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
Y2 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
|
Y3 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Y4 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Количество бит, необходимое для кодирования управляющих сигналов {yi} для каждого подмножества Yj будет составлять (с учетом состояни, при котором не должна выполняться ни одна операция из подмножества):
nY1 = 4;nY2 = 3;nY3 = 2;nY4 = 1;
nОЧ = 4 + 3 + 2 + 1 = 10.
3. Определим формат адресной части микрокоманды.
Количество бит, необходимое для кодирования адреса команды:
nB=]log2NB[=]log218[=5
Количество бит, необходимое для кодирования всех логических условий:
nx =]log2NX[=]log26[=3
Таким образом, длина адресной части микрокоманды:
nАЧ = 3 + 5 = 8.
Определим размер всей микрокоманды:
nМК = 10 + 8 = 18.
4. Составим кодированную программу функционирования Р-автомата
Таблица 3.3 Кодированная программа функционирования Р-автомата
адрес |
Y |
X |
A1 |
|
a0 |
y1 |
x1 |
a1 |
|
a1 |
y2,y3,y4,y5 |
a2 |
||
a2 |
x2 |
a3 |
||
a3 |
y6 |
a4 |
||
a4 |
y7,y8,y9 |
x3 |
a5 |
|
a5 |
y10 |
a0 |
||
a6 |
y11,y12 |
x2 |
a8 |
|
a7 |
y13 |
x4 |
a9 |
|
a8 |
y16 |
a0 |
||
a9 |
y14,y15,y4,y5 |
x5 |
a12 |
|
a10 |
y17 |
a0 |
||
a11 |
y13 |
a13 |
||
a12 |
y18 |
a13 |
||
a13 |
y14,y19, y9 |
x3 |
a15 |
|
a14 |
y15 |
x5 |
a12 |
|
a15 |
x5 |
a16 |
||
a16 |
y18 |
a17 |
||
a17 |
y20,y21 |
a0 |
5. Составим карты программирования памяти в соответствии с кодами выполняемых микроопераций и проверяемых логических условий:
Таблица 3.4 - Коды микроопераций подмножества Y1
Y1 |
y1 |
y2 |
y6 |
y7 |
y10 |
y11 |
y13 |
y14 |
y16 |
y17 |
y18 |
y20 |
|
K(Y1) |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
Таблица 3.5 - Коды микроопераций подмножества Y2
Y2 |
y3 |
y8 |
y12 |
y15 |
y19 |
y21 |
|
K(Y2) |
001 |
010 |
011 |
100 |
101 |
110 |
Таблица 3.6 - Коды микроопераций подмножества Y3
Y3 |
y4 |
y9 |
|
K(Y3) |
01 |
10 |
Таблица 3.7 - Коды микроопераций подмножества Y4
Y4 |
y5 |
|
K(Y4) |
1 |
Таблица 3.8 - Коды логических условий Х
X |
x1 |
x2 |
x3 |
x4 |
x5 |
|
K(X) |
001 |
010 |
011 |
100 |
101 |
Согласно кодам микроопераций и логических условий и кодированной микропрограмме составим матрицу программирования памяти:
Таблица 3.9 - Матрица программирования памяти
№ |
Адрес |
Y1 |
Y2 |
Y3 |
Y1 |
X |
A |
|||||||||||||
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||
0 |
00000 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
|
1 |
00001 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
2 |
00010 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
|
3 |
00011 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
4 |
00100 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
|
5 |
00101 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
6 |
00110 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
|
7 |
00111 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
8 |
01000 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
9 |
01001 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
10 |
01010 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
11 |
01011 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
|
12 |
01100 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
|
13 |
01101 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
|
14 |
01110 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
15 |
01111 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|
16 |
10000 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
17 |
10001 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
6. Построим схему УА уровня регистровых передач:
Согласно обобщенной структуре управляющего автомата для построения схемы используются следующие элементы:
- Т-триггер для разрешения чтения из постоянного запоминающего устройства PROM;
- DC - декодирующее устройство, преобразующее позиционный двоичный код;
- MX - мультиплексор, выбирающий одно из проверяемых логических условий;
- PROM - постоянное запоминающее устройство, которое хранит набор выполняемых команд;
- регистр RG, хранящий текущую микрооперацию;
- SM - сумматор, формирующий адрес следующей команды.
Рисунок 3.3 - Схема УА уровня регистровых передач
4. ПРОЕКТИРОВАНИЕ ПРОЦЕССОРНОГО МОДУЛЯ
Согласно декомпозиции процессорного модуля, представленной на рисунке 1.1, проектирование заключалось в выполнении двух этапов: проектирование операционного устройства и управляющего автомата.
Очевидно, что полученный процессорный модуль является соединением двух отедльных устройств - ОА и УА. На входы всего процессорного модуля подаются операнды (D1, D2), условие выбора операции (СОР или D3) и управляющие сигналы (Clk, Start, Stop, Reset). Внутреннее взаимодействие между ОА и УА заключается во взаимопередаче сигналов: ОА генерирует значения вычисленных логических условий {X} на каждом такте, УА формирует сигналы выполнения необходимых на данном такте микроопераций {Y}. Также операционное устройство формирует результат выполнения заданного значением регистра СОР действия, который подается на выходную шину R.
Помимо схем ОА и УА уровня регистровых передач результатом выполнения курсового проекта являются тексты VHDL-моделей управляющего устройства, операционного автомата и процессорного модуля. VHDL-модель процессорного модуля включает в себя в качестве компонентов модели ОА и УА.
Стоит отметить, что при проектировании VHDL - модели процессорного модуля сигнал синхронизации Clk подавался УА и ОА в противофазе, т.к. это обеспечивает согласованную работу обоих устройств. В другом случае могли иметь место конфликты между компонентами.
5. АНАЛИЗ РЕЗУЛЬТАТОВ СИНТЕЗА
В результате автоматизированного синтеза были получены модели операционного автомата, управляющего устройства и всего процессорного модуля. Оценить работу разработанных компонентов можно с помощью полученных временных диаграмм, построенных в среде проектирования.
5.1 Тестирование VHDL-модели операционного устройства
После разработки VHDL-модели ОА была получена временная диаграмма работы устройства, представленная на рисунке 5.1.
Рисунок 5.1 - Временная диаграмма работы VHDL-модели ОА
Моделирование работы ОА осуществлялось при подаче на входы устройства входных данных (d1, d2, d3), текущей микрокоманды и сигналов синхронизации (clk) и асинхронного сброса (rst). В результате моделирования и отладки был сделан вывод о соответствии работы устройства требованиям к ОА. (Текст VHDL-модели операционного автомата - в приложении 1).
5.2 Тестирование VHDL-модели управляющего устройства
После разработки VHDL-модели УА была получена временная диаграмма работы устройства, представленная на рисунке 5.2.
Рисунок 5.2 - Временная диаграмма работы VHDL-модели УА
Для моделирования работы управляющего устройства на входы устройства были поданы сигналы синхронизации (clk) и асинхронного сброса (rst) а также значения вычисленных операционным автоматом логических условий. (Текст VHDL-модели управляющего автомата - в приложении 2).
Особенностью VHDL-модели является то, что для реализации преобразования кодов логических условий и микроопераций из команд в унарные коды использовалась функция conv_integer(). Т.к. при нулевых значения векторов функция возвращает 0, пришлось ввести дополнительный нулевой бит во входной вектор логических условий и выходной вектор микроопераций.
Моделирование работы устройства осуществлялось по стратегии обхода всех дуг. В результате моделирования был сделан вывод о работоспособности модели, т.к. во всех состояниях УА в качестве выходного вектора подавались сигналы микроопераций, соответствующие отмеченным в уточненной ГСА.
5.3 Тестирование VHDL-модели процессорного модуля
После разработки VHDL-модели УА были получены временные диаграммы выполнения двух действий, представленные на рисунках 5.3 и 5.4. Для моделирования на входы модели процессорного модуля были поданы данные для выполняемого действия (d1,d2 - операнды; d3 - код выполняемой операции). Результат выполнения операции был получен на выходной шине r.
Рисунок 5.3 - Временная диграмма работы прцессорного модуля: выполнение операции умножения целых беззнаковых чисел
ВЫВОДЫ
Результатом выполнения курсового проекта является процессорный модуль, состоящий из операционного М-автомата и управляющего автомата с принудительной адресацией с сокращенным форматом микрокоманд, и выполняющий действия, согласно заданию: умножение целых беззнаковых чисел и преобразование двоично-десятичного числа в двоичное.
Исходными данными к проектированию были граф-схемы алгоритмов заданных действий, типы ОА и УА и разрядность операндов.
При выполнении курсового проекта были получены знания по организации и функционированию сложных цифровых систем обработки информации, получены практические навыки по проектированию процессорного модуля с использованием языка VHDL.
В соответствии с заданием к проекту был спроектирован процессорный модуль, выполняющий заданные действия. Полученный процессорный модуль состоит из двух устройств: операционного и управляющего автоматов. Проектирование каждого из устройств проводилось отдельно в соответствии с заданием. Спроектирован ОА типа М; УА является устройством с программируемой логикой и сокращенным форматом микрокоманды. операционный автомат логика процессорный
В результате анализа автоматизированного синтеза устройств можно сделать вывод о правильном и полном выполнении задания к курсовому проектированию, т.к. разработанный процессорный модуль правильно выполняет предусмотренные заданием действия.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Кораблев Н.М. - Конспект лекций по дисциплине "Компьютерная схемотехника" - Харьков, 2010 г.
2. Кораблев Н.М., Саранча С.Н., Саранча О.Н. - Методические указания к лабораторным работам по дисциплине "Компьютерная схемотехника": Часть 2 "Проектирование сложных систем" - Харьков: ХНУРЭ, 2006 г.
3. Бибило П.Н. Синтез логических схем с использованием языка VHDL.- М.: СЛОН-Р, 2002.- 384 с.
4. http://window.edu.ru/
5. http://vhdl-1.ru/
6. http://www.bsuir.by/vhdl/index.php?section=main
ПРИЛОЖЕНИЕ 1
VHDL-модель операционного автомата
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
entity OA_M is
port(
clk,rst : in STD_LOGIC;
y : in STD_LOGIC_VECTOR(21 downto 0);
d1 : in STD_LOGIC_VECTOR(16 downto 0);
d2 : in STD_LOGIC_VECTOR(8 downto 0);
d3 : in STD_LOGIC;
r: out STD_LOGIC_VECTOR(15 downto 0);
x: out STD_LOGIC_VECTOR(5 downto 0));
end OA_M;
architecture OA_M of OA_M is
signal A,Arg1,Rez: STD_LOGIC_VECTOR(16 downto 0);
signal B,Arg2,CF: STD_LOGIC_VECTOR(8 downto 0);
signal C: STD_LOGIC_VECTOR(7 downto 0);
signal Cnt: INTEGER;
signal COP,TgA,IRQ1,IRQ2: STD_LOGIC;
begin
process(clk,rst)is
begin
if rst='0' then
A<=(others=>'0');
B<=(others=>'0');
C<=(others=>'0');
Cnt<=0;
COP<='0';
TgA<='0';
IRQ1<='0';
IRQ2<='0';
elsif rising_edge(clk)then
if y(2)='1' then A(7 downto 0)<=d1(7 downto 0);
elsif y(11)='1' then A<=d1;
elsif y(13)='1' then A(16 downto 8)<=Rez(8 downto 0);
elsif y(18)='1' then A(16 downto 8)<=Rez(8 downto 0);
end if;
if y(3)='1' then B(7 downto 0)<=d2(7 downto 0);
elsif y(7)='1' then B(7 downto 0)<=Rez(7 downto 0);
elsif y(12)='1' then B<=d2(8 downto 0);
end if;
if y(4)='1' then C<=(others=>'0');
elsif (y(6) or y(8) or y(19))='1' then C<=Rez(7 downto 0);
end if;
if y(10)='1' then r(15 downto 0)<=C(7 downto 0)&B(7 downto 0);
elsif y(20)='1' then r(15 downto 8)<=C(7 downto 0);
elsif y(21)='1' then r(7 downto 0)<=A(15 downto 8);
end if;
if y(5)='1' then Cnt<=8;
elsif y(9)='1' thenCnt<=Cnt-1;
end if;
if y(1)='1' then COP<=d3;
else COP<='0';
end if;
if y(16)='1' then IRQ1<='1';
end if;
if y(17)='1' then IRQ2<='1';
end if;
if y(14)='1' then Tga<=A(16);
end if;
end if;
end process;
arg1<= A when (y(6) or y(13) or y(15) or y(18) or y(19))='1'
else "00000000"&B when y(7)='1'
else (others=>'0');
arg2<= "0"&C when (y(6) or y(7) or y(8) or y(19))='1'
else B when (y(13) or y(18))='1'
else (others=>'0');
CF<=('0'&C(7 downto 0))+('0'&A(7 downto 0))when y(6)='1';
Rez<="000000000"&(Arg2(7 downto 0)+Arg1(7 downto 0)) when y(6)='1'
else "000000000"&Arg2(0)&Arg1(7 downto 1) when y(7)='1'
else "000000000"&CF(8)&Arg2(7 downto 1) when y(8)='1'
else "00000000"&(Arg1(16 downto 8)+ not Arg2(8 downto 0)+1) when y(13)='1'
else Arg1(15 downto 0)&'0' when y(15)='1'
else "00000000"&(Arg1(16 downto 8)+Arg2(8 downto 0)) when y(18)='1'
else "000000000"&Arg2(6 downto 0)¬ Arg1(16) when y(19)='1'
else (others=>'0');
x(1)<=COP;
x(2)<='1' when B(0)='1' else '0';
x(3)<='1' when Cnt=0 else '0';
x(4)<='1' when A(16)='1' else '0';
x(5)<='1' when Tga='1' else '0';
x(0)<='0';
end OA_M;
ПРИЛОЖЕНИЕ 2
VHDL-модель управляющего автомата
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
entity YA is
port(
clk, rst : in STD_LOGIC;
x : in STD_LOGIC_VECTOR(5 downto 0);
y : out STD_LOGIC_VECTOR(21 downto 0));
end YA;
architecture YA of YA is
subtype TCommand is std_logic_vector(17 downto 0);
type TROM is array(0 to 17) of TCommand;
constant ROM:TROM := (
----------------------
"000100000000100001",--0
"001000101100000010",--1
"000000000001000011",--2
"001100000000000100",--3
"010001010001100101",--4
"010100000000000000",--5
"011001100001001000",--6
"011100000010001001",--7
"100100000000000000",--8
"100010001110101100",--9
"101000000000000000",--10
"011100000000001101",--11
"101100000000001101",--12
"100010110001101111",--13
"000010000010101100",--14
"000000000010110000",--15
"101100000000010001",--16
"110011000000000000"--17);
----------------------
signal RegCom:TCommand;
type TY is array(0 to 12) of INTEGER;
constant Y1: TY :=(0,1,2,6,7,10,11,13,14,16,17,18,20);
constant Y2: TY :=(0,3,8,12,15,19,21,0,0,0,0,0,0);
constant Y3: TY :=(0,4,9,0,0,0,0,0,0,0,0,0,0);
constant Y4: TY :=(0,5,0,0,0,0,0,0,0,0,0,0,0);
signal yConv: STD_LOGIC_VECTOR(21 downto 0);
begin
process(rst,clk) is
begin
if rst='0' then
RegCom<=(others=>'0');
elsif rising_edge(clk) then
if x(conv_integer(RegCom(7 downto 5))) ='0' then
RegCom<=ROM(conv_integer(RegCom(4 downto 0)));
else RegCom<=ROM(conv_integer(RegCom(4 downto 0))+1);
end if;
end if;
end process;
process (RegCom) is
begin
yConv<=(others=>'0');
yConv(Y1(conv_integer(RegCom(17 downto 14))))<='1';
yConv(Y2(conv_integer(RegCom(13 downto 11))))<='1';
yConv(Y3(conv_integer(RegCom(10 downto 9))))<='1';
yConv(Y4(conv_integer(RegCom(8 downto 8))))<='1';
end process;
y<=yConv;
end architecture YA;
ПРИЛОЖЕНИЕ 3
VHDL-модель процессорного устройство
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
entity PM is
port(
clk, rst : in STD_LOGIC;
d1 : in STD_LOGIC_VECTOR(16 downto 0);
d2 : in STD_LOGIC_VECTOR(8 downto 0);
d3 : in STD_LOGIC;
r:out STD_LOGIC_VECTOR(15 downto 0));
end PM;
architecture PM of PM is
component OA_M is
port(
clk,rst : in STD_LOGIC;
y : in STD_LOGIC_VECTOR(21 downto 0);
d1 : in STD_LOGIC_VECTOR(16 downto 0);
d2 : in STD_LOGIC_VECTOR(8 downto 0);
d3 : in STD_LOGIC;
r: out STD_LOGIC_VECTOR(15 downto 0);
x: out STD_LOGIC_VECTOR(5 downto 0));
end component;
component YA is
port(
clk, rst : in STD_LOGIC;
x : in STD_LOGIC_VECTOR(5 downto 0);
y : out STD_LOGIC_VECTOR(21 downto 0));
end component;
signal nclk: std_logic;
signal y: STD_LOGIC_VECTOR (21 downto 0);
signal x: STD_LOGIC_VECTOR (5 downto 0);
begin
nclk<= not clk;
OA: OA_M port map(clk, rst, y(21 downto 0), d1, d2, d3, r, x);
YA_P: YA port map(nclk, rst, x, y);
end PM;
Размещено на Allbest.ru
Подобные документы
Электронная система, реализующая сложный алгоритм обработки данных. Общая структура устройства управления. Проектирование процессорного модуля. Основные операционные элементы. Общие вопросы функционирования устройств управления с программируемой логикой.
курсовая работа [1,3 M], добавлен 29.06.2011Принцип микропрограммного управления. Управляющие автоматы с жесткой и программируемой логикой. Граф-схемы алгоритмов. Синтез управляющего автомата по граф-схеме алгоритма. Построение управляющего автомата с программируемой логикой на основе ПЗУ.
курсовая работа [263,8 K], добавлен 25.01.2011Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.
дипломная работа [4,0 M], добавлен 25.03.2012Совокупность управляющего и операционного автоматов. Разработка микропрограммы выполнения операции деления с жесткой логикой и структурно-операционной схемы ОА. Иллюстрация функционирования ОУ на заданных числах. Оценка эффективности кодирования.
курсовая работа [314,4 K], добавлен 12.03.2014Проектирование процессорного модуля как независимого устройства, которое может выполнять два заданных действия над операндами. Порядок и принципы, главные этапы разработки схемы устройства, отвечающего требованиям к системам обработки информации.
курсовая работа [3,5 M], добавлен 16.06.2011Расчет статического модуля оперативной памяти и накопителя. Построение принципиальной схемы и временной диаграммы модуля оперативного запоминающего устройства. Проектирование арифметико-логического устройства для деления чисел с фиксированной точкой.
курсовая работа [3,2 M], добавлен 13.06.2015Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.
курсовая работа [671,3 K], добавлен 04.11.2014Разработка структурной схемы вычислительного устройства, выбор системы команд и определение форматов. Разработка алгоритма командного цикла, выполнения арифметических и логических операций. Проектирование операционного автомата, устройств управления.
курсовая работа [2,8 M], добавлен 15.05.2014Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010Анализ особенностей управляющих операционных устройств, которые позволяют выполнить преобразование некоторых кодов в соответствии с логикой выполняемой операции. Изучение основных типов управляющих устройств: с жесткой логикой; с микропрограммной логикой.
контрольная работа [49,1 K], добавлен 05.09.2010