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

                                                 а)                               б)

Рисунок 3.4 – Принцип побудови шифратора

Принцип побудови і особливості проектування шифраторів розглянемо на прикладі перетворення 4-розрядного унітарного коду у двійковий: вибираємо кількість розрядів двійкового коду n = 2; складаємо скорочену таблицю відповідності (рис. 3.4, а), в якій зазначаємо лише припустимі набори змінних, бо в усіх інших із 24 = 16 рядків таблиці буде міститися більш, ніж одна одиниця у вхідному коді; визначаємо рівняння вихідних функцій

 та будуємо схему (рис. 3.4, б).

На відміну від унітарного коду “1 із К”, у коді “Х із К” може міститися  довільна кількість  одиниць, проте вихідним кодом має  відображатися  лише одна з них, із найбільшим пріоритетом. Код “Х із К” можна також моделювати клавішами, коли можливе натиснення більш ніж однієї з них. Шифратор, що перетворює код “Х із К” у двійковий, називається пріоритетним. Крім вихідного коду Y він може формувати також сигнал запиту на обслуговування GS, який стає активним за надходження хоча б одного з вхідних сигналів. Бібліотека міститьпріоритетні шифратори 10:4 і 8:3 (рис. 3.5).

Рисунок 3.5 – Спеціалізовані макрофункції шифраторів

3.1.5 Елементи арифметики

3.1.5.1 Числа

Мовою AHDL застосовуються числа у звичайних системах числення (табл. 3.1) для зображення постійних значень (параметрів, змінних, номерів) в арифметичних і булевих виразах. При цьому значення набору змінних компілятор перетворює в послідовність двійкових цифр. Проте значення однієї змінної в булевих виразах не можна позначати числом, наприклад, замість виразів типу с = 0 або с = 1 слід вживати с = GND або с=VCC.

Таблиця 3.1

Основа системи числення

Цифри

Приклад

Примітки

Десяткова

0…9

26

Число не береться в лапки

Двійкова

0, 1, Х

В”11010”

Х – довільне значення

Шістнадцяткова

0…F

H”1A”

Варіант: Х”1А”

Вісімкова

0...7

Q”32”

Варіант: О”32”

3.1.5.2 Групи

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

3.1.5.3 Арифметичні оператори

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

Таблиця 3.2

Оператор

Пріоритет

Опис

Приклад

+ (unary – одномісний)

1

додатне число

+1 або 1

–  (unary – одномісний)

1

від’ємне число

–1

^

1

степінь

с ^ 2

DIV

2

ділення

с DIV 2

*

2

множення

с * 2

LOG2

2

логарифм двійковий

LOG2(с)

+

3

додавання

с + 1

3

віднімання

с – 1

== (numeric)

4

числова рівність

а[] == H”1A”

== (string)

4

рядкова рівність

"a" == "b"

!=

4

не дорівнює

с != а + 2

4

більше

с > LOG2(а)

>=

4

більше або дорівнює

с >= а DIV 2 

4

менше

с < а ^ 2

<=

4

менше або дорівнює

с <= а – 2