У вікні друку виберіть «Зберегти як PDF», щоб зберегти копію на пристрої.
1Формули та методи
Системи числення
Ваги розрядів
двійкова 2k, вісімкова 8k, шістнадцяткова 16k
У десяткову
Σ dk·bk
З десяткової
діліть на основу, остачі читайте знизу вгору
Шістнадцяткова ↔ двійкова
одна шістнадцяткова цифра = 4 біти
Додатковий код
інвертуйте біти й додайте 1
Цифрова логіка: вентилі, карти Карно та тригери
Базові вентилі
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Правила булевої алгебри
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
Закони де Моргана
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Порядок на карті Карно
00, 01, 11, 10 (Gray code)
Група з 2ᵏ клітинок
втрачає k змінних
Мультиплексор 4-до-1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Тригери
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Лічильники
n-розрядний: 2ⁿ станів; за модулем N: найменше n з 2ⁿ ≥ N; fout = fclk/N
Послідовний лічильник
fmax = 1/(n·tpd)
Кільцевий лічильник і лічильник Джонсона
n і 2n станів
Метод
Для схеми рухайтеся від входів до виходу вентиль за вентилем і записуйте значення на кожному дроті, або запишіть її вираз і заповніть таблицю істинності.
Для спрощення занесіть одиниці (а байдужі стани як X) на карту Карно з рядками й стовпцями в коді Грея: 00, 01, 11, 10.
Покрийте одиниці якомога меншою кількістю якомога більших груп по 1, 2, 4, 8 або 16 клітинок, з переходом через краї; кожна група — це один добуток зі змінних, що лишаються сталими. Для форми POS групуйте нулі.
Для тригерів і лічильників читайте входи на кожному активному фронті такту, записуйте стан після кожного фронту й пам’ятайте, що n-розрядний лічильник переходить через максимум після 2ⁿ станів.
Збір даних і дискретизація
Критерій Найквіста
fs > 2·fmax, fN = fs/2
Частота аліасу
fa = |f − k·fs|, k = round(f/fs)
Розмір кроку
1 LSB = VFSR/2ᴺ
Похибка квантування (округлення)
±½ LSB
Код АЦП з відсіканням
D = ⌊Vin/LSB⌋
Кількість розрядів для роздільності r
2ᴺ ≥ span/r
Ідеальне SQNR, синус на повну шкалу
SQNR = 6,02·N + 1,76 dB
Швидкість передавання даних
канали × fs × N біт/с
АЦП з мультиплексуванням
fs = 1/(n·(tc + tset))
UART
Tb = 1/бод; 8N1 = 10 біт на байт; байт/с = бод/біт у кадрі
Дільник швидкості передавання (бод)
baud = fclk/(16·D)
Метод
Випишіть, що дано: частоту дискретизації, частоти сигналу, кількість розрядів, вхідний діапазон, швидкість у бодах.
У задачах на дискретизацію порівнюйте кожну частоту з fs/2; вища частота виглядає як fa = |f − k·fs| з найближчим кратним fs.
У задачах на роздільність знайдіть 1 LSB = VFSR/2ᴺ або найменше N, для якого 2ᴺ ≥ діапазон/роздільність.
У задачах на швидкість даних і лінії UART враховуйте все, що передається: канали, відліки за секунду, біти чи цілі байти на відлік, а також стартові, паритетні й стопові біти кожного кадру.
2Задачі для практики
1.Системи численняСередня
Встановіть біти так, щоб вони зберігали −96 в 8-бітовому доповняльному коді. Яке значення U шаблону, якщо читати його як беззнакове число?
N = −968 bit
U =
2.Системи численняСкладна
Встановіть біти за 8-бітовим результатом 0111 0000 AND 1110 0001. Яке значення R результату в десятковій системі?
0111 0000AND1110 0001
R =
3.Цифрова логіка: вентилі, карти Карно та тригериСередня
На цій карті Карно рівно одна 1 не має сусідньої 1, тож у мінімальній формі SOP вона лишається групою з однієї клітинки (повний мінтерм із чотирьох літералів). Сусіди через краї карти враховуються. Клікніть цю клітинку.
F = Σm(1, 6, 8, 9, 12, 13, 15)
1AB = 00, CD = 00
2AB = 00, CD = 01
3AB = 00, CD = 11
4AB = 00, CD = 10
5AB = 01, CD = 00
6AB = 01, CD = 01
7AB = 01, CD = 11
8AB = 01, CD = 10
9AB = 11, CD = 00
10AB = 11, CD = 01
11AB = 11, CD = 11
12AB = 11, CD = 10
13AB = 10, CD = 00
14AB = 10, CD = 01
15AB = 10, CD = 11
16AB = 10, CD = 10
4.Цифрова логіка: вентилі, карти Карно та тригериСкладна
D-тригер, що спрацьовує за переднім фронтом, починає з Q = 0 і отримує показані входи на 6 передніх фронтах такту. Скільки разів N змінюється стан Q?
Q₀ = 0D
N =
5.Збір даних і дискретизаціяСередня
Реєстратор дискретизує 4 каналів з частотою 5 кГц кожен 10-розрядним АЦП. Кожен відлік зберігається в цілих байтах. Знайдіть пам’ять M, потрібну для запису тривалістю 5 хв, у МБ (1 МБ = 10⁶ байт).
n = 4fs = 5 kHzN = 10t = 5 min
M = MB
6.Збір даних і дискретизаціяСкладна
12-розрядний АЦП передає кожен відлік через UART зі швидкістю 230400 бод, формат 8N1 (стартовий біт, 8 біт даних, 1 стоповий біт). Кожен відлік надсилається як 2 цілих байт(и), і лінія зайнята весь час. Знайдіть найвищу частоту сигналу fmax, яку можна дискретизувати без аліасингу, у Гц.
baud = 230400 BdN = 128N1
fmax = Hz
3Розчини
1.Системи числення
Відповідь: U = 160
Встановлення бітів: кожен біт має вагу степеня двійки (128, 64, …, 1). Одна шістнадцяткова цифра — це рівно чотири біти, а в 8-бітовому доповняльному коді крайній лівий біт має вагу −128. Порозрядні операції працюють з кожною позицією біта окремо.
Інвертуйте і додайте одиницю
96 = 0110 0000
інвертовано: 1001 1111
+1 → 1010 0000
Прочитайте як беззнакове
1010 0000₂ = 256 − 96 = 160
Відповідь
U = 160
2.Системи числення
Відповідь: R = 96
Встановлення бітів: кожен біт має вагу степеня двійки (128, 64, …, 1). Одна шістнадцяткова цифра — це рівно чотири біти, а в 8-бітовому доповняльному коді крайній лівий біт має вагу −128. Порозрядні операції працюють з кожною позицією біта окремо.
Біт за бітом
AND дає 1 лише там, де обидва біти дорівнюють 1.
0111 0000
AND 1110 0001
= 0110 0000
Значення результату
0110 0000₂ = 96
Відповідь
R = 96
3.Цифрова логіка: вентилі, карти Карно та тригери
Відповідь: AB = 01, CD = 10
Карти Карно: клітинки впорядковано за кодом Грея (00, 01, 11, 10), тож сусідні клітинки, зокрема через краї, відрізняються рівно однією змінною. Групуйте одиниці в прямокутники по 1, 2, 4, 8 або 16 клітинок, якомога більші й у якомога меншій кількості, доки кожну 1 не буде покрито. Кожна група — це один добуток: змінні, що лишаються сталими всередині неї. Група з 2ᵏ клітинок втрачає k змінних. Байдужі стани (X) можна використовувати, щоб групи були більшими, але їх не обов’язково покривати. Групування нулів замість одиниць дає мінімальну форму POS.
Сусіди кожної 1
1 із сусідньою 1 може приєднатися до групи з двох або більше.
m6: m7, m4, m2, m14 → 0
Ізольована 1
m6 = A′BCD′ → AB = 01, CD = 10
Відповідь
AB = 01, CD = 10
4.Цифрова логіка: вентилі, карти Карно та тригери
Відповідь: N = 3
Тригери та лічильники: тригер змінюється лише за активним фронтом такту. D копіює свій вхід (Q⁺ = D); T перемикається, коли T = 1; JK зберігає стан за 00, скидає за 01, встановлює за 10 і перемикає за 11. n-розрядний двійковий лічильник має 2ⁿ станів і рахує за модулем 2ⁿ; лічильник за модулем N рахує 0, 1, …, N − 1 і повертається до 0, і йому потрібне найменше n, для якого 2ⁿ ≥ N тригерів. Кожен ступінь послідовного лічильника ділить частоту навпіл, тож останній вихід лічильника за модулем N має частоту fclk/N. Лічильник Джонсона з n тригерів має 2n станів, кільцевий — n.
Q після кожного фронту
D-тригер копіює D за кожним переднім фронтом: Q⁺ = D.
1: D = 0 → Q = 0
2: D = 0 → Q = 0
3: D = 1 → Q = 1
4: D = 0 → Q = 0
5: D = 1 → Q = 1
6: D = 1 → Q = 1
Порахуйте зміни
0 → 0 → 0 → 1 → 0 → 1 → 1
N = 3
Відповідь
N = 3
5.Збір даних і дискретизація
Відповідь: M = 12 MB
Швидкості даних: кожен канал дає fs відліків за секунду по N біт, тож сира швидкість дорівнює канали × fs × N біт/с. У пам’яті відлік займає цілі байти (12-бітний відлік зберігається в 2 байтах), тож пам’ять для запису дорівнює канали × fs × байти на відлік × час. АЦП з мультиплексуванням перетворює канали один за одним: кожне перетворення (із часом встановлення) триває t, тож один цикл із n каналів триває n·t, а кожен канал дискретизується з частотою 1/(n·t).
Байти на відлік
⌈10/8⌉ = 2 B
Швидкість у байтах
4·5000·2 = 40000 B/s
Пам’ять
M = 40000·300 = 1,2 × 10⁷ B = 12 MB
Відповідь
M = 12 MB
6.Збір даних і дискретизація
Відповідь: fmax = 5760 Hz
UART: асинхронна послідовна лінія передає кожен байт як кадр: один стартовий біт (низький), біти даних, необов’язковий біт парності та один або два стопові біти (високі). Швидкість у бодах — це кількість біт за секунду, тож один біт триває Tb = 1/бод, а кадр із n біт — n/бод. Поширений формат 8N1 має 10 біт на байт. Генератор швидкості ділить тактову частоту: бод = fclk/(16·D) із цілим D, тож реальна швидкість трохи відрізняється від цільової; похибка менш ніж приблизно 2 % зазвичай прийнятна.