Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЦП-навч.пос.елекрон..doc
Скачиваний:
10
Добавлен:
16.05.2015
Размер:
954.88 Кб
Скачать

3.2 Проектування лічильників з довільним модулем лічби

1 Перетворення двійкових лічильників у недвійкові шляхом примусового скидання. Якщо в n-розрядному двійковому лічильнику з модулем 2n виключити Мн = 2nМ надлишкових станів, то він перетвориться в недвійковий з модулем М < 2n. Тому потрібна кількість розрядів n двійкового лічильника для утворення недвійкового з модулем М обчислюється в САПР як

n = Ceil (log2M), (3.5)

де Ceil (Ceiling – стеля) – найближче ціле число, що не менше виразу в дужках, наприклад,Ceil(log25) = 3. Або простіше вручну розрядність можна визначити з умови

2n-1 < М < 2n, (3.6)

наприклад, недвійковий лічильник з модулем М = 5, виходячи з 22 < 5 < 23, можна утворити з трирозрядного двійкового лічильника, якщо усунути Мн = 2nМ = 23 – 5 = 3 надлишкові стани.

Існує кілька методів перетворення двійкових лічильників у недвійкові залежно від способу усунення надлишкових станів. Лічильник з природним порядком лічби утворюється виключенням старших надлишкових станів N = M, … , 2n – 1 шляхом примусового скидання двійкового лічильника. Принцип такого перетворення розглянемо спочатку на ІС жорсткої структури, коли приступними є лише її зовнішні виводи, зокрема, вхід скидання двійкового лічильника R (рис. 3.8,а). З надходженням лічильних імпульсів С вихідний код зростає в межах N = 0, 1, ..., М і перетворюється в дешифраторі в унітарний код. Коли на виході, номер якого збігається з модулем лічби М, з’являється активний рівень RM, лічильник скидається до нуля і далі цикл лічби повторюється. Стан N = М, в якому лічильник перебуває короткочасно, не використовується, тому кількість фіксованих станів N = 0, 1, ... , М – 1 становить потрібний модуль лічби М.

Приклад 1.Методику проектування розглянемо на прикладі перетворення двійкового лічильника в декадний з модулем М = 10.

1) За співвідношеннями (3.5, 3.6) визначаємо потрібну кількість розрядів n = 4 і вибираємо ІС лічильника зі входом скидання.

2) Для наочності зазначаємо в перемикальній таблиці (рис. 3.8,б), що коли лічильник переходить до стану N = М = 10, виникає сигнал скидання RM = 1, яким він повертається до нульового стану, тому старші коди N = 11 ... 15 не використовуються.

3) Мінімізуємо звичайним чином за діаграмою термів шукану функцію RM = Q1Q3, згідно з якою дешифрування виконує елемент І (рис. 3.8,в).

Проте якщо сигнал RM подати безпосередньо на вхід скидання лічильника R, певні його розряди можуть скинутися раніше інших, внаслідок чого на виході елемента І встановиться пасивний рівень, коли лічильник не встигне повністю обнулитися. У випадку можливості такої небезпеки слід розширити сигнал RM затримкою на виході елемента І, наприклад, за допомогою додаткового тригера (див. рис. 3.8,в). Вихідним кодом N = Q[3..0] = = 1010 = А16 встановлюється сигнал RM = 1 (рис. 3.8,г), позитивним перепадом якого тригер перемикається до стану Q = 1 і запам’ятовує його до надходження нового імпульсу С. За цей час лічильник надійно обнуляється, а за позитивним перепадом наступного імпульсу С тригер скидається до стану Q = 0, відновлюється пасивний рівень на вході R лічильника, тому за негативним перепадом імпульсу С починається новий цикл лічби.

2 Програмовані недвійкові лічильники. Програмований лічильник за методом примусового скидання двійкового лічильника можна побудувати заміною дешифратора в узагальненій схемі перетворення (див. рис. 3.8,а) на цифровий компаратор (рис. 3.9,а). Коли, під час лічби вихідний код N сягає потрібного модуля M, сигналом RM лічильник обнуляється, а з надходженням наступних імпульсів на вхід C цикл лічби повторюється.

Рис. 3.9

Приклад 2.Особливості проектування програмованого лічильника такого типу розглянемо на прикладі змінюваного модуля лічби M = 5 і M = 7. За максимальним модулем M = 7 вибираємо розрядність лічильника n =3, а за кількістю модифікацій модуля – розрядність керувального коду. У прикладі достатньо обмежитися однорозрядним керувальним кодом m: за його значення m = 0 програмуємо модуль на величину M = 5, а за значення m = 1 – на величину M = 7. Якщо кількість модифікацій модуля не перевищує чотирьох, вибираємо дворозрядний керувальний код m1m0, якщо восьми – трирозрядний код m2m1m0 і т. д.

Аналогічно рис. 3.8,б складаємо перемикальну таблицю (рис. 3.9,б), в якій зазначаємо, що лічильник скидається сигналом RM = 1, коли він опиняється в проміжних станах Q2Q1Q0 = 5 при m = 0 та Q2Q1Q0 = 7 при m = 1. Також позначаємо десяткові значення наборів змінних і = mQ2Q1Q0, за якими будуємо діаграму термів (рис. 3.9,в). Відтак мінімізуємо функцію, застосовуючи для спрощення редукцію

, (3.7)

та складаємо схему (рис. 3.9,г). Затримка комбінаційної частини зазвичай достатня для надійного обнуління лічильника (рис. 3.9,д), але, у разі потреби, імпульси скидання розширюють, наприклад, на кшталт рис. 3.8,в.

На основі трирозрядного двійкового лічильника можна створити програмований лічильник з модулем лічби M = 2 ... 8 із застосуванням керувального коду m2m1m0 шляхом узагальнення (3.7):

, (3.8)

отже, узагальненням (3.8) також і для лічильника довільної розрядності.

3 Перетворення двійкових лічильників у недвійкові шляхом модифікації структури. Слід враховувати, що під час примусового скидання виникають проміжні стани лічильника, тому вихідний код можна знімати по закінченні перехідного процесу його усталення. Цей недолік усувають в програмованих ІС шляхом модифікації структури лічильника.

Приклад 3.Принцип такої модифікації розглянемо на прикладі перетворення двійкового лічильника за основною схемою на D-тригерах у лічильник з програмованим модулем лічби М = 2 ... 8.

З цією метою на входах тригерів Dі (рис. 3.10,а) увімкнено додаткові елементи І та за допомогою елемента І-НЕ формується керувальний сигнал DM. Під час лічби залишається рівень DM = 1, який не впливає на функції збудження тригерів, а коли вихідний код набуває значення М – 1, цей рівень змінюється на DM = 0, тому з надходженням чергового лічильного імпульсу лічильник скидається до нульового стану. Для програмування на потрібний модуль лічби достатньо з’єднати зі входами елемента І-НЕ виходи розрядів відповідно до коду М – 1. Так, лічильник з модулем М = 5 дістанемо реалізацією числа М – 1 = 410 = 1002 = (див. рис. 3.10,а). Паралельний лічильник з довільним модулем такого типу перемикається, як і двійковий, без проміжних станів під час зміни вихідного коду (рис. 3.10,б).

Перевагою лічильників з керованим скиданням є природний порядок лічби, тобто їх можна використовувати за прямим призначенням – для підраховування кількості імпульсів. Проте коли порядок лічби не має значення, наприклад, у подільниках частоти, застосовують також способи перетворення двійкових лічильників у недвійкові шляхом усунення проміжних або молодших станів. В останньому випадку по досягненні максимального коду (всі розряди в одиничному стані) здійснюють примусове нараховування коду на кількість надлишкових станів зі входів передустановлення лічильника. Це спрощує дешифрування за ознакою негативного перепаду на виході старшого розряду.

Рис. 3.10