Стилі програмування

Зміст Наступна

Вивчення VHDL

Стилі програмування

Мова VHDL надає програмістові широкі можливості для вираження того, що він задумав. Той самий проект можна описати по-різному, але одержати однакові результати. Якщо характер цих розходжень вибудовується в деяку систему, то говорять, що програма написана певним стилем.

Нижче розглядаються основні вироблені стилі програмування на VHDL.

Вхідним блоком будь-якого транслятора є синтаксичний аналізатор (parser). Його головна функція – визначити, чи написаний даний текст такою-то мовою, чи ні (мовляв, чи є помилки і де саме), і, якщо так, – то надати граматичний розбір. Йому байдуже те, що цей текст означає і його форма написання, тобто його семантика і стилістика. Власне компіляція означає підстановку ланцюжків бібліотечних компонентів замість значимих операторів і виразів відповідно до їх семантики. Стилістика програми VHDL розпізнається тільки компіляторами-синтезаторами. І лише в тому сенсі, що вони відмовляються компілювати програми, які не відповідають синтезованому стилю. Зокрема , тут утвердився характерний стиль опису регістрів і блоків пам’яті.

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

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

Нарешті, в архітектурі, описаній тільки операторами вставки компонента, безпосередньо закодована структура проектованого пристрою. Самі оператори відповідають структурним блокам, а сигнали, пов’язані з портами – лініям зв’язку між цими блоками. Тому говорять, що така архітектура описана структурним стилем.

Природньо, що архітектури, описані різними стилями, можуть мати довільну кількість операторів generate і block. Часто зустрічаються архітектури, описані змішаним стилем.

В програмах, призначених для синтезу, регістри і інші схеми з пам’яттю можна описати тільки за допомогою оператора процесу або вставкою компонента з пам’яттю. Так як в архітектурі, описаній стилем потоків даних, немає операторів процесів, то така архітектура описує комбінаційну схему. Виключенням є випадок, підтримуваний деякими компіляторами, коли регістр задається оператором block зі операторами стримування паралельного присвоювання, вираз стримування якого є умовою дозволу запису.

Гарним стилем програмування вважається, коли в ієрархічному проекті об’єкти верхніх рівнів описуються тільки структурним стилем.

Стиль програмування розробників може відрізнятися відповідно до їх смаків.

Наприклад, багато хто, особливо початківці, віддають перевагу стилю потоків даних із застосуванням операторів процесу тільки для опису регістрів. Такий стиль дає пряму аналогію між програмою і логічною схемою. Для багатьох розробників цей стиль перекочував з технології програмування ПЛМ.

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

Але занадто великий і неструктурований процес може стати заплутаним, а синтезована по ньому схема – неоптимальною (посібник по синтезатору іноді попереджає про це). У цьому єдиний недолік такого стилю. У цьому плані корисна порада із програмування на Сі: – програмний модуль повинен бути не великим і не маленьким, а таким, щоб містився в полі зору. Тому оптимальний по величині оператор процесу повинен займати не більше 1 сторінки тексту.

Анатолій Сергієнко
E-mail: aser@comsys.kpi.ua