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.Системы счисленияСредняя
8-битная комбинация 1110 1100 хранит целое число со знаком в дополнительном коде. Каково его значение N в десятичной системе?
1110 11008 bit
N =
2.Системы счисленияСложная
Система должна присвоить каждому из 285 элементов собственный двоичный код одинаковой длины. Какое наименьшее число битов b нужно?
285
b = bit
3.Цифровая логика: вентили, карты Карно и триггерыСредняя
С помощью карты Карно найдите минимальную форму «произведение сумм» (POS) для F(A, B, C) = Σm(0, 3, 5). Сколько членов-сумм (множителей), N, в ней?
F(A, B, C) = Σm(0, 3, 5)
N =
4.Цифровая логика: вентили, карты Карно и триггерыСложная
Найдите минимальную форму SOP для F(A, B, C, D) = Σm(0, 3, 12, 15) + d(4, 8), где d обозначает безразличные состояния. Сколько членов-произведений, N, в ней?
F(A, B, C, D) = Σm(0, 3, 12, 15) + d(4, 8)
N =
5.Сбор данных и дискретизацияСредняя
8-разрядный АЦП с диапазоном входа от 0 до 2,5 V отбрасывает остаток: его выходной код равен ⌊Vin/LSB⌋ при 1 LSB = VFSR/2ᴺ. Найдите десятичный выходной код D для входного напряжения 0,246 V.
N = 8VFSR = 2,5 VVin = 0,246 V
D =
6.Сбор данных и дискретизацияСложная
Микроконтроллер с тактовой частотой 8 MHz задаёт скорость UART как fclk/(16·D), где D — целое число, округлённое до ближайшего значения. Целевая скорость — 38400 бод. Найдите относительную погрешность реальной скорости в бодах в процентах (положительную, если она слишком высока).
fclk = 8 MHzцелевая = 38400 Bd
e = %
3Растворы
1.Системы счисления
Ответ: N = −20
Позиционные системы счисления: каждая цифра стоит своего значения, умноженного на степень основания. В двоичной системе разряды стоят 1, 2, 4, 8, 16, …, в шестнадцатеричной 1, 16, 256, …, а A–F обозначают 10–15. В 8-битном дополнительном коде крайний левый бит стоит −128 вместо +128; так хранятся отрицательные числа.
Сложите веса
Остальные биты сохраняют свои обычные положительные веса.
−128 + 64 + 32 + 8 + 4 = −20
Ответ
N = −20
2.Системы счисления
Ответ: b = 9 bit
Позиционные системы счисления: каждая цифра стоит своего значения, умноженного на степень основания. В двоичной системе разряды стоят 1, 2, 4, 8, 16, …, в шестнадцатеричной 1, 16, 256, …, а A–F обозначают 10–15. В 8-битном дополнительном коде крайний левый бит стоит −128 вместо +128; так хранятся отрицательные числа.
Степени двойки
28 = 256 < 285
29 = 512 ≥ 285
Ответ
b = 9
3.Цифровая логика: вентили, карты Карно и триггеры
Ответ: N = 4
Карты Карно: клетки упорядочены по коду Грея (00, 01, 11, 10), поэтому соседние клетки, включая те, что через края, отличаются ровно одной переменной. Группируйте единицы в прямоугольники по 1, 2, 4, 8 или 16 клеток, как можно большие и в как можно меньшем числе, пока не будет покрыта каждая единица. Каждая группа — один член-произведение: переменные, которые внутри неё остаются постоянными. Группа из 2ᵏ клеток теряет k переменных. Безразличные состояния (X) можно использовать, чтобы увеличить группы, но покрывать их не обязательно. Если группировать нули, получится минимальная форма POS.
Сгруппируйте нули
Каждая группа — прямоугольник из 2ᵏ клеток; клетки на краю соседствуют с клетками на противоположном краю.
(B′ + C)
(A′ + C)
(A′ + B′)
(A + B + C′)
Минимальная форма POS
F = (B′ + C)(A′ + C)(A′ + B′)(A + B + C′)
N = 4
Ответ
N = 4
4.Цифровая логика: вентили, карты Карно и триггеры
Ответ: N = 3
Карты Карно: клетки упорядочены по коду Грея (00, 01, 11, 10), поэтому соседние клетки, включая те, что через края, отличаются ровно одной переменной. Группируйте единицы в прямоугольники по 1, 2, 4, 8 или 16 клеток, как можно большие и в как можно меньшем числе, пока не будет покрыта каждая единица. Каждая группа — один член-произведение: переменные, которые внутри неё остаются постоянными. Группа из 2ᵏ клеток теряет k переменных. Безразличные состояния (X) можно использовать, чтобы увеличить группы, но покрывать их не обязательно. Если группировать нули, получится минимальная форма POS.
Простые импликанты
Самые большие группы, которые можно образовать из единиц и X.
C′D′, A′B′CD, ABCD
Минимальное покрытие
F = C′D′ + A′B′CD + ABCD
N = 3
Ответ
N = 3
5.Сбор данных и дискретизация
Ответ: D = 25
Разрешение АЦП: 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 = 2,5/28 = 9,766 mV
Код
Vin/LSB = 246/9,766 = 25,19
код = ⌊25,19⌋ = 25
Ответ
D = 25
В двоичном виде это 00011001.
6.Сбор данных и дискретизация
Ответ: e = 0,1603 %
UART: асинхронный последовательный канал передаёт каждый байт кадром: один стартовый бит (низкий уровень), биты данных, необязательный бит чётности и один или два стоповых бита (высокий уровень). Скорость в бодах — это число бит в секунду, поэтому один бит длится Tb = 1/baud, а кадр из n бит длится n/baud. В распространённом формате 8N1 на байт приходится 10 бит. Генератор бодов делит тактовую частоту: baud = fclk/(16·D) с целым D, поэтому реальная скорость в бодах немного отличается от заданной; погрешность меньше примерно 2 % обычно допустима.