МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
EMBED Word.Picture.8
Створення бібліотек і пакетів у VHDL проектах.
Архітектура проекту на мові VHDL в структурній формі.
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 3
з курсу «Комп’ютерні методи аналізу та проектування електронних засобів»
для студентів спеціальностей:
7.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 7.160103 “Системи захисту від несанкціонованого доступу”, 7.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 7.160105“Захист інформації і комп'ютерних системах і мережах”, 8.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 8.160103 “ Системи захисту від несанкціонованого доступу”, 8.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 8.160105“Захист інформації і комп'ютерних системах і мережах”.
Затверджено
на засiданнi кафедри
“Захист інформації”
Протокол № ___ від __ ________ 2010 р.
Львів 2010
Створення бібліотек і пакетів у VHDL проектах. Архітектура проекту на мові VHDL в структурній формі. Інструкція до лабораторної роботи № 3 з курсу “ Комп’ютерні методи аналізу та проектування електронних засобів.” для студентів спеціальностей 7.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 7.160103 “Системи захисту від несанкціонованого доступу”, 7.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 7.160105“Захист інформації і комп'ютерних системах і мережах”, 8.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 8.160103 “ Системи захисту від несанкціонованого доступу”, 8.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 8.160105“Захист інформації і комп'ютерних системах і мережах” / Укл.: Горпенюк А.Я., Будз Б.Д. – Львів: НУЛП, 2010.- 9 с.
Укладачі: Горпенюк А.Я., к.т.н, доцент,
Будз Б.Д., асистент
Мета роботи: - Ознайомитись з принципом створення бібліотек і пакетів в проектах VHDL. Реалізація комбінаційної логічної схеми з одним виходом в структурній формі проекту на мові VHDL.
1. ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Бібліотеки і пакети в проекті VHDL.
Бібліотека (library) у VHDL – це щось на зразок каталогу, в якому компілятор отримує необхідну інформацію, що використовується в проекті, яка відсутня в явному вигляді в самому проекті. Як пакет (package) – компілятори VHDL використовують бібліотечні файли або модулі, які містять оголошення об’єктів, які найчастіше використовуються: типів даних, компонентів, сигналів, процедур і функцій, тощо. Використання пакетів дозволяє дані об’єкти багаторазово використовувати в різних VHDL проектах.
Наприклад, тип даних std_logic визначений в пакеті ieee.std_logic_1164, який входить в бібліотеку ieee. Тому, щоб в проекті VHDL використовувати тип std_logic, необхідно підключити до проекту відповідні бібліотеку і пакет. Ці операції виконуються на початку VHDL проекту за допомогою ключових слів library і use відповідно:
library ieee;
use ieee.std_logic_1164.all;
Розширення .all означає, що в проекті можна використовувати описи всіх об’єктів, які містяться в пакеті ieee.std_logic_1164.
Більшість САПР VHDL підтримують роботу з бібліотекою ieee, до складу якої входять наступні пакети:
std_logic_1164. Містить визначення основних типів даних;
std_logic_arith. Містить арифметичні функції, функції перетворення і порівняння;
std_logic_misc. Містить визначення допоміжних типів даних, а також підтипів, констант і функцій, які використовуються пакетом std_logic_1164.
Щоб задіяти будь-який з цих пакетів, потрібно включити в склад проекту оператори оголошення необхідних бібліотек і пакетів виду
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_misc.all;
Розробниц цифрового пристрою може створити і згодом підключити до проекту власний пакет. Оголошення пакету повинно мати наступний синтаксис:
--Інтерфейс пакету.
package ім’я_пакету is
оголошення_пакету
end package ім’я_пакету;
--Тіло пакету
package body ім’я_пакету is
оператори_оголошень_пакету
end package body ім’я_пакету;
Наприклад, базові логічні функції AND2, OR2 і ін. необхідно попередньо визначити як компоненти, перед тим як їх можна буде використовувати в цій якості в проекті що розробляється. Визначити базові логічні функції в якості компонентів можна, наприклад, в пакеті з іменем basic_func таким чином:
--Інтерфейс пакету.
library ieee;
use ieee.std_logic_1164.all;
package basic_func is
--оголошення AND2
component AND2
port(in1, in2: in std_logic; out1: out std_logic);
end comonent;
--оголошення OR2
component OR2
port(in1, in2: in std_logic; out1: out std_logic);
end comonent;
end package basic_func;
--Тіло пакету.
library ieee;
use ieee.std_logic_1164.all;
package body basic_func is
--AND2
entity AND2 is
port(in1, in2: in std_logic; out1: out std_logic);
end AND2;
architecture model_AND2 of AND2 is
begin
out1<= in1 and in2;
end model_AND2;
--OR2
entity OR2 is
port(in1, in2: in std_logic; out1: out std_logic);
end OR2;
architecture model_OR2 of OR2 is
begin
out1<= in1 or in2;
end model_OR2;
end package body basic_func;
Створений пакет повинен бути відкомпільований і розміщений в користувацьку бібліотеку. Таку бібліотеку можна назвати як my_func. Щоб використовувати компоненти з користувацької бібліотеки my_func, в проекті необхідно підключити цю бібліотеку my_func і пакет basic_func за допомогою операторів наступного виду:
library ieee, my_func;
use ieee.std_logic_1164.all, my_func.basic_func.all;
1.2. Архітектура проекту в структурній формі
EMBED Visio.Drawing.11
Проект, показаний в попередній лабораторній (рис. 1), можна також створити, використовуючи структурну форму архітектури, яка зводиться до опису проекту через набір логічних елементів або компонентів і зв’язків між їхніми входами і виходами. Приклад такого опису має наступний вигляд:
architecture struct of SIREN is
-- Оголошення компонентів
component AND2
port (in1,in2: in std_logic; out1: out std_logic);
end component;
component OR2
port (in1,in2: in std_logic; out1: out std_logic);
end component;
component NOT1
port (in1: in std_logic; out1: out std_logic);
end component;
-- Оголошення сигналів, які зв’язують компоненти
signal my_in1_not, my_in3_not, x1, x2: std_logic;
begin
--Оператори реалізації компонентів
U0: NOT1 port map (my_in1, my_in1_not);
U1: NOT1 port map (my_in3, my_in3_not);
U2: AND2 port map (my_in2, my_in1_not, x1);
U3: AND2 port map (my_in2, my_in3_not, x2);
U4: OR2 port map (x1, x2, my_out1);
end struct;
Якщо архітектура проекту має структурну форму, після заголовку архітектури розташовуються оголошення компонентів, які передбачається використовувати в проекті. В наведеному вище прикладі проекту SIREN використані два двовходових логічних елементи AND, один двовходовий елемент OR і інвертор. Ці компоненти повинні бути визначені, тобто їх VHDL проекти повинні вже існувати. Всі VHDL проекти компонентів цифрових пристроїв також можуть бути збережені у вигляді одного пакету, доступ до якого можна отримати включивши оголошення бібліотек і пакетів в заголовок проекту (як описано в п. 1.1). Оголошення компонентів містять описи вхідних і вихідних портів.
Після цього, необхідно визначити внутрішні зв’язки за допомогою оголошення іменованих сигналів. В нашому прикладі ці внутрішні сигнали називаються my_in1_not, my_in3_not, x1, x2. Зверніть увагу на те, що при оголошенні сигналу завжди необхідно вказувати його тип.
При структурній формі в розділі виконавчих операторів архітектури проекту (тобто після begin) повинні розміщуватись оператори реалізації компонентів, а також оператори, які описують взаємозв’язок компонентів між собою. Кожен оператор реалізації створює новий рівень ієрархії і починається з ім’я екземпляру компонента що реалізується (наприклад, U0), після якого ставиться двокрапка, ідентифікатором самого компоненту і ключовим словом port map. Кажуть що оператор port map реалізує міжкомпонентні зв’язки конкретного екземпляру компонента що в ньому оголошується.
Зокрема, в наведеному прикладі міжкомпонентні зв’язки екземпляру U0 компонента NOT1 визначені за допомогою позиційної (неявної) реалізації: внутрішній сигнал my_in1 відповідає входу in1 логічного компоненту NOT1, а внутрішній сигнал my_in1_not – виходу компонента NOT1. Так само для екземпляру U2: AND2 перші два сигнали (my_in2 і my_in1_not) відповідають виходам in1 і in2 компонента AND2 відповідно,а сигнал x1 –виходу my_out1 цього компоненту.
Альтернативний метод визначення міжкомпонентних зв’язків полягає у використанні іменованої (явної) реалізації зв’язків між портами. У цьому випадку синтаксис оператора реалізації має наступний вигляд:
екземпляр: компонент port map (порт1 => сигнал1, порт2 => сигнал2, ... портN => сигналN);
U0: NOT1 port map (in1 => my_in1, out1 => my_in1_not);
U1: NOT1 port map (in1 => my_in3, out1 => my_in3_not);
U2: AND2 port map (in1 => my_in2, in2 => my_in1_not, out1 => x1);
U3: AND2 port map (in1 => my_in2, in2 => my_in3_not, out1 => x2);
U4: OR2 port map (in1 => x1, in2 => x2, my_out1);
Зверніть увагу на те, що порядок, в якому ці оператори приведені в розділі виконуваних операторів архітектури проекту, не має ніякого значення і не впливає на кінцевий результат.
3. ЗАВДАННЯ
1. . Ознайомитись з процедурою створення і підключення в проект VHDL-файлу бібліотек і пакетів.
2. Ознайомитись з синтаксисом архітектури проекту в мові VHDL в структурній формі.
3. Створити пакет базових елементів, які використовуються для побудови комбінаційної схеми синтезованої в лабораторній роботі № 2.
3. Скласти і відкомпілювати програму на мові VHDL, яка моделює роботу синтезованої схеми в попередній лабораторній роботі у вигляді структурної форми архітектури проекту.
5. Промоделювати роботу даного пристрою в редакторі часових діаграм і отримати часові діаграми.
4. ЗМІСТ ЗВІТУ*
1. Назва і мета роботи.
2. Теоретичні відомості, необхідні для написання програми на мові VHDL які описують роботу розробленого блоку чи вузла (рівняння, структурні схеми, тощо.), згідно із завдання лабораторної роботи або вимог викладача.
3. Програма на мові VHDL, яка описує роботу розробленого блоку чи вузла.
4. Часові діаграми роботи пристрою.
5. Короткі висновки за результатами роботи.
*Зразок оформлення звіту наведений в методичних рекомендаціях до лабораторної роботи № 1.
Література
1. Бабак В.П., Корченко А.Г., Тимошенко Н.П., Филоненко С.Ф. VHDL: Справочное пособие по основам язика. – М.: Издательский дом «Додэка-ХХІ», 2008. – 224 с.:ил.
2.
Навчальне видання
СТВОРЕННЯ БІБЛІОТЕК І ПАКЕТІВ У VHDL ПРОЕКТАХ.
АРХІТЕКТУРА ПРОЕКТУ НА МОВІ VHDL В СТРУКТУРНІЙ ФОРМІ.
ІНСТРУКЦІЯ ДО ЛАБОРАТОРНОЇ РОБОТИ № 3
З КУРСУ “ КОМП’ЮТЕРНІ МЕТОДИ АНАЛІЗУ ТА ПРОЕКТУВАННЯ ЕЛЕКТРОННИХ ЗАСОБІВ”
та студентів спеціальностей:
7.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 7.160103 “Системи захисту від несанкціонованого доступу”, 7.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 7.160105“Захист інформації і комп'ютерних системах і мережах”, 8.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”, 8.160103 “ Системи захисту від несанкціонованого доступу”, 8.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”, 8.160105“Захист інформації і комп'ютерних системах і мережах”.
Укладачі: Горпенюк А.Я., к.т.н, доцент,
Будз Б.Д., асистент
Львів: Національний університет “Львівська політехніка”