You are on page 1of 16

РОЗРОБКА ПРОСТОГО ЦИФРОВОГО ПРИСТРОЮ

НА ОСНОВІ ЙОГО ОПИСУ МОВОЮ VHDL В СЕРЕДОВИЩІ


САПР ALTERA QUARTUS II

Мета проекту, який розглядається в даному розділі посіб-


ника полягає в тому, щоб навчити вас користуватися ос-
новними модулями системи автоматизованого проектуван-
ня Altera Quartus II та реалізовувати за її допомогою тех-
нологію проектування цифрових пристроїв обчислювальної
техніки.

В даному проекті вам пропонується на простому прикладі викона-


ти начальні етапи розглянутої в попередньому розділі технології авто-
матизованого проектування цифрових системи на елементній базі ПЛІС.
Виконання проекту складається з семи кроків:
1) створення проекту в САПР Altera Quartus II;
2) опис простого цифрового пристрою мовою VHDL;
3) синтез проекту;
4) функціональне моделювання;
5) розміщення та трасування проекту;
6) часове модулювання;
7) аналіз часових характеристик проекту.
Перші два з цих кроків складають етап «підготовка проекту» тех-
нології проектування, розглянутої в попередньому розділі посібника.
Останній, сьомий крок носить допоміжний характер. Його можна розг-
лядати як доповнення до часового моделювання проекту.

2.1 Постановка задачі

В середовищі САПР Altera Quartus II необхідно виконати начальні


етапи (див. вище кроки 1-7) проектування простого цифрового при-
строю – дешифратора 2→4. Для первісного опису пристрою потрібно
використати мову опису апаратури VHDL та потоковий стиль опису (у
вигляді системи логічних рівнянь).

25
Дешифратор 2→4 має два інформаційні входи x 0 та x 1 , керуючий
вхід дозволу дешифрації En, та чотири інформаційні виходи y 0 , y 1 , y 2 ,
y 3 . Дешифратор перетворює двійковий код, який має місце на його ін-
формаційних входах в унітарний код на його виходах. При цьому входи
та виходи з більшими номерами мають більшу двійкову вагу. Таблиця
істинності дешифратора, та логічні рівняння, які аналітично його опи-
сують наведені на рис. 2.1.

Входи Виходи
y0 = x1 ⋅ x0 ⋅ En;
x1 x0 y3 y2 y1 y0
0 0 0 0 0 1 y1 = x1 ⋅ x0 ⋅ En;
0 1 0 0 1 0 y2 = x1 ⋅ x0 ⋅ En;
1 0 0 1 0 0 y3 = x1 ⋅ x0 ⋅ En.
1 1 1 0 0 0
Рис. 2.1. Умовне графічне позначення, таблиця істинності
і система логічних рівнянь, що описують дешифратор 2→4

При логічному значенні «1» на вході En, дешифратор функціонує


як зазначено в таблиці істинності (рис. 2.1). При логічному значенні «0»
на вході En, всі виходи дешифратора встановлюються в значення «0».

2.2 Процес виконання проекту

Крок 1 (створення проекту). Створіть у системі Quartus II поро-


жній (empty) проект. Для цього виберіть пункт меню “File → New
Project Wizard”. Вікно, яке з'явилося в результаті цього (рис. 2.2) пові-
домляє про етапи створення проекту. Для продовження процесу ство-
рення проекту, в даному вікні необхідно натиснути кнопку “Next”.
У вікні, яке з'явилося далі (рис. 2.3) є три поля для вводу:
– бажаного місця розташування проекту на диску;
– імені проекту;
– імені секції entity для опису верхнього рівня ієрархії.
Всі ці дані повинні бути записані у відповідні поля з використан-
ням латиниці.

26
Рис. 2.2. Майстер створення проекту (попереднє вікно)

Помістіть ваш проект у папку з ім'ям «група_прізвище_lab1», шлях


до даної папки введіть у першому з трьох полів поточного вікна. Дайте
вашому проекту ім'я «група_прізвище_lab1». Дайте секції entity верх-
нього рівня ієрархії (top-level design entity) ім'я lab1_ent. Після цього на-
тисніть кнопку “Next”.

Рис. 2.3. Майстер створення проекту (сторінка 1)

27
!!!
САПР Altera Quartus II вимагає обов'язкової вказівки на те, який
опис, що міститься в проекті є описом головного пристрою проек-
ту (Top-Level, пристрою верхнього рівня ієрархії). Саме для голо-
вного пристрою, система виконує всі проектні процедури.
Ім'я головного пристрою задається ім'ям секції entity, якщо при-
стрій описаний у вигляді VHDL-файлу або ім'ям BSF-файлу, якщо
пристрій описаний у схемній формі.
Головний пристрій може бути визначений на етапі створення про-
екту (див. рис. 2.3), а надалі може змінюватися через меню
“Assignments → Settings → General”.

В наступному вікні (рис. 2.4) можна включити до проекту файли


описів, які вже є в наявності. У даному випадку, таких описів у вас поки
що немає, тому необхідно пропустити цю дію, натиснувши кнопку “Next”.

Рис. 2.4. Майстер створення проекту (сторінка 2)

У вікні, що з'являється далі (рис. 2.5), необхідно вибрати цільовий


пристрій – мікросхему ПЛІС, яка в результаті буде піддана конфігуру-
ванню. Цільова мікросхема вибирається зі списку “Available devices”.
Для прискорення пошуку можна скористатися фільтром, відібравши
конкретне сімейство мікросхем “Device family”, тип корпуса мікросхе-
ми “Package”, кількість її виводів “Pin count” і ступінь швидкодії
“Speed grade”.
28
В даному практикумі для реалізації проектів використовується ци-
фровий стенд Altera DE2, який містять ПЛІС Altera сімейства Cyclone II
з серійним номером EP2C35F672C6.

Серійні номери ПЛІС Altera розшифровуються в такий спосіб:


E P 2 C 3 5 F 6 7 2 C 6
шифр кількість тисяч кількість ступінь
сімейства логічних комірок контактів швидкодії
ПЛІС (LE) мікросхеми

Таким чином для бистрого пошуку мікросхеми EP2C35F672C6 у


вікні (рис. 2.5) необхідно застосувати наступний фільтр:
“Device family” = “Cyclone II”
“Pin count” = “672”
“Speed grade” = “6”
В результаті застосування такого фільтру з множини мікросхем, до-
ступних в САПР Altera Quartus II буде відібрано три мікросхеми. Перша з
них є необхідною для даного проекту мікросхемою EP2C35F672C6.

Рис. 2.5. Майстер створення проекту (сторінка 3)

Після вибору цільової мікросхеми й натискання кнопки “Next”


з'являється вікно (рис. 2.6) в якому до САПР Altera Quartus II можна під-
ключити додаткові програмні засоби автоматизованої розробки від сто-

29
ронніх виробників. В даному випадку ця можливість використана не
буде, у зв'язку із чим необхідно нажати кнопку “Next” без виконання
яких-небудь дій у цьому вікні.

Рис. 2.6. Майстер створення проекту (сторінка 4)

Після цього відображається вікно (рис. 2.7), яке містить підсумкові


характеристики створеного проекту. Натискання кнопки “Finish” заве-
ршує роботу майстра створення проекту.

Рис. 2.7. Майстер створення проекту (сторінка 5)

30
Крок 2 (формальний опис пристрою). Інформація про структуру
та состав проекту після його створення міститься у вікні Project
Navigator, розташованому в лівій верхній частині головного вікна
Quartus II. Навігатор має три вкладки: “Hierarchy”, “Files”, “Design
Units” (рис. 2.8).

Рис. 2.8. Вікно навігатора проекту (Project Navigator)

У вкладці “Hierarchy” відображається інформація про цільову мі-


кросхему, а також про головний (top level) та другорядні пристрої, які
містяться в проекті. Вкладка “Files” містить інформацію про файли, що
включені до поточного проекту. Вкладка “Design Units” відображає
множину інтерфейсів “entity” і архітектур, що містяться в проекті.
На попередньому кроці був створений порожній проект, саме тому
у вкладці “Files” не показано жодного файлу (рис. 2.8). Додайте в про-
ект порожній VHDL-файл і збережете його під ім'ям decoder24.vhd.
Для додавання файлу в проект необхідно виконати наступні дії. Вибра-
ти пункт меню “File → New”. У вікні, що з'явилося (рис. 2.9) треба виб-
рати необхідний тип файлу.

!!!
У даному практикумі здебільшого будуть використовуватися на-
ступні типи файлів, які підтримує САПР Altera Quartus II:
– “VHDL File” – текстовий файл опису пристрою мовою VHDL;
– “Block Diagram / Schematic File” – файл, що містить
опис пристрою у вигляді структурної схеми;
– “Vector Waveform File” – файл часових діаграм.

31
Після виконання зазначеної дії Quartus створює файл, але не додає
його в проект! Для додавання файлу в проект необхідно вибрати пункт
меню “File → Save As”, і у вікні, що з'явилося, задати ім'я файлу, а та-
кож простежити за тим, щоб була встановлена галочка в пункті “Add
file to current project” (рис. 2.10).

Рис. 2.9. Вибір типу створюваного файлу

Рис. 2.10. Збереження створеного файлу й додавання його до проекту


32
Помістіть в створений файл нижченаведений, потоковий (у вигля-
ді системи логічних рівнянь) VHDL-опис 2-х входового дешифратора із
входом дозволу дешифрації (див Listing 2.1). Задайте при цьому
наступне ім'я секції entity decoder24_ent та ім'я секції архітектури
decoder24_arch. Два інформаційні входи дешифратора x 0 та x 1 орга-
нізуйте у вигляді 2-розрядної шини X, а чотири інформаційні виходи y 0 ,
y 1 , y 2 , y 3 – у вигляді 4-розрядної шини Y.

01 -- Listing 2.1
02 library ieee;
03 use ieee.std_logic_1164.all;
04
05 entity decoder24_ent is
06
07 port
08 (
09 X : in STD_LOGIC_VECTOR(1 downto 0);
10 en : in STD_LOGIC;
11 Y : out STD_LOGIC_VECTOR(3 downto 0)
12 );
13
14 end entity;
15
16 architecture decoder24_arch of decoder24_ent is
17 begin
18 Y(0) <= not X(1) and not X(0) and en;
19 Y(1) <= not X(1) and X(0) and en;
20 Y(2) <= X(1) and not X(0) and en;
21 Y(3) <= X(1) and X(0) and en;
22 end decoder;

Коментар до наведеного VHDL-опису дешифратора:


Рядки 02, 03 – підключення бібліотеки й необхідних пакетів.
Рядки 05 – 14 – опис інтерфейсу дешифратора.
Рядок 09 – опис вхідного 2-розрядного порту X.
Рядок 10 – опис вхідного однорозрядного порту en.
Рядок 11 – опис вихідного 4-розрядного порту Y.
Рядок 16 – початок архітектурної секції опису.

33
Рядки 18 – 21 – тіло архітектури, в якому містяться чотири логічні
рівняння, що описують функціонування дешифратора.
Рядок 22 – закриття архітектурної секції опису.
Крок 3 (синтез проекту). Всі основні дії по керуванню етапами
проектування в системі Altera Quartus II виконуються за допомогою па-
нелі “Tasks” (рис. 2.11). Ця панель розташована під вікном Project
Navigator. Панель кнопки у вигляді трикутників, які запускають основ-
ним етапам технології проектування.

Рис. 2.11. Вікно керування етапами процесу проектування

Запустіть процес виконання синтезу проекту, шляхом натискання


кнопки Analysis and Synthesis. В ході процесу синтезу буде виконана
перевірка й локалізація помилок у VHDL-описі дешифратора; здійснена
трансляція цього опису у внутрішню форму подання даних САПР Altera
Quartus II (базу даних синтезу); виконаний логічний синтез проекту,
тобто трансляція VHDL-опису в логічну схему.
Переглянете отриману в результаті синтезу RTL-схему (меню
“Tools → Netlist Viewers → RTL Viewer”) і схему в технологічному ба-
зисі (меню “Tools → Netlist Viewers → Technology Map Viewer”), див.
рис. 2.12. При перегляді останньої, вивчите властивості (Properties)
примітивів технологічного базису: Schematic, Truth Table, Karnaugh Map
(рис. 2.13). Переглянете статистику синтезу (Synthesis Report).

34
Рис. 2.12. Типовий вигляд RTL-схеми та схеми
в технологічному базисі для дешифратора 2→4

Рис. 2.13. Типовий вигляд вікон властивостей, примітивів


технологічного базису

35
!!!
RTL-схема (Register Transfer Level – схема рівня регістрових пе-
редач) є апаратно незалежною, тобто її вид не залежить від того, у
якій саме мікросхемі буде реалізований проект. Схема, представ-
лена в технологічному базисі, напроти, істотно залежить від ці-
льової мікросхеми синтезу й змінюється при зміні мікросхеми
(наприклад, при зміні одного сімейства мікросхем ПЛІС на інше
сімейство).

Крок 4 (функціональне моделювання). Додайте в проект файл ти-


пу University Program VWF і збережете його під ім'ям wform1.vwf. В
редакторі, часових діаграм (який відкриється при додаванні файлу в
проект) виконаєте додавання вхідних і вихідних портів дешифратора:
en, x[1..0] та y[3..0]. Для цього виберіть пункт меню “Edit →
Insert → Insert Node or Bus”. У вікні, що з’явиться після цього, натис-
ніть кнопку “Node Finder”, у наступному вікні натисніть кнопку “List”,
після чого перемістіть порти проекту у вікно “Selection Nodes” за допо-
могою натискання кнопки “>>” (рис. 2.14).

Рис. 2.14. Вікно додавання портів у редактор часових діаграм

Для встановлення форми та параметрів вхідних сигналів системи,


яка моделюється, в САПР Altera Quartus II використовуються спеціальні
програмні засоби – так звані стимулятори. В даному проекті необхідно
застосувати два з них: “Overwrite Clock”, який задає регулярній сигнал
і “Count Value”, який дозволяє перебрати всі комбінації багаторозряд-
ного сигналу та подати їх на відповідну шину.
36
На вхід en подайте регулярний сигнал з періодом 25ns (використо-
вуючи для цього стимулятор Overwrite Clock). Вхідну шину x[1..0]
проініціалізуйте стимулятором Count Value зі зміною значення кожні
2ns (рис. 2.15).

Рис. 2.15. Редактор часових діаграм і набір стимуляторів (ліворуч)

Запустіть процес функціонального моделювання. Для цього в ме-


ню Simulation редактора часових діаграм оберіть пункт Run Functional
Simulation. В результаті цього відкриється вікно з часовими диграмами,
які є результатами моделювання. На цих діаграмах напроти вихідних
сигналів y[3..0] дешифратора будуть заражені рівні цих сигналів в
кожний момент часу моделювання.

1) Проаналізуйте отримані часові діаграми.


2) Зробіть висновки щодо їхньої відповідності теоре-
тично очікуваним результатам функціонування про-
Проаналізуйте модельованого пристрою.
3) Обґрунтуйте необхідність виконання функціона-
льного моделювання в процесі проектування цифро-
вого пристрою.

37
Крок 5 (розміщення та трасування проекту). Запустіть процес
розміщення та трасування проекту, шляхом натискання кнопки Start
Fitter на панелі “Compiler Tool” (рис. 2.11).
Після закінчення цього процесу запустіть редактор розміщення та
трасування Chip Planer (крайня права кнопка із групи кнопок, що на-
лежать до області Fitter). В списку, що випадає, Task, цього редактора,
виберете значення “Post Compilation Editing”. Переглянете в редакторі
Chip Planer, як проект розміщений на кристалі (рис. 2.17). Вивчить
вміст логічних блоків LAB (рис. 2.18), комірки мікросхеми (рис. 2.19),
елементи вводу-виводу.

Рис. 2.17. Розміщення проекту на кристалі ПЛІС у вікні редактора


Chip Planer після виконання процедури розміщення та трасування.
Стрілкою показаний логічний блок ПЛІС в якому знаходиться
синтезована схема проекту. Інші блоки не зайняті

1) Проаналізуйте отримане розміщення проекту в


просторі кристалу ПЛІС.
2) Зробіть висновки про коректність або некорект-
Проаналізуйте ність такого розміщення.

38
!!!
Перед виконанням розміщення та трасування необхідно надати моду-
лю Fitter інформацію про те, на які виводи мікросхеми необхідно роз-
вести вхідні і вихідні порти пристрою. Якщо ця дія не зроблена (а на
даному етапі ми її поки що не виконали), то Fitter виконує розведення
за своїм розсудом. Процес розведення портів буде розглядатися в на-
ступному розділі практикуму.

Рис. 2.18. Вміст логічного блоку (LAB), в якому знаходиться


синтезована схема. Видно, що блок складається з 16 комірок,
тільки 4 з них зайняті під синтезовану схему

Рис. 2.19. Вміст логічної комірки (LE), яка складається з обчислювача


(LUT) та елемента пам’яті. Елемент пам’яті в даному випадку не ви-
користовується і сигнал з виходу обчислювача повз елемент пам’яті
подається на вихід логічної комірки

39
Крок 6 (часове моделювання). Для створеного на четвертому кро-
ці Vector Waveform файлу wform1.vwf виконаєте часове моделюван-
ня пристрою. Запустіть процес функціонального моделювання. Для цьо-
го в меню Simulation редактора часових діаграм оберіть пункт Run
Timing Simulation.

1) Порівняйте часові діаграми, отримані в результаті


функціонального і часового моделювання.
2) Спробуйте при часовому моделюванні змінити ча-
Проаналізуйте стоту вхідних сигналів пристрою. Чи призводить це
до зміни характеру часових діаграм?
3) В яких діапазонах значень цієї частоти результати
часового й функціонального моделювання збігають-
ся, а в яких різняться?
4) Чому часове моделювання не можна було викона-
ти до розміщення та трасування проекту?

40

You might also like