Школа розробки апаратури цифрової обробки сигналів на ПЛІС

Школа розробки апаратури цифрової обробки сигналів на ПЛІС

Ст. Стешенко, Г. Шишкін, А. Євстифєєв, Ю. СедякінЗаняття 4. Мова опису апаратури VHDL

Як уже зазначалося в попередніх заняттях, зростаючий ступінь інтеграції ПЛІС, нові концепції проектування (система на кристалі) накладають свій відбиток на способи опису проекту на ПЛІС. Мови опису апаратури (Hardware Description Language) є формальним записом, який може бути використаний на всіх етапах розробки цифрових електронних систем. Це можливо через те, що мова легко сприймається як машиною, так і людиною. Він може використовуватися на етапах проектування, верифікації, синтезу та тестування апаратури так само, як і для передачі даних про проект, модифікації та супроводу. Існує кілька різновидів цих мов: AHDL, VHDL, VerilogHDL, Abel та ін. Відомі також випадки використання стандартних мов програмування, наприклад, Си, для опису структури БІС.

Ряд мов опису апаратури (AHDL, Abel) призначені для опису систем на ПЛІС, інші спочатку з'явилися як засіб моделювання цифрових систем, а потім стали інструментом їх опису.

Однією з найбільш універсальних мов опису апаратури є VHDL, перший стандарт якого було розроблено у 1983–1987 роках за спонсорства міноборони США. Цією мовою можливий як поведінковий, так структурний та потоковий опис цифрових схем.

VHDL підтримує три різні стилі для опису апаратних архітектур.

Перший — структурний опис (structural description), у якому архітектура представляється як ієрархії пов'язаних компонентів.

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

І, нарешті, поведінковий опис (behavioral description), в якому перетворення описується послідовними програмними пропозиціями, які схожі на наявні в будь-якій сучасній програмування високого рівня. Всі три стилі можуть спільно використовуватись в одній архітектурі.

Структурний та потоковий опис використовується в основному для проектування цифрових схем, поведінковий — тільки для моделювання, оскільки містить конструкції, які неможливо реалізувати у вигляді схеми.

Найбільш важливими у мові VHDL є поняття паралелізму та ієрархії.

ОБ'ЄКТ ПРОЕКТУ (entity) є описом компоненти проекту, що має чітко задані входи і виходи і виконує чітко визначену функцію. Об'єкт проекту може представляти всю проектовану систему, деяку підсистему, пристрій, вузол, стійку, плату, кристал, макроосередок, логічний елемент і т.п. проекту нижчого рівня. Таким чином, кожен компонент об'єкта проекту може бути пов'язаний із об'єктом проекту нижчого рівня. В результаті такої декомпозиції користувач будує ієрархію об'єктів проекту, що представляють весь проект загалом і складається з кількох рівнів абстракцій. Така сукупність об'єктів проекту називається ієрархією проекту (design hierarchy).

Кожен об'єкт проекту складається, як мінімум, з двох різнихтипів описів: опис інтерфейсу та одного або більше архітектурних тіл. Інтерфейс описується в ОГОЛОШЕННІ ОБ'ЄКТУ ПРОЕКТУ (entity declaration) і визначає лише входи та виходи об'єкта проекту.

Для опису поведінки об'єкта чи його структури служить АРХІТЕКТУРНЕ ТІЛО (architecture body). Щоб задати, які об'єкти проекту використані для створення повного проекту, використовується ОГОЛОШЕННЯ КОНФІГУРАЦІЇ (configuration declaration).

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

Сигнал має поточне значення подібно до змінної. Він також має минулу історію значень, на які розробник може побажати послатись, а також безліч майбутніх значень, які будуть отримані від формувачів сигналів. Нові значення сигналів створюються пропозиціями призначення сигналів. Кожен об'єкт в описі повинен асоціюватися з одним і лише одним типом. Тип складається з безлічі можливих значень та безлічі операцій. Є операції двох видів. Деякі операції є зумовленими, це, наприклад, оператори “+”, “-“ для значень типуinteger. Інші операції явно кодуються VHDL; наприклад, може бути написана функція підпрограма Max, яка повертає найбільший із двох цілих аргументів. Тип об'єкта представляє інформацію, яка остаточно визначається на момент запису моделі. Ця інформація сприяє виявленню невідповідностей у тексті без звернення до моделювання. Наприклад, легко виявити та відзначити спробу призначення булевого значення (True або False) цілої змінної. Новезначення, яке має бути створене пропозицією призначення, визначається виразом у правій частині. Вирази використовуються також і в інших контекстах: наприклад, як умова у реченніif. До складу виразу можуть входити константи, змінні, сигнали, оператори та покажчики функцій. Коли ім'я об'єкта використовується у виразі, при розрахунку значення виразу враховується його поточне значення.

Розглянемо деякі приклади опису цифрових схем на VHDL.

Прикладом опису цифрового автомата є перетворювач паралельного коду на послідовний. Перетворювач коду являє собою пристрій, на вхід якого подається n-бітове число в паралельному коді "d", сигнал завантаження "load" та синхроімпульс "clk". За сигналом завантаження відбувається запис вхідного слова у внутрішній регістр і послідовна видача протягом n тактів цього вхідного слова в послідовному коді на виході "про" синхроімпульс "oclk". Після закінчення перетворення на виході "e" з'являється високий рівень сигналу протягом одного такту. Такі перетворювачі коду часто використовуються управління синтезаторами частот 1104ПЛ1 та їм подібними.

Опис цього пристрою на мові VHDL наведено на врізці 1.

По передньому фронту синхроімпульсу “clk” при рівні на вході завантаження відбувається завантаження трьох старших біт вхідного слова d[3..1] в тимчасовий регістр s[2..0]. Молодший біт вхідного слова d[0] подається вихід "o". На виході "oclk" з'являються синхроімпульси. На сигналі “i” зібрано внутрішній лічильник, що видає сигнал закінчення “e”. При надходженні наступних синхроімпульсів відбувається видача на вихід “o” інших біт вхідного слова, які у регістрі s[2..0].

Моделювання цього пристроюбуло проведено у системі проектування OrCAD 9.0.

Для тестування схеми використовувався тест (врізання 2).

Результати моделювання подано на рис. 1.

школа

Як приклад опису пристрою ЦОС розглянемо цифровий КІХ-фільтр.

Робота цифрового КІХ-фільтра описується різницевим рівнянням

yn = A0xn + A1xn-1 + A2xn-2+.

де yn - Реакція системи в момент часу n; xn - вхідний вплив; Ai - ваговий коефіцієнт i-ої вхідної змінної.

На VHDL опис фільтра має вигляд, показаний на врізанні 3.

Вхідні дані зчитуються з входу din[7..0] у додатковому коді переднього фронту синхросигналу “c”.

На сигналах x0 - x23 побудований зсувний регістр, що забезпечує затримку даних на 24 такти. Сигнали з регістрів множаться на вагові коефіцієнти h0 і h23 і підсумовуються.

Для тестування схеми використано тест, показаний на врізанні 4.

Тест моделює подачу на цифровий фільтр аналога d-функції. На виході фільтра – його імпульсна характеристика.

Результати моделювання подано на рис. 2.

розробки

У наступному занятті ми розглянемо використання мови AHDL для опису проектів на ПЛІС ALTERA.