Тема: Синтез дешифратора адреси
Мета роботи: Отримання навичок синтезу та моделювання заданих комбінаційних схем в САПР Altera Quartus II.
Завдання
Завдання №1
Синтезувати комбінаційну схему дешифратора адреси із заданими параметрами в САПР Altera Quartus II в режимі графічного редактора (Graphic Editor). Провести дослідження часових параметрів отриманої схеми (Simulator).
Завдання №2
Створити схему для перевірки функції дешифратора згідно свого варіанта.
Завдання №3
Використовуючи налагоджувальний модуль UP2, перевірити і записати таблицю істинності для даного дешифратора.
Методичні вказівки
Дешифратор адреси (ДшА) – це комбінаційна схема з М-входами та 1-виходом, що формує на виході ” 1” в тому випадку, коли число, що подається на його входи, потрапляє в зазначений, при проектуванні ДшА діапазон.
Дешифратор адреси, наприклад, використовується в системах з Загальною Шиною, коли всі елементи системи одночасно до неї підключені. В такому випадку, запит потрапляє до всіх елементів відразу, але обробляється тільки тим, чия адреса співпала з адресою, що містяться в запиті. Число входів М при цьому залежить від кількості адресованих елементів, максимальне число яких дорівнює 2М.
Інший приклад, це коли дешифратор адреси використовується як один з функціональних блоків плат вводу-виводу.
Виконання лабораторної роботи можна розділити на наступні етапи:
-
На основі заданих параметрів визначається фіксована і змінна частина адреси.
-
Для фіксованої частини адреси: будується булева функція.
-
Для змінної частини адреси:
• будується карта Карно;
• по карті Карно розраховується булева функція.
4. Об’єднуються функцій фіксованої і змінної частин адреси.
5. З використанням графічного редактора пакета MAX PLUS(Graphic Editor) за отриманою булевої функцією будується схема.
6. Виконується компіляція схеми (Compiler).
7. За допомогою редактора WaveForm Editor задаються зовнішні впливи, необхідні для перевірки працездатності схеми. В даному випадку необхідно, щоб на входи подавалися всі адреси, на які має реагувати ДшА, і кілька інших адрес для перевірки їх відсікання схемою.
8. Запускається симулятор роботи схеми (Simulator).
9. Вимірюються тимчасові затримки, що виникають при роботі схеми. Вимірювання затримок можна проводити як вручну в WaveForm Editor, так і за допомогою Timing Analyzer.
Приклад виконання лабораторної роботи
Варіант №1. Необхідно синтезувати дешифратор 12-розрядної адреси, з діапазоном адрес 0xF00 – 0xF0F, виключаючи адреси 0xF06 и 0xF0A.
Синтезуємо булеву функцію, що описує роботу дешифратора адреси (F). З метою зниження числа змінних для методу карт Карно визначаємо фіксовану і змінну частину заданого діапазону. Для нашого завдання фіксована частина – це 0xF0 (старші 8 біт). Змінна частина: 0х0 – 0хF (молодші 4 біта).
F(a0, a1, .. a11) = Z(a4, a5, .. a11) AND Y(a0, a1, .. a3)
де функція Z – дешифрує з діапазону старшу частину адреси, а Y – дешифрує з діапазону молодшу частину адреси.
-
Будуємо булеву функцію (Z) для фіксованої частини адреси:
Якщо записати таблицю істинності для функції Z, то ми отримаємо таблицю розміру 256 x 8. Функція видаватиме істинне значення тільки при рівності вхідних аргументів величині 0xF0 (або в двійковому вигляді: 11110000).
Даній адресі відповідає булева функція
.
При підстановці адреси у функцію отримуємо:
2. Будуємо булеву функцію (Y) для змінної частини адреси:
Запишемо для неї таблицю істинності:
A3 | A2 | A1 | A0 | Y |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Будуємо для неї карту Карно для 4-х змінних (). По вертикалі (
) , по горизонталі (
). Відмічаємо клітинки, що потрапляють в заданий діапазон символом (X), а клітини що в нього не потрапляють символом (0)
За методом Карно, здійснюємо склеювання наступних рядків і стовпчиків:
Стовпчик 00 (терм ), стовпчик 11 (терм
), рядок 00 и 01 (терм
), рядок 01 и 11 (терм
). Отриманний результат:
Здійснюємо перевірку:
Візьмемо три адреси 0х1, 0х6 , 0xA.
0x1: 0001 –
0x6: 0110 –
0xA: 1010 –
Булева функція для змінної частини адреси складена правильно.
3. Об’єднуємо три функції в одну:
За отриманою функцією будуємо схему, замінюючи логічні функції, відповідними елементами. Зображення схеми побудованої в Altera Quartus II наведено на Рис.1.
Вихідний файл схеми (lab3.gdf).
Рис.1. Схема синтезованого дешифратора вредакторі Graphic Editor (Altera Quartus II)
На рис. 2 відображено результати роботи схеми і відгук дешифратора на вхідний вплив. На вхід по шині адреси A[11..0] подаються адреси в діапазоні 0xEFE – 0xF11. На виході CS можна бачити відгук дешифратора на нього. Вихідний файл lab3.sсf
Рис.2. Вхідний сигнал і відгук дешифратора в Waveform Editor (Altera Quartus II)
За допомогою засобів Waveform Editor проводимо замір тимчасових затримок на кожному переключенні із зазначенням коду переключення (див. рис. 3).
Приклад:
T (0xF05 – 0xF06) = 6.0 нс.
T (0xF06 – 0xF07) = 6.0 нс.
Рис.3. Вимірювання затримок переключення в Waveform Editor (Altera Quartus II)
Результати вимірювання затримок переключення елементів за допомогою Timing Analyzer показані на рис. 4. При використанні даного методу відпадає необхідність в ручному вимірі затримок переключення, тому що їх всі можна знайти в зведеній таблиці затримок.
Рис.4. Timing Analyzer (Altera Quartus II)
Контрольні запитання
- Від чого залежить максимальна частота роботи схеми і як вона пов’язана з часом затримки спрацьовування?
-
Який зв’язок між таблицею істинності функції і картою Карно?
-
Якому закону булевої алгебри відповідає операція мінімізації за методом карт Карно?
-
За замовчуванням, Simulator здійснює симулювання роботи схеми протягом 1 мкс. Як змінити цей параметр?
-
Що являють собою карти Карно? Які клітини містять карти Карно, нумерація клітин.
-
В клітинки карти Карно для трьох змінних внесіть відповідні їм мінтерми.
-
Які клітинки карти Карно називаються сусідніми? Які карти Карно називаються сусідніми?
-
Які клітинки карти Карно можна об’єднувати в куби? Скільки клітинок може бути об’єднано в куби?
-
Сформулюйте задачу мінімізації функцій алгебри логіки за допомогою карт Карно.
-
Чи може одна клітинка карти Карно бути кубом?
-
Як складаються карти Карно для функцій з числом змінних >4?Які карти Карно є сусідніми?
-
Як складаються карти Карно для функцій з числом змінних> 4?Які клітини в різних картах Карно є сусідніми?
-
ДДНФ не повністю визначеної функції. Як проводиться довизначення таких функцій при мінімізації? Наведіть приклад.
Варіанти завдань
Варіант № | Початок діапазону | Кінець діапазону | Виключення | Варіант № | Початок діапазону | Кінець діапазону | Виключення |
1 | 0xF00 | 0xF0F | 0xF06, 0xF0A | 33 | 0x502 | 0x50A | 0x505, 0x504 |
2 | 0xF10 | 0xF1E | 0xF1A, 0xF1B | 34 | 0x41C | 0x41F | 0x41D, 0x41E |
3 | 0xD23 | 0xD2F | 0xD28, 0xD29 | 35 | 0x328 | 0x32C | 0x329, 0x32A |
4 | 0xC30 | 0xC34 | 0xC30, 0xC33 | 36 | 0x230 | 0x23E | 0x23A, 0x23C |
5 | 0xB41 | 0xB4E | 0xB44, 0xB4D | 37 | 0x143 | 0x14B | 0x145, 0x149 |
6 | 0xA55 | 0xA59 | 0xA57, 0xA58 | 38 | 0x051 | 0x05A | 0x053, 0x054 |
7 | 0x961 | 0x96F | 0x964, 0x96B | 39 | 0xF69 | 0xF6F | 0xF6A, 0xF6E |
8 | 0x873 | 0x87D | 0x876, 0x87A | 40 | 0xE73 | 0xE7E | 0xE75, 0xE7A |
9 | 0x78A | 0x78F | 0x78B, 0x78C | 41 | 0xD81 | 0xD8D | 0xD82, 0xD84 |
10 | 0x692 | 0x699 | 0x696, 0x697 | 42 | 0xC90 | 0xC9C | 0xC93, 0xC98 |
11 | 0x5A7 | 0x5AF | 0x5A9, 0x5AC | 43 | 0xBA5 | 0xBAB | 0xBA8, 0xBAA |
12 | 0x4B4 | 0x4B8 | 0x4B5, 0x4B6 | 44 | 0xAB4 | 0xABA | 0xAB8, 0xAB9 |
13 | 0x3C8 | 0x3CE | 0x3CA, 0x3CB | 45 | 0x9C2 | 0x9C9 | 0x9C7, 0x9C8 |
14 | 0x2D3 | 0x2DC | 0x2D6, 0x2DA | 46 | 0x8DA | 0x8DE | 0x8DB, 0x8DC |
15 | 0x1E4 | 0x1EB | 0x1E6, 0x1E9 | 47 | 0x7E4 | 0x7E8 | 0x7E6, 0x7E7 |
16 | 0x0FB | 0x0FF | 0x0FE, 0x0FD | 48 | 0x6F1 | 0x6F7 | 0x6F4, 0x6F5 |
17 | 0xFE1 | 0xFE9 | 0xFE2, 0xFE6 | 49 | 0xF45 | 0xF4F | 0xF45, 0xF49 |
18 | 0xED0 | 0xEDA | 0xED4, 0xED8 | 50 | 0xE54 | 0xE57 | 0xE55, 0xE56 |
19 | 0xDC2 | 0xDCB | 0xDC5, 0xDC9 | 51 | 0xD38 | 0xD3D | 0xD39, 0xD3A |
20 | 0xCB4 | 0xCBF | 0xCB8, 0xCBB | 52 | 0xC60 | 0xC66 | 0xC63, 0xC65 |
21 | 0xB00 | 0xB05 | 0xB02, 0xB03 | 53 | 0xB19 | 0xB1E | 0xB1A, 0xB1C |
22 | 0xA95 | 0xA9D | 0xA97, 0xA9A | 54 | 0xA21 | 0xA29 | 0xA25, 0xA28 |
23 | 0x988 | 0x98F | 0x989, 0x98B | 55 | 0x953 | 0x958 | 0x955, 0x957 |
24 | 0x861 | 0x86E | 0x868, 0x86A | 56 | 0x864 | 0x867 | 0x865, 0x866 |
25 | 0x753 | 0x759 | 0x755, 0x757 | 57 | 0x775 | 0x77C | 0x777, 0x779 |
26 | 0x64A | 0x64F | 0x64B, 0x64C | 58 | 0x641 | 0x64E | 0x645, 0x64B |
27 | 0x531 | 0x535 | 0x532, 0x534 | 59 | 0x51B | 0x51F | 0x51C, 0x51E |
28 | 0x424 | 0x42B | 0x427, 0x428 | 60 | 0x42C | 0x42F | 0x42D, 0x42E |
29 | 0x315 | 0x31A | 0x318, 0x319 | 61 | 0x34A | 0x34F | 0x34B, 0x34D |
30 | 0x201 | 0x207 | 0x203, 0x206 | 62 | 0x280 | 0x285 | 0x283, 0x284 |
31 | 0x1F2 | 0x1FA | 0x1F6, 0x1F9 | 63 | 0x102 | 0x109 | 0x107, 0x108 |
32 | 0x0E9 | 0x0EF | 0x0EA, 0x0EC | 64 | 0x045 | 0x04A | 0x046, 0x048 |