Цифровые логические схемы
Начните с цифровых сигналов и элементов AND, OR, XOR, затем проектируйте комбинационные схемы, защёлки, триггеры, счётчики и конечные автоматы. Связывайте таблицы истинности, формулы, схемы и временные диаграммы и проверяйте результат в практикумах по RTL. Дополнительные разделы расширяют курс до трактов обработки данных и интерфейсов.
Чему вы научитесь
- Различать логические значения и напряжения; объяснять таблицы истинности, обозначения и эквивалентные схемы восьми видов логических элементов.
- Проектировать комбинационные схемы по спецификации с помощью SOP, POS и карт Карно и проверять все входные комбинации.
- Определять допустимые входные условия и граничные случаи для шифраторов, дешифраторов, MUX, DEMUX, сумматоров и компараторов.
- Объяснять различие между защёлками и триггерами и проектировать правила обновления при reset, enable и тактировании.
- Реализовывать счётчики, сдвиговые регистры и конечные автоматы на RTL; анализировать временные ограничения, асинхронные входы и подавление дребезга.
- Проверять проект независимой эталонной моделью и завершить детектор перекрывающейся последовательности 101.
- В дополнительных разделах перейти к АЛУ, памяти, FIFO, конвейерам и интерфейсам.
Перед началом
Упражнения в браузере используют учебные модели и не компилируют и не запускают HDL. Для отдельного запуска исходного кода следуйте руководству Digital Design Studio для вашей ОС и войдите в аккаунт, если этого требует операция.
Установка и первый запуск ↗ · Загрузки ↗Программа
- Цифровые сигналы и представление чисел
- Цифровые сигналы: когда напряжение означает 0 или 1Теория
Различайте логические значения и напряжения, рассчитывайте входные пороги, запас помехоустойчивости и задержку распространения.
- Системы счисления и представление фиксированной разрядностиТеория
Помимо перевода между системами счисления, рассчитывайте диапазон представления, нужную разрядность и ошибку усечения.
- Логические элементы и таблицы истинности
- Основные элементы: AND, OR, NOT и BUFFERТеория
Связывайте схемные обозначения с таблицами истинности и составляйте условия из нескольких элементов.
- NAND, NOR и обозначения инверсииТеория
Определяйте область действия отрицания и связывайте эквивалентные обозначения и выражения законами де Моргана.
- XOR и XNOR: равенство, различие и чётностьТеория
Различайте двухвходовый XOR и многовходовую чётность и объясняйте ограничения обнаружения ошибок.
- Универсальные элементы: схема только из NANDТеория
Покажите функциональную полноту NAND и NOR конструктивно и проверьте промежуточные сигналы XOR.
- От логических выражений к проектированию схем
- Булева алгебра, эквивалентные преобразования и стоимость реализацииТеория
Преобразуйте схемы законами де Моргана и вынесением общего множителя, различая логическую эквивалентность и временные свойства.
- От таблицы истинности к выражению: минтермы, макстермы, SOP и POSТеория
Выведите одну функцию по строкам с выходом 1 и по строкам с выходом 0 и свяжите обе формы с обозначениями карты Карно.
- Карты Карно и условия don’t-careТеория
Сокращайте выражения с помощью соседства кода Грея и явно задавайте предположения о неиспользуемых входах.
- Практикум проектирования: от спецификации к трёхвходовому большинствуПрактика
Преобразуйте словесную спецификацию в полную таблицу истинности и свяжите минимизацию, реализацию и исчерпывающую проверку.
- Адресация и схемы выбора
- Дешифратор, one-hot-выбор и допустимые входыТеория
Преобразуйте двоичный адрес в отдельные линии выбора и задайте enable, диапазон и инварианты выбора.
- Шифратор и приоритет: выбор одного из нескольких запросовТеория
Различайте условие one-hot для обычного шифратора и выходы приоритетного шифратора: valid и результат выбора.
- DEMUX и дешифратор: передача данных по выбранному путиТеория
Сравните направления и роли MUX, DEMUX и дешифратора, проверьте условия one-hot и one-hot-or-zero.
- Сигналы и порты: контракт ширины, направления и времениТеория
Читайте интерфейс и разделяйте критерии проверки комбинационного выхода и выхода состояния.
- От таблицы истинности к MUX и разложению ШеннонаТеория
Выведите правило выбора формулой и разложите произвольную логическую функцию с помощью MUX.
- Арифметические схемы и сравнение
- Сумматоры и структуры распространения переносаТеория
Выведите формулы полного сумматора и совместно проанализируйте функцию, разрядность и задержку последовательного переноса.
- Дополнительный код, расширение знака и переполнениеТеория
Различайте знаковую интерпретацию битовой строки и условия переполнения сложения с помощью формул и контрпримеров.
- Компараторы и спецификация граничных значенийТеория
Различайте unsigned- и signed-сравнение одинаковых битовых строк и проверяйте граничные условия.
- Защёлки, триггеры и хранение состояния
- Основы хранения состояния: обратная связь, SR- и D-защёлкиТеория
Разберите два устойчивых состояния перекрёстной связи, запрещённый вход SR и прозрачный интервал D-защёлки.
- D-триггер: от уровня к фронтуТеория
Сравните моменты обновления защёлки и триггера, свяжите понятия регистра, setup и hold.
- Триггеры, enable и приоритет управленияТеория
Задайте хранение, загрузку и сброс функцией следующего состояния и избегайте непреднамеренного стробирования такта.
- Синхронные переходы состояния и роль тактаТеория
Рассматривайте синхронную систему как набор регистров, читающих одно и то же предыдущее состояние.
- Реализация и проверка MUX на RTL
- Комбинационный выбор и задержка выхода регистраТеория
Проанализируйте изменение интерфейса и задержки при сохранении результата MUX в регистре.
- Комбинационный RTL и полные присваиванияТеория
Выразите одну функцию условным оператором и always_comb, найдите пропуски, создающие защёлку.
- Практикум: исчерпывающая проверка MUX и анализ выхода регистраПрактика
Подайте одинаковые входы на комбинационный и регистровый пути и проверьте результаты по таблице истинности и моменту выборки.
- Моменты выборки и причинность на временных диаграммахТеория
Читайте диаграммы, разделяя установление комбинационной логики, захват тактом и порядок событий.
- Проверка MUX: полный перебор и свойстваТеория
Проверяйте покрытие комбинационных входов и хранение раздельно, минимизируйте контрпримеры.
- Проверка проекта: эквивалентность выбора и момент наблюденияПроверка знаний
Различайте проверки, для которых достаточно таблицы истинности, и проверки, требующие наблюдения такта.
- Счётчики и синхронное обновление состояния
- Число состояний, ширина счётчика и неиспользуемые кодыТеория
Рассчитайте разрядность по диапазону счёта и определите восстановление из недопустимых состояний.
- Следующее состояние счётчика и приоритет сбросаТеория
Объедините увеличение, хранение, сброс и переход через границу в одну спецификацию и рассчитайте каждый фронт.
- Неблокирующие присваивания и одновременное обновление состоянияТеория
Разделяйте прежние и следующие значения для точного понимания RTL конвейеров и счётчиков.
- Практикум: сброс, циклический переход и инварианты счётчикаПрактика
Сравните состояние на каждом положительном фронте с эталоном, разделите влияние начального значения, сброса и ширины.
- Модульные и насыщающие счётчики, импульс завершенияТеория
Задайте обработку максимума и точный цикл сигнала terminal-count.
- Отладка счётчика и минимальные контрпримерыТеория
Спроектируйте короткие тесты, различающие ошибки reset, enable и перехода через границу.
- Проверка проекта: границы ширины, приоритета и циклического переходаПроверка знаний
Оцените граничные значения и одновременные управления по заданной спецификации переходов.
- Сдвиговые регистры и потоки данных
- Индексы векторов, порядок битов и знакТеория
Читайте тракт данных, разделяя номера битов, порядок последовательной передачи и арифметическую интерпретацию.
- Последовательный вход и границы кадраТеория
Определите порядок входов и действительные фронты, рассчитайте размещение битов при последовательно-параллельном преобразовании.
- Уравнение состояния сдвигового регистраТеория
Представьте перемещение битов переходом векторного состояния и свяжите глубину хранения с задержкой выхода.
- Ширина срезов, конкатенации и повторенияТеория
Стройте тракт данных, рассчитывая суммарную ширину соединённых сигналов и условия сохранения значения.
- Практикум: сдвиг последовательных данных и проверка порядка битовПрактика
Проверяйте направление, потерю битов и задержку после сброса с помощью битовых строк и целочисленного эталона.
- Различие задержки в циклах и пропускной способностиТеория
Задайте точки наблюдения N-ступенчатой линии задержки и количественно рассчитайте latency и throughput.
- Проверка сдвиговых схем и выравнивание данных с validТеория
Находите ошибки, скрытые симметричными шаблонами, и сдвиг valid на один цикл.
- Проверка проекта: задержка, выравнивание и сохранение входовПроверка знаний
Проверьте не только направление сдвига, но и число действительных перемещений и начало отсчёта наблюдения.
- Временные ограничения, реальные входы и конечные автоматы
- Setup, hold и временной бюджетТеория
Разделите максимальные и минимальные задержки путей и рассчитайте условие hold, независимое от частоты такта.
- Логические состязания и пределы эквивалентных выраженийТеория
Проанализируйте, как две эквивалентные в установившемся состоянии схемы дают разные переходные диаграммы из-за задержек.
- Границы тактовых доменов и метастабильностьТеория
Определите область применения двухступенчатого синхронизатора, различая один бит, короткие импульсы и многобитную передачу.
- Реальная кнопка: синхронизация, подавление дребезга и одно событиеТеория
Разделите синхронизацию асинхронного входа и подавление дребезга, спроектируйте фильтр по последовательным выборкам.
- Конечный автомат: разделение состояния, переходов и выходовТеория
Постройте FSM по таблице спецификации и сравните выходы Мура и Мили, недопустимые состояния и политику запросов.
- План проверки, покрытие и независимый эталонТеория
Различайте прохождение тестов и соответствие спецификации; включайте границы, пересечения условий и минимальные контрпримеры в план проверки.
- Итоговый проект: детектор перекрывающейся последовательности 101Теория
Объедините минимизацию состояний, действительность входа, выход регистра и независимую эталонную проверку.
- Дополнительно · арифметические тракты
- АЛУ и флаги zero, negative, carry, overflowТеория
Постройте ADD/SUB на общем сумматоре, разделите carry и знаковое переполнение и выведите условия сравнения.
- Бочкообразный сдвигатель и каскады MUXТеория
Реализуйте переменный сдвиг каскадами MUX на 1, 2, 4, 8 позиций, обработайте общую структуру направлений, знак и большие сдвиги.
- Фиксированная точка, округление и насыщениеТеория
Задайте диапазон форматом W,F, спроектируйте округление к чётному по guard/sticky и насыщение после округления.
- Многоцикловый беззнаковый умножитель со сдвигом и сложениемТеория
Распределите накопление частичных произведений на W тактов и проверьте приём, завершение, последнее сложение, ширину и инвариант.
- Дополнительно · память и FIFO
- Синхронная память и контракт одновременного чтения и записиТеория
Различайте момент ответа с выхода регистра, read-first, write-first, no-change и отдельные требования к valid и инициализации адресов.
- Регистровый файл с двумя чтениями, одной записью и bypassТеория
Реализуйте два независимых порта чтения и синхронную запись, проверьте bypass для каждой коллизии и правила инициализации и valid.
- Указатели и граничная политика однотактового FIFOТеория
Реализуйте указатели и occupancy FIFO глубины 4, явно определяя одновременные push/pop при empty и full.
- План проверки FIFO и памяти, независимый scoreboardТеория
Создайте queue-scoreboard независимо от указателей реализации и включите границы, reset, valid и неинициализированные чтения в план.
- Дополнительно · конвейеры и интерфейсы
- Ready/valid и эластичный буфер на один элементТеория
Спроектируйте передачу без потерь и повторов, включая одновременный ввод и вывод в останавливаемом тракте.
- Конвейер умножения и сложения, выравнивание данныхТеория
Разделите вычисление регистрами и сохраните принадлежность данных, valid и вспомогательных операндов одной транзакции.
- Останавливаемый конвейер и обратное давлениеТеория
Вычисляйте ready каждой ступени, предотвращая потери, повторы и повторное вычисление при остановке и одновременном продвижении.
- Регистровый интерфейс и момент побочных эффектовТеория
Задайте адреса, побайтовую запись и остановку ответа, обеспечивая ровно одно изменение состояния на принятый запрос.
- Итоговый практикум: передатчик UART и время кадраТеория
Объедините делитель, сдвиговый регистр и управление потоком в кадр 8N1 и проверьте границы битов.