Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсак Тиханський.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.03 Mб
Скачать

4.3 Керуючий автомат

Проектування керуючого автомата є складним та багатогранним етапом проектування, оскільки вимагає від розробника розуміння особливостей функціонування пристрою, вміння вибрати та ефективно спроектувати абстрактний автомат. Керуючий автомат — один з найважливіших блоків мікропроцесора. Спільно з генератором тактових

імпульсів, який формує сигнал синхронізації clock, керуючий автомат забезпечує проходження подій в мікропроцесорі в правильній послідовності, тобто декодування інструкції та генерацію відповідних керуючих сигналів для реалізації елементарних операцій інформаційним трактом в циклах IF, ID, EX, встановлення в початковий стан вузлів мікропроцесора при надходженні сигналу встановлення в початковий стан reset. Множину керуючих сигналів складають сигнали sel_addr, read, write, ld_ir, inc_pc, jump_pc, alu_op, pc1_we, mx3, disable_interrupt, enable_interrupt, we. Розглянемо детально, які значення керуючих сигналів формуються пристроєм керування на кожному циклі виконання інструкції.

1. Цикл вибирання інструкцій (Instruction Fetch cycle -if)

Завантаження з пам‘яті інструкцій, інкремент значення лічильника команд PC на одиницю:

read <= '1';

ld_ir <= '1';

inc_pc <= '1';

перехід до циклу ID

2. Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - ID)

Для інструкцій LOAD та STORE, що виконують читання та запис за відповідною адресою:

if ir_r(7 downto 4)= LOAD then

sel_addr <= '1';

read <= '1';

mx3<="10";

end if;

if ir_r(7 downto 4)= STORE then

sel_addr <= '1';

write <='1';

end if;

та встановлення сигналу запису до регістру PC1 при виникненні переривання

if inter='1' then

pc1_we<='1';

end if;

перехід до циклу EX

Для решти інструкцій, які не вимагають завантаження значення з пам`яті:

sel_data_ram=0

read=0

write=0

ld_ir=0

inc_pc=0

jump_pc=00

alu_op=000 (NOP)

перехід до циклу EX

3. Цикл виконання (Execute cycle - ex)

У даному циклі керуючі сигнали залежать від інструкції, це зумовлено відмінністю в множині мікрооперацій, виконуваних інформаційним трактом, для конкретної інструкції. Інструкції виконуються формуванням сигналів alu_op, inc_pc, jump_pc, sel_addr, write. Розглянемо типові приклади формування керуючих сигналів для інструкції групи:

ADD_DIR (група арифметико-логічних операцій):

sel_addr=0

read=0

write=0

ld_ir=0

inc_pc=0

jump_pc=0

mx3<="01";

alu_op=010 (ADD_OP)

перехід до циклу IF

LOAD (група операцій збереження результату)

sel_addr=1

read=1

write=0

ld_ir=0

inc_pc=0

jump_pc=11

mx3<="01";

alu_op <= PASS_OP;

перехід до циклу IF

Висновки

У процесі виконання курсової роботи проектував структурну схему мікропроцесора Gnome та структурні схеми до двох зовнішніх спеціалізованих пристроїв. Паралельно розробляв програмну модель цієї системи за допомогою засобів автоматизованого проектування Active-HDL, що працює з мовою опису апаратних засобів VHDL.

Ознайомився з основними прийомами опису керуючого та операційного автоматів, складових пристроїв, таких як мультиплексор, лічильник, компаратор, регістр, дешифратор, суматор, АЛП, регістровий файл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]