Перехід
|
J
|
K
|
D
|
0→0
|
0
|
*
|
0
|
0→1
|
1
|
*
|
1
|
1→0
|
*
|
1
|
0
|
1→1
|
*
|
0
|
1
|
За даним алгоритмом робимо три синтези
лічильника. Складаємо таблицю функціонування та заповнюємо її таким чином:
розставляємо одиниці так, щоб їх ваги розрядів складали суму десяткового числа
відповідно до номера ітерації. Приклади ми можемо побачити на таблицях 2.1,
2.2, і 2.3. Наступним кроком ми заповнюємо графу «функції збудження» за
допомогою таблиці переходів таблиця 2. Більш детально це можна побачити у вище
згаданих таблицях функціонування лічильника 2.1, 2.2, і 2.3. Виконавши два
перших пункти записуємо діаграми Вейча по функціях збудження об’єднуємо одиниці
та мінімізуємо. Далі згідно завдання приводимо до базису або - ні.
За допомогою метода Квайна вибираємо
найвигідніший варіант складання схеми. Суть метода Квайна полягає у тому, що
рахується мінімальна кількість входів логічних елементів у схемі. Саме цей
варіант і буде найвигіднішим варіантом для моделювання схеми. Вибравши
найвигідніший варіант синтезу, тобто з найменшою кількістю входів (в нашому
випадку це перший синтез лічильника таблиця 2.1) будуємо функціональну схему
автомата [2].
Таблиця 2.1 - Таблиця функціонування лічильника
Десяткова
цифра
|
Вага
розрядів
|
Функції
збудження
|
|
T4
|
T3
|
T2
|
T1
|
J4
|
K4
|
J3
|
K3
|
J2
|
K2
|
D1
|
|
JK
|
JK
|
JK
|
D
|
|
|
|
|
|
|
|
|
5
|
3
|
2
|
1
|
|
|
|
|
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
*
|
0
|
*
|
0
|
*
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
*
|
0
|
*
|
1
|
*
|
0
|
2
|
0
|
0
|
1
|
0
|
0
|
*
|
1
|
*
|
*
|
1
|
0
|
3
|
0
|
1
|
0
|
0
|
0
|
*
|
*
|
0
|
0
|
*
|
1
|
4
|
0
|
1
|
0
|
1
|
1
|
*
|
*
|
1
|
0
|
*
|
0
|
5
|
1
|
0
|
0
|
0
|
*
|
0
|
0
|
*
|
0
|
*
|
1
|
6
|
1
|
0
|
0
|
1
|
*
|
0
|
0
|
*
|
1
|
*
|
0
|
7
|
1
|
0
|
1
|
0
|
*
|
0
|
1
|
*
|
*
|
1
|
0
|
8
|
1
|
1
|
0
|
0
|
*
|
0
|
*
|
0
|
0
|
*
|
1
|
9
|
1
|
1
|
0
|
1
|
*
|
1
|
*
|
1
|
0
|
*
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
|
|
|
|
|
По всіх таблицях функціонування будуємо по сім
діаграм Вейча тому що нам дано один D - тригер і три JK - тригера, D має один
вхід а JK має два входи. Графу «ваги розрядів» заповнюємо за одним і тим же
алгоритмом, але так щоб варіанти заповнень в кожній таблиці хоча б трішки
відрізнялися. Наприклад в першій таблиці таблиця 2.1 число 5 можна так і задати
(поставивши навпроти 5-ки цифру 1), а в другій таблиці (таблиця 2.2) ту ж 5-ку
можна задати (поставивши навпроти 2-ки і 3-ки 1-ці) і такі операцій потрібно
виконати у всіх трьох таблицях, але по різному так щоб комбінації не
повторювалися [1]. Далі по цій таблиці будуємо діаграми Вейча.
Малюнок 2.1.1 - Діаграми Вейча для функцій
збудження. Синтез перший
Заповнюємо діаграми таким чином: спочатку
розставляємо одиниці, потім нулі і зірочки (у діаграмі для D - тригера не може
бути зірочок згідно таблиці переходів ) ті пусті клітинки що залишилися
заповнюємо «Х». Х - це надлишковий стан. Після цього групуємо одиниці, їх можна
групувати з зірочками «*» тому що функція зірочка може приймати будь-яке
значення 0 або 1. Також можна об’єднувати і з «Х».
Записуємо функції збудження для тригерів:
;
;
` ;
;
;
;
;
Далі приводимо до базису. Приведення
до базису потрібно для того щоб зменшити апаратні витрати при побудові схеми,
тобто для реалізації схеми в ППП OrCAD знадобляться елементи тільки одного
типу, а це дає можливість значно спростити функції у інтегральній схемі [1].
;
;
;
;
;
;
;
Записавши функції і привівши
їх до базису АБО - НІ, рахуємо кількість входів за Квайном, щоб визначити
найвигідніший синтез для побудови схеми. Наприклад, рахуємо по наших функціях
записаних вище: , , , , ,. Таким чином, порахувавши всі
входи рахуємо загальну кількість входів на функції збудження, тобто знаходимо
їх суму [4]. Для прикладу беремо знову свої елементи: 0+2+0+0+2+0+2=6. Ті ж самі
операції робимо з наступною таблицею нище, таблиця 2.2.
2.2 СИНТЕЗ 2
Таблиця 2.2 - Таблиця функціонування
лічильника
Десяткова
цифра
|
Вага
розрядів
|
Функції
збудження
|
|
T4
|
T3
|
T2
|
T1
|
J4
|
K4
|
J3
|
K3
|
J2
|
K2
|
D1
|
|
JK
|
JK
|
JK
|
D
|
|
|
|
|
|
|
|
|
5
|
3
|
2
|
1
|
|
|
|
|
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
*
|
0
|
*
|
0
|
*
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
*
|
0
|
*
|
1
|
*
|
0
|
2
|
0
|
0
|
1
|
0
|
0
|
*
|
0
|
*
|
*
|
1
|
3
|
0
|
0
|
1
|
1
|
0
|
*
|
1
|
*
|
*
|
1
|
1
|
4
|
0
|
1
|
0
|
1
|
0
|
*
|
*
|
0
|
1
|
*
|
0
|
5
|
0
|
1
|
1
|
0
|
0
|
*
|
*
|
0
|
*
|
0
|
1
|
6
|
0
|
1
|
1
|
1
|
1
|
*
|
*
|
1
|
*
|
0
|
0
|
7
|
1
|
0
|
1
|
0
|
*
|
0
|
0
|
*
|
*
|
0
|
1
|
8
|
1
|
0
|
1
|
1
|
*
|
0
|
1
|
*
|
*
|
1
|
1
|
9
|
1
|
1
|
0
|
1
|
*
|
1
|
*
|
1
|
0
|
*
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
|
|
|
|
|
Будуємо діаграми Вейча по другій таблиці Малюнок
2.1.2, але перед цим заповнюємо графу «вага розрядів», де нагадуємо, що
заповнювати потрібно за тим самим алгоритмом але іншими числами. Далі
мінімізуємо логічні функції і приводимо їх до базису АБО - НІ.
Малюнок 2.1.2 - Діаграми Вейча для функцій
збудження. Синтез другий
Ділі як і у попередніх синтезі, складаємо
функції збудження та приводимо їх до базису і рахуємо входи за Квайном.
Для того щоб привести будь яку функцію до
потрібного базису необхідно скористатися правилом де Моргана приведення
відбувається в два етапа:
Логічна функція, мінімізована в основному
базисі, представлена в формі КНФ.
Над правою частиною отриманої формули ставиться
два знаки інверсії, і з допомогою формул де Моргана виконується перехід в базис
АБО - НІ [4].
Приклад:
. (21)
;
;
;
;
;
;
;
Приводимо функції до заданого
базису:
;
;
;
;
;
;
;
Кількість входів: , , , , , , .
Загальна кількість входів на функції
збудження: 3+0+2+5+2+2+5=19.
2.3 СИНТЕЗ 3
Аналогічно до виконаних попередніх синтезів
виконуємо останній - третій синтез таблиця 2.3.
Таблиця 2.3 - Таблиця функціонування лічильника
Десяткова
цифра
|
Вага
розрядів
|
Функції
збудження
|
|
T4
|
T3
|
T2
|
T1
|
J4
|
K4
|
J3
|
K3
|
J2
|
K2
|
D1
|
|
JK
|
JK
|
JK
|
D
|
|
|
|
|
|
|
|
|
5
|
3
|
2
|
1
|
|
|
|
|
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
*
|
0
|
*
|
0
|
*
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
*
|
0
|
*
|
1
|
*
|
0
|
2
|
0
|
0
|
1
|
0
|
0
|
*
|
0
|
*
|
*
|
0
|
1
|
3
|
0
|
0
|
1
|
1
|
0
|
*
|
1
|
*
|
*
|
1
|
1
|
4
|
0
|
1
|
0
|
1
|
1
|
*
|
*
|
1
|
0
|
*
|
0
|
5
|
1
|
0
|
0
|
0
|
*
|
1
|
1
|
*
|
1
|
*
|
1
|
6
|
0
|
1
|
1
|
1
|
1
|
*
|
*
|
1
|
*
|
0
|
0
|
7
|
1
|
0
|
1
|
0
|
*
|
0
|
1
|
*
|
*
|
1
|
0
|
8
|
1
|
1
|
0
|
0
|
*
|
0
|
*
|
0
|
0
|
*
|
1
|
9
|
1
|
1
|
0
|
1
|
*
|
1
|
*
|
1
|
0
|
*
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
|
|
|
|
|
Будуємо діаграми Вейча Малюнок 2.1.3 і записуємо
по них функції.
Малюнок 2.1.3 - Діаграми Вейча для функцій
збудження. Синтез третій.
Функції збудження для тригерів:
;
;
;
;
;
;
;
Приводимо до базису АБО - НІ:
;
;
;
;
;
;
;
Знову оцінюємо складність за
Квайном: , , , , , , . Рахуємо загальну кількість входів:
0+5+7+0+7+5+8=32
Виконавши і порівнявши всі три
синтези, ми бачимо, що найпростіший у використанні перший синтез. Він найкращий
для машинного моделювання. Перевага його в тому, що використовується менша
кількість елементів і швидше виконуються операції.
3 МАШИННЕ МОДЕЛЮВАННЯ
Складаємо схему лічильника у
середовищі «OrCAD». Готова схема зображена на малюнку 3.1.
Сигнали потрібно задавати таким
чином: спочатку клікаємо мишкою по іконці Stimulus
- New
Interactive.
У
вікні, що з’явилося у вкладці Basic задаємо вхідні сигнали на R і S входи.
Починати задавати потрібно таким чином: на вхід R ставимо нуль, тобто ставимо
його в нуль, а вхід S ставимо в одиницю, але ні в якому разі не навпаки, тому
схема просто не буде працювати. Сигнали потрібно задавати починаючи R - входу,
з 0 нс. та з «1» начинаючи з 50 нс. Потім відкриваємо вкладку Clock, вибравши
вхід С задаємо вхідні сигнали, встановлюємо в «1» та задаємо 200 нс. так само
задаємо 200 нс. і при встановлення С - входу в «0».
Малюнок 3.2 - часова діаграма роботи лічильника
при періоді 100 нс.
Після того, як ми задали вхідні
сигнали будуємо часову діаграму для цього потрібно відкрити вкладки: Trace
- New
Wave
Window.
Для
того щоб на діаграмі відображалися вхідні і вихідні сигнали потрібно поставити
галочки навпроти пунктів: Input, Output (вхідні, вихідні) [1]. Після цього
потрібно виділити всі виходи Т1, Т2, Т3, та Т4 і згрупувати їх тобто натиснувши
на кнопку New Group, потім у вікні яке з’явиться вводимо назву групи. Виконавши
вище перераховані дії натискаємо кнопку Run після цього на екрані з’явиться
часова діаграма Малюнок 3.2 яка нормально працює при 100 нс.
Але щоб дізнатися мінімальний період роботи
схеми потрібно зменшувати період сигналу на С - вході до тих пір до поки схема
почне функціонувати неправильно. Мінімальний період функціонування ми можемо
побачити на малюнку 3.3.
Малюнок 3.3 - Часова діаграма роботи лічильника
при мінімальному періоді роботи 56 нс.
Малюнок 3.4 - Часова діаграма роботи лічильника
при періоді, менше мінімального
Далі задаємо період менший за мінімальний, для
щоб упевнитись, що схема дійсно буде неправильно працювати, Малюнок 3.4.
Обчислюємо мінімальний період тактового сигналу
за формулою
(3.1)
Згідно формулі підставивши значення
отримуємо:
(3.2)
Малюнок 3.5 - Час реєстрації
лічильника
В завершальному етапі курсової
роботи нам необхідно виміряти час реєстрації лічильника. Час реєстрації
лічильника - це найбільший період часу протягом якого лічильник установиться у
новий стан після дії активного. Розглянувши часову діаграму ми побачили що час
реєстрації складає 40 нс. це добре видно на малюнку 3.5.
ВИСНОВКИ
В даній курсовій роботі було виконано три
синтези двійково - десяткового лічильника, після чого в середовищі ППП OrCAD
була змодельована схема за першим синтезом.
В пункті 1 ми приділили більше уваги теорії,
дали визначення, що таке лічильник, привели приклад підсумовувального та
віднімального лічильника, сказали кілька слів про тригери та їх види і де вони
використовуються.
В пункті 2 ми синтезували лічильник, спочатку по
таблиці переходів склали та заповнили таблиці функціонування автомата, після
цього нарисували та заповнили діаграми Вейча для кожного із заданих тригерів.
Потім провівши мінімізацію отримали функції, нище привели їх до базису АБО -
НІ. Теж саме ми зробили ще два рази для того щоб вибрали найвигідніший варіант
побудови схеми. Найвигіднішим та найпростішим варіантом синтезу став перший,
так як у ньому складність за Квайном 6.
Після того як ми з’ясували по якому синтезу
будемо складати схему переходимо до пункту 3. По результатах першого синтезу за
допомогою пакету прикладних програм OrCAD будуємо лічильник. Після того як
схема лічильника була побудована ми перевірили її на працездатність, тобто чи
працює схема вірно. Результати роботи представлені на рисунках вище. При
затримці 100 нс. схема працює вірно, далі ми зменшували період сигналу на С -
вході до тих пір до поки вона почала працювати невірно, але перед цим ми
визначили мінімальний період при якому лічильник ще працює він склав 56 нс.
Наступним і завершальним кроком ми визначили час
реєстрації лічильника він становить 40 нс. тепер порівнявши часову діаграму з
першою таблицею функціонування ми побачили, що лічильник працює вірно, тож можна
зробити висновок, що поставлене завдання курсової роботи було виконано в
повному обсязі.
ПЕРЕЛІК ПОСИЛАНЬ
синтез лічильник тригер
Пєтух
А., Обідник Д. Схемотехніка ЕОМ. - Вінниця: ВДТУ 1999.
Самофалов
К. Г. и др. Цифровые электронные вычислительные машины. - Киев: Высш. шк.,
1989.
Кучумов
А.И. Электроника и схемотехника. 2-е изд. Гелиос, 2004 г. 336с.
Бойко
В.И. и др. Схемотехника электронных систем. Цифровые устройства.СПБ: БХВ -
Петербург, 2004 г. 512с.
Бирюков
С.А. Радиолюбительские цифровые устройства. - Москва: «Радио и связь», 1982 г.
72с.