Автор: Пользователь скрыл имя, 26 Октября 2011 в 23:34, реферат
Як вказувалося раніше, мова VHDL призначена для опису ЦС на різних рівнях проектування, починаючи з етапу системного (алгоритмічного, высокорівневого) проектування і закінчуючи етапом логічного (низкорівневого) проектування з використанням методології нисхідного проектування. Ця методологія припускає ієрархічний опис проектованої ЦС як системи, що складається з окремих компонентів (підсистем, модулів, вузлів тощо), з поступовим переходом від абстрактного (системного чи алгоритмічного) опису до більш детального (структурного чи схемного) опису.
Основы языка VHDL
для
проектирования цифровых систем
Конспект лекций
для студентов
специальностей
7.091501 и 7.080403
Одесса 2002
1.1.
Методи опису цифрових
систем
1.1.1. VHDL-проект ЦС. Як вказувалося раніше, мова VHDL призначена для опису ЦС на різних рівнях проектування, починаючи з етапу системного (алгоритмічного, высокорівневого) проектування і закінчуючи етапом логічного (низкорівневого) проектування з використанням методології нисхідного проектування. Ця методологія припускає ієрархічний опис проектованої ЦС як системи, що складається з окремих компонентів (підсистем, модулів, вузлів тощо), з поступовим переходом від абстрактного (системного чи алгоритмічного) опису до більш детального (структурного чи схемного) опису. При цьому на кожнім етапі необхідно вирішувати задачі синтезу, аналізу (моделювання), верифікації, документування й ін. Отримані результати лежать в основі проекту ЦС і описуються за допомогою мови VHDL. VHDL-проект містить файли описів компонент, з'єднань між ними і формальним визначенням закону функціонування ЦС (system behavior) і її компонент. VHDL-проект звичайно включає описи різних рівнів ієрархії (абстракції) ЦС:
· алгоритмічного (в англійській термінології часто вживається термін "поведінковий" – behavioral) рівня;
· рівня регістрових передач;
· функціонально – логічного рівня з урахуванням затримок блоків;
· рівня логічних елементів з урахуванням часу переключення.
VHDL-проект складається з
· Entity (об'єкт, інтерфейс об'єкта). Entity описує основні структурні складові (компоненти, об'єкти) проекту, задаючи їхні імена і визначаючи інтерфейси для кожного об'єкта. Якщо опис (проект) має ієрархічну структуру, то опис верхнього рівня (еntity) містить описи (еntities) нижніх рівнів. Структура об'єкта й інші його властивості в еntity не розкриваються, тобто будь-який об'єкт проекту на цьому рівні опису розглядається як "чорний ящик".
· Architecture (архітектура, структура). Architecture визначає внутрішню організацію, сутність об'єкта проекту і може описувати як функціонування об'єкта (behavioral type), так і його структуру (structural type). Той самий об'єкт (еntity) може мати різні варіанти архитектур.
· Configuraton (конфігурація, форма). Configuraton дозволяє вибрати варіант опису компонента об'єкта з бібліотеки компонентів і зв'язати воєдино поняття еntity і architecture для конкретного блоку. Іншими словами, сonfiguraton описує характер функціонування чи структуру визначеного об'єкта (еntity).
· Package (пакет). Package - це модуль, що поєднує часто використовувані групи різних специфікацій. Ціль створення пакета складається в оголошенні загальних типів даних, компонент, сигналів і т.ін. Як тільки пакет визначений, він може бути поміщений у бібліотеку і використаний у різних незалежних проектах.
Часто розроблювач використовує раніше скомпіліровані компоненти, що містяться в бібліотеках фірм-розроблювачів. Додатково скомпіліровані пакети також зберігаються в бібліотеці.
Таким чином, розроблювач визначає основні складові свого VHDL проекту в наступних частинах опису (мал.1.1):
· Library (бібліотека).
· Package (пакет).
· Entity (об'єкт).
· Architecture (архітектура).
· Configuraton (конфігурація).
Кожна
частина VHDL-проекту може бути збережена
в окремому файлі і відкомпільована,
однак порядок компіляції повинний бути
визначеним (буде розглянутий далі).
1.1.2. Код VHDL-опису, в основному, подібний структурі коду інших мов високого рівня. Текст VHDL-опису є послідовність роздільних лексичних елементів, таких як ідентифікатори, роздільники, ключові (зарезервовані) слова, литералы різних типів, оператори, коментарі й ін. Ідентифікатори повинні починатися з букви, далі можуть бути цифри, букви, знаки підкреслення і т.д. Докладніше лексичні елементи будуть розглянуті далі.
Як і багато інших мов
Список
ключових слів VHDL
abs else literal pure transport
access elsif loop range type
after end map record unaffected
alias entity mod register units
all exit nand reject until
and file new rem use
architecture for next report variable
array function nor return wait
assert generate not rol when
attribute generic null ror while
begin group of select with
block guarded on severity xnor
body if open signal xor
buffer impure or shared
bus in others sla
case inertial out sll
component inout package sra
configuration is port srl
constant label postponed subtype
disconnect library procedure then
downto linkage
process to
1.2.
Entity (об'єкт)
Entity
повідомляє ім'я нового компонента (об'єкта)
проекту, описує інтерфейс між даним компонентом
(об'єктом) і середовищем, у якому він функціонує,
визначає типи і напрямки сигналів (вхід/вихід),
факультативно повідомляє універсальні
параметри об'єкта проекту. VHDL відокремлює
опис інтерфейсу об'єкта від розгляду
структурної (чи іншої) реалізації об'єкта.
Після того як опис об'єкта скомпільовано
і поміщено в бібліотеку, об'єкт може брати
участь у моделюванні, а також бути компонентом
іншого проекту.
Синтаксис:
entity entity_name is
[generics (generics_list)]
[ports] [declarations (constants, types, signals)]
[begin statements]
end
[entity] entity_name;
Наприклад, об'єкт "логічний елемент И (AND)" (andgate) c двома вхідними (a, b) і одним вихідним (c) двійковими сигналами може бути оголошений у такий спосіб:
Приклад 1.1.
entity andgate is
port (a, b: in bit;
c: out bit);
end
andgate;
У цьому прикладі об'єкт andgate визначений як новий компонент. Після службового слова is йдуть описи портів із вказівкою їхніх імен, напрямку потоків інформації (mode of port) і типу інформації. У VHDL визначені кілька режимів для портів:
in – вхідний порт (input port);
out – вихідний порт (output port);
inout – змінюваний, двунаправленный порт (bi-directional port);
buffer – буферний порт вихіду (buffer output port).
В
описі об'єкта поряд з описом портів
можуть бути описані також параметри
(у розділі декларацій). Для опису таких
параметрів вживається ключове слово
generic – параметр, що може настроюватися.
З його допомогою можуть задаватися, наприклад,
ширина (розрядність) шини, число вхідних
або вихідних полюсів, число подкомпонент
у межах блоку, значення затримки елементів
і т.д.
Приклад 1.2.
entity CPU is
generic (BusWidth: Integer := 16);
port (DataBus: inout std_logic_vector (BusWidth – 16 downto 0));
end
CPU;
У даному прикладі значення настройки BusWidth використовується для опису об'єкта CPU з перемінною розрядністю шини (ширини порту DataBus), що може змінюватися в зазначених межах.
Підкреслимо
ще раз, що всі проекти складаються
з об'єктів; таким чином, поняття
entity у визначеному змісті відповідає
поняттю компонента проекту (пристрою)
у класичній методології схемотехнического
проектування.
1.3. Architecture
(архітектура)
Архітектура об'єкта проекта визначає закон функціонування (в англійській термінології – поведінок, behavior) даного об'єкта, тобто залежності вхід/вихід для вхідних і вихідних сигналів або сукупність компонент і їхній межзв’язок для раніше визначеного об'єкта. Блок, що відповідає об'єкту проекта, повинний бути відкомпільований раніше компіляції його архітектури.
VHDL
дозволяє моделювати
Архітектура об'єкта в VHDL-проекті може розглядатися на різних рівнях (стиль опису архітектури, architecture style):
· алгоритмічний (поведінковий, behavioral) – описуються послідовностні процеси, що реалізуються в об'єкті при його функціонуванні;
· потоків даних (dataflow) – містить у собі опис структури і законів функціонування;
· структурний (structural) – описується лише структура об'єкта, тобто компоненти, що входять у його склад, і способи їхнього з'єднання.
Різні
стилі VHDL-опису архітектури об'єкта
представляють різні рівні
Синтаксис: