М I Н I С Т Е Р С Т В О О С В I Т И У К Р А ї Н И ДЕРЖАВНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"

МЕТОДИЧНІ ВКАЗІВКИ до циклу лабораторних робіт з курсу
"ТЕОРІЯ І ПРОЕКТУВАННЯ КОМП'ЮТЕРНИХ СИСТЕМ ТА МЕРЕЖ"
для підготовки спеціалістів та магістрів на базі напрямку "Комп'ютерна інженерія"
Затверджено на засіданні кафедри "Електронні обчислювальні машини". Протокол №12 від 6 липня 1999р.
Львів 1999
УДК 681.3
Методичні вказівки до циклу лабораторних робіт з курсу "Теорія і проектування комп'ютерних систем та мереж" для підготовки спеціалістів та магістрів на базі напрямку "Комп'ютерна інженерія" / Укл. Дунець Б.Р., Мельник А.О., Троценко В.В. - Львів: Видавництво ДУ "Львівська політехніка", 1999. - 26с.
Збірник містить методичні вказівки з шести лабораторних робіт з використанням програмного пакета Active-VHDL фірми ALDEC. У збірник увійшли лабораторні роботи: "Робота з інтерактивною системою Enhanced VHDL Tutorial", "Середовище розробки Active-VHDL", "Проектування та симуляція роботи пристроїв на функціональному рівні в Active-VHDL", "Проектування керуючого автомата засобами Active-VHDL", "Проектування та симуляція роботи блока зовнішньої пам'яті мікропроцесорної системи", "Проектування арифметико-логічного пристрою мікропроцесора Gnome".
Укладачі Дунець Б.Р., магістр, викладач-стажист.
Мельник А.О., д-р техн. наук., проф. Троценко В.В., канд. техн. наук, доц.
Рецензенти Вітер Ю.С., канд. техн. наук, доц.
Березко Л.О., канд. техн. наук, доц.
Відповідальний за випуск Мельник А.О., д-р техн. наук., проф.
Автори висловлюють подяку фірмі Aldec Inc. за сприяння у виданні методичних вказівок до циклу лабораторних робіт.
ЗМІСТ
Перелік основних скорочень 4
Лабораторна робота № 1. Робота з інтерактивною навчальною системою
Enhanced VHDL Tutorial 5
Лабораторна робота № 2. Середовище розробки Active-VHDL 9
Лабораторна робота № 3. Проектування та симуляція роботи пристроїв
на функціональному рівні в Active-VHDL 12
Лабораторна робота № 4. Проектування керуючого автомата засобами
Active-VHDL 15
Лабораторна робота № 5. Проектування та симуляція роботи блока
зовнішньої пам'яті мікропроцесорної системи 17
Лабораторна робота № 6. Проектування арифметико-логічного пристрою
мікропроцесора Gnome 23
Перелік основних скорочень
HDL (Hardware Description Language) - мова опису апаратних засобів. VHDL (Very High-Speed Integrated Circuit Hardware Description Lan
guage) - мова опису апаратних засобів, розроблена в рамках
проекту VHSIC.
FPGA (Field Programmable Gate Array) - програмована логічна
інтегральна схема. CPLD (Complex Programmable Logic Array) - програмована логічна
матриця.
EVITA (Enhanced VHDL Tutorial) - програма навчання основ мови
VHDL.
ЕОМ - електронна обчислювальна машина.
ROM (Read Only Memory) - постійний запам'ятовуючий пристрій. RAM (Random Access Memory) - пперативний запам'ятовуючий пристрій.
РЗП - регістр загального призначення. АЛП - арифметико-логічний пристрій.
Лабораторна робота № 1 Робота з інтерактивною навчальною системою Enhanced
VHDL Tutorial
МЕТА РОБОТИ: Опанувати роботу з інтерактивною системою Enhanced VHDL Tutorial, зрозуміти призначення інструментального засобу Active-VHDL для підвищення ефективності розробки та функціонального моделювання роботи вузлів ЕОМ.
ЗАГАЛЬНІ ВІДОМОСТІ
Класичні способи поблокового, абстрактного, структурного синтезу складних вузлів ЕОМ в термінах алгебри логіки з подальшим схемотехнічним проектуванням є надто громіздкими. Громіздкість зумовлено самим способом представлення пристрою, який загалом можна звести до складної мережі взаємопов'язаних логічних елементів. Роботу такого пристрою без супровідної документації зрозуміти практично неможливо. Розробку пристроїв вищезгаданими способами застосовують при проектуванні елементів середньої складності, від межі, коли формальні методи проектування поступаються евристичним. Чималу роль відіграє і винахідницький талант розробника, тобто знову-таки евристика.
Необхідність у скороченні термінів розробки складних вузлів ЕОМ спричинила появу гами нових засобів та систем проектування. Такі системи базуються на використанні мов опису апаратних засобів HDL (Hardware Description Language), зокрема VHDL, та компіляторів з HDL рівня в схемотехнічний (вентильний, фізичний) рівень. Деякі HDL дозволяють поєднувати опис роботи пристроїв за допомогою функціонального, структурного та логічного (таблиці істинності) описів. Опис HDL є самоописовим і не вимагає складного документування та коментарів для розуміння роботи пристрою, до того ж цей опис легко модифікується. Системи проектування надають можливість виконати симуляцію роботи пристрою, описаного HDL. Це дозволяє виявити хиби проектування вже на архітектурному рівні. Останнім кроком проектування є логічний синтез пристрою, описаного на HDL. Інколи процес логічного синтезу зводиться до "натискання" клавіші виклику відповідного програмного компонента. Проте здебільшого логічний синтез складається з декількох етапів, на кожному з яких розробник візуально контролює сам процес компіляції та його якість. За несприятливого результату розробник модифікує опис пристрою на HDL, змінює опції компілятора і повторює компіляцію, доки не буде досягнуто бажаного результату.
Чільне місце серед широкої гами засобів проектування з використанням мови VHDL посідає пакет Active-VHDL. Active-VHDL є інтегрованим засобом розробки VHDL проектів. Ядром системи є VHDL симулятор з підтримкою стандарту мови 1993 року. Наявність вбудованих допоміжних засобів — редактора тексту з функцією синтаксичного аналізу, засобу побудови та налагодження керуючих автоматів, бібліотеки широковживаних конструкцій мови та систем підказок — дозволяють зменшити часові витрати розробника на опрацювання допоміжних операцій, тобто скоротити час проектування. У поєднанні із незалежними програмними засобами відомих фірм Xilinx, Actel, Altera, Lucent пакет Active-VHDL дає змогу розробляти повністю завершені пристрої, тобто отримувати запрограмовані і готові до використання FPGA та CPLD.
Система Active-VHDL надає користувачу програму Language Assistant генерації шаблонів опису стандартних блоків мовою VHDL, пропонує широкий спектр допоміжної інформації, зокрема систему контекстної допомоги, документи в hlp та в HTML форматах (табл.1) тощо.

Важливу інформацію про пакет Active-VHDL та основні принципи проектування з використанням мови VHDL можна отримати з програми інтерактивного навчання EVITA (Enhanced VHDL Tutorial). Програму EVITA можна викликати як із системи проектування Active-VHDL за допомогою меню Help/Interactive VHDL Tuturial, так і без використання оточення, запуском виконавчого файлу evita_2.exe, який, переважно, міститься в директорії C:\Program Files\Aldec\Active VHDL\Evita.
Виклик допоміжної документації можна здійснити за допомогою пунктів меню Help/Contents; Help/VHDL Language Reference; Help/ HTML Documentation або використанням hlp та html броузерів для перегляду відповідних файлів директорії C:\Program Files\Aldec\Active VHDL\Books.
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
1. Ознайомитись з поданим вище матеріалом.
2. Запустити програму EVITA, ознайомитись з викладеним в програміматеріалом, законспектувати у звіті зміст першого розділу.
З.Ознайомитись із системою інтерактивної допомоги та підказок Active-VHDL On-line Help, зокрема з інформацією про призначення та функціональні можливості інструментального засобу.
4.Дати відповіді на контрольні запитання.
5.Скласти звіт з виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Основні переваги та недоліки застосування пакета Active-VHDL порівняно з класичними методами проектування, наприклад, із схемотехнічним проектуванням.
2.Які вимоги висувають до сучасного засобу проектування? Які проблеми стоять на шляху створення універсального засобу, який би охоплював всі етапи проектування?
З.Назвіть вбудовані бібліотеки Active-VHDL.
Лабораторна робота № 2 Середовище розробки Active-VHDL
МЕТА РОБОТИ: Ознайомлення з призначенням, функціональними можливостями компонентів інструментального засобу Active-VHDL.
ЗАГАЛЬНІ ВІДОМОСТІ
Середовище розробки Active-VHDL складається з головного вікна, де розташована певна кількість вкладених підвікон, які для зручності за функціональним призначенням об'єднують в компоненти.
Компоненти Active-VHDL є зручними уніфікованими засобами відображення, редагування графічних об'єктів та тексту (рис.1).
Наведемо короткий опис та призначення компонентів середовища:
Console Вікно призначене для інтерактивного виведення текстової інформації, зокрема як повідомлення середовища. Компонент також призначений для введення команд середовища (Active-VHDL commands).
Design Browser Вікно призначене для відображення інформації про складові елементи (компоненти) проекту:
файли опису пристрою;
використані в проекті бібліотеки;
допоміжні файли проекту, до яких належать макроси та скрипт файли (macro and script files), файли результатів симуляції роботи пристрою (waveforms and list files), допоміжні текстові файли;
структуру проекту;
сигнали та змінні, декларовані в проекті.
HDL Editor Редактор VHDL тексту з можливістю відображення заданих синтаксичних конструкції мови різними кольорами. Завдяки інтеграції редактора із симулятором компонент дозволяє виконувати зручне покрокове відлагодження пристрою і швидко виявляти помилки.
Language Assistant Компонент є зручним засобом, який дозволяє розробнику використовувати бібліотеку шаблонів опису мовою VHDL стандартних примітивних конструкцій та функціональних блоків. Language Assistant дає змогу розміщувати вибрані шаблони безпосередньо в редагованому файлі та створювати свої власні шаблони.
State Editor Призначений для проектування керуючих автоматів за допомогою зручного графічного редактора з подальшою автоматичною трансляцією з графічного відображення у VHDL-опис.
Waveform Editor Редактор призначений для графічного відображення та редагування результатів симуляції, тобто часових діаграм.
List В даному вікні відображаються результати симуляції, подані
у текстовому вигляді. Дана інформація є незамінна під час дельта-симуляції пристрою.
Watch Вікно призначене для відображення поточних значень вибраних розробником сигналів.
Processes Під час симуляції у вікні відображається інформація про стан процесів, які виконуються одночасно (конкурентно).
Library Manager Компонент призначений для перегляду та редагування списку використаних бібліотек.
Design Explorer Компонент дозволяє проглядати та викликати створені проекти. Design Explorer викликається вибором пункту меню File/Open Design ...
Script Editor Компонент дозволяє створювати, редагувати та налагоджувати сценарії виконання команд середовища (Active-VHDL commands).
Test Bench Wizard Компонент призначений для автоматичної генерації тестових файлів (test bench files) за визначеною користувачем специфікацією.
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
І.Ознайомитись з поданим вище матеріалом. 2.Увійти в систему Active-VHDL.
З.Використовуючи систему інтерактивної допомоги та підказок Active-VHDL On-line Help ознайомитись з інтерфейсом користувача, призначенням основних компонентів та їх використання.
4.Дати відповіді на контрольні запитання.
5. Скласти звіт з виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Назвіть основні наявні бібліотеки шаблонів та стандартні примітивні конструкції компонента Language Assistant.
2.Які зовнішні бібліотеки наявні в середовищі Active-VHDL?
3. Наведіть основні відмінності в призначенні компонентів Watch та
List.
Лабораторна робота № 3 Проектування та симуляція роботи пристроїв на функціональному рівні в Active-VHDL
МЕТА РОБОТИ: Навчитись створювати, модифікувати, компілювати та виконувати симуляцію роботи пристроїв на функціональному рівні в середовищі Active-VHDL.
ЗАГАЛЬНІ ВІДОМОСТІ
Проектування та симуляція роботи пристроїв на функціональному (поведінковому) рівні є невід'ємною частиною апаратно-незалежного проектування пристрою. Послідовність проектування пристрою на функціональному рівні в Active-VHDL складається з таких етапів:
Створення файлів проекту: файлів опису пристрою (Source Files), тестових файлів (Test Benches), макросів (Macro Files).
Компіляція файлів проекту.
3. Симуляція роботи пристрою на функціональному рівні.Подальші кроки (логічний синтез, синтез кристалу) (рис.2) вимагають
наявності додаткових інструментальних засобів для компіляції з функціонального VHDL-опису пристрою у вентильний.
Active-VHDL дозволяє створювати та редагувати такі компоненти проекту, як файли опису пристрою, використані в проекті бібліотеки, допоміжні файли, об'єднання яких в єдину колекцію називається проектом (Design). Файли проекту за замовчуванням зберігаються в єдиній директорії - директорії проекту, що має назву проекту.
Викликаючи інструментальний засіб Active-VHDL, користувач може вибрати для роботи вже створений проект або створити новий. Після завершення роботи з проектом Active-VHDL запам'ятовує встановлену користувачем конфігурацію системи, пов'язану з даним проектом.
Active-VHDL дозволяє створювати резервні та архівні копії проекту. Інструментальний засіб за створеними резервними копіями дає змогу легко повертатись до збережених раніше рівнів розробки. Кількість резервних копій обмежується тільки наявністю вільного місця на диску. При створенні архівної копії всі файли, пов'язані з даним проектом, поміщаються в заданий користувачем zip-архів.
Компілятор Active-VHDL надає розробнику три способи компіляції:
1. Design/Compile - компіляція вибраного файлу;

13
Рис.2. Послідовність проектування з використанням Active-VHDL
Design/CompileAll - компіляція всіх файлів проекту в порядку їх створення;
Design/Compile All with File Reorder - компіляція всіх файлів проекту, проте, на відміну від попереднього випадку, компіляція виконується з урахуванням ієрархічних залежностей.
Передумовою проведення симуляції є успішне проведення компіляції. Існує три способи симуляції:
1. Simulation/Run - запуск симуляції без часового обмеження.Симуляція припиняється у разі досягнення точки зупинки або втручаннякористувача;
2. Simulation/Run For - запуск симуляції на заданий часовий інтервал;
3. Simulation/Run Until - виконання симуляції до моменту досягненнязаданої часової відмітки.
Інструментальний засіб Active-VHDL пропонує також потужні засоби налагодження, зокрема:
• виконання коду у покроковому режимі. Існує три типи команд покрокової симуляції: Trace Into, Trace Over, Trace Out;
• зупинка виконання коду при досягненні заданого рядка;
• зупинка виконання коду при зміні або набутті заданого значення вибраним сигналом.
Результати симуляції динамічно відображаються у Waveform або/і List вікні. Додатково можна контролювати стан змінних, сигналів та процесів за допомогою вікон Watch та Process відповідно.
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
1. Ознайомитись з поданим вище матеріалом.
2.3а допомогою HTML броузера ознайомитись з теоретичним матеріалом, викладеним в підручнику Tutavhd2.htm.
3. Увійти в систему Active-VHDL та реалізувати практичні вправи, викладені в згаданому підручнику.
4.Дати відповіді на контрольні запитання.
5.Скласти звіт з виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Послідовність проектування пристроїв ЕОМ на функціональному рівні в Active-VHDL.
2.Які існують засоби покрокової симуляції? Пояснити їх призначення та основні відмінності.
З.Які існують способи встановлення значень сигналів перед початком симуляції?
4.Призначення та основні відмінності способів покрокової симуляції.
Лабораторна робота № 4 Проектування керуючого автомата засобами
Active-VHDL
МЕТА РОБОТИ: Навчитись проектувати керуючі автомати в Active-VHDL, користуючись вбудованим засобом State Editor.
ЗАГАЛЬНІ ВІДОМОСТІ
У загальному випадку будь-який пристрій ЕОМ можна подати у вигляді двох пристроїв — операційного автомата і керуючого автомата. Керуючий автомат призначений для вироблення послідовності керуючих функціональних сигналів.
На абстрактному рівні керуючий автомат задається сукупністю {X,S, Y, 8, Я), де X={x), i є l,m - множина вхідних сигналів автомата (вхідний алфавіт); S={sj), j є 1,n - множина станів автомата (алфавіт станів), Y={yk), k є 1,d - множина вихідних сигналів (вихідний алфавіт) автомата; 8 - функція переходу автомата; Я - функція виходу автомата. Функція переходу показує, що автомат, який перебуває у стані sj, при поданні вхідного сигналу x. переходить в деякий стан s , тобто s = 8(s, xj. Функція виходів Я показує, що автомат, який перебуває у стані sj, при появі вхідного сигналу x. видає вихідний сигнал yk, тобто y= 1(s,, x.). В даному випадку опис абстрактного керуючого автомата зводиться до визначення алфавітів входів, станів і виходів, функцій переходів і функцій виходів. Алфавіти автоматів, як і звичайні множини, задаються перерахуванням елементів. Функції переходів можуть бути задані табличним, графічним чи аналітичним способом. 3алежно від способів формування функції виходів виділяють три основних типи абстрактних автоматів: Мілі, Мура, С-автомат.
Для проектування керуючого автомата пакет Active-VHDL надає розробнику зручний компонент State Editor. Даний компонент використовує графічний метод подання керуючого автомата у вигляді графу (рис.З) з подальшим автоматичним перетворенням з графічного подання у УЕГОЬ код, який можна використовувати для симуляції. Порівняно з іншими методами подання функціонування керуючого автомата графічний спосіб є найбільш наочним, дозволяє легко виявити тупікові стани.
D-GÜj'ELLGW -DuEm\.YELuaw
D-GÜ_GREEN -DUEHTGREEN
D-GQ_RED -DUQKT_RED

Рис. 3. Граф керуючого автомата
Приклад: треба спроектувати керуючий автомат для управління роботою світлофора. Після надходження сигналу GOGREEN пристрій повинен вимкнути жовтий та червоні відсіки світлофора і ввімкнути зелене світло. Після подальшого надходження сигналу GOYELLOW - ввімкнути жовте світло і вимкнути решту і, відповідно, при подальшому надходженні GORED ввімкнути червоне, вимкнувши решту. Граф-схема алгоритму роботи керуючого автомата (рис.3) містить три вершини (стани): GREEN, YELLOW, RED. Перехід поміж станами виконується після надходження відповідних сигналів GOGREEN, GOYELLOW, GORED. Сигнали ввімкнення генеруються керуючим автоматом при досягненні чергового стану (автомат Мура). У термінах абстрактної теорії: X={GO_GREEN, GOYELLOW, GORED}, Y={LIGHT_GREEN, LIGHTYELLOW, LIGHT RED}, S={GREEN, YELLOW, RED}.
Детальнішу інформацію про практичні та теоретичні основи роботи з компонентом State Editor можна отримати з підручника Tutfsm.htm.
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
І.Ознайомитись з поданим вище матеріалом.
2.3а допомогою HTML броузера ознайомитись з теоретичним матеріалом, викладеним в підручнику Tutfsm.htm.
З.Увійти в систему Active-VHDL та виконати практичні вправи, викладені у згаданому підручнику.
4.Дати відповіді на контрольні запитання.
5.Скласти звіт про виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
І.Переваги та недоліки графічного способу подання алгоритму роботи керуючого автомата.
2.Які існують типи керуючих автоматів за способом формування функції виходів?
3 яких підблоків складається згенерований VHDL код керуючого автомата, спроектованого в State Editor?
Лабораторна робота № 5 Проектування та симуляція роботи блока зовнішньої пам'яті мікропроцесорної системи
МЕТА РОБОТИ: Навчитись створювати, модифікувати, компілювати та проводити симуляцію роботи блока зовнішньої пам'яті мікропроцесорної системи на функціональному рівні.
ЗАГАЛЬНІ ВІДОМОСТІ
У даній лабораторній роботі виконаємо проектування та симуляцію роботи блока зовнішньої пам'яті на прикладі етапу проектування мікропроцесорної системи, основу якої становить гіпотетичний мікропроцесор Gnome.
Невід'ємною частиною будь-якої мікропроцесорної системи є постійна пам'ять (ROM), в якій зберігається програма мікропроцесора та оперативна пам'ять (RAM), яка використовується для тимчасового зберігання програм та даних. Побудову моделі пам'яті при проектуванні мікропроцесора зумовлено потребою в симуляції роботи всієї мікропроцесорної системи в режимі виконання мікропроцесором програми.
Розглянемо структуру нескладної мікропроцесорної системи (рис.4), що складається з мікропроцесора Gnome, тактового генератора (CG) та блока зовнішньої багатофункціональної пам'яті (MEM).
CG
clock
Gnome
address
8
MEM
8 data
V

csb
web
oeb
'1'
reset

Рис.4. Структурна схема мікропроцесорної системи
Мікропроцесор Gnome — це 4-бітний мікропроцесор з простою системою команд (табл.2).
Блок тактового генератора CG формує тактові імпульси clock. Блок багатофункціональної пам'яті MEM призначений для зберігання значення регістрів загального призначення (РЗП) R0-R15 в пам'яті RAM та доступу до пам'яті програм ROM (рис.5). На логічному рівні звертання до регістрів R0-R15 виконується за порядковим номером регістра, на фізичному рівні за адресами зовнішньої пам'яті RAM з адресами
11110000/2 - 11111111/2, що відповідають логічним номерам регістрів від R0 до R15 відповідно. Оскільки блок зовнішньої пам'яті використовується тільки для симуляції роботи мікропроцесорної системи на функціональному рівні, то з опису роботи блока MEM мовою VHDL знімаються певні обмеження щодо коректності VHDL-опису з погляду інструментальних засобів логічного синтезу. Такий підхід дозволяє відмовитись від застосування складних stimuli-файлів та тестових процедур.
Зовнішня пам'ять керується трьома сигналами:
csb - керуючий сигнал вибору мікросхеми пам'яті. Якщо csb='1', інформаційні виходи мікросхеми пам'яті переведені в Z-стан;
oeb - сигнал дозволу видачі блоком пам'яті інформації на шину даних data (oeb='0' - дозвіл);
web - стробуючий сигнал запису даних в пам'ять (web='0' - запис);
Адреса комірки запису формується на 8-розрядній шині адреси address, дані передаються по 8-розрядній шині data.
Пам'ять
0000 0000

програм


ROM
0111 1111

Невикористана
1000 0000

область



1110 1111

Пам'ять даних
1111 0000

RAM


РЗП R0-R15
1111 1111


Рис.5. Розподіл адресного простору
Оскільки функції перетворення логічних адрес в фізичні виконує мікропроцесор, то блок пам'яті MEM повинен забезпечувати роботу з пам'яттю на фізичному, а не на логічному рівні.
Для опису масиву пам'яті необхідно задекларувати новий тип, який разом з константами, що відповідають кодам команд зручно розмістити в Package файлі:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL; PACKAGE my_package IS
-- Декларація нового типу для реалізації пам'яті об'ємом 256 -- комірок розрядністю 8 біт кожна
TYPE MEM25 6x8 IS ARRAY (0 to 255) OF std_logic_vector (7 DOWNTO 0);
-- Формування мнемонічних констант, що відповідають кодам --інструкціймікропроцесора Gnome.
CONSTANT CLEAR_C : std_logic_vector (7 DOWNTO 0) := "00000000";
CONSTANT SET_C : std_logic_vector (7 DOWNTO 0) :=
"00000001";
CONSTANT SKIP_C : std_logic_vector (7 DOWNTO 0) :=
"00000010";
CONSTANT SKIP_Z : std_logic_vector (7 DOWNTO 0) :=
"00000011";
CONSTANT LOAD_IMM : std_logic_vector (3 DOWNTO 0) :=
"0001";
CONSTANT ADD_IMM : std_logic_vector (3 DOWNTO 0) :=
"0010";
CONSTANT STORE_DIR : std_logic_vector (3 DOWNTO 0) :=
"0011";
CONSTANT LOAD_DIR : std_logic_vector (3 DOWNTO 0) :=
"0100";
CONSTANT ADD_DIR : std_logic_vector (3 DOWNTO 0) :=
"0101";
CONSTANT XOR_DIR : std_logic_vector (3 DOWNTO 0) :=
"0110";
CONSTANT TEST_DIR : std_logic_vector (3 DOWNTO 0) :=
"0111";
CONSTANT JUMP : std_logic :=
END my_package;
Створений Package файл дозволяє використовувати задекларовані власні типи і константи у всіх файлах проекту.
Мовою VHDL функціональний опис роботи модуля пам'яті MEM матиме вигляд:
LIBRARY IEEE;
-- Декларація використаних в проекті бібліотек включно з
-- власною my_package
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_unsigned.ALL;
USE WORK.my_package.ALL;
ENTITY MEM IS PORT(
address :IN std_logic_vector(7 DOWNTO 0); data :INOUT std_logic_vector(7 DOWNTO 0);
csb oeb web
:IN std_logic; :IN std_logic; :IN std_logic
);
END MEM;
ARCHITECTURE behaviour OF MEM IS
BEGIN
RAM_and_ROM:PROCESS(address, csb, web, oeb) --декларація змінних, необхідних для реалізації роботи блока
VARIABLE mem_array :MEM256x8; -- запам'ятовуюче -- середовище - змінна типу MEM256x8
VARIABLE index :INTEGER RANGE 0 TO 255;VARIABLE sel :std_logic_vector (1 DOWNTO 0);
BEGIN
-- Запис даних в масив,- формування пам'яті програм ROM
mem_array(0):="00000000";- CLEAR_C
mem_array(1):="00000001";- SET_C -- Оскільки звертання до масиву вимагає тип індексу -- integer, то за допомогою функції CONV_INTEGER виконуємо -- перетворення фізичної адреси (тип std_logic_vector) в
еквівалентне цілочисельне представлення. Дане
перетворення апаратно не відображається.
index := CONV_INTEGER(address);
-- за допомогою конструкцій IF-ELSE та CASE виконуємо -- реалізацію роботи пам'яті в усіх режимах роботи IF csb ='1' THEN
data <= "ZZZZZZZZ";
ELSE
sel:= web & oeb;
CASE sel IS
WHEN "10" =>
-- читання з комірки пам'яті data <= mem_array(index);
WHEN "01" =>
-- запис в пам'ять даних
-- R0-R15
mem_array (index):= data;
WHEN OTHERS =>
-- для решти випадків
data <="ZZZZZZZZ"; END CASE; END IF; END PROCESS;
END behaviour;
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
І.Ознайомитись з поданим вище матеріалом.
2. Дати відповіді на контрольні запитання.
3. Спроектувати та провести компіляцію файлу опису роботи блокаMEM та Package файлу.
4.Створити необхідні файли тестових послідовностей та провести симуляцію роботи блока пам'яті у всіх режимах роботи.
5. Скласти звіт про виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Призначення Package файлу.
Недоліки та переваги наведеного підходу до симуляції роботи мікропроцесорної системи.
Як можна програмувати вміст постійної пам'яті спроектованого блоку MEM?
Лабораторна робота № 6 Проектування арифметико-логічного пристрою мікропроцесора Gnome
МЕТА РОБОТИ: Навчитись створювати, модифікувати, компілювати та проводити симуляцію роботи арифметико-логічного пристрою мікропроцесора Gnome.
ЗАГАЛЬНІ ВІДОМОСТІ
Невід'ємною складовою частиною будь-якого мікропроцесора є арифметико-логічний пристрій (АЛП), що виконує арифметичні та логічні операції, і, з іншого боку, АЛП є комбінаційним пристроєм, який виконує певні операції над вхідними операндами. Для випадку розглядуваного мікропроцесора Gnome першим вхідним операндом АЛП (рис.6) є поточна інформація з акумулятора curr_acc, другим операндом є молодші 4 біти регістра команд curr_ir, а також поточні значення ознак переносу curr_carry та нуля curr_zero. На виході блок АЛП залежно від коду операції alu_op формує результат, а саме: результат next_acc, отримане значення ознаки переносу next_carry, отримане значення ознаки нуля next_zero.


Блок АЛП виконує невелику кількість операцій над 4-розрядними операндами (табл.3).
Для реалізації пристрою АЛП мовою VHDL треба використати конструкцію CASE:
CASE alu_op IS
WHEN NOP_OP =>
next_acc <= curr_acc; next_carry <= curr_carry; next_zero <= curr_zero;
WHEN XOR_OP=> WHEN ADD_OP =>
sum := (y0'& curr_acc)+(y0' & curr_ir
(3 DOWNTO 0))+("0000" & curr_carry); next_acc <= sum (3 DOWNTO 0); next_carry <= sum (4); next_zero <= curr_zero;
WHEN PASS_OP => WHEN AND_OP => WHEN SET_CARRY_OP => WHEN CLR_CARRY_OP => WHEN OTHERS =>
next_acc <= curr_acc; next_carry <= curr_carry; next_zero <= curr_zero;
END CASE;
ПОСЛІДОВНІСТЬ ВИКОНАННЯ РОБОТИ
Ознайомитись з поданим вище матеріалом.
Дати відповіді на контрольні запитання.
Створити функціональну модель пристрою АЛП, внести необхідні зміни в Package файл.
Створити необхідні файли тестових послідовностей та провести симуляцію роботи блока.
Скласти звіт про виконання лабораторної роботи обсягом дві сторінки друкованого тексту та захистити його.
КОНТРОЛЬНІ ЗАПИТАННЯ
Призначення блока АЛП мікропроцесора Gnome.
Для чого потрібний поділ сигналів на curr_acc та next_acc?
Які переваги при декодуванні надає конструкція CASE порівняно з IF ELSE?
НАВЧАЛЬНЕ ВИДАННЯ
МЕТОДИЧНІ ВКАЗІВКИ
до циклу лабораторних робіт з курсу
"Теорія і проектування комп'ютерних систем та мереж"
для підготовки спеціалістів та магістрів на базі напрямку "Комп'ютерна інженерія"
Укладачі Дунець Богдан Романович;
Мельник Анатолій Олексійович; Троценко Віктор Вікторович
Редактор Губарєва О.М.
Підписано до друку 13.09.1999
Формат 84x108 1/32. Папір офсетний. Друк на різографі. Умовн. друк. арк.1.47. Умовн. фарбо-відб. 1.47.
Тираж 100 прим. Зам. № 437
Видавництво Державного університету "Львівська політехніка"
Львів, вул. Ф.Колесси, 2