Курсовая работа: Моделирование процессора (операционного и управляющего автоматов) для выполнения набора машинных команд

Курсовая работа: Моделирование процессора (операционного и управляющего автоматов) для выполнения набора машинных команд




🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































В данной работе будет разработана структурная схема процессора (операционного и управляющего автоматов) для выполнения набора машинных команд. Необходимо создать описание процессора на языке VHDL и провести тестирование. Управляющий автомат должен представлять собой устройство с хранимыми в памяти микропрограммами управления ходом выполнения машинных команд.
ЭВМ с хранимой программой (stored program electronic computer) может быть определена как машина, обрабатывающая данные в соответствии с заранее определенными правилами (инструкциями); при этом программа (набор инструкций) и данные находятся в памяти машины. Для загрузки программы и данных в память, а также для вывода результатов обработки из памяти необходим какой-либо способ связи с внешними объектами. Этой цели служат устройства ввода-вывода.
Устройство управления ЭВМ управляет работой всей машины в целом. Оно принимает управляющую информацию от памяти, о том, какие действия надо осуществить и где в памяти расположены данные, над которыми должны производиться эти действия. После того как устройство управления определит, какую именно команду необходимо исполнить, оно выдает управляющие сигналы, позволяющие открыть и закрыть соответствующие вентили по всей системе, в результате чего данные, представленные в виде электрических сигналов, смогут поступать от одного функционального устройства к другому в процессе исполнения операции, заданной выбранной командой. Как только ALU заканчивает выполнять свою часть в данной операции, устройство управления может выдать необходимую управляющую информацию, разрешающую передачу результатов обратно в память или направляющую эти результаты к какому-нибудь устройству вывода; это делается для того, чтобы зафиксировать результаты на другом носителе, например на диске. В конце исполнения команды устройство управления заставляет машину выбрать и декодировать следующую команду.
Таким образом, каждой машиной управляют последовательности команд программы, написанной для решения конкретной задачи. Каждая из этих команд представляет собой простое обращение к устройству управления, сделанное для того, чтобы привести в действие встроенные в машину функциональные узлы (сумматор, регистры, счетчики), а также открыть и закрыть определенные вентили в цепях передачи данных; коммутация этих вентилей позволяет вводить в элементарные арифметические и логические функциональные узлы требуемые операнды, причем ввод их осуществляется в определенном порядке и в рамках определенной последовательности машинных циклов.
Устройство управления данного процессора необходимо построить на программируемой логике. Конкретизировав задачу, определим, что необходимо выбрать схему процессора, и схему управляющего устройства. В данной работе будет использована схема процессора с одной магистралью .

1. Анализ задания и разработка структурной (функциональной) схемы процессора

Разработать структурную схему процессора (операционного и управляющего автоматов) для выполнения набора машинных команд. Создать описание процессора на языке VHDL, провести тестирование.
Управляющий автомат должен представлять собой устройство с хранимыми в памяти микропрограммами управления ходом выполнения машинных команд.
Использовать одномагистральную структуру.
Микропрограммный автомат с одним полем адреса.
Реализовать следующие команды для исполнения в системе:
1. MOVA, #d; Загрузка в аккумулятор константы
2. MOV Rn, #d ; Загрузка в регистр константы
3. ADDA, Rn ; Операция сложения содержимого аккумулятора и
4. JBС bit, rel; Условный переход на адрес
– обозначения команд процессора соответствуют мнемокодам языка ассемблера МК51.
– команды, могут размещаться в памяти в любой последовательности;
– константа #d размещается в следующем по порядку байте после команды;
Структурная схема процессора показана на рис. 1. Из этих команд видно, что процессор должен содержать регистр-аккумулятор, регистр результата и регистры общего назначения, арифметическое устройство, память микропрограмм и различные вспомогательные устройства для выборки соответствующих микроопераций, а так же регистр на 1 бит для выполнения команды «JBC bit, rel», в данном случае в регистр заносится значение флага FC, установка которого в лог. 1 соответствует переполнению разрядной сетки, при выполнении операции сложения.
Процессор будет содержать четыре регистра общего назначения R0-R3. При этом необходимо будет выбирать номер регистра, именно к которому мы хотим обратиться.
Принимаем, что процессор восьмиразрядный, т.е. обрабатывает слова размером в восемь бит. Соответственно адреса и данные будут восьмиразрядные, передаваемые по одной также восьмиразрядной шине.
2. Общее описание принципа работы процессора

Данный процессор с одномагистральной структурой выполняет указанный в задании набор команд.
В данной работе моделируется устройство, содержащую одну общую шину адреса и данных.
Недостатком такой схемы является низкая, по сравнению с многошинными процессорами, производительность, так как и для адресации и для передачи данных используется единственная шина.
Блок «Память» содержит последовательность команд и данных, которые необходимо реализовать. Выполнение других команд на данном процессоре без незначительных доработок будет невозможно.
Выборка команд из памяти производится следующим образом: адрес команды, содержащийся в программном счетчике адреса, записывается в регистр адреса, а затем выдается на адресные входы блока памяти, что сопровождается выдачей управляющим устройством сигнала чтения из памяти. Данные из памяти считываются в буферный регистр. После того, как выбранная из памяти команда попадает в буферный регистр, она выдается на внутрипроцессорную шину, откуда она записывается в регистр команд IR. На этом выборка команды заканчивается.
После окончания фазы извлечения команды начинается фаза интерпретации команды. В зависимости от команды эта фаза может представлять собой, например, извлечение из памяти константы, необходимой для выполнения команды или извлечение из памяти номера регистра. В конце этой фазы процессор готов к выполнению команды. На этом начинается фаза выполнения. Фаза извлечения данных из памяти присутствует у команды занесения данных в аккумулятор, в регистры общего назначения, а также при переходе на адрес.
3. Временные диаграммы, описывающие выполнение микроопераций для каждой команды

Временная диаграмма микроопераций выполнения команды MOV A, #d:
Временная диаграмма микроопераций выполнения команды MOV Rn, #d:
Временная диаграмма микроопераций выполнения команды AddA, Rn:
4. Содержательный алгоритм микропрограммы

Алгоритм выполнения команды в общем случае состоит из таких фаз:
1. Выборка команды из памяти по соответствующему адресу
2. Интерпретация команды (дешифрирование) и подача соответствующих управляющих сигналов
5. Подготовка к загрузке следующей команды
В случае с разрабатываемым процессором общий алгоритм выглядит следующим образом:
1. Запись значения программного счетчика в MAR (MemoryAddressRegister).
2. Передача содержимого MAR на адресные входы памяти.
3. Передача сигнала чтения и выбора микросхемы памяти.
4. Запись данных из памяти в MBR (MemoryBufferRegister).
5. Передача содержимого MBR на шину данных процессора и запись его в регистр команд IR (InstructionRegister).
6. Выбор из памяти команд необходимой команды
7. Увеличение значения программного счётчика
8. Запись значения программного счетчика в MAR (MemoryAddressRegister).
9. Выдача содержимого MAR на адресные входы памяти.
10. Выдача сигнала чтения и выбора микросхемы памяти.
11. Запись данных из памяти в MBR (MemoryBufferRegister).
12. Выдача содержимого MBR на шину данных процессора.
13. Если команда mov, то запись значения с шины данных в аккумулятор или в один из регистров общего назначения, увеличение программного счётчика и переход к пункту 1.
14. Если команда ADD или SUB, то выводим на шину данных значение из выбранного ранее регистра общего назначения, затем подаём на АЛУ сигнал сложения либо умножения, эти действия происходят над данными из аккумулятора и данными с шины. Результат заносится в регистр результата, а затем с регистра результата переписывается в аккумулятор. Увеличение программного счётчика и переход к пункту 1.
15. Если команда JBC, то проверяется содержимое однобитного регистра, если оно равно единице, то происходит переход по адресу rel и регистр сбрасывается в ноль.
5. Синтез управляющего автомата на памяти с одним полем адреса

Структурная схема управляющего автомата на основе памяти с одним полем адреса показана на рис. 2.
Рис. 2. Структурная схема управляющего автомата на основе памяти с одним полем адреса
Следует определить набор управляющих сигналов, вырабатываемых устройством управления. Во-первых, это сигналы разрешения записи в регистры MAR, MBR, R0-R1, RzIn, IRIn. Во-вторых – сигналы выдачи содержимого регистров MAR, MBR, R0-R1 и Z. Кроме того – сигнал чтения из памяти, сигнал увеличения содержимого программного счетчика и сигнал выбора операции АЛУ. Ниже приведен полный список этих сигналов:
Instr0 – сигналы управления автоматом
PCIn – сигнал загрузки в регистр команд
IncPC – увеличение значения счётчика команд
IrIn – загрузка в регистр инструкций
CS – сигнал выбора микросхемы памяти
MbrIn – загрузка в буферный регистр из памяти
MbrOut – выдача на шину из буферного регистра
MbrInD – загрузка в буферный регистр с шины
MbrOutD – выдача в память из буферного регистра
RzIn – загрузка в регистр результата
RzOut – вывод из регистра результата
Inv – инвертирование значения подаваемого в АЛУ из аккумулятора
RIn – сигнал загрузки в регистры общего назначения
ROut – сигнал вывода из регистров общего назначения
RDCIn – сигнал загрузки значения в мультиплексор номера регистра
6. Создание описания отдельных узлов процессора и всего процессора средствами
Active
HDL

port (SIn: in std_logic_vector (5 downto 0);
SOut: out std_logic_vector (5 downto 0));
SOut<=CONV_STD_LOGIC_VECTOR(((CONV_INTEGER ('0'& SIn))+1), 6);
Временная диаграмма работы счетчика Add для УУ:
port (B: in std_logic_vector (7 downto 0);
A: in std_logic_vector (7 downto 0);
Q: out std_logic_vector (7 downto 0);
signal rez: std_logic_vector (7 downto 0):= «00000000»;
if CLK='0' and CLK'event then FC<='0';
Q<= CONV_STD_LOGIC_VECTOR((CONV_INTEGER ('0'& A)+CONV_INTEGER ('0'& B)), 9) (7 downto 0) after 4 ns;
FC<= CONV_STD_LOGIC_VECTOR((CONV_INTEGER ('0'& A)+CONV_INTEGER ('0'& B)), 9) (8) after 4 ns;
Временная диаграмма работы устройства сложения ALU:
AdrIn: in std_logic_vector (7 downto 0);
AdrOut: out std_logic_vector (7 downto 0));
signal reg: std_logic_vector (7 downto 0);
If CLK='0' and CLK'event and PCIn='1' then reg<=AdrIn;
If CLK='0' and CLK'event and IncPC='1' then reg<=reg+ «0000001» after 2ns;
If CLK='1' and CLK'event then AdrOut<=reg after 2ns;
Временная диаграмма работы счетчика микрокоманд PC:
Описание регистров РОН и их выбора:
DataIn: in std_logic_vector (7 downto 0);
DataOut: out std_logic_vector (7 downto 0));
signal regist: std_logic_vector (7 downto 0);
if CLK='0' and CLK'event and RIn='1'and C='1' then regist<=DataIN;
if CLK='0' and CLK'event and ROut='1'and C='1' then DataOut<=regist after 3 ns;
if CLK='0' and CLK'event and ROut='0' then DataOut<= «ZZZZZZZZ» after 3 ns;
if RST='1' then regist<= «00000000»;
port (Number: in std_logic_vector (7 downto 0);
if Number= «00000001» then R1<='1'after 2ns;
if Number= «00000010» then R2<='1'after 2ns;
if Number= «00000011» then R3<='1'after 2ns;
if Number= «00000100» then R4<='1'after 2ns;
Временная диаграмма работы выбора регистров РОН RDC:
Adr: in std_logic_vector (7 downto 0);
Data: inout std_logic_vector (7 downto 0));
type MemoryType is array (0 to 8) of std_logic_vector (7 downto 0);
if RdWr='1' and CS='1' then Data<=Memory (CONV_INTEGER ('0'& Adr)) after 3ns;
if RdWr='0' and CS='1' then Memory (CONV_INTEGER ('0'& Adr))<=Data;
if CLK='0' and CLK'event and IE='1' then regist<=reg_in after 2ns;
elsif Zero='1' then regist<='0' after 2ns;
Временная диаграмма работы памяти МПА RAM:
DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0)
signal reg: std_logic_vector (7 downto 0):= «00000000»;
if CLK='0' and CLK'event and RAIn='1' then
Временная диаграмма работы регистра-аккумулятора RA:
port (Adr: in std_logic_vector (5 downto 0);
InstrCom: out std_logic_vector (0 to 27));
type MemoryType is array (0 to 59) of std_logic_vector (0 to 27);
Memory(0)<= «000»& «000000»& «0000000»& «0000000»& «0000»& «0»;
Memory(1)<= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(2)<= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(3)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(4)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(5)<= «000»& «000000»& «0010000»& «0000000»& «0000»& «0»; – IrIn
Memory(6)<= «100»& «000000»& «0000000»& «0000000»& «0000»& «0»; – Instr0
Memory(7) <= «000»& «000000»& «0100000»& «0000000»& «0000»& «0»; – IncPC
Memory(8) <= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(9) <= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(10)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(11)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(12)<= «000»& «000000»& «0000000»& «0000001»& «0000»& «0»; – RAin
Memory(13)<= «001»& «000000»& «0100000»& «0000000»& «0000»& «0»; – Instr2, IncPC
Memory(14)<= «000»& «000000»& «0100000»& «0000000»& «0000»& «0»; – IncPC
Memory(15)<= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(16)<= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(17)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(18)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(19)<= «000»& «000000»& «0000000»& «0000000»& «0010»& «0»; – RDCIn
Memory(20)<= «000»& «000000»& «0100000»& «0000000»& «0000»& «0»; – IncPC
Memory(21)<= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(22)<= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(23)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(24)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(25)<= «000»& «000000»& «0000000»& «0000000»& «1000»& «0»; – RIn
Memory(26)<= «001»& «000000»& «0100000»& «0000000»& «0000»& «0»; – Instr2, IncPC
Memory(27)<= «000»& «000000»& «0100000»& «0000000»& «0000»& «0»; – IncPC
Memory(28)<= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(29)<= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(30)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(31)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(32)<= «000»& «000000»& «0000000»& «0000000»& «0010»& «0»; – RDCIn
Memory(33)<= «000»& «000000»& «0000000»& «0000000»& «0100»& «0»; – ROut
Memory(34)<= «000»& «000000»& «0000000»& «0000000»& «0001»& «0»; – SADD
Memory(35)<= «000»& «000000»& «0000000»& «0001000»& «0000»& «0»; – RZin
Memory(36)<= «000»& «000000»& «0000000»& «0000100»& «0000»& «0»; – RZout
Memory(37)<= «000»& «000000»& «0000000»& «0000001»& «0000»& «0»; – RAin
Memory(38)<= «001»& «000000»& «0100000»& «0000000»& «0000»& «0»; – Instr2, IncPC
Memory(51)<= «010»& «110110»& «0000000»& «0000000»& «0000»& «0»; – perexod na adres 36H ili 54 v dec s/s
Memory(52)<= «000»& «000000»& «0000000»& «0000000»& «0000»& «0»; – any value
Memory(53)<= «000»& «000000»& «0000000»& «0000000»& «0000»& «0»; – any value
Memory(54)<= «000»& «000000»& «0100000»& «0000000»& «0000»& «0»; – IncPC
Memory(55)<= «000»& «000000»& «0001000»& «0000000»& «0000»& «0»; – MarIn
Memory(56)<= «000»& «000000»& «0000110»& «0000000»& «0000»& «0»; – RdWr, CS
Memory(57)<= «000»& «000000»& «0000001»& «0000000»& «0000»& «0»; – MbrIn
Memory(58)<= «000»& «000000»& «0000000»& «1000000»& «0000»& «0»; – MbrOut
Memory(59)<= «001»& «000000»& «1000000»& «0000000»& «0000»& «0»; – Instr2, PCIn
InstrCom<=Memory (CONV_INTEGER ('0'& Adr));
if RD='0' and RD'event then MrOut<='0';
Временная диаграмма работы памяти УУ Memory:
VHDL– описание остальных элементов схемы (регистра CAR и регистра СBR, регистра инструкций, мультиплексора, декодера, простых логических элементов, регистров MAR и MBR):
port (D: in std_logic_vector (5 downto 0);
Q: out std_logic_vector (5 downto 0));
if CarIn='1' and CarIn'event then CarOut<='0';
port (InstrCom: in std_logic_vector (0 to 27);
Adr: out std_logic_vector (5 downto 0);
port (Command: in std_logic_vector (7 downto 0);
Com: out std_logic_vector (7 downto 0));
if IrIn='0' and Irin'event then IrOut<='0';
Com: in std_logic_vector (7 downto 0);
ComAdr: out std_logic_vector (5 downto 0));
if Com= «00000000» then ComAdr <= «000111»;
elsif Com= «00000001» then ComAdr <= «001110»;
elsif Com= «00000010» then ComAdr <= «011011»;
elsif Com= «00000011» then ComAdr <= «100111»;
elsif Com= «00000100» then ComAdr <= «110011»;
port (DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0));
DOut<=not DIn when Inv='1'else DIn;
port (IN1: in std_logic_vector (5 downto 0);
IN2: in std_logic_vector (5 downto 0);
IN3: in std_logic_vector (5 downto 0);
OUT1: out std_logic_vector (5 downto 0));
if Adr1='0' and Adr0='0' then OUT1 <= IN1;
elsif Adr1='0' and Adr0='1' then OUT1 <= IN3;
if CLK='0' and CLK'event then MuxOut<='0';
AdrIn: in std_logic_vector (7 downto 0);
AdrOut: out std_logic_vector (7 downto 0));
signal reg: std_logic_vector (7 downto 0):= «00000000»;
if CLK='0' and CLK'event and MarIn='1' then reg<=AdrIn;
if CLK='1' and CLK'event then AdrOut<=reg;
DataIn: inout std_logic_vector (7 downto 0);
DataOut: inout std_logic_vector (7 downto 0));
signal reg: std_logic_vector (7 downto 0);
elsif MbrOut='1' then DataOut<=reg;
elsif MbrInD='1' then reg<=DataOut;
elsif MbrOutD='1' then DataIn<=reg;
if MbrIn='0' and MbrOutD='0' then DataIn<= «ZZZZZZZZ»;
if MbrOut='0' and MbrInD='0' then DataOut<= «ZZZZZZZZ»;
port (DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0));
signal regist: std_logic_vector (7 downto 0);
if CLK='0' and CLK'event and RZIn='1' then regist<=DIN;
if CLK='0' and CLK'event and RZOut='1' then
if InvZ='1'then DOut<=not regist after 3 ns;
if CLK='0' and CLK'event and RZOut='0' then DOut<= «ZZZZZZZZ» after 3 ns;
if RST='1' then regist<= «00000000»;
7. Тестирование процессора и подтверждение правильности его работы с помощью временных диаграмм

Описание процессора на языке ActiveVHDL:
DataBus: inout std_logic_vector (7 downto 0));
SIn: in std_logic_vector (5 downto 0);
SOut: out std_logic_vector (5 downto 0));
port (A: in std_logic_vector (7 downto 0);
B: in std_logic_vector (7 downto 0);
Q: out std_logic_vector (7 downto 0));
D: in std_logic_vector (5 downto 0);
Q: out std_logic_vector (5 downto 0));
InstrCom: in std_logic_vector (0 to 27);
Adr: out std_logic_vector (5 downto 0);
Com: in std_logic_vector (7 downto 0);
ComAdr: out std_logic_vector (5 downto 0));
port (DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0));
port (Command: in std_logic_vector (7 downto 0);
Com: out std_logic_vector (7 downto 0);
port (AdrIn: in std_logic_vector (7 downto 0);
AdrOut: out std_logic_vector (7 downto 0));
DataIn: inout STD_LOGIC_VECTOR (7 downto 0);
DataOut: inout STD_LOGIC_VECTOR (7 downto 0));
port (Adr: in std_logic_vector (5 downto 0);
InstrCom: out std_logic_vector (0 to 27);
IN1: in std_logic_vector (5 downto 0);
IN2: in std_logic_vector (5 downto 0);
IN3: in std_logic_vector (5 downto 0);
OUT1: out std_logic_vector (5 downto 0));
port (AdrIn: in STD_LOGIC_VECTOR (7 downto 0);
AdrOut: out STD_LOGIC_VECTOR (7 downto 0));
DataIn: in std_logic_vector (7 downto 0);
DataOut: out std_logic_vector (7 downto 0));
DIn: in std_logic_vector (7 downto 0);
DOut: out std_logic_vector (7 downto 0));
port (Adr: in STD_LOGIC_VECTOR (7 downto 0);
Data: inout STD_LOGIC_VECTOR (7 downto 0));
port (Number: in std_logic_vector (7 downto 0);
DIn: in STD_LOGIC_VECTOR (7 downto 0);
DOut: out STD_LOGIC_VECTOR (7 downto 0));
signal CS, IncPC, IrIn, MarIn, MbrIn, MbrOut, JB: STD_LOGIC;
signal S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, SR1, SR2, SR3, SR4: STD_LOGIC;
signal N1, N2, N3, FC_sig, bit_outs: STD_LOGIC;
signal PCIN, RaIn, RDCIn, RdWr, RIn, ROut, RzIn, RzOut, SADD: STD_LOGIC;
signal Adr: std_logic_vector (7 downto 0);
signal BUS2, BUS6, BUS7, BUS8, BUS11: std_logic_vector (5 downto 0);
signal BUS10: std_logic_vector (27 downto 0);
signal BUS0, BUS1, BUS3, BUS4, BUS5: std_logic_vector (7 downto 0);
signal MemOut: STD_LOGIC_VECTOR (7 downto 0);
DD0: IR port map (Com => BUS1, Command => DataBus, IRin => IrIn, IrOut => S3,
DD1: LogAnd port map (Sout => S5, in1 => bit_outs, in2 =>S4);
DD2: MAR port map (AdrIn => BUS0, AdrOut => Adr, CLK => CLK, MarIn => MarIn,
DD3: RAM port map (Adr => Adr, CS => CS, Data => MemOut, RdWr => RdWr);
DD4: MBR port map (CLK => CLK, DataIn => MemOut, DataOut => DataBus,
MbrIn => MbrIn, MbrInD => S6, MbrOut => MbrOut,
DD5: R0 port map (C => SR1, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD6: R0 port map (C => SR2, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD7: R0 port map (C => SR3, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD8: R0 port map (C => SR4, CLK => CLK, DataIn => DataBus, DataOut => DataBus,
RIn => RIn, ROut => ROut, RST => Reset);
DD9: RA port map (CLK => CLK, DIn => DataBus, DOut => BUS3, RAIn => RaIn);
DD10: ALU port map (A => BUS4, B => DataBus, CLK => CLK, FC => FC_sig, FZ => S1,
DD11: DC1 port map (Ale => S3, Com => BUS1, ComAdr => BUS2);
DD12: RZ port map (CLK => CLK, DIn => BUS5, DOut => DataBus, InvZ => JB,
RST => Reset, RZIn => RzIn, RZOut => RzOut);
DD13: INV port map (DIn => BUS3, DOut => BUS4, Inv => S2);
DD14: RDC port map (Number => DataBus, R1 => SR1, R2 => SR2, R3 => SR3,
DD15: MUX port map (Adr0 => S9, Adr1 => S10, CLK => CLK, IN1 => BUS11,
IN2 => BUS2, IN3 => BUS6, MuxOut => N2, OUT1 => BUS7);
DD16: Add port map (Inc => N2, Reset => Reset, SIn => BUS7, SOut => BUS11);
DD17: CAR port map (CarIn => CLK, CarOut => N3, D => BUS7, Q => BUS8);
DD18: Memory port map (Adr => BUS8, InstrCom => BUS10, MrOut => N1, RD => N3);
DD19: CBR port map (Adr => BUS6, CS => CS, CbrIn => N1, IncPC => IncPC, Instr0 => S8,
Instr1 => S4, Instr2 => S10, InstrCom => BUS10, Inv => S2, InvZ => JB, IrIn => IrIn,
MarIn => MarIn, MbrIn => MbrIn, MbrInD => S6, MbrOut => MbrOut, MbrOutD => S7,
PCin => PCIN, RAIn => RaIn, RDCIn => RDCIn, Rin => RIn, ROut => ROut,
RzIn => RzIn, RzOut => RzOut, SADD => SADD);
DD20: PC port map (AdrIn => DataBus, AdrOut => BUS0, CLK => CLK, IncPC => IncPC,
DD21: LogOR port map (SOut => S9, in1 => S5, in2 => S8);
DD22: R_1bit port map (CLK => CLK, reg_in =>FC_sig, reg_out => bit_outs, IE =>RzIn,
При выполнении работы было произведено моделирование процессора с устройством управления на основе памяти с одним полем адреса, имеющего ряд специальных регистров, а также четыре регистра общего назначения. Тестовая программа была успешно выполнена, что вполне свидетельствует о его корректной работе.
Структурная схема, разработанная в этой работе, естественно, не является единственно возможной. Но на ее примере можно усвоить основные принципы построения цифровых вычислительных систем, такие как микропрограммное управление, совместное использование шин процессора различными устройствами со всеми вытекающими отсюда требованиями к организации работы этих устройств: синхронизации, сингулярности передач информации и другими.
Данная схема обладает одной магистралью, она достаточно проста в исполнении, хотя одномагистральная система не всегда позволяет просто реализовать некоторые операции, а именно такая система занимает намного меньше места на печатной плате, чем двухмагистральная (и тем более трехмагистральная), что и дает ей преимущества при конструировании небольших устройств.
По диаграмме работы процессора видно, что выполнение команды JBC занимает в среднем 90 ns, команда сложения немного больше 183 ns, команд пересылки – 140ns. Полное выполнение всех команд по очереди производится за 630 ns. Начальная задержка работы процессора с четом всех задержек на всех элементах составила всего 1 ns, что очень мало.

Название: Моделирование процессора (операционного и управляющего автоматов) для выполнения набора машинных команд
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Добавлен 04:55:29 29 сентября 2010 Похожие работы
Просмотров: 555
Комментариев: 15
Оценило: 4 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Курсовая работа: Моделирование процессора (операционного и управляющего автоматов) для выполнения набора машинных команд
Реферат: Финансово-экономический анализ на примере ООО ВКДП
Контрольные Работы Математику 2 Класс Скачать
Сочинение Рассуждение На Тему Портрет Моего Современника
Декабрьское Сочинение Аргументы К Каждой Теме
Реферат: Кредитная система. Скачать бесплатно и без регистрации
Реферат: Прогрессивная партия Чада
Реферат по теме Употребление сложных предложений в деловой юридической речи
Тенденции Современной Науки Реферат
Устное Сочинение Богатырский Скок
Рынок Труда И Занятость Населения Курсовая
Чу Дпо Чувашский Учебно Курсовой Комбинат
Отчет По Практике Школа Вожатых
Курсовая работа по теме Уголовно-правовая характеристика грабежа, разбоя и вымогательства
Реферат: Alcohol On College Campus
Учебное Пособие На Тему Основи Оподаткування
Дипломная работа по теме Правовые вопросы финансового мониторинга в условиях мирового экономического кризиса
Как Оформлять Источники В Реферате Из Интернета
Фипи Оценивание Сочинения Егэ
Сочинение по теме Крах «недоконченной» идеи
Реферат: Від стародавніх до сучасних теорій руху планет
Реферат: Криминологическая характеристика рецидивной и профессиональной преступности
Доклад: Введение в кинезиологию
Статья: Политическая культура и конституционализм: сравнительный анализ США и Нигерии

Report Page