а) б)
Рисунок 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 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.