Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Короткі відомості про мову VHDL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
167 Кб
Скачать
☆

6.2. Прості приклади опису об'єктів на мові vhdl

Пристрій (рис. 12) можна описати таким чином:

entity ANDOR is

port(e0, e1, e2 : in bit; -- декларація вхідних і

z : out bit); -- вихідних портів, визначення

-- їх типів як двійкових

end ANDOR;

architecture RTL1 of ANDOR is

begin

-- призначення вихідному сигналу (порту) z результату -- логічного перетворення сигналів e0, e1, e2

z <= (not (e0 and e1) or e2);

end RTL1;

У приведеному тексті тіло архітектури, очевидно, є поведінковий опис об'єкту – опис логічного перетворення, складеного з використанням операцій І (and), АБО (or), НІ (not).

Прикладом використання структурного опису є опис, складений для схеми (мал. 13):

entity Cascade_Circuit is

port (x0, x1, x2, x3, x4 : in bit;

у : out bit);

end Cascade_Circuit;

architecture example of Cascade_Circuit is

-- декларація описаного раніше компоненту

-- відповідного схемі (мал. 12)

component ANDOR

-- декларація вхідних і вихідного портів компоненту -- визначення їх типів як двійкових

port (e0, e1, e2 : in bit; z : out bit);

end component;

-- декларація внутрішнього сигналу F і визначення його

-- типу як двійкового

signal F : bit;

begin

-- мітка (а1) і опис використання компоненту ANDOR

-- як лівою обведеною штриховою лінією частини

-- схеми (мал. 13), тобто опис використання портів

-- компоненту як порти об'єкту (x0, x1, x2

-- x3,x4, у) і передачі внутрішнього сигналу F між

-- частинами схеми

a1 : ANDOR port map (x0, x1, x2, F);

-- аналогічний опис для правої частини схеми

a2 : ANDOR port map (F, x3, x4, у);

end example;

М ітки (тут a1 і a2), що є одним з окремих випадків ідентифікаторів, відповідно до синтаксису VHDL, відділяються двокрапками. Причому окремі версії мови VHDL припускають обов'язкове використання міток, а для деяких версій (зокрема, для версії, відповідної текстовому редакторові тієї, що вивчається САПР) використання міток можливо, але не обов'язково. Мітки теж відносять до згаданих в 6.1 призначеним для користувача іменам.

Останній текст опису складений з урахуванням того, що схема (мал. 13) складається з двох частин (обведених штриховими лініями), кожна з яких (компонент) є схемою (мал. 12), описаною раніше. При цьому пристрій (мал. 13) описується сукупністю двох приведених вище текстів, а не тільки останнім з них. Відмітимо, що ім'я і декларація портів компоненту (див. другий текст) повинні повністю співпадати з відповідними рядками опису, зробленого раніше (див. перший текст).

У двох складених текстах описів ідентифікатори інтерфейсу і архітектури записані по-різному (з використанням великих і малих букв). Це не є помилкою: компілятор САПР сприйме однаково великі і малі букви в текстах VHDL.

Відзначимо, що після компіляції відповідних VHDL-текстів і програмування кристала ПЛИС, в нім утворюються структури, побудовані, наприклад, по схемах (мал. 7, 10-13).

6.3. Основні елементи мови vhdl

Текст на мові VHDL є послідовність окремих лексичних елементів, таких як коментар, роздільник, оператор, ідентифікатор, абстрактний і символьний літерали.

Згодне 6.2 коментарі служать для документування описів об'єктів.

Суміжні лексичні елементи розділяються кінцями рядків або особливими лексичними елементами – роздільниками, такими як пробіл, кома або крапка з комою. Причому кому і крапку з комою відносять також до операторів.

Оператор в мові VHDL може бути представлений:

– символом;

– композицією (комбінацією) символів;

– зарезервованим ключовим словом;

– призначеним для користувача ключовим словом;

– комбінацією перерахованих вище варіантів представлення операторів.

Символи, що є операторами, такі (кожен з них указуємо в лапках): "&" "( )", "*", "+" "?", "–", ".", "/" ":", ";", "<", "=", ">", "|". Круглі дужки, як завжди, використовуються для усунення неоднозначностей трактування старшинства операцій (див. 6.2).

Деякі з цих символів можуть об'єднуватися в пару. Композиція символів, що виходить при цьому, називається складеним оператором. У мові VHDL є наступні складені оператори: "**", ":=", "/=", ">=", "<=", "<>".

Зарезервовані ключові слова – це заздалегідь складені комбінації букв, що мають певне значення: abs, begin, case, downto, is, port, variable, xor, architecture, component, else, not, or signaltype, elsif, for, if, other, process, when, end, range, then, all, entity, loop, next, on, to і ін.

Список деяких операторів приведений в табл. 4. Відмітимо, що виходячи з контексту VHDL-коду, слід розрізняти вживання оператора "<=" в сенсі призначення сигналу (див. 6.2) і вживання цього оператора в іншому сенсі (менше або рівно).

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

Комбінацією перерахованих варіантів представлення операторів є паралельні і деякі з послідовних операторів. Надалі будуть приведені додаткові відомості про операторів мови VHDL, зокрема, будуть розглянуті паралельні і послідовні оператори.

Ідентифікатори вживаються як призначені для користувача імена (імена об'єктів і описів, позначення портів і сигналів, міток і ін.) і призначені для користувача ключові слова.

Приклад. У рядку

A<=B and C;

присутньо шість лексичних елементів: A, “<=”, B, and, C “;”. Три з них є операторами: “<=” (складений оператор призначення сигналу), and (зарезервоване ключове слово) “;” (символ – роздільник). Решта елементів (A, B, C) може бути, наприклад, призначеними для користувача іменами сигналів. При виборі ідентифікатора користувач не повинен допускати збіг ідентифікатора з будь-яким із зарезервованих ключових слів.

Абстрактний і символьний літерали – це значення сигналів, змінних і констант. Абстрактний літерал має три форми: десяткову (десяткові числа, наприклад, 100, 13.67 і т. д.), базову (двійкові, вісімкові і шістнадцятиричні числа), фізичну (значення фізичних величин з вказівкою одиниць вимірювання, наприклад, 10 ns – значення часового інтервалу). Символьні літерали – це складені з букв і/або цифр символічні найменування значень сигналів, змінних і констант. Символьні літерали в VHDL-текстах беруть в лапки (наприклад, x = ”error”).