43 / 63 · Проверка знаний
Проверка проекта: задержка, выравнивание и сохранение входов
Проверьте не только направление сдвига, но и число действительных перемещений и начало отсчёта наблюдения.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Зафиксируйте начало отсчёта задержки
3-битный регистрРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее выполняет q <= {q[1:0], din} только при действительном входе; при valid=0 хранит q. После сбросаСброс возвращает состояние к заданному начальному значению. Нужно определить, синхронен он или асинхронен и имеет ли приоритет над другими управляющими сигналами. Подробнее начните с 0 и на последовательных положительных фронтахПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее подайте (valid,din) = (1,1), (0,0), (1,0), (1,1).
Фронтов четыре, а реальных сдвигов три. Проверьте согласованность трассировки состояния с утверждением о задержке в циклах.
Каждый столбец — запись наблюдения одного положительного фронтаПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее. Входы показаны непосредственно перед фронтом, состояния со словом «после» в имени — сразу после обновления. Выравнивание столбцов обозначает порядок выборок, а не физическую задержку распространенияЗадержка распространения — время от изменения входа до установления правильного выхода. Логическая эквивалентность выражений и их временные характеристики — разные вопросы. Подробнее.
Показана последовательность из задачи. Во втором столбце valid=0 и состояние хранится. Не путайте число изменений q с числом тактовых столбцов.
Показать данные диаграммы
| Сигнал | Диаграмма | Значения шины |
|---|---|---|
| фронт | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| число принятых | 2.34 | 1 → 2 → 3 |
| q после | 2.34 | 001 → 010 → 101 |
Дополнительная задача проектирования
При расширении до конвейераКонвейер делит вычисление на разделённые регистрами стадии и перекрывает обработку нескольких входов. Данные, valid и управляющие сигналы необходимо согласовать по стадиям. Подробнее с 8-битными данными на входе нельзя сделать три ступени данных, а valid задержать лишь на одну. Применяйте одинаковые правила перемещения к данным и valid либо совместно проектируйте правила приёма и передачи останавливаемого буфера.
Попробуйте сами
Если изменить схему, чтобы она сдвигалась на каждом фронте независимо от valid, каким станет конечное q для указанной последовательности?
Прочитать объяснение
Сохранится и din=0 недействительного цикла, поэтому будет 001 → 010 → 100 → 001. Итог 001 отличается от 101 исходной схемы, сдвигающей только действительные входы. Реализация должна соблюдать контракт игнорирования invalid-данных.
Каковы последнее q и фактическое число сдвигов для последовательности с valid из текста?
Состояния: 000 → 001 → 001 → 010 → 101. На втором фронте valid=0, поэтому состояние сохраняется. Правильный ответ должен учитывать направление, условие и число сдвигов.