Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут комп`ютерної техніки та автоматики
Кафедра ЕОМ
Курсовий проект
з курсу
«Проектування НВІС»
на тему:
«Розробка і моделювання елементів НВІС»
Виконав:
студент групи СКС-5
Перевірив:
Львів – 2006
Анотація
Роль і значення комп`ютерів у сучасному житті загальновідомі. Апаратні методи розв`язку задач також важливі і у ряді випадків є незамінними. Багато задач, такі як моделювання динамічних об`єктів, керування рухом (особливо керування рухом сукупності об`єктів), обробка сигналів та зображень у реальному часі, реалістична комп`ютерна графіка і подібні, пов`язані з багатократним виконанням порівняно простих операцій, крім того потребують виконання до декількох мільярдів операцій на секунду.
Послідовне виконання великого числа елементарних кроків при комп`ютерному рішенні задачі займає відносно великий час. Крім того, незалежність апаратних засобів від складності задачі, що розв` язується, має і зворотною сторону – навіть для найпростіших задач необхідні блоки, що утворюють комп`ютер в цілому. Таким чином, прості задачі та задачі, що повинні розв`язуватися в реальному масштабі часу, можуть призвести до застосування апаратних варіантів розв`язку. Поняття «реальний час» означає, що результат повинен бути одержаний за обмежений інтервал часу, інакше він стає марним.
Зміст
Структура мікрокомп`ютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 7
Зовнішній інтерфейс мікропроцесора Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Порти мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Інтерфейс із зовнішньою пам`ятю . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Переведення мікропроцесора до початкового стану . . . . . . . . . . . . . . . . . . . . . 9
Програмна модель мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 10
Програмно-доступні регістри . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Множина інструкцій мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Внутрішня структура мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
Інформаційний тракт мікропроцесора Gnome . . . . . . . . . . . . . . . . . . . . . . ... . .14
Цикли виконання команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
керуючий автомат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Проектування зовнішніх спеціалізованих пристроїв . . . . . . . . . . . . . . . . . . . . . . . . .20
Проектування першого пристрою . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Проектування другого пристрою . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Програма тестування для мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Часові діаграми роботи мікропроцесора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Синтез мікрокомп`ютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Синтез мікрокомп`ютера у середовищі Synplify . . . . . . . . . . . . . . . . . . . . . . . . .24
Синтез мікрокомп`ютера на ПЛІС фірми Xilinx . . . . . . . . . . . . . . . . . . . . . .. . .26
8.3. Синтез мікрокомп`ютера на ПЛІС фірми Altera . . . . . . . . . . . . . . . . . . . . ... . .26
Висновки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Список літератури . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Вступ
Мета курсового проекту полягає в опануванн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кувати проект, вчасно виявляти та усувати хиби проектування.
Незручнiсть схемотехнiчного проектування складних систем дала поштовх розробцi низки мов проектування. Зокрема, на початку 80-х рокiв Мiнiстерство оборони США пiдтримало розробку мови VHDL (VHSIC hardware description language) в рамках програми VHDL (very high-speed ІС). Цю iнiцiативу було пiдтримано iнститутом iнженерiв електрикiв та електронникiв (IEEE) з метою розробки стандарту мови – IEEE Standard 1076-1987. Згодом Мiнiстерством Оборони США доповнило стандарт IEEE Standard 1076-1987 власним стандартом MIL-STD-454, який регламентував сам процес проектування НВiС iз використанням мови VHDL. Інститутом IEEE запроваджено стандарт Std-1164 бiблiотеки мови VHDL уведенням багаторiвневої логiки, яка необхiдна в моделюваннi роботи iнтегральної схеми, запроваджено стандарт Std-1029 регламентацiї способiв верифiкацiї та тестування проекту. В 1993 роцi запроваджено новий IEEE стандарт мови VHDL 1076-1993, що доповнив iснуючий. Поширення набула абревiатура VHDL -87 та VHDL -93.
Мова 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. Провести симуляцію на функціональному рівні блоків мікрокомп`ютера. Скласти програму та провести симуляцію виконання програми мікропроцесором.
Проектування мікропроцесорної системи виконати в такій послідовності:
Проектування та тестування компонентів інформаційного тракту мікропроцесора, блока зовнішньої пам`яті та двох зовнішніх пристроїв.
Проектування та тестування інформаційного тракту мікропроцесора.
Проектування та тестування керуючого автомату.
Проектування та тестування мікропроцесора.
Складання асемблерної програми та тестування мікрокомп`ютера загалом.
Реалізувати регістровий файл всередині інформаційного тракту, що містить 16 регістрів загального призначення. Можливий одночасний запис та читання з нього.
Тип адресації – перша тетрада адреси береться з регістра R0, що знаходиться у регістровому файлі, а друга – безпосередньо з адресного поля команди (IR[3:0]).
Замість існуючої в множині команд мікропроцесора Gnome команди jump реалізувати команду jnz (перехід, якщо ознака нуля не встановлена).
Додати до множини команд мікропроцесора Gnome дві команди load і store, що виконують відповідно завантаження та збереження, використовуючи зазначену вище адресацію.
Додати до функцій мікропроцесора обробку апаратного маскованого переривання, адресу початку підпрограми, що виконує обробку переривання завантажувати з пари регістрів R14-R15.
Додати до множини команд мікропроцесора Gnome команду ret, яка реалізує повернення з підпрограми обробки переривання.
Розробити структурні схеми двох зовнішніх пристроїв, що виконують такі функції:
EMBED Equation.3 ;
EMBED Equation.3 ;
Другий пристрій при появі результату видає сигнал переривання до мікропроцесора.
Cинтезувати на ПЛІС Xilinx xc4013xlabg256 та на ПЛІС Altera розроблений проект.
Опис проекту
1. Структура мікрокомп`ютера
Базова структура мікрокомп’ютера містить мікропроцесор Gnome, блок зовнішньої пам’яті та два зовнішніх спеціалізованих пристрої (рис.1.1). Наведена структура мікрокомп’ютера не є функціонально завершеною, оскільки відсутній інформаційний зв’язок поміж мікрокомп’ютером та зовнішнім оточенням. З погляду учбового функціонального проектування таке обмеження не є критичним.
Рис.1.1. Структура мікрокомп’ютера
Зовні на мікрокоп`ютер надходять два сигнали: clock та reset. Перший є сигналом синхронізації, а другий – загальним скидом.
2 Зовнішній інтерфейс мікропроцесора Gnome
2.1 Порти мікропроцесора
Мікропроцесор Gnome має необхідну кількість інтерфейсних ліній/портів (address, data, csb, web, oeb) (рис.2.1.1), які дозволяють легко та з мінімальними витратами організувати взаємозв’язок поміж мікропроцесором Gnome та зовнішньою пам’яттю.
Розглянемо детально призначення портів мікропроцесора:
data_in – 8-розрядна вхідна (відносно зовнішніх пристроїв) шина даних;
data_out – 8-розрядна вихідна (відносно зовнішніх пристроїв) шина даних;
address – 8-розрядна адресна шина (можливе фізичне звертання до 256 комірок зовнішньої пам'яті);
csb – керуючий сигнал вибору мікросхеми. Якщо csb='1', тоді обирається один із зовнішніх пристроїв, інакше звертання ведеться до пам`яті;
oeb – сигнал дозволу видачі інформації на шину даних; data (oeb='0' – дозвіл);
web – стробовий сигнал запису даних (web=‘0’ – запис);
reset – сигнал початкового скиду, рівень лог. '1' переводить мікропроцесор до початкового стану;
clock – на цей вхід надходять синхронізуючі імпульси з тактового генератора;
interrupt – лінія маскованого апаратного переривання (interrupt=’1’ – є переривання).
Слід зауважити, що сигнал oeb дозволу видачі даних та стробовий сигнал запису даних web водночас активними бути не можуть.
Рис.2.1.1. Порти мікропроцесора Gnome
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 Програмно-доступні регістри
R0-R15 – регістри загального призначення розрядністю 4-біти. Вони знаходяться у регістровому файлі. Звертання до даних регістрів виконується за їхнім номером, так, регістр R0 має двійковий номер 0000 /2/ , R1 - 0001 /2/ , …, R15 - 1111 /2/ ;
ACC – акумулятор є 4-розрядним регістром, призначеним для запису та збереження даних. Результат виконання арифметико-логічних інструкцій заноситься безпосередньо в акумулятор;
C – регістр ознаки переносу. Програмно доступний регістр стану програми. Значення регістра формується при виконанні арифметичних інструкцій, встановлене в ‘1’ значення вказує на переповнення акумулятора. Регістр може встановлювати користувач за допомогою команд встановлення та скиду ознаки переносу. Значення регістра ознаки переносу використовують арифметичні інструкції та команди умовного переходу;
Z – регістр ознаки нульового значення. Значення регістра формується при виконанні логічних операцій, значення регістра дорівнює ‘1’ при набутті значення “0000” після виконання логічної операції. Регістр не може безпосередньо встановлювати користувач. Значення регістра ознаки нульового значення використовують команди умовного переходу;
PC – лічильник команд. Формує поточну адресу інструкції в пам’яті команд. Регістр містить 7 розрядів. Значення регістра PC збільшується на одиницю при виборі кожного байту команди, значення регістра можна встановити за допомогою інструкції переходу.
PC1 – регістр, що зберігає «старе» значення лічильника команд під час виконання підпрограми обробки переривання.
3.2 Множина інструкцій мікропроцесора
Система команд мікропроцесора Gnome містить 16 інструкцій (табл.3.2.1), — це арифметико-логічні інструкції, інструкції збереження результату та інструкції умовного та безумовного переходів.
Табл.3.2.1. Множина інструкцій мікропроцесора
4. Внутрішня структура мікропроцесора
У пристрої обробки цифрової інформації виділяють інформаційний тракт (операційний блок, Datapath Unit) та керуючий автомат (блок керування, Control Unit).Такий підхід спрощує проектування та полегшує розуміння процесу функціонування пристрою (рис.4.1.1).
Рис.4.1.1. Функціональна схема пристрою обробки цифрової інформації
Інформаційний тракт мікропроцесора Gnome (рис.6) містить РЗП (регістровий файл), службові регістри, АЛП та допоміжні вузли, які забезпечують виконання інструкцій читанням даних з пам‘яті, їх зберігання та перетворення, до того ж інформаційний тракт формує для керуючого автомата сигнали стану з інформацією про стан операндів, окремих вузлів, особливих значень операндів, їх окремих розрядів та результати виконання операцій (наприклад, рівність нулю результату операції і т.п.).
Процес функціонування в часі мікропроцесора складається з послідовності тактових інтервалів, в яких інформаційний тракт виконує елементарні операції — передачу слова з регістра в регістр, зсув і т.п. Виконання даних елементарних операцій ініціюється надходженням в інформаційний тракт відповідних керуючих сигналів (мікродій) з керуючого автомата. Послідовність елементарних операцій керуючий автомат формує на основі коду операції (регістр інструкцій IR) та службових сигналів стану з інформаційного тракту. Сукупність мікродій, які забезпечують виконання інструкції за певну кількість циклів, називають мікропрограмою даної інструкції.