ЛР3 > Синтез дешифратора адреси на стенді Altera UP2

Тема: Синтез дешифратора адреси

Мета роботи: Отримання навичок синтезу та моделювання заданих комбінаційних схем в САПР Altera Quartus II.

Завдання

Завдання №1

Синтезувати комбінаційну схему дешифратора адреси із заданими параметрами в САПР Altera Quartus II в режимі графічного редактора (Graphic Editor). Провести дослідження часових параметрів отриманої схеми (Simulator).

Завдання №2

Створити схему для перевірки функції дешифратора згідно свого варіанта.

Завдання №3

Використовуючи налагоджувальний модуль UP2, перевірити і записати таблицю істинності для даного дешифратора.

Методичні вказівки

Дешифратор адреси (ДшА) – це комбінаційна схема з М-входами та 1-виходом, що формує на виході ” 1” в тому випадку, коли число, що подається на його входи, потрапляє в зазначений, при проектуванні ДшА діапазон.

Дешифратор адреси, наприклад, використовується в системах з Загальною Шиною, коли всі елементи системи одночасно до неї підключені. В такому випадку, запит потрапляє до всіх елементів відразу, але обробляється тільки тим, чия адреса співпала з адресою, що містяться в запиті. Число входів М при цьому залежить від кількості адресованих елементів, максимальне число яких дорівнює 2М.

Інший приклад, це коли дешифратор адреси використовується як один з функціональних блоків плат вводу-виводу.

Виконання лабораторної роботи можна розділити на наступні етапи:

  1. На основі заданих параметрів визначається фіксована і змінна частина адреси.
  2. Для фіксованої частини адреси: будується булева функція.
  3. Для змінної частини адреси:

    • будується карта Карно;

    • по карті Карно розраховується булева функція.

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, .. a11AND Y(a0, a1, .. a3)

де функція Z – дешифрує з діапазону старшу частину адреси, а Y – дешифрує з діапазону молодшу частину адреси.

  1. Будуємо булеву функцію (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)

Pic14.01_23.58.31

За методом Карно, здійснюємо склеювання наступних рядків і стовпчиків:
Стовпчик 00 (терм ), стовпчик 11 (терм ), рядок 00 и 01 (терм ), рядок 01 и 11 (терм ). Отриманний результат: 
Здійснюємо перевірку:
Візьмемо три адреси 0х1, 0х6 , 0xA.
0x1: 0001 – 
0x6: 0110 – 
0xA: 1010 – 
Булева функція для змінної частини адреси складена правильно.
3. Об’єднуємо три функції в одну:

За отриманою функцією будуємо схему, замінюючи логічні функції, відповідними елементами. Зображення схеми побудованої в Altera Quartus II наведено на Рис.1.
Вихідний файл схеми (lab3.gdf).
sistem
Рис.1. Схема синтезованого дешифратора вредакторі Graphic Editor (Altera Quartus II)

На рис. 2 відображено результати роботи схеми і відгук дешифратора на вхідний вплив. На вхід по шині адреси A[11..0] подаються адреси в діапазоні 0xEFE – 0xF11. На виході CS можна бачити відгук дешифратора на нього. Вихідний файл lab3.sсf

graph
Рис.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)

Контрольні запитання

  1. Від чого залежить максимальна частота роботи схеми і як вона пов’язана з часом затримки спрацьовування?
  2. Який зв’язок між таблицею істинності функції і картою Карно?
  3. Якому закону булевої алгебри відповідає операція мінімізації за методом карт Карно?
  4. За замовчуванням, Simulator здійснює симулювання роботи схеми протягом 1 мкс. Як змінити цей параметр?
  5. Що являють собою карти Карно? Які клітини містять карти Карно, нумерація клітин.
  6. В клітинки карти Карно для трьох змінних внесіть відповідні їм мінтерми.
  7. Які клітинки карти Карно називаються сусідніми? Які карти Карно називаються сусідніми?
  8. Які клітинки карти Карно можна об’єднувати в куби? Скільки клітинок може бути об’єднано в куби?
  9. Сформулюйте задачу мінімізації функцій алгебри логіки за допомогою карт Карно.
  10. Чи може одна клітинка карти Карно бути кубом?
  11. Як складаються карти Карно для функцій з числом змінних >4?Які карти Карно є сусідніми?
  12. Як складаються карти Карно для функцій з числом змінних> 4?Які клітини в різних картах Карно є сусідніми?
  13. ДДНФ не повністю визначеної функції. Як проводиться довизначення таких функцій при мінімізації? Наведіть приклад.

Варіанти завдань

 

Варіант № Початок діапазону Кінець діапазону Виключення Варіант № Початок діапазону Кінець діапазону Виключення
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