Проектування цифрових пристроїв на основі САПР QUARTUS II: Практикум, страница 22

2. Вибираємо мультиплексор з кількістю адресних входів k на одиницю менше кількості змінних (у прикладі k=m–1=3, тобто мультиплексор 8:1). До адресних входів приєднуємо змін­ні, від яких функція залежить більшою мірою, тобто формуємо адресний код j (у прикладі j=a2a1a= = x4x2x1) і розбиваємо діаграму функції y на 2k піддіаграм. Для цього у кожну клітинку діаграми j (на рис. 4.2,а нижня діаграма) вписуємо десятковий код j= x4x2x1 відповідно до рисок цих змінних, не звертаючи уваги на аргумент x2, що не входить до адреси. Отже, діаграма виявляється розбитою на 8 піддіаграм (з двох клітинок кожна), які і визначають номери j інформаційних входів мультиплексора, що з'єднуються з виходом y.

3. Визначаємо сигнали dj(х3) на входах мультиплексора як функції вільної змінної, не приєднаної до адресних входів. Для цього зміст клітинок часткових діаграм з номерами j зчитуємо з діаграми у: d0=d2=d3=d7= 0, d1=d4=d5=1, d6=.

4. Згідно з функціями dj будуємо ЦКП (рис. 4.2,б). Легко переконатися, що пристрій функціонує відповідно до діаграми термів. Наприклад, коли х4х2х1 = 0101, тобто і = 5 маємо у2 = d5 =1. Отже, схема виявляється вдвічі простішою відносно рис. 4.1,б – потрібен лише один додатковий інвертор на вході d6.

5. Аналогічно проектуємо ЦКП на мультиплексорі 4:1 меншої розрядності – з двома адресними і чотирма інформаційними входами. До адресних входів приєднуємо дві змінні, від яких функція залежить більшою мірою (у прикладі один з трьох рівноцінних за цим критерієм варіантів), тобто формуємо адресний код j = a1a0 = x2x1 і розбиваємо діаграму функції y на чотири піддіаграми (рис. 4.3,а). Розглядаючи кожну з піддіаграм як діаграму термів функції двох змінних dj(x3, x4) і мінімізуючи звичайним чином, визначаємо сигнали: d1 = 1, d3 = 0, d0 = х4, d2 =. Шляхом порівняння з іншими двома варіантами адресного коду вибираємо перший (рис. 4.3,б) і, порівнюючи його з ЦПП на рис. 4.2,б, вважаємо кращим, бо він потребує простішого мультиплексора без надмірного ускладнення кіл для формування вхідних сигналів (потрібно по одному елементу НЕ та І).

Рисунок 4.3 – Проектування ЦКП на мультиплексорі 4:1

І, нарешті, так само проектуємо ЦКП на мультиплексорі 2:1 (рис. 4.4,а), вибираючи варіант адресного входу j=a= x1:  (рис. 4.4,б). З порівняння можна дійти висновку, що остання реалізація ЦКП потребує менше ресурсу ІС, ніж попередні.

Рисунок 4.4 – Проектування ЦКП на мультиплексорі 2:1

Слід відзначити, що якщо в логічному виразі функції можна винести за дужки спільний аргумент хi, то ЦКП спрощується наданням стробовому входові значення G = хi при використанні мультиплексора-селектора зі звичайним (без третього стану) виходом. Крім того, якщо логічні функції на окремих інформаційних входах мультиплексора виявляються досить складними, то їх у свою чергу також можна реалізувати на мультиплексорах. Побудова ЦКП з кількома виходами зводиться до проектування кількох пристроїв для кожної функції окремо. Якщо з цією метою скористатися ІС мультиплексорів зі спільними адресними входами, цим входам доцільно надати ті змінні, які найбільшу кількість разів входять до обох функцій.

Таблиця 4.1 – Мегафункції логічних елементів

Символ

Основні параметри

Двоспрямовані буфери

enabledt 

enabletr

Напрямок передавання

0

0

1

1

0

1

0

1

tridata[]=Z; result[]=Z

tridata[] à result[]

data[] à tridata[]

data[] à tridata[],

data[] à result[] 

Інвертори

lpm_bustri (Buffer), lpm_inv (NOT Gate):

LPM_WIDTH – розрядність шин і кількість елементів у кожній з них (буферів з трьома станами або інверторів).

Логічні елементи

lpm_or, lpm_and, lpm_xor:

LPM_WIDTH – кількість елементів масиву, вхідних шин і розрядність вихідної шини;

LPM_SIZE - кількість входів кожного елемента, тобто розрядність вхідних шин.

Приклад: LPM_SIZE = 2, LPM_WIDTH =3,

data[LPM_SIZE-1..0][LPM_WIDTH-1..0] =

=data[1..0][2..0], result[LPM_WIDTH-1..0]= result[2..0].