
- •Автоматизація проектування комп’ютерних систем
- •Лабораторна робота № 1. Середовище розробки Aldec Active-hdl
- •Лабораторна робота № 2. Проектування блоку регістрової пам’яті.
- •Лабораторна робота № 3. Проектування арифметико-логічного пристрою з акумулятором Мета роботи:
- •Загальні відомості
- •Лабораторна робота № 4. Проектування керуючого пристрою. Мета роботи:
- •Загальні відомості
- •Цикл if (вибірка інструкції)
- •Цикл ex (обчислення результату)
- •Абстрактні автомати
- •Хід роботи
Лабораторна робота № 4. Проектування керуючого пристрою. Мета роботи:
Навчитись створювати, модифікувати, компілювати та моделювати роботу керуючого пристрою мікропроцесора засобами пакету Aldec Active-HDL.
Загальні відомості
Операційний пристрій мікропроцесора Gnome, зображений на рис.1.
Рис. 2. Структурна схема операційного пристрою мікропроцесора Gnome.
Проектований мікропроцесор передбачає виконання інструкції за два етапи.
перший етап – IF (Instruction Fetch) - вибірка інструкції з пам’яті програм до регістру поточної інструкції IR (Instruction Register).
другий етап – EX (EXecution) – власне виконання специфічних для інструкції дій.
Після цього мікропроцесор переходить до виконання наступної інструкції (рис.2).
Рис. 3. Послідовність виконання інструкцій в мікропроцесорі Gnome.
Оскільки проектування мікропроцесора в даній роботі виконується на функціональному рівні, то при синтезі VHDL-моделі увага часовим витратам виконання кожного циклу не приділяється. Вважатимемо, що час виконання кожного з циклів є однаковий і дорівнює тривалості тактового інтервалу clock.
Цикл if (вибірка інструкції)
Виконання цього циклу передбачає читання інструкції із зовнішньої пам’яті програм за адресою, що зберігається в регістрі - вказівнику команд. Зчитане значення зберігається у регістрі інструкцій. Після цього обчислюється значення адреси наступної інструкції. Обчислене значення може бути змінене на фазі EX під час виконання інструкцій переходу. Таблиця 1 ілюструє мікрокоманди керуючого пристрою, що забезпечують виконання наведених вище дій. Мікродії виконуються паралельно в часі і можуть розглядатись як одна сукупна мікродія. Зовнішня відносно ядра процесора пам’ять повинна виконувати читання та запис за один тактовий інтервал.
Таблиця 1. Виконання циклу IF.
-
Інструкція
Дії
Мікрооперації
IR=IM[PC]
MeM_read <= '1'
Всі інструкції
ld_ir <= '1'
NPC=PC+1
inc_pc <= '1'
Цикл ex (обчислення результату)
Цей цикл передбачає виконання дій, специфічних для кожної інструкції. Тут можемо виділити шість груп інструкцій.
Інструкції АЛП (CLEAR_C, SET_C, LDA_IMM, ADDA_IMM, LDA_RG, ADDA_RG, XORA_RG, TESTA_RG) виконують певну дію над вхідним операндом та вмістом акумулятора АЛП. Виконання таких інструкцій ініціюється передачею відповідного коду операції (alu_op) до АЛП. Для інструкцій, операндом яких є значення з регістрового файлу, генерується також сигнал Rg_op.
Таблиця 2. Виконання циклу EX для АЛП - інструкцій.
-
Інструкція
Дії
Мікрооперації
CLEAR_C
C=’0’
alu_op <= CLR_C_OP;
SET_C
C=’1’
alu_op <= SET_C_OP;
LDA_IMM
ACC=[IR3...IR0]
alu_op <= LOAD_OP;
ADDA_IMM
ACC=ACC+[IR3...IR0]
alu_op <= ADD_OP;
LDA_RG
ACC= R[IR3...IR0]
alu_op <= LOAD_OP;
Rg_op <= '1';
ADDA_RG
ACC=B
alu_op <= ADD_OP;
Rg_op <= '1';
XORA_RG
ACC=ACC XOR B
alu_op <= XOR_OP;
Rg_op <= '1';
TESTA_RG
Z=ACC AND B
alu_op <= AND_OP;
Rg_op <= '1';
Інструкції звертання до зовнішньої пам’яті (LOAD, STORE) реалізують обмін даними між регістровим файлом та пам’яттю даних.
Таблиця 3. Виконання циклу EX для інструкцій звертання до пам’яті.
-
Інструкція
Дії
Мікрооперації
LOAD
R[IR3...IR0]=MEM[IX]
alu_op <= NOP_OP;
sel_dm <= '1';
MEM_read <= '1';
ld_op<= '1';
RgWrite <= '1';
STORE
MEM[IX]=R[IR3...IR0]
alu_op <= NOP_OP;
Rg_op <= '1';
sel_dm <= '1';
data_out <= '1';
MEM_write <= '1';
Інструкції завантаження індексного регістру значенням із регістрового файлу (SET_IXH, SET_IXL) виконуються активацією відповідних сигналів запису.
Таблиця 4. Виконання циклу EX для інструкцій завантаження РСП IX.
-
Інструкція
Дії
Мікрооперації
SET_IXH
IX[7...4]= R[IR3...IR0]
alu_op <= NOP_OP;
Rg_op <= '1';
write_ixh <='1';
SET_IXL
IX[3...0]= R[IR3...IR0]
alu_op <= NOP_OP;
Rg_op <= '1';
write_ixl <='1';
Інструкція збереження значення акумулятора в регістровому файлі (STA_RG) потребує сигналу запису до регістрового файлу (Rg_write).
Таблиця 5 Виконання циклу EX для інструкції збереження акумулятора.
-
Інструкція
Дії
Мікрооперації
STA_RG
R[IR3...IR0]= ACC
alu_op <= NOP_OP;
RgWrite <= '1';
Інструкції умовного переходу (SKIP_C, SKIP_Z) - виконують інкремент вказівника інструкцій за умови активності відповідної ознаки АЛП.
Таблиця 6. Виконання циклу EX для інструкцій завантаження РСП IX.
-
Інструкція
Дії
Мікрооперації
SKIP_C
If (C) Then PC= PC+1
inc_pc <= C;
SKIP_Z
If (Z) Then PC= PC+1
inc_pc <= Z;
Інструкція безумовного переходу (JMP_IX) присвоює вказівнику інструкцій значення індексного регістру IX, активуючи сигнал jump_pc.
Таблиця 7. Виконання циклу EX для інструкції збереження акумулятора.
-
Інструкція
Дії
Мікрооперації
JMP_IX
PC= IX
jump_pc <= '1';
Визначивши множину сигналів на входах та виходах пристрою, можемо описати його інтерфейс (рис. 3)
Рис. 4. Інтерфейс керуючого пристрою.