Міністерство освіти і науки України
НУ ”Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №1
на тему: „Вивчення інтегрованого середовища автоматизованого проектування Active-HDL фірми Aldec Inc”
Підготував: ст..гр. КІ-47
Холод Я.
Прийняв:
Кицун Г. В.
Львів 2005
Мета роботи: ознайомитись з принципами автоматизованого проектування ПЛІС за допомогою пакету Active-HDL, вивчити структуру VHDL-проекту, навчитися працювати з засобами управління проектом.
Теоретичні відомості
Одним із світових лідерів в розробці систем автоматизованого проектування (САПР) для створення програмованих логічних інтегральних схем на базі мов описання апаратного забезпечення є корпорація Aldec Inc.
Структура Active-HDL базується на стандартному GUI-інтерфейсі. Загальний вигляд екрана при роботі з САПР Active-HDL:
Головними частинами Active-HDL є:
Design Browse
вікно перегляду проекту, призначене для для відображення інформації про складові елементи (компоненти) проекту:- файли опису пристрою,- використані в проекті бібліотеки,- допоміжні файли проекту, до яких належать макроси та скрипт-файли, файли результатів симуляції роботи пристрою, допоміжні текстові файли,- структуру проекту,
- сигнали та змінні, декларовані в проекті.
HDL Editor
редактор HDL-тексту з можливістю відображення заданих синтаксичних конструкцій мови різними кольорами; завдяки інтеграції редактора із симулятором компонент дозволяє виконувати зручне покрокове відлагодження пристрою і швидко виявляти помилки.
Console
вікно призначене для інтерактивного виводу текстової інформації, зокрема повідомленнь середовища; компонент також призначений для вводу команд середовища (Active-HDL commands).
Waveform Editor
редактор, призначений для графічного відображення та редагування результатів симуляції - часових діаграм.
Language Assistant
компонент є зручним засобом, який дозволяє розробнику використовувати бібліотеку шаблонів опису стандартних примітивних конструкцій та функціональних блоків; Language Assistant дозволяє розміщувати вибрані шаблони безпосередньо в редагованому файлі та створювати свої власні шаблони.
Порядок виконання роботи:
Запустити Start -> Programs -> Active-HDL. У діалоговому вікні Getting Started вибрати Cancel.
У вікні Active-HDL відкрити підручник по роботі з пакетом: Help \ On-line Documentation \ HDL Entry and Simulation Tutorial. Використовуючи цей підручник, ознайомитись з інтегрованим середовищем пакету, процесом створення проекту, редагування коду і його симуляції (отримання часових діаграм).
Відкрити проект Modulator з наборуі VHDL-прикладів (File \ Open Design \ Samples \ Modulator) та вивчити його склад і структуру за допомогою Design Browser. Скласти повний перелік об'єктів, що входять до складу проекту Modulator, описати їх інтерфейси.
Вивчити порядок застосування та функціональні можливості Майстра Нового Проекту (New Design Wisard). Створити за допомогою New Design Wisard порожній проект.
Описати на VHDL об'єкт, що являє собою RS-тригер. Інтерфейс цього об'єкта: 2 вхідні порти R і S типу std_logic,2 вихідні порти Q та NQ типу std_logic:
Згенерувати такий же об'єкт в окремому файлі за допомогою Майстра (Design Browser \ Add New File \ Wizards \ VHDL Source Code Wizard). Порівняти об'єкт, створений вручну із згенерованим автоматично об'єктом.
Згенерувати за допомогою Майстра об'єкт, що реалізує 4-бітний лічильник. Його інтерфейс: 2 вхідних порти CLK і RST типу std_logic,один вихідний 4-розрядний порт Q типу std_logic_vector:
Перелік об'єктів проекту Modulator та їх інтерфейси.
Проект Modulator складається з 4 об’єктів : SineGenerator, CosineGenerator, SawGenerator, Multiplier. Об’єкт SineGenerator має 3 входи та 1 вихід. В нього є входи синхронізації, дозволу роботи та вхідний параметр функції синуса, що реалізується цим блоком. Об’єкт CosineGenerator має 3 входи та 1 вихід. В нього є входи синхронізації, дозволу роботи та вхідний параметр функції косинуса, що реалізується цим блоком. Об’єкт SawGenerator має 3 входи та 1 вихід. В нього є входи синхронізації, дозволу роботи та вхідний параметр. Четвертим блоком в даному проекті є блок Multiplier, що реалізує множення результатів роботи 3 попередніх блоків. Для цього він повинен мати 3 відповідних входи, а також вхід синхронізації і один вихід, що є виходом пристрою. Всередині цього блоку здійснюється множення вхідних даних.
Склад та структура проекту, сформованого в результаті роботи.
В результаті виконання роботи мною було створено проект, що моделює роботу двох пристроїв: тригера та простого лічильника. Сам проект складається з 2 файлів коду, що пов’язані між собою лише спільними бібліотеками пристроїв, що використовуються для моделювання їхньої роботи. Один з файлів lab1_kit_RS моделює роботу RS-тригера, а інший lab1_kit_cou – лічильника з 4-розрядним виходом. Зважаючи на простоту реалізованих пристроїв, наочність мови програмування та наявність коментарів докладного опису роботи пристроїв тут не приведено.
Програмна реалізація
lab1_kit_RS
------------------------------------------------------------------------------
-- Subject : ÌÎÀÇ
-- File name : lab1_kit_RS
-- Date : 24/9/05
-- Developer : Kholod Yaroslav
-- Description : RS-triger
------------------------------------------------------------------------------
library IEEE;
use IEEE.MATH_REAL.all;
entity RS_triger is
port (
clk: in bit;
R: in bit;
S: in bit;
Q: out bit :='0';
NQ: out bit :='0'
);
end RS_triger;
architecture RS_triger of RS_triger is
begin
process (clk)
begin
if clk='1' and clk'event then
if R='0' then
Q <= S ;
NQ <= not S ;
end if ;
if R='1' then
Q <= '0' ;
NQ <= '1' ;
end if ;
end if;
end process;
end RS_triger;
lab1_kit_cou
---------------------------------------------------------------------------------------------------
--
-- Title : lab1_kit_cou
-- Design : lab1_kit
-- Author : Kholod Yaroslav
---------------------------------------------------------------------------------------------------
--
-- File : lab1_kit_cou.vhd
-- Generated : Sat Sep 24 15:02:22 2005
-- From : interface description file
-- By : Itf2Vhdl ver. 1.20
--
---------------------------------------------------------------------------------------------------
--
-- Description : This file is modeling the simplest counter
--
---------------------------------------------------------------------------------------------------
--{{ Section below this comment is automatically maintained
-- and may be overwritten
--{entity {lab1_kit_cou} architecture {lab1_kit_cou}}
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity lab1_kit_cou is
port (
clk: in bit;
RST: in bit;
Q : out bit_vector(3 downto 0);
);
end lab1_kit_cou;
architecture lab1_kit_cou of lab1_kit_cou is
begin
process (clk)
begin
if clk='1' and clk'event then
if RST='0' then
Q <= Q + '1' ;
end if ;
if RST='1' then
Q <= "0000" ;
end if ;
end if;
end lab1_kit_cou;
Висновок
Під час виконання даної лабораторної роботи я успішно ознайомився з принципами автоматизованого проектування ПЛІС за допомогою пакету Active-HDL, вивчив структуру VHDL-проекту, навчитися працювати з засобами управління проектом.