Проектирование процессора ЭВМ
Этапы разработки блока операций и центрального устройства управления. Анализ комбинационной схемы, особенности разработки местного устройства управления. Характеристика схемы местного устройства управления. Проведение тестирования процессора ЭВМ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.07.2012 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
"Проектирование процессора ЭВМ"
процессор разработка управление
Постановка задачи
Выполнить синтез микропрограмм операционного автомата (ОА) в виде содержательных граф - схем алгоритмов (ГСА). По содержательным граф - схемам алгоритмов вычертить ГСА с соответствующим кодированием микроопераций и логических условий.
Система памяти:
а) Опеpативная память (ОП) имеет емкость 16 четыpехpазpядных слов (ячейка РУ2).
б) Регистpовая память (РП) имеет емкость 4 четыpехpазpядных слов (ячейка РП1).
Фоpмат и пpедставление чисел: Целые числа с фиксиpованной запятой пpедставлены в обратном коде. Под запись числа отводится четыpе pазpяда. Самый левый pазpяд используется для пpедставления знака.
Фоpмат команд: Команды двухадpесные и двух фоpматов: "pегистp-pегистp" (РР) и "память-память" (ПП). В фоpмате РР записываются команды коротной опеpации, в фоpмате ПП - команды длинной опеpации и пеpехода. В фоpмате РР указываются пpямые адpеса 1-го и 2-го опеpандов, pасположенных в РП. В фоpмате ПП 1-й опеpанд указывается с помощью относительной адpесации с индексированием, 2-й опеpанд - прямого адpеса (оба опеpанда хpанятся в ОП). Результат опеpаций записывается по адpесу 1-го опеpанда. Команды фоpмата РР хpанятся в 2-х, а команды формата ПП -в 3-х последовательных ячейках ОП.
Опеpации:
а) УМHОЖЕHИЕ. Опеpация выполняется по алгоpитму умножения чисел в обратном коде с младших pазpядов множителя и сдвигом множимого влево (школьный метод) с коррекцией результата. Пpи нулевом значении текущего pазpяда множителя такт суммиpования не пpопускается. Пеpвый опеpанд - множимое, втоpой - множитель. Результат фоpмиpуется в 8-ми pазpядной сетке и помещается в пару смежных ячеек памяти с четным и нечетным адресами.
б) СДВИГ ВПРАВО. Втоpой опеpанд (двоичный код) сдвигаются на один pазpяд вправо. В сдвиге участвуют все 4 разряда операнда. Младший разряд выдвигается и теряется. В освобждающийся старший разряд вводится ноль. Устанавливается признак результата: 0- результат равен нулю, 1-результат не равен нулю. Результат помещается по адpесу пеpвого опеpанда.
в) ПЕРЕХОД ПО РАВЕНСТВУ НУЛЮ. Адpес в счетчике команд (СК) замещается адpесом пеpехода, если значение пpизнака pезультата pавно нулю. В пpотивном случае (СК)=(СК)+2. В качестве адpеса пеpехода используется исполнительный адpес первого операнда формата ПП. Команда пеpехода занимает 2 ячейки ОП.
Разработка блока операций
1) Алгоритм умножения.
А) Сумматор = 0
Б) Множимое сдвигается на три разряда вправо
В) Счётчик = 3
Г) Если счётчик больше нуля, то анализируется текущий разряд множителя, и если он равен единице, то к сумматору прибавляется множимое. Счётчик уменьшается на единицу. Множимое сдвигается на один разряд влево.
Д) Пункт Г повторяется для обработки всех трёх разрядов множителя.
Е) Если счётчик равен нулю, то анализируется знаковый разряд множителя и если он равен 1 производится коррекция: Из Сумматора вычитается множимое, представленное в обратном коде, и прибавляется Множимое, сдвинутое на три разряда вправо.
2) Алгоритм сдвига в вправо
А) Сдвинутое = сдвигаемое умножить на одну вторую.
Б) Знаковый разряд Сдвинутого = 0
В) Если свдинутое равно нулю, то признак результата = 0.
Г) Если сдвинутон не равно нулю, то признак результата = 1
3) Схема блока операций:
Схема
Регистр А(ra) - предназначен для принятия из центрального устройства управления, хранения, либо сдвига на один разряд в право множимого.
entity ra is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
l : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (7 downto 0);
ce, clk : in STD_LOGIC);
end ra;
architecture Behavioral of ra is
signal state: STD_LOGIC_VECTOR (7 downto 0);
begin
process (clk)
begin
if clk'event and clk = '1' then
if ce = '1' then
if l = '1' then state <= a(3)&a(3)&a(3)&a(3)&a;
else state <= state(6 downto 0)&state(7);
end if;
end if;
end if;
end process;
d <= state;
end Behavioral;
Регистр B(rb) - предназначен для принятия из центрального устройства управления, хранения, либо сдвига на один разряд в лево множителя, а так же для выработки признаков текущего разряда множителя и знака множителя .
entity rb is
Port ( b : in STD_LOGIC_VECTOR (3 downto 0);
q : out STD_LOGIC_VECTOR (3 downto 0);
l, ce, clk : in STD_LOGIC;
f1, f2 : out STD_LOGIC);
end rb;
architecture Behavioral of rb is
signal state: STD_LOGIC_VECTOR (3 downto 0);
begin
process (clk)
begin
if clk'event and clk = '1' then
if ce = '1' then
if l = '1' then state <= b;
else state <= state(3)&state(3 downto 1);
end if;
end if;
end if;
end process;
q <= state;
f1 <= state(3);
f2 <= state(0);
end Behavioral;
Комбинационная схема 1 (КС1) - предназначена для принятия операнда из регистра А либо в прямом, либо в обратном коде, либо коррекции, либо нуля.
entity kc1 is
Port ( a : in STD_LOGIC_VECTOR (7 downto 0);
ce, cod : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (7 downto 0));
end kc1;
architecture Behavioral of kc1 is
signal y: STD_LOGIC_VECTOR(1 downto 0);
begin
y <= ce & cod;
with y select
d <= a when "11",
not a when "10",
a(7)&a(7)&a(7)&a(7 downto 3) when "01",
"00000000" when others;
end Behavioral;
Комбинационная схема 2 (КС2) - предназначена для принятия операнда из регистра B, либо результата сложения из регистра результатов.
entity kc2 is
Port ( b : in STD_LOGIC_VECTOR (3 downto 0);
a : in STD_LOGIC_VECTOR (7 downto 0);
q : out STD_LOGIC_VECTOR (7 downto 0);
Op: in STD_LOGIC);
end kc2;
architecture Behavioral of kc2 is
begin
q <= a when Op = '0'
else
'0'&'0'&'0'&'0'&'0'&b(3 downto 1);
end Behavioral;
Сумматор (alu) - предназначен для принятия данных либо из комбинационной схемы 1, либо из комбинационной схемы 2, и осуществления суммирования.
entity alu is
Port ( a, b : in STD_LOGIC_VECTOR (7 downto 0);
s : out STD_LOGIC_VECTOR (7 downto 0));
end alu;
architecture Behavioral of alu is
begin
pr1: process(a, b)
variable sym: STD_LOGIC_VECTOR (8 downto 0);
begin
sym:=('0'&a) + ('0'&b);
if (sym(8) = '1')then sym(8):='0'; sym := sym + "00000001";
end if;
s <= sym(7 downto 0);
end process pr1;
end Behavioral;
Регистр результата (rr) - предназначен для принятия результата сложения из сумматора.
entity rr is
Port ( d : in STD_LOGIC_VECTOR (7 downto 0);
ce, clk, r : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (7 downto 0));
end rr;
architecture Behavioral of rr is
signal state: STD_LOGIC_VECTOR (7 downto 0);
begin
process (clk)
begin
if (clk'event and clk = '1') then
if (r = '1') then state <= "00000000";
elsif (ce = '1') then state <= d;
end if;
end if;
end process;
q <= state;
end Behavioral;
Комбинационная схема 3, признак результата (KC3mem) - предназначена для определения признака результата и его хранения.
entity kc3mem is
Port ( a: in STD_LOGIC_VECTOR(7 downto 0);
ce, clk : in STD_LOGIC;
prr: out STD_LOGIC);
end kc3mem;
architecture Behavioral of kc3mem is
signal d: STD_LOGIC;
begin
d <= (a(7) or a(6) or a(5) or a(4) or a(3) or a(2) or a(1) or a(0));
process(clk)
begin
if clk'event and clk = '1' then
if ce = '1' then prr <= d;
end if;
end if;
end process;
end Behavioral;
Разработка местного устройства управления
Управляющие сигналы и логические условия:
Таблица. 1)
Сигнал |
Операция |
|
Y[1] |
Вход разрешения работы регистра А |
|
Y[2] |
1 - Загрузка множителя в регистр А 0 - Сдвиг множителя влево на 1 разряд |
|
Y[3] |
Вход разрешения работы регистра Б |
|
Y[4] |
1 - Загрузка множимого в регистр Б 0 - Сдвиг множимого вправо на 1 разряд |
|
Y[5] Y[6] |
11 - Снятие с регистра А прямого значения операнда 10 - Снятие с регистра А инверсного значения операнда 01 - Снятие с регистра А сдвинутого на 3 разряда вправо значение операнда. |
|
Y[7] |
Вход разрешения синхронизации в регистре результата |
|
Y[8] |
Вход синхронной очистки регистра результата |
|
Y[9] |
1 - Подключение к сумматору регистра результата 0 - Подключение к сумматору регистра Б |
|
Y[10] |
Вход разрешения записи признака результата в регистр признака |
|
Y[11] |
Разрешение инкремента i |
Таблица
Сигнал |
Логическое условие |
|
F1 |
Знак множителя |
|
F2 |
Анализируемый разряд множителя |
|
Fс |
Признак обработки последнего разряда множителя |
2) Алгоритм микропрограммы выполнения операции сдвига:
Рис.
Алгоритм микропрограммы выполнения операции умножения:
Рис.
3) Синтез КС1:
Таблица
Операция |
Переход |
KOP |
F1 |
Fc |
P4 |
P3 |
P2 |
P1 |
P0 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
Умножение |
P0->P1 P1->P2 P2->P1 P2->P3 P2->P4 P3->P4 P4-> |
0 |
X X X 1 0 X X |
X X 0 1 1 X X |
0 0 0 0 0 0 1 |
0 0 0 0 0 1 0 |
0 0 1 1 1 0 0 |
0 1 0 0 0 0 0 |
1 0 0 0 0 0 0 |
0 0 0 0 1 1 0 |
0 0 0 1 0 0 0 |
0 1 0 0 0 0 0 |
1 0 1 0 0 0 0 |
0 0 0 0 0 0 0 |
|
Сдвиг в право |
P0->P1 P1->P2 P2-> |
1 |
X X X |
X X X |
0 0 0 |
0 0 0 |
0 0 1 |
0 1 0 |
1 0 0 |
0 0 0 |
0 0 0 |
0 1 0 |
1 0 0 |
0 0 0 |
D0 = 0
D1 = P0 v P2 KOP Fc
D2 = P1
D3 = P2 F1 Fc KOP
D4 = (P2 Fc F1 v P3) KOP
Синтез КС2 и КС4:
Таблица
KOP |
P0 |
P1 |
P2 |
P3 |
P4 |
|
0 Умножение |
Y[1], Y[2], Y[3], Y[4], Y[8] |
Y[5]( F2 ) Y[6]( F2 ) Y[7],Y[11] |
Y[1], Y[3] |
Y[5], Y[7] |
Y[6](F1) Y[7](F1) SKO |
|
1 Сдвиг в право |
Y[3],Y[4] Y[8],Y[9] |
Y[7], Y[9] |
Y[9],Y[10], SKO |
- - - |
- - - |
Y[1] = (P0 v P2) KOP
Y[2] = P0 KOP
Y[3] = P0 v P2 KOP
Y[4] = P0
Y[5] = (P1 F2 v P3) KOP
Y[6] = (P1 F2 v P4 F1) KOP
Y[7] = P1 v (P3 v P4 F1) KOP
Y[8] = P0
Y[9] = KOP
Y[10] = P2 KOP
Y[11] = P1 KOP
SKO = P2 KOP v P4 KOP
4) Схема местного устройства управления:
Схема
Комбинационная схема 4 - предназначена для выработки управляющих сигналов для блока операций и сигнала конца операции для центрального устройства управления. принимает состояния триггеров, код операции, текущий анализируемый разряд множителя, знак множителя и признак последнего анализируемого разряда множителя. Передаёт блоку операций и счётчику управляющие сигналы и сигнал конца операции центральному устройству управления.
entity kc4 is
Port ( p0 : in STD_LOGIC;
p1 : in STD_LOGIC;
p2 : in STD_LOGIC;
p3 : in STD_LOGIC;
p4 : in STD_LOGIC;
kop : in STD_LOGIC;
f1 : in STD_LOGIC;
f2 : in STD_LOGIC;
fc : in STD_LOGIC;
y : out STD_LOGIC_VECTOR (10 downto 1);
y11 : out STD_LOGIC;
sko : out STD_LOGIC);
end kc4;
architecture Behavioral of kc4 is
begin
y(1)<=(p0 or p2) and not kop;
y(2)<=p0 and not kop;
y(3)<=p0 or (p2 and not kop);
y(4)<=p0;
y(5)<=((p1 and f2) or p3) and not kop;
y(6)<=((p1 and f2) or (p4 and f1)) and not kop;
y(7)<=p1 or ((p3 or (p4 and f1)) and not kop);
y(8)<=p0;
y(9)<=kop;
y(10)<=(p2 and kop);
y11<=p1 and not kop;
sko<=(p2 and kop) or (p4 and not kop);
end Behavioral;
Разработка центрального устройства управления
1) Проектирование блока управления командами.
Набор операций, выполняемых процессором включает 4 команды: умножение, сдвиг в право, переход по равенству нулю и останов. Поэтому операционная часть команды - поле КОП - должна содержать не меньше 2-х разрядов.
Физически оперативная память организована как массив из 16-ти 4-разрядных ячеек(байтов), а регистровая - как массив из 4-х 4-разрядных ячеек. Логический адрес будет совпадать с физическим в обоих случаях.
Рис.
Для указания логического адреса операнда в адресном поле команды ПП потребуется 4 разряда. При аппаратном преобразовании логического адреса в физический адрес ячейки памяти старшие 3 разряда будут определять физический адрес, а младший разряд укажет положение полубайта в ячейке. Аналогично и для формата РР, потребуется 2 разряда. Для определения адресной части формата команд рассмотрим механизмы прямой адресации и относительной адресации с индексированием.
В прямой адресации код адреса операнда в команде является исполнительным адресом обращения к памяти.
Рис.
При относительной адресации с индексированием базовым адресом является счётчик команд, а в команде указывается смещение и номер регистра, который содержит дополнительное смещение (индекс). Исполнительный адрес формируется суммированием содержимого счётчика команд, смещения и индекса.
Рис.
В соответствии с техническим заданием форматы команд можно представить в следующем виде.
Рис.
Таблица. Двоичный код КОП:
Разряды поля КОП команды |
Операция |
Тип команд |
||
Коп1 |
Коп0 |
|||
0 |
0 |
Умножение |
Линейные |
|
0 |
1 |
Сдвиг вправо |
||
1 |
0 |
Переход |
Нелинейные |
|
1 |
1 |
Останов |
2) Составление алгоритма выполнения команд.
Рис.
3) Схема центрального устойства управления.
Рис.
Счётчик команд (СК) - служит для фиксации и формирования адресов команд, располагающихся в ячейках оперативной памяти.
entity CK is
Port ( A : in STD_LOGIC_VECTOR (3 downto 0);
inc, l, clr: in STD_LOGIC;
clock : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (3 downto 0));
end CK;
architecture Behavioral of CK is
Shared Variable cou: STD_LOGIC_VECTOR(3 downto 0);
begin
process (clock)
begin
if clock'event and clock = '1' then
cou := cou + inc;
if l = '1' then cou := A;
elsif clr = '1' then cou := "0000";
end if;
end if;
Q <= cou;
end process;
end Behavioral;
Регистр команд (РК) - предназначен для хранения кода команды после приёма из оперативной памяти.
entity PK is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
en: in STD_LOGIC;
clock : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (11 downto 0));
end PK;
architecture Behavioral of PK is
Shared Variable state: STD_LOGIC_VECTOR(11 downto 0);
Shared Variable count: STD_LOGIC_VECTOR(1 downto 0);
Shared Variable kop: STD_LOGIC_VECTOR(1 downto 0);
begin
process (clock)
begin
if clock'event and clock = '1' and en = '1' then
if count = "00" then
state := "000000000000";
kop := a(3 downto 2);
if kop = "11" then count := "01";
elsif kop = "10" or kop = "01" then count := "10";
else count := "11";
end if;
end if;
state := a & state(11 downto 4);
count := count - 1;
if count = "00" then
if kop = "01" or kop = "10" then state := state(7 downto 4) & state(11 downto 8) & "0000";
elsif kop = "00" then state := state(3 downto 0) & state(7 downto 4) & state(11 downto 8);
end if;
end if;
end if;
end process;
d <= state;
end Behavioral;
Буферные регистры (Reg) - предназначены для промежуточного хранения операндов при пересылках между центральным устройством управления и Арифметико-логическим устройством.
entity Reg is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
l, clk : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (3 downto 0));
end Reg;
architecture Behavioral of Reg is
signal state: STD_LOGIC_VECTOR (3 downto 0);
begin
process (clk)
begin
if clk'event and clk = '1' and l = '1' then state <= a;
end if;
d <= state;
end process;
end Behavioral;
Регистр признака результата (RPR) - служит для хранения признака результата, значение которого принимается из арифметико-логического устройства. Значение признака результата анализируется при выполнении команды перехода по равенству нулю.
entity RPR is
Port ( Ipr, l, clk : in STD_LOGIC;
Opr : out STD_LOGIC);
end RPR;
architecture Behavioral of RPR is
begin
process (clk)
Variable state: STD_LOGIC;
begin
if clk'event and clk = '1' then
if l = '1' then state := Ipr;
end if;
end if;
Opr <= state;
end process;
end Behavioral;
Оперативная память (OP) - служит для хранения команд и операндов.
Регистровая память (RP) - служит для хранения операндов и индексов.
Регистр исполнительного адреса (RIA) - предназначен для хранения исполнительных адресов с случаях, когда используются не прямые способы адресации.
entity RIA is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
l : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (3 downto 0);
clock : in STD_LOGIC);
end RIA;
architecture Behavioral of RIA is
signal state: STD_LOGIC_VECTOR (3 downto 0);
begin
process (clock)
begin
if clock'event and clock = '1' then
if l = '1' then state <= a;
end if;
end if;
end process;
d <= state;
end Behavioral;
Блок выработки микрокоманд (BMK) - предназначен для выработки всех управляющих сигналов, обеспечивающих выполнение последовательности команд заданной программой, а так же реализацию каждой отдельной команды.
entity BMK is
Port ( clk, Start, SKO, PR, InpO, InpR : in STD_LOGIC;
kop : in STD_LOGIC_VECTOR(1 downto 0);
SNO : out STD_LOGIC;
YC : out STD_LOGIC_VECTOR (0 to 13));
end BMK;
architecture Behavioral of BMK is
begin
process(clk)
Variable cou : STD_LOGIC_VECTOR(5 downto 0);
Variable bufY : STD_LOGIC_VECTOR(0 to 13);
Variable Ena, Ncom : STD_LOGIC;
Variable Sav : STD_LOGIC_VECTOR(1 downto 0);
Begin
if clk'event and clk = '1' then
bufY := "00000000000000"; SNO <= '0';
if Start = '1' or Ncom = '1' then
cou := "000000";
Ena := '1';
bufY(0) := '1';
bufY(2) := '1';
Ncom := '0';
elsif Ena = '1' then
if cou = 1 then
if kop = "11" then Ena := '0';
else bufY(0) := '1';
end if;
elsif cou = 2 then bufY(2) := '1';
elsif cou = 3 then
if kop = "10" or kop = "01" then
bufY(3) := '1';
if kop = "01" then bufY(9) := '1';
end if;
end if;
elsif cou = 4 then
if kop = "00" then bufY(2) := '1';
elsif kop = "01" then bufY(9) := '1';
end if;
elsif cou = 5 then
if kop = "00" then bufY(3) := '1';
elsif kop = "10" and Pr = '0' then bufY(1) := '1';
end if;
elsif cou = 6 then
if kop = "00" then
bufY(8) := '1';
bufY(9) := '1';
elsif kop = "01" then
bufY(11) := '1';
bufY(13) := '1';
Ena := '0';
SNO <= '1';
end if;
elsif cou = 7 and kop = "10" then
Ena := '0';
Ncom := '1';
elsif cou = 8 then bufY(4) := '1';
elsif cou = 9 then bufY(5) := '1';
elsif cou = 10 then bufY(12) := '1';
elsif cou = 11 then
bufY(0) := '1';
bufY(13) := '1';
Ena := '0';
SNO <= '1';
end if;
cou := cou + 1;
end if;
if SKO = '1' then
if kop = "00" then
bufY(4) := '1';
bufY(6) := '1';
bufY(7) := '1';
Sav := "01";
elsif kop = "01" then
bufY(8) := '1';
bufY(10):= '1';
Ncom := '1';
end if;
elsif Sav = "01" then
bufY(4) := '1';
bufY(5) := '1';
bufY(6) := '1';
bufY(7) := '1';
Sav := "10";
elsif Sav = "10" then Sav := "11";
elsif Sav = "11" then
Ncom := '1';
Sav := "00";
end if;
if InpO = '1' then
bufY(6) := '1';
bufY(7) := '1';
end if;
if InpR = '1' then bufY(10) := '1';
end if;
YC <= bufY;
end if;
End process;
end Behavioral;
Таблица. Управляющие сигналы БМК:
Сигнал |
Назначение |
|
YC0 |
Увеличение состояния СК на 1 |
|
YC1 |
Загрузка адреса перехода в СК |
|
YC2 |
Разрешение записи команды в РК |
|
YC3 |
Разрешение передачи в РИА адреса из РК |
|
YC4 |
Выбор источника адреса ОП и источника данных для записи в ОП. |
|
YC5 |
||
YC6 |
||
YC7 |
Разрешение записи данных в ОП |
|
YC8 |
Выбор источника адреса РП и источника данных для записи в РП. |
|
YC9 |
||
YC10 |
Разрешение записи в РП. |
|
YC11 |
Выбор типа памяти(ОП или РП) |
|
YC12 |
Разрешение записи операнда в регистр Р1 |
|
YC13 |
Разрешение записи операнда в регистр Р2 |
Комбинационная схема 5 (КС5) - предназначена для выбора источника операнда для записи в буферный регистр.
entity KC5 is
Port ( a, b : in STD_LOGIC_VECTOR (3 downto 0);
y : in STD_LOGIC;
d : out STD_LOGIC_VECTOR (3 downto 0));
end KC5;
architecture Behavioral of KC5 is
begin
d <= a when y = '0'
else b;
end Behavioral;
Комбинационная схема 6 (КС6) - предназначена для считывание и записи данных в оперативную память.
entity KC6 is
Port ( com, inadr : in STD_LOGIC_VECTOR (3 downto 0);
Rez : in STD_LOGIC_VECTOR (7 downto 0);
CK, reg : in STD_LOGIC_VECTOR (3 downto 0);
AdrC : in STD_LOGIC_VECTOR (7 downto 0);
y1, y2, inp : in STD_LOGIC;
Date, Oadr : out STD_LOGIC_VECTOR (3 downto 0));
end KC6;
architecture Behavioral of KC6 is
begin
process(y1, y2, inp)
Variable bufD, bufA : STD_LOGIC_VECTOR(3 downto 0);
begin
if inp = '0' then
if y1 = '0' and y2 = '0' then Oadr <= CK;
elsif y1 = '1' and y2 = '0' then Oadr <= CK+reg+AdrC(7 downto 4);
elsif y1 = '0' and y2 = '1' then Oadr <= AdrC(3 downto 0);
end if;
else
if y1 = '0' and y2 = '0' then
Date <= com;
Oadr <= Inadr;
elsif y1 = '1' and y2 = '0' then
Date <= Rez(7 downto 4);
Oadr <= CK-2;
elsif y1 = '1' and y2 = '1' then
Date <= Rez(3 downto 0);
Oadr <= CK-1;
end if;
end if;
end process;
end Behavioral;
Комбинационная схема 7 (КС7) - предназначена для считывания и записи данных в регистровую память.
entity KC7 is
Port ( Ria : in STD_LOGIC_VECTOR (3 downto 0);
Adr : in STD_LOGIC_VECTOR (1 downto 0);
Inad: in STD_LOGIC_VECTOR (1 downto 0);
Oper: in STD_LOGIC_VECTOR (3 downto 0);
Rez : in STD_LOGIC_VECTOR (3 downto 0);
y1, y2 : in STD_LOGIC;
Date: out STD_LOGIC_VECTOR (3 downto 0);
Oadr: out STD_LOGIC_VECTOR (1 downto 0));
end KC7;
architecture Behavioral of KC7 is
begin
process(y1, y2)
Begin
if y1 = '0' and y2 = '0' then
Date <= Oper;
Oadr <= Adr;
elsif y1 = '0' and y2 = '1' then
Oadr <= Ria(1 downto 0);
elsif y1 = '1' and y2 = '0' then
Date <= Rez;
Oadr <= Ria(3 downto 2);
else Oadr <= Inad;
end if;
end Behavioral;
Тестирование процессора ЭВМ.
1) Схема процессора ЭВМ.
Рис.
2) Временные диаграммы работы:
Рис.
Рис.
Список используемой литературы
1. Ефремов Н.В. Курс лекций по дисциплине «Организация ЭВМ и систем». МГУЛ. Москва. 2009-2010.
2. Ковригин Б.Н. Проектирование процессора ЭВМ. Учебное пособие. 2-е издание. МИФИ. Москва. 2006.
Размещено на Allbest.ru
Подобные документы
Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.
курсовая работа [734,9 K], добавлен 27.10.2010Разработка структурной схемы вычислительного устройства, выбор системы команд и определение форматов. Разработка алгоритма командного цикла, выполнения арифметических и логических операций. Проектирование операционного автомата, устройств управления.
курсовая работа [2,8 M], добавлен 15.05.2014Разработка структурной схемы устройства управления учебным роботом. Выбор двигателя, микроконтроллера, микросхемы, интерфейса связи и стабилизатора. Расчет схемы электрической принципиальной. Разработка сборочного чертежа устройства и алгоритма программы.
курсовая работа [577,8 K], добавлен 24.06.2013История развития центрального процессора. Основные проблемы создания многоядерных процессоров. Проектирование микропроцессорной системы на базе процессора Intel 8080. Разработка принципиальной схемы и блок-схемы алгоритма работы микропроцессорной системы.
курсовая работа [467,6 K], добавлен 11.05.2014Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Внутренние и внешние устройства персонального компьютера. Классификация и характеристики ЭВМ, основы учения и структуры первых поколений. Основные принципы построения ПК. Функции центрального процессора и операционные устройства управления компьютера.
курсовая работа [109,7 K], добавлен 04.11.2010Состав центрального процессора: устройства управления, арифметико-логическое, запоминающее. Тактовая частота и разрядность процессоров, его адресное пространство и рабочая температура. Тепловыделение процессоров и отвод тепла; количество ядер.
презентация [1,0 M], добавлен 03.02.2015Анализ выбора цифрового сигнального процессора и структурной схемы устройства обработки информации. Расчет надежности устройства и производительности обмена данных, разработка ленточного графика. Обзор особенностей радиального и межмодульного интерфейса.
дипломная работа [1,8 M], добавлен 20.05.2012Описание устройства и принципа работы составных элементов компьютера: системного блока, платы, центрального процессора, кеш-памяти, материнской платы BIOS и CMOS, запоминающего устройства RAM, компьютерной шины, логических контроллеров, аппаратных портов.
реферат [61,0 K], добавлен 10.01.2012Наименование разрабатываемого устройства. Назначение разрабатываемого устройства в городском транспорте. Обзорный анализ найденных аналогов. Обоснование актуальности разработки устройства. Разработка функциональной схемы разрабатываемого устройства.
курсовая работа [175,6 K], добавлен 04.07.2008