РЕГИСТР ФЛАГОВ 'F'
Флаги АЛУ "
защёлкиваются" в
Регистр Флагов 'F' после завершения операции в
АЛУ по стробирующему сигналу
Stb 'F' от
Устройства Управления и Синхронизации ЦПУ.
Первоначально я планировал выполнить Регистр Флагов на отдельных
D-триггерах, чтобы иметь возможность манипулировать отдельно битом флага
Carry командами
STC, CMC и CLC, подавая их от
мультиплексора 'C'.
Но поскольку в процессе разработки
Дешифратора КОП выяснилось, что
команда CLC представляется излишней и в систему команд не войдёт, возникло более простое, на мой взгляд, решение.
Регистр Флагов представляет собой
счетверённый D-триггер с общим для всех триггеров входом стробирования
C и сброса -
R, имеющий прямые и инверсные выходы.
С инверсных выходов Регистра Флагов через инверсные же вентили с открытым коллектором флаги
S, P, Z подаются на входы самого же Регистра Флагов, а вот сигнал флага
'C' подаётся либо
в инверсном значении, либо
не подаётся совсем, что эквивалентно сигналу логической '1' на входе 'C' Регистра Флагов. Собственно, что и составляет суть операций
CMC и
STC. По стробу
Stb 'F' эти значения флагов зафиксируются в Регистре Флагов, как и в завершении любой операции
АЛУ. Отличие заключается в том, что во время выполнения операций
CMC и
STC АЛУ не работает и не мешает манипуляциям с флагами.
Единственное, что нуждается в исправлении в схеме
АЛУ - выходной элемент блока формирования флага
Z. Он выполнен
не на вентиле с ОК, но это легко поправимо.
В схеме
Дешифратора КОП управляющий сигнал 'F0' должен быть активным как во время выполнения операции
CMC, так и -
STC, для чего инверсные значения этих сигналов с дешифратора
D1 следует объединить через NAND, благо свободный элемент от
ЛА3 есть.
Осталось лишь соединить все блоки нашего АЛУ в единую схему и протестировать её работоспособность. 