Міністерство освіти та науки України
Національний університет ”Львівська політехніка”
ІКТА
Кафедра СКС
Лабораторна робота №2
з дисципліни «ДОСЛІДЖЕННЯ ТА ПРОЕКТУВАННЯ СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ СИСТЕМ Ч.1»
Лабораторна робота №2
Тема роботи: Створення проекту засобами Quartus II на прикладі роботи з світлодіодними індикаторами на лабораторній платі DE0.
Мета роботи: навчитися створювати проект в середовищі Quartus II на прикладі роботи із світлодіодними індикаторами навчальної плати DE0.
ХІД РОБОТИ:
Запускаю Quartus II і вибираєм File->New project wizard.
Вводжу шлях для розміщення проекту та задаю його назву.
У вікні вибору сімейства та кристалу вибираю сімейстов Cyclone III та ПЛІС EP3C16F484C6, яка розміщена на лабораторній платі DE0.
В меню File->New вибираю VHDL file.
У щойно створеному файлі вводжу свій опис поведінки пристрою на мові VHDL або Verilog згідно із завданням і зберігаю файл. Майбутню поведінку пристрою можна створити і просимулювати, заради запобігання помилок, у сторонньому САПР, наприклад Active-HDL компанії Aldec.
Далі створюю новий BDF файл: File->New->Block Diagram/Schematic File.
У вікні Project Navigator в закладці files правим кліком на створеному HDL файлі створюєм для нього символ.
У схемному редакторі файла BDF правим кліком по вільному просторі відкривю контекстне меню, у якому я вибираю insert->symbol і вставлюю щойно створений символ, який відповідає мому HDL файлу у схемний редактор.
Завершую редактування в схемному редакторі додаванням вхідних і вихідних пінів і з’єднувальних шин. Для цього використовуються наявні в бібліотеці стандартні елементи (макрофункції пакету Quartus II), які зберігаються в меню Symbol, доступному при відкритому файлі графічного редактора.
У вікні Project Navigator в закладці files правим кліком на створеному BDF файлі встановлюю його топ файлом.
Комбінацією клавіш CTRL+K Quartus виконає аналіз і синтез мого проекту, якщо виникають помилки видається відповідне повідомлення. Завдання на даному етапі полягає в проведенні аналізу і синтезу без помилок, коли виникають помилки, тоді необхідно внести поправки в HDL або BDF файл.
Коли аналіз і синтез проведений успішно, наступним кроком треба розмістити глобальні входи і виходи проекту на ПЛІС. У вікні Project Navigator в закладці Hierarchy правим кліком на топ файлі вибираю пункт locate->locate in pin planner.
У програмі Pin Planner у вікні All pins можна побачити всі глобальні входи і виходи з ПЛІС, а це 10 виходів на світлодіоди, і один частотний вхід. Для того, щоб проект запрацював на лабораторній платі DE0, потрібно розмістити усі ці входи/виходи так, як вони описані в документації до лабораторної плати (дивіться рисунок 2 та таблиці 1 і 2, які подані нижче). Прив’язка глобального входу/виходу до фізичного входу/виходу ПЛІС відбувається у вкладці Location, де вибирається глобальний вхід/вихід - навпроти глобального входу/виходу. Також, у відповідності до документації на лабораторну плату, необхідно зазначити рівень сигналу навпроти кожного входу/виходу у вкладці I/O Standard. Необхідний стандарт сигналу - 3.3 V LVTTL. Щоб не прописувати для кожного сигналу необхідний стандарт вольтажу вручну, можна задати його за замовчуванням, для цього потрібно виконати такі дії в головному меню пакету Quartus II: Assignments->Device…-> Device and Pin Options…->Voltage, та у рядку Default I/O standard вибрати необхідний вольтаж (3.3 V LVTTL).
Після закінчення розміщення входів/виходів, закриваєм Pin Planner і проводжу повну генерацію проекту комбінацією CTRL+L. Результатом роботи повної генерації проекту є бінарний SOF файл для безпосереднього завантаження в ПЛІС.
Для завантаження в ПЛІС створеного проекту запускаю відповідну програму завантаження Tools->programmer.
У вікні завантажувача натискаю кнопку Hardware Setup і вибираю спосіб завантаження через USB кабель.
При натисканні кнопки Start починається процес програмування ПЛІС. Після завершення програмування ПЛІС, 10 світлодіодів мають блимати в залежності від написаної програми.
Vhdl-код використаної програми.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
entity couter_my is
port(
clk : in STD_LOGIC;
res : out std_logic_vector(9 downto 0)
);
end couter_my;
architecture couter_my of couter_my is
signal res_reg : std_logic_vector(31 downto 0);
begin
res <= res_reg(31 downto 22);
process(clk)
begin
if rising_edge(clk) then
res_reg <= res_reg + '1';
end if;
end process;
end couter_my;
КОНТРОЛЬНІ ЗАПИТАННЯ
Назвати послідовність проектування в середовищі Quartus II.
Назвати основні кроки створення нового проекту в середовищі Quartus II.
1.Створення нового проекту, вказівка типу використовуваної мікросхеми або сімейства за допомогою команди New Project Wizard (меню File).
2.Створення вихідного файлу проекту на мовах Verilog HDL, VHDL, або Altera Hardware Description Language (AHDL) за допомогою текстового редактора (Text Editor). Крім того, можна створити блок-схему проекту в графічному редакторі (Block Editor) використовуючи символи, що представляють інші вихідні файли проекту або логічні елементи. За допомогою команди MegaWizard® Plug-In Manager (менюTools) можна створювати різні варіанти мегафункцій і IP-ядер для включення їх у файл проекту.
3.Вказівка початкових налаштувань проекту за допомогою редактора призначень (Assignment Editor), діалогового вікна Settings (меню Assignments), редактора топології (Floorplan Editor), та / або застосовуючи фіксовані логічні блоки (LogicLock ™).
4.Створення проекту на системному рівні за допомогою генератора систем на кристалі (SOPC Builder) або генератора систем ЦОС (DSP Builder).
5.Створення програмних файлів для процесорного ядра Nios® за допомогою редактора програмного забезпечення (Software Builder).
6.Синтез проекту за допомогою модуля аналізу та синтезу (Analysis & Synthesis).
7.Виконання функціонального моделювання проекту за допомогою симулятора (Simulator) та команди Generate Functional Simulation Netlist.
8.Виконання розміщення й трасування проекту за допомогою модуля трасування (Fitter).
9.Проведення попереднього аналізу споживаної потужності за допомогою програми PowerPlay Power Analyzer.
10.Проведення аналізу тимчасових затримок проекту за допомогою програми аналізатора тимчасових затримок (Timing Analyzer).
11.Виконання моделювання проекту з урахуванням тимчасових затримок за допомогою симулятора.
12.Поліпшення тимчасових характеристик проекту за допомогою повторного фізичного синтезу, використання фіксованих логічних блоків, налаштувань у діалоговому вікні Settings і в редакторі призначень.
13.Створення файлу для програмування мікросхеми за допомогою модуля асемблера (Assembler).
14.Програмування мікросхеми за допомогою утиліти програм (Programmer) та обладнання Altera; або перетворення формату файлу для програмування.
15.Налагодження проекту за допомогою вбудованого логічного аналізатора (SignalTap® II Logic Analyzer), генератора контрольних точок (SignalProbe ™).
Основною робочою одиницею в середовищі Quartus II є проект. Він створюється за допомогою спеціальної утиліти (New Project Wizard меню File). При створенні нового проекту задається робоча директорія, призначається ім'я проекту і ім'я файлу верхнього рівня ієрархії. Додатково можна вказати вихідні файли проекту, користувальницькі бібліотеки, використовувані САПР сторонніх фірм, вибране сімейство мікросхем (або використовувати автоматичний вибір сімейства компілятором Quartus II).
Призначення світлодіодних індикаторів.
Для реалізації програмних кодів, щоб візуально побачити ту чи іншу роботоздатність команди.
Який стандартний рівень сигналу на виводах плати DE0?
На якій частоті працює плата DE0?
Плата DE0 працює на частоті 50MHz .
Висновок:
навчився створювати проект в середовищі Quartus II на прикладі роботи із світлодіодними індикаторами навчальної плати DE0.