МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Комп’ютерні методи аналізу та проектування електронних засобів»
на тему: «Створення бібліотек і пакетів у VHDL проектах. Архітектура проекту на мові VHDL в структурній формі»
Варіант №11
Мета роботи: ознайомитись з принципом створення бібліотек і пакетів в проектах VHDL. Реалізація комбінаційної логічної схеми з одним виходом в структурній формі проекту на мові VHDL.
Завдання:
1. Ознайомитись з процедурою створення і підключення в проект VHDL-файлу бібліотек і пакетів.
2. Ознайомитись з синтаксисом архітектури проекту в мові VHDL в структурній формі.
3. Створити пакет базових елементів, які використовуються для побудови комбінаційної схеми синтезованої в лабораторній роботі № 2.
3. Скласти і відкомпілювати програму на мові VHDL, яка моделює роботу синтезованої схеми в попередній лабораторній роботі у вигляді структурної форми архітектури проекту.
5. Промоделювати роботу даного пристрою в редакторі часових діаграм і отримати часові діаграми.
Короткі теоретичні відомості
Оголошення пакету
--Інтерфейс пакету.
package ім’я_пакету is
оголошення_пакету
end package ім’я_пакету;
--Тіло пакету
package body ім’я_пакету is
оператори_оголошень_пакету
end package body ім’я_пакету;
Архітектура проекту в структурній формі
Структурна форма архітектури зводиться до опису проекту через набір логічних елементів або компонентів і зв’язків між їхніми входами і виходами.
Міжкомпонентні зв’язки можуть бути визначені за допомогою позиційної (неявної) реалізації.
Альтернативний метод визначення міжкомпонентних зв’язків полягає у використанні іменованої (явної) реалізації зв’язків між портами.
Синтез комбінаційної схеми з одним виходом
№ набору
0
0
0
0
0
1
1
0
0
0
1
0
2
0
0
1
0
0
3
0
0
1
1
0
4
0
1
0
0
1
5
0
1
0
1
0
6
0
1
1
0
1
7
0
1
1
1
1
8
1
0
0
0
0
9
1
0
0
1
*
10
1
0
1
0
1
11
1
0
1
1
*
12
1
1
0
0
0
13
1
1
0
1
0
14
1
1
1
0
1
15
1
1
1
1
1
y
- my_in1_not
- my_in3_not
- my_in4_not
- my_in2
- my_in3
- my_in1
Програма:
Оголошення пакету
--interface pakety
library ieee;
use ieee.std_logic_1164.all;
package basic_func is
--ogoloshennya AND2
component AND2
port (in1, in2: in std_logic; out1: out std_logic);
end component;
--ogoloshennya AND3
component AND3
port (in1, in2, in3: in std_logic; out1: out std_logic);
end component;
--ogoloshennya OR3
component OR3
port (in1, in2, in3: in std_logic; out1: out std_logic);
end component;
--ogoloshennya NOT1
component NOT1
port(in1: in std_logic; out1: out std_logic);
end component;
end package basic_func;
--tilo pakety
package body basic_func is
end package body basic_func;
library ieee;
use ieee.std_logic_1164.all;
--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;
--AND3
library ieee;
use ieee.std_logic_1164.all;
entity AND3 is
port (in1, in2, in3: in std_logic; out1: out std_logic);
end AND3;
architecture model_AND3 of AND3 is
begin
out1<= in1 and in2 and in3;
end model_AND3;
--OR3
library ieee;
use ieee.std_logic_1164.all;
entity OR3 is
port (in1, in2, in3: in std_logic; out1: out std_logic);
end OR3;
architecture model_OR3 of OR3 is
begin
out1<= in1 or in2 or in3;
end model_OR3;
--NOT1
library ieee;
use ieee.std_logic_1164.all;
entity NOT1 is
port (in1: in std_logic; out1: out std_logic);
end NOT1;
architecture model_NOT1 of NOT1 is
begin
out1<= not in1;
end model_NOT1;
Проект
library ieee, my_package;
use ieee.std_logic_1164.all, my_package.basic_func.all;
entity project is
port (my_in1, my_in2, my_in3, my_in4: in std_logic;
my_out1: out std_logic);
end project;
architecture struct of project is
--ogoloshennya komponentiv
component AND2
port (in1, in2: in std_logic; out1: out std_logic);
end component;
component AND3
port (in1, in2, in3: in std_logic; out1: out std_logic);
end component;
component OR3
port (in1, in2, in3: in std_logic; out1: out std_logic);
end component;
component NOT1
port (in1: in std_logic; out1: out std_logic);
end component;
--ogoloshennya sugnaliv jaki zvjazuyt komponentu
signal my_in1_not, my_in3_not, my_in4_not, x1, x2, x3: std_logic;
begin
--operatory realizaciji komponentiv
u0: NOT1 port map (in1=>my_in1, out1=>my_in1_not);
u1: NOT1 port map (in1=>my_in3, out1=>my_in3_not);
u2: NOT1 port map (in1=>my_in4, out1=>my_in4_not);
u3: AND3 port map (in1=>my_in1_not, in2=>my_in3_not, in3=>my_in4_not, out1=>x1);
u4: AND2 port map (in1=>my_in2, in2=>my_in3, out1=>x2);
u5: AND2 port map (in1=>my_in1, in2=>my_in3, out1=>x3);
u6: OR3 port map (in1=>x1, in2=>x2, in3=>x3, out1=>my_out1);
end struct;
Часові діаграми роботи пристрою
Висновки: на даній лабораторній роботі, я ознайомилася з принципом створення бібліотек і пакетів в проектах VHDL, архітектурою проекту в структурній формі, навчилася створювати пакети та синтезувати комбінаційну схему з одним виходом, та реалізувала її на мові VHDL.