Міністерство науки і освіти України
НУ “Львівська політехніка”
Кафедра ЕОМ
Курсовий проект
на тему: “Розроблення VHDL-моделі комп’ютера”
Анотація
У даному курсовому проекті, з використанням інструментального засобу Active-VHDL фірми ALDEC, було розроблено модель універсального однокристального комп`ютера на основі 4-розрядного гіпотетичного неконвеєрного RISC-мікропроцесора GNOME. Також було виконано симуляцію з наступним тестуванням роботи мікропроцесорної системи на функціональному рівні.
Зміст.
Анотація 2
Завдання на курсовий проект. 4
Вступ. 5
1. Опис мікропроцесора Gnome. 6
1.1 Структура мікрокомп’ютера. 6
1.2 Зовнішній інтерфейс мікропроцесора Gnome. 6
1.2.1 Порти мікропроцесора 6
1.2.2 Інтерфейс з зовнішньою пам'яттю. 7
1.2.3 Переведення мікропроцесора до початкового стану 7
1.3 Програмна модель мікропроцесора 7
1.3.1 Програмно-доступні регістри 8
1.3.2 Множина інструкцій мікропроцесора 8
1.4 Внутрішня структура мікропроцесора 9
1.4.2 Цикли виконання команд 13
1.4.3 Керуючий автомат 15
2. Симуляція роботи мікрокомп'ютера. 17
2.1 Команди тестової програми. 17
2.2 Часова діаграма тестування мікрокомп’ютера. 18
Висновок 19
Література. 20
Завдання на курсовий проект.
Розробити модель мікрокомп’ютера з використанням пакета Active-VHDL, додавши за вказівкою викладача регістр SR – копія акумулятора, команду SET_SR ( SR<= ACC).
Провести симуляцію на функціональному рівні блоків мікрокомп’ютера, скласти програму та провести симуляцію виконання програми мікропроцесором.
Проектування мікропроцесорної системи потрібно виконати в такій послідовності:
Проектування та тестування компонентів інформаційного тракту мікропроцесора, блока зовнішньої пам’яті.
Проектування та тестування інформаційного тракту мікропроцесора.
Проектування та тестування керуючого автомата.
Проектування та тестування мікропроцесора.
Складання асемблерної програми та тестування мікрокомп’ютера загалом.
Розробляючи пристрій з використанням VHDL, дотримуватись правил організації та оформлення файлів проекту, а саме:
файли проекту необхідно формувати за принципом: один структурний елемент - один файл;
файл проекту необхідно супроводжувати коментарями та заголовком;
назва файлу має бути аналогічна до назви модуля, що в ньому описується;
створення та використання власного файлу з параметрами що використовуються під час проектування, для уникнення дублювання однакової інформації у файлах проекту.
Вступ.
Мета курсового проекту полягає в опануванні методів проектування вузлів комп’ютерних систем на прикладі створення моделі однокристального комп‘ютера з використанням мови апаратного опису VHDL, виконанні симуляції з наступним тестуванням роботи мікропроцесорної системи на функціональному рівні. Розроблюваний універсальний однокристальний мікрокомп‘ютер є різновидом універсальних комп‘ютерів. Він містить усі стандартні пристрої, необхідні для реалізації цифрової системи мінімальної конфігурації, а саме - процесор, пам‘ять команд, пам‘ять даних, внутрішній тактовий генератор.
Основою мікрокомп‘ютера, що проектується, є мікропроцесор Gnome - 4-розрядний гіпотетичний неконвеєрний RISC мікропроцесор, зі спрощеною системою команд та типів адресування.
Основну увагу під час розробки мікропроцесора приділено проектуванню архітектури мікрокомп‘ютера з використанням мови апаратного опису VHDL, оскільки при проектуванні НВІС (надвеликих інтегральних схем) з використанням рівнів архітектурного, логічного, топологічного проектування успіх розробки найбільшою мірою залежить від результатів попереднього, архітектурного рівня проектування. Вибраний спосіб побудови моделі пристрою за допомогою інструментального засобу Active-VHDL фірми Aldec забезпечує можливість швидкої модифікації архітектури,4 є самоописовим, тобто він дозволяє швидко виявляти та усувати хиби проектування.
Синтез архітектури мікрокомп‘ютера з використанням функцій алгебри логіки вимагає від розробника опису схеми в термінах заданої множини логічних функцій. Такий підхід є ефективний при побудові пристроїв невеликої складності. Суто теоретично функціонування мікрокомп‘ютера можна описати даним способом, але через велику складність він є неприйнятним.
Метод схемотехнічного синтезу базується на синтезі з використанням як окремих логічних функцій, так і елементів, що побудовано на основі логічних функцій. Схемотехнічний дизайн є зручним і наочним для схем невеликої складності. Він дозволяє зручно втілювати евристичні схемотехнічні рішення.
1. Опис мікропроцесора Gnome.
1.1 Структура мікрокомп’ютера.
Структура мікрокомп’ютера містить мікропроцесор Gnome та блок зовнішньої пам’яті (рис.1). Наведена структура мікрокомп’ютера не є функціонально завершеною, оскільки відсутній інформаційний зв’язок поміж мікрокомп’ютером та зовнішнім оточенням. До того ж, запропоновану структуру мікропроцесора можна доповнити додатковими компонентами з метою розширення функціональних можливостей мікрокомп’ютера.
Рис.1. Структура мікрокомп’ютера.
1.2 Зовнішній інтерфейс мікропроцесора Gnome.
1.2.1 Порти мікропроцесора
Мікропроцесор Gnome має необхідну кількість інтерфейсних ліній/портів (address, data, csb, oeb) (рис.2), які дозволяють легко та з мінімальними витратами організувати взаємозв'язок поміж мікропроцесором Gnome та зовнішньою пам'яттю.
Розглянемо детально призначення портів мікропроцесора:
data - 8-розрядна двонаправлена шина даних;
address - 8-розрядна адресна шина (можливе фізичне звертання до 256 комірок зовнішньої пам'яті);
csb - керуючий сигнал вибору мікросхеми пам'яті. Якщо csb='l', тоді інформаційні виходи мікросхеми пам'яті переведено в Z-стан;
oeb - сигнал дозволу видачі блоком пам'яті інформації на шину даних data (oeb='0'-дозвіл);
reset — сигнал початкового скиду, рівень лог. '1' переводить мікропроцесор до початкового стану;
clock — на цей вхід надходять синхронізуючі імпульси з тактового генератора.
Рис.2. Порти мікропроцесора Gnome.
1.2.2 Інтерфейс з зовнішньою пам'яттю.
Обмін інформацією між мікропроцесором та зовнішньою пам'яттю виконують 8-бітними словами. Запис у зовнішню пам’ять не реалізований, оскільки немає команд, які цього б вимагали. Читання інформаційного слова мікропроцесором між зовнішньою пам'яттю та мікропроцесором виконується за один цикл. Це можливе, оскільки невеликий об'єм пам'яті (256x8) дозволяє інтегрувати на одному кристалі ядро процесора та зовнішню пам'ять.
Читання інформаційного слова з пам'яті (рис.З) виконують у такій послідовності: після надходження зростаючого фронту тактового імпульсу мікропроцесор формує адресу комірки пам'яті на шині address та сигнал дозволу видачі блоком пам'яті інформації на шину даних (oeb= '0'), блок пам'яті розміщує прочитану інформацію з комірки пам'яті за вказаною адресою на шині даних data. При подальшому надходженні зростаючого фронту тактового імпульсу мікропроцесор використовує вже сформовані дані з шини даних, записуючи їх у внутрішній регістр.
Рис.З. Часова діаграма читання даних із зовнішньої пам'яті.
З вищенаведеного зрозуміло, що розглядуваний мікропроцесор фізично може адресувати 256 8-розрядних комірок зовнішньої пам'яті.
1.2.3 Переведення мікропроцесора до початкового стану
Переведення мікропроцесора до початкового стану виконується асинхронним сигналом reset. При надходженні reset= '1 'встановлюються в нульовий стан всі внутрішні регістри, мікропроцесор переходить в режим читання даних зовнішньої пам'яті за адресою "00000000" (цикл IF).
1.3 Програмна модель мікропроцесора
Програмна модель має певні особливості, на які необхідно звернути увагу. По-перше, мікропроцесор Gnome має класичну Гарвардську архітектуру, по-друге, розглядуваний процесор є RISC процесором, в якому використовується тільки пряма та безпосередня адресація операндів.
1.3.1 Програмно-доступні регістри
R0-R15 - Регістри загального призначення розрядністю 4-біти. Звертання до даних регістрів виконується за їхнім номером, так, регістр R0 має двійковий номер 0000/2/, R1 - 0001/2/, ..., R15 - 1111/2/;
АСС - Акумулятор є 4-розрядним регістром, призначеним для запису та збереження даних. Результат виконання арифметико-логічних інструкцій заноситься безпосередньо в акумулятор;
С - Регістр ознаки переносу. Програмно доступний регістр стану програми. Значення регістра формується при виконанні арифметичних інструкцій, встановлене в '1' значення вказує на переповнення акумулятора. Регістр може встановлювати користувач за допомогою команд встановлення та скиду ознаки переносу. Значення регістра ознаки переносу використовують арифметичні інструкції та команди умовного переходу;
Z - Регістр ознаки нульового значення. Значення регістра формується при виконанні логічних операцій, значення регістра дорівнює '1' при набутті значення "0000" після виконання логічної операції. Регістр не може безпосередньо встановлювати користувач. Значення регістра ознаки нульового значення використовують команди умовного переходу;
PC - Лічильник команд. Формує поточну адресу інструкції в пам'яті команд. Регістр містить 8 розрядів. Значення регістра PC збільшується на одиницю при виборі кожного байту команди, значення регістра можна встановити за допомогою інструкції переходу.
SF – Копія акумулятора. По команді SET_SR в регістр SR записується значення акумулятора(ACC).
Пам 'ять мікропроцесора Gnome використовується для збереження команд. Загальну пам'ять (256 комірок) призначено для збереження послідовності 8-розрядних інструкцій мікропроцесора, що складають програму. Мікропроцесор виконує операції читання вмісту пам'яті за адресою, яка зберігається в індексному регістрі.
1.3.2 Множина інструкцій мікропроцесора
Система команд мікропроцесора Gnome містить 14 інструкцій (табл.1), - це арифметико-логічні інструкції, інструкції збереження результату та інструкції умовного та безумовного переходів.
Таблиця 1
Інструкція
Код
Призначення
Дія
CLEAR_C
00000000
Встановити значення регістра ознаки переносу С в ‘0’.
С=’0’
SET_C
00000001
Встановити значення регістра ознаки переносу С в ‘1’.
С=’1’
SET_SR
00000100
Скопіювати акумулятор в регістр SR.
SR=ACC
SKIP_C
00000010
Ігнорувати наступну інструкцію, якщо регістр ознак переносу є встановлений (С=’1’)
РС=РС+С
SKIP_Z
00000011
Ігнорувати наступну інструкцію, якщо регістр ознак нульового значення встановлений (Z=’1’)
PC=PC+Z
LOAD_IMM
0001dddd
Завантажити безпосередні дані dddd в акумулятор (АСС)
ACC= [IR3..IR0]
ADD_IMM
0010dddd
Додати dddd до акумулятора, результат помістити в АСС. Регістр С встановлюється в ‘1’ у разі переповнення регістра АСС
ACC=ACC+[IR3..IR0]
STORE_DIR
0011rrrr
Зберегти вміст АСС в регістрі загального призначення R за номером rrrr
R[IR3..IR0]=ACC
LOAD_DIR
0100rrrr
Завантажити до АСС вміст ре-гістра R за номером rrrr.
ACC= R[IR3..IR0]
ADD_DIR
0101rrrr
Додати вміст регістра R за номером rrrr до акумулятора, результат помістити в АСС. Регістр С встановлюється в ‘1’ у разі переповнення регістра АСС
ACC=ACC+R[IR3..IR0]
XOR_ DIR
0110rrrr
Виконати логічну операцію ХОR над вмістом регістра R за номером rrrr та АСС, результат помістити в АСС.
ACC=ACC XOR R[IR3..IR0]
TEST_DIR
0111rrrr
Виконати логічну операцію AND над вмістом регістра загального призначення R за номером rrrr та акумулятора ACC. Формується значення регістра нульового результату.
ACC=ACC AND
R[IR3..IR0]
1.4 Внутрішня структура мікропроцесора
У пристрої обробки цифрової інформації виділяють інформаційний тракт (операційний блок, Datapath Unit) та керуючий автомат (блок керування, Control Unit).Такий підхід спрощує проектування та полегшує розуміння процесу функціонування пристрою (рис.5).
Рис. 5. Функціональна схема пристрою обробки цифрової інформації
Інформаційний тракт мікропроцесора Gnome (рис.6) містить РЗП, службові регістри, АЛП та допоміжні вузли, які забезпечують виконання інструкцій читанням даних з пам'яті, їх зберігання, перетворення та запис в пам'ять, до того ж інформаційний тракт формує для керуючого автомата сигнали стану з інформацією про стан операндів, окремих вузлів, особливих значень операндів, їх окремих розрядів та результати виконання операцій (наприклад, рівність нулю результату операції і т.п.).
Процес функціонування в часі мікропроцесора складається з послідовності тактових інтервалів, в яких інформаційний тракт виконує елементарні операції - передачу слова з регістра в регістр, зсув і т.п. Виконання даних елементарних операцій ініціюється надходженням в інформаційний тракт відповідних керуючих сигналів (мікродій) з керуючого автомата. Послідовність елементарних операцій керуючий автомат формує на основі коду операції (регістр інструкцій IR) та службових сигналів стану з інформаційного тракту. Сукупність мікродій, які забезпечують виконання інструкції за певну кількість циклів, називають мікропрограмою даної інструкції.
Примітка: Регістр інструкцій є складовою частиною керуючого автомата, проте заради зручності зображений у складі інформаційного тракту (рис. 6).
1.4.1 Інформаційний тракт мікропроцесора Gnome
Інформаційний тракт складається з таких компонентів:
Восьмирозрядний мультиплексор МІ та суматор SM
Призначено для формування логічної адреси наступної інструкції на основі керуючих сигналів jump_рс inc_рс (табл.2). Якщо іпс_рс= '1', на виході суматора є збільшений на одиницю вміст лічильника інструкцій PC, а якщо іпс_рс= '0', - поточне. Сигнал jump_рс керує формуванням наступної адреси з молодших розрядів регістра інструкцій IR (jump_pc= '1') або з виходу суматора SM(jump_pc='0').
Таблиця 2
jump_pc
inc_pc
Адреса наступної інструкції
0
0
Залишається незмінною, тобто дорівнює PC.
0
1
Дорівнює РС+1.
1
1
0
1
Дорівнює молодшим розрядам регістра інструкцій IR.
2. Програмно-доступні регістри PC, Z, С, АСС,AC
Восьмирозрядний регістр PC призначено для зберігання вмісту лічильника команд. Регістри Z та С є однорозрядними регістрами-тригерами, які зберігають поточне значення регістра ознаки нульового значення та регістра ознаки переносу. АСС - чотирирозрядний регістр, який виконує роль акумулятора, AC – регістр переносу з першохо розряду в другий.
3. Регістр інструкцій IR
Призначено для зберігання коду прочитаної інструкції. Керуючі сигнали ld_ir та ld_ir_lsn дозволяють завантажувати в регістр IR як 8-розрядне слово інструкції (табл.3), так і 4-розрядне слово даних з пам'яті даних.
Таблиця 3
ld_ir
ld_ir_lsr
Дія
0
0
Збереження вмісту IR без змін.
0
1
Завантаження в молодші розряди регістра інструкції IR 4-розрядного слова з шини даних, тобто завантаження з пам’яті даних вмісту РЗП RO-R15. Старші розряди регістра IR залишаються без змін.
1
1
0
1
Завантаження в регістр інструкцій IR 8-розрядної інструкції з шини даних.
5. Арифметико-логічний пристрій
АЛП є комбінаційним пристроєм, який виконує певні операції над вхідними операндами. Для випадку розглядуваного мікропроцесора Gnome першим вхідним операндом АЛП (рис.8) є поточна інформація з акумулятора сиrr_асс, другим операндом є молодші 4 біти регістра команд сиrr_ir, а також поточні значення ознак переносу curr_carry та нуля curr_zero. На виході блок АЛП залежно від коду операції alu_op формує результат: наступне значення акумулятора next_acc, отримане значення ознаки переносу next_carry, отримане значення ознаки нуля next_zero. Блок АЛП виконує невелику кількість операцій над 4-розрядними операндами (табл.4), що зумовлено простою системою команд мікропроцесора.
Рис. 8. Структурна схема АЛП
Таблиця 4
Операції АЛП
Код операції
Опис
NOP
000
АЛП дії не виконує
PASS_OP
001
На вихід next_acc подається значення curr_ir, значення ознак нуля та переносу залишаються незмінними.
ADD_OP
010
Виконання арифметичної операції додавання двох вхідних операндів, формується ознака переносу, ознака нуля залишається незміною.
XOR_OP
011
Виконання логічної операції XOR над двома вхідними операндами, ознака нуля та ознака переносу залишаються незмінною.
AND_OP
100
Виконання логічної операції AND над двома вхідними операндами, формується ознака нуля, ознака переносу залишаються незмінною.
SET_CARRY_OP
101
На вихід next_acc подається значення cur_acc, ознака переносу встановлюється в 1, ознака нуля залишається незмінним.
7. Допоміжні елементи
В інформаційному тракті мікропроцесора Gnome присутні повторювачі, інвертори та інші логічні елементи, які забезпечують формування керуючих сигналів та інформації на шині даних.
1.4.2 Цикли виконання команд
Інформаційний тракт мікропроцесора Gnome забезпечує виконання однієї інструкції в поточний момент часу. Кожна інструкція виконується за три цикли. Після виконання поточної інструкції мікропроцесор переходить до виконання наступної (рис.9), тобто в основу закладено принцип послідовного неконвеєрного опрацювання інструкцій.
Рис.9. Послідовність виконання циклів команд в мікропроцесорі Gnome
Оскільки в даному курсовому проекті проектування мікропроцесора виконується на функціональному рівні, то при синтезі VHDL-моделі увага часовим витратам виконання кожного циклу не приділяється. Вважатимемо, що час виконання кожного з циклів є однаковий і дорівнює тривалості тактового інтервалу clock. Розглянемо детально множини мікродій (елементарних операцій), що виконуються у кожному циклі:
1.Цикл вибирання інструкцій (Instruction Fetch cycle -IF)Виконуються наступні мікродії:
IR = MEM[PC];
РС = РС + 1.
Виконання першої мікродії забезпечує завантаження з пам'яті інструкцій MEM за адресою, яка вказана в регістрі PC, команди з пам'яті програм в регістр інструкцій IR. Друга мікродія виконує інкремент лічильника команд PC на одиницю, що формує адресу комірки пам'яті, з якої буде завантажуватись наступна планова інструкція. Обчислене значення адреси наступної команди на фазі IF може бути змінене на фазі ЕХ під час виконання інструкцій переходу. Зауважимо, що нумерація мікродій в даному описі є суто умовною, оскільки згадані мікродії виконуються паралельно в часі і можуть розглядатись як одна сукупна мікродія. По-друге, зовнішня відносно ядра процесора пам'ять дозволяє проводити читання та запис за один тактовий інтервал.
2.Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - ID)
У даному циклі проводиться декодування інструкції для виявлення команд, операндом яких є значення регістра R0-R15, номер якого вказаний в полі команди. Зокрема, це такі команди: LOAD_DIR, ADD_DIR, XOR_DIR, TEST_DIR, в полі операнда яких (молодші 4-ри розряди) вказується номер регістра загального призначення. Для таких команд виконується читання та запис в молодші 4 розряди регістра IR значення з регістрового файлу. Старші розряди регістра IR залишаються незмінними:
IR = [IR7...IR4]#RF[IR3...IR0],
INDEX[3..0]=RF[IR3...IR0].
Для решти інструкцій в циклі ID вибір операнда з регістрового файлу не виконується, оскільки сюди входять інструкції, які містять дані безпосередньо в полі команди, або інструкції, які не вимагають операнда.
З. Цикл виконання (Execute cycle - EX)
Послідовність виконання елементарних операцій, що виконуються інформаційним трактом на фазі ЕХ, залежить від типу інструкції, які можна умовно об'єднати в три групи: арифметико-логічні операції, операції збереження результату, операції умовних та безумовних переходів.
У групу арифметико-логічних операцій входять команди: CLEAR_C, SET_C, LOAD_IMM, ADD_IMM, LOAD_DIR, ADD_DIR, XOR_DIR, TEST_DIR. При виконанні вищенаведених інструкцій в фазі ЕХ бере участь арифметико-логічний пристрій, результат заноситься в акумулятор. В дану групу включені команди LOAD_IMM, LOAD_DIR, оскільки запис в акумулятор виконується за участю АЛП. Код операції аlu_ор для АЛП формує керуючий автомат:
АСС = АСС alu_op [IR3...IR0].
Групу операцій збереження результату становить команда STORE_DIR. При виконанні даних інструкції у фазі ЕХ записується вміст акумулятора в регістровий файл.
RF[IR3...IR0]=ACC для команди STORE_DIR
Група операцій умовних та безумовних переходів складається з команд SKIP_C, SKIP_Z, JUMP. При виконанні команди SKIP_C або SKIP_Z, при встановленому в одиницю регістра переносу С або регістра ознаки нульового результата Z відповідно, виконується збільшення поточного значення лічильника команд на одиницю:
РС = РС+1.
1.4.3 Керуючий автомат
Проектування керуючого автомата є складним та багатогранним етапом проектування, оскільки вимагає від розробника розуміння особливостей функціонування пристрою, вміння вибрати та ефективно спроектувати абстрактний автомат. Керуючий автомат — один з найважливіших блоків мікропроцесора. Спільно з генератором тактових імпульсів, який формує сигнал синхронізації clock, керуючий автомат забезпечує проходження подій в мікропроцесорі в правильній послідовності, тобто декодування інструкції та генерацію відповідних керуючих сигналів для реалізації елементарних операцій інформаційним трактом в циклах IF, ID, EX, встановлення в початковий стан вузлів мікропроцесора при надходженні сигналу встановлення в початковий стан reset. Множину керуючих сигналів складають сигнали read, ld_ir, ld_ir_lsn, inc_pc, jump_pc, alu_op, shl. Розглянемо детально, які значення керуючих сигналів формуються пристроєм керування на кожному циклі виконання інструкції.
1.Цикл вибирання інструкцій (Instruction Fetch cycle -IF)Завантаження з пам'яті інструкцій, інкремент значення лічильника
команд PC на одиницю:
read=l
shl=0
ld_ir=l
ld_ir_lsn=0
inc_pc=l
jump_pc=0
alu_op=000 (NOP)
перехід до циклу ID
2.Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - ID)
Для інструкцій LOAD_DIR, ADD_DIR, XOR_DIR, TEST_DIR операндом яких є значення РЗП R0-R15, виконується читання та запис в молодші 4 розряди регістра IR значення з регістрового файлу:
read=0
shl=0
ld_ir=0
ld_ir_lsn=l
inc_pc=l
jump_pc=0
alu_op=000 (NOP)
перехід до циклу ЕХ
Для решти інструкцій, які не вимагають завантаження значення з РЗП:
sel_data_ram=0
ld_ir=0
ld_ir_lsn=0
inc pc=1
jump_pc=0
alu_op=000 (NOP)
перехід до циклу ЕХ
З. Цикл виконання (Execute cycle - EX)
У даному циклі керуючі сигнали залежать від інструкції, це зумовлено відмінністю в множині мікрооперацій, виконуваних інформаційним трактом, для конкретної інструкції. Інструкції виконуються формуванням сигналів alu_op, inc_pc, jump_pc. Розглянемо типові приклади формування керуючих сигналів для інструкції групи:
ADD_DIR (група арифметико-логічних операцій):
read=0
ld_ir=0
ld_ir_lsn=0
inc_pc=0
jump_pc=0
alu_op=010 (ADD_OP)
перехід до циклу IF
STORE_DIR (група операцій збереження результату до регістрового файлу):
read=0
ld_ir=0
ld_ir_lsn=0
inc_pc=0
jump_pc=0
alu_op=000 (NOP)
перехід до циклу IF
LOAD_DIR (група операцій завантаження до регістрового файлу):
read=0
ld_ir=0
ld_ir_lsn=0
inc_pc=0
jump_pc=0
alu_op=000 (NOP)
перехід до циклу IF
JUMP (група операцій умовних та безумовних переходів):
sel_data_ram=0
read_mem=0
write_mem=0
ld_ir=0
ld_ir_lsn=0
inc_pc=0
jump_pc=l
alu_op=000 (NOP)
перехід до циклу IF
2. Симуляція роботи мікрокомп'ютера.
Для перевірки функціонування мікрокомп’ютера була створена програма, яка в собі містить команди з всіх груп (команди, що працюють з регістрами загального використання, з зовнішньою пам’яттю, команди безумовних та умовних переходів). Текст програми наведено нижче.
2.1 Команди тестової програми.
mem_array(0):= CLEAR_C;
mem_array(1):= SET_C;
mem_array(2):= SKIP_C;
mem_array(3):= JUMP &"0000000";
mem_array(4):= LOAD_IMM & "0111";
mem_array(5):= STORE_DIR & "0000";
mem_array(6):= LOAD_IMM & "0001";
mem_array(7):= ADD_IMM & "0001";
mem_array(8):= TEST_DIR & "0000";
mem_array(9):= SET_SR;
mem_array(10):= SKIP_Z;
mem_array(11):= JUMP & "0000111";
mem_array(12):= LOAD_IMM & "1111";
mem_array(13):= STORE_DIR & "0010";
mem_array(14):= LOAD_IMM & "1001";
mem_array(15):= ADD_IMM & "0001";
mem_array(16):= TEST_DIR & "0010";
mem_array(17):= SKIP_Z;
mem_array(18):= XOR_DIR & "0000";
mem_array(20):=JUMP & "0000011";
2.2 Часова діаграма тестування мікрокомп’ютера.
Висновок
У даній курсовій роботі було розроблено модель мікрокомп’ютера з використанням пакета Active-VHDL. Розроблений універсальний однокристальний мікрокомп’ютер є різновидом універсальних комп’ютерів. Він містить усі стандартні пристрої, необхідні для реалізації цифрової системи мінімальної конфігурації, а саме - процесор, пам’ять команд, пам’ять даних, внутрішній тактовий генератор. Основою спроектованого мікрокомп’ютера є мікропроцесор Gnome — 4-розрядний гіпотетичний неконвеєрний RISC мікропроцесор, зі спрощеною системою команд та типів адресування.
Основну увагу під час розробки мікропроцесора приділено проектуванню архітектури мікрокомп‘ютера з використанням мови апаратного опису VHDL, оскільки при проектуванні НВІС (надвеликих інтегральних схем) з використанням рівнів архітектурного, логічного, топологічного проектування успіх розробки найбільшою мірою залежить від результатів попереднього, архітектурного рівня проектування. Вибраний спосіб побудови моделі пристрою за допомогою інструментального засобу Active-VHDL фірми Aldec забезпечує можливість швидкої модифікації архітектури, є самоописовим, тобто він дозволяє швидко виявляти та усувати хиби проектування.
Література.
Методичні вказівки до циклу лабораторних робіт з курсу "Теорія і проектування комп’ютерних систем та мереж" для підготовки спеціалістів та магістрів на базі напрямку "Комп’ютерна інженерія" / Укл. Дунець Б.Р., Мельник А.О., Троценко В.В. – Львів: Видавництво ДУ “Львівська політехніка”, 1999. – 25с.
Методичні вказівки до дипломного проектування для студентів спеціальності 22.01 “Обчислювальні машини, системи, комплекси та мережі”. – Львів, ЛПІ, 1993.
Michael John Sebastian Smith Addison-Wesley Publishing Company VLSI Design Series 1,040 pages ISBN: 0-201-50022-1 June 1997
J.H. Henness, D.A.Patterson: Computer Architecture A Quantitative Approach, Morgan Kaufman Publishers, 1990
P.J. Ashenden: The VHDL Cookbook, First Edition, University of Adelaide, Australia, 1990
Інтернет сайт фірми Aldec Inc. http://www.aldec.com/