Лабораторний практикум з дослідження цифрових пристроїв на основі САПР MAX+PLUS II, страница 32

Низка однотипних елементів і їх назв для стислості може бути оголошена у вигляді окремого модуля, який  позначається символом групи. Наприклад, масив адресних сигналів і відповідних їм портів а3, а2, а1, а0 можна зобразити групою a[3..0]. Згідно із синтаксисом мови AHDL групу становить символічне ім’я (до 32 символів) і діапазон групи (до 256 складників, тобто бітів), який подається у квадратних дужках: старший біт, дві крапки, молодший біт. Ім’я біта може містити до трьох цифр. Після оголошення діапазону певної групи її можна позначати в наступних виразах стенографічно, без зазначення цього діапазону: а[].

Прирівнювання груп означає, що складники з’єднуються відповідно до позицій у групах, наприклад, рівність груп a[3..0] = sel[7..4]  відповідає з’єднанню елементів а3 = sel7, а2 = sel6, а1 = sel5, а0 = sel4. Отже, кількість бітів у лівій і правій частинах рівняння має бути однаковою. Проте всю групу можна приєднати до одного вузла, тоді всі її складники з’єднуються з цим вузлом. Якщо, наприклад, d[6..4] = GND, то d6 = GND, d5 = GND, d4 = GND. Але якщо в позначенні група прирівняна до десяткової одиниці: d[6..4] = 1, то компілятор розширює число у двійковій системі до розміру групи В”001”, отже молодший розряд з’єднується з джерелом живлення, а інші – із землею: d[6..4] = 1 = В”001”, тому d6 = GND, d5 = GND, d4 = VCC. 

F  Примітки:

1. Часто використовувану змінну х у текстовому редакторі не можна застосовувати без індексу, у тому числі для позначення групи типу x[], бо ця літера є зарезервованою (невизначений стан).

2. Своєрідний узагальнений запис типу data[WIDTH-1..0] означає групу з кількості елементів WIDTH (ширина), розташованих у порядку від старшого біта до молодшого. Такий запис є легітимним, якщо параметр WIDTH визначений попередньо в секції Parameters Statement. Наприклад, якщо WIDTH = 8, то групу data[WIDTH-1..0]  можна зобразити у вигляді data[7..0].

3. Діапазон з одного складника, наприклад, а[2] є еквівалентний запису а2.

4. Звичайний порядок бітів у діапазоні (від старшого до молодшого) можна змінити в секції Options Statement шаблонуAHDL Template.

5. Діапазон можна позначати числами в будь-якій системі числення або арифметичними виразами, наприклад, а[В”11”..В”00”] або а[log2(8)..0].

4.1.2.2 Послідовні групи

Застосовується також послідовне позначення групи з переліку елементів, відокремлених комами і взятих у круглі дужки (у текстовому редакторі), наприклад, масив адресних (селекторних) входів: (d, c, b, a) = (а3, а2, а1, а0) = а[3..0]. При комбінованому запису групи в межах круглих дужок можуть бути елементи, що є, у свою чергу, також групами. Таке зображення є зручним для позначення портів зразка функції, наприклад, вхідні порти мультиплексора-селектора 16:1 зручно позначити групою мх.(g, sel[3..0], d[15..0]). Крім того, діапазон групи можна поділити на піддіапазони, наприклад, діапазон d[15..0] еквівалентний формі (d[15..9]), d8, d[7..0]).

4.1.2.3 Двовимірні групи

Дводіапазонні або двовимірні групи складаються із символічного імені і двох діапазонів у квадратних дужках. Наприклад, група a[3..1][1..0] аналогічно двовимірній матриці складається із шістьох елементів і є еквівалентною послідовному зображенню у вигляді множини складників (аi_j):

Окремий вузол такої групи може позначатися як a2_1 або a[2][1]. Після оголошення діапазонів групу можна позначати стисло: а[][].

4.1.2.4 Шини

Шиною передається множина сигналів від 2 до 256 бітів між компонентами проекту. У графічному редакторі шина позначається грубою лінією (рис. 4.4, а), а в текстовому редакторі (рис. 4.4, б) і редакторі часових діаграм (рис. 4.4, в) – групою. Назви шин можуть бути одно- та дводіапазонні або послідовні і підпорядковуватися правилам, викладеним у п. 4.1.2. Зазначимо тут особливості подання шин у графічному редакторі.

Приєднання шини до примітива утворює масив примітивів, наприклад, масив з чотирьох портів а3, а2, а1 та а0 на рис. 4.4, а). Проте порт можна позначати лише однодіапазонною групою, не припускаються дводіапазонні та послідовні групи в назвах портів.