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

2.3. Subdesign Section

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

Приклад:

SUBDESIGN First_project

( А, В[4..0] : INPUT=VCC;

D : INPUT=GND;

С[7..1] : OUTPUT;

Е[3..2] : BIDIR; )

Ім'я файлу, у якому повинен зберігатися текстовий опис даного модуля - First_project. tdf

Правила використання розділу:

  • Розділ починається із ключового слова SUBDESIGN, за яким слідує ім'я модуля. Максимальна довжина імені 32 символу. Ім'я модуля повинне збігатися з ім'ям файлу, у якому зберігається його текстовий опис.

  • Після імені модуля слідує укладений у круглі дужки список його виводів.

  • Типи виводів: INPUT - вхід, OUTPUT - вихід, BIDIR - двонаправлений вивід, MACHINE INPUT - вхід імпортованих станів автомата, MACHINE OUTPUT - вихід експортованих станів автомата. Виводи MACHINE INPUT і MACHINE OUTPUT не можуть бути використані в текстовому описі верхнього рівня ієрархії, тобто при описі модуля, виводи якого є виводами НВІС.

  • Виводи перераховуються через кому в одному або більше рядках. Наприкінці переліку однотипних виводів ставиться двокрапка, потім ключове слово, що вказує тип виводів, і далі - крапка з комою.

  • Після ключового слова INPUT може бути зазначене базове значення (GND - логічний нуль, VCC - логічна одиниця) вхідного сигналу. Базове значення - значення, що буде подаватися на вхід у тому випадку, якщо він виявиться непідключеним при використанні даного модуля як компонента при описі модуля більш високого рівня ієрархії. Якщо непідключеним виявиться вхід, для якого не зазначене базове значення, то компілятор пакета MAX+plus II видасть повідомлення про помилку.

  • У файлі з текстовим описом даний розділ може використовуватися тільки один раз.

2.4. Variable Section

Variable Section (розділ змінних) дозволяє задавати внутрішні змінні модуля, призначені для використання в розділі опису логіки (Logic Section).

Змінна - це символічне ім'я:

  • лінії зв'язку;

  • лінії зв'язку із трьома станами;

  • модуля, використовуваного в текстовому описі як компонент (примітива, скінченого автомата).

Приклад:

INCLUDE halfadd. inc";

VARIABLE

a, b, c : NODE; -- a,b,c - іменовані лінії зв'язку

add : halfadd;

-- halfadd - модуль, використовуваний у даному текстовому описі -- як компонент, add - ім'я компонента.

ts_node : TRI_STATE_NODE; -- ts_node - лінія зв'язку зі Z станом

ff[3..0] : DFF; -- ff[3], ff[2], ff[1] - група змінних, що позначає тригери

АА : MACHINE OF BITS (Q1, Q2, Q3)

WITH STATES (A0=B"000",

A1=B"001", A2=B"011"); -- АА - скінчений автомат

Правила використання розділу:

  • Розділ починається із ключового слова VARIABLE. Далі вказується: символічне ім'я змінної, символ двокрапка, тип змінної, крапка з комою. Імена однотипних змінних можуть бути перераховані через кому.

  • Припустимі типи змінних: NODE - лінія зв'язку; TRI_STATE_NODE - лінія зв'язку із трьома станами; модуль більш низького рівня ієрархії; примітив; скінчений автомат; псевдонім скінченого автомата.

  • Розділ змінних може також містити оператор IF GENERATE, що дозволяє, залежно від значення оцінюваного в операторі арифметичного виразу, управляти заданням змінних.

  • У файлі з текстовим описом даний розділ може використовуватися тільки один раз.