- •Імітаційне моделювання
- •Віртуальні вимірювальні прилади
- •Місце лабораторного практикуму у навчанні
- •Новий напрямок у розробках сучасних комп’ютерних пристроїв
- •2.1. Послідовність виконання робіт
- •2.2. Виконання типового завдання індивідуальної практичної роботи
- •Структура виконання завдання на практичному занятті
- •2.3. Методика проведення лабораторної роботи
- •Типовий зміст звіту:
- •3.1. Призначення та основні можливості «nі Multisim 12»
- •3.2. Запуск та налагоджування «nі Multisim 12»
- •3.3. Компоненти «nі Multisim 12»
- •3.4. Інструменти «ni Multisim 12»
- •3.5. Прийоми роботи у «ni Multisim 12»
- •3.6. Користування приладами «ni Multisim 12»
- •3.6.1. Генератор слів (Word Generator)
- •Налагодження Генератора слів
- •3.6.2. Логічний аналізатор (Logic Analyzer)
- •3.6.3. Логічний перетворювач (Logic Converter)
- •3.6.4. Індикатори (Indicators)
- •3.7. Ознайомлення з «ni Multisim 12»
- •3.7.1. Тема роботи
- •3.7.2. Мета роботи
- •3.7.4. Хід роботи
- •3.7.5. Виконання лабораторної роботи
- •3.7.6. Відповіді на запитання
- •3.7.7. Висновки
- •3.8. Питання, тести для самоконтролю
- •4.1. Теоретичні відомості
- •4.2. Питання до практичної роботи 2
- •4.3. Приклади виконання лабораторної роботи 2
- •4.4. Виконання лабораторної роботи на пк
- •4.5. Відповіді на запитання
- •4.6. Висновки
- •Теоретичні відомості
- •Питання до практичної роботи 3
- •5.3. Приклади виконання лабораторної роботи 3
- •5.4. Виконання лабораторної роботи на пк
- •5.5. Відповіді на запитання
- •5.6. Висновки
- •Теоретичні відомості
- •Питання до практичної роботи 4
- •Приклади виконання лабораторної роботи 4
- •Виконання лабораторної роботи на пк
- •6.5. Відповіді на запитання
- •6.6. Висновки
- •Теоретичні відомості
- •Питання до практичної роботи 5
- •Приклади виконання лабораторної роботи 5
- •Алгоритм перетворювання
- •Виконання лабораторної роботи на пк
- •7.5. Відповіді на запитання
- •7.6. Висновки
- •8.1. Теоретичні відомості
- •Питання до практичної роботи
- •Приклади виконання лабораторної роботи 6
- •8.4. Виконання лабораторної роботи на пк
- •8.5. Висновки
- •9.1. Теоретичні відомості
- •9.2. Питання до практичної роботи
- •9.3. Приклади виконання лабораторної роботи 7
- •9.4. Виконання лабораторної роботи на пк
- •9.5. Висновки
- •Теоретичні відомості
- •Питання до практичної роботи 8
- •Приклади виконання лабораторної роботи 8
- •Виконання лабораторної роботи на пк
- •10.5. Висновки
- •Теоретичні відомості
- •Стійкі стани бфсп
- •Набори еj(δ) вхідних сигналів бфсп
- •Стани бфсп, що запам’ятовуються при еj(δ) вхідних сигналів
- •Установчі набори хі(t) вхідних сигналів
- •Однозначно встановлені стани пам’яті
- •Набори еj(δ) вхідних сигналів
- •Встановлені стани
- •Установчі набори вхідних сигналів брсп
- •Укрупнені переходи в брсп
- •Питання до практичної роботи 9
- •Приклади виконання лабораторної роботи 9
- •Виконання лабораторної роботи на пк
- •Висновки
- •Тести для перевірки працездатності брсп класу
- •Теоретичні відомості
- •0 Розряд регістра на двоступеневих брсп (n-1) розряд регістра на двоступеневих брсп
- •Порівняння регістрів
- •Питання до практичної роботи
- •Приклади виконання лабораторної роботи 10
- •Виконання лабораторної роботи на пк
- •Висновки
- •Теоретичні відомості
- •Кодування станів лічильника
- •Установчі вхідні сигнали брсп
- •Питання до практичної роботи 11
- •Приклади виконання лабораторної роботи 11
- •Виконання лабораторної роботи на пк
- •Тести для перевірки працездатності регістру зсуву на один розряд вліво
- •Висновки
- •Теоретичні відомості
- •Питання до практичної роботи 12
- •Приклади виконання лабораторної роботи 12
- •Виконання лабораторної роботи 12
- •Висновки
- •15.1. Теоретичні відомості
- •Питання до практичної роботи 13
- •15.3. Приклади виконання лабораторної роботи 13
- •Висновки
- •Рекомендована література
- •03049, Київ, вул. Миколи Лукашевича, 19
Питання до практичної роботи 13
Які основні напрями для розробки високопродуктивних комп’ютерів?
З яких структур складаються паралельно-конвейєрні комп’ютери?
Якою є характерна особливість систем управління сучасних комп’ютерів, систем і мереж?
Що дало обґрунтування елементної бази для автоматів Мілі та Мура?
Що дало обґрунтування елементної бази для багатофункціональних автоматів 1-го, 2-го та 3-го роду?
Схема структури ІА.
Спосіб завдання ієрархічних автоматів.
Чому потрібно було ввести термін «поліграма» для завдання ієрархічних автоматів?
Як описуються режими роботи в кожному пункті поліграми?
Що треба враховувати при синтезі автомата по поліграмі?
Яку поліграму називають правильною?
Як можна здійснити перевірку правильної роботи поліграми або спроектованого управляючого пристрою?
За допомогою чого здійснюється аналіз методу розв’язання задачі в системі у процесі формулювання полі програми?
Структури адресних команд?
Принцип ієрархічного програмного управління.
Розширення структури команд мікропроцесора.
Структурна схема процесора.
Схема автомата зі пам’яттю на регістрах БРСП і ПЗП.
Схема реконфігуровної електронної обчислювальної машини.
15.3. Приклади виконання лабораторної роботи 13
15.3.1. Створення пристроя управління 7-ми сегментного світлодіодного індикатора на основі САПР «MAX + plus II»
САПР «MAX + plus II» являє собою інтегроване середовище для розробки цифрових пристроїв на базі програмованих логічних інтегральних схем (ПЛІС) фірми «Альтера» («Altera») і забезпечує виконання всіх етапів, необхідних для випуску готових виробів:
створення проектів пристроїв;
синтез структур і трасування внутрішніх зв’язків ПЛІС;
підготовку даних для програмування або конфігурування ПЛІС (компіляцію); верифікацію проектів (функціональне моделювання і часовий аналіз);
програмування або конфігурування ПЛІС.
Найбільш повний фірмовий опис системи «MAX + plus II» міститься в документі «MAX + plus II Getting Started Manual» на сайті фірми «Альтера», в який входить підручник («Tutorial»). Російською мовою досить докладний опис системи «MAX + plus II» можна знайти в роботі [1]. В ній наводяться в мінімальному обсязі відомості, необхідні для початкового освоєння технології розробки цифрових пристроїв на ПЛІС фірми «Альтера». Як приклад розглянуто процес розробки пристрою управління 7-ми сегментним світлодіодним індикатором.
Додатки системи «MAX +plus II»
До складу пакета «MAX +plus II» входять наступні пов'язані між собою програми, що реалізують всі перераховані вище етапи розробки цифрових пристроїв на ПЛІС фірми «Альтера».
Додатки для введення проектів (редактори проектів).
«Graphic Editor» – графічний редактор, призначений для введення проекту у вигляді схеми з’єднань символів елементів, що витягають із стандартних бібліотек пакета або з бібліотеки користувача.
«Waveform Editor» – редактор тимчасових діаграм (деякі автори називаютьце додатком сигнального редактора), який виконує подвійну функцію: на етапі введення забезпечує логіку проекта у вигляді діаграм (епюр) станів входів і виходів, а на етапі моделювання, забезпечує введення тестових (еталонних) діаграм вхідних станів пристрою і визначення тестованих виходів.
«Text Editor» – текстовий редактор, призначений для створення і редагування текстових файлів, що містять опис логіки проекту на мові опису пристроїв AHDL(Altera Hardware Description Language) або наблизьких до нього мовах типу VHDL, «Verilog». Для освоєння мови AHDL можна рекомендувати літературу [1, 2], а також статті, опубліковані в ряді номерів журнала «Чіпньюс» («ChipNews») в 2000 р.
«Symbol Editor» – символьний редактор, що дозволяє редагувати існуючі символи і створювати нові. До речі, будь-який відкомпільований проект може бути згорнутий в символ, розміщений в бібліотеці символів і використаний як елемент в іншому проекті.
«Floorplan Editor» – редактор зв’язків (порівневий планувальник), який на плані розташування основних логічних елементів дозволяє вручну розподіляти виводи ПЛІС (закріплювати виводи за конкретними вхідними та вихідними сигналами) і перерозподіляти деякі внутрішні ресурси ПЛІС.
Додатки «MAX +plus II Compiler»
Це програми, що входять в пакет компілятора і призначені для синтезу структури, трасування зв’язків, перевірки коректності проекта та локалізації помилок, формування файлів програмування або конфігурування ПЛІС:
«Netlist Extractor» – додаток, що забезпечує витяг списку з’єднань з вихідного файла подання проекту, створеного при введенні проекту.
«Database Builder» – додаток, призначений для побудови бази даних проекту.
«Logic Synthesizer» -додаток, що забезпечує перевірку коректності проекта за формальними правилами і синтез оптимальної структури проекта.
«Partitioner» -додаток, що забезпечує розбивку проекта на частини в тих випадках, коли ресурсів одного кристала (мікросхеми) недостатньо для реалізації проекта.
«Fitter» – трасувальник внутрішніх зв’язків, що забезпечує реалізацію синтезованої структури.
«SNF Extractor» – додаток, що забезпечує витяг параметрів проекта, необхідних для функціонального моделювання та часового аналіза.
Програми для верифікації проектів
«Simulator» – програма, яка спільно з редактором тимчасових діаграм призначена для функціонального моделювання проекта з метою перевірки правильності логіки його функціонування.
«Timing Analyzer» – додаток, що забезпечує розрахунок тимчасових затримок від кожного входа до кожного логічно пов'язаного з ним вихода.
Нарешті, для програмування або конфігурування ПЛІС використовується додаток «MAX +plus II Programmer».
Програмування та перепрограмування мікросхем, що мають вбудовану систему програмування (ISP), може здійснюватися безпосередньо у складі кінцевого виробу через спеціальний кабель, що підключається або до LPT-порту (Byte Blaster), або до COM-порту (Bit Blaster) комп’ютера і технологічного 10-ти контактного з’єднувача інтерфейсу JTAG, встановлюваного на платі. Схеми кабелів можна знайти на сайті фірми«Альтера». Якщо на платі вироби встановлюється декілька ПЛІС з вбудованими системами програмування, то всі вони можуть програмуватися через один технологічний роз’єїм. Для цієї мети додаток «Pro-grammer» має режим «Multi-Device» (на жаль, безкоштовні версії пакету цей режим не підтримує). Схеми підключення ПЛІС до інтерфейсу JTAG наводяться в документації на «Bit Blaster» і «Byte Blaster». Для програмування інших мікросхем необхідно додатково використовувати зовнішній програматор, який також може підключатися до COM- або LPT-порту.
Сервісні додатки
До складуСАПР, крім того, входять три сервісні програми.
«Design Doctor» – додаток, призначений для перевірки коректності проекту з використанням емпіричних правил.
«Message Processor» – процесор повідомлень, що забезпечує обробку, вивід на відображення і локалізацію (вказівка місця в проекті, до якого він відноситься) повідомлень трьох типів: повідомлень про помилки («Error»), попереджень («Warning») та інформаційних повідомлень («Info»). Причину виведення того чи іншого повідомлення можна з’ясувати через опцію «Help on Message» процесора повідомлень. При повідомлені про помилки компіляція проекта неможлива до їх повного усунення. При попереджені компіляція успішно завершується, однак наявність попередження свідчить про виявлення проблеми, яка може привести до невірної роботи пристрою. Тому всі попередження повинні бути ретельно проаналізовані з використанням «Help on Message», до з’ясування причин їх появи і подальшого усунення цих причин (або ігнорування попередження, що іноді буває можливо). Інформаційні повідомлення потрібно приймати тільки до відома.
«Hierarhy Display» – додаток, що забезпечує огляд ієрархічної структури проекта, який може складатися з безлічі складених у різних редакторах і згорнутих у символи проект і в більш низьких рівнів, причому число рівнів не обмежується. Основний проект (проект самого верхнього рівня) повинен бути створений в графічному редакторі (якщо проект має тільки один рівень ієрархії, то він може бути створений в будь-якому редакторі).
Робочі каталоги системи
Під час інсталяції пакета створюються два каталоги: каталог MAXPLUS2, який містить всі програми бібліотеки пакета, і каталог MAX2WORK, який містить підкаталог CHIPTRIP з усіма файлами навчального проекта, розглянутого в керівництві («MAX +plus II Tutorial»), і ряд підкаталогів, використовуваних електронним довідником («MAX +plus II Help»). У цьому ж каталозі MAX2WORK слід розміщувати і робочі каталоги створюваних проектів пристроїв.
Необхідність створення окремих каталогів для кожного розроблюваного проекту обумовлена тим, що в процесі розробки проекту системою MAX+plus ІІ II створюється і підтримується безліч файлів, що належать до поточного проекту. Перш за все цей файл проекта («Project File»), назва якого визначає назву проекту в цілому. Цей файл містить основну логіку та ієрархію проекту, оброблювану компілятором. Крім того, створюється ряд допоміжних файлів, пов’язаних з проектом, але які не є частиною логіки проекта. Велика частина допоміжних файлів створюється і автоматично розміщується в каталозі проекту в процесі введення і компіляції проекту. Це насамперед файли при значень і конфігурації (.ACF), файли звітів (.RPT), файли даних для функціонального моделювання та часового аналіза (.SNF), файли даних для програмування (.POF) і ряд інших.
Назви цих файлів завжди збігаються з назвою проекту. Деякі допоміжні файли створюються користувачем: наприклад, для виконання функціонального моделювання створюється файл (.SCF), що містить опис початкових і поточних станів вхідних сигналів (входів) і перелік виходів, для яких повинні бути визначені вихідні сигнали. Тому, перед початком роботи над новим проектом слід створити робочий каталог проекту, при цьому ім’я каталогу можна вибирати довільно (тобто ім'я каталогу може не збігатися з ім’ям файла проекта).
Початок роботи
Рис. 15.6. Основна частина головного вікна системи «MAX +plus II»
Після запуска пакета відкривається головне вікно. У верхньому рядку міститься ім’я останнього проекту, з яким велася робота. Два наступних рядки є звичайними для Windows-додатків: рядок основного меню і панель інструментів, в лівій частині якої розташовані стандартні функції «Windows» («New», «Open», «Save», «Print», «Cut», «Copy »,« Paste»,« Undo»), а в правій частині – специфічні інструменти пакета, за допомогою яких здійснюється запуск його основних додатків. Про призначення будь-якого інструмента можна дізнатися, поєднавши з ним покажчик миші. При цьому, в рядку підказки (нижній рядок вікна) з’являється текст з поясненням. Для запуску додатків можна використовувати також пункти меню «MAX +plus II» (в основному меню).
Порядок використання основних додатків системи «MAX +plus II» розглянемо на прикладі розробки пристрою індикації двійкових даних в шістнадцятковій формі на дворозрядному 7-ми сегментному світлодіодному індикаторі для гіпотетичної мікропроцесорної системи з 8-ми розрядною шиною даних і16-розрядною шиною адреси. Для визначеності будемо вважати, що порт індикації має адресу 10h, а як індикатор використовується тип DA-56 із загальним анодом, тобто сигнали управління сегментами повинні мати активні низькі рівні для підсвічування сегментів, відповідних шістнадцятирічним поданням вхідного двійкового коду.
Основним елементом такого пристрою є:
• схема формування сигналу запису в порт, що включає 16-ти розрядний адресний селектор і схему стропування сигналу запису;
• 8-ми розрядний регістр порту;
• комбінаційні схеми перетворення двійкових кодів тетрад в сигнали управління сегментами індикатора (навантажувальна здатність ПЛІС фірми «Альтера» дозволяє підключати світлодіоди безпосередньо до виводів мікросхем через навантажувальну опору номіналом 330...390 Ом).
В проект, що розробляється, доцільно включити два рівні ієрархії:
рівень структурних елементів, в який входить схема формування сигнала запису в порт і комбінаційні схеми перетворення двійкових кодів тетради в сигнали управління сегментами індикатора;
рівень проекта в цілому.
Для початку, використовуючи стандартні засоби «Windows», створимо в MAX2WORK робочий каталог під ім’ям MOD_IND. Потім створимо проект схеми формування сигналу запису в порт. Будемо створювати його в графічному редакторі. Для цього запускаємо систему «MAX +plus II» і створюємо новий файл (крайній лівий значок панелі інструментів). В діалоговому вікні «New» вибираємо пункт «Graphic Editor file» і натискаємо кнопку «ОК», при цьому автоматично відкривається вікно графічного редактора.
Рис.15.7. Вікно графічного редактора «GraphicEditor»
Вікно редактора має ряд додаткових пунктів основного меню і панель інструментів, розташовану вертикально з лівого боку вікна. Збережемо новий файл проекту (через меню «File», «Save») під ім’ям WRITE_PORT (розширення буде присвоєно автоматично) у створеному каталозі MOD_IND. Файл проекту слід обов’язково прив’язати до імені проекту – це робиться при виборі пункту «Set Project to Current File» (у підменю «Project» меню «File» головного меню робочого вікна).
Для створення графічного проекта можна використовувати бібліотеки примітивів (MAXPLUSMAX2LIBPRIM), макрофункцій (MAXPLUSMAX2LIBMF) і параметри зованих мегафункцій (MAXPLUSMAX2LIBMEGA_LPM).
Примітиви містять великий набір основних логічних елементів, тригерів, елементів входу і виходу (INPUT, OUTPUT, BIDIR), а також допоміжні елементи: GND (логічний нуль), VCC (логічна одиниця).
Макрофункції містять головним чином еквіваленти логічних мікросхем 74-і серії.
Параметризовані мегафункціі дозволяють реалізовувати багатовхідні і багаторозрядні елементи цифрової схемотехніки (логіку, регістри, мультиплексори тощо), вводячи ряд параметрів в спеціально позначених областях умовних графічних позначень цих елементів. Порядок використання мегафункцій можна знайти у відповідному розділі електронного довідника системи («Help»), а також у документі «LPM Quick Reference Guide» на CD-ROM, що додається до [2].
Робота в графічному редакторі
Перш ніж перейти безпосередньо до створення проекта схеми формування сигналу запису в порт, розглянемо деякі особливості і властивості графічного редактора системи «MAX + plus II».
Для розміщення елементів у вікні редактора використовується діалогове вікно «Enter Symbol», яке можна відкрити через меню «Symbol» основного меню редактора (пункт «Enter Symbol»). Однак, зручніше викликати це вікно подвійним клацанням лівої клавіші миші по вільному простору відкритого вікна редактора, після чого вибраний елемент буде розміщений саме в цьому місці (позиціонування елемента проводиться по верхньому лівому куті умовного позначення елемента).
Рис. 15.8. Діалогове вікно розміщення елементів
Вибрати і встановити необхідний елемент можна двома способами:
1. Набрати ім’я елемента (примітиву, мега- або макрофункції) у вікні «Symbol Name» діалогового вікна «Enter Symbol» і натиснути «ОК»;
2. Вибрати необхідну бібліотеку у вікні «Symbol Libraries» діалогового вікна «Enter Symbol» і подвійним клацанням лівої клавіші миші відкрити її. Потім аналогічним чином вибрати необхідний елемент у вікні «Symbol File».
Встановлений елемент можна перемістити в інше місце звичайним прийомом «Drag & Drop». Переміщення елементів може проводитися без збереження або із збереженням з’єднань, проведених між елементами, залежно від стану On / Оff кнопок «Rubberbanding Functions», розташованих у нижній частині панелі інструментів редактора.
Виводи символів елементів можна з’єднати з сигнальними лініями. Для проведення сигнальної лінії необхідно поєднати покажчик курсора (кінець стрілки) з виводами елемента, при цьому курсор автоматично перетворюється на інструмент малювання ортогональних ліній (перехрестя). Після цього проводиться необхідна лінія (при натиснутій і утримуваній лівій кнопці миші). За один прийом можна провести два ортогональних відрізки. Якщо цього недостатньо, то процедуру можна повторювати, починаючи з кінця проведеної лінії або з виведення іншого елемента.
Для з’єднання елементів необов’язково проводити суцільні з’єднувальні лінії між виводами, які повинні бути з’єднані між собою, і їм привласнити однакові імена. Поіменований вивід елемента називається вузлом («Node»). Для присвоєння вузлу імені необхідно спочатку провести коротку сигнальну лінію. Оскільки після закінчення малювання лінії, вона залишається виділеною (виділені елементи позначаються червоним кольором або червоною рамкою), то ім’я вузла можна вводити відразу. Якщо лінія не виділена (має чорний колір), то необхідно виділити її клацанням лівої кнопки миші в тому місці, де має починатися ім’я вузла, і набрати на клавіатурі потрібне ім’я.
Встановлені елементи і групи елементів (будь-яку виділену область вікна) можна видаляти, переміщати, повертати, копіювати і розмножувати в межах вік-на редактора, а також переносити в інші вікна через буфер обміну. Всі ці операції можна виконувати з використанням пунктів меню «Edit» (в основному меню редактора), попередньо виділивши необхідну область або елемент.
Виділення окремих елементів, включаючи і з’єднувальні лінії, проводиться клацанням лівої кнопки миші на зображенні символу елемента. Виділення області можливе при натиснутій і утримуваній лівій кнопці миші. Виділена область позначається рамкою чорного кольору, а всі виділені елементи – червоним кольором.
Для видалення, копіювання, вирізання, повороту і деяких інших операцій з елементами можна використовувати випадаюче контекстне меню, яке викликається клацанням правої кнопки миші по вибраному елементу. Для переміщення виділених областей в межах вікна використовується спосіб «Drag & Drop», а для розмноження виділених областей і елементів – «Drag & Drop», утримуючи клавіші CTRL.
Частина інструментів редактора, розташованих на вертикальній панелі з лівого боку вікна, призначена для створення пояснювальних написів, рисунків і таблиць, які не є частиною проекту і не обробляються компілятором.
Етап 1: створення схеми проекта
Створення схеми проекту доцільно починати з розміщення вузлів входів і виходів і присвоєння цим вузлам імен. У нашому випадку необхідно розмістити входи адресних ліній A0 ... A15, вхід сигналу запису / WR (низький активний рівень) і один вихід сигналу запису в порт WR_PORT. Використовуємо для цієї мети бібліотеку примітивів, яка містить примітиви INPUT (для входів) і OUTPUT (для виходів). Кожному введенню повинно бути присвоєне своє ім’я. Для цього необхідно двічі клацнути мишею на полі (вход / виход), в який з’явився чорний прямокутник, набрати нове ім’я і натиснути клавішу ENTER. Перехід до набору імені наступного елемента вводу може здійснюватися після натискання клавіші ENTER.
Логіка розроблюваного проекту також може бути реалізована з використанням примітивів: двох елементів OR8 (8-входовий елемент «АБО»), одного елемента NOR3 (3-входовий елемент «АБО-НЕ») і одного інвертора NOT. В описаному вище порядку розміщуємо необхідні елементи і виконуємо необхідні з’єднання.
Зауважимо, що запропонований варіант реалізації логіки пристрою – не єдиний і не найкращий. Зацікавлений читач може реалізувати цей проект з використанням мови AHDL (переважний варіант) або мегафункціі LPM_OR.
Рис. 15.9. Готовий проект пристроя формування сигналу запису в порт
Етап 2: компіляція і створення символа проекта
Наступний етап – компіляція і створення символу проекту для включення його у файл проекту верхнього рівня. Перед компіляцією можна виконати перевірку коректності введеного проекта. Перевірка здійснюється через підменю «Project» (меню «File» головного меню робочого вікна) шляхом вибору пункту «Save & Check» або клацанням лівої кнопки миші на піктограмі відповідного інструмента основної панелі інструментів.
Компіляція здійснюється також через підменю «Project» шляхом вибору пункту «Save & Compile» або знову ж за допомогою відповідного інструмента основної панелі інструментів.
За результатами компіляції процесор повідомлень інформує нас про те, що для реалізації даного проекту можуть бути використані ПЛІС сімейства «MAX-3000A», а саме ПЛІС типу «EPM 3032ALC44» (у корпусі PLCC з 44 виводами). Створення символу проекту здійснюється через підменю «Project», в якому слід вибрати пункт «Create Default Symbol» – цей пункт стає доступним тільки після закриття вікна компілятора. Створений символ буде поміщений в каталог проекту. Використання створених символів, так само як і елементів інших бібліотек, проводиться через діалогове вікно «Enter Symbol».
Рис. 15.10. Вигляд вікна компілятора після завершення компіляції
Етап 3
Наступний крок – створення проекту і символу комбінаційної схеми перетворення двійкового коду тетради в сигнали управління сегментами індикатора.
Таблиця 15.1
Перелік станів комбінаційної схеми перетворення двійкового коду тетради
Стани входів1 |
HEХ-код |
Стани виходів2 |
|||||||||||
In3 |
In2 |
In1 |
In0 |
|
/a |
/b |
/c |
/d |
/e |
/f |
/g |
||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
||
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
||
0 |
0 |
1 |
0 |
2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
||
0 |
0 |
1 |
1 |
3 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
||
0 |
1 |
0 |
0 |
4 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
||
0 |
1 |
0 |
1 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
||
0 |
1 |
1 |
0 |
6 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
||
0 |
1 |
1 |
1 |
7 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
||
1 |
0 |
0 |
0 |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
||
1 |
0 |
0 |
1 |
9 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
||
1 |
0 |
1 |
0 |
A |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
||
1 |
0 |
1 |
1 |
B |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
||
1 |
1 |
0 |
0 |
C |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
||
1 |
1 |
0 |
1 |
D |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
||
1 |
1 |
1 |
0 |
E |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
||
1 |
1 |
1 |
1 |
F |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
||
1 Наведено всі можливі стани входів, відповідні значенням двійкового коду.
2 Наведено стан вихідних сигналів управління сегментами індикатора, що забезпечує відображення символів шістнадцятирічного коду (значення коду см. в окремій колонці).
Для створення проекту цього пристрою використовуємо редактор тимчасових діаграм («Waveform Editor»). Для цього слід натиснути кнопку відкриття нового файла на панелі інструментів, в діалоговому вікні «New» відзначити пункт «Waveform Editor file», в сусідньому вікні вибрати розширення .WDF (розширення .SCF використовується для моделювання) і натиснути «ОК», після чого відкривається вікно редактора.
Вікно редактора має чотири поля, розділених вертикальними лініями. Перше поле зліва («Name») призначено для введення імені вузла, у другому полі («Type») відображається тип введення (INPUT, OUTPUT, BIDIR), в третьому полі («Value») показані стани виводів, що відповідають положенню спеціальної вертикальної лінії, яка при відкритті вікна встановлена в початок горизонтальній осі, розміченій в одиницях часу.
Для переміщення вертикальної лінії в потрібне місце необхідно поєднати курсор з вершиною вертикальної лінії (при цьому курсор прийме хрестоподібну форму) і при натиснутій лівій кнопці миші перетягнути вертикальну лінію в потрібне місце.
Четверте поле призначене для завдання необхідних станів виводів, при цьому використовуються інструменти з панелі інструментів редактора, яка розташована вертикально вздовж лівого боку вікна. Активізація панелі інструментів відбувається тільки в тому випадку, якщо виділено один з вузлів. Щоб виділити вузол, необхідно клацнути лівою кнопкою миші на імені вузла, можна також виділити будь-яку ділянку вздовж горизонтальної осі, при цьому межі ділянок, що виділяються, прив’язуються до сітки.
Параметри сітки встановлюються таким чином: за допомогою пункту «End Time» (меню «File») задається максимальне значення тимчасового інтервалу з зазначенням одиниць виміру, а за допомогою пункту «Grid Size» (меню «Op-tions») – крок сітки. У верхній частині екрана розташовані вікна для точного відліку інтервалів часу.
Збережемо створений файл в каталозі MOD_IND під ім’ям CONV_BIN_HEX і присвоїмо проекту ім’я створеного файла (через підменю «Project» меню «File» головного меню робочого вікна, шляхом вибора пункту «Set Project to Current File»).
Для введення імені вузла можна використовувати пункт «Insert Mode» меню «Node».
У верхнє поле «Node Name» необхідно ввести ім’я вузла, у вікні «I/O Type» вказати тип виводу і натиснути «ОК». Крім того, імена вузлів можна вводити іншим способом. Для цього необхідно клацнути лівою кнопкою миші в полі «Name», при цьому автоматично відкривається діалогове вікно «Insert Mode».
Рис. 15.11. Діалогове вікно пункта «Insert Mode»
Розміщені вузли можна редагувати, переміщати, видаляти, розмножувати (з обов’язковим редагуванням імені або типу, якщо це необхідно). Для редагування використовується те саме діалогове вікно «Insert Mode». Решта операції здійснюються аналогічно тому, як це робиться в графічному редакторі.
У нашому випадку (див. табл. 1) необхідно задати 16 можливих станів 4-х входів і стану 7-ми виходів, відповідні кожному стану входів. Для цього вся горизонтальна вісь повинна бути розбита на 16 дискрет. Наприклад, встановивши значення «End Time» 160 нс, а «Grid Size» – 10 нс, отримаємо 16 дискрет з кроком сітки 10 нс. Після цього послідовно виділяємо вузли і дискети та за допомогою панелі інструментів задаємо необхідні стану входи і виходи.
Рис. 15.12. Введений файл проекта приклада
Далі компілюємо файл і створюємо символ цього пристрою, як описано вище.
Після цього в графічному редакторі створюємо і компілюємо файл проекта всього пристрою в цілому. Як регістру порта використовуємо макрофункції 74374, а як інші елементиів –- елемент WRITE_PORT і два елементи CONV_BIN_HEX.
Порядок відкриття, створення і компіляції файла проекту верхнього рівня нічим не відрізняється від порядку створення та компіляції файла WRITE_PORT, який був розглянутий вище.
Рис. 15.13. Схема описаного в прикладі проекту пристрою індикації
Призначення типу ПЛІС і виводів ПЛІС
Тип ПЛІС, необхідний для реалізації проекту, може бути вибраний автоматично або призначений вручну. При створенні файла проекта за замовчуванням встановлений режим автоматичного вибору мінімальної за обсягом ПЛІС, в якій може бути реалізований даний проект. За необхідності тип ПЛІС може бути призначений вручну за допомогою пункту «Device» (меню «Assign» основного меню системи). Після призначення пристрою проект необхідно перекомпілювати.
Виводи ПЛІС також спочатку призначаються автоматично. Після завершення роботи над проектом необхідно закріпити або перепризначити виводи ПЛІС для того, щоб при можливій подальшій доробці (налагодженні) проекту у складі всього виробу компілятор не міг змінити їх призначення. Ця операція виконується за допомогою редактора «Floorplan Editor», який запускається або через меню «MAX +plus II» (в основному меню), або через панель інструментів.
Рис. 15.14. Вікно редактора зв’язків «Floorplan Editor» (при встановленому
режимі відображення поточних призначень виводів)
З лівого боку вікна є панель інструментів, серед яких є дві кнопки: одна з них встановлює режим відображення результатів компіляції (...last compilation), друга – режим відображення поточних призначень виводів (...current assign-ments). Нагадаємо, що призначення кнопок панелей інструментів пояснюється в рядку підказки в нижній частині вікна.
Для призначення або закріплення виводів необхідно мишею перетягнути імена виводів, що відображаються у вікні «Unassigned Nodes &Pins», на відповідні номери виводів ПЛІС, а потім перекомпілювати проект. Після цього будь-які зміни, що вносяться у внутрішню структуру проекту, тобто не зв’язані з додаванням або видаленням виводів, не будуть змінювати призначення виводів. Зауважимо, що ПЛІС сімейства «MAX 7000S» (а також деякі інші) мають вбудовану систему програмування ISP, яка використовує чотири висновки: # TDI, #TDO, #TMS і #TSK. Ці виводи не повинні використовуватися для інших цілей.
Завершення роботи
Всі результати роботи над проектом фіксуються у файлі з розширенням .RPT, який являє собою звичайний текстовий файл і містить докладний опис реалізованого проекта, в тому числі і опис призначення виводів, необхідне для розробки принципової схеми цільового пристроя. Файл .RPT можна відкрити через меню «File» або натисканням відповідної кнопки на панелі інструментів.
Для завершення роботи над проектом потрібно провести функціональне моделювання. Для цього слід створити вихідний файл з розширенням .SCF, задати тестові (еталонні) стані входів, вибрати перевірку виходів і запустити «Simulator».
Для створення вихідного файла необхідно відкрити новий файл, в діалоговому вікні «New» відзначити пункт «Wave form Editor file», встановити в сусідньому полі вікна розширення. SCF і натиснути «ОК», а потім зберегти його через меню «File» основного меню. Після цього треба пов’язати файл з проектом. Для цього потрібно увійти в меню «Node» і вибрати пункт«Enter Nodes from SNF».
Після натискання кнопки «List» в лівій панелі діалогового вікна «Enter Nodes from SNF» з'являється список доступних вузлів («Available Nodes & Groups»), виділений синім кольором, який необхідно перенести на праву панель («Selected Nodes & Groups»), для чого треба натиснути кнопку зі стрілкою, розташовану між панелями. Після натискання кнопки «ОК» у вікні редактора з'являється готовий шаблон (заготовка) для завдання тестових станів входів.
Перед початком введення тестових станів треьа в порядку, описаному вище, задати тривалість інтервала моделювання та встановити крок сітки з урахуванням часових параметрів реальних сигналів, які подаватимуться на вхід ПЛІС в цільовому пристрої.
Рис. 15.15. Діалогове вікно «Enter Nodes from SNF»
Самі тестові стану входів вводяться так само, як і при створенні проекту (див. вище). У даному випадку моделюється процес запису двійкового коду 01010101 за адресою 10h.
Рис. 15.16.Фрагмент вихідного файлу для моделювання розробленого пристрою ззаданими станами входів
«Simulator» може бути запущений або через меню «MAX +plus II» (в основному меню), або через панель інструментів, при цьому відкривається діалогове вікно з кнопками «Start» і «Open SCF». Для початку моделювання необхідно натиснути кнопку «Start», а для перегляду результатів –«Open SCF».
Рис. 15.17. Фрагмент файла з результатами функціонального моделювання
Для визначення часових співвідношень використовується додаток «Timing Analyzer», яке запускається так само, як «Simulator». Результати розрахунку тимчасових затримок відображаються у вигляді таблиці «Delay Matrix»
Рис. 15.18. Фрагмент таблиці «Delay Matrix»
На закінчення ще раз підкреслимо, що розглянутий приклад є одним з найпростіших і ілюструє тільки деякі прийоми і можливості роботи з САПР «MAX + plus II». Разом з тим сподіваємося, що наведений приклад досить добре ілюструє ефективність системи «MAX + plus II» і здатний стимулювати прагнення зацікавлених фахівців до більш глибокого вивчення, освоєння та використання цього інструмента в їх практичній роботі. Бажаємо творчих успіхів!
Допоміжна літературапо системи «MAX + plus II»
1. Стешенко В.Б. ПЛІС фірми ALTERA: Проектування пристроїв обробки сигналів. – М.: Додека, 2000.
2. Антонов А.П. Мова опису цифрових пристроїв AlteraHDL: Практичний курс. - М.: ІП «Радіософт», 2001. – До книги додається CD-ROM, що містить САПР «MAX + PLUS II».
Приклад 15.3.2
Описати математичну модель ієрархічного дискретного пристрою з багатофункціональною системою організації пам’яті.
Розв’язання:
П
ослідовний
багатофункціональний автомат з пам’яттю
на БФСП, який має дві множини вхідних
сигналів (інформаційних і зберігаючих),
можна через множину зберігаючих вхідних
сигналів настроювати іншим багато- або
монофункціональним автоматом на
функціонування в певному блоці πj
його станів. У цьому
разі створюється багаторівнева
(ієрархічна) структура. Організацію
такої ієрархічної структури автомата
з багатофункціональною системою
пам’яті ілюструє рис. 15.19.
Кожний багатофункціональний півавтомат Si(i = 1, …, N) ієрархічного автомата (ІА) дає можливість розв’язувати задачу паралельно з іншими півавтоматами Si у структурі ієрархічного автомата А (див. рис. 15.19). Півавтомат Si (а отже, і алгоритм його роботи) можна змінити іншим півавтоматом Sk у період внутрішнього
Рис. 15.19. Ієрархічна структура автомата
такту Δ, не знизивши швидкодії півавтоматів Si, як це було при застосуванні тригерних схем пам’яті. Таким чином, у багаторівневій структурі ієрархічного автомата А всі півавтомати Si здатні функціонувати паралельно один до одного без втрати швидкодії.
Розглянемо означення ієрархічного абстрактного автомата.
Означення 1. Математичною моделлю ієрархічного дискретного пристрою з багатофункціональною системою організації пам’яті є абстрактний FI-автомат, який визначається N-компонентним вектором
FI=(S1,S2,..., SN). (15.1)
Кожний компонент Si цього вектора являє собою 16-ти компонентний вектор
Si
= (Хі,
Еі,Zi,
Y1,
Y2,
Y3,
Qi,πi,
).
(15.2)
де Хі — множина інформаційних вхідних сигналів;
Ei — множина зберігаючих вхідних сигналів;
Zi — множина дозволяючих вхідних сигналів;
Yi1 — множина вихідних сигналів типу 1;
Yi2 — множина вихідних сигналів типу 2;
Yi3 — множина вихідних сигналів типа 3;
Qi — довільна множина станів і-го півавтомата;
πi — множина блоків πij станів і-го півавтомата;
—
початковий
зберігаючий вхідний сигнал і-го
півавтомата;
—
початковий стан і-го
півавтомата;
QiXi→
Qi
— однозначна функція
переходів;
Qieij→πij—
функція збереження станів блока πij;
Qi
Ei→πij
— функція укрупненого
переходу в новий блок π
ij;
Qi
Xi →
Yi1
— функція виходів типу
1;
π
ij→ Yi2—
функція виходів типу 2;
Qi
Ei
→ Yi3
— функція виходів типу
3.
FI-автомат у цілому, як і компоненти структури півавтомата Si, функціонально визначається 16-ти компонентним вектором
FI = (X, E, Z,Y1,Y2,Y3, Q,π, E0, Q0, f0, fe, fy,φ1, φ2, φ3). (15.3)
де X= {X1, X2, …, XN} — множина інформаційних вхідних сигналів;
E ={E1, E2, …, EN} — множина зберігаючих вхідних сигналів;
Z ={Z1, Z2, …, ZN} — множина дозволяючих вхідних сигналів;
Y1={
,
,
…,
}
— множина вихідних
сигналів типу 1;
Y2=
{
,
,
…,
}
— множина вихідних
сигналів типу 2;
Y3={
,
,
…,
}
— множина вихідних
сигналів типу 3;
Q ={Q1, Q2, …, QN} — довільна множина станів автомата;
π ={π1,π2, …,πN} — множина блоків станів автомата;
E0={
,
,
…,
}
— множина
початкова зберігаючиx вхідних
сигналів автомата;
Q0={
,
,
…,
}
— множина
початкових станів автомата;
f0:
Q
X → Q — однозначна
функція переходів, що реалізує відображення
у Q;
fe:
Q
ej →
πj
— функція збереження
станів блока πj,що
реалізує відображення
у πj;
fy:
Q
E→ πj
— функція укрупненого
переходу в новий блок πj,
що реалізує відображення
у πj;
φ1:
Q
X→ Y1
— функція виходів типу 1, що реалізує
відображення
на Y1;
φ2:πj
→ Y2
— функція виходів типу
2, що реалізує відображення
на Y2;
φ3:
Q
E →Y3—
функція виходів типу
3, що реалізує відображення
на Y3.
Роботу півавтоматів Sі, що реалізують свою автоматну пам’ять на регістрах відкритого типу, досліджують в автоматному безперервному часі Т.
У
початковий тактовий момент t0
усі півавтомати Si
встановлюються
в початкові стани
початковими
сигналами
.
Під час наступного внутрішнього такта
Δ0
початкові стани
запам’ятовуються
під впливом початкових вхідних сигна-лів
.
Об’єднанням станів
півавтоматів
Si
визначається
загальний стан аі
ієрархічного автомата в даний тактовий
момент tі
або впродовж такту Δі
автоматного безперервного часу Ті.
В ієрархічному автоматі А
у тактовий момент tі
всі (або тільки деякі) півавтомати Si
можуть здійснювати
функції δ0i
однозначних переходів, реалізуючи
загальну функцію f0
однозначних переходів ієрархічного
автомата А в
новий стан аk(t)
=
Під
час внутрішнього такту Δі,
так само як і в тактовий момент ti,
деякі півавтомати Si
здійснюють функції
укрупнених переходів fy
ієрархічного автомата А
в новий стан аk(Δ) =
Коли
півавтомати Si
під час всього зовнішнього такту Ті
або внутрішнього такту Δі
не здійснюють переходів у нові стани,
то вони реалізують функції δei
збереження станів півавтоматів Si,
виконуючи загальну функцію fe
збереження станів ієрархічного автомата
А.
Кожний
із півавтоматів Sі
функціонує в певному
блоці πij
станів. Блоки πij
станів півавтоматів Sі
утворюють в ІА
певний блок
станів, в якому ІА функціонує в даний
момент часу. Характерною особливістю
ІАє можливість взаємодії півавтоматів
Sі
не тільки під час такта tі,
а й під час внутрішнього такта Δі.
Пам’ять півавтоматів Sі на БФСП здатна виконувати перехід з одного стану в інший в одному блоці πij станів під впливом інформаційних вхідних сигналів хі(t) під час такту tі і під час внутрішнього такту Δі під впливом зберігаючих вхідних сигналів еj(Δ) виконувати перехід з одного стану деякого блока πij станів у деякий стан іншого блока πij станів однозначно, імовірно або нечітко.
