38 / 63 · Теория
Уравнение состояния сдвигового регистра
Представьте перемещение битов переходом векторного состояния и свяжите глубину хранения с задержкой выхода.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Одновременное чтение нескольких триггеров
Если новый вход d помещается в бит 0 N-битного сдвигового регистраРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее, следующее состояние:
Фигурные скобки обозначают конкатенациюКонкатенация соединяет битовые последовательности рядом друг с другом. Ширина результата равна сумме ширин операндов; это не арифметическое сложение чисел. Подробнее RTL. Все биты читают одно прежнее состояние, поэтому d не проходит весь регистр за один фронт. При enable=0 хранится весь вектор, при reset он заменяется заданным начальным вектором.
Каждый столбец — запись наблюдения одного положительного фронтаПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее. Входы показаны непосредственно перед фронтом, состояния со словом «после» в имени — сразу после обновления. Выравнивание столбцов обозначает порядок выборок, а не физическую задержку распространенияЗадержка распространения — время от изменения входа до установления правильного выхода. Логическая эквивалентность выражений и их временные характеристики — разные вопросы. Подробнее.
Из q=000 подайте din=1 один раз, затем три нуля. Активный бит проходит q0→q1→q2 и исчезает.
Показать данные диаграммы
| Сигнал | Диаграмма | Значения шины |
|---|---|---|
| din | 10.. | |
| q2 после | 0.10 | |
| q1 после | 010. | |
| q0 после | 10.. | |
| q после | 2345 | 001 → 010 → 100 → 000 |
Сделайте один шаг с din=1, затем три с din=0. Получится 001→010→100→000. В момент изменения входа текущее q не меняется: меняется только ожидаемое значение следующего фронта.
Синхронный сброс приоритетнее enable. При enable=0 сохранённое значение удерживается. q=000; q_next = (2q + din) mod 8
Проверьте соединение числовым выражением
При интерпретации как unsignedБеззнаковая интерпретация (unsigned) рассматривает битовую последовательность как неотрицательное целое. Диапазон n бит — от 0 до 2^n−1; знаковая интерпретация тех же битов может дать другое число. Подробнее-вектора тот же переход записывается:
При N=3, Q=5 (101), d=1 получаем , , то есть следующее 011. Эта числовая форма отличается от конкатенации и полезна как эталон для проверки реализации.
Что именно хранится
Старые биты перемещаются к наибольшему индексу, новый поступает в наименьший. После достаточного числа действительных входов хранятся «текущий и последние N-1 входов». Та же структура используется для распознавания шаблонов, простых линий задержки и последовательно-параллельного преобразования.
Увеличение длины хранения не увеличивает число обрабатываемых за цикл битов. Структура принимает один бит за действительный фронт. Параллельный вход, многобитный сдвиг и остановка по ready/validРукопожатие (handshake) — соглашение, по которому передача подтверждается, когда valid передатчика и ready приёмника равны 1 на одном фронте. Оно также задаёт правила удержания данных во время ожидания. Подробнее требуют отдельных трактов и условий управления.
Попробуйте сами
N=4, текущее Q=1101, вход d=0. Вычислите следующее Q через конкатенацию и числовое выражение.
Прочитать объяснение
Конкатенация даёт {101,0}=1010. Численно , тот же результат. Прежний старший бит 1 выходит за границу хранения.