13 / 37 · Проверка знаний
Проверка проекта: эквивалентность выбора и момент наблюдения
Различайте проверки, для которых достаточно таблицы истинности, и проверки, требующие наблюдения такта.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Прочитайте условия и нарисуйте временной порядок
Комбинационный выход , а sampled_y сохраняет y на положительном фронтеПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее. Предположим, при значение уже один раз сохранено. Затем между фронтами s меняется на 1.
Вопрос ниже касается значений после стабилизации входа и комбинационной задержки, но до следующего положительного фронта. Эквивалентность функционального выражения и момент наблюдения регистраРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее — отдельные пункты проверки.
Ниже показан порядок наблюдения условий задачи при a=1, b=0. На интервале различия комбинационного и сохранённого выходов объясните, какой сигнал показывает текущий вход, а какой — предыдущий захват.
Показать данные диаграммы
| Сигнал | Диаграмма | Значения шины |
|---|---|---|
| событие | 234 | захвачено → sel меняется → следующий фронт |
| sel | 01. | |
| y | 10. | |
| sampled_y | 1.0 |
Дополнительные задачи проектирования
- Докажите по восьми комбинациям, что схема
y=(a & ~s) | (b & s)эквивалентна однобитному MUXМультиплексор — комбинационная схема, соединяющая один из нескольких входов с выходом по сигналу выбора. Соответствие битов выбора и номеров входов должно быть задано явно. Подробнее. - При удалении
sampled_yфункциональное выражение сохраняется. Объясните, какое временное свойство исчезает. - Объясните, почему при слишком близких переключении s и положительном фронте идеальные значения RTL не гарантируют поведение реального оборудования.
Попробуйте сами
Можно ли обнаружить инверсию выбора в 4-битном MUX, проверяя только векторы a=b?
Прочитать объяснение
Нет: одинаковые входы дают один результат при любом выборе. Например, при a=0101, b=1010 нужно проверить и s=0, и s=1, чтобы различить полярность выбора и передачу каждого бита.
Каковы (y, sampled_y) непосредственно перед следующим положительным фронтом в условиях выше?
При s=1 получаем y=b=0. На предыдущем фронте s=0, поэтому сохранено sampled_y=a=1. Только на следующем положительном фронте sampled_y тоже станет 0. Предполагается соблюдение setup и hold.