Розробка VHDL – моделі комп’ютера

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2006
Тип роботи:
Курсовий проект
Предмет:
Проектування спеціалізованих комп’ютерних систем
Група:
КСМ

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Курсовий проект з предмету “Проектування спеціалізованих комп’ютерних систем” на тему: "Розробка VHDL – моделі комп’ютера ”. Анотація Роль і значення комп`ютерів у сучасному житті загальновідомі. Апаратні методи розв`язку задач також важливі і у ряді випадків є незамінними. Багато задач, такі як моделювання динамічних об`єктів, керування рухом (особливо керування рухом сукупності об`єктів), обробка сигналів та зображень у реальному часі, реалістична комп`ютерна графіка і подібні, пов`язані з багатократним виконанням порівняно простих операцій, крім того потребують виконання до декількох мільярдів операцій на секунду. Послідовне виконання великого числа елементарних кроків при комп`ютерному рішенні задачі займає відносно великий час. Крім того, незалежність апаратних засобів від складності задачі, що розв` язується, має і зворотною сторону – навіть для найпростіших задач необхідні блоки, що утворюють комп`ютер в цілому. Таким чином, прості задачі та задачі, що повинні розв`язуватися в реальному масштабі часу, можуть призвести до застосування апаратних варіантів розв`язку. Поняття «реальний час» означає, що результат повинен бути одержаний за обмежений інтервал часу, інакше він стає марним. Зміст Структура мікрокомп`ютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Зовнішній інтерфейс мікропроцесора Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Порти мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Інтерфейс із зовнішньою пам`ятю . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Переведення мікропроцесора до початкового стану . . . . . . . . . . . . . . . . . . . . . . 10 Програмна модель мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Програмно-доступні регістри . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Множина інструкцій мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Внутрішня структура мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Інформаційний тракт мікропроцесора Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Цикли виконання команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Керуючий автомат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Проектування зовнішнього спеціалізованого пристрою . . . . . . . . . . . . . . . . . . . . . .19 Програма тестування для мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Часова діаграма роботи мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Додаток 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Висновки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Список літератури . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Вступ Мета курсового проекту полягає в опануваннi методiв проектування вузлiв комп’ютерних систем на прикладi створення моделi однокристального комп`ютера з використанням мови апаратного опису VHDL, виконаннi симуляцiї з наступним тестуванням роботи мiкропроцесорної системи на функцiональному рiвнi. Розроблюваний унiверсальний однокристальний мікрокомп`ютер є рiзновидом унiверсальних комп`ютерів. Вiн мiстить усi стандартнi пристрої, необхiднi для реалiзацiї цифрової системи мiнiмальної конфiгурацiї, а саме – процесор, пам`ять команд, пам`ять даних, внутрiшнiй тактовий генератор. Основою мікрокомп`ютера, що проектується, є мiкропроцесор Gnome – 4-розрядний гiпотетичний неконвеєрний RISC мiкропроцесор, зi спрощеною системою команд та типiв адресування. Основну увагу пiд час розробки мiкропроцесора придiлено проектуванню архiтектури з використанням мови апаратного опису VHDL, оскiльки при проектуваннi НВiС (надвеликих iнтегральних схем) з використанням рiвнiв архiтектурного, логiчного, топологiчного проектування успiх розробки найбiльшою мiрою залежить вiд результатiв попереднього, архiтектурного рiвня проектування. Вибраний спосiб побудови моделi пристрою за допомогою мови VHDL та iнструментального засобу Аctive-HDL фiрми Аldес забезпечує можливiсть швидкої модифiкацiї архiтектури, є самоописовим, тобто вiн дозволяс швидко виявляти та усувати хиби проектування. Альтернативою опису моделi за допомогою мов апаратного опису є схемотехнiчний синтез та синтез архiтектури з використанням функцiй алгебри логiки. Синтез архiтектури з використанням функцiй алгебри логiки вимагає вiд розробника опису схеми в термiнах заданої множини логiчних функцiй. Такий пiдхiд є ефективний при побудовi пристроїв невеликої складностi. Суто теоретично функцiонування можна описати даним способом, але через велику складнiсть вiн є неприйнятним. Метод схемотехнiчного синтезу базується на синтезi з використанням як окремих логiчних функцiй, так i елементiв, що побудовано на основi логiчних функцiй. Схемотехнiчний дизайн є зручним i наочним для схем невеликої складностi. Вiн дозволяс зручно втiлювати евристичнi схемотехнiчнi рiшення. Проте цей метод є практично неприйнятним для схем великої складностi (вiд 10 тисяч логiчних елементiв), оскiльки складно формулюсться, не дає змоги швидко модифiкувати проект, вчасно виявляти та усувати хиби проектування. Мова VHDL дозволяє охопити водночас декiлька рiвнiв проектування вiд архiтектурного до логiчного. Ця мова апаратного опису дас змогу описати пристрiй як на поведiнковому, так i на структурному рiвнях та провести симуляцiю. Тут синтез топологiї кристала виконують засобами автоматизованого синтезу на основi поведiнкового та структурного описiв пристрою. У складних проектах застосування мови VHDL та потужного засобу логiчного синтезу дозволяї синтезувати пристрої, якi за ефективнiстю перевищують аналогiчнi, з використанням схемотехнiчного методу синтезу. Технічне завдання Розробити VHDLмодель мікрокомп`ютера з використанням пакету Active-HDL. Провести симуляцію на функціональному рівні блоків мікрокомп`ютера. Скласти програму та провести симуляцію виконання програми мікропроцесором. Проектування мікропроцесорної системи виконати в такій послідовності: Проектування та тестування компонентів інформаційного тракту мікропроцесора, блока зовнішньої пам`яті та зовнішнього суматора. Проектування та тестування інформаційного тракту мікропроцесора. Проектування та тестування керуючого автомату. Проектування та тестування мікропроцесора. Складання асемблерної програми та тестування мікрокомп`ютера загалом. Розробити WDTimer, який буде виконувати наступну функцію: в регістер REG записуємо значення періоду для таймера, за допомогою команди STARTWDT ми запускаємо таймер і коли лічильник досягне кінцевого значення, яке знаходиться в регістрі REG, відбудеться генерація сигналу для апаратного скиду що перезагрузить мікропроцесор. Опис проекту 1. Структура мікрокомп`ютера Базова структура мікрокомп’ютера містить мікропроцесор Gnome, блок зовнішньої пам’яті та два зовнішніх спеціалізованих пристрої (рис.1.1). Наведена структура мікрокомп’ютера не є функціонально завершеною, оскільки відсутній інформаційний зв’язок поміж мікрокомп’ютером та зовнішнім оточенням. З погляду учбового функціонального проектування таке обмеження не є критичним. Рис.1.1. Структура мікрокомп’ютера Зовні на мікрокоп`ютер надходять два сигнали: clock та reset. Перший є сигналом синхронізації, а другий – загальним скидом. 2 Зовнішній інтерфейс мікропроцесора Gnome 2.1 Порти мікропроцесора Мікропроцесор Gnome має необхідну кількість інтерфейсних ліній/портів (address, data, csb, web, oeb), які дозволяють легко та з мінімальними витратами організувати взаємозв’язок поміж мікропроцесором Gnome та зовнішньою пам’яттю. Розглянемо детально призначення портів мікропроцесора: data – 8-розрядна двонаправлена шина даних; address – 8-розрядна адресна шина (можливе фізичне звертання до 256 комірок зовнішньої пам'яті); csb – керуючий сигнал вибору мікросхеми. Якщо csb='1', тоді обирається один із зовнішніх пристроїв, інакше звертання ведеться до пам`яті; oeb – сигнал дозволу видачі інформації на шину даних; data (oeb='0' – дозвіл); web – стробовий сигнал запису даних (web=‘0’ – запис); reset – сигнал початкового скиду, рівень лог. '1' переводить мікропроцесор до початкового стану; clock – на цей вхід надходять синхронізуючі імпульси з тактового генератора; Слід зауважити, що сигнал oeb дозволу видачі даних та стробовий сигнал запису даних web водночас активними бути не можуть. 2.2 Інтерфейс з зовнішньою пам'яттю Обмін інформацією між мікропроцесором та зовнішньою пам’яттю виконують 8-бітними словами. Запис/читання інформаційного слова мікропроцесором між зовнішньою пам’яттю та мікропроцесором виконується за один цикл. Це можливе, оскільки невеликий об’єм пам’яті (256х8) дозволяє інтегрувати на одному кристалі ядро процесора та зовнішню пам’ять. Насправді використовується лише перші 128 комірок пам`яті, оскільки адресний простір поділяють між собою зовнішня пам`ять та два зовнішніх пристрої (див.рис.2.2.1). Зовнішня пам`ять є пам`ятю типу RAM і використовується для читання програми для мікропроцесора і зберігання даних. Читання інформаційного слова з пам’яті (рис.2.2.2) виконують у такій послідовності: після надходження зростаючого фронту тактового імпульсу мікропроцесор формує адресу комірки пам’яті на шині address та сигнал дозволу видачі блоком пам'яті інформації на шину даних (oeb=’0’), блок пам’яті розміщує прочитану інформацію з комірки пам’яті за вказаною адресою на шині даних data. При подальшому надходженні зростаючого фронту тактового імпульсу мікропроцесор використовує вже сформовані дані з шини даних, записуючи їх у внутрішній регістр.  Рис.2.2.2. Часова діаграма читання даних із зовнішньої пам’яті З вищенаведеного зрозуміло, що розглядуваний мікропроцесор фізично може адресувати 128 8-розрядних комірок зовнішньої пам’яті. Проте можливість повноцінного використання всього простору пам’яті обмежується. Тут під час читання вмісту даних комірок використовують тільки 8-розрядні слова, але процесор має 4-розрядну внутрішню архітектуру і використовує останню тетраду. 2.3 Переведення мікропроцесора до початкового стану Переведення мікропроцесора до початкового стану виконується асинхронним сигналом reset. При надходженні reset=’1’ встановлюються в нульовий стан всі регістри у регістровому файлі, внутрішні регістри мікропроцесора. Сам мікропроцесор переходить в режим читання даних зовнішньої пам’яті за адресою “00000000” (цикл IF). На цей сигнал реагують також обидва зовнішні пристрої і «обнулюють» свої внутрішні регістри. 3. Програмна модель мікропроцесора Програмна модель має певні особливості, на які необхідно звернути увагу. По-перше, мікропроцесор Gnome має класичну Гарвардську архітектуру, по-друге, розглядуваний процесор є RISC процесором, в якому використовується тільки пряма та безпосередня адресація операндів. 3.1 Програмно-доступні регістри ACC – акумулятор є 4-розрядним регістром, призначеним для запису та збереження даних. Результат виконання арифметико-логічних інструкцій заноситься безпосередньо в акумулятор; C – регістр ознаки переносу. Програмно доступний регістр стану програми. Значення регістра формується при виконанні арифметичних інструкцій, встановлене в ‘1’ значення вказує на переповнення акумулятора. Регістр може встановлювати користувач за допомогою команд встановлення та скиду ознаки переносу. Значення регістра ознаки переносу використовують арифметичні інструкції та команди умовного переходу; Z – регістр ознаки нульового значення. Значення регістра формується при виконанні логічних операцій, значення регістра дорівнює ‘1’ при набутті значення “0000” після виконання логічної операції. Регістр не може безпосередньо встановлювати користувач. Значення регістра ознаки нульового значення використовують команди умовного переходу; PC – лічильник команд. Формує поточну адресу інструкції в пам’яті команд. Регістр містить 7 розрядів. Значення регістра PC збільшується на одиницю при виборі кожного байту команди, значення регістра можна встановити за допомогою інструкції переходу. PC1 – регістр, що зберігає «старе» значення лічильника команд під час виконання підпрограми обробки переривання. 3.2 Множина інструкцій мікропроцесора Система команд мікропроцесора Gnome містить 15 інструкцій (табл.3.2.1) Табл.3.2.1. Множина інструкцій мікропроцесора Інструкція Код Призначення Дія  CLEAR_C 00000000 Встановити значення регістра ознаки переносу С в ‘0’ C<=’0’  SET_C 00000001 Встановити значення регістра ознаки переносу С в ‘1’ C<=’1’  SKIP_C 00000010 Ігнорувати наступну інструкцію, якщо регістр ознаки переносу є встановленим (С=’1’) PC<=PC+C  SKIP_Z 00000011 Ігнорувати наступну інструкцію, якщо регістр ознаки нуля є встановленим (Z=’1’) PC<=PC+Z  LOAD_IMM 0001dddd Завантажити безпосередньо дані dddd/2/ в акумулятор (ACC). ACC<=IR[3:0]  ADD_IMM 0010dddd Додати dddd/2/ до акумулятора, результат помістити в акумулятор. Регістр ознаки переносу встановлюється в ‘1’ у разі переповнення регістра акумулятора. ACC<=ACC+IR[3:0] if ACC+IR[3:0] > F then C<=’1’  STORE_DIR 0011rrrr Зберегти вміст акумулятора в регістрі загального призначення RF за номером rrrr/2/. RF[IR[3:0]]<=ACC  LOAD_DIR 0100rrrr Завантажити у акумулятор вміст регістра загального призначення RF за номером rrrr/2/. ACC<=RF[IR[3:0]]  ADD_DIR 0101rrrr Додати вміст регістра загального призначення RF за номером rrrr/2/ до акумулятора, результат помістити в акумулятор. Регістр ознаки переносу встановлюється в ‘1’ у разі переповнення регістра акумулятора. ACC<=ACC+ RF[IR[3:0]] if ACC+RF[IR[3:0]]>F then C<=’1’  XOR_DIR 0110rrrr Виконати логічну операцію XOR над вмістом регістра загального призначення RF за номером rrrr/2/ та акумулятора ACC, результат занести в акумулятор. ACC<= ACC xor RF[IR[3:0]]  TEST_DIR 0111rrrr Виконати логічну операцію AND над вмістом регістра загального призначення RF за номером rrrr/2/ та акумулятора ACC, результат занести в акумулятор. Формується значення регістру нульового результату. ACC<= ACC and RF[IR[3:0]]  NOP 11000000 Збереження попереднього стану, ніяких дій не виконується. –  WRCYKL 10dddddd Завантажити безпосередньо дані dddddd/2/ в регіст (REG). REG<=IR[5:0]  STARTWDT 00000100 Команда запуску WDTimer’a. startC <= '1';   4. Внутрішня структура мікропроцесора У пристрої обробки цифрової інформації виділяють інформаційний тракт (операційний блок, Datapath Unit) та керуючий автомат (блок керування, Control Unit).Такий підхід спрощує проектування та полегшує розуміння процесу функціонування пристрою (рис.4.1.1).  Рис.4.1.1. Функціональна схема пристрою обробки цифрової інформації Інформаційний тракт мікропроцесора Gnome (рис.6) містить РЗП (регістровий файл), службові регістри, АЛП та допоміжні вузли, які забезпечують виконання інструкцій читанням даних з пам‘яті, їх зберігання та перетворення, до того ж інформаційний тракт формує для керуючого автомата сигнали стану з інформацією про стан операндів, окремих вузлів, особливих значень операндів, їх окремих розрядів та результати виконання операцій (наприклад, рівність нулю результату операції і т.п.). Процес функціонування в часі мікропроцесора складається з послідовності тактових інтервалів, в яких інформаційний тракт виконує елементарні операції — передачу слова з регістра в регістр, зсув і т.п. Виконання даних елементарних операцій ініціюється надходженням в інформаційний тракт відповідних керуючих сигналів (мікродій) з керуючого автомата. Послідовність елементарних операцій керуючий автомат формує на основі коду операції (регістр інструкцій IR) та службових сигналів стану з інформаційного тракту. Сукупність мікродій, які забезпечують виконання інструкції за певну кількість циклів, називають мікропрограмою даної інструкції. 4.1 Інформаційний тракт мікропроцесора Gnome Інформаційний тракт складається з таких компонентів: 1. Програмно-доступні регістри PC,PC1, Z, C, ACC Семирозрядний регістр PC призначено для зберігання вмісту лічильника команд. Регістр PC1 дублює значення регістру PC, при необхідності терміново виконати обробку переривання і відповідного переходу до нової адреси. Потім із нього відновлюється природній порядок виконання команд. Регістри Z та C є однорозрядними регістрами- тригерами, які зберігають поточне значення регістра ознаки нульового значення та регістра ознаки переносу. ACC – чотирирозрядний регістр, який виконує роль акумулятора. До кожного з них надходять глобальні сигнали синхронізації та скиду. 2. Регістр інструкцій IR Призначено для зберігання коду прочитаної інструкції. Керуючий сигнал ld_ir дозволяє завантажувати в регістр IR 8-розрядне слово інструкції з пам‘яті команд. Якщо сигнал ld_ir=’0’, то регістр зберігає своє попереднє значення, інакше з пам`яті команд до нього завантажується 8-розрядне слово команди. Вихід з цього регістра поступає до керуючого автомата, регістрового файлу, АЛП та на мультиплексор формування фізичної адреси. 3. Арифметико-логічний пристрій АЛП є комбінаційним пристроєм, який виконує певні операції над вхідними операндами. Для випадку розглядуваного мікропроцесора Gnome першим вхідним операндом АЛП (рис.4.1.1) є поточна інформація з акумулятора cur_acc, другим операндом є вихід мультиплексора MUX3, а також поточні значення ознак переносу curr_carry та нуля curr_zero. На виході блок АЛП залежно від коду операції alu_op формує результат: наступне значення акумулятора next_acc, отримане значення ознаки переносу next_carry, отримане значення ознаки нуля next_zero. Блок АЛП виконує невелику кількість операцій над 4-розрядними операндами (табл.4.1.3), що зумовлено простою системою команд мікропроцесора. Табл.4.1.3 Множина операцій АЛП   4. Допоміжні елементи В інформаційному тракті мікропроцесора Gnome присутні повторювачі, інвертори та інші логічні елементи, які забезпечують формування керуючих сигналів та інформації на шині даних. 4.2 Цикли виконання команд Інформаційний тракт мікропроцесора Gnome забезпечує виконання однієї інструкції в поточний момент часу. Кожна інструкція виконується за три цикли. Після виконання поточної інструкції мікропроцесор переходить до виконання наступної (рис.4.2.1), тобто в основу закладено принцип послідовного неконвеєрного опрацювання інструкцій. Оскільки в даному курсовому проекті проектування мікропроцесора виконується на функціональному рівні, то при синтезі VHDL-моделі увага часовим витратам виконання кожного циклу не приділяється. Вважатимемо, що час виконання кожного з циклів є однаковий і дорівнює тривалості тактового інтервалу clock. Розглянемо детально множини мікродій (елементарних операцій), що виконуються у кожному циклі:  Рис.4.2.1. Послідовність виконання циклів команд в мікропроцесорі Gnome 1. Цикл вибирання інструкцій (Instruction Fetch cycle -IF) Виконуються наступні мікродії: IR = ROM[PC]; PC = PC + 1. Виконання першої мікродії забезпечує завантаження з пам‘яті інструкцій ROM за адресою, яка вказана в регістрі PC, команди з пам’яті програм в регістр інструкцій IR. Друга мікродія виконує інкремент лічильника команд PC на одиницю, що формує адресу комірки пам‘яті, з якої буде завантажуватись наступна планова інструкція. Обчислене значення адреси наступної команди на фазі IF може бути змінене на фазі EX під час виконання інструкцій переходу. Зауважимо, що нумерація мікродій в даному описі є суто умовною, оскільки згадані мікродії виконуються паралельно в часі і можуть розглядатись як одна сукупна мікродія. 2. Цикл декодування інструкції/вибирання операнда з регістрового файлу (Instruction decode/register fetch cycle - ID) У даному циклі проводиться декодування інструкції для виявлення команд, що працють з зовнішньою пам`ятю або одним з двох спеціалізованих пристроїв. Зокрема, це такі команди: LOAD та STORE в полі операнда яких (молодші 4-ри розряди) вказують адресу джерела або призначення операнда. Для таких команд встановлюються керуючі сигнали read,write,mx3 та sel_addr. Для решти інструкцій в циклі ID вибір операнда виконується з регістрового файлу або безпосередньо «виймається» з поля команди, сюди також входять інструкції, які не вимагають операнда. На цьому циклі також встановлюється сигнал pc1_we для запису у регістр PC1 значення, що містить лічильник команд (при надходженні сигналу переривання). 3. Цикл виконання (Execute cycle - EX) Послідовність виконання елементарних операцій, що виконуються інформаційним трактом на фазі EX, залежить від типу інструкції, які можна умовно об‘єднати в три групи: арифметико-логічні операції, операції збереження результату, операції умовних та безумовних переходів. У групу арифметико-логічних операцій входять команди: CLEAR_C, SET_C, LOAD_IMM, ADD_IMM, LOAD_DIR, ADD_DIR, XOR_DIR, TEST_DIR. При виконанні вищенаведених інструкцій в фазі EX бере участь арифметико-логічний пристрій, результат заноситься в акумулятор. В дану групу включені команди LOAD_IMM, LOAD_DIR, оскільки запис в акумулятор виконується за участю АЛП. Код операції alu_op для АЛП формує керуючий автомат: ACC = ACC alu_op IR[3:0] або ACC = ACC alu_op RF[IR[3:0]]. Встановлюється значення mx3 для вибору джерела для АЛП. В принципі можливим є читання із зовнішньої пам`яті даного з певної комірки, що адресується так: ACC=MEM[R0[3:0]&IR[3:0]]. Окремо стоїть команда NOP, призначення якої не виконувати протягом трьох циклів ніяких змін у стані мікропроцесора. 4.3 Керуючий автомат Проектування керуючого автомата є складним та багатогранним етапом проектування, оскільки вимагає від розробника розуміння особливостей функціонування пристрою, вміння вибрати та ефективно спроектувати абстрактний автомат. Керуючий автомат — один з найважливіших блоків мікропроцесора. Спільно з генератором тактових імпульсів, який формує сигнал синхронізації clock, керуючий автомат забезпечує проходження подій в мікропроцесорі в правильній послідовності, тобто декодування інструкції та генерацію відповідних керуючих сигналів для реалізації елементарних операцій інформаційним трактом в циклах IF, ID, EX, встановлення в початковий стан вузлів мікропроцесора при надходженні сигналу встановлення в початковий стан reset. Множину керуючих сигналів складають сигнали sel_addr, read, write, ld_ir, inc_pc, jump_pc, alu_op, pc1_we, mx3, we. Розглянемо детально, які значення керуючих сигналів формуються пристроєм керування на кожному циклі виконання інструкції. 1. Цикл вибирання інструкцій (Instruction Fetch cycle -IF) Завантаження з пам‘яті інструкцій, інкремент значення лічильника команд PC на одиницю: read <= '1'; ld_ir <= '1'; inc_pc <= '1'; перехід до циклу ID Для решти інструкцій, які не вимагають завантаження значення з пам`яті: sel_data_ram=0 read=0 write=0 ld_ir=0 inc_pc=0 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 alu_op=010 (ADD_OP) перехід до циклу IF 5. Проектування зовнішнього спеціалізованого пристрою Призначення керуючого сигналу — start: start – коли переходить в стан – ‘1’ відбувається запуск WDTimer’а. Опис WDTimer’а на мові Active-HDL: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_unsigned.all; use WORK.my_package.ALL; entity WDTimer is port( A : in std_logic_vector(7 downto 0); CLK : in std_logic; start : in std_logic; interapt : out std_logic ); end WDTimer; architecture WDTimer of WDTimer is signal REG: std_logic_vector(5 downto 0); begin process (CLK) begin if CLK'event and CLK='1' then if A (7 downto 6) = WRCYKL then REG<=A (5 downto 0); end if; end if; end process; process (CLK, start) variable VER: STD_LOGIC_VECTOR (5 downto 0); variable VER1 : std_logic; variable STR1 : std_logic; begin if CLK'event and CLK='0' then interapt <='0'; end if; if start='0' then STR1:='0'; elsif start='1' then STR1:='1'; VER:="000000"; end if; if start='1' and STR1='1' then VER1:='1'; end if; if VER1='1' then if CLK'event and CLK='0' then if VER<REG then VER:=VER+1; end if; if VER=REG then interapt<='1'; VER:="000000"; VER1:='0'; end if; end if; end if; end process; end WDTimer; Часова діаграма роботи WDTimer’а: 6. Програма тестування для мікропроцесора mem_array(0):= CLEAR_C; mem_array(1):= WRCYKL & "001001"; mem_array(2):= CLEAR_C; mem_array(3):= CLEAR_C; mem_array(4):= ADD_IMM & "0100"; mem_array(5):= STARTWDT; 7. Часова діаграма роботи мікрокомп`ютера Додаток 1: Лістинг програми яка моделює роботу мікрокомп’ютера на мові Active-HDL: Структура мікрокомп’ютера library IEEE; use IEEE.std_logic_1164.ALL; use IEEE.std_logic_unsigned.ALL; entity computer is port( clk :in std_logic; rst :in std_logic ); end computer; architecture structure of computer is -- internal sig. for Gnome and MEM connection signal address :std_logic_vector (7 downto 0); signal data :std_logic_vector (7 downto 0); signal csb :std_logic; signal oeb :std_logic; signal web :std_logic; signal rstWD :std_logic; signal start :std_logic; component gnome port( clk : in std_logic; rst : in std_logic; rstGWD : in std_logic; address : out std_logic_vector(7 downto 0); data : inout std_logic_vector(7 downto 0); csb : out std_logic; oeb : out std_logic; web : out std_logic; startG : out std_logic); end component; component mem port( address : in std_logic_vector(7 downto 0); data : inout std_logic_vector(7 downto 0); csb : in std_logic; oeb : in std_logic; web : in std_logic); end component; component wdtimer port( A : in std_logic_vector(7 downto 0); CLK : in std_logic; start : in std_logic; interapt : out std_logic); end component ; begin GNOME_UNIT: gnome port map( clk => clk, rst => rst, rstGWD => rstWD, address => address, data => data, csb => csb, oeb => oeb, web => web, startG =>start ); MEM_UNIT: mem port map( address => address, data => data, csb => csb, oeb => oeb, web => web ); WDTIMER_UNIT: wdtimer port map( A => data, CLK => clk, start => start, interapt => rstWD ); end structure; Структура GNOME_UNIT library ieee; use IEEE.std_logic_1164.all; entity Gnome is port( clk :in std_logic; rst :in std_logic; rstGWD :in std_logic; address :out std_logic_vector (7 downto 0); data :inout std_logic_vector (7 downto 0); csb :out std_logic; oeb :out std_logic; web :out std_logic; startG :out std_logic ); end Gnome; architecture structural of Gnome is -- internal gnome's signals declaration -- for datapath and control unit connections signal ir_data :std_logic_vector (7 downto 0); signal z_st :std_logic; signal c_st :std_logic; signal write :std_logic; signal read :std_logic; signal jump_pc :std_logic; signal inc_pc :std_logic; signal ld_ir :std_logic; signal ld_ir_lsn :std_logic; signal sel_data
Антиботан аватар за замовчуванням

31.03.2013 21:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!