8-битный регистр (Register8)

Входы (Inputs)

ПинТипОписание
Databus8Входные данные
ClockbitТактовый сигнал
WEbitWrite Enable: 1 = запись

Выходы (Outputs)

ПинТипОписание
Qbus8Сохранённое значение

Логика работы

Если 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 и им подобных.

Примеры (последовательность тактов)

ТактWEDataQ после фронта
1100001111 (15)00001111 (15) — записано
2011111111 (255)00001111 (15) — WE = 0, запись запрещена
3111111111 (255)11111111 (255) — записано
4100000000 (0)00000000 (0) — записано

Ключевой такт — второй: данные на входе изменились, но без WE они не попали внутрь.

Применение

Уровень 12 знакомит с регистром, а с уровня 16 он живёт в сердце процессора как аккумулятор: сюда попадает результат каждой операции АЛУ и каждый байт, прочитанный из RAM командой LDA. Вместе со счётчиком команд и индексным регистром он образует всю «рабочую память» процессора курса.

Конкретное применение — ступенька между памятью и арифметикой: LDA кладёт число из RAM в аккумулятор, ADD прибавляет операнд, STA записывает результат обратно в память. Каждая такая команда — это такты, в которых сигнал WE разрешает запись ровно на нужном фронте.

Собери это сам →

Смежные компоненты

Статьи по теме

Частые вопросы

Зачем нужен регистр?

Хранить байт между тактами. В процессоре курса это аккумулятор — главное рабочее значение.

Что произойдёт с данными при выключении схемы?

Регистр обнулится: он хранит значение, только пока схема работает.

Можно ли одновременно читать из регистра и записывать в него?

Да. Q всегда отражает текущее содержимое, а запись происходит только по фронту: всю длительность такта АЛУ может считать, опираясь на старое значение, и лишь на фронте результат встанет на место.

Что будет, если забыть подключить WE?

Регистр примет WE = 1 и станет принимать Data на каждом такте. Если Data ни к чему не подключена, в аккумулятор попадёт мусор — поэтому WE всегда соединяют с сигналом RegLoad дешифратора.