Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра автоматики і телемеханіки
ЗВІТ
про виконання лабораторної роботи №5
з курсу “Обчислювальна техніка”
“Вивчення основних принципів роботи в середовищі схемного редактора САПР ПЛІС Xilinx Foundation Series”
Варіант №14
Мета роботи: вивчення схемних різновидів регістрів, методів їх аналізу і синтезу.
Завдання:
Ознайомитися з основними відомостями.
Визначити свій варіант завдання. Для цього необхідно номер варіанта (задає викладач) перевести в двійкову систему числення і за Таблицями 11, 12 (тут 1 - молодший розряд двійкового номера варіанту) визначити свої варіанти мікрооперацій і типів логічних елементів для виконання наступного завдання:
На логічних елементах з Таблиці 11 побудувати оптимальні з точки зору складності схеми трьох основних типів регістрів для виконання мікрооперацій, заданих Таблицею 12, а саме: а) синхронний регістр на синхронних D -, T -, або JK - тригерах; б) синхронний регістр на асинхронних RS- або JK- тригерах; в) асинхронний регістр на асинхронних T-, або JK- тригерах.
Зауваження: під умовними позначеннями мікрооперацій в Таблиці 12 слід розуміти наступне: y1 - зсув вліво на один розряд; y2 - зсув вправо на один розряд; y3 - запис слова паралельним кодом; y4 - диз’юнкція; y5 - кон’юнкція; y6 - нерівнозначність; y7 - рівнозначність; y8 - інвертування значень розрядів регістра.
Таблиця 11
Логічні елементи
Пункт завдання
а)
б)
в)
0
0
0
І,АБО,НЕ
2І-НЕ
2АБО-НЕ
0
0
1
3І-НЕ
І,АБО,НЕ
2АБО-НЕ
0
1
0
3АБО-НЕ
3АБО-НЕ
І,АБО,НЕ
0
1
1
І,АБО,НЕ
2АБО-НЕ
2І-НЕ
1
0
0
3І-НЕ
2АБО-НЕ
І,АБО,НЕ
1
0
1
І,АБО,НЕ
3АБО-НЕ
2АБО-НЕ
1
1
0
І,АБО,НЕ
2І-НЕ
3І-НЕ
1
1
1
3І-НЕ
І,АБО,НЕ
І,АБО,НЕ
Таблиця 12
Мікрооперації
Пункт завдання
а)
б)
в)
0
0
0
y1, y3, y4
y3, y8
y3, y7
0
0
1
y2, y3, y5
y3, y7
y3, y8
0
1
0
y1, y3, y6
y3, y5
y3, y4
0
1
1
y2, y3, y7
y3, y4
y3, y5
1
0
0
y1, y3, y4
y3, y6
y3, y4
1
0
1
y2, y3, y5
y3, y8
y3, y7
1
1
0
y1, y3, y6
y3, y7
y3, y8
1
1
1
y2, y3, y7
y3, y6
y3, y5
2.2. Експериментальна частина
Схему регістра, синтезовану в межах пункту 2а теоретичної частини завдання, побудувати в схемному редакторі САПР Foundation Series.
Проконтролювати правильність функціонування регістра за допомогою моделювальника САПР, визначивши значення наступних станів розряду регістра для всіх наборів значень вхідних змінних і попередніх станів розряду регістра.
Замалювати часові діаграми роботи схеми.
Логічні елементи: а) 3І-НЕ;б) І,АБО,НЕ;в) 2АБО-НЕ
Мікро операції: а)у1,у3,у6; б) у3,у7; в) у3,у8
Регістри, на яких виконуються мікрооперації зсуву, називаються регістрами зсуву. Зсув слова може бути здійснено вліво (тобто в бік старших розрядів), або вправо (тобто в бік молодших розрядів) на задану кількість розрядів. Регістри, які мають кола як лівого, так і правого зсуву, називають реверсивними. Мікрооперацію зсуву слова на один розряд вліво описують рівнянням: (за умови, якщо індекс старшого розряду має більше значення, ніж індекс молодшого розряду регістра). За цієї ж умови мікрооперацію зсуву слова на один розряд вправо описують рівнянням: .
Встановлення початкового стану регістра (зокрема нульового) здійснюються як правило через асинхронні установчі входи тригерів.
За допомогою регістрів виконують також інші перетворення інформації, наприклад порозрядні логічні операції: кон’юнкція (); диз’юнкція (); нерівнозначність (); рівнозначність (); інвертування розрядів (); тощо. Переважно порозрядні логічні операції здійснюють над двома аргументами: станом розряду регістра і значенням інформаційного сигналу цього розряду.
00
01
10
11
0
1
0
1
00
01
10
11
0
1
1
0
00
01
10
11
*
0
1
0
0
1
0
*
00
01
10
11
0
1
*
*
*
*
1
0
1-ий етап.
Схеми розрядів регістра з заданими властивостями будемо будувати за структурою, поданою на Рис.3а - адже саме ця структура відображає принцип побудови розрядів синхронного регістра на синхронних тригерах. У відповідності з цією структурою мікрооперації кодуємо позиційним двійковим кодом, кількість розрядів якого (виходячи з кількості мікрооперацій, яка в нашому прикладі дорівнює трьом) дорівнює: . Отже, щоб закодувати різними двійковими кодами всі три задані мікрооперації, нам достатньо двох двійкових розрядів. Назвемо ці розряди s1, s2 і перейдемо до складання таблиці кодування (Таблиця 5). При складанні цієї таблиці кожній мікрооперації ставимо у відповідність довільний код мікрооперації, слідкуючи лише за тим, щоб різним мікроопераціям відповідали різні коди. В таблиці кодування вказуємо також логічні рівняння заданих мікрооперацій.
Таблиця 5
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
s1
s2
0
0
1
0
1
0
2-ий етап.
Складаємо таблицю функціонування (таблицю переходів) i - го розряду регістра -Таблиця 6.
Таблиця 6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
*
1
*
*
1
*
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
*
1
*
*
1
*
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
*
0
*
*
1
*
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
*
1
*
*
0
*
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
*
0
*
*
0
*
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
*
1
*
*
1
*
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
2-ій етап.
Мінімізуємо функції збудження всіх типів тригерів, які враховані в Таблиці 6. Для цього скористаємося методом карт Карно. Враховуємо, що кожна з функцій збудження залежить від тих сигналів, які фігурують в першій частині Таблиці 6. В першій частині таблиці функціонування в нашому прикладі є п’ять стовпчиків - отже кожна функція збудження залежить від п’яти аргументів і тому саме карти Карно на п’ять змінних ми використовуємо при мінімізації.
`
Після мінімізації отримаємо:
(1) (2) ; (3)
Комбінаційну схему потрібно побудувати на елементах 3І-НЕ, тому переводимо рівняння в базис І-НЕ з врахуванням кількості входів логічних елементів:
Схема на елементах 3I-НЕ
Результат роботи схеми на елементах 3І-НЕ
Приклад 2. Побудувати 4-розрядний синхронний регістр для виконання мікрооперацій: y3 - занесення слова паралельним кодом; y1 - зсув вліво на один розряд. Для побудови схеми серед асинхронних RS- , JK- тригерів вибрати такий тригер, застосування якого забезпечить мінімальні апаратні затрати при побудові регістра. При побудові схем можна використовувати логічні елементи І, АБО, НЕ.
1-ий етап: Мікрооперації кодуємо позиційним кодом. Кількість розрядів: ( - задана кількість мікрооперацій). Назвемо розряд коду мікрооперації s і складемо таблицю кодування (Таблиця 7).
Таблиця 7
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
s
0
1
Таблиця 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
*
1
*
1
0
0
0
0
0
*
0
*
*
1
*
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
*
1
*
1
*
1
*
*
0
*
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
*
1
*
*
1
*
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
2-ий етап. Складаємо таблицю функціонування розряду регістра (Таблиця 8)
В першій частині таблиці передбачаємо стовпчик для тактового сигналу, адже згідно вибраної базової структури ми подаємо тактовий сигнал регістра на комбінаційну схему, тобто тактовий сигнал є аргументом функцій збудження тригерів регістра.
3-ій етап. Мінімізуємо методом Карно функції збудження всіх тригерів з Таблиці 8. При цьому враховуємо, що кожна з функцій збудження залежить від п’яти аргументів - при мінімізації використовуємо карти Карно на п’ять змінних
Після мінімізації отримаємо:
; (7)
У відповідності з завданням ми можемо будувати комбінаційну схему на логічних елементах І, АБО, НЕ - отже рівняння (7) додаткових перетворень не потребує. З (7) також випливає, що з точки зору складності обидва варіанти побудови схеми регістра - на JK- і RS- тригерах - є рівноцінними.
Приклад 3. Побудувати чотирирозрядний асинхронний регістр для виконання мікрооперацій: y3 - занесення слова паралельним кодом; y4 - диз’юнкція.
Для побудови схеми серед асинхронних T- , JK- тригерів вибрати такий тип тригера, застосування якого забезпечить мінімальні апаратні затрати при побудові регістра. При побудові комбінаційних схем можна використовувати логічні елементи 2АБО-НЕ.
Таблиця 9
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
y3
y4
1
0
0
1
1-ий етап. Схеми розрядів регістра будуємо за структурою, поданою на Рис.4б - ця структура відображає принцип побудови розрядів асинхронного регістра на асинхрон-них тригерах. Мікрооперації кодуємо дворозрядним (за кількістю мікрооперацій) унітарним кодом - Таблиця 9.
2-ий етап. Складаємо таблицю функціонування i - го розряду регістра (Таблиця 10). Таблицю заповнюємо за тими ж правилами, що і в двох попередніх прикладах. При цьому тактовий сигнал не використовуємо, а при заповненні другої та третьої частин Таблиці 10 користуємося даними відповідно Таблиці 9 і Таблиць 2, 4. Зауважимо, що в тих рядках, в яких , в стовпчик переписуємо значення з стовпчика (забезпечується збереження інформації). Код є забороненим - у відповідних рядках Таблиці 10 можуть бути будь-які значення.
3-ій етап. Мінімізуємо методом Карно функції збудження всіх тригерів з Таблиці 10. При цьому враховуємо, що кожна функція збудження залежить від чотирьох аргументів - при мінімізації використовуємо карти Карно на чотири змінних.
Після мінімізації отримаємо:
; ; (8) З (8) очевидно, що простішою буде схема регістра, побудована на JK- тригерах. Отже саме рівняння для функцій збудження J, K перетворюємо в базис 2АБО-НЕ:
Таблиця 10
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
*
1
*
*
1
*
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
*
1
*
*
1
*
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
(9)
Висновок: я вивчив схеми різновидів регістрів, методів їх аналізу і синтезу.