Реалізація виразу в апаратній моделі VHDL

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

Вивчення VHDL

Реалізація виразу в аппаратній моделі VHDL

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

Логічні операції реалізуються у відповідних елементах: and – в елементі “І”, not – елементі “НІ” і т.д. При операціях над бітовими або булевськими даними реалізуються одиночні логічні елементи. При виконанні операції над операндами регулярного типу кожному елементу операнда ставиться у відповідність один логічний елемент.

Операції рівності й нерівності реалізуються за допомогою відповідного числа елементів “І” з об’єднанням їхніх виходів в елементі “АБО”. Операції “більше” або “більше або дорівнює” виконуються за допомогою багаторазрядної схеми суматора-віднімальника, вихід переповнення якої відповідає булевому результату цієї операції.

Операції додавання, віднімання, зміни знака виконуються за допомогою схеми суматора, а операція множення – за допомогою комбінаційного помножувача. При цьому якщо операнди типу posіtіve, то множення виконується на помножувачі без урахування знака, а якщо типу іnteger – на помножувачі зі знаком.

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

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

Операція конкатенації пари операндів регулярного типу відповідає об’єднанню двох шин,які пересилають ці операнди, в одну шину, що складається з вихідних шин.

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

Якщо операнды оголошені як тип іnteger без діапазону, то їм відповідають 32- розрядні типи і відповідні 32- розрядні схеми реалізації операцій. Для мінімізації устаткування рекомендується прийняти оголошення змінної з діапазоном: наприклад, якщо змінні оголошені як :
varіable a, b: іnteger range (-128 to 127);

то вираз a + b виконується на 8-розрядному суматорі.

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

На мал. показані апаратні схеми, що відповідають виразам

a + b + c + d    і    ( a + b ) + ( c + d ).

Вставка дужок у вираз є одним із засобів керування ходом синтезу, виконуваного компілятором-синтезатором.

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