8-битный регистр (Register8)
Входы (Inputs)
| Пин | Тип | Описание |
|---|---|---|
| Data | bus8 | Входные данные |
| Clock | bit | Тактовый сигнал |
| WE | bit | Write Enable: 1 = запись |
Выходы (Outputs)
| Пин | Тип | Описание |
|---|---|---|
| Q | bus8 | Сохранённое значение |
Логика работы
Если D-триггер — одна ячейка в блокноте, то регистр — целая строка из восьми таких ячеек. Внутри Register8 спрятаны восемь DFF, подключённые к одному и тому же Clock: каждый хранит свой бит байта, и все восемь обновляются в один и тот же момент.
Главное свойство: байт записывается только по фронту Clock и только при WE = 1. Между тактами выход Q повторяет сохранённое значение, что бы ни происходило на входе Data. Пример: Data = 00001111 (15), WE = 1, фронт — Q = 15; на следующем такте WE = 0 и Data = 11111111 (255) — Q всё ещё 15: запись запрещена.
Нюанс: неподключённый пин WE считается равным 1 — регистр будет перезаписываться на каждом такте. В процессоре это лечит дешифратор: сигнал RegLoad подаётся на WE, поэтому аккумулятор меняется только в такты команд LDA, ADD, SUB и им подобных.
Примеры (последовательность тактов)
| Такт | WE | Data | Q после фронта |
|---|---|---|---|
| 1 | 1 | 00001111 (15) | 00001111 (15) — записано |
| 2 | 0 | 11111111 (255) | 00001111 (15) — WE = 0, запись запрещена |
| 3 | 1 | 11111111 (255) | 11111111 (255) — записано |
| 4 | 1 | 00000000 (0) | 00000000 (0) — записано |
Ключевой такт — второй: данные на входе изменились, но без WE они не попали внутрь.
Применение
Уровень 12 знакомит с регистром, а с уровня 16 он живёт в сердце процессора как аккумулятор: сюда попадает результат каждой операции АЛУ и каждый байт, прочитанный из RAM командой LDA. Вместе со счётчиком команд и индексным регистром он образует всю «рабочую память» процессора курса.
Конкретное применение — ступенька между памятью и арифметикой: LDA кладёт число из RAM в аккумулятор, ADD прибавляет операнд, STA записывает результат обратно в память. Каждая такая команда — это такты, в которых сигнал WE разрешает запись ровно на нужном фронте.
Смежные компоненты
Статьи по теме
Частые вопросы
Зачем нужен регистр?
Хранить байт между тактами. В процессоре курса это аккумулятор — главное рабочее значение.
Что произойдёт с данными при выключении схемы?
Регистр обнулится: он хранит значение, только пока схема работает.
Можно ли одновременно читать из регистра и записывать в него?
Да. Q всегда отражает текущее содержимое, а запись происходит только по фронту: всю длительность такта АЛУ может считать, опираясь на старое значение, и лишь на фронте результат встанет на место.
Что будет, если забыть подключить WE?
Регистр примет WE = 1 и станет принимать Data на каждом такте. Если Data ни к чему не подключена, в аккумулятор попадёт мусор — поэтому WE всегда соединяют с сигналом RegLoad дешифратора.