Ручной такт (Manual Clock)
Входы (Inputs)
| Пин | Тип | Описание |
|---|---|---|
| Нет входных пинов | ||
Выходы (Outputs)
| Пин | Тип | Описание |
|---|---|---|
| Tick | bit | Тактовый сигнал: 1 во время нажатия кнопки, 0 в остальное время |
Логика работы
Автоматический такт — как конвейер: схема бежит, и уследить за каждой деталью трудно. Manual Clock — кнопка «стоп-кадр»: схема движется ровно настолько, насколько ты позволишь. Одно нажатие — один такт.
Главное свойство: нажатие Tick выдаёт полный импульс за два шага симуляции: 0→1 (фронт — все тактируемые элементы записывают данные) и затем 1→0 (спад — значения зафиксированы). Пример: D-триггер с D = 1 после первого нажатия покажет Q = 1; счётчик команд с шагом 1 после каждого нажатия ползёт вперёд ровно на единицу.
Нюанс: между нажатиями Tick = 0, но схема не «спит» целиком — комбинационная логика продолжает вычислять и обновляет провода. Замереть может только запись: без нового фронта регистры своё содержимое не поменяют.
Примеры (нажатие за нажатием)
| Нажатие | Импульс Tick | Что произошло в схеме |
|---|---|---|
| 1 | 0→1→0 | DFF записал D = 1, на выходе Q = 1 |
| 2 | 0→1→0 | счётчик команд увеличился: 1 → 2 |
| 3 | 0→1→0 | аккумулятор с WE = 0 сохранил старое значение |
| 4 | 0→1→0 | индексный регистр с Inc = 1 подрос: 16 → 17 |
Каждая строка — ровно один полный тактовый цикл, не больше и не меньше.
Применение
На уровнях 15 и 29 и в песочнице Manual Clock — главный инструмент отладки: вместо бега конвейера ты шагаешь по программе по одной инструкции, глядя на счётчик команд, шину данных и аккумулятор после каждого такта. Он не зависит от панели Clock Control и всегда слушается только твоих нажатий.
Конкретное применение — поиск места, где программа «сломалась»: подключи Tick ко всем тактовым входам вместо Clock, выполняй инструкцию за инструкцией и сравнивай состояние регистров с ожидаемым. Ошибочный такт находится сразу — на нём значение впервые расходится с планом.
Смежные компоненты
Статьи по теме
Частые вопросы
Зачем нужен ручной такт?
Для пошаговой отладки: наблюдать состояние схемы после каждого такта, не включая автоматический генератор.
Сколько тактов даёт одно нажатие Tick?
Ровно один: фронт и спад упакованы в один импульс. Два нажатия — два такта, и так далее.
Можно ли заменить им Clock в готовом процессоре?
Да: подай Tick на те же входы, куда шёл Q генератора, — программа пойдёт в темпе твоих нажатий, по одной инструкции за раз.