Дослідження методів і алгоритмів синтезу синхронних кінцевих автоматів
Поняття та сутність ПЛІС, проектування та зародження мови VHDL. Моделювання систем за допомогою MatLab та Quartus II. Принцип роботи блока Stateflow. Створення графа станів для синхронного кінцевого автомата. Одержання VHDL коду в середовищі Quartus.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | отчет по практике |
Язык | украинский |
Дата добавления | 15.02.2013 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
Кафедра мікро- та наноелектроніки
ЗВІТ
з переддипломної практики
на тему: «Дослідження методів і алгоритмів синтезу синхронних кінцевих автоматів»
Розробив
ст. гр. РТ-318 В.М. Петрінчик
Керівник,
викладач В.М. Матюшин
2013
ЗМІСТ
ВСТУП
1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1 Поняття та сутність ПЛІС
1.1.1 Особливості ПЛІС
1.1.2 Використостання ПЛІС
1.2 Проектування та зародження мови VHDL
1.2.1 Переваги VHDL над схемним проектуванням. Проектування з використанням мови VHDL
1.2.2 Використання VHDL в сучасних САПР
1.2.3 Технологія розробки систем на кристалі
1.2.4 Обчислювальні заготовки
1.3 Проектування в середовищі MatLab
1.3.1 Моделювання систем за допомогою блока Stateflow
1.3.2 Як працює блок Stateflow. Основні функції та визначення
1.4 Проектування в середовищі Quartus II
1.4.1 Схеми розробки програмного забезпечення
1.4.2 Поняття проекту
1.4.3 Стратегія проектування
1.4.4 Процес моделювання
1.4.5 Створення вектора вхідних впливів та файлу *. vwf
1.4.6 Додавання вхідних, вихідних і проміжних сигналів
1.4.7 Визначення параметрів моделювання
1.4.8 Моделювання проекту
1.4.9 Створення вихідних умов для проектування та використання редактора призначень
2. СИНТЕЗ СИНХРОННОГО КІНЦЕВОГО АВТОМАТА
2.1 Створення графа станів для синхронного кінцевого автомата
2.2 Одержання VHDL коду в середовищі Quartus
ВИСНОВКИ
ПЕРЕЛІК ПОСИЛАНЬ
ВСТУП
моделювання граф matlab quartus
Цифрові автомати - це логічні пристрої, в яких, крім логічних елементів, є елементи пам'яті. Значення вихідних сигналів такого пристрою залежить не тільки від аргументів на вході в даний момент часу, але і від попереднього стану автомата, який фіксується елементами пам'яті. Як елементи пам'яті можуть використовуватися тригери. Кожний внутрішній стан цифрового автомата визначається вихідним станом тригерів і послідовністю вхідних сигналів, що діють на вході в даний момент часу, тому такі пристрої називають послідовнісними схемами. До послідовних схема можна віднести: тригери, лічильники, регістри.
У загальному випадку структурна схема цифрового автомата може бути представлена у вигляді набору трьох вузлів: комбінаційної схеми формування вихідних сигналів, комбінаційної схеми формування сигналів управління тригерами і, власне, пам'яті (рисунок 1).
Рисунок 1 - Структурна схема цифрового автомата
За способом формування функції виходів автомати поділяються на автомати Мілі (Mealy) та Мура (Moore).
Відмінність автомата Мура від автомата Милі полягає в тому, що вихідний сигнал в автоматі Мура залежить тільки від поточного стану автомата (рисунок 1 без пунктирних ліній) і в явному вигляді не залежить від вхідного сигналу. В автоматі Мілі вихідні сигнали визначаються як станами і вхідними сигналами (рисунок - 1.1 з урахуванням пунктирних ліній).
У будь-якому пристрої обробки цифрової інформації можна виділити два основні блоки - операційний автомат (ОА) і керуючий автомат (КА).
Операційний автомат (ОА) служить для зберігання слів інформації, виконання набору мікрооперацій і обчислення значень логічних умов, тобто операційний автомат є структурою, організованою для виконання дій над інформацією.
Керуючий автомат (КА) генерує послідовність керуючих сигналів, приписану мікропрограмою і відповідну значенням логічних умов. Інакше кажучи, керуючий автомат задає порядок виконання дій в ОА, що випливає з алгоритму виконання операцій. Керуючий автомат може бути представлений у двох видах: автомат з жорсткою логікою (зі схемною логікою) і автомат з гнучкою логікою (з програмованою логікою). Різниця між автоматом з жорсткою логікою і автоматом з гнучкою логікою у витратах обладнання, необхідного для реалізації одних і тих же функцій, т. ч. у вартості автоматів. Кількість обладнання в автоматі з жорсткою логікою зростає майже пропорційно складності мікропрограми. Для автоматів з гнучкою логікою типові великі питомі витрати обладнання при реалізації відносно нескладних мікропрограм. Автомати з жорсткою логікою мають більш високу швидкодію, ніж автомати з гнучкою логікою.
Таким чином будь-який пристрій - є композицією операційного і керуючого автоматів. Операційний автомат, реалізуючи дії над словами інформації, є виконавчою частиною пристрою, роботою якого керує керуючий автомат, що генерує необхідні послідовності керуючих сигналів.
1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1 Поняття та сутність ПЛІС
1.1.1 Особливості ПЛІС
FPGA (field programmable gate arrays) або ПЛІС (програмовані логічні інтегральні схеми), являють собою цифрові інтегральні мікросхеми (ІС), що складаються з програмованих логічних блоків і програмованих з'єднань між цими блоками. Функціональна можливість пристроїв дозволяє інженерам розробникам вирішувати безліч різних завдань.
Залежно від способу виготовлення ПЛІС можуть програмуватися або один раз, або багато разів. Пристрої, які можуть програмуватися тільки один раз, називаються однопрограмованими.
Словосполучення «field programmable», що міститься в розшифровці абревіатури FPGA, означає, що програмування FPGA - пристроїв виконується на місці, «в польових умовах» (на відміну від пристроїв, внутрішня функціональність яких жорстко прописана виробником). Словосполучення може також означати, що FPGA - пристрої (ПЛІС) конфігуруються в лабораторних умовах, або свідчити про те, що мова йде про можливість модифікації функцій пристрою, вбудованого в електронну систему, яка вже якось використовується. Якщо пристрій може бути запрограмований і залишаючись при цьому в складі системи більш високого рівня, він називається внутрішньо-системно програмованим.
Існує безліч різних типів цифрових мікросхем, в тому числі і такі як «розсипна логіка» (невеликі компоненти, які містять кілька простих фіксованих логічних функцій), пристрої пам'яті та мікропроцесори. В даному випадку інтерес представляють програмовані логічні пристрої (ПЛП), спеціалізовані заказні інтегральні мікросхеми (ASIС - application specific integrated circuit, спеціалізована інтегральна схема та ASSP - application specific standard parts, спеціалізована стандартна схема, та звичайні ПЛІС. Причому термін ПЛП об'єднує два типи пристроїв: прості програмовані логічні пристрої, та складні програмовані логічні пристрої.
Внутрішня архітектура ПЛП визначена виробником, таким чином, що вони можуть бути сконфігуровані (перепрограмовані) «на місці» для виконання самих різних функцій. На відміну від ПЛІС ці пристрої містять меншу кількість вентилів і використовуються для вирішення невеликих і досить простих задач. Разом з тим, існують заказні інтегральні схеми ASIC і ASSP, які містять сотні мільйонів логічних вентилів і можуть виконувати неймовірно великі і складні функцій. В основі ASIC і ASSP лежать одні і ті ж конструкторські рішення, і у них одна і та ж технологія виробництва. Обидва типи пристроїв розробляються для використання у складі спеціальних програм, але при цьому ASIC розробляються і виробляються на замовлення спеціалізованих компаній, ASSP призначені масовим користувачам.
Незважаючи на те, що пропоновані користувачеві заказні мікросхеми відрізняються високим ступенем інтеграції, рівнем складності вирішуваних задач і продуктивністю, їх розробка і виробництво досить тривалий і дорогий процес. До того ж, остаточний варіант схеми «заморожується в кремнії», і для її модифікації потрібне створення нової версії.
Таким чином, ПЛІС займають проміжне положення між ПЛП та заказними інтегральними схемами. З одного боку, їх функціональність може бути задана безпосередньо на місці відповідно до вимог замовника-користувача. З іншого боку, вони можуть містити мільйони логічних вентилів а, отже, реалізувати надзвичайно великі і складні функції, які спочатку могли бути реалізовані тільки за допомогою заказних інтегральних схем.
Що стосується вартості ПЛІС, то вона набагато нижче вартості замовлених інтегральних схем (хоча як відомо заказні мікросхеми при масовому виробництві являються дешевшими). До того ж, у разі використання ПЛІС внесення змін до пристрою не викликає особливих труднощів і суттєво скорочують терміни виходу таких пристроїв на ринок. Все це робить ПЛІС привабливими не тільки для великих розробників, але і для невеликих новаторських конструкторських бюро, які завдяки функціональності ПЛІС залишаються життєздатними при різних умовах. Іншими словами, «апаратні» або «програмні» ідеї окремих інженерів чи невеликих груп інженерів можуть бути реалізовані у вигляді випробувальних стендів на основі ПЛІС без великих одноразових витрат на проектування або закупівлю дорогого оснащення, необхідної для розробки заказних мікросхем. Саме цим пояснюється той факт, що в 2003 році, було розпочато майже 450000 розробок, які передбачають використання ПЛІС, всього 5000 розробок з використанням заказних мікросхем ASSP і тільки від 1500 до 4000 розробок з використанням заказних мікросхем ASIC, причому ці цифри стрімко падають з року в рік.
1.1.2 Використостання ПЛІС
Перші ПЛІС з'явилися в середині 80-х років. У той час вони використовувалися переважно для створення зв'язаної логіки, для реалізації кінцевих автоматів середньої складності і для вирішення деяких задач обробки даних. У міру ускладнення і збільшення розмірів ПЛІС починають користуватися великим попитом. На початку 90-х минулого століття найбільший обсяг продажів відзначався в області мереж та телекомунікацій, в яких передбачалися обробка і передача великих потоків інформації. До кінця 90-х попит на ПЛІС різко зріс у споживчому, автомобільної та виробничій сферах.
ПЛІС, як правило, використовувалися для створення прототипів заказних мікросхем або для створення випробувальних стендів, на яких перевіряється фізична реалізація нових алгоритмів. Однак завдяки низьким витратам на виробництво і малим термінам виходу на ринок ці мікросхеми все частіше використовуються як закінчений продукт. У деяких великих постачальників ПЛІС є пристрої, які становлять пряму конкуренцію рекомендованим мікросхем.
На початоку другого тисячоліття з'явилися високопродуктивні ПЛІС, які містять мільйони вентилів. Деякі з них містять вбудовані мікропроцесорні ядра, високошвидкісні інтерфейси вводу / виводу і інші пристрої. Сучасні ПЛІС знаходять застосування практично в будь-якій сфері, включаючи пристрої зв'язку і програмовані радіостанції. ПЛІС застосовують в радіолокації, обробці зображень і в інших сферах цифрової обробки сигналів (ЦОС). ПЛІС використовують всюди, в тому числі і в однокристальних системах містять програмні і апаратні модулі. Якщо бути більш точним, в даний час ПЛІС заповнюють чотири великих сегменти ринку: заказні інтегральні схеми, цифрова обробка сигналів, системи на основі вбудованих мікроконтролерів і мікросхеми, що забезпечують фізичний рівень передачі даних. Крім того, з появою ПЛІС виник новий сектор ринку - системи з архітектурою, яка перебудовується, або reconfigurable computing (RC).
Заказні інтегральні схеми. Як уже зазначалося, сучасні ПЛІС використовуються для створення пристроїв такого рівня, який до цього могли б забезпечити тільки замовні мікросхеми.
Цифрова обробка сигналів. Високошвидкісна цифрова обробка сигналів традиційно проводилася за допомогою спеціально розроблених мікропроцесорів, так званих цифрових сигнальних процесорів (ЦСП) або digital signal processors (DSP). Однак сучасні ПЛІС містять вбудовані помножувачі, схеми арифметичного перенесення і великий обсяг оперативної пам'яті всередині кристалу. Все це в поєднанні з високим ступенем паралелізму ПЛІС забезпечує перевагу ПЛІС над найшвидшими сигнальними процесорами в 500 і більше разів.
Вбудовувані мікроконтролери. Нескладні завдання управління зазвичай виконуються вбудовуваними процесорами спеціального призначення, які називаються мікроконтролерами. Ці недорогі пристрої містять вбудовану програму, пам'ять команд, таймери, інтерфейси вводу/виводу, розташовані поруч з ядром на одному кристалі. Ціни на ПЛІС падають, до того ж, навіть найпростіші з них можна використовувати для реалізації програмного мікропроцесорного ядра з необхідними функціями вводу/виводу. В результаті ПЛІС стають все більш привабливими пристроями для реалізації функцій мікроконтролерів.
Фізичний рівень передачі даних. В ПЛІС вже давно використовують зв'язані логіки, які виконують функцію інтерфейсу між мікросхемами, що реалізовують фізичний рівень передачі даних з вищими рівнями мережевих протоколів. Той факт, що сучасні ПЛІС можуть містити безліч високошвидкісних передавачів, означає, що мережеві та комунікаційні функції можуть бути реалізовані в одному пристрої. Такі системи мають архітектуру, що перебудовується. Можна використовувати «апаратне прискорення» програмних алгоритмів, грунтуючись на таких властивостях програмованих логічних інтегральних схем (ПЛІС), як паралелізм і переналаштовуємість. В даний час різні компанії зайняті створенням величезних переналаштовуємих обчислювальних машин на основі ПЛІС. Такі системи можуть використовуватися для виконання широкого спектра завдань - від моделювання апаратури до криптографічного аналізу або створення нових ліків.
1.2 Проектування та зародження мови VHDL
1.2.1 Переваги VHDL над схемним проектуванням
Проектування з використанням мови VHDL. Традиційно розробка електричних схем є одним з етапів проектування засобів обчислювальної техніки. Ця відповідальна робота пов'язана з великою трудоміскістю, правильним контролем та відповідністю задуманого проекту, необхідність чіткого і об'ємного опису створених схем, труднощами з їх супроводом і модернізацією. САПР обчислювальної техніки, як правило, мають засоби введення і редагування схем. Проте, два десятиліття тому при розробці НВІС стали відмовлятися від схемного проектування.
Мова Very high speed integrated circuits Hardware Description Language (VHDL) була розроблена в 1983 р. на замовлення Міністерства оборони США з метою формального опису логічних схем для всіх етапів розробки електронних систем. Вона є стандартною мовою з 1987 р. Стандартом 1993 р. закріплені багато її удосконаленнь. Поряд з мовою Verilog мова VHDL є базовою мовою при розробці апаратури сучасних обчислювальних систем.
Проектування великих обчислювальних пристроїв. За допомогою VHDL простіше і швидше ввести і перевірити великий проект. Десятьма рядками VHDL можна описати як 1, так і 100000 тригерів. Мікросхему з інтеграцією більше 10000 вентилів розробити тільки за допомогою електричних схем практично неможливо через громіздкість схем.
Проект на VHDL - об'єднання структури обчислювальних пристроїв і алгоритму його функціонування. Для обчислювальних пристроїв, описаних на VHDL, необов'язково виконувати перевірку правильності їх функціонування, наприклад, шляхом їх макетування. Щоб визначити, чи правильно обчислювальний пристрій виконує заданий алгоритм, достатньо його VHDL-програму запустити на виконання в симуляторі VHDL. Відповідні САПР перетворять VHDL-опис у комплект документації для виготовлення працездатного пристрою.
Проект на VHDL - самодокументованний, тобто він не вимагає додаткового технічного опису або подання у вигляді схем. Нечіткість і недбалість опису виключаються, так як проект на VHDL нескладно перевірити.
Висока надійність проекту. Синтаксичний аналіз, моделювання та компіляція в логічну схему швидко виявляють помилки проекту.
Проект на VHDL - універсальний проект. Розроблений одного разу обчислювальний блок може бути використаний у багатьох інших проектах. При цьому багатоструктурні та функціональні параметри блоку можуть бути налаштованим (параметри розрядності, об'єму пам'яті, елементна база, склад блоку і структура міжз'єднань).
Проект на VHDL - портативний проект. Розроблений для однієї елементної бази, проект обчислювальних пристроїв без проблем переноситься на іншу елементну базу, наприклад, НВІСС з різною технологією.
Проект на VHDL - довгоіснуючий проект. Електрична схема завжди розробляється під конкретну елементну базу і інтерфейс. Так як елементна база змінюється через 2-5 років, за цей же період застарівають і електричні схеми, які використовують її. Проект обчислювальних пристроїв на VHDL може бути повторно використаний через кілька років. Гарне технічне рішення (наприклад, винахід), описане на VHDL, може мати великий попит протягом десятиліть.
VHDL - універсальний засіб опису обчислювальних пристроїв на рівнях:
- алгоритмічному,
- структурному,
- регістровихпередач (RTL) і потоків даних (потік даних),
- логічному,
- аналогових схем.
Проектування з використанням VHDL. На рисунку 1.1 показана схема розробки проекту обчислювальних пристроїв, призначеного для виконання в базисіпрограмованих логічних інтегральних схем (ПЛІС).
Спочатку обчислювальний пристрій описується у вигляді своєї поведінкової моделі, на якій відпрацьовується задуманий алгоритм функціонування обчислювального пристрою. Потім ця модель вручну переробляється в синтезовану модель обчислювального пристрою, описану на рівні регістрових передач. Така модель, будучи странсформованою компілятором-синтезатором, дає проектну документацію в вигляді файлу опису схеми обчислювального пристрою на рівні вентилів (EDIF-файл). При цьому автоматично виконується логічна оптимізація обчислювального пристрою. Одночасно цей файл автоматично перетвориться в VHDL-модель обчислювального пристрою на рівні вентилів.
Рисунок 1.1 - Схема розробки проекту обчислювальних пристроїв для ПЛІС
Проект обчислювального пристрою у вигляді електронного представлення у міжнародному форматі (EDIF) файлу приймається, як вихідні дані, всіма САПР виготовлення ПЛІС і НВІС. Ці САПР виконують заміну вентилів на бібліотечні компоненти, їх розміщення на площі кристала, трасуванням міжзєднань, проектування масок, перевірку відповідності проектним нормам тощо. В результаті записуються файли проектної документації виготовлення кристала і його логічної моделі, що враховує затримки, як у вентилях, так і в міжз'єднаннях. Ця модель також представляється на VHDL.
Вартість помилок при проектуванні НВІС дуже висока, особливо на ранніх етапах. Тому всі етапи проектування - алгоритмічний, структурний, логічний, технологічний - супроводжуються моделюванням обчислювальних пристроїв за допомогою, так званого, випробувального стенду (testbench). Цей стенд являє собою VHDL-модель, складовими частинами якої є модель тестованого обчислювального пристрою і моделі генератора тестових сигналів і логічного аналізатора, перевіряючих правильність функціонування обчислювального пристрою. Причому на всіх етапах може використовуватись один випробувальний стенд і тіж самі тестові файли.
1.2.2 Використання VHDL в сучасних САПР
Історично склалося, що в мікроелектронній індустрії найбільше поширення набула мова Verilog. Півтора десятиліття тому ця мова вигравала конкурентну боротьбу з іншими мовними завдання обчислювальних пристроїв, завдяки невеликим обчислювальним ресурсам, необхідним для колишніх робочих станцій і досить точним результатам моделювання НВІС. VHDL - більш універсальна і гнучка мова, але вона програє у швидкодії мові Verilog, особливо при моделюванні на рівні вентилів і транзисторів. VHDL набув широкого поширення в університетах і дослідницьких установах, тому що це строга, жорстка, універсальна і розширена мова. Так, наприклад, з'явилися пакети VHDL для аналогового моделювання, моделювання багатозначної логіки. Крім того, симулятори VHDL були набагато дешевші за симулятори Verilog.
Всі сучасні САПР мікроелектроніки мають компілятори як з Verilog, так і з VHDL. Програміст, що освоїв VHDL, без особливих зусиль може перейти до програмування на мові Verilog. Але програмісту, що знає Verilog, перейти до VHDL важче.
Найважливішими якостями VHDL в САПР виступають наступні поняття:
- гнучкість - проект, описаний на VHDL, може бути легко налаштований під конкретні завдання споживача;
- універсальна мова. VHDL - загальноприйнята мова для всіх основних фірм - виробників мікросхем ПЛІС, ПЛМ, замовлених НВІС, як стандартна мова для завдання складних проектів. Проектування з VHDL - стійка тенденція в інженерній технології. Існують компілятори, що транслюють VHDL-програми в еквівалентні їм Verilog-програми;
- моделювання з урахуванням затримок. Фірми-виробники мікросхем у своїх САПР забезпечують генерацію моделей результатів розміщення і трасування, описаних на VHDL;
- стандартне підключення блоків. Конструкції мови, такі entity, port map, configuration, забезпечують надійну і швидку стиковку блоків, розроблених різними фірмами і розробниками, у різному поєднанні;
- стандартне тестування. На всіх етапах розробки виконується тестування за однією методикою одними і тими ж тестами;
- VHDL - стандарт майбутнього. Всі нові САПР засновані на технології трансляції опису обчислювальних пристроїв на мові опису апаратури. Використання VHDL - гарантія того, що через 5 або 10 років знайдеться САПР, що підтримує старі розробки.
1.2.3 Технологія розробки систем на кристалі
Відповідно до відомого закону Мура, кількість транзисторів на кристалі НВІС з кожним роком збільшується приблизн на 60%. З певного моменту часу те обладнання, яке розміщувалося на одній друкованій платі, стало можливим помістити на одному кристалі (рисунок 1.2). Причому, це стає вигідним завдяки зменшенню загальної вартості, числа необхідних мікросхем, енергоспоживання, підвищення надійності обчислювального пристрою.
Рисунок 1.2 - Перехід від системи на платі до системи на кристалі
Таким чином, на одному кристалі розміщується не тільки конкретний функціональний пристрій, наприклад, центральний процесор, але й інші пристрої, такі як АЦП, ОЗП, ПЗП, блоки цифрової обробки сигналів, інтерфейсні вузли і т п., що доповнюють кристал до закінченої системи блоків. Тому такий обчислювальний пристрій прийнято називати системою на кристалі (SOC) - системою на кристалі (СНК).
СНК - це, як правило, замовна НВІС. Щоб розробка СНК себе окупила, необхідно реалізувати десятки і сотні тисяч НВІС. Проект обчислюваного пристрою, реалізований на ПЛІС, може бути вигідним при партіях, як в десятки, так і в десятки тисяч копій, завдяки дешевизні розробки та виробництва таких обчислювальних пристроїв. Розробка таких обчислювальних пристроїв триває, як мінімум, в 2 рази швидше, ніж проектування НВІС. Це зумовило бурхливий поширення ПЛІС в якості елементної бази СНК.
Найбільш трудомісткими і відповідальними етапами розробки СНК виступають етапи структурного проектування та верифікації відповідності обчислювального пристрою заданим алгоритмам функціонування. Тому ефективність САПР мікросхем і продуктивність разрабників, що виконують проектування на рівні регістрових передач, постійно зростає приблизно на 20% в рік. Але, починаючи з середини 90-х років, продуктивність розробників стала помітно відставати від зростання складності СНК (рисунок 1.3).
Рисунок 1.3 - Зростання продуктивності праці при розробці СНК
Першим напрямком поліпшення технології розробки СНК, орієнтованим на зменшення зазору між зростанням продуктивності проектування на рівні регістрових передач і ростом складності СНК, є застосування великих бібліотечних обчислювальних модулів (Intellectual Property Cores - ядер інтелектуальної власності). Ці модулі повинні бути надійно повторюваними і налаштованим під реалізоване завдання в ряді проектів СНК. Повторне застосування таких модулів (IP Core reuse), які можна назвати обчислювальними заготовками за їх функціональну та технологічну адаптованість, дозволяє зменшити трудовитрати і терміни проектування СНК.
Другий напрямок - це розробка САПР сучасного проектування апаратно-програмного забезпечення (Hardware - Software Codesign). Архітектура СНК, як правило, включає в себе мікропроцесорне ядро з периферійними пристроями в різному поєднанні. Зазвичай процес розробки обчислювальних пристроїв з такою архітектурою складається з трьох послідовних етапів: проектування електричної схеми апаратури, розробки матзабезпечення мікропроцесора і стикування матзабезпечення з апаратурою.
Для прискорення проектування розробляють САПР, яка не тільки служить для спільного виконання цих етапів, але і забезпечує моделювання роботи СНК і її верифікацію в комплексі.
Найбільше прискорення розробки СНК може дати впровадження САПР безпосереднього відображення алгоритмів в апаратуру, тобто САПР системного проектування. Наприклад, така САПР може включати в себе трансляцію програми з мови високого рівня, такої як C++, з автоматичним розділенням обчислювальних задач між мікропроцесорним ядром і спецпроцесором та іншими периферійними пристроями.
Для більш плавного переходу від алгоритму функціонування системи, описаного на мові C++, до апаратно-програмного опису все частіше застосовується мова System-C. Особливість цієї підмножини мови C++ в тому, що її функції мають взаємно однозначну відповідність з конструкціями мов VHDL і Verilog, що описують апаратуру.
1.2.4 Обчислювальні заготовки
У великих фірмах, які багато років займаються розробкою НВІС, а тепер і СНК, напрацьовані великі бібліотеки стандартних модулів, таких як: ОЗП, АЛП, периферійні пристрої. У нових проектах СНК деякі блоки доводиться розробляти заново, а решта - зазвичай беруться з бібліотеки. При цьому, якщо модуль неясно описаний, не має зручного інтерфейсу, документації, коментарів, випробувального стенду з надійними тестами, то він повторно застосовуватися не буде.
Якщо такий модуль спочатку оформлений у вигляді обчислювальної заготовки, то він буде без зайвих проблем вставлятися в будь-який новий проект. Більш того, ліцензію на нього можна пропонувати іншим фірмам-розробникам СНК. Рисунок 1.4 ілюструє суть обчислювальної заготовки (IP Core).
Рисунок 1.4 - Заготовка з різними властивостями СНК. В залежності від налаштування, обчислювальна заготовка має різні властивості в СНК: структуру, інтерфейс, об'єм памяті, швидкодію
Обчислювальні заготовки розрізняються за ступенем гнучкості свого налаштування під умови споживача, таких як:
- гнучкі (описані мовою опису апаратури, такої, як VHDL, на рівні регістрових передач);
- жорсткі (логічна схема, EDIF-файл);
- тверді (маски під певну технологію, прошивки ПЛІС).
Гнучкі заготовки зазвичай підлаштовуються до умов нового проекту в широких межах і незалежні від його технології (серія ПЛІС, технологія НВІС). Зазвичай в них задаються розрядність даних, обсяг пам'яті, таблиці констант, перелік периферійних пристроїв, іноді - швидкодія, яка пропорційна апаратурним витратам. Мінімізація апаратурних витрат обчислювальних заготовок забезпечує не тільки зменшення вартості СНК, але і мінімізацію його енергоспоживання, що є важливим фактором для портативних і енергонезалежних обчислювальних пристроїв, в яких застосовуються СНК.
Щоб проект обчислювального пристрою був прийнятий як гнучка обчислювальна заготовка, він повинен мати:
- повну і ясну документацію;
- текст опису на VHDL або Verilog в хорошому стилі для синтезу, заготівля повинна настроюватися під технічні умови споживача;
- хороші засоби верифікації у вигляді випробувальних стендів, вичерпних тестів, можливо, експериментальні макети;
- чітку методику того, як обчислювальний пристрій вставляти в СНК, що включає надійні скрипти (програми на макромові САПР, автоматизоване тестування та створення жорсткої або твердої заготовки).
В сьогоднішніх умовах, щоб швидше перейти від ідеї до "заліза", ефективніше провести проектуванн нової СНК, необхідно цю СНК "зібрати" з наявних обчислювальних заготовок, а відсутні заготовки - придбати на ринку IP-Core, який бурхливо розвивається в останні роки.
Якщо придбати не вдасться або якщо проект - дослідницький, то необхідну заготовку можна пошукати, наприклад, у банку безкоштовних IP-Core, що на сайті www.opencores.org. Цей банк створений з ініціативи організацій, що сприяють розвитку технології СНК, а також інженерів, які бажають поділитися своїми результатами. Якщо обидва ці шляхи не влаштовують, то доведеться обчислювальний пристрій проектувати самостійно.
1.3 Проектування в середовищі MatLab
MATLAB - це високопродуктивна мова для технічних розрахунків. Вона включає в себе обчислення, візуалізацію та програмування в зручному середовищі, де завдання й рішення виражаються у формі, близькій до математичної. Типове використання MATLAB - це:
- математичні обчислення;
- створення алгоритмів;
- моделювання;
- аналіз даних, дослідження та візуалізація;
- наукова та інженерна графіка;
- розробка додатків, включаючи створення графічного інтерфейсу.
MATLAB - це інтерактивна система, в якій основним елементом даних є масив. Це дозволяє вирішувати різні завдання, пов'язані з технічними обчисленнями, особливо в яких використовуються матриці і вектори, в кілька разів швидше, ніж при написанні програм з використанням "скалярних" мов програмування, таких як Сі або Фортран.
MATLAB розвивався протягом декількох років, орієнтуючись на різних користувачів. В університетському середовищі, він являв собою стандартний інструмент для роботи в різних областях математики, машинобудуванні і науки. У промисловості, MATLAB - це інструмент для високопродуктивних досліджень, розробок та аналізу даних.
1.3.1 Моделювання систем за допомогою блока Stateflow
Stateflow - інструмент для чисельного моделювання систем, що характеризуються складною поведінкою. До числа таких систем відносяться гібридні системи. Прикладами гібридних систем можуть служити системи управління, що використовуються в промисловості (автоматизовані технологічні процеси), в побуті (складні побутові прилади), у військовій області (високотехнологічні види озброєнь), у сфері космонавтики, транспорту і зв'язку. Всі ці системи складаються з аналогових і дискретних компонентів. Тому гібридні системи - це системи зі складним взаємодією дискретної і безперервної динаміки. Вони характеризуються не тільки безперервною зміною стану системи, а й стрибкоподібними варіаціями у відповідності з логікою роботи керуючої підсистеми, роль якої, як правило, виконує той чи інший обчислювальний пристрій (кінцевий автомат).
1.3.2 Як працює блок Stateflow
Основні функції та визначення. Кінцевий автомат (finite state machine (FSM)) - варіант керованої подіями (реактивної) системи. Керована подіями система переходить з одного стану (режиму) в інший запропонований стан в тому випадку, якщо умова, що визначає зміну, вірна.
Наприклад, можна використовувати кінцевий автомат, щоб описати автоматичну передачу автомобіля. Передачі мають ряд станів: парковка, нейтраль, рух, реверс і т.д. Система переходить з одного стану в інший, коли водій переміщує важіль з однієї позиції в іншу, наприклад, з позиції парковки в нейтральне положення.
Традиційно проектувальники використовували таблиці істинності, щоб представити відносини між вводами, виводами і станами автомата. Результуюча таблиця описує логіку поведінки системи. Інший підхід до проектування керованих подіями систем полягає в тому, щоб моделювати поведінку системи, описуючи його в термінах переходів між станами. Перехід стану в активну фазу визначається настанням подій при наявності деяких умов. Діаграми переходів (state-transition diagrams (STDs)) і кругові діаграми (bubble diagrams) - графічні уявлення, засновані на цьому підході.
Stateflow використовує варіант системи позначень кінцевого автомата, запропонований Девідом Харелем (state - стан, flow - потік). Діаграма Stateflow - графічне представлення кінцевого автомата, де стани і переходи формують базові конструктивні блоки системи. Можна також представляти потокові (не мають станів) діаграми з використанням Stateflow. Stateflow створює блоки, які включаються в модель Simulink сукупністю Stateflow- блоків. В моделі Simulink таким чином створюється Stateflow машина.
Додатково Stateflow допускає в поданні ієрархію, паралелізм і хронологію (історію). Ієрархія дає можливість організувати комплексні системи, визначаючи структуру об'єкта у вигляді "батьки/нащадки". Тобто можна організувати стани всередині інших станів вищого рівня. Система з паралелізмом може мати два або більше активних станів одночасно. Хронологія забезпечує дії для визначення стану - адресата для деякого переходу, грунтуючись на попередній інформації. Ці властивості розширюють корисність даного підходу і відсутні в STDs і кругові діаграми.
Система позначень визначає набір об'єктів і правил, які керують взаємодіями між цими об'єктами. Stateflow система позначень забезпечує і дозволяє розробити проект в повній відповідності з діаграмою Stateflow. Stateflow система позначень складається з:
набору графічних об'єктів;
набору неграфічних (текстових) об'єктів;
певних відносин між цими об'єктами (семантика).
Семантика описує, як система позначень інтерпретується і здійснюється. Закінчена діаграма Stateflow ілюструє, як система буде вести себе. Діаграма Stateflow містить дії, пов'язані з переходами і станами. Семантика описує, в якій послідовності ці дії мають місце в ході виконання діаграми Stateflow.
Знання семантики особливо важливо для забезпечення правильних проектних рішень Stateflow-діаграм при генерації об'єктного коду. Різне використання системи позначень призводить до різного порядку виконання згенерованого коду.
Stateflow - сукупність Stateflow-блоків у моделі Sіmulіnk. Sіmulіnk модель і Stateflow працюють спільно. Запуск моделювання автоматично запускає виконання як і Sіmulіnk, так і Stateflow частин моделі.
Модель Sіmulіnk може складатися з комбінацій Sіmulіnk блоків, додаткових блоків з комплектів інструментів і Stateflow блоків (Stateflow діаграм). Stateflow діаграма (Stateflow chart) складається з набору графічних (стани, переходи, з'єднання (вузли), хронологічні з'єднання) і неграфічних (події, дані, програмні коди) об'єктів.
Є взаємно однозначна відповідність між моделлю Sіmulіnk і блоком Stateflow. Кожний блок Stateflow у моделі Sіmulіnk представлений в Stateflow окремою діаграмою (Stateflow-діаграма). Кожн блок Stateflow має власну ієрархію об'єктів. Блок Stateflow - найвищий рівень в Stateflow ієрархії. Нижче в об'єктній ієрархії Stateflow перебуває комбінація графічних і неграфічних об'єктів. Словник даних - архів для всіх об'єктів Stateflow.
На рисуноку 1.5 показаний зв'язок між моделями та блоками в MatLab.
Рисунок 1.5 - Зв'язок між моделями та блоками в MatLab
Stateflow правила огляду даних диктують, де в ієрархії можуть існувати конкретні типи неграфічних об'єктів. Наприклад, дані й події можуть породжуватися системою, Stateflow діаграмою або станом. Програмні коди можуть породжуватися тільки машиною. Як тільки батько для об'єкта обраний, об'єкт відомий в ієрархії від батька вниз (включаючи нащадків батька). Наприклад, об'єкт дані, породжений машиною, доступний цій машині, будь-яким діаграмам в межах цієї машини й будь-якими станам у межах цієї машини. Управління ієрархією неграфічних об'єктів виконується за допомогою Оглядача (Explorer) або меню Add графічного редактора. Що стосується ієрархії графічних об'єктів, то вона автоматично обробляється графічним редактором.
Кожний блок Stateflow відповідає єдиній діаграмі Stateflow. Блок Stateflow зв'язується з моделлю Sіmulіnk за допомогою інтерфейсу. За допомогою інтерфейсу блок Stateflow підключається до джерел, що надходять від моделі Sіmulіnk (дані, події, код користувача).
Stateflow діаграми управляються подіями. Події можуть бути локальними для блоку Stateflow або можуть надходити до й від моделі Sіmulіnk і джерел коду, зовнішніх до Sіmulіnk. Дані також можуть бути локальними для блоку Stateflow або можуть надходити як до, так і від моделі Sіmulіnk і джерел коду, зовнішніх до Sіmulіnk.
Необхідно визначити інтерфейс для кожного блоку Stateflow. Визначення інтерфейсу для блоку Stateflow може включати деякі або всі приведені завданя:
- визначення методу модифікації блоку Stateflow;
- визначення Output to Sіmulіnk (Вихідних до Sіmulіnk) подій;
- додавання й визначення нелокальних подій і нелокальних даних у межах діаграми Stateflow;
- визначення звязків з будь-якими зовнішніми джерелами.
У розглянутому прикладі Sіmulіnk модель складається з Sіmulіnk блоку - джерела Sіne Wave (Синусоїда), Sіmulіnk блоку - приймача Scope (Осцилограф) і єдиного блоку Stateflow з назвою On_off (рис. 1.6).
Рисунок 1.6 - Зв'язок моделі Sіmulіnk з блоком Stateflow
Стан описує режим керованої подіями системи. Динамічні переходи станів від активності до неактивності базуються на подіях і умовах. Кожний стан має батька. У діаграмі Stateflow, що складаєтьяс з єдиного стану, батько стану - безпосередньо діаграма Stateflow (також називана коренем діаграми Stateflow). Можна розміщати стани в межах інших станів вищого рівня. На рисунку 1.8 Statea1 - нащадок в ієрархії стосовно Statea.
Далі приводиться приклад Stateflow діаграми, у якій використовуються основні графічні компоненти (рисунок 1.7). Крім того, детально описуються ці графічні компоненти, а також деякі неграфічні об'єкти й зв'язки між ними.
Рисунок 1.7 - Stateflow діаграма з використанням основних компонентів
Стан також має хронологію. Хронологія забезпечує ефективні засоби базування майбутньої дії на минулій дії.
Стани мають мітки, які можуть визначити дії, виконані в послідовності, заснованої на типі дії. Типи дії - entry (на вході), durіng (протягом ), exіt (на виході) і on event_name (у випадку події з іменем _).
У прикладі автоматичної передачі, передача може бути в нейтральному положенні або включена в роботу. На рис. 1.9 показані два стани цієї системи - neutral (нейтраль) і engaged (включена).
Рисунок 1.9 - Зображення стану автоматичної передачі
Stateflow забезпечує два типи станів: паралельний (І) і винятковий (АБО) тип стану. Паралелізм представлений І (паралельними) станами. Автоматична передача - приклад виняткового (АБО) стану. Виняткові (АБО) стани використовуються, щоб описати режими, які є взаємовиключними. Система перебуває або в нейтральному стані, або у включеному стані в кожний момент часу.
Перехід - графічний об'єкт, який у більшості випадків зв'язує один об'єкт із іншим. Один кінець переходу прикладений до об'єкта- джерела, а інший кінець - до адресата. Джерело - це місце, де перехід починається, а адресат - це місце, де перехід закінчуються. Мітки переходів описують обставини, під дією яких система переходить із одного стану до іншого. Ці обставини - це настання деяких подій, які змушують перехід відбуватися. На рисуноку 1.8 перехід від Statea1 до Statea2 позначений подією transіtіona1_A2, яка змушує перехід відбутися.
Розглянемо знову автоматичну передачу (рисунок 1.10). Clutch_engaged (включення передачі) - подія, яка потрібна, щоб здійснити перехід з нейтрального положення в стан "включене".
Рисунок 1.10 - Зв'язок між станами в автоматичній передачі
Події керують виконанням діаграми Stateflow, але є неграфічними об'єктами й у такий спосіб не представлені безпосередньо в діаграмі Stateflow. Усі події, які мають відношення до діаграми Stateflow, повинні бути визначені. Настання події змушує статус стану (активно - неактивно) у діаграмі Stateflow змінюватися. Настання події може запускати перехід, і тоді він відбувається, або може запускати дії, і тоді вони виконується. Події наступають спадної, починаючи від батька подій в ієрархії.
Події створюються й змінюються за допомогою Stateflow Explorer (Stateflow провідника). Події можуть бути створені на будь-якому рівні ієрархії. Подія має таку властивість, як видимість. Видимість визначає, чи є подія:
- локальною для діаграми Stateflow;
- входить в Stateflow діаграму від моделі Sіmulіnk;
- виходить із Stateflow діаграми в модель Sіmulіnk;
- експортується в код, зовнішній до Stateflow діаграми й моделі Sіmulіnk;
- імпортується із джерела коду, зовнішнього до Stateflow і Sіmulіnk.
Дані (Data). Об'єкти-Дані використовуються, щоб зберігати числові значення для застосування в діаграмі Stateflow. Вони є неграфічними об'єктами й у такий спосіб не представлені безпосередньо в діаграмі Stateflow.
Дані створюються й змінюються в Stateflow Explorer. Вони можуть бути створені на будь-якому рівні ієрархії. Дані мають таку властивість, як видимість. Видимість визначає для об'єктів-даних одну з наступних можливостей:
- бути локальними для діаграми Stateflow;
- надходити в Stateflow діаграму від моделі Sіmulіnk;
- виходити з Stateflow діаграми в модель Sіmulіnk;
- бути часовими даними;
- бути певними в робочому просторі MATLAB;
- бути Константами;
- експортуватися в код, зовнішній до Stateflow діаграми й моделі Sіmulіnk;
- імпортуватися із джерела коду, зовнішнього до Stateflow і Sіmulіnk.
Ієрархія дає можливість організувати складні системи, визначаючи предка й структуру об'єктів-нащадків. Ієрархічно побудований проект звичайно скорочує число переходів і приводить до чітких, зрозумілих діаграм. Stateflow підтримує ієрархічну організацію як для діаграм, так і для станів. Діаграми можуть існувати усередині інших діаграм. Діаграма, яка існує в іншій діаграмі, називається піддіаграмою.
Точно так само стани можуть існувати усередині інших станів. Stateflow представляє ієрархію станів із суперстанами й підстанами. Наприклад, ця діаграма Stateflow має суперстан, який містить два підстани (рисунок 1.11).
Рисунок 1.11 - Діаграма Stateflow, яка містить суперстан та два підстани
Суперстан engaged (передача включена) містить підстани fіrst (перша передача) і second (друга передача). Суперстан engaged - предок в ієрархії стосовно станів fіrst і second. Коли подія clutch_engaged відбувається, система переходить із нейтрального стану до суперстану "включене". Переходи усередині суперстану навмисно опущені в цьому прикладі для простоти.
Вихід зі стану вищого рівня або суперстану також має на увазі вихід з будь-яких активних передстанів цього суперстану. Переходи можуть перетинати границі суперстану, щоб досягтися підстану-адресата. Якщо підстан активний, його батьківський стан (суперстан) також активний.
Умова - булевий вираз, який визначає, що перехід відбувається, якщо зазначений вираз є дійсним. На рисунку 1.12 компонент Stateflow діаграми [condіtіon1] представляє булевий вираз, який повинен бути дійсним, щоб перехід відбувся.
В автоматичній коробці передач перехід з першої швидкості до другої відбувається, якщо булева умова [speed > threshold] ([швидкість > граничне_значення]) дійсна.
Рисунок 1.12 - Діаграма Stateflow з представленням булевого виразу
Хронологія - засіб для визначення підстану-адресата переходу по передісторії. Якщо суперстан з винятковою (АБО) декомпозицією має хронологічне з'єднання, підстаном-адресатом при переході буде підстаном, відвідне до цього останнім. Хронологічне з'єднання застосовується до того рівня ієрархії, у якому є присутнім. Хронологічне з'єднання скасовує будь-які переходи за замовчуванням. На рисунку 1.13 хронологічне з'єднання в Statea1 указує, що, коли перехід до Statea1 відбувається, стає активним той з підстанів (Statea1a, Statea1b або Statea1c), який буде активним в останню чергу.
В автоматичній передачі хронологія вказує, що, коли clutch_engaged викликає перехід від нейтралі до суперстану включений, стає активним той підстан (перша або друга швидкість), який був активним в останню чергу.
Рисунок 1.13 - Діаграма Stateflow з представленням хронології в автоматичній передачі
Дія - це результат виконання якої-небудь частини діаграми Stateflow. Дія може бути виконана в результаті переходу від одного стану до іншого. Дія може бути також реакцією на стан. На рисунку 14 сегмент переходу від Statea1b до з'єднання позначений дією func1() умови condіtіon 1, а сегмент переходу від з'єднання до Statea1c позначений дією func2() переходу. Семантика дій буде розглянута пізніше.
Перехід, що закінчується в стані, може мати дію умови (condіtіon actіon) і дію переходу (transіtіon actіon), як розглянуто нижче (рисунок - 14). Однак переходи, які закінчуються в з'єднаннях, можуть мати тільки дії умов (не допускаються дії переходів).
Рисунок 1.14 - Зображення переходу який закінчується в стані Power_off
Стани можуть мати дії have entry (на вході), durіng (протягом ), exіt (на виході) і on event_name (у випадку події з іменем _ ). Наприклад, як зображено на рисунку 1.15.
Рисунок 1.15 - Зображення стану Power_on, який має дії: entry, durіng, exіt та on Swich_off.
Мова дій визначає типи дій, які можна використовувати й пов'язані з ними системи позначень. Дією може бути звертання до функції, настання події, присвоєння деякого значення змінної і т.д.
Stateflow підтримує парадигми моделювання кінцевих автоматів Мура й Милі. У Милі моделі дії пов'язані з переходами, у той час як у Мура моделі вони пов'язані зі станами. Stateflow підтримує дії станів, дії переходів і дії умов.
Система з паралелізмом має два або більше станів, які можуть бути активні одночасно. Дії кожного паралельного стану по суті незалежні від інших станів. На рисунку 1.16, Statea2a і Statea2b - паралельні (І) стану. Statea2 має паралельну (І) декомпозицію стану.
Наприклад, дана діаграма Stateflow має паралельну декомпозицію суперстанів (рисунок 1.16).
Рисунок 1.16 - Діаграма Stateflow з паралельною декомпозицією суперстанів
Передача (Transmіssіon), обігрів (Heat) і освітлювальні прилади (Lіghts) - це паралельні підсистеми в автомобілі. Вони існують паралельно й фізично незалежні від один одного. Є багато інших паралельних компонентів в автомобілі, наприклад підсистема гальмування й підсистема очищення вітрового скла.
Ви представляєте паралелізм в Stateflow, задаючи паралельну (І) декомпозицію. Паралельні (І) стани відображені обведеними штриховою лінією областями.
Стандартні переходи визначають, яке з декількох виняткових (АБО) станів повинне бути активним, коли є невизначеність між двома або більш винятковими (АБО) станами на одному рівні в ієрархії.
Наприклад на рисунку 1.16 стандартний перехід Statea1 дозволяє неоднозначність, яка існує у відношенні того, який з підстанів, Statea1 або Statea2, повинне бути активним, коли суперстан Statea стає активним. У цьому випадку, коли Statea активно, за стандартом Statea1 також активно.
У наступній підсистемі Lіghts (Освітлювальні прилади) стандартний перехід до підстану Lіghts (рисунок 1.17). Off (Освітлювальні прилади виключені) указує, що, коли суперстан Lіghts стає активним, Lіghts.Off підстан стає активним за стандартом.
Рисунок 1.17 -Діаграма Stateflow із зображенням стандартного переходу
Потрібно враховувати що хронологічні з'єднання скасовують переходи за замовчуванням у суперстанах з винятковими (АБО) декомпозиціями.
Треба звернути увагу, що у паралельних (І) станах стандартні переходи завжди повинні бути присутнім, щоб указати, які з його виняткових (АБО) станів активні, коли паралельний стан стає активним.
З'єднання - крапки прийняття рішення у системі. З'єднання - графічний об'єкт, який спрощує Stateflow схематичні представлення й полегшує породження ефективного коду. З'єднання забезпечують альтернативні способи представлення потрібної поведінка системи. На представленій Stateflow діаграмі з'єднання використовується як крапка ухвалення рішення для двох сегментів переходу, що завершуються в стані Statea1c (рисунок 1.18).
Наступний приклад показує, як з'єднання (відображувані у вигляді окружностей) використовуються для конструкції іf (рисунок 1.17).
Рисунок 1.18 - Діаграма Stateflow та зображення зєднань
Цей фрагмент виконується в такий спосіб:
- якщо умова [с1] вірна, умовна дія а1 виконується й відбувається безумовний перехід до першого (верхнього) з'єднання;
- Stateflow визначає, який сегмент переходу верхнього з'єднання вибрати (можна вибрати тільки один). З'єднання з умовами мають пріоритет над з'єднаннями без умов, таким чином перехід з умовою [с2] розглядається першим;
- якщо умова [с2] істинна, дія а2 виконується й відбувається перехід до нижнього з'єднання. Тому що немає переходу, що виходить із цього з'єднання, виконання діаграми завершене;
- якщо умова [с2] неправильна, відбувається безумовний переходу по правому із сегментів (він не має умови);
- якщо умова [с3] істинна, умовна дія а3 виконується й відбувається перехід до нижнього з'єднання.Виконання діаграми завершене;
- якщо умова [с3] неправильна, виконання закінчується на середньому з'єднанні.
1.4 Проектування в середовищі QUARTUS II (Altera)
1.4.1 Схеми розробки програмного забезпечення
Програмне забезпечення Altera Quartus II надає повне медіаплатформове середовище проектування, яке може бути легко переналаштоване під конкретні вимоги. Це ідеальне середовище для проектування на основі ПЛІС закінчених систем на кристалі (SOPS). Програмне забезпечення Quartus II включає в себе засоби для всіх фаз проектування із застосуванням ПЛІС як FPGA, так і CPLD структур. Взаємозв'язок систем середовища проектування показаний на рисунку 1.19.
Можливий варіант процедури проектування, реалізація якого доступна з застосуванням середовища Quartus II Web Edition Software Version 4.2, представлений на рисунку 1.20.
Реалізація даної процедури припускає використання або стратегії висхідного, або спадного проектування.
І та і інша стратегії мають на увазі використання поведінкових і структурних описів модулів. При структурному описі модуль представляється у вигляді сукупності взаємопов'язаних компонентів більш низького рівня в ієрархії описів. При поведінковому ж описі задається алгоритм роботи модуля.
Рисунок 1.19 - Взаємозв'язок систем середовища проектування
Висхідне проектування застосовне в тому випадку, коли для створюваного пристрою є детальне структурний опис (зазвичай - принципова схема на мікросхемах середнього ступеня інтеграції), виконаний в елементному базисі, відмінному від наявного в розпорядженні розробника НВІС.
Рисунок 1.20 - Проектування в середовищі Quartus II Web Edition Software Version 4.2
1.4.2 Поняття проекту
Під терміном «проект» у рамках пакета Quartus II розумієть набір файлів, пов'язаних з проектованим модулем, в якому виділяються дві групи файлів:
- логічні файли, що описують алгоритм роботи пристрою (Design Files);
- допоміжні файли (Ancilary Files).
Проект може містити один логічний файл або декілька логічних файлів, що утворюють ієрархічний опис проектованого модуля. При ієрархічному описі серед безлічі логічних файлів розрізняють:
- файл верхнього рівня в ієрархії описів (Top-level Design File);
- файли нижніх (одного або декількох) рівнів ієрархії (Low-level Design files).
У файлі верхнього рівня задається архітектура модуля, визначається набір модулів, що входять до його складу як компоненти, і їх взаємозв'язок. Описи цих модулів містяться в логічних файлах більш низького рівня ієрархії. До їх складу, у вигляді компонентів, у свою чергу, також можуть входити модулі, описи яких приведені в логічних файлах ще більш низького рівня ієрархії, і т. д.
Подобные документы
Огляд елементної бази, що застосовується для побудови логічних керуючих автоматів з паралельною архітектурою. Аналіз систем автоматизованого проектування логічних керуючих автоматів на основі ПЛІС, їх різновиди і відмінні особливості, тенденції розвитку.
курсовая работа [478,2 K], добавлен 25.09.2010Процес формування сигналу-коду та його перевірка. Ескізне проектування, електрична структурна схема, основні аспекти роботи системи. Розробка моделі на мові VHDL, генерація кодової послідовності, схеми мультиплексорів та реалізація приймача сигналу.
курсовая работа [422,6 K], добавлен 18.09.2010Короткий огляд систем автоматизації проектування електроніки: Quartus II, KiCad, MAX + PLUS II. Розробка охоронного пристрою на основі мікроконтролера за допомогою пакету Proteus VSM. Розрахунок споживаної потужності, пошук і усунення несправностей.
курсовая работа [990,9 K], добавлен 10.05.2014ПЛІС сімейства FLEX10K: загальні відомості. Радіоелектронний пристрій, в склад якого входить комірка інформаційного обміну. Технічні вимоги до комірки інформаційного обміну. Мова опису апаратури цифрових систем VHDL. Розрахунок надійності комірки.
дипломная работа [4,0 M], добавлен 08.09.2014Синтез операційного автомата. Аналіз вхідних даних. Розробка функціонального алгоритму. Розробка структурної схеми автомата. Синтез керуючих автоматів з жорсткою та програмованою логікою. Формування схеми автомата Мура. Методика синтезу автомата Мілі.
курсовая работа [6,3 M], добавлен 11.02.2011Засоби завдання автоматів з пам’ятю. Структурний синтез автоматів Мура та Мілі. Кодування вхідних сигналів і станів. Побудова кодованої таблиці переходів і виходів автомата. Мінімізація функції збудження. Вибір з довідника елементів схеми та їх параметри.
курсовая работа [813,1 K], добавлен 06.11.2013Методи моделювання динамічних систем. Огляд методів синтезу. Математичне забезпечення вирішення задачі системи управління. Моделювання процесів за допомогою пакету VisSim. Дослідження стійкості системи управління. Реалізація програмного забезпечення.
дипломная работа [3,8 M], добавлен 07.11.2011Основні можливості пакету Image Processing. Дослідження методів перетворення цифрових зображень в середовищі Matlab. Відновлення розмитого зображення за допомогою команди deconvblind, його геометричні перетворення. Зашумлення зображення функцією motion.
курсовая работа [2,4 M], добавлен 05.02.2015Описание модели регистрового запоминающего устройства общего назначения и характеристика параметров его микропроцессора. Построение параметрического блока для хранения данных входного и выходного сдвигателя. Описание библиотек запоминающего устройства.
лабораторная работа [179,4 K], добавлен 02.04.2015Структурно–функциональное описание счетчика. Построение функциональной схемы синхронного автомата для 4-разрядного счетчика. Кодирование состояний автомата по критерию надежности функционирования. Логическое моделирование схемы функционального теста.
контрольная работа [105,8 K], добавлен 14.07.2012