Брояч от T-тригери
T-тригерът с T = 1 се обръща на всеки фронт, т.е. дели честотата на 2 (тема 21). Ако след него сложим втори, който се обръща при всяко спадане на първия, той дели още на 2. Четири такива тригера правят двоичен брояч: Q0 е младшият бит и се сменя на всеки такт, Q1 – на всеки втори, Q2 – на всеки четвърти. Заедно показват броя на тактовете в двоичен код, от 0 до 15, и после пак от 0. Като километража на колата: всяко колелце се завърта, когато предишното мине от максимума към нулата.
Колко различни числа минава броячът, преди да се повтори, е модулът на броене N ≤ 2ⁿ. Видовете броячи са:
- по бройната система – двоични, десетични (BCD – 10 от 16-те състояния), с произволен модул;
- по посоката – сумиращи, изваждащи и реверсивни (вход U/D);
- по превключването – асинхронни, синхронни и комбинирани.
След 5 такта броячът показва 5.
C Q0 Q1 Q2 Q3
Всяка следваща линия е с два пъти по-ниска честота: Q0 = f/2, Q1 = f/4, Q2 = f/8, Q3 = f/16. Затова броячът е и делител на честота. Така кварцовият часовник прави 1 Hz от 32 768 Hz с 15 тригера. Отдолу нагоре битовете дават числото, после броячът минава 15 → 0 и започва отначало.
Асинхронен и синхронен: пълзящият пренос
Най-простият брояч е асинхронният: всеки тригер се тактува от изхода на предишния (от Q – сумиращ, от Q̄ – изваждащ). Евтино е, но закъсненията се трупат. При прехода 0111 → 1000 първо пада Q0, после той сваля Q1, после Q1 сваля Q2 и чак тогава се вдига Q3. За тези наносекунди броячът показва грешни числа. Ако след брояча има дешифратор (тема 18), той може да даде фалшив импулс. Най-лошото време е tQmax = n·tQ: расте с броя на тригерите.
Синхронният брояч подава такта на всички тригери наведнъж. Кой да се обърне решава логика: i-тият се обръща, ако всички по-младши са 1, Tᵢ = Q0·Q1·…·Qᵢ₋₁. С паралелен пренос (по едно И с много входове за всеки разряд) всички преходи стават заедно, за около едно tQ, независимо от n. С последователен (верига от И през входа CE) е по-евтино, но веригата ограничава fmax.
Тук броячът е с 4 тригера, а гледаме най-лошия преход: от 011…1 към 100…0. След фронта броячът минава през 7 → 6 → 4 → 0 → 8 и се успокоява за 71 ns. Тук тригерът превключва за 10 ns, а инверторът към следващия тригер добавя още 10 ns.
C Q0 Q1 Q2 Q3
При асинхронния брояч битовете падат един след друг като домино. Всяко стъпало е грешно число. С 8 тригера всичко трае 150 ns: по 20 ns на стъпало. При синхронния всички битове се сменят в един и същи миг, за 10 ns при всяко n.
Съкратен брояч: да брои до K
Часовникът брои секундите до 60, а зарът – до 6. Брояч с модул K < 2ⁿ се прави с детектор на състояние: И-НЕ (тук И), на който единиците на K влизат директно, а нулите – през инвертор. Щом броячът стигне K, детекторът дава 1 и нулира брояча асинхронно (входа MR). Така K се появява само за наносекунди и броячът брои 0…K − 1. Другият начин е брояч със зареждане: при достигане на края (изход TC, terminal count) в него се записва начално число.
Ако нулирането и зареждането са и синхронни, и асинхронни, важи приоритетът: асинхронно нулиране → асинхронно установяване → синхронно нулиране → синхронно установяване → броене.
Тук K = 10, а детекторът е Q3·Q̄2·Q1·Q̄0. Броячът показва поред: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7.
C Q0 Q1 Q2 Q3 R
Червената игличка е детекторът: броячът стига K, детекторът го вижда и веднага го нулира. За K = 10 това е десетичен брояч, а K = 6 е зарът по-долу. Игличката е и слабото място на начина: трае само колкото закъсненията. Ако някой тригер се нулира по-бавно, другите може да не го дочакат. Затова в истинските чипове тя се удължава или нулирането е синхронно.
Заръд
Брояч до 6 тече с 1 kHz, докато държиш бутона. Пускаш го, когато решиш, но не можеш да уцелиш нарочно миг от една хилядна от секундата. Затова числото е практически случайно, а всяко от шестте е еднакво вероятно.
Докато бутонът е натиснат, цифрите текат. Тук са забавени, за да се вижда, че текат, а истинският брояч е много по-бърз. Пусни бутона и броячът спира на 0…5, а на дисплея се показва с единица повече: от 1 до 6.
Самопроверка
1. Колко тригера трябват за брояч до 60?
2⁵ = 32 < 60 ≤ 64 = 2⁶ → 6 тригера (с детектор на 60).
2. Кварц 32 768 Hz – колко T-тригера трябват за 1 Hz?
32 768 = 2¹⁵ → 15 тригера.
3. Защо асинхронният брояч е бавен?
Всеки тригер се тактува от предишния – закъсненията се събират: tQmax = n·tQ. През това време броячът показва грешни междинни числа.
4. Как се прави брояч с модул 13 с детектор на състояние?
13 = 1101: Q3, Q2 и Q0 директно, Q1 през инвертор → И-НЕ → MR. При 13 броячът се нулира и брои 0…12.
5. Какво се променя, за да брои броячът надолу?
Преносите (тактовете към следващия тригер) се взимат от Q̄ вместо от Q – изваждащ брояч. Реверсивният избира с U/D.