МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Комп’ютерні методи аналізу та проектування електронних засобів»
на тему: «Створення бібліотек і пакетів у VHDL проектах. Архітектура проекту на мові VHDL в структурній формі»
Варіант №12
Виконав: ст. гр. ЗІД-12
Прийняв: Будз Б.Д.
Львів 2010
Мета роботи: ознайомитись з принципом створення бібліотек і пакетів в проектах VHDL. Реалізація комбінаційної логічної схеми з одним виходом в структурній формі проекту на мові VHDL.
Завдання:
1. Ознайомитись з процедурою створення і підключення в проект VHDL-файлу бібліотек і пакетів.
2. Ознайомитись з синтаксисом архітектури проекту в мові VHDL в структурній формі.
3. Створити пакет базових елементів, які використовуються для побудови комбінаційної схеми синтезованої в лабораторній роботі № 2.
3. Скласти і відкомпілювати програму на мові VHDL, яка моделює роботу синтезованої схеми в попередній лабораторній роботі у вигляді структурної форми архітектури проекту.
5. Промоделювати роботу даного пристрою в редакторі часових діаграм і отримати часові діаграми.
Короткі теоретичні відомості
Оголошення пакету
--Інтерфейс пакету.
package ім’я_пакету is
оголошення_пакету
end package ім’я_пакету;
--Тіло пакету
package body ім’я_пакету is
оператори_оголошень_пакету
end package body ім’я_пакету;
Архітектура проекту в структурній формі
Структурна форма архітектури зводиться до опису проекту через набір логічних елементів або компонентів і зв’язків між їхніми входами і виходами.
Міжкомпонентні зв’язки можуть бути визначені за допомогою позиційної (неявної) реалізації.
Альтернативний метод визначення міжкомпонентних зв’язків полягає у використанні іменованої (явної) реалізації зв’язків між портами.
Синтез комбінаційної схеми з одним виходом
y = EMBED Equation.3 EMBED Equation.3
EMBED Equation.3 &
QUOTE
EMBED Equation.3 QUOTE
QUOTE
1
QUOTE
&
QUOTE
QUOTE EMBED Equation.3
EMBED Equation.3
&
QUOTE
QUOTE
&
EMBED Equation.3
EMBED Equation.3
QUOTE
QUOTE - my_in1_not
EMBED Equation.3 - my_in2_not
QUOTE - my_in3_not
QUOTE - my_in4_not
QUOTE - my_in2
QUOTE - my_in3
QUOTE - my_in1
Програма:
Оголошення пакету
--Інтерфейс пакету
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 component;
-- Оголошення AND3
component AND3
port (in1, in2, in3: in std_logic; out1: out std_logic);
end component;
-- Оголошення OR4
component OR4
port (in1, in2, in3, in4: in std_logic; out1: out std_logic);
end component;
-- Оголошення NOT1
component NOT1
port(in1: in std_logic; out1: out std_logic);
end component;
--Оголошення AND4
component AND4
port (in1, in2, in3, in4: in std_logic; out1: out std_logic);
end component;
end package basic_func;
--Тіло пакету
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;
--OR4
library ieee;
use ieee.std_logic_1164.all;
entity OR4 is
port (in1, in2, in3, in4: in std_logic; out1: out std_logic);
end OR4;
architecture model_OR4 of OR4 is
begin
out1<= in1 or in2 or in3 or in4;
end model_OR4;
--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;
--AND4
library ieee;
use ieee.std_logic_1164.all;
entity AND4 is
port (in1, in2, in3, in4: in std_logic; out1: out std_logic);
end AND4;
architecture model_AND4 of AND4 is
begin
out1<= in1 and in2 and in3 and in4;
end model_AND4;
Проект
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
--Оголошення компонентів
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;
--Оголошення сигналів, які зв’язують компоненти
signal my_in1_not, my_in2_not, my_in3_not, my_in4_not, x1, x2, x3, x4: std_logic;
begin
--Оператори реалізації компонентів
u0: NOT1 port map (in1=>my_in1, out1=>my_in1_not);
u1: NOT1 port map (in1=>my_in2, out1=>my_in2_not);
u2: NOT1 port map (in1=>my_in3, out1=>my_in3_not);
u3: NOT1 port map (in1=>my_in4, out1=>my_in4_not);
u4: AND3 port map (in1=>my_in1_not, in2=>my_in2_not, in3=>my_in4_not, out1=>x1);
u5: AND2 port map (in1=>my_in1_not, in2=>my_in3_not, out1=>x2);
u6: AND4 port map (in1=>my_in1, in2=>my_in2, in3=>my_in3, in4=> my_in4_not, out1=>x3);
u7: AND3 port map (in1=>my_in2_not, in2=>my_in3_not, in3=>my_in4_not, out1=>x4);
u8: OR4 port map (in1=>x1, in2=>x2, in3=>x3, in4=>x4, out1=>my_out1);
end struct;
Часові діаграми роботи пристрою
Висновки: на даній лабораторній роботі, я ознайомився з принципом створення бібліотек і пакетів в проектах VHDL, архітектурою проекту в структурній формі, навчився створювати пакети та синтезувати комбінаційну схему з одним виходом, та реалізувала її на мові VHDL.