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

Лабораторна робота №7

Тема:Опис логічних схем з допомогою мови AHDL в середовищі MAX+plus II

Конструкції мови ahdl»

Мета роботи: знайомство з мовою опису апаратури AHDL і правилами опису логічних схем в середовищі MAX+plus II.

1. Знайомство з мовою опису апаратури ahdl Теортичні відомості

Мова AHDL розроблена фірмою ALTERA та призначена для опису комбінаційних і послідовних логічних пристроїв, групових операцій, цифрових автоматів (state machine) і таблиць істинності з урахуванням архітектурних особливостей ПЛІС фірми ALTERA. Вона повністю інтегрується з системою автоматизованого проектування ПЛІС MAX+PLUS ІІ. Файли опису апаратури, написані на мові AHDL, мають розширення *.tdf (text design file). Для створення tdf-файлу можна використовувати, як текстовий редактор системи MAX+PLUS II, так і будь-який інший. Проект, виконаний у вигляді tdf-файлу, компілюється, відлагоджується і використовується для формування файлу програмування чи завантаження ПЛІС фірми ALTERA.

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

При розподілі ресурсів пристроїв розробник може користуватися командами текстового редактора або операторами мови AHDL для того, щоб зробити призначення ресурсів і пристроїв. Крім того, розробник може тільки перевірити синтаксис або виконати повну компіляцію для відладки і запуску проекту. Будь-які помилки автоматично виявляються процесором повідомлень і висвічуються у вікні текстового редактора.

Елементи мови AHDL. Зарезервовані ключові слова.

Зарезервовані ключові слова використовуються для наступних цілей:

  • для позначення початку, кінця та переходів в оголошеннях мови AHDL;

  • для позначення визначених констант, тобто GND і VCC.

Ключові слова можна використовувати як символічні імена, тільки якщо вони розміщені в одинарних лапках ('). Їх можна також використовувати в коментарях.

Для того, щоб одержати контекстну допомогу по ключовому слову необхідно переконатися, що файл збережений з розширенням *.tdf, потім натискати одночасно дві кнопки Shift+F1 у вікні текстового редактора Text Editor і клацнути лівою кнопкою миші на ключовому слові.

ALTERA рекомендує всі ключові слова набирати великими буквами.

Список всіх зарезервованих ключових слів мови AHDL приведений в таблиці 2.1

Символи

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

Таблиця 2.1- Зарезервовані ключові слова мови AHDL

FUNCTION

AND

OTHERS

GLOBAL

OUTPUT

CASE

BEGIN

TABLE

GND

JKFFE

RETURNS

BITS

BURIED

SRFFE

INPUT

NCLUDE

SOFT

DFF

BIDIR

VCC

IF

NODE

SRFF

DFFE

CARRY

WHEN

IS

NOR

STATES

ELSE

CASCADE

WITH

JKFF

NOT

SUBDESIGN

END

CLIQUE

XNOR

LATCH

OPTIONS

TFF

EXP

CONNECTED_PINS

XOR

LCELL

OR

TFFE

CONSTANT

DEVICE

MACHINE

NAND

THEN

VARIABLE

DEFAULTS

ELSIF

MACRO

OF

TITLE

X

DESIGN

MCELL

TRI



Таблиця 2.2 - Символи в мові AHDL

Символ

Функція

_ (підкреслення)

Ідентифікатори, що використовуються користувачем

-(тире)

Символи в символічних іменах.

-- (два тире)

Починає коментар в стилі VHDL, який продовжується до кінця рядка.

% (відсоток)

Поміщає з двох сторін коментар в стилі AHDL.

() (круглі дужки)

Поміщають і визначають послідовні імена груп. Поміщають імена виводів в секції підпроекту (Subdesign Section) і в прототипах функцій. Поміщають (необов'язково) входи і виходи таблиць в оголошенні Truth Table. Поміщають стани в оголошенні цифрового автомата State Machine. Поміщають більш пріоритетні операції в булевих виразах. Поміщають необов'язкові варіанти в секції проекту Design Section (усередині оголошення призначення ресурсів Assignment).

[ ](квадратні дужки)

Поміщають діапазон значень в десятковому імені групи.

' ' (одинарні лапки)

Поміщають символічні імена.

.(крапка)

Відділяє символічні імена змінних в макрофункції чи примітиві від імен портів. Відділяє ім'я файлу від розширення.

... (трикрапки)

Розділяє найменше і найбільше значення в діапазонах.

“ (подвійні лапки)

Поміщають рядок в оголошенні назви Title. Поміщають цифри в не десяткових номерах. Поміщають шлях в оголошенні Include. Можуть (необов'язково) поміщати ім'я проекту і пристрою в секції проекту Design Section.

Можуть (необов'язково) поміщати ім'я в оголошенні призначення кліки графа Clique Assignment.

;(крапка з комою)

Закінчує оголошення і секції в мові AHDL.

, (кома)

Розділяє елементи послідовних груп і списків.

:(двокрапка)

Відділяє символічні імена від типів в оголошеннях і призначеннях ресурсів.

@ «собака»

Присвоює символічні вузли виводам пристрою і логічним коміркам в оголошеннях призначення ресурсів Resource Assignment.

= (рівність)

Присвоює значення за замовчуванням GND і VCC входам в секції підпроекту Subdesign. Присвоює встановлені значення у варіантах. Присвоює значення станам в машині станів. Присвоює значення в булевих рівняннях.

=> (стрілка)

Відділяє входи від виходів в оголошеннях таблиці істинності Truth Table. Відділяє вирази з When від булевих виразів в операторі Case.

Імена в лапках і без лапок В мові AHDL є три типи імен:

  1. символічні імена - це визначені користувачем ідентифікатори.

Вони використовуються для позначення наступних частин TDF.

  • внутрішніх і зовнішніх вузлів (вершин);

  • констант;

  • змінних цифрового автомата, бітів станів, імен станів,

  • прикладів (Instance).

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

  2. 3) імена портів - це символічні імена, що ідентифікують вхід або вихід примітиву чи макрофункції.

У файлі .fit проекту можуть з'явитися імена виводів, що генеруються компілятором, з символом «тильда» Цей символ зарезервований для імен, що генеруються компілятором, користувачу забороняється його використовувати для позначення імен виводів, вузлів (вершин), груп (шин). Існують дві форми запису для всіх трьох типів імен (символічних, підпроекту і портів): в лапках (') і без лапок.

Якщо розробник створює символ за замовчуванням для tdf-файлу, який включає імена портів в лапках, власне лапки не входять в імена виводів.

Числа в мові AHDL У мові AHDL можна використовувати десяткові, двійкові, вісімкові і шістнадцяткові числа в будь-якій комбінації. В таблиці 2.3 приведений синтаксис запису чисел в мові AHDL для кожної системи числення.

Таблиця 2.3 - Синтаксис запису чисел в мові AHDL

Система числення

Значення

Десяткова

<послідовність цифр 0-9>

Двійкова

В”<послідовність з 0, 1, Х>”, де символ X позначає невідоме значення

Вісімкова

0”< послідовність цифр 0-7>” чи Q”< послідовність цифр 0-7>”

Шістнадцяткова

Х”< послідовність цифр 0-9, букв А-F>” чи

Н”< послідовність цифр 0-9, букв А-F>”

Булеві вирази Булеві вирази складаються з операндів, розділених логічними і арифметичними операторами і компараторами і (необов'язково) згрупованих за допомогою круглих дужок вирази використовуються в булевих рівняннях, а також в інших конструкціях мови, таких як оператори Case і If.

Існують наступні застосування булевих виразів:

- операнд. Приклад: а, b[5..1], 7, VCC

  • вбудоване в текст (in-line) посилання (reference) на примітив чи макрофункцію.

  • префіксний оператор (! або -), застосований до булевого виразу. Приклад:

  • два булеві вирази, розділені двійковим (не префіксним) оператором.

Приклад: d1 $ d3

  • поміщений в круглі дужки булевий вираз. Приклад: (!foo & bar)

Результат кожного булевого виразу повинен мати ту ж ширину, що і вузол або група (в лівій стороні рівняння), якому він присвоюється

Логічні оператори

Таблиця 2.4 - Логічні оператори для булевих виразів

Оператор

Приклад

Опис

!

!tob

Доповнення

NOT

NOT tob

-//-

&

bread & butter

Логічне I

AND

bread AND butter

-//-

!&

a|3..1]!& b[5..3]

Обернення логічного І

NAND

a[3..1] NAND b[5..3]

-//-

#

trick # treat

Логічне АБО

OR

trick OR treat

-//-

!#

c[8..5]!# d[7..4]

Обернення логічного АБО

NOR

c[8..5] NOR d[7..4]

-//-

$

foo $ bar

Викпючне АБО

XOR

too XOR bar

-//-

!$

x2 !$x4

Обернення виключного АБО

XNOR

x2XNOR x4

-//-

Кожний оператор є логічним вентилем з двома входами; виняток становить оператор NOT, що є префіксним інвертуванням. Для запису логічного оператора можна використовувати його ім'я або символ.

Вирази, в яких використовуються ці оператори, інтерпретуються по-різному залежно від того, які операнди: одиночні вузли (вершини), групи або числа. Крім того, вирази з оператором NOT інтерпретуються не так як інші логічні оператори.

Методичний приклад

Розглянемо роботу з текстовим редактором САПР MAX+PLUS II, в якому потрібно описати принцип роботи схеми, згідно логічного виразу.

(1)

В САПР MAX+PLUS II за допомогою меню File->New створюємо файл текстового редактора (рис. 7.1).иу

Рис. 7.1 - Меню File->New

У створеному tdf-файлі на мові AHDL описуємо цифрову схему. Після закінчення введення тексту програми (рис. 7.2) зберігаємо файл Через меню File->Save As зберігаємо файл під тим же іменем, яке має назва підпроекту (наприклад: lаb7), при цьому розширення присвоюється автоматично.

Рис. 7.2 - Tdf-файл з текстом програми

Після збереження необхідно ім'я файлу прив'язати до імені проекту - це робиться при виборі пункту Set Project to Current File в підменю Project меню File головного меню робочого вікна. Проводимо перевірку введеної схеми.

Створюємо include-файл і символ за замовчуванням. Для цього виконуємо пункти Create Default File і Create Default Symbol в меню File головного меню робочого вікна. Include-файл і символ будуть тепер можна використовувати в інших проектах.

Створюємо в Graphic Editor схему, в якій використовуємо створений символ (рис. 7.3). Аналогічним чином зберігаємо файл, виконуємо перевірку і компіляцію проекту.

Рис. 7.3 - Схема з власним символом

Перевірку роботи схеми робимо за допомогою сигнального редактора (Waveform Editor). Для цього відкриваємо сигнальний редактор і створюємо в ньому файл з розширенням .scf. В створеному файлі за допомогою меню File- >End Time задаємо час моделювання, а в меню Options->Grid Size - крок сітки моделювання. Далі подвійним клацанням правої кнопки миші на полі Name викликаємо меню Insert Node, за допомогою якого вибираємо входи і вихід схеми.

Для вхідних виводів задаємо їх значення на протязі необхідного часу моделювання. Після того, як вхідні значення задані відкриваємо вікно симулятора (Simulator Window) і запускаємо його натискаючи кнопку START.

Результати моделювання роботи схеми лабораторної роботи представлені на рисунку 7.4.

Рис. 7.4 - Результати моделювання роботи схеми в сигнальному редакторі

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]