Цифровое вычислительное устройство

Автор работы: Пользователь скрыл имя, 02 Июля 2013 в 14:26, курсовая работа

Краткое описание

Примем, что будет использована архитектура аккумуляторного типа, то есть один из операндов в двуместных операциях будет находиться в аккумуляторе W. Второй из операндов может находиться в регистре косвенного адреса (в операциях с косвенной адресацией) или находиться в регистре общего назначения (в операциях с регистровой адресацией). Результаты операций сохраняются в аккумуляторе.
Дополним заданный набор операций следующими:
mov W, RAM(Adr) – загрузка в аккумулятор операнда, находящегося в ОЗУ по адресу FSR[7..0] (Косвенная адресация);
mov W, GPR(Adr) – загрузка в аккумулятор операнда из банка регистров общего назначения по адресу Adr[1..0] (регистровая адресация);
mov RAM(Adr), W – запись содержимого аккумулятора в ОЗУ по адресу FSR[6..0] (Косвенная адресация).

Содержание работы

1 Система команд…………………………………………………………………..5
2 Структура ЦВУ…………………………………………………………………...7
3 Разработка основных функциональных блоков и узлов……………………….8
4 Тестирование ЦВУ………………………………………………………………15
Список использованных источников ……

Содержимое работы - 1 файл

111.docx

— 768.18 Кб (Скачать файл)



Министерство образования и  науки Российской Федерации

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ  УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО  ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет информационных технологий

Кафедра вычислительной техники

 

 

 

 

 

 

КУРСОВОЙ ПРОЕКТ

по дисциплине «Схемотехника ЭВМ»

Цифровое  вычислительное устройство

Пояснительная записка

 

 

 

 

 

 

 

 

 

Руководитель  проекта:

________________

"___"____________2012 г.

Исполнитель:

студент группы

_____________ 

"___"____________2012 г.

 

 

 

 

 

 

Оренбург 2012 

 

Аннотация

 

В данном курсовом проекте разработано процессорное устройство принстонской архитектуры, реализующее операции - CMP, SBB, NOT, JZ и JNZ.

Курсовой проект выполнен с учетом требований современных разработок в области проектирования на интегральных схемах программируемой логики. Для  реализации цифрового вычислительного  устройства (ЦВУ) использован язык описания аппаратуры Altera HDL.

Пояснительная записка выполнена на 26 листах, содержит 3 рисунка, 4 таблицы и 2 приложения. 

Содержание

 

1 Система  команд…………………………………………………………………..5

2 Структура  ЦВУ…………………………………………………………………...7

3 Разработка  основных функциональных блоков и узлов……………………….8

4 Тестирование ЦВУ………………………………………………………………15

Список  использованных источников …………………………………………….19

Приложение А. Функциональная схема ЦВУ…………………………………...20

Приложение Б.  AHDL-описание ЦВУ…………………………………………..22

Приложение В.  Принципиальная схема ЦВУ ………………………………….24

1 Система команд

 

Выполним развернутый анализ задания  и примем решения, определяющие структуру  ЦВУ.

Под запись чисел отводятся 16 разрядов. Оперативная память (ОЗУ) имеет 64x16-разрядных ячеек. Каждое число занимает одну ячейку ОЗУ.  Все команды в ЦВУ будут одноадресные.

Примем, что будет использована архитектура аккумуляторного типа, то есть один из операндов в двуместных операциях будет находиться в  аккумуляторе W. Второй из операндов может находиться в регистре косвенного адреса (в операциях с косвенной адресацией) или находиться в регистре общего назначения (в операциях с регистровой адресацией). Результаты операций сохраняются в аккумуляторе.

Дополним заданный набор операций следующими:

mov W, RAM(Adr)  – загрузка в аккумулятор операнда, находящегося в ОЗУ по адресу FSR[7..0] (Косвенная адресация);

mov W, GPR(Adr) – загрузка в аккумулятор операнда из банка регистров общего назначения по адресу Adr[1..0] (регистровая адресация);

mov RAM(Adr), W – запись содержимого аккумулятора в ОЗУ по адресу FSR[6..0] (Косвенная адресация).

mov GPR(Adr), W – запись содержимого аккумулятора в банк регистров общего назначения по адресу Adr[1..0] (регистровая адресация);

mov FSR, Adr – Запись в регистр косвенного адреса номера ячейки памяти ОЗУ;

Выполним синтез команд. Команда  будет иметь два поля:

- поле кода операции  - будет  занимать старшие разряды кода  команды;

- поле параметра команды - будет  занимать младшие разряды кода  команды.

Поле параметра:

- в командах с косвенной адресацией – в регистре косвенного адреса 7 разрядный адрес ячейки ОЗУ;

- в командах с регистровой адресацией – в регистре общего назначения  16-разрядное число;

- в команде перехода – 7-разрядный адрес точки перехода.

С учетом дополнительных операций процессорное устройство должно выполнять 13 команд. Для их кодирования потребуется 4-разрядный код операции Cop[3..0]. Старший разряд будем использовать, чтобы различать команды с загрузкой результата в аккумулятор от прочих команд. Разряды Cop[2..1] будем использовать, чтобы различать команды каждой группы. Младший разряд Cop[0] будем использовать, чтобы различать операции с прямой и регистровой адресацией.

Результаты  синтеза команд приведены в таблице 1. В таблице 1 приняты следующие  обозначения:

- a – бит, отводящийся под адрес;

- x – бит, значение которого неважно для данной команды.

Все команды 12 разрядные и занимает одну ячейку ПЗУ программ. ПЗУ состоит из 64 ячеек по 12 разрядов каждая.

 

 

 

 

 

Таблица 1 –  Система команд

Операция

Мнемоника

Адресация

Код операции

W <- W or  M([FSR])

OR M

Косвенная

0010 xxx xxxx

W<- W or GPR(Adr)

OR GPR

Регистровая

0011 xxx xaaa

W <- W sbb  M([FSR])

SBB W, M

Косвенная

0100 xxx xxxx

W <- W sbb GPR(Adr)

SBB W, GPR

Регистровая

0101 xxx xaaa

W <- not M([FSR])

NOT M

Косвенная

0110 xxx xxxx

W <- not GPR(Adr)

NOT GPR

Регистровая

0111 xxx xaaa

W<- M([FSR])

MOV W, M

Косвенная

0000 xxx xxxx

W<-GPR(Adr)

MOV W,GPR

Регистровая

0001 xxx xaaa

M([FSR])<-W

MOV M,W

Косвенная

1000 xxx xxxx

GPR(Adr)<-W

MOV GPR,W

Регистровая

1001 xxx xaaa

FSR<-DATA

MOV GPR,D

-

111x  aaa aaaa

Перейти по Adr

JZ

-

110x  aaa aaaa

Перейти по Adr при условии ZF <> 0

JNZ

101x aaa aaaa


2 Структура ЦВУ

 

Примем решения, определяющие структуру  ЦВУ.

Для выборки команд из ПЗУ программ емкостью 64 х 12 необходимы

- программный счетчик PCtr (8 разрядов);

- регистр команд IR (4 разряда).

В соответствии с вариантом задания  для хранения данных необходимо использовать ОЗУ емкостью 64 х 16. Будем использовать ОЗУ с раздельными входами и выходами данных.

Операции над словами информации будет выполнять операционный автомат, состоящий из АЛУ, аккумулятора и  триггеров для хранения признаков операций (флагов):

- ZF – флаг нулевого результата;

В ЦВУ будет использоваться принстонская архитектура с единым адресным пространством  памяти программ и данных. Для обмена данными между ОЗУ и операционным автоматом, а также передачи кода операции из ПЗУ программ в регистр команд будет использоваться шина данных DB[15..0]. Для передачи адресов ячеек памяти программ и данных будет использоваться шина адреса AB[6..0]. Устройство управления реализуем в виде микропрограммного автомата Мура. Для подключения выходов функциональных узлов к шинам используем буферы с трехстабильным выходом. Управление буферами по линиям разрешения выхода OE будет выполнять управляющий автомат Co.

Схема ЦВУ, построенная в соответствии с принятыми решениями, приведена  в приложении А. Адрес PC[6..0] выбираемой из ПЗУ команды определяется содержимым программного счетчика PCtr. Четыре старших разряда считанного слова DROM[11..8] загружаются в регистр команд IR и представляют код текущей операции Cop[3..0]. Разряды Cop[3..0] кода операции анализируется управляющим автоматом Co. Управляющий автомат формирует последовательность наборов микроприказов y0..y7, необходимых для выполнения текущей операции и подготовки к выборке следующей операции.

Для устранения состязаний сигналов в ЦВУ использована двухфазная  синхронизация:

- синхроимпульсы Clk от внешнего генератора поступают на синхровходы всех функциональных узлов, кроме управляющего автомата Co;

- синхронизация управляющего автомата  Co выполняется инвертированной импульсной последовательностью !Clk.

Для инициализации ЦВУ используется сигнал Rst, который сбрасывает программный счетчик и переводит в состояние инициализации управляющий автомат.

 

 

 

 

 

 

3 Разработка функциональных блоков  и узлов

 

3.1 Микропрограммный  автомат

 

Функция микропрограммного автомата состоит в анализе разрядов кода операции Cop[3..0] и формировании последовательности наборов микроприказов y0..y7, необходимых для выполнения текущей операции и подготовки к выборке следующей операции. Действие микроприказов отображено на функциональной схеме ЦВУ.

При включении и рестарте ЦВУ  микропрограммный автомат будет  находиться в состоянии idle. Для обеспечения возможности пошагового (покомандного) исполнения программы автомат сможет перейти в последующие состояния только при наличии сигнала разрешения en. При аппаратной отладке ЦВУ такой сигнал необходимо формировать при нажатии кнопки «Шаг». При автоматическом выполнении программы на входе en постоянно должен действовать активный уровень.

Исполнение команды состоит  из двух фаз:

- выборка команды;

- выполнение операции.

Выборка команды выполняется за два такта:

- в первом такте содержимое  PCtr по шине адреса загружается в регистр адреса ПЗУ;

- во втором такте код операции, считанный из ПЗУ, по шине  данных загружается в регистр  команд IR, а также параметр команд с прямой адресацией по шине адреса загружается в регистр адреса ОЗУ.

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

Для работы ЦВУ необходимо формировать  следующие микрокоманды:

- y1 – первая фаза выборки команды;

- y7 – вторая фаза выборки команды;

- y2y0 – загрузка аккумулятора и инкремент адреса;

- y3y0 – сохранение результата в памяти или в банке регистров и инкремент адреса;

- y5 – загрузка адреса перехода в PCtr;

-y4y0 – загрузка адреса ячейки RAM в регистр косвенного адреса FSR и инкремент адреса;

Поставим в соответствие каждой микрокоманде состояние автомата Мура:

- fetch1 – первая фаза выборки команды;

- fetch2 – вторая фаза выборки команды;

- load – загрузка аккумулятора и инкремент адреса;

- store – сохранение результата в памяти и инкремент адреса;

- jmp – загрузка адреса перехода в PCtr.

Микропрограмма  автомата с отметкой внутренних состояний  приведена на рисунке 1. Все команды  выполняются за четыре такта.

 

Рисунок 1 –  Микропрограмма автомата

 

Введем переменную текущего состояния автомата code. Тогда с учетом принятых решений управляющий автомат можно описать на AHDL:

 

SUBDESIGN co

(

cop[3..1],en,c,rst,ZF: input;

y[6..0]: output;

)

VARIABLE

  code : machine with states(idle,fetch1,fetch2,load,store,jmp,FSR);

BEGIN

  code.clk  = c;

  code.reset = !rst;

  code.ena = vcc;

  CASE code is

   WHEN idle =>

     if en then code = fetch1;

     else code = idle;

     end if;

   WHEN fetch1 =>

     y[6]=vcc;

     code = fetch2;

   WHEN fetch2 =>

     y[1]=vcc;

     if !cop[3] then code = load;

     else

  CASE cop[2..1] IS

WHEN 0 => code = store;

WHEN 1 => if !ZF then

code = jmp;

else

code = idle;

y[0] = vcc;

end if;

WHEN 2 => if  ZF then

code = jmp;

else

code = idle;

y[0] = vcc;

end if;

WHEN 3 => code = FSR;  

      END CASE;

    end if;

   WHEN load =>

     y[2]=vcc;

     y[0]=vcc;

     code = idle;

  

   WHEN store =>

     y[3]=vcc;

     y[0]=vcc;

     code = idle;

   WHEN jmp =>

     y[4]=vcc;

     code = idle;

   WHEN FSR =>

    y[5]=vcc;

    y[0]=vcc;

    code = idle; 

  END CASE;

END; 

3.2 АЛУ

 

АЛУ – блок, выполняющий  арифметические операции и логические преобразования над операндами.

Введем обозначения:

- W[], DATA[] – входы операндов;

- C – вход переноса;

- СOP[1..0] – код операции АЛУ;

- CR – выход переноса;

- ZR – выход признака нулевого результата;

- R[] – выход результата.

Выполняемую операцию определяет код операции АЛУ COP[1..0]



(таблица 2).


 

 

 

Таблица 2

СОР[1..0]

Мнемоника

Операция

00

MOV

RES[] = DATA[];

01

CMP

DATA[]#W[];                                

10

SBB

(b"1",DATA[])-(b"0",W[])-(x"00",C);   

11

NOT

(CR,RES[]) = (b"0",C,DATA[15..1]);              


AHDL описание модуля АЛУ:

Subdesign alu

(

w[15..0]:input;

data[15..0]:input;

c,cop[1..0]:input;

zr,cr,res[15..0]:output;

)

begin

case cop[1..0] is

when 0 => res[]=data[];

%----------------------CMP------------------------------ %

when 1=>

(cr,res[])=(b"0",data[])-(b"0",w[]);

%------------------------SBB---------------------%

when 2 =>

(cr,res[])=(b"0",data[])-(b"0",w[])-(x"0000",c);

%-----------------------SWAP--------------------------%

when 3 =>

res[]=(data[7..0],data[15..8]);

end case;

zr=(res[]==0);

end;

 

3.3 Регистры

 

В состав ЦВУ входит 4-разрядный регистр команд IR. Работу регистров можно описать в форме таблицы режимов (таблица 3). Параметр Width – число разрядов.

Информация о работе Цифровое вычислительное устройство