Проектування комбінаційних логічних схем в базисі ПЛІС

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 1 файл

Проектування комбінаційних логічних схем в базисі ПЛІС.docx

— 1.65 Мб (Скачать документ)

 

Таблиця 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


 

Синтез  структури дешифратора, як і будь-якого  іншого перетворювача кодів, починається  з запису таблиці відповідності  вхідних і вихідних кодів. Нехай  необхідно перетворити двійковий  код 21 у код «1 з 4». Тоді таблиця 2.3 цілком визначає значення виходів для усіх вхідних наборів. Далі випливає для кожної вихідної функції скласти карту Карно і одержати її мінімізований вираз. У розглянутому прикладі у цьому намає сенсу, тому що для кожної функції уІ карта Карно містить тільки одну «1», тому відповідний їй мінтерм і є мінімальною формою. Тоді на підставі таблиці 2.3 запишемо:

 

 (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:

 

Рис. 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 – Функціональна схема двійково-десяткового дешифратора в базисі І-НІ

2.3 Розробка структурної схеми системи дешифратора

Ми маємо отримати двійково-десятковий дешифратор. Отже у нас є 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

Информация о работе Проектування комбінаційних логічних схем в базисі ПЛІС