Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 14:05, курсовая работа
Програмовані логічні інтегральні схеми є одним із найцікавіших і швидко розвиваючих напрямків сучасної цифрової мікроелектроніки. За останнє десятиліття спостерігалося бурхливе зростання ринку цих пристроїв та суттєве поліпшення їх характеристик. Прогнози в цій галузі на найближчий час видаються найбільш оптимістичними.
ВСТУП 6
РОЗДІЛ 1 АНАЛІТИЧНИЙ РОЗДІЛ 8
1.1 Застосування програмованих логічних схем 8
1.2 Порівняльна характеристика CPLD фірм Xilinx та Altera 10
1.3 Мікросхеми стандартної дискретної логіки та їх застосування 10
РОЗДІЛ 2 РОЗРОБКА АПАРАТНИХ ПІДСИСТЕМ 11
2.1 Особливості побудови CPLD 11
2.2 Формування вимог до системи дешифратора 12
2.3 Розробка структурної схеми системи дешифратора 23
РОЗДІЛ 3 ПРОЕКТНО-РОЗРАХУНКОВИЙ РОЗДІЛ 28
3.1. Способи подання даних в системах кодування 28
3.2 Порівняння швидкодії систем на базі сімейств CPLD фірми Xilinx 28
3.3 Розробка VHDL моделі дешифратора 28
ПЕРЕЛІК СКОРОЧЕНЬ, СИМВОЛІВ ТА СПЕЦІАЛЬНИХ ТЕРМІНІВ 30
ВИСНОВКИ 31
СПИСОК КОРИСТАНИХ ДЖЕРЕЛ 32
ДОДАТКИ 34
Таблиця 2.2 – Перетворення десяткових чисел у код 8421
Десяткове число |
Вхідний код x9x8x7x6x5x4x3x2x1x0 |
Код 8421 y3y2y1y0 |
* |
0000000000 |
0000 |
0 |
0000000001 |
0000 |
1 |
0000000010 |
0001 |
2 |
0000000100 |
0010 |
3 |
0000001000 |
0011 |
4 |
0000010000 |
0100 |
5 |
0000100000 |
0101 |
6 |
0001000000 |
0110 |
7 |
0010000000 |
0111 |
8 |
0100000000 |
1000 |
9 |
1000000000 |
1001 |
Сегмент а визначається наборами коду 8421 у такий спосіб як на рис. 2.7:
Рис. 2.7 – Визначення сегменту а
Аналогічно одержимо булеві вирази для інших сегментів:
Схема перетворювача коду 8421 у код семисегментного індикатора реалізована на елементах І НІ, показана на рис. 2.9.
Рис. 2.8 – Семисегментні індикатори
Частковим випадком перетворювача кодів шифратор пристрій, що забезпечує видачу визначеного коду у відповідь на сигнал одного з входів. Шифратори широко використовуються для перетворення десяткових цифр буквених символів у двійковий код при введенні інформації в ЕОМ і інші цифрові пристрої.
Розглянемо приклад побудови шифратора для перетворення десяткових чисел у код 8421 згідно таблиці 2.2. Вхідними є двійкові змінні x0,…,x9, котрі формуються при натисканні відповідної клавіші пристрою введення. Змінні є незалежними і дозволяють побудувати 210 =1024 вхідних комбінацій, але якщо накладається обмеження, що забороняє натискання двох і більш клавіш, то з 1024 залишається 11 припустимих вхідних комбінацій. Відповідний даному обмеженню вхідний код називають кодом «1 з n» чи унітарним. У таблиці 2.2 натиснутій клавіші відповідає «логічна 1», а не натиснутій «логічний 0». Дві перших вхідних комбінації породжують той самий двійковий код 0000. Відмінність між ними полягає в тому, що при натисканні клавіші «0», як і при введенні інших цифр, у пристрої повинна формуватися команда введення і запам'ятовування чергової десяткової цифри.
Рис. 2.9 – Схема перетворювача коду 8421 у код семисегментного індикатора реалізована на елементах І НІ
Як видно з таблиці 2.2, двійкова змінна у0 приймає значення «1», якщо «1» з'являється на х1 чи вході на вході х3, чи х5 чи х7, чи х9. При всіх інших вхідних комбінаціях у0 = 0, тобто в термінах алгебри логіки:
(2.1 а)
Аналогічно запишемо для інших входів:
(2.1 б)
(2.1 в)
(2.1 г)
Відповідно до приведених рівностей (2.1) шифратор можна реалізувати в базисі АБО-НІ (рис. 2.10 а, б) або в базисі І-НІ (рис. 2.10 в, г).
Рис. 2.10 – Реалізація шифратора в базисі: a, б) АБО-НІ; в,г) І-НІ
Зворотне перетворення двійкового коду в код «1 з n» виконують перетворювачі коду, названі дешифраторами. Найбільш широко дешифратори використовуються в пристроях виведення інформації з ЕОМ і інших цифрових пристроїв на зовнішні пристрої візуалізації і документування алфавітно-цифрової інформації. Для цього потрібно подати сигнал на 1 з n наприклад, катодів газорозрядного індикатора чи елементів вибірки символів друкуючого пристрою.
Таблиця 2.3 – Перетворення двійкового коду 21 у код «1 з 4»
Вхідний код 21 x1 x0 |
Вихідний код "1 з 4" y3 y2 y1 y0 |
0 0 |
0 0 0 1 |
0 1 |
0 0 1 0 |
1 0 |
0 1 0 0 |
1 1 |
1 0 0 0 |
Таблиця 2.4 – Перетворення двійкового коду 8421 у код “1 з 10”
Вихідний код 8421 x3 x2 x1 x0 |
Вихідний код "1 з 10" y0,…,y9 |
0 0 0 0 |
1000000000 |
0 0 0 1 |
0100000000 |
0 0 1 0 |
0010000000 |
0 0 1 1 |
0001000000 |
0 1 0 0 |
0000100000 |
0 1 0 1 |
0000010000 |
0 1 1 0 |
0000001000 |
0 1 1 1 |
0000000100 |
1 0 0 0 |
0000000010 |
1 0 0 1 |
0000000001 |
Синтез
структури дешифратора, як і будь-якого
іншого перетворювача кодів, починається
з запису таблиці відповідності
вхідних і вихідних кодів. Нехай
необхідно перетворити
(2.2 а)
(2.2 б)
(2.2. в)
(2.2. г)
Вираз (2.2) можна реалізувати в елементному базисі I-НІ (рис. 2.11 а, б) або базисі АБО-НІ (рис. 2.11 в).
Рис. 2.11 – Реалізація виразу (2.2) в базисах: а,б) І-НІ; в) АБО-НІ
Якщо число входів m і число виходів n дешифратора зв'язані співвідношенням n = 2m, то виходи визначені для всіх двійкових наборів і дешифратор називається повним. У випадку n < 2m дешифратор називається неповним. Приклад неповного дешифратора - перетворювач двійкового коду 8421 у код «1 з 10» згідно таблицею 2.4.
Оскільки
6 з 16 можливих вхідних наборів не
визначені, мається можливість довільним
до визначенням карти Карно
Рис. 2.12 – Спрощення функцій y2 i y8
Аналогічно спрощуються функції у3,...,у9. З огляду на те що функції у0 і у1 не спрощуються, у чому легко можна переконатися, побудувавши для них карти Карно, остаточно запишемо логічні функції, що повинний реалізувати синтезований десятковий дешифратор:
(2.3 а)
(2.3 б)
(2.3 в)
(2.3 г)
(2.3 д)
(2.3 е)
(2.3 є)
(2.3 ж)
(2.3 з)
(2.3 и)
Відповідний десятковий дешифратор реалізований на основі логічних елементів АБО-НІ (рис. 2.13).
Рис. 2.13 – Функціональна схема двійково-десяткового дешифратора в базисі АБО-НІ
Відзначимо, що в мінімізованому варіанті дешифратора не допускається подача на його вхід кодів 8421, що не ввійшли в таблицю 2.4. Так, якщо на вхід дешифратора на рис. 2.13 подати код 1011, то одночасно на двох виходах у3, і у9 встановлюються «логічні 1». Таким чином, якщо на входах дешифратора можуть подаватися будь-які з 2m комбінацій і не допускається одночасне збудження більш ніж одного з його n < 2m виходів, спрощення схеми описаним методом неприпустимо і кожна з вихідних функцій повинна бути визначена повним набором вхідних змінних. У такому неповному дешифраторі (як приклад на рис. 2.14 показаний варіант на елементах І-НІ) «зайві» вхідні комбінації не збуджують жоден з його виходів: y0=y1=…=y9=0
Рис. 2.14 – Функціональна схема двійково-десяткового дешифратора в базисі І-НІ
Ми маємо отримати двійково-десятковий дешифратор. Отже у нас є 4 входи і 9 виходів. Таблиця істинності дешифратора показана в таблиці 2.5.
Таблиця 2.5 – Таблиця істинності двійково-десяткового дешифратора
Входи |
Виходи | ||||||||||||
x3 |
x2 |
x1 |
x0 |
y9 |
y8 |
y7 |
y6 |
y5 |
y4 |
y3 |
y2 |
y1 |
y0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Функції виходів:
;
;
;
;
;
;
;
;
;
.
Мінімізувавши функції виходів отримаємо:
;
;
;
;
;
;
;
;
;
;
Використовуючи МДНФ будуємо структурну схему двійково-десяткового дешифратора. Вона відображена на риc. 2.15.
Рис. 2.15 – Структурна схема двійково-десяткового дешифратора
Для виведення числа ми будемо використовувати семи сегментний індикатор який зображений на рис. 2.2. Таблиця істинності перетворення двійкового коду у код семи сегментного індикатора відображена в таблиці 2.5.
Таблиця 2.5 – Перетворення двійкового коду у код семи сегментного індикатора
Десяткове число |
Двійковий код |
Код семисегментного індикатора | |||||||||
x3 |
x2 |
x1 |
x0 |
a |
b |
c |
d |
e |
f |
g | |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
8 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Информация о работе Проектування комбінаційних логічних схем в базисі ПЛІС