Смекни!
smekni.com

VHDL - мова опису апаратних засобів комп'ютера (стр. 3 из 3)

2.3.5.1 Процедури та функції

Декларування функцій та процедур відбувається за такими правилами:

PROCEDURE [<список_формальних_параметрів>]

|FUNCTION [<список_формальних_параметрів>]

RETURN <тип_значення>;

Для функцій також вказується тип результату, що буде повертатись коли функція виконається. Така форма декларування підпрограм (не вказуючи їх тіла) часто використовується в пакетах, де тіло підпрограми дається в тілі пакету, а також при визначенні взаємно рекурсивних процедур.

В списку формальних параметрів можуть бути константи, змінні та сигнали.

2.4 Структурний опис мовою VHDL

2.4.1 Декларування елемента

Цифрова схема проектується, як правило, ієрархічним набором елементів. Кожен елемент має набір портів для реалізації інтерфейсу із зовнішним світом. При цьому кожен елемент в свою чергу може складатись з інших елементів.

Синтаксис декларації елемента наступний:

ENTITY <ім’я> IS

<заголовок>;

BEGIN

<тіло>;

END <ім’я>;

Заголовок елементу може використовуватись для декларування речей, які потім будуть використовуватись у тілі елемента. В заголовку також можуть записуватись спеціальні пункти, що допомогають при симуляції.

Тут можуть вказуватись константи, що описують поведінку елемента GENERIC CONSTANT, та канали вводу/виводу PORT.

GENERIC CONSTANT описуються так само, як і декларація підпрограм. Всі вони повинні мати клас констант. Дійсні значення констант передаються тоді, коли елемент буде використано. PORTS описуються так само, як і GENERIC CONSTANT, але їх клас повинен бути SIGNAL. Це є новий клас, тому покажемо його синтаксис:

SIGNAL <список_ідентифікаторів>:[<режим>] <тип> [BUS] [:=<статистичний вираз>]

Так, як клас повинен бути SIGNAL за замовчуванням, слово SIGNAL може бути пропущене.

Слово BUS (шина) показує, що порт буде під’єднано до кількох виходів.

2.4.2 Декларування архітектури елемента

Після того, як елемент було декларовано за допомогою ENTITY, потрібно описати його архітектуру в розділі ARCHITECTURE. Кожен елемент може мати кілька таких описів.

ARCHITECTURE <ідентифікатор> OF <ім’я> IS

<заголовок>;

BEGIN

<тіло>;

END <ідентифікатор>;

В тілі архітектури вказуються пункти, що описують елемент конструктивно.

2.4.2.1 Декларування сигналів

Сигнали використовуються для з’єднання піделементів між собою. Вони описуються за наступним синтаксисом:

SIGNAL <список_ідентифікаторів>:<тип>[REGISTER | BUS] [:=<вираз>];

Значення виразу в декларуванні сигналу використовується для надання сигналу початкового значення під час фази ініціалізації при моделюванні. Якщо вираз не вказано, то буде використовуватись значення за замовчуванням. Порти елемента слід розуміти як сигнали в межах цього елементу.

2.4.2.3 Декларування компонентів

В тілі архітектури дозволяється описувати окремі елементи та поміщати їх до бібліотек для подальшого використання. Для цього в тілі архітектури потрібно декларувати компоненту. Її можна розуміти як тимчасове в межах даної архітектури визначення віртуального елементу.

COMPONENT <ідентифікатор>

[GENERIC (. . .)];

[PORT (. . .);

END COMPONENT;

2.4.2.4. Використання компонентів

<мітка>: <ім’я_компоненту>

[<дійсний_generic_map>]

[<дійсний_port_map>];

2.5 Функціональний опис мовою VHDL

Функціональний опис передбачає запис засобами мови програмування VHDL законів зміни сигналів.

Присвоєння значень сигналам диспетчеризує одну або кілька транзакцій на сигнал (або порт) в наступний спосіб:

<сигнал> | <агрегат> <= [TRANSPORT]

<значення> [AFTER | NULL]<час>{, . . . };

Цільовий сигнал може бути представлений агрегатом сигналів. Якщо час пропущений, то за замовчуванням береться затримка 0fs. Це означає, що транзакція буде диспетчеризована в той самий час, коли відбулось присвоєння, але в наступний цикл симуляції.

Кожен сигнал асоціюється з хвильовою проекцією виходу (далі проекція). Це є фактично перелік транзакцій майбутніх значень сигналу. Кожне присвоєння сигналу додає транзакцію до проекції.


СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Бобровский С. Delphi 7. Учебный курс. – СПб.:Питер,2004. – 735 с.

2. Энго Ф. Как программировать на Delphi 4.0. Пер. с англ – К.: ДиалСофт, 1999. – 430 с.

3. Архангельський А.Я.. Программирование в Delphi 6. – М.: Бином, 2002. – 823 с.

4. Культин Н.Б.. Delphi 6.0. Программирование на Object Pascal. – СПб.: Питер ,2004. –526 с.

5. Лишнер Р. Секреты Delphi 2. Пер. с англ. – К.: НИПФ ДиаСофтЛтд, 1996. – 800 с.

6. Проектування цифрових систем з використанням мови VHDL: Навч. посібник/ В.В. Семенець, І.В. Хаханова, В.І. Хаханов. – Харків: ХНУРЕ, 2003. – 492 с.

7. Сергиенко А.М. VHDL для проектирования вычислительных устройств. – К.: ТИД ДС , 2003. – 208 с.