Проектирование процессорного модуля

Рассмотрение общих вопросов функционирования операционных автоматов. Изучение схемы и принципов работы устройств управления с программируемой логикой. Проектирование и тестирование операционного устройства и управляющего автомата процессорного модуля.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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+1i+ хХ формируется сумматором.

Рисунок 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)&not 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.