Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
з предмету “Проектування спеціалізованих комп’ютерних систем”
на тему: "Розробка VHDL – моделі комп’ютера ”.
Львів 2006
Анотація
Роль і значення комп`ютерів у сучасному житті загальновідомі. Апаратні методи розв`язку задач також важливі і у ряді випадків є незамінними. Багато задач, такі як моделювання динамічних об`єктів, керування рухом (особливо керування рухом сукупності об`єктів), обробка сигналів та зображень у реальному часі, реалістична комп`ютерна графіка і подібні, пов`язані з багатократним виконанням порівняно простих операцій, крім того потребують виконання до декількох мільярдів операцій на секунду.
Послідовне виконання великого числа елементарних кроків при комп`ютерному рішенні задачі займає відносно великий час. Крім того, незалежність апаратних засобів від складності задачі, що розв` язується, має і зворотною сторону – навіть для найпростіших задач необхідні блоки, що утворюють комп`ютер в цілому. Таким чином, прості задачі та задачі, що повинні розв`язуватися в реальному масштабі часу, можуть призвести до застосування апаратних варіантів розв`язку. Поняття «реальний час» означає, що результат повинен бути одержаний за обмежений інтервал часу, інакше він стає марним.
Зміст
Структура мікрокомп`ютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Провести симуляцію на функціональному рівні блоків мікрокомп`ютера. Скласти програму та провести симуляцію виконання програми мікропроцесором.
Проектування мікропроцесорної системи виконати в такій послідовності:
Проектування та тестування компонентів інформаційного тракту мікропроцесора, блока зовнішньої пам`яті та зовнішнього суматора.
Проектування та тестування інформаційного тракту мікропроцесора.
Проектування та тестування керуючого автомату.
Проектування та тестування мікропроцесора.
Складання асемблерної програми та тестування мікрокомп`ютера загалом.
Розробити зовнішній суматор, що виконує функцію додавання двох 4-х розрядних чисел та має таку структуру :
Регістер для запису першого операнду REG1;
Регістер для запису другого операнду REG2;
Регістер для запису результату REZ;
Керування відбувається за допомогою двохрозрядної шини — comand
Таблиця істиності:
Опис проекту
1. Структура мікрокомп`ютера
Базова структура мікрокомп’ютера містить мікропроцесор Gnome, блок зовнішньої пам’яті та два зовнішніх спеціалізованих пристрої (рис.1.1). Наведена структура мікрокомп’ютера не є функціонально завершеною, оскільки відсутній інформаційний зв’язок поміж мікрокомп’ютером та зовнішнім оточенням. З погляду учбового функціонального проектування таке обмеження не є критичним.
EMBED Visio.Drawing.6
Рис.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 – на цей вхід надходять синхронізуючі імпульси з тактового генератора;
data_out — 8-ми розрядний вхід даних із зовнішнього суматора;
ex_add — вхід ознаки результату зовнішнього суматора;
comand_out — вихід команди керування зовнішнім суматором;
Слід зауважити, що сигнал 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. Множина інструкцій мікропроцесора
4. Внутрішня структура мікропроцесора
У пристрої обробки цифрової інформації виділяють інформаційний тракт (операційний блок, Datapath Unit) та керуючий автомат (блок керування, Control Unit).Такий підхід спрощує проектування та полегшує розуміння процесу функціонування пристрою (рис.4.1.1).
Рис.4.1.1. Функціональна схема пристрою обробки цифрової інформації
Інформаційний тракт мікропроцесора Gnome (рис.6) містить РЗП (регістровий файл), службові регістри, АЛП та допоміжні вузли, які забезпечують виконання інструкцій читанням даних з пам‘яті, їх зберігання та перетворення, до того ж інформаційний тракт формує для керуючого автомата сигнали стану з інформацією про стан операндів, окремих вузлів, особливих значень операндів, їх окремих розрядів та результати виконання операцій (наприклад, рівність нулю результату операції і т.п.).
Процес функціонування в часі мікропроцесора складається з послідовності тактових інтервалів, в яких інформаційний тракт виконує елементарні операції — передачу слова з регістра в регістр, зсув і т.п. Виконання даних елементарних операцій ініціюється надходженням в інформаційний тракт відповідних керуючих сигналів (мікродій) з керуючого автомата. Послідовність елементарних операцій керуючий автомат формує на основі коду операції (регістр інструкцій IR) та службових сигналів стану з інформаційного тракту. Сукупність мікродій, які забезпечують виконання інструкції за певну кількість циклів, називають мікропрограмою даної інструкції.