Що таке VHDL

Ось навколо говорять ПЛІС, ПЛІС... Зрозуміло, що це мікросхема така... А як у неї електричну схему заштовхувати? Для цього існує кілька способів, один з яких це опис схеми пристрою спеціальною мовою опису апаратури. Таких мов існує кілька: Verilog, AHDL, VHDL і, напевно, ще є, але мені не траплялися. Ці три начебто найпоширеніші. Ось про VHDL я спробую розповісти.

Чим VHDL відрізняєтьсявід звичайних мов програмування типу Сі, Паскаля тощо? Найголовніша відмінність у цьому, що VHDL визначає паралельні процеси. Якщо код на Сі або Паскалі у нас виконується по черзі команда за командою і треба витончуватися з таймерами і перериваннями, щоб обробити різні шматки коду «одночасно», то на VHDL різні блоки програми виконуються паралельно один одному, але в той же час у VHDL є частина команд , які виконуються послідовно. Тому структура програми докорінно відрізняється від звичної мікроконтролерної.

Структура програмиПроцес програмування на VHDL чимось нагадує створення принципової схеми пристрою.Крок 1:Включення до коду бібліотек, що використовуються.Крок 2:Опис точок входу та точок виходу пристрою (аналогічно входам та виходам принципової схеми всього пристрою).Крок 3:Опис точок входу і виходу елементів, що входять у пристрій (аналогічно призначенню функцій ног контролера та іншої логіки в схемі)Крок 4:Опис архітектури елементів, що входять у пристрій пристрій (на кшталт підбору логіки типу АБО-НЕ, І-НЕ, загалом опис того як вихід елемента зав'язаний з його входом)Крок 5:Опис архітектури всього пристрою (типу з'єднання провідниками всіх елементівсхеми)

Щоб це все було не голослівно, спробуємо створити за допомогою VHDL простий елемент, наприклад 16-розрядний лічильник, який вважає по передньому фронту імпульсу.

Що нам треба знати, щоб переходити до створення першої програми на VHDL? Основні структури даних, з якими ми можемо працювати. У літературі вони називаються класами об'єктів. Їх три: - константи - змінні - сигналиКонстантимають той же сенс, що і в інших мовах і визначаються ключовим словом "constant":

ВАЖЛИВО:у VHDL немає різниці між малими і великими літерами в ідентифікаторах. Тобто константи MyConst і mYcONST це насправді одна і та сама константа. Є ще одне важливе правило: ідентифікатор не повинен закінчуватись підкресленням.

Зміннімають практично той самий сенс, що і в інших мовах. Визначаються ключовим словом "variable":

Змінна i типу integer приймаюча значення в діапазоні від 0 до 31. Опис діапазону дозволяє точно визначити розрядність змінної, що суттєво економить ресурси кристала. Надання змінної виконується за допомогою знака ":=".

Сигналице дуже важливий клас VHDL. Вони схожі на змінні, АЛЕ фізично мають сенс провідників на друкованій платі. Це означає, що сигнал має певне значення. Описуються сигнали за допомогою ключового слова "signal":

Коментарі ( 24 )

Зараз штовхатиму ногами)) Ви говорили що самі вивчали мову і чекаєте критику, я теж сам вивчав мову, критикуватиму, або пояснювати.

Призначення одного сигналу можна виконати лише один раз.

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

Сигнали потрібні для зв'язку між процесами однієї архітектури, оскільки змінні (variable) видно тільки всередині процесу.

Чому ви вчилися? у мене це була книга "Основи мови VHDL" Бібіл П.М.