Счётчик команд: машина листает программу
Паспорт модуля
| Параметр | Значение |
|---|---|
| Аудитория | 🟡🔴; пройдены М6–М7 |
| Аутентичная задача | собрать PC — узел, который сам шагает по адресам программы и умеет прыгать (JMP), — и подключить его к шине по дисциплине М7 |
| Объём | 3 занятия × 90 мин |
| Оборудование | 74HC161 ×2 (каскад до 8 бит; КР1533ИЕ10), 74HC245, узел CLK, RP2350-монитор |
| Ограничения | 5 В |
Аутентичная задача. После модуля обучающиеся смогут: показать на светодиодах, как PC считает адреса 0x00→0x01→…, по сигналу J загружает произвольный адрес с шины и по CE замирает, — все три поведения понадобятся микрокоду.
Цели
| № | Обучающиеся … | Блум—Андерсон | Миллер | Проверка |
|---|---|---|---|---|
| 1 | объясняют синхронную загрузку против асинхронного сброса | понимать | знает | квиз |
| 2 | собирают 8-битный PC с сигналами CE (счёт), J (загрузка), CO (выдача адреса) | применять | показывает как | приёмка по сценариям |
| 3 | демонстрируют «вечный цикл»: PC грузит сам себя адресом с DIP | создавать | делает | демонстрация |
| 4 | 🔴 выводят, как счётчик строится из T-триггеров, и объясняют разницу асинхронного/синхронного счёта | анализировать | знает как | письменный разбор |
Оценивание
Приёмка узла PC: из сброса считает по фронтам при CE=1; при CE=0 держит значение; при /PE=0 на очередном фронте загружает шину; каскад корпусов переходит 0x0F→0x10 без сбоя (перенос через TC→CET проверяется отдельным пунктом чек-листа).
Путь и разборы
| № | Тема | Разминка | Ядро |
|---|---|---|---|
| 1 | 74HC161 | эстафета байта (М7) | worked example выводов: CLK=2, /MR=1 (асинхронный сброс), /PE=9 (синхронная загрузка), CEP=7/CET=10 (разрешения), TC=15 (перенос), VCC=16, GND=8 — с прогоном каждого сигнала вручную на однотактном режиме |
| 2 | Каскад и шина | 3 вопроса зан. 1 | 8 бит: TC младшего → CET старшего; выход на шину через 74HC245 (сигнал CO); входы загрузки — с шины (сигнал J = /PE) |
| 3 | JMP руками | сценарии 161 | «вечный цикл»: DIP держит 0x05 на шине, J активен — PC постоянно возвращается; затем однотактный прогон 0x05→0x06→0x07→J→0x05 |
Синхронно vs асинхронно. /MR сбрасывает счётчик немедленно, не дожидаясь такта, — годится для кнопки RESET всей машины. /PE действует только по фронту CLK — поэтому JMP в нашей архитектуре занимает такт и не порождает гонок. Правило курса: всё, что меняет состояние машины, происходит по фронту; асинхронной остаётся только кнопка глобального сброса.
Типичные ошибки: CEP/CET висят — счётчик «иногда считает» от наводок; /MR без подтяжки — самопроизвольные сбросы; каскад через CEP вместо CET — старший корпус считает каждый такт, а не по переносу (симптом: адрес скачет через 0x10); попытка «подправить» значение счётчика подачей уровней на выходы — выходы не входы, только /PE.
Уровни
Полный PC: счёт, загрузка, каскад, шина; приёмка по сценариям.
Счётчик из T-триггеров на бумаге и в симуляторе; объяснить, почему асинхронный (ripple) счётчик даёт ложные промежуточные коды и чем это опасно для дешифратора адреса; олимпиадные задачи на делители частоты.