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 bit/s
АЦП с мультиплексором
fs = 1/(n·(tc + tset))
UART
Tb = 1/baud; 8N1 = 10 бит на байт; byte/s = baud/число бит в кадре
Делитель скорости передачи
baud = fclk/(16·D)
Метод
Запишите, что дано: частоту дискретизации, частоты сигналов, число разрядов, диапазон входа, скорость в бодах.
В задачах на дискретизацию сравнивайте каждую частоту с fs/2; более высокая частота появляется как fa = |f − k·fs| с ближайшим кратным fs.
В задачах на разрешение найдите 1 LSB = VFSR/2ᴺ или наименьшее N, при котором 2ᴺ ≥ диапазон/разрешение.
Для скоростей передачи данных и каналов UART считайте всё, что передаётся: каналы, отсчёты в секунду, биты или целые байты на отсчёт, а также стартовые, контрольные и стоповые биты каждого кадра.
2Тренировочные задачи
1.Системы счисленияСредняя
Установите биты так, чтобы они хранили −18 в 8-битном дополнительном коде. Чему равно значение комбинации U, если читать её как число без знака?
N = −188 bit
U =
2.Системы счисленияСложная
Установите биты в 8-битный результат операции 1100 0100 AND 0111 0101. Чему равно значение результата R в десятичной системе?
1100 0100AND0111 0101
R =
3.Цифровая логика: вентили, карты Карно и триггерыСредняя
С помощью карты Карно найдите минимальную форму «сумма произведений» (SOP) для F(A, B, C, D) = Σm(0, 3, 4, 6, 7, 10, 12). Сколько всего литералов, L, она содержит (переменная со штрихом считается одним литералом)?
F(A, B, C, D) = Σm(0, 3, 4, 6, 7, 10, 12)
L =
4.Цифровая логика: вентили, карты Карно и триггерыСложная
Триггер JK, срабатывающий по переднему фронту, начинает с Q = 0 и получает показанные входы на 6 передних фронтах тактового сигнала. Сколько раз, N, Q меняет состояние?
Q₀ = 0JK
N =
5.Сбор данных и дискретизацияСредняя
8-разрядный АЦП с диапазоном входа от 0 до 3,3 V отбрасывает остаток: его выходной код равен ⌊Vin/LSB⌋ при 1 LSB = VFSR/2ᴺ. Найдите десятичный выходной код D для входного напряжения 0,88 V.
N = 8VFSR = 3,3 VVin = 0,88 V
D =
6.Сбор данных и дискретизацияСложная
Датчик температуры выдаёт 10 mV/°C (0 V при 0 °C). Его сигнал усиливается в 20 раз и подаётся на 10-разрядный АЦП с диапазоном от 0 до 10 V (1 LSB = VFSR/2ᴺ). Найдите изменение температуры ΔTLSB, соответствующее одному LSB.
S = 10 mV/°CG = 20N = 10VFSR = 10 V
ΔTLSB = °C
3Растворы
1.Системы счисления
Ответ: U = 238
Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.
Инвертируйте и прибавьте единицу
18 = 0001 0010
инвертировано: 1110 1101
+1 → 1110 1110
Прочитайте как беззнаковое
1110 1110₂ = 256 − 18 = 238
Ответ
U = 238
2.Системы счисления
Ответ: R = 68
Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.
Бит за битом
AND даёт 1 только там, где оба бита равны 1.
1100 0100
AND 0111 0101
= 0100 0100
Значение результата
0100 0100₂ = 68
Ответ
R = 68
3.Цифровая логика: вентили, карты Карно и триггеры
Ответ: L = 16
Карты Карно: клетки упорядочены по коду Грея (00, 01, 11, 10), поэтому соседние клетки, включая те, что через края, отличаются ровно одной переменной. Группируйте единицы в прямоугольники по 1, 2, 4, 8 или 16 клеток, как можно большие и в как можно меньшем числе, пока не будет покрыта каждая единица. Каждая группа — один член-произведение: переменные, которые внутри неё остаются постоянными. Группа из 2ᵏ клеток теряет k переменных. Безразличные состояния (X) можно использовать, чтобы увеличить группы, но покрывать их не обязательно. Если группировать нули, получится минимальная форма POS.
Сгруппируйте единицы
Каждая группа — прямоугольник из 2ᵏ клеток; клетки на краю соседствуют с клетками на противоположном краю.
BC′D′
A′C′D′
A′CD
A′BD′
AB′CD′
Минимальная форма SOP
F = BC′D′ + A′C′D′ + A′CD + A′BD′ + AB′CD′
L = 16
Ответ
L = 16
Существует другая группировка того же размера; в ней то же число членов и литералов.
4.Цифровая логика: вентили, карты Карно и триггеры
Ответ: N = 2
Триггеры и счётчики: триггер меняется только по активному фронту тактового сигнала. 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.
Разрешение АЦП: N-разрядный преобразователь делит свой диапазон полной шкалы VFSR на 2ᴺ кодов, от 0 до 2ᴺ − 1. Один шаг равен 1 LSB = VFSR/2ᴺ: это наименьшее изменение, которое преобразователь может показать. АЦП с отбрасыванием остатка выдаёт код ⌊Vin/LSB⌋; АЦП с округлением никогда не отличается от истинного значения больше чем на ½ LSB, это его ошибка квантования. Каждый дополнительный разряд уменьшает LSB вдвое и добавляет примерно 6 dB к идеальному отношению сигнал/шум квантования SQNR = 6,02·N + 1,76 dB для синусоиды на полной шкале. Чтобы получить разрешение r в некотором диапазоне, выберите наименьшее N, для которого 2ᴺ ≥ диапазон/r.
Шаг квантования
1 LSB = 3,3/28 = 12,89 mV
Код
Vin/LSB = 880/12,89 = 68,27
код = ⌊68,27⌋ = 68
Ответ
D = 68
В двоичном виде это 01000100.
6.Сбор данных и дискретизация
Ответ: ΔTLSB = 0,04883 °C
Разрешение АЦП: N-разрядный преобразователь делит свой диапазон полной шкалы VFSR на 2ᴺ кодов, от 0 до 2ᴺ − 1. Один шаг равен 1 LSB = VFSR/2ᴺ: это наименьшее изменение, которое преобразователь может показать. АЦП с отбрасыванием остатка выдаёт код ⌊Vin/LSB⌋; АЦП с округлением никогда не отличается от истинного значения больше чем на ½ LSB, это его ошибка квантования. Каждый дополнительный разряд уменьшает LSB вдвое и добавляет примерно 6 dB к идеальному отношению сигнал/шум квантования SQNR = 6,02·N + 1,76 dB для синусоиды на полной шкале. Чтобы получить разрешение r в некотором диапазоне, выберите наименьшее N, для которого 2ᴺ ≥ диапазон/r.