МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТАКафедра БІТ
Звіт
до лабораторної роботи № 1
з дисципліни: «Комп’ютерні методи високорівневого проектування
пристроїв захисту»
на тему: « Ознайомлення з середовищем проектування Aldec Active-HDL 8.3,
моделювання та синтез простої схеми »
Варіант №11
Львів - 2015
Мета роботи: ознайомлення з середовищем проектування програмних моделей обчислювальних пристроїв Aldec Active-HDL 8.3, набуття навиків створення програмних моделей простих електронних схем мовою VHDL та їх функціонального моделювання засобами Aldec Active-HDL 8.3.
Основні теоретичні відомості
Мова опису апаратних засобів VHDL
Назва мови VHDL є скороченням виразу «Very high speed integrated circuits Hardware Description Language», що означає «мова опису апаратних засобів у високошвидкісних інтегральних схемах». Мова була розроблена в середині 1980-х років, і метою її розробки було отримання простого у використанні засобу проектування і моделювання логічних схем для всіх етапів розроблення електронних систем, починаючи від модулів мікросхем і завершуючи великими обчислювальними системами.
Мова VHDL нагадує мови програмування, проте вона має ряд важливих відмінностей:
програмні моделі цифрових пристроїв (ЦП), створені за допомогою мови VHDL мають, як правило, ієрархічну структуру;
за допомогою мови VHDL можна здійснювати опис модулів у поведінковій (використовують математичні алгоритми, що описують їх роботу) або структурній (опис апаратної структури) формі;
моделювання алгоритму роботи пристрою базується на принципі управління за подіями;
VHDL дозволяє виконувати моделювання паралельних процесів в електричних схемах цифрових пристроїв, здійснювати часовий аналіз сигналів і їх параметрів;
програмні моделі обчислювальних пристроїв, представлені мовою VHDL, можуть бути синтезовані в програмованих логічних інтегральних схемах (ПЛІС);
використовуючи VHDL, можна проектувати, моделювати і синтезувати в ПЛІС практично будь-які ЦП, від простої комбінаційної схеми до завершеної мікропроцесорної системи на надвеликій інтегральній схемі (НВІС).
Програмовані логічні інтегральні схеми
Програмовані логічні інтегральні схеми (ПЛІС) з’явились близько двох десятиліть тому як альтернатива програмовним логічниим матрицям (ПЛМ). ПЛІС відрізняються від останніх як за архітектурою, так і за технологією виготовлення.
ПЛМ є матрицею багатовходових (більше десятка входів) логічних елементів з тригерами, в яких програмуються конституанти одиниць (мінтерми) диз’юнктивних нормальних форм функцій цих елементів. В перших ПЛМ програмування виконувалось перепалюванням перемичок між джерелами сигналів змінних і входами логічних елементів.
ПЛІС є матрицею маловходових (від двох до п’яти) логічних елементів, тригерів, відрізків ліній зв’язку, які з’єднуються перемичками з польових транзисторів. ПЛІС програмуються зміною рівня електричного поля в затворах цих транзисторів. Затвори всіх програмовних польових транзисторів підключені до виходів тригерів одного довгого регістра зсуву, який заповнюється при програмуванні ПЛІС.
Файл конфігурації зазвичай зберігається в постійному запам’ятовуючому пристрої (ПЗП), який стоїть поруч із ПЛІС. Після увімкнення живлення або за сигналом скиду вона автоматично переписується в програмуючий регістр зсуву ПЛІС, таким чином виконуючи її конфігурування. ПЛІС виготовляється за технологією мікросхем статичного оперативного запам’ятовуючого пристрою (ОЗП).
В порівнянні із CLPD, ПЛІС мають переваги:
необмежена кількість перепрограмувань;
більша логічна ємність (як правило на 2-3 порядки в числі еквівалентних логічних вентилів);
менше енергоспоживання;
топологія ПЛІС регулярна і масштабуюча, період розроблення і впровадження ПЛІС нових серій порівняно малий;
виконується на найсучаснішій технології;
в ПЛІС на порядок вища надійність.
Важливо зазначити, що з розвитком інтегральних технологій вдосконалюються й технології виготовлення ПЛІС, збільшується їхня ємність, яка сьогодні сягає вже мільярдів логічних вентилів. Сучасні ПЛІС містять вбудовані масиви пам’яті, перемножувачі, подільники, блоки виконання спеціальних функцій, і навіть мікропроцесори, що дозволяє створювати цілі обчислювальні системи на одному кристалі ПЛІС.
Етапи проектування обчислювальних пристроїв з використанням мови VHDL
Етапи реалізації обчислювальних пристроїв із використанням мови VHDL:
Проектування пристрою на архітектурному рівні та розроблення його ієрархічної структури. Схема розбивається на функціонально незалежні модулі. При цьому кількість міжмодульних з’єднань повинна бути якомога меншою. Оскільки великі проекти є, як правило, ієрархічними, використання мови VHDL дозволяє легко розбити їх на взаємодіючі модулі.
Програмування. Розробник створює якісну програмну модель модулів пристрою та виконує їх інтеграцію мовою VHDL.
Компіляція. Аналіз VHDL-коду програмної моделі пристрою для виявлення синтаксичних помилок, а також перевірка сумісності його модулів між собою. Також на цьому етапі збирається інформація про структуру проекту, яка необхідна для симуляції роботи пристрою.
Функціональна симуляція. Визначення і застосування вхідних дій до відкомпільованого коду проекту і спостереження за вихідною реакцією. Функціональна симуляція дає змогу виявити помилки, відлагодити роботу програмної моделі пристрою та підтвердити його адекватність технічному завданню. Для ефективного тестування окремих модулів та всієї програмної моделі пристрою розробляють системи тестування. Системи тестування – це спеціальне програмне середовище, у яке поміщається тестований пристрій і яке імітує роботу реальної системи, у якій буде працювати НВІС. Архітектура системи тестування розробляється відповідно до вимог конкретного тестованого пристрою. Помилки, що виявляються на етапі функціональної симуляції, усуваються шляхом модифікації програмної моделі пристрою на етапі його програмування. Такі помилки усуваються найлегше, проте інколи це вимагає зміни архітектури пристрою.
Логічний синтез. Після функціональної симуляції виконується логічний синтез програмної моделі пристрою в ПЛІС. На цьому етапі код з мови опису апаратних засобів транслюється у код, який використовується як вхідний при конфігуруванні кристалу ПЛІС. На етапі логічного синтезу виконуються компонування, монтаж і розводка, а також отримуються характеристики пристрою – частота роботи та розмір на кристалі (затрати обладнання). Таким чином розробник може визначити, чи задовольняє розробка вимоги технічного завдання, чи ні. Дуже важливим є те, що засоби логічного синтезу ПЛІС можуть згенерувати файл мовою опису апаратних засобів, який відображає фізичну модель синтезованого пристрою. Ця модель є описом пристрою на рівні логічних комірок (примітивів) ПЛІС і відображає всі часові затримки при проходженні інформації у кристалі.
Часова симуляція. Розробник, використовуючи розроблену систему тестування, може перевірити чи є працездатною фізична модель пристрою. Помилки, що виникають на цьому етапі, виявляються та усуваються значно важче, ніж ті, що виникають на етапі функціональної симуляції. Такі помилки свідчать або про неякісно розроблену програмну модель пристрою, або про невдале використання особливостей примітивів ПЛІС. Часова симуляція є одним із етапів верифікації завершеного проекту.
Конфігурування ПЛІС. Поле логічних комірок ПЛІС налаштовується відповідно до файлу конфігурації, отриманого на етапі логічного синтезу пристрою. В результаті ПЛІС перетворюється в НВІС розроблюваного пристрою.
Системне тестування. Отриману НВІС встановлюють на друковану плату і перевіряють коректність її функціонування, подаючи на її входи дані для опрацювання та аналізуючи отримані результати. Якщо системний тест не виявив помилок, то пристрій готовий до використання. Помилки, які можуть виникати на цьому етапі виявити та виправити найважче. Інколи це трапляється через порушення температурного режиму роботи кристалу, завищення частоти синхроімпульсів чи від відхилення взірця кристалу від його стандартних технічних параметрів.
Основні поняття мови VHDL
Інтерфейс описує входи і виходи пристрою.
Архітектура описує будову пристрою на одному із двох рівнів:
поведінковому, коли описується алгоритм роботи пристрою.
структурному, коли описується структура пристрою.
Поведінковий рівень використовують для опису пристрою та його компонентів на низькому рівні ієрархії, а структурний – для опису на верхніх рівнях ієрархії інтегруючи набір компонентів в один пристрій та описуючи зв’язки між компонентами.
Оператори мови поділяються на послідовні та паралельні. Паралельні оператори вводяться для того, щоб відобразити паралельність обчислювальних процесів, що виконуються всередині пристрою. Складні паралельні оператори можна описати у вигляді процесу. Процеси виконуються паралельно, а оператори всередині процесів – послідовно. За допомогою процесів описують елементи схеми, які можуть працювати одночасно. Кожен паралельний оператор можна вважати процесом.
Сигнали пов’язують між собою процеси. Вони є зовнішніми по відношенню до процесу, тобто процес може зчитувати сигнал і виводити значення в сигнал. Тому сигнали можна оголошувати тільки в області декларацій архітектури. Так само сигнали можуть зберігати значення, які необхідно передавати від одного процесу до іншого.
Змінні використовуються всередині паралельного оператора процесу і виконують в ньому функції сигналів. Вони не передають інформацію від одного процесу до іншого.
Атрибути – це значення (характеристики), пов’язані з будь-якими об’єктами мови, наприклад типами, сигналами, змінними і т.д.
Типи об’єктів описують множини значень, які можуть приймати об’єкти, деякі загальні характеристики об’єктів, а також набори операцій, які можуть виконуватися над об’єктами.
Пакети – структури, в яких зберігаються декларативні описи різних функцій, процедур, компонентів, типів, констант і т.п.
Бібліотеки – набори пакетів, які підключаються до проектів.
У загальній структурі файлу проекту мовою VHDL на одному рівні описується інтерфейс об’єкта проекту (entity) та його архітектура (architecture). Якщо потрібно, до кожного об’єкта можна підключити пакет або бібліотеку. У свою чергу, тіло архітектури складається із набору паралельних операторів, серед яких може бути оператор процесу, що містить послідовні оператори. Важливо, що сигнали декларуються і використовуються на рівні архітектури, а змінні – на рівні окремих процесів, і використовуються виключно всередині них.
Щоб створити VHDL-модель пристрою, необхідно вказати всі його вхідні та вихідні сигнали та визначити типи даних, що ними передаються. Для цього і служить інтерфейс. Інтерфейс може бути як зовнішнім, і описувати інтерфейс пристрою, так і внутрішнім, і описувати інтерфейс компоненти пристрою. Порти VHDL-інтерфейсу можуть бути наступних типів:
in – вхідний (тільки для читання значення сигналу);
out - вихідний (тільки для запису значення сигналу);
inout – двонаправлений (для читання і запису);
buffer – вихідний порт, значення якого можна зчитати;
linkage – двонаправлений порт із обмеженим використанням.
Опис архітектури пристрою складається із двох основних частин:
декларативної;
операторної.
Вирази в VHDL, як і в більшості мов програмування, включають імена об’єктів, літералів, оператори, виклики функцій та операції із дужками. Визначені оператори VHDL класифікуються так:
Двійкові логічні оператори: AND, OR, NAND, NOR, XOR, XNOR.
Оператори відношення: =, /=, <, <=, >, >=.
Оператори зсуву: SLL, SRI, SLA, SRA, ROL, ROR.
Оператори додавання: +, - , & (конкатенація).
Одинарні знакові оператори: +, -.
Оператори множення: *, /, MOD, REM.
Змішані оператори: NOT, ABS, ** (піднесення до степеня).
Оператори 7-го класу мають найвищий пріоритет.
Логічні оператори виконуються над елементами типів bit або boolean, а також над одновимірними масивами вказаних типів. При порівнянні двох складених типів (= та /=), вони вважаються однаковими, якщо однаковими є всі їхні відповідні елементи. Оператор конкатенації (&) опрацьовує одновимірні масиви і створює результуючий масив, що складається із елементів першого, за яким ідуть елементи другого. Оператори множення (*) та ділення (/) опрацьовують операнди лише числових типів. Операції ділення без остачі (MOD) та отримання остачі від ділення (REM) опрацьовують лише цілочисельні операнди.
Макрокоманда дає змогу працювати у середовищах проектування та симуляції, не використовуючи її графічний інтерфейс. В середовищі Active-HDL макрокоманди можуть бути введені безпосередньо із консолі, або ж із командного файлу, що запускається до виконання.
Макрокоманди:
ASIM – команда ініціалізує моделювання;
LIST – команда відкриває вікно List або додає сигнали до існуючого вікна.
FORCE – команда присвоює значення або послідовність значень сигналу.
RUN – команда починає симуляцію.
WAVE – команда дозволяє відображати результати моделювання у вигляді діаграм у вікні Wave, додає зазначені сигнали у вікно Wave.
CLOSE – команда закриває зазначене вікно документа.
Самостійна частина
Ознайомитись із основами проектування і моделювання цифрових схем та їх елементів в САПР Active-HDL на мові VHDL.
Написати і відкомпілювати в середовищі проектування Aldec Active-HDL програмну модель заданої варіантом цифрової схеми на мові VHDL.
Виконати функціональну симуляцію програмної моделі цифрової схеми і навести отримані часові діаграми.
Здійснити тестування програмної моделі цифрової схеми з використанням макрокоманд.
/
Рис. 1. Задана схема цифрового пристрою
Лістинг програми мовою VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity \1\ is
port(
a : in STD_LOGIC;
b : in STD_LOGIC;
p : in STD_LOGIC;
reset : in STD_LOGIC;
clk : in STD_LOGIC;
DC_out : out STD_LOGIC_vector(7 downto 0)
);
end \1\;
--}} End of automatically maintained section
architecture \1\ of \1\ is
signal a_X_b, a_A_b, a_A_p, b_A_p, xor1, xor2, or1, or2, and1, SM_DC,P_DC,Q:Std_logic;
signal kk:std_logic_vector(2 downto 0);
begin
SM_DC<=a xor b xor p;
P_DC<=(a and b)or (a and p)or (b and p);
a_X_b<=a xor b;
a_A_b<=a and b;
a_A_p<=a and p;
b_A_p<=b and p;
xor1<=p xor a_X_b;
xor2<=a_A_b xor a_A_p xor b_A_p;
or1<=SM_DC or xor1;
or2<=P_DC or xor2;
and1<=or1 and or2;
process(and1,clk,reset)
begin
if (reset = '0' and clk'event and clk = '1')
then Q <= and1;
end if;
end process;
kk(2) <= SM_DC;
kk(1) <= P_DC;
kk(0) <= Q;
DC_out<="00000001" when kk = "000" else
"00000010" when kk = "001" else
"00000100" when kk = "010" else
"00001000" when kk = "011" else
"00010000" when kk = "100" else
"00100000" when kk = "101" else
"01000000" when kk = "110" else
"10000000" when kk = "111";
-- enter your statements here --
end \1\;
/
Рис. 2. Вікно встановлення параметрів вхідних сигналів
/
Рис. 3. Керування процесом симуляції із використанням макрокоманд
/
Рис. 4. Результати функціональної симуляції
Висновки
На цій лабораторній роботі ми навчились працювати із системою автоматизованого проектування Aldec Active-HDL 8.3, ознайомитись із основами проектування і моделювання цифрових схем у цій системі. Відповідно до варіанту завдання було створено програмну модель простого електронного пристрою за допомогою мови VHDL. Після успішної компіляції моделі було проведено її функціональну симуляцію, наведено отримані часові діаграми її роботи.