
- •Технічне завдання
- •Опис проекту
- •1. Структура мікрокомп`ютера
- •2 Зовнішній інтерфейс мікропроцесора Gnome
- •2.1 Порти мікропроцесора
- •2.2 Інтерфейс з зовнішньою пам'яттю
- •2.3 Переведення мікропроцесора до початкового стану
- •3. Програмна модель мікропроцесора
- •3.1 Програмно-доступні регістри
- •3.2 Множина інструкцій мікропроцесора
- •4. Внутрішня структура мікропроцесора
- •4.1 Інформаційний тракт мікропроцесора Gnome
- •1. Восьмирозрядний мультиплексор mux1
- •2. Програмно-доступні регістри pc,pc1, z, c, acc
- •3. Регістр інструкцій ir
- •4. Семирозрядний мультиплексор mux2 та суматор sm
- •5. Чотирирозрядний мультиплексор mux3
- •6. Арифметико-логічний пристрій
- •7. Регістровий файл
- •8. Допоміжні елементи
- •4.2 Цикли виконання команд
- •1. Цикл вибирання інструкцій (Instruction Fetch cycle -if)
- •2. Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - id)
- •3. Цикл виконання (Execute cycle - ex)
- •4.3 Керуючий автомат
- •1. Цикл вибирання інструкцій (Instruction Fetch cycle -if)
- •3. Цикл виконання (Execute cycle - ex)
- •Висновки
- •Список літератури
- •Додаток
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.
Ознайомився з основними прийомами опису керуючого та операційного автоматів, складових пристроїв, таких як мультиплексор, лічильник, компаратор, регістр, дешифратор, суматор, АЛП, регістровий файл.